@itwin/rpcinterface-full-stack-tests 5.16.0-dev.4 → 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 +813 -383
- package/lib/dist/bundled-tests.js.map +1 -1
- package/package.json +15 -15
|
@@ -56955,12 +56955,24 @@ class ImageMapLayerSettings extends MapLayerSettings {
|
|
|
56955
56955
|
userName;
|
|
56956
56956
|
password;
|
|
56957
56957
|
accessKey;
|
|
56958
|
-
/**
|
|
56959
|
-
*
|
|
56958
|
+
/** Former name of [[queryParams]], which stores the value; retained as the backing field so existing subclasses
|
|
56959
|
+
* and `delete` keep working.
|
|
56960
|
+
* @deprecated in 5.16. Use [[queryParams]].
|
|
56960
56961
|
* @beta
|
|
56961
56962
|
*/
|
|
56962
56963
|
savedQueryParams;
|
|
56964
|
+
/** Non-secret query parameters appended to every request made for the layer, persisted as part of the JSON
|
|
56965
|
+
* representation ([[ImageMapLayerProps.queryParams]]). Secrets must never be placed here; the hosting application
|
|
56966
|
+
* injects them per session through a fetch handler (see `MapLayerFormatRegistry.addMapLayerFetchHandler` in
|
|
56967
|
+
* `@itwin/core-frontend`), which also protects them against leaking through redirects.
|
|
56968
|
+
* @beta
|
|
56969
|
+
*/
|
|
56970
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated -- the deprecated field is the storage until its removal.
|
|
56971
|
+
get queryParams() { return this.savedQueryParams; }
|
|
56972
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
56973
|
+
set queryParams(value) { this.savedQueryParams = value; }
|
|
56963
56974
|
/** List of query parameters that will get appended to the settings URL that should *not* be be persisted part of the JSON representation.
|
|
56975
|
+
* @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.
|
|
56964
56976
|
* @beta
|
|
56965
56977
|
*/
|
|
56966
56978
|
unsavedQueryParams;
|
|
@@ -56978,7 +56990,7 @@ class ImageMapLayerSettings extends MapLayerSettings {
|
|
|
56978
56990
|
this.url = props.url;
|
|
56979
56991
|
this.accessKey = props.accessKey;
|
|
56980
56992
|
if (props.queryParams) {
|
|
56981
|
-
this.
|
|
56993
|
+
this.queryParams = { ...props.queryParams };
|
|
56982
56994
|
}
|
|
56983
56995
|
if (props.properties) {
|
|
56984
56996
|
this.properties = { ...props.properties };
|
|
@@ -57002,8 +57014,8 @@ class ImageMapLayerSettings extends MapLayerSettings {
|
|
|
57002
57014
|
props.formatId = this.formatId;
|
|
57003
57015
|
if (this.subLayers.length > 0)
|
|
57004
57016
|
props.subLayers = this.subLayers.map((x) => x.toJSON());
|
|
57005
|
-
if (this.
|
|
57006
|
-
props.queryParams = { ...this.
|
|
57017
|
+
if (this.queryParams)
|
|
57018
|
+
props.queryParams = { ...this.queryParams };
|
|
57007
57019
|
if (this.properties) {
|
|
57008
57020
|
props.properties = structuredClone(this.properties);
|
|
57009
57021
|
}
|
|
@@ -57018,10 +57030,10 @@ class ImageMapLayerSettings extends MapLayerSettings {
|
|
|
57018
57030
|
// Clone members not part of MapLayerProps
|
|
57019
57031
|
clone.userName = this.userName;
|
|
57020
57032
|
clone.password = this.password;
|
|
57033
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated -- kept for backward compatibility until removal.
|
|
57021
57034
|
if (this.unsavedQueryParams)
|
|
57035
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
57022
57036
|
clone.unsavedQueryParams = { ...this.unsavedQueryParams };
|
|
57023
|
-
if (this.savedQueryParams)
|
|
57024
|
-
clone.savedQueryParams = { ...this.savedQueryParams };
|
|
57025
57037
|
return clone;
|
|
57026
57038
|
}
|
|
57027
57039
|
/** @internal */
|
|
@@ -57034,8 +57046,8 @@ class ImageMapLayerSettings extends MapLayerSettings {
|
|
|
57034
57046
|
if (changedProps.queryParams) {
|
|
57035
57047
|
props.queryParams = { ...changedProps.queryParams };
|
|
57036
57048
|
}
|
|
57037
|
-
else if (this.
|
|
57038
|
-
props.queryParams = { ...this.
|
|
57049
|
+
else if (this.queryParams) {
|
|
57050
|
+
props.queryParams = { ...this.queryParams };
|
|
57039
57051
|
}
|
|
57040
57052
|
if (changedProps.properties) {
|
|
57041
57053
|
props.properties = { ...changedProps.properties };
|
|
@@ -57111,14 +57123,17 @@ class ImageMapLayerSettings extends MapLayerSettings {
|
|
|
57111
57123
|
this.userName = userName;
|
|
57112
57124
|
this.password = password;
|
|
57113
57125
|
}
|
|
57114
|
-
/**
|
|
57115
|
-
|
|
57116
|
-
|
|
57126
|
+
/** The query parameters actually sent with requests: [[queryParams]] overlaid with the deprecated `unsavedQueryParams`
|
|
57127
|
+
* (a key present in both takes the latter's value). Equals a copy of [[queryParams]] once `unsavedQueryParams` is removed.
|
|
57128
|
+
* @beta
|
|
57129
|
+
*/
|
|
57117
57130
|
collectQueryParams() {
|
|
57118
57131
|
let queryParams = {};
|
|
57119
|
-
if (this.
|
|
57120
|
-
queryParams = { ...this.
|
|
57132
|
+
if (this.queryParams)
|
|
57133
|
+
queryParams = { ...this.queryParams };
|
|
57134
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated -- kept for backward compatibility until removal.
|
|
57121
57135
|
if (this.unsavedQueryParams)
|
|
57136
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
57122
57137
|
queryParams = { ...queryParams, ...this.unsavedQueryParams };
|
|
57123
57138
|
return queryParams;
|
|
57124
57139
|
}
|
|
@@ -136164,6 +136179,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
136164
136179
|
/* harmony export */ ManipulatorToolEvent: () => (/* reexport safe */ _tools_ToolAdmin__WEBPACK_IMPORTED_MODULE_115__.ManipulatorToolEvent),
|
|
136165
136180
|
/* harmony export */ MapCartoRectangle: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapCartoRectangle),
|
|
136166
136181
|
/* harmony export */ MapFeatureInfoRecord: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapFeatureInfoRecord),
|
|
136182
|
+
/* harmony export */ MapLayerAuthenticationFailedError: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapLayerAuthenticationFailedError),
|
|
136167
136183
|
/* harmony export */ MapLayerFeatureRecord: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapLayerFeatureRecord),
|
|
136168
136184
|
/* harmony export */ MapLayerFormat: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapLayerFormat),
|
|
136169
136185
|
/* harmony export */ MapLayerFormatRegistry: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapLayerFormatRegistry),
|
|
@@ -136173,6 +136189,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
136173
136189
|
/* harmony export */ MapLayerSourceStatus: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapLayerSourceStatus),
|
|
136174
136190
|
/* harmony export */ MapLayerSources: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapLayerSources),
|
|
136175
136191
|
/* harmony export */ MapLayerTileTreeReference: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapLayerTileTreeReference),
|
|
136192
|
+
/* harmony export */ MapLayerUntrustedOriginError: () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_125__.MapLayerUntrustedOriginError),
|
|
136176
136193
|
/* harmony export */ MapTile: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapTile),
|
|
136177
136194
|
/* harmony export */ MapTileProjection: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapTileProjection),
|
|
136178
136195
|
/* harmony export */ MapTileTree: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapTileTree),
|
|
@@ -136388,10 +136405,12 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
136388
136405
|
/* harmony export */ createQuantityDescription: () => (/* reexport safe */ _properties_FormattedQuantityDescription__WEBPACK_IMPORTED_MODULE_72__.createQuantityDescription),
|
|
136389
136406
|
/* harmony export */ createSpatialTileTreeReferences: () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_125__.createSpatialTileTreeReferences),
|
|
136390
136407
|
/* harmony export */ createWorkerProxy: () => (/* reexport safe */ _common__WEBPACK_IMPORTED_MODULE_12__.createWorkerProxy),
|
|
136408
|
+
/* harmony export */ credentialedFetchRedirect: () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_125__.credentialedFetchRedirect),
|
|
136391
136409
|
/* harmony export */ deflateCoordinates: () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_125__.deflateCoordinates),
|
|
136392
136410
|
/* harmony export */ extractImageSourceDimensions: () => (/* reexport safe */ _common__WEBPACK_IMPORTED_MODULE_12__.extractImageSourceDimensions),
|
|
136393
136411
|
/* harmony export */ eyeToCartographicOnGlobe: () => (/* reexport safe */ _ViewGlobalLocation__WEBPACK_IMPORTED_MODULE_60__.eyeToCartographicOnGlobe),
|
|
136394
136412
|
/* harmony export */ eyeToCartographicOnGlobeFromGcs: () => (/* reexport safe */ _ViewGlobalLocation__WEBPACK_IMPORTED_MODULE_60__.eyeToCartographicOnGlobeFromGcs),
|
|
136413
|
+
/* harmony export */ fetchMapLayerRequest: () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_125__.fetchMapLayerRequest),
|
|
136395
136414
|
/* harmony export */ formatAnimationBranchId: () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_125__.formatAnimationBranchId),
|
|
136396
136415
|
/* harmony export */ getCenteredViewRect: () => (/* reexport safe */ _common__WEBPACK_IMPORTED_MODULE_12__.getCenteredViewRect),
|
|
136397
136416
|
/* harmony export */ getCesiumAssetUrl: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.getCesiumAssetUrl),
|
|
@@ -138804,6 +138823,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
138804
138823
|
/* harmony export */ LayerTileTreeHandler: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.LayerTileTreeHandler),
|
|
138805
138824
|
/* harmony export */ LayerTileTreeReferenceHandler: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.LayerTileTreeReferenceHandler),
|
|
138806
138825
|
/* harmony export */ LogoDecoration: () => (/* reexport safe */ _GoogleMapsDecorator__WEBPACK_IMPORTED_MODULE_9__.LogoDecoration),
|
|
138826
|
+
/* harmony export */ MapLayerUntrustedOriginError: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.MapLayerUntrustedOriginError),
|
|
138807
138827
|
/* harmony export */ MapTileTreeReference: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.MapTileTreeReference),
|
|
138808
138828
|
/* harmony export */ OnScreenTarget: () => (/* reexport safe */ _render_webgl_Target__WEBPACK_IMPORTED_MODULE_3__.OnScreenTarget),
|
|
138809
138829
|
/* harmony export */ PerformanceMetrics: () => (/* reexport safe */ _render_webgl_PerformanceMetrics__WEBPACK_IMPORTED_MODULE_4__.PerformanceMetrics),
|
|
@@ -138821,7 +138841,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
138821
138841
|
/* harmony export */ appendQueryParams: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.appendQueryParams),
|
|
138822
138842
|
/* harmony export */ collectMaskRefs: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.collectMaskRefs),
|
|
138823
138843
|
/* harmony export */ createSpatialTileTreeReferences: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.createSpatialTileTreeReferences),
|
|
138844
|
+
/* harmony export */ credentialedFetchRedirect: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.credentialedFetchRedirect),
|
|
138824
138845
|
/* harmony export */ deflateCoordinates: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.deflateCoordinates),
|
|
138846
|
+
/* harmony export */ fetchMapLayerRequest: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.fetchMapLayerRequest),
|
|
138825
138847
|
/* harmony export */ formatAnimationBranchId: () => (/* reexport safe */ _render_AnimationBranchState__WEBPACK_IMPORTED_MODULE_6__.formatAnimationBranchId)
|
|
138826
138848
|
/* harmony export */ });
|
|
138827
138849
|
/* harmony import */ var _common_internal_Symbols__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/internal/Symbols */ "../../core/frontend/lib/esm/common/internal/Symbols.js");
|
|
@@ -177907,6 +177929,8 @@ class ArcGisUtilities {
|
|
|
177907
177929
|
metadata = await this.getServiceJson({ url: source.url, formatId: source.formatId, userName: source.userName, password: source.password, queryParams: source.collectQueryParams(), ignoreCache });
|
|
177908
177930
|
}
|
|
177909
177931
|
catch (err) {
|
|
177932
|
+
if (err instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerAuthenticationFailedError)
|
|
177933
|
+
return { status: _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerSourceStatus.RequireAuth };
|
|
177910
177934
|
if (err instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerUntrustedOriginError) {
|
|
177911
177935
|
let blockedOrigin;
|
|
177912
177936
|
try {
|
|
@@ -177921,16 +177945,17 @@ class ArcGisUtilities {
|
|
|
177921
177945
|
if (json === undefined) {
|
|
177922
177946
|
return { status: _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerSourceStatus.InvalidUrl };
|
|
177923
177947
|
}
|
|
177924
|
-
|
|
177948
|
+
const errorCode = metadata?.errorCode;
|
|
177949
|
+
if (errorCode !== undefined) {
|
|
177925
177950
|
// If we got a 'Token Required' error, lets check what authentification methods this ESRI service offers
|
|
177926
177951
|
// and return information needed to initiate the authentification process... the end-user
|
|
177927
177952
|
// will have to provide his credentials before we can fully validate this source.
|
|
177928
177953
|
// Note: Some servers will throw a error 403 (You do not have permissions to access this resource or perform this operation),
|
|
177929
177954
|
// instead of 499 (TokenRequired)
|
|
177930
|
-
if (
|
|
177955
|
+
if (errorCode === ArcGisErrorCode.TokenRequired || errorCode === ArcGisErrorCode.MissingPermissions) {
|
|
177931
177956
|
return (source.userName || source.password) ? { status: _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerSourceStatus.InvalidCredentials } : { status: _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerSourceStatus.RequireAuth };
|
|
177932
177957
|
}
|
|
177933
|
-
else if (
|
|
177958
|
+
else if (errorCode === ArcGisErrorCode.InvalidCredentials)
|
|
177934
177959
|
return { status: _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerSourceStatus.InvalidCredentials };
|
|
177935
177960
|
}
|
|
177936
177961
|
// Check this service support the expected queries
|
|
@@ -177981,11 +178006,17 @@ class ArcGisUtilities {
|
|
|
177981
178006
|
* @param requireToken Flag to indicate if a token is required
|
|
177982
178007
|
* @throws [[MapLayerUntrustedOriginError]] if an NTLM/Negotiate challenge could not be answered because
|
|
177983
178008
|
* the URL's origin is not trusted (see [[MapLayerFormatRegistry.restrictCredentialsToTrustedOrigins]]);
|
|
178009
|
+
* [[MapLayerAuthenticationFailedError]] if a registered [[MapLayerFetchHandler]] reported an
|
|
178010
|
+
* authentication failure;
|
|
177984
178011
|
* all other errors are caught and reported by returning `undefined`.
|
|
177985
178012
|
*/
|
|
177986
178013
|
static async getServiceJson(args) {
|
|
177987
|
-
const { url, formatId, userName, password, queryParams, ignoreCache, requireToken } = args;
|
|
177988
|
-
|
|
178014
|
+
const { url, layerUrl = url, layerProperties, formatId, userName, password, queryParams, ignoreCache, requireToken } = args;
|
|
178015
|
+
const accessClient = _IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry?.getAccessClient(formatId);
|
|
178016
|
+
// The cache is keyed by URL only, so responses customized by the fetch handler (e.g.
|
|
178017
|
+
// header-authenticated) must not be shared with or served from differently-customized requests.
|
|
178018
|
+
const hasFetchHandler = (_IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry?.mapLayerFetchHandlers.length ?? 0) > 0;
|
|
178019
|
+
if (!ignoreCache && !hasFetchHandler) {
|
|
177989
178020
|
const cached = ArcGisUtilities._serviceCache.get(url);
|
|
177990
178021
|
if (cached !== undefined)
|
|
177991
178022
|
return cached;
|
|
@@ -178004,55 +178035,71 @@ class ArcGisUtilities {
|
|
|
178004
178035
|
appendParams(tmpUrl, queryParams);
|
|
178005
178036
|
return tmpUrl;
|
|
178006
178037
|
};
|
|
178038
|
+
// Routes each request through the registered fetch handler (if any); handler failures propagate.
|
|
178039
|
+
// The NTLM/SSO retry applies only to the initial request, and never to sends the handler modified.
|
|
178040
|
+
const requestJson = async (target, allowSsoRetry) => {
|
|
178041
|
+
return (0,_tile_internal__WEBPACK_IMPORTED_MODULE_1__.fetchMapLayerRequest)({
|
|
178042
|
+
url: target.toString(),
|
|
178043
|
+
formatId,
|
|
178044
|
+
layerUrl,
|
|
178045
|
+
layerProperties,
|
|
178046
|
+
send: async (request, credentialed) => {
|
|
178047
|
+
// Sends the handler modified may carry injected secrets: same redirect policy as credentialed ones.
|
|
178048
|
+
let rsp = await fetch(request.url, { method: "GET", headers: request.headers, redirect: credentialed ? (0,_tile_internal__WEBPACK_IMPORTED_MODULE_1__.credentialedFetchRedirect)() : undefined });
|
|
178049
|
+
if (allowSsoRetry && rsp.status === 401 && !requireToken && !credentialed && (0,_request_utils__WEBPACK_IMPORTED_MODULE_3__.headersIncludeAuthMethod)(rsp.headers, ["ntlm", "negotiate"])) {
|
|
178050
|
+
// fetch follows redirects transparently, so trust decisions target the final (post-redirect) URL.
|
|
178051
|
+
const challengedUrl = rsp.url || request.url;
|
|
178052
|
+
if (!_IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry.isSsoAllowed(challengedUrl))
|
|
178053
|
+
throw new _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerUntrustedOriginError(challengedUrl);
|
|
178054
|
+
_IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry.logUntrustedOriginUse(challengedUrl);
|
|
178055
|
+
// We got a http 401 challenge, lets try again with SSO enabled (i.e. Windows Authentication).
|
|
178056
|
+
rsp = await fetch(challengedUrl, {
|
|
178057
|
+
method: "GET",
|
|
178058
|
+
credentials: "include",
|
|
178059
|
+
redirect: _IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry.restrictCredentialsToTrustedOrigins ? "error" : undefined,
|
|
178060
|
+
});
|
|
178061
|
+
}
|
|
178062
|
+
return rsp;
|
|
178063
|
+
},
|
|
178064
|
+
});
|
|
178065
|
+
};
|
|
178007
178066
|
let accessTokenRequired = false;
|
|
178008
178067
|
try {
|
|
178009
178068
|
let tmpUrl = createUrlObj();
|
|
178010
178069
|
// In some cases, caller might already know token is required, so append it immediately
|
|
178011
178070
|
if (requireToken) {
|
|
178012
|
-
const accessClient = _IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry.getAccessClient(formatId);
|
|
178013
178071
|
if (accessClient) {
|
|
178014
178072
|
accessTokenRequired = true;
|
|
178015
178073
|
await ArcGisUtilities.appendSecurityToken(tmpUrl, accessClient, { mapLayerUrl: new URL(url), userName, password });
|
|
178016
178074
|
}
|
|
178017
178075
|
}
|
|
178018
|
-
let response = await
|
|
178019
|
-
if (response.status === 401 && !requireToken && (0,_request_utils__WEBPACK_IMPORTED_MODULE_3__.headersIncludeAuthMethod)(response.headers, ["ntlm", "negotiate"])) {
|
|
178020
|
-
// fetch follows redirects transparently, so trust decisions target the final (post-redirect) URL.
|
|
178021
|
-
const challengedUrl = response.url || tmpUrl.toString();
|
|
178022
|
-
if (!_IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry.isSsoAllowed(challengedUrl))
|
|
178023
|
-
throw new _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerUntrustedOriginError(challengedUrl);
|
|
178024
|
-
_IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry.logUntrustedOriginUse(challengedUrl);
|
|
178025
|
-
// We got a http 401 challenge, lets try again with SSO enabled (i.e. Windows Authentication).
|
|
178026
|
-
response = await fetch(challengedUrl, {
|
|
178027
|
-
method: "GET",
|
|
178028
|
-
credentials: "include",
|
|
178029
|
-
redirect: _IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry.restrictCredentialsToTrustedOrigins ? "error" : undefined,
|
|
178030
|
-
});
|
|
178031
|
-
}
|
|
178076
|
+
let { response, managedByHandler } = await requestJson(tmpUrl, true);
|
|
178032
178077
|
// Append security token when corresponding error code is returned by ArcGIS service
|
|
178033
|
-
|
|
178078
|
+
const errorCode = await ArcGisUtilities.checkForResponseErrorCode(response);
|
|
178034
178079
|
if (!accessTokenRequired
|
|
178035
178080
|
&& (errorCode === ArcGisErrorCode.TokenRequired || errorCode === ArcGisErrorCode.MissingPermissions)) {
|
|
178036
178081
|
accessTokenRequired = true;
|
|
178037
178082
|
// If token required
|
|
178038
|
-
const accessClient = _IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry.getAccessClient(formatId);
|
|
178039
178083
|
if (accessClient) {
|
|
178040
178084
|
tmpUrl = createUrlObj();
|
|
178041
178085
|
await ArcGisUtilities.appendSecurityToken(tmpUrl, accessClient, { mapLayerUrl: new URL(url), userName, password });
|
|
178042
|
-
response = await
|
|
178043
|
-
errorCode = await ArcGisUtilities.checkForResponseErrorCode(response);
|
|
178086
|
+
({ response, managedByHandler } = await requestJson(tmpUrl, false));
|
|
178044
178087
|
}
|
|
178045
178088
|
}
|
|
178046
178089
|
const json = await response.json();
|
|
178047
|
-
|
|
178048
|
-
|
|
178049
|
-
|
|
178090
|
+
// Classified from the parsed body regardless of the Content-Type the server labelled it with.
|
|
178091
|
+
const contentErrorCode = json?.error?.code;
|
|
178092
|
+
const info = { content: json, accessTokenRequired, errorCode: managedByHandler ? undefined : contentErrorCode };
|
|
178093
|
+
// Cache the response only if it doesn't contain any error, and never when a fetch handler managed it or
|
|
178094
|
+
// is registered (the cache is keyed by URL only, so protected data must not be cached).
|
|
178095
|
+
if (!hasFetchHandler && !managedByHandler)
|
|
178096
|
+
ArcGisUtilities._serviceCache.set(url, (contentErrorCode === undefined ? info : undefined));
|
|
178050
178097
|
return info; // Always return json, even though it contains an error code.
|
|
178051
178098
|
}
|
|
178052
178099
|
catch (err) {
|
|
178053
178100
|
ArcGisUtilities._serviceCache.set(url, undefined);
|
|
178054
|
-
if (err instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerUntrustedOriginError)
|
|
178055
|
-
throw err; // propagate so callers can report the blocked origin
|
|
178101
|
+
if (err instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerUntrustedOriginError || err instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerAuthenticationFailedError)
|
|
178102
|
+
throw err; // propagate so callers can report the blocked origin / authentication failure
|
|
178056
178103
|
return undefined;
|
|
178057
178104
|
}
|
|
178058
178105
|
}
|
|
@@ -178188,6 +178235,8 @@ class ArcGISImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE_0__.
|
|
|
178188
178235
|
*/
|
|
178189
178236
|
_accessTokenRequired = false;
|
|
178190
178237
|
_querySupported = false;
|
|
178238
|
+
/** Responses of [[fetch]] managed by a fetch handler (see [[MapLayerFetchResult.managedByHandler]]). */
|
|
178239
|
+
_handlerManagedFetchResponses = new WeakSet();
|
|
178191
178240
|
get supportsMapFeatureInfo() { return this._querySupported; }
|
|
178192
178241
|
constructor(settings, usesCachedTiles) {
|
|
178193
178242
|
super(settings, usesCachedTiles);
|
|
@@ -178212,11 +178261,13 @@ class ArcGISImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE_0__.
|
|
|
178212
178261
|
async getServiceJson() {
|
|
178213
178262
|
let metadata;
|
|
178214
178263
|
try {
|
|
178215
|
-
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() });
|
|
178264
|
+
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() });
|
|
178216
178265
|
}
|
|
178217
178266
|
catch (err) {
|
|
178218
178267
|
if (err instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerUntrustedOriginError)
|
|
178219
178268
|
this.reportBlockedOrigin(err.url);
|
|
178269
|
+
else if (err instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerAuthenticationFailedError)
|
|
178270
|
+
this.setStatus(_tile_internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerImageryProviderStatus.RequireAuth);
|
|
178220
178271
|
}
|
|
178221
178272
|
if (metadata && metadata.accessTokenRequired) {
|
|
178222
178273
|
const accessClient = _IModelApp__WEBPACK_IMPORTED_MODULE_1__.IModelApp.mapLayerFormatRegistry.getAccessClient(this._settings.formatId);
|
|
@@ -178234,6 +178285,56 @@ class ArcGISImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE_0__.
|
|
|
178234
178285
|
}
|
|
178235
178286
|
return metadata;
|
|
178236
178287
|
}
|
|
178288
|
+
/** The default send for [[fetch]]: legacy redirect policy and origin-trust checks for one target.
|
|
178289
|
+
* The NTLM/SSO retry applies only when `allowSsoRetry` (the initial request of an operation), and
|
|
178290
|
+
* never to sends a fetch handler modified.
|
|
178291
|
+
*/
|
|
178292
|
+
async sendArcGisRequest(request, credentialed, allowSsoRetry, options) {
|
|
178293
|
+
const includeCredentials = this.includeUserCredentials(request.url);
|
|
178294
|
+
let rsp = await fetch(request.url, {
|
|
178295
|
+
...options,
|
|
178296
|
+
headers: request.headers,
|
|
178297
|
+
credentials: includeCredentials ? "include" : undefined,
|
|
178298
|
+
// Sends the handler modified may carry injected secrets: same redirect policy as credentialed ones.
|
|
178299
|
+
redirect: (includeCredentials || credentialed) ? ((0,_tile_internal__WEBPACK_IMPORTED_MODULE_0__.credentialedFetchRedirect)() ?? options?.redirect) : options?.redirect,
|
|
178300
|
+
});
|
|
178301
|
+
if (includeCredentials || credentialed)
|
|
178302
|
+
this.checkCredentialedRedirect(request.url, rsp);
|
|
178303
|
+
if (allowSsoRetry && rsp.status === 401 && !this._lastAccessToken && !credentialed && (0,_request_utils__WEBPACK_IMPORTED_MODULE_3__.headersIncludeAuthMethod)(rsp.headers, ["ntlm", "negotiate"])) {
|
|
178304
|
+
// fetch follows redirects transparently, so trust decisions target the final (post-redirect) URL.
|
|
178305
|
+
const challengedUrl = rsp.url || request.url;
|
|
178306
|
+
if (this.isSsoAllowed(challengedUrl)) {
|
|
178307
|
+
// We got a http 401 challenge, lets try again with SSO enabled (i.e. Windows Authentication).
|
|
178308
|
+
this.logUntrustedOriginUse(challengedUrl);
|
|
178309
|
+
rsp = await fetch(challengedUrl, {
|
|
178310
|
+
...options,
|
|
178311
|
+
credentials: "include",
|
|
178312
|
+
redirect: _IModelApp__WEBPACK_IMPORTED_MODULE_1__.IModelApp.mapLayerFormatRegistry.restrictCredentialsToTrustedOrigins ? "error" : undefined,
|
|
178313
|
+
});
|
|
178314
|
+
if (rsp.status === 200) {
|
|
178315
|
+
this.recordSsoSucceeded(challengedUrl); // avoid going through 401 challenges over and over for this origin
|
|
178316
|
+
}
|
|
178317
|
+
}
|
|
178318
|
+
else {
|
|
178319
|
+
this.reportBlockedOrigin(challengedUrl);
|
|
178320
|
+
}
|
|
178321
|
+
}
|
|
178322
|
+
return rsp;
|
|
178323
|
+
}
|
|
178324
|
+
/** Routes one request - initial, HTML fallback or token retry - through the registered fetch handler
|
|
178325
|
+
* (if any), with fresh headers per request so injected values are neither accumulated nor exposed to
|
|
178326
|
+
* cross-origin redirects.
|
|
178327
|
+
*/
|
|
178328
|
+
async requestViaHandler(target, allowSsoRetry, options) {
|
|
178329
|
+
return (0,_tile_internal__WEBPACK_IMPORTED_MODULE_0__.fetchMapLayerRequest)({
|
|
178330
|
+
url: target.toString(),
|
|
178331
|
+
formatId: this._settings.formatId,
|
|
178332
|
+
layerUrl: this._settings.url,
|
|
178333
|
+
layerProperties: this._settings.properties,
|
|
178334
|
+
headers: new Headers(options?.headers),
|
|
178335
|
+
send: async (request, credentialed) => this.sendArcGisRequest(request, credentialed, allowSsoRetry, options),
|
|
178336
|
+
});
|
|
178337
|
+
}
|
|
178237
178338
|
/**
|
|
178238
178339
|
* Make a request to an ArcGIS service using the provided URL and init parameters.
|
|
178239
178340
|
* @param url URL to query
|
|
@@ -178242,19 +178343,24 @@ class ArcGISImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE_0__.
|
|
|
178242
178343
|
*/
|
|
178243
178344
|
async fetch(url, options) {
|
|
178244
178345
|
let errorCode;
|
|
178245
|
-
const urlObj = new URL(url);
|
|
178246
178346
|
const queryParams = this._settings.collectQueryParams();
|
|
178247
|
-
|
|
178248
|
-
|
|
178249
|
-
|
|
178250
|
-
|
|
178251
|
-
|
|
178252
|
-
this._lastAccessToken = await _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisUtilities.appendSecurityToken(urlObj, this._accessClient, {
|
|
178253
|
-
mapLayerUrl: new URL(this._settings.url),
|
|
178254
|
-
portal: typeof this._settings.properties?.portal === "string" ? this._settings.properties.portal : undefined,
|
|
178255
|
-
userName: this._settings.userName,
|
|
178256
|
-
password: this._settings.password
|
|
178347
|
+
const buildRequestUrl = () => {
|
|
178348
|
+
const requestUrl = new URL(url);
|
|
178349
|
+
Object.keys(queryParams).forEach((paramKey) => {
|
|
178350
|
+
if (!requestUrl.searchParams.has(paramKey))
|
|
178351
|
+
requestUrl.searchParams.append(paramKey, queryParams[paramKey]);
|
|
178257
178352
|
});
|
|
178353
|
+
return requestUrl;
|
|
178354
|
+
};
|
|
178355
|
+
const accessTokenParams = {
|
|
178356
|
+
mapLayerUrl: new URL(this._settings.url),
|
|
178357
|
+
portal: typeof this._settings.properties?.portal === "string" ? this._settings.properties.portal : undefined,
|
|
178358
|
+
userName: this._settings.userName,
|
|
178359
|
+
password: this._settings.password,
|
|
178360
|
+
};
|
|
178361
|
+
const urlObj = buildRequestUrl();
|
|
178362
|
+
if (this._accessTokenRequired && this._accessClient) {
|
|
178363
|
+
this._lastAccessToken = await _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisUtilities.appendSecurityToken(urlObj, this._accessClient, accessTokenParams);
|
|
178258
178364
|
}
|
|
178259
178365
|
// We want to complete the first request before letting other requests go;
|
|
178260
178366
|
// this done to avoid flooding server with requests missing credentials
|
|
@@ -178263,35 +178369,9 @@ class ArcGISImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE_0__.
|
|
|
178263
178369
|
else
|
|
178264
178370
|
await this._firstRequestPromise;
|
|
178265
178371
|
let response;
|
|
178372
|
+
let managedByHandler = false;
|
|
178266
178373
|
try {
|
|
178267
|
-
|
|
178268
|
-
const includeCredentials = this.includeUserCredentials(requestUrl);
|
|
178269
|
-
response = await fetch(urlObj, {
|
|
178270
|
-
...options,
|
|
178271
|
-
credentials: includeCredentials ? "include" : undefined,
|
|
178272
|
-
redirect: includeCredentials ? this.credentialedRedirect : options?.redirect,
|
|
178273
|
-
});
|
|
178274
|
-
if (includeCredentials)
|
|
178275
|
-
this.checkCredentialedRedirect(requestUrl, response);
|
|
178276
|
-
if (response.status === 401 && !this._lastAccessToken && (0,_request_utils__WEBPACK_IMPORTED_MODULE_3__.headersIncludeAuthMethod)(response.headers, ["ntlm", "negotiate"])) {
|
|
178277
|
-
// fetch follows redirects transparently, so trust decisions target the final (post-redirect) URL.
|
|
178278
|
-
const challengedUrl = response.url || requestUrl;
|
|
178279
|
-
if (this.isSsoAllowed(challengedUrl)) {
|
|
178280
|
-
// We got a http 401 challenge, lets try again with SSO enabled (i.e. Windows Authentication).
|
|
178281
|
-
this.logUntrustedOriginUse(challengedUrl);
|
|
178282
|
-
response = await fetch(challengedUrl, {
|
|
178283
|
-
...options,
|
|
178284
|
-
credentials: "include",
|
|
178285
|
-
redirect: _IModelApp__WEBPACK_IMPORTED_MODULE_1__.IModelApp.mapLayerFormatRegistry.restrictCredentialsToTrustedOrigins ? "error" : undefined,
|
|
178286
|
-
});
|
|
178287
|
-
if (response.status === 200) {
|
|
178288
|
-
this.recordSsoSucceeded(challengedUrl); // avoid going through 401 challenges over and over for this origin
|
|
178289
|
-
}
|
|
178290
|
-
}
|
|
178291
|
-
else {
|
|
178292
|
-
this.reportBlockedOrigin(challengedUrl);
|
|
178293
|
-
}
|
|
178294
|
-
}
|
|
178374
|
+
({ response, managedByHandler } = await this.requestViaHandler(urlObj, true, options));
|
|
178295
178375
|
if ((this._lastAccessToken && response.status === 400)
|
|
178296
178376
|
|| response.headers.get("content-type")?.toLowerCase().includes("htm")) {
|
|
178297
178377
|
// For some reasons when we make a request with the fetch() api and there is a token error
|
|
@@ -178302,7 +178382,7 @@ class ArcGISImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE_0__.
|
|
|
178302
178382
|
if (this._lastAccessToken && this._accessTokenRequired)
|
|
178303
178383
|
tmpUrl.searchParams.append("token", this._lastAccessToken.token);
|
|
178304
178384
|
tmpUrl.searchParams.append("f", "json");
|
|
178305
|
-
response = await
|
|
178385
|
+
({ response, managedByHandler } = await this.requestViaHandler(tmpUrl, false, options));
|
|
178306
178386
|
}
|
|
178307
178387
|
errorCode = await _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisUtilities.checkForResponseErrorCode(response);
|
|
178308
178388
|
if (errorCode !== undefined &&
|
|
@@ -178314,19 +178394,21 @@ class ArcGISImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE_0__.
|
|
|
178314
178394
|
// Token might have expired, make a second attempt by forcing new token.
|
|
178315
178395
|
if (this._accessClient?.invalidateToken !== undefined && this._lastAccessToken !== undefined)
|
|
178316
178396
|
this._accessClient.invalidateToken(this._lastAccessToken);
|
|
178317
|
-
|
|
178397
|
+
// A fresh URL: the expired token must not remain as a first `token` parameter.
|
|
178398
|
+
const retryUrl = buildRequestUrl();
|
|
178318
178399
|
if (this._accessClient) {
|
|
178319
178400
|
try {
|
|
178320
|
-
this._lastAccessToken = await _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisUtilities.appendSecurityToken(
|
|
178401
|
+
this._lastAccessToken = await _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisUtilities.appendSecurityToken(retryUrl, this._accessClient, accessTokenParams);
|
|
178321
178402
|
}
|
|
178322
178403
|
catch {
|
|
178323
178404
|
}
|
|
178324
178405
|
}
|
|
178325
178406
|
// Make a second attempt with refreshed token
|
|
178326
|
-
response = await
|
|
178407
|
+
({ response, managedByHandler } = await this.requestViaHandler(retryUrl, false, options));
|
|
178327
178408
|
errorCode = await _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisUtilities.checkForResponseErrorCode(response);
|
|
178328
178409
|
}
|
|
178329
|
-
|
|
178410
|
+
// An error code in a response managed by the fetch handler is not classified here.
|
|
178411
|
+
if (!managedByHandler && errorCode !== undefined &&
|
|
178330
178412
|
(errorCode === _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisErrorCode.TokenRequired
|
|
178331
178413
|
|| errorCode === _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisErrorCode.InvalidToken
|
|
178332
178414
|
|| errorCode === _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisErrorCode.MissingPermissions)) {
|
|
@@ -178341,13 +178423,24 @@ class ArcGISImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE_0__.
|
|
|
178341
178423
|
}
|
|
178342
178424
|
}
|
|
178343
178425
|
}
|
|
178426
|
+
catch (error) {
|
|
178427
|
+
if (error instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerAuthenticationFailedError)
|
|
178428
|
+
this.reportAuthenticationFailure();
|
|
178429
|
+
throw error;
|
|
178430
|
+
}
|
|
178344
178431
|
finally {
|
|
178345
178432
|
this.onFirstRequestCompleted.raiseEvent();
|
|
178346
178433
|
}
|
|
178347
178434
|
if (response === undefined)
|
|
178348
178435
|
throw new Error("fetch call failed");
|
|
178436
|
+
if (managedByHandler)
|
|
178437
|
+
this._handlerManagedFetchResponses.add(response);
|
|
178349
178438
|
return response;
|
|
178350
178439
|
}
|
|
178440
|
+
/** Also true for responses of [[fetch]] a handler returned as its own. */
|
|
178441
|
+
isManagedByHandler(response) {
|
|
178442
|
+
return this._handlerManagedFetchResponses.has(response) || super.isManagedByHandler(response);
|
|
178443
|
+
}
|
|
178351
178444
|
}
|
|
178352
178445
|
|
|
178353
178446
|
|
|
@@ -178504,14 +178597,15 @@ class ArcGISMapLayerImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MOD
|
|
|
178504
178597
|
const metadata = await this.getServiceJson();
|
|
178505
178598
|
if (metadata?.content === undefined) {
|
|
178506
178599
|
// By returning (i.e., not throwing), we ensure the tile tree gets created and the current provider is preserved to report status.
|
|
178507
|
-
if (this.status === _tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapLayerImageryProviderStatus.UntrustedOrigin)
|
|
178600
|
+
if (this.status === _tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapLayerImageryProviderStatus.UntrustedOrigin || this.status === _tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapLayerImageryProviderStatus.RequireAuth)
|
|
178508
178601
|
return;
|
|
178509
178602
|
throw new _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.ServerError(_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_5__.IModelStatus.ValidationFailed, "");
|
|
178510
178603
|
}
|
|
178511
178604
|
const json = metadata.content;
|
|
178512
|
-
|
|
178513
|
-
|
|
178514
|
-
||
|
|
178605
|
+
const errorCode = metadata.errorCode;
|
|
178606
|
+
if (errorCode === _tile_internal__WEBPACK_IMPORTED_MODULE_2__.ArcGisErrorCode.TokenRequired
|
|
178607
|
+
|| errorCode === _tile_internal__WEBPACK_IMPORTED_MODULE_2__.ArcGisErrorCode.InvalidToken
|
|
178608
|
+
|| errorCode === _tile_internal__WEBPACK_IMPORTED_MODULE_2__.ArcGisErrorCode.MissingPermissions) {
|
|
178515
178609
|
// Check again layer status, it might have change during await.
|
|
178516
178610
|
if (this.status === _tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapLayerImageryProviderStatus.Valid) {
|
|
178517
178611
|
this.setStatus(_tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapLayerImageryProviderStatus.RequireAuth);
|
|
@@ -179527,7 +179621,13 @@ class WmsMapLayerImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE
|
|
|
179527
179621
|
async initialize() {
|
|
179528
179622
|
try {
|
|
179529
179623
|
const credentials = (this._settings.userName && this._settings.password ? { user: this._settings.userName, password: this._settings.password } : undefined);
|
|
179530
|
-
this._capabilities = await _tile_internal__WEBPACK_IMPORTED_MODULE_3__.WmsCapabilities.create(this._baseUrl,
|
|
179624
|
+
this._capabilities = await _tile_internal__WEBPACK_IMPORTED_MODULE_3__.WmsCapabilities.create(this._baseUrl, {
|
|
179625
|
+
credentials,
|
|
179626
|
+
queryParams: this._settings.collectQueryParams(),
|
|
179627
|
+
formatId: this._settings.formatId,
|
|
179628
|
+
layerUrl: this._settings.url,
|
|
179629
|
+
layerProperties: this._settings.properties,
|
|
179630
|
+
});
|
|
179531
179631
|
if (undefined !== this._capabilities) {
|
|
179532
179632
|
this._allLayersRange = this._capabilities.cartoRange;
|
|
179533
179633
|
if (this._capabilities.layer && Array.isArray(this._capabilities.layer.subLayers)) {
|
|
@@ -179561,7 +179661,7 @@ class WmsMapLayerImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE
|
|
|
179561
179661
|
if (error instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_3__.MapLayerUntrustedOriginError) {
|
|
179562
179662
|
this.reportBlockedOrigin(error.url);
|
|
179563
179663
|
}
|
|
179564
|
-
else if (error?.status === 401) {
|
|
179664
|
+
else if (error instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_3__.MapLayerAuthenticationFailedError || error?.status === 401) {
|
|
179565
179665
|
this.setStatus(_tile_internal__WEBPACK_IMPORTED_MODULE_3__.MapLayerImageryProviderStatus.RequireAuth);
|
|
179566
179666
|
}
|
|
179567
179667
|
else {
|
|
@@ -179724,7 +179824,13 @@ class WmtsMapLayerImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODUL
|
|
|
179724
179824
|
async initialize() {
|
|
179725
179825
|
try {
|
|
179726
179826
|
const credentials = (this._settings.userName && this._settings.password ? { user: this._settings.userName, password: this._settings.password } : undefined);
|
|
179727
|
-
this._capabilities = await _tile_internal__WEBPACK_IMPORTED_MODULE_2__.WmtsCapabilities.create(this._baseUrl,
|
|
179827
|
+
this._capabilities = await _tile_internal__WEBPACK_IMPORTED_MODULE_2__.WmtsCapabilities.create(this._baseUrl, {
|
|
179828
|
+
credentials,
|
|
179829
|
+
queryParams: this._settings.collectQueryParams(),
|
|
179830
|
+
formatId: this._settings.formatId,
|
|
179831
|
+
layerUrl: this._settings.url,
|
|
179832
|
+
layerProperties: this._settings.properties,
|
|
179833
|
+
});
|
|
179728
179834
|
this.initPreferredTileMatrixSet();
|
|
179729
179835
|
this.initPreferredStyle();
|
|
179730
179836
|
this.initDisplayedLayer();
|
|
@@ -179740,7 +179846,7 @@ class WmtsMapLayerImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODUL
|
|
|
179740
179846
|
if (error instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapLayerUntrustedOriginError) {
|
|
179741
179847
|
this.reportBlockedOrigin(error.url);
|
|
179742
179848
|
}
|
|
179743
|
-
else if (error?.status === 401) {
|
|
179849
|
+
else if (error instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapLayerAuthenticationFailedError || error?.status === 401) {
|
|
179744
179850
|
this.setStatus(_tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapLayerImageryProviderStatus.RequireAuth);
|
|
179745
179851
|
}
|
|
179746
179852
|
else {
|
|
@@ -179900,6 +180006,113 @@ class WmtsMapLayerImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODUL
|
|
|
179900
180006
|
}
|
|
179901
180007
|
|
|
179902
180008
|
|
|
180009
|
+
/***/ },
|
|
180010
|
+
|
|
180011
|
+
/***/ "../../core/frontend/lib/esm/internal/tile/map/MapLayerFetch.js"
|
|
180012
|
+
/*!**********************************************************************!*\
|
|
180013
|
+
!*** ../../core/frontend/lib/esm/internal/tile/map/MapLayerFetch.js ***!
|
|
180014
|
+
\**********************************************************************/
|
|
180015
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
180016
|
+
|
|
180017
|
+
"use strict";
|
|
180018
|
+
__webpack_require__.r(__webpack_exports__);
|
|
180019
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
180020
|
+
/* harmony export */ credentialedFetchRedirect: () => (/* binding */ credentialedFetchRedirect),
|
|
180021
|
+
/* harmony export */ fetchMapLayerRequest: () => (/* binding */ fetchMapLayerRequest)
|
|
180022
|
+
/* harmony export */ });
|
|
180023
|
+
/* harmony import */ var _IModelApp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../IModelApp */ "../../core/frontend/lib/esm/IModelApp.js");
|
|
180024
|
+
/*---------------------------------------------------------------------------------------------
|
|
180025
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
180026
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
180027
|
+
*--------------------------------------------------------------------------------------------*/
|
|
180028
|
+
/** @packageDocumentation
|
|
180029
|
+
* @module Tiles
|
|
180030
|
+
*/
|
|
180031
|
+
|
|
180032
|
+
/** Routes an outgoing map-layer request through the pipeline of [[MapLayerFetchHandler]]s registered via
|
|
180033
|
+
* [[MapLayerFormatRegistry.addMapLayerFetchHandler]]; issues the default send directly when there is none or
|
|
180034
|
+
* every handler declines. A handler may decline, pass a copy of the request with other query parameters or
|
|
180035
|
+
* headers to `fetchRequest` (which offers it to the remaining handlers, then sends it credentialed), call it
|
|
180036
|
+
* any number of times, short-circuit with its own response, or throw [[MapLayerAuthenticationFailedError]].
|
|
180037
|
+
* @internal
|
|
180038
|
+
*/
|
|
180039
|
+
async function fetchMapLayerRequest(args) {
|
|
180040
|
+
const headers = args.headers ?? new Headers();
|
|
180041
|
+
const { layerUrl, layerProperties, formatId } = args;
|
|
180042
|
+
// Snapshot: registrations changing while a handler awaits must not shift the pipeline of a request in flight.
|
|
180043
|
+
const handlers = [...(_IModelApp__WEBPACK_IMPORTED_MODULE_0__.IModelApp.mapLayerFormatRegistry?.mapLayerFetchHandlers ?? [])];
|
|
180044
|
+
let parsed;
|
|
180045
|
+
if (handlers.length > 0) {
|
|
180046
|
+
try {
|
|
180047
|
+
// Relative URLs are valid targets (fetch resolves them against the document); resolve them the same way so
|
|
180048
|
+
// they are not opted out of the pipeline. Parsing only: the URL sent stays the caller's unless its query changes.
|
|
180049
|
+
parsed = new URL(args.url, typeof document !== "undefined" ? document.baseURI : undefined);
|
|
180050
|
+
}
|
|
180051
|
+
catch {
|
|
180052
|
+
// Not a parseable URL; issue the original request unhandled.
|
|
180053
|
+
}
|
|
180054
|
+
}
|
|
180055
|
+
if (!parsed) {
|
|
180056
|
+
const unhandled = await args.send({ url: args.url, layerUrl, layerProperties, formatId, searchParams: new URLSearchParams(), headers }, false);
|
|
180057
|
+
return { response: unhandled, managedByHandler: false };
|
|
180058
|
+
}
|
|
180059
|
+
const original = parsed;
|
|
180060
|
+
const originalSearch = original.searchParams.toString();
|
|
180061
|
+
const request = { url: args.url, layerUrl, layerProperties, formatId, searchParams: original.searchParams, headers };
|
|
180062
|
+
// Copies the mutable fields (including provider properties and their arrays; `readonly` is shallow), so a handler that
|
|
180063
|
+
// mutates its request in place and then declines cannot leak the mutation to the next handler or to the default
|
|
180064
|
+
// send. The URL string stays ours verbatim (URL serialization would normalize it) unless the query parameters
|
|
180065
|
+
// changed, in which case it is recomputed from them; the target never changes.
|
|
180066
|
+
const snapshot = (source) => {
|
|
180067
|
+
const searchParams = new URLSearchParams(source.searchParams);
|
|
180068
|
+
let url = args.url;
|
|
180069
|
+
if (searchParams.toString() !== originalSearch) {
|
|
180070
|
+
const changed = new URL(original);
|
|
180071
|
+
changed.search = searchParams.toString();
|
|
180072
|
+
url = changed.toString();
|
|
180073
|
+
}
|
|
180074
|
+
// Properties are informational layer context, not handler-editable request data. Always clone the
|
|
180075
|
+
// original settings, not source.layerProperties, so forwarding a modified copy cannot change that context.
|
|
180076
|
+
return { url, layerUrl, layerProperties: layerProperties === undefined ? undefined : structuredClone(layerProperties), formatId, searchParams, headers: new Headers(source.headers) };
|
|
180077
|
+
};
|
|
180078
|
+
// Offers the request to handlers[index..]: a declined request goes unchanged to the next handler; a request a
|
|
180079
|
+
// handler sends is offered to the remaining ones, then issued credentialed.
|
|
180080
|
+
const dispatch = async (index, toOffer) => {
|
|
180081
|
+
for (let i = index; i < handlers.length; ++i) {
|
|
180082
|
+
const handled = await handlers[i](snapshot(toOffer), async (toSend) => {
|
|
180083
|
+
const next = snapshot(toSend);
|
|
180084
|
+
return (await dispatch(i + 1, next)) ?? args.send(next, true);
|
|
180085
|
+
});
|
|
180086
|
+
if (handled)
|
|
180087
|
+
return handled;
|
|
180088
|
+
}
|
|
180089
|
+
return undefined;
|
|
180090
|
+
};
|
|
180091
|
+
const response = await dispatch(0, request);
|
|
180092
|
+
if (response)
|
|
180093
|
+
return { response, managedByHandler: true };
|
|
180094
|
+
return { response: await args.send(request, false), managedByHandler: false };
|
|
180095
|
+
}
|
|
180096
|
+
/** The redirect policy for a request that carries credentials: browser credentials (see
|
|
180097
|
+
* [[MapLayerImageryProvider.includeUserCredentials]]), settings-derived basic auth, or values a fetch handler
|
|
180098
|
+
* injected (see [[MapLayerFetchRequest]]).
|
|
180099
|
+
*
|
|
180100
|
+
* When [[MapLayerFormatRegistry.restrictCredentialsToTrustedOrigins]] is enabled, redirects are refused
|
|
180101
|
+
* outright (`"error"`). `fetch` cannot be asked to follow only same-origin redirects, and by the time a
|
|
180102
|
+
* followed redirect can be inspected the credentials have already been delivered to the destination — so
|
|
180103
|
+
* refusing is the only way to honour the guarantee that credentials reach none but the origins listed in
|
|
180104
|
+
* [[MapLayerFormatRegistry.trustedCredentialsOrigins]]. Legitimate same-origin redirects fail as a result;
|
|
180105
|
+
* that is the cost of the opt-in restriction.
|
|
180106
|
+
*
|
|
180107
|
+
* When the restriction is disabled (the default), redirects are followed as before and
|
|
180108
|
+
* [[MapLayerImageryProvider.checkCredentialedRedirect]] reports the destination after the fact.
|
|
180109
|
+
* @internal
|
|
180110
|
+
*/
|
|
180111
|
+
function credentialedFetchRedirect() {
|
|
180112
|
+
return _IModelApp__WEBPACK_IMPORTED_MODULE_0__.IModelApp.mapLayerFormatRegistry.restrictCredentialsToTrustedOrigins ? "error" : undefined;
|
|
180113
|
+
}
|
|
180114
|
+
|
|
180115
|
+
|
|
179903
180116
|
/***/ },
|
|
179904
180117
|
|
|
179905
180118
|
/***/ "../../core/frontend/lib/esm/internal/tile/map/MapTileAvailability.js"
|
|
@@ -180264,7 +180477,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
180264
180477
|
* @internal
|
|
180265
180478
|
*/
|
|
180266
180479
|
function appendQueryParams(url, queryParams) {
|
|
180267
|
-
if (!queryParams)
|
|
180480
|
+
if (!queryParams || Object.keys(queryParams).length === 0)
|
|
180268
180481
|
return url;
|
|
180269
180482
|
// create a lower-case array of keys
|
|
180270
180483
|
const currentParams = [];
|
|
@@ -180316,7 +180529,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
180316
180529
|
/* harmony export */ WmsCapability: () => (/* binding */ WmsCapability)
|
|
180317
180530
|
/* harmony export */ });
|
|
180318
180531
|
/* 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");
|
|
180319
|
-
/* harmony import */ var
|
|
180532
|
+
/* harmony import */ var _IModelApp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../IModelApp */ "../../core/frontend/lib/esm/IModelApp.js");
|
|
180533
|
+
/* harmony import */ var _tile_internal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../tile/internal */ "../../core/frontend/lib/esm/tile/internal.js");
|
|
180320
180534
|
/*---------------------------------------------------------------------------------------------
|
|
180321
180535
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
180322
180536
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -180326,8 +180540,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
180326
180540
|
*/
|
|
180327
180541
|
|
|
180328
180542
|
|
|
180543
|
+
|
|
180329
180544
|
function rangeFromJSONArray(json) {
|
|
180330
|
-
return (Array.isArray(json) && json.length === 4) ?
|
|
180545
|
+
return (Array.isArray(json) && json.length === 4) ? _tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapCartoRectangle.fromDegrees(json[0], json[1], json[2], json[3]) : undefined;
|
|
180331
180546
|
}
|
|
180332
180547
|
function rangeFromJSON(json) {
|
|
180333
180548
|
if (undefined !== json.LatLonBoundingBox)
|
|
@@ -180523,13 +180738,9 @@ class WmsCapabilities {
|
|
|
180523
180738
|
return undefined; // Degenerate capabilities document
|
|
180524
180739
|
}
|
|
180525
180740
|
}
|
|
180526
|
-
static async create(url,
|
|
180527
|
-
|
|
180528
|
-
|
|
180529
|
-
if (cached !== undefined)
|
|
180530
|
-
return cached;
|
|
180531
|
-
}
|
|
180532
|
-
const tmpUrl = new URL(_tile_internal__WEBPACK_IMPORTED_MODULE_1__.WmsUtilities.getBaseUrl(url));
|
|
180741
|
+
static async create(url, options) {
|
|
180742
|
+
const { credentials, ignoreCache, queryParams, formatId, layerUrl, layerProperties } = options ?? {};
|
|
180743
|
+
const tmpUrl = new URL(_tile_internal__WEBPACK_IMPORTED_MODULE_2__.WmsUtilities.getBaseUrl(url));
|
|
180533
180744
|
tmpUrl.searchParams.append("request", "GetCapabilities");
|
|
180534
180745
|
tmpUrl.searchParams.append("service", "WMS");
|
|
180535
180746
|
if (queryParams) {
|
|
@@ -180538,15 +180749,25 @@ class WmsCapabilities {
|
|
|
180538
180749
|
tmpUrl.searchParams.append(paramKey, queryParams[paramKey]);
|
|
180539
180750
|
});
|
|
180540
180751
|
}
|
|
180541
|
-
const
|
|
180752
|
+
const cacheKey = tmpUrl.toString();
|
|
180753
|
+
// The cache never contains credentialed results (see the write below), so a credentialed request
|
|
180754
|
+
// must not be served a cached public document either; responses customized by the fetch handler
|
|
180755
|
+
// must not be shared with or served from differently-customized requests.
|
|
180756
|
+
const hasFetchHandler = (_IModelApp__WEBPACK_IMPORTED_MODULE_1__.IModelApp.mapLayerFormatRegistry?.mapLayerFetchHandlers.length ?? 0) > 0;
|
|
180757
|
+
if (!ignoreCache && !hasFetchHandler && !credentials) {
|
|
180758
|
+
const cached = WmsCapabilities._capabilitiesCache.get(cacheKey);
|
|
180759
|
+
if (cached !== undefined)
|
|
180760
|
+
return cached;
|
|
180761
|
+
}
|
|
180762
|
+
const xmlCapabilities = await _tile_internal__WEBPACK_IMPORTED_MODULE_2__.WmsUtilities.fetchXml(tmpUrl.toString(), { credentials, formatId: formatId ?? "WMS", layerUrl: layerUrl ?? url, layerProperties });
|
|
180542
180763
|
if (!xmlCapabilities)
|
|
180543
180764
|
return undefined;
|
|
180544
180765
|
const capabilities = WmsCapabilities.tryParse(xmlCapabilities);
|
|
180545
180766
|
if (capabilities === undefined)
|
|
180546
180767
|
return undefined;
|
|
180547
|
-
if (!credentials) {
|
|
180768
|
+
if (!credentials && !hasFetchHandler) {
|
|
180548
180769
|
// Avoid caching protected data
|
|
180549
|
-
WmsCapabilities._capabilitiesCache.set(
|
|
180770
|
+
WmsCapabilities._capabilitiesCache.set(cacheKey, capabilities);
|
|
180550
180771
|
}
|
|
180551
180772
|
return capabilities;
|
|
180552
180773
|
}
|
|
@@ -180584,9 +180805,6 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
180584
180805
|
|
|
180585
180806
|
|
|
180586
180807
|
|
|
180587
|
-
/** @packageDocumentation
|
|
180588
|
-
* @module Tiles
|
|
180589
|
-
*/
|
|
180590
180808
|
/** @internal */
|
|
180591
180809
|
class WmsUtilities {
|
|
180592
180810
|
static getBaseUrl(url) {
|
|
@@ -180597,21 +180815,58 @@ class WmsUtilities {
|
|
|
180597
180815
|
* fetch XML from HTTP request
|
|
180598
180816
|
* @param url server URL to address the request
|
|
180599
180817
|
*/
|
|
180600
|
-
static async fetchXml(url,
|
|
180818
|
+
static async fetchXml(url, options) {
|
|
180819
|
+
const { credentials, formatId, layerUrl, layerProperties } = options ?? {};
|
|
180601
180820
|
let headers;
|
|
180602
|
-
|
|
180821
|
+
const hasCredentials = !!(credentials && credentials.user && credentials.password);
|
|
180822
|
+
if (hasCredentials) {
|
|
180603
180823
|
// Basic credentials are considered settings-derived credentials for this source. When the registry is
|
|
180604
180824
|
// enforcing trusted origins, the source URL itself is the only implicitly trusted origin for basic auth;
|
|
180605
180825
|
// opaque/custom-protocol URLs have no network origin and must therefore be treated as untrusted.
|
|
180606
|
-
|
|
180826
|
+
// Optional chaining: some callers run before IModelApp startup.
|
|
180827
|
+
const allowBasicAuth = !_IModelApp__WEBPACK_IMPORTED_MODULE_0__.IModelApp.mapLayerFormatRegistry?.restrictCredentialsToTrustedOrigins
|
|
180607
180828
|
|| _IModelApp__WEBPACK_IMPORTED_MODULE_0__.IModelApp.mapLayerFormatRegistry.isCredentialsSharingAllowed(url, url);
|
|
180608
180829
|
if (allowBasicAuth) {
|
|
180609
180830
|
headers = new Headers();
|
|
180610
180831
|
(0,_request_utils__WEBPACK_IMPORTED_MODULE_2__.setBasicAuthorization)(headers, credentials);
|
|
180611
180832
|
}
|
|
180612
180833
|
}
|
|
180613
|
-
|
|
180614
|
-
|
|
180834
|
+
const credentialsWithheld = hasCredentials && headers === undefined;
|
|
180835
|
+
// Route the request through the registered fetch handler (if any). Handler failures — including
|
|
180836
|
+
// MapLayerAuthenticationFailedError — propagate so callers can transition to RequireAuth.
|
|
180837
|
+
const { response, managedByHandler } = await (0,_tile_internal__WEBPACK_IMPORTED_MODULE_3__.fetchMapLayerRequest)({
|
|
180838
|
+
url,
|
|
180839
|
+
formatId: formatId ?? "",
|
|
180840
|
+
layerUrl: layerUrl ?? url,
|
|
180841
|
+
layerProperties,
|
|
180842
|
+
headers,
|
|
180843
|
+
send: async (request, credentialed) => {
|
|
180844
|
+
const rsp = await fetch(request.url, {
|
|
180845
|
+
method: "GET",
|
|
180846
|
+
headers: request.headers,
|
|
180847
|
+
// Sends the handler modified may carry injected secrets: same redirect policy as credentialed ones.
|
|
180848
|
+
redirect: credentialed ? (0,_tile_internal__WEBPACK_IMPORTED_MODULE_3__.credentialedFetchRedirect)() : undefined,
|
|
180849
|
+
});
|
|
180850
|
+
// A send the handler modified never falls back to the legacy basic-auth / NTLM-SSO handling:
|
|
180851
|
+
// the handler is the authentication authority for it.
|
|
180852
|
+
return credentialed ? rsp : WmsUtilities.handleLegacyChallenges(rsp, request.url, credentials, credentialsWithheld);
|
|
180853
|
+
},
|
|
180854
|
+
});
|
|
180855
|
+
if (response.status !== 200) {
|
|
180856
|
+
// A status in a response managed by the fetch handler is not an authentication failure (it would have
|
|
180857
|
+
// thrown MapLayerAuthenticationFailedError): report it without a status so callers do not classify it.
|
|
180858
|
+
if (managedByHandler)
|
|
180859
|
+
throw new Error(`Map-layer fetch handler returned status ${response.status} for '${url}'`);
|
|
180860
|
+
throw new _request_Request__WEBPACK_IMPORTED_MODULE_1__.HttpResponseError(response.status, await response.text());
|
|
180861
|
+
}
|
|
180862
|
+
return response.text();
|
|
180863
|
+
}
|
|
180864
|
+
/** Legacy (no injected credentials) challenge handling: basic-auth/untrusted-origin classification and the SSO retry.
|
|
180865
|
+
* `credentialsWithheld` is true when basic credentials exist but were not attached because the origin is untrusted.
|
|
180866
|
+
*/
|
|
180867
|
+
static async handleLegacyChallenges(firstResponse, url, credentials, credentialsWithheld) {
|
|
180868
|
+
let response = firstResponse;
|
|
180869
|
+
if (credentialsWithheld && (response.status === 401 || response.status === 403)) {
|
|
180615
180870
|
throw new _tile_internal__WEBPACK_IMPORTED_MODULE_3__.MapLayerUntrustedOriginError(url);
|
|
180616
180871
|
}
|
|
180617
180872
|
if (!credentials && response.status === 401 && (0,_request_utils__WEBPACK_IMPORTED_MODULE_2__.headersIncludeAuthMethod)(response.headers, ["ntlm", "negotiate"])) {
|
|
@@ -180627,9 +180882,7 @@ class WmsUtilities {
|
|
|
180627
180882
|
redirect: _IModelApp__WEBPACK_IMPORTED_MODULE_0__.IModelApp.mapLayerFormatRegistry.restrictCredentialsToTrustedOrigins ? "error" : undefined,
|
|
180628
180883
|
});
|
|
180629
180884
|
}
|
|
180630
|
-
|
|
180631
|
-
throw new _request_Request__WEBPACK_IMPORTED_MODULE_1__.HttpResponseError(response.status, await response.text());
|
|
180632
|
-
return response.text();
|
|
180885
|
+
return response;
|
|
180633
180886
|
}
|
|
180634
180887
|
}
|
|
180635
180888
|
|
|
@@ -180651,7 +180904,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
180651
180904
|
/* harmony export */ });
|
|
180652
180905
|
/* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
|
|
180653
180906
|
/* harmony import */ var _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @itwin/core-geometry */ "../../core/geometry/lib/esm/core-geometry.js");
|
|
180654
|
-
/* harmony import */ var
|
|
180907
|
+
/* harmony import */ var _IModelApp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../IModelApp */ "../../core/frontend/lib/esm/IModelApp.js");
|
|
180908
|
+
/* harmony import */ var _tile_internal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../tile/internal */ "../../core/frontend/lib/esm/tile/internal.js");
|
|
180655
180909
|
/*---------------------------------------------------------------------------------------------
|
|
180656
180910
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
180657
180911
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -180662,6 +180916,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
180662
180916
|
|
|
180663
180917
|
|
|
180664
180918
|
|
|
180919
|
+
|
|
180665
180920
|
var OwsConstants;
|
|
180666
180921
|
(function (OwsConstants) {
|
|
180667
180922
|
OwsConstants["ABSTRACT_XMLTAG"] = "ows:Abstract";
|
|
@@ -181067,14 +181322,14 @@ var WmtsCapability;
|
|
|
181067
181322
|
upperCornerArray = getElementTextContent(bbox[0], OwsConstants.UPPERCORNER_XMLTAG)?.split(" ").map((x) => +x);
|
|
181068
181323
|
}
|
|
181069
181324
|
if (lowerCornerArray?.length === 2 && upperCornerArray?.length === 2)
|
|
181070
|
-
this.wsg84BoundingBox =
|
|
181325
|
+
this.wsg84BoundingBox = _tile_internal__WEBPACK_IMPORTED_MODULE_3__.MapCartoRectangle.fromDegrees(lowerCornerArray[0], lowerCornerArray[1], upperCornerArray[0], upperCornerArray[1]);
|
|
181071
181326
|
// If we could not initialized WSG84 bounding box, attempt to initialized it from Bounding Box
|
|
181072
181327
|
if (!this.wsg84BoundingBox && (this.boundingBox?.crs?.includes("EPSG:4326") || this.boundingBox?.crs?.includes("CRS:84"))) {
|
|
181073
181328
|
const range = this.boundingBox.range;
|
|
181074
181329
|
if (range)
|
|
181075
|
-
this.wsg84BoundingBox =
|
|
181330
|
+
this.wsg84BoundingBox = _tile_internal__WEBPACK_IMPORTED_MODULE_3__.MapCartoRectangle.fromDegrees(range.low.x, range.low.y, range.high.x, range.high.y);
|
|
181076
181331
|
else
|
|
181077
|
-
this.wsg84BoundingBox =
|
|
181332
|
+
this.wsg84BoundingBox = _tile_internal__WEBPACK_IMPORTED_MODULE_3__.MapCartoRectangle.createMaximum();
|
|
181078
181333
|
}
|
|
181079
181334
|
// Style
|
|
181080
181335
|
const style = elem.getElementsByTagName("Style");
|
|
@@ -181127,13 +181382,9 @@ class WmtsCapabilities {
|
|
|
181127
181382
|
const xmlDoc = parser.parseFromString(xmlCapabilities, "text/xml");
|
|
181128
181383
|
return new WmtsCapabilities(xmlDoc);
|
|
181129
181384
|
}
|
|
181130
|
-
static async create(url,
|
|
181131
|
-
|
|
181132
|
-
|
|
181133
|
-
if (cached !== undefined)
|
|
181134
|
-
return cached;
|
|
181135
|
-
}
|
|
181136
|
-
const tmpUrl = new URL(_tile_internal__WEBPACK_IMPORTED_MODULE_2__.WmsUtilities.getBaseUrl(url));
|
|
181385
|
+
static async create(url, options) {
|
|
181386
|
+
const { credentials, ignoreCache, queryParams, formatId, layerUrl, layerProperties } = options ?? {};
|
|
181387
|
+
const tmpUrl = new URL(_tile_internal__WEBPACK_IMPORTED_MODULE_3__.WmsUtilities.getBaseUrl(url));
|
|
181137
181388
|
tmpUrl.searchParams.append("request", "GetCapabilities");
|
|
181138
181389
|
tmpUrl.searchParams.append("service", "WMTS");
|
|
181139
181390
|
if (queryParams) {
|
|
@@ -181142,12 +181393,22 @@ class WmtsCapabilities {
|
|
|
181142
181393
|
tmpUrl.searchParams.append(paramKey, queryParams[paramKey]);
|
|
181143
181394
|
});
|
|
181144
181395
|
}
|
|
181145
|
-
const
|
|
181396
|
+
const cacheKey = tmpUrl.toString();
|
|
181397
|
+
// The cache never contains credentialed results (see the write below), so a credentialed request
|
|
181398
|
+
// must not be served a cached public document either; responses customized by the fetch handler
|
|
181399
|
+
// must not be shared with or served from differently-customized requests.
|
|
181400
|
+
const hasFetchHandler = (_IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry?.mapLayerFetchHandlers.length ?? 0) > 0;
|
|
181401
|
+
if (!ignoreCache && !hasFetchHandler && !credentials) {
|
|
181402
|
+
const cached = WmtsCapabilities._capabilitiesCache.get(cacheKey);
|
|
181403
|
+
if (cached !== undefined)
|
|
181404
|
+
return cached;
|
|
181405
|
+
}
|
|
181406
|
+
const xmlCapabilities = await _tile_internal__WEBPACK_IMPORTED_MODULE_3__.WmsUtilities.fetchXml(tmpUrl.toString(), { credentials, formatId: formatId ?? "WMTS", layerUrl: layerUrl ?? url, layerProperties });
|
|
181146
181407
|
if (!xmlCapabilities)
|
|
181147
181408
|
return undefined;
|
|
181148
181409
|
const capabilities = WmtsCapabilities.createFromXml(xmlCapabilities);
|
|
181149
|
-
if (capabilities)
|
|
181150
|
-
WmtsCapabilities._capabilitiesCache.set(
|
|
181410
|
+
if (capabilities && !credentials && !hasFetchHandler)
|
|
181411
|
+
WmtsCapabilities._capabilitiesCache.set(cacheKey, capabilities);
|
|
181151
181412
|
return capabilities;
|
|
181152
181413
|
}
|
|
181153
181414
|
}
|
|
@@ -193171,27 +193432,27 @@ var TiledGraphicsProvider;
|
|
|
193171
193432
|
"use strict";
|
|
193172
193433
|
__webpack_require__.r(__webpack_exports__);
|
|
193173
193434
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
193174
|
-
/* harmony export */ AnimatedTreeReference: () => (/* reexport safe */
|
|
193175
|
-
/* harmony export */ ArcGISIdentifyRequestUrl: () => (/* reexport safe */
|
|
193176
|
-
/* harmony export */ ArcGISImageryProvider: () => (/* reexport safe */
|
|
193177
|
-
/* harmony export */ ArcGISMapLayerImageryProvider: () => (/* reexport safe */
|
|
193435
|
+
/* harmony export */ AnimatedTreeReference: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__.AnimatedTreeReference),
|
|
193436
|
+
/* harmony export */ ArcGISIdentifyRequestUrl: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_ArcGISMapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_59__.ArcGISIdentifyRequestUrl),
|
|
193437
|
+
/* harmony export */ ArcGISImageryProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_ArcGISImageryProvider__WEBPACK_IMPORTED_MODULE_55__.ArcGISImageryProvider),
|
|
193438
|
+
/* harmony export */ ArcGISMapLayerImageryProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_ArcGISMapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_59__.ArcGISMapLayerImageryProvider),
|
|
193178
193439
|
/* harmony export */ ArcGISTileMap: () => (/* reexport safe */ _internal_tile_map_ArcGISTileMap__WEBPACK_IMPORTED_MODULE_39__.ArcGISTileMap),
|
|
193179
|
-
/* harmony export */ ArcGisErrorCode: () => (/* reexport safe */
|
|
193180
|
-
/* harmony export */ ArcGisGeometryReaderJSON: () => (/* reexport safe */
|
|
193181
|
-
/* harmony export */ ArcGisUtilities: () => (/* reexport safe */
|
|
193440
|
+
/* harmony export */ ArcGisErrorCode: () => (/* reexport safe */ _internal_tile_map_ArcGisUtilities__WEBPACK_IMPORTED_MODULE_44__.ArcGisErrorCode),
|
|
193441
|
+
/* harmony export */ ArcGisGeometryReaderJSON: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_ArcGisGeometryReaderJSON__WEBPACK_IMPORTED_MODULE_58__.ArcGisGeometryReaderJSON),
|
|
193442
|
+
/* harmony export */ ArcGisUtilities: () => (/* reexport safe */ _internal_tile_map_ArcGisUtilities__WEBPACK_IMPORTED_MODULE_44__.ArcGisUtilities),
|
|
193182
193443
|
/* harmony export */ B3dmReader: () => (/* reexport safe */ _internal_tile_B3dmReader__WEBPACK_IMPORTED_MODULE_34__.B3dmReader),
|
|
193183
193444
|
/* harmony export */ BatchedTileIdMap: () => (/* reexport safe */ _internal_tile_BatchedTileIdMap__WEBPACK_IMPORTED_MODULE_12__.BatchedTileIdMap),
|
|
193184
|
-
/* harmony export */ BingElevationProvider: () => (/* reexport safe */
|
|
193185
|
-
/* harmony export */ BingMapsImageryLayerProvider: () => (/* reexport safe */
|
|
193186
|
-
/* harmony export */ CesiumIonAssetProvider: () => (/* reexport safe */
|
|
193187
|
-
/* harmony export */ ContextShareProvider: () => (/* reexport safe */
|
|
193445
|
+
/* harmony export */ BingElevationProvider: () => (/* reexport safe */ _map_BingElevation__WEBPACK_IMPORTED_MODULE_75__.BingElevationProvider),
|
|
193446
|
+
/* harmony export */ BingMapsImageryLayerProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_BingImageryProvider__WEBPACK_IMPORTED_MODULE_60__.BingMapsImageryLayerProvider),
|
|
193447
|
+
/* harmony export */ CesiumIonAssetProvider: () => (/* reexport safe */ _internal_tile_CesiumAssetProvider__WEBPACK_IMPORTED_MODULE_90__.CesiumIonAssetProvider),
|
|
193448
|
+
/* harmony export */ ContextShareProvider: () => (/* reexport safe */ _internal_tile_ContextShareProvider__WEBPACK_IMPORTED_MODULE_91__.ContextShareProvider),
|
|
193188
193449
|
/* harmony export */ DisclosedTileTreeSet: () => (/* reexport safe */ _DisclosedTileTreeSet__WEBPACK_IMPORTED_MODULE_3__.DisclosedTileTreeSet),
|
|
193189
|
-
/* harmony export */ DynamicIModelTile: () => (/* reexport safe */
|
|
193190
|
-
/* harmony export */ EllipsoidTerrainProvider: () => (/* reexport safe */
|
|
193191
|
-
/* harmony export */ FeatureGeometryBaseRenderer: () => (/* reexport safe */
|
|
193192
|
-
/* harmony export */ FeatureGraphicsRenderer: () => (/* reexport safe */
|
|
193193
|
-
/* harmony export */ FetchCloudStorage: () => (/* reexport safe */
|
|
193194
|
-
/* harmony export */ GeographicTilingScheme: () => (/* reexport safe */
|
|
193450
|
+
/* harmony export */ DynamicIModelTile: () => (/* reexport safe */ _internal_tile_DynamicIModelTile__WEBPACK_IMPORTED_MODULE_82__.DynamicIModelTile),
|
|
193451
|
+
/* harmony export */ EllipsoidTerrainProvider: () => (/* reexport safe */ _map_EllipsoidTerrainProvider__WEBPACK_IMPORTED_MODULE_71__.EllipsoidTerrainProvider),
|
|
193452
|
+
/* harmony export */ FeatureGeometryBaseRenderer: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_FeatureGeometryRenderer__WEBPACK_IMPORTED_MODULE_56__.FeatureGeometryBaseRenderer),
|
|
193453
|
+
/* harmony export */ FeatureGraphicsRenderer: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_FeatureGraphicsRenderer__WEBPACK_IMPORTED_MODULE_57__.FeatureGraphicsRenderer),
|
|
193454
|
+
/* harmony export */ FetchCloudStorage: () => (/* reexport safe */ _internal_tile_FetchCloudStorage__WEBPACK_IMPORTED_MODULE_94__.FetchCloudStorage),
|
|
193455
|
+
/* harmony export */ GeographicTilingScheme: () => (/* reexport safe */ _map_MapTilingScheme__WEBPACK_IMPORTED_MODULE_76__.GeographicTilingScheme),
|
|
193195
193456
|
/* harmony export */ GltfBufferData: () => (/* reexport safe */ _GltfReader__WEBPACK_IMPORTED_MODULE_32__.GltfBufferData),
|
|
193196
193457
|
/* harmony export */ GltfGraphicsReader: () => (/* reexport safe */ _GltfReader__WEBPACK_IMPORTED_MODULE_32__.GltfGraphicsReader),
|
|
193197
193458
|
/* harmony export */ GltfMeshData: () => (/* reexport safe */ _GltfReader__WEBPACK_IMPORTED_MODULE_32__.GltfMeshData),
|
|
@@ -193199,67 +193460,68 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
193199
193460
|
/* harmony export */ GltfReaderProps: () => (/* reexport safe */ _GltfReader__WEBPACK_IMPORTED_MODULE_32__.GltfReaderProps),
|
|
193200
193461
|
/* harmony export */ GraphicsCollectorDrawArgs: () => (/* reexport safe */ _internal_tile_GraphicsCollector__WEBPACK_IMPORTED_MODULE_11__.GraphicsCollectorDrawArgs),
|
|
193201
193462
|
/* harmony export */ I3dmReader: () => (/* reexport safe */ _internal_tile_I3dmReader__WEBPACK_IMPORTED_MODULE_33__.I3dmReader),
|
|
193202
|
-
/* harmony export */ IModelTile: () => (/* reexport safe */
|
|
193463
|
+
/* harmony export */ IModelTile: () => (/* reexport safe */ _internal_tile_IModelTile__WEBPACK_IMPORTED_MODULE_81__.IModelTile),
|
|
193203
193464
|
/* harmony export */ IModelTileRequestChannels: () => (/* reexport safe */ _internal_tile_IModelTileRequestChannels__WEBPACK_IMPORTED_MODULE_27__.IModelTileRequestChannels),
|
|
193204
|
-
/* harmony export */ IModelTileTree: () => (/* reexport safe */
|
|
193205
|
-
/* harmony export */ ImageryMapLayerFormat: () => (/* reexport safe */
|
|
193206
|
-
/* harmony export */ ImageryMapLayerTreeReference: () => (/* reexport safe */
|
|
193207
|
-
/* harmony export */ ImageryMapTile: () => (/* reexport safe */
|
|
193208
|
-
/* harmony export */ ImageryMapTileTree: () => (/* reexport safe */
|
|
193209
|
-
/* harmony export */ ImageryTileTreeState: () => (/* reexport safe */
|
|
193465
|
+
/* harmony export */ IModelTileTree: () => (/* reexport safe */ _internal_tile_IModelTileTree__WEBPACK_IMPORTED_MODULE_83__.IModelTileTree),
|
|
193466
|
+
/* harmony export */ ImageryMapLayerFormat: () => (/* reexport safe */ _map_MapLayerImageryFormats__WEBPACK_IMPORTED_MODULE_65__.ImageryMapLayerFormat),
|
|
193467
|
+
/* harmony export */ ImageryMapLayerTreeReference: () => (/* reexport safe */ _map_ImageryTileTree__WEBPACK_IMPORTED_MODULE_87__.ImageryMapLayerTreeReference),
|
|
193468
|
+
/* harmony export */ ImageryMapTile: () => (/* reexport safe */ _map_ImageryTileTree__WEBPACK_IMPORTED_MODULE_87__.ImageryMapTile),
|
|
193469
|
+
/* harmony export */ ImageryMapTileTree: () => (/* reexport safe */ _map_ImageryTileTree__WEBPACK_IMPORTED_MODULE_87__.ImageryMapTileTree),
|
|
193470
|
+
/* harmony export */ ImageryTileTreeState: () => (/* reexport safe */ _map_ImageryTileTree__WEBPACK_IMPORTED_MODULE_87__.ImageryTileTreeState),
|
|
193210
193471
|
/* harmony export */ ImdlReader: () => (/* reexport safe */ _ImdlReader__WEBPACK_IMPORTED_MODULE_35__.ImdlReader),
|
|
193211
193472
|
/* harmony export */ LRUTileList: () => (/* reexport safe */ _internal_tile_LRUTileList__WEBPACK_IMPORTED_MODULE_5__.LRUTileList),
|
|
193212
|
-
/* harmony export */ LayerTextureParams: () => (/* reexport safe */
|
|
193473
|
+
/* harmony export */ LayerTextureParams: () => (/* reexport safe */ _internal_render_webgl_MapLayerParams__WEBPACK_IMPORTED_MODULE_96__.LayerTextureParams),
|
|
193213
193474
|
/* harmony export */ LayerTileTreeHandler: () => (/* reexport safe */ _internal_tile_LayerTileTreeHandler__WEBPACK_IMPORTED_MODULE_20__.LayerTileTreeHandler),
|
|
193214
193475
|
/* harmony export */ LayerTileTreeReferenceHandler: () => (/* reexport safe */ _internal_tile_LayerTileTreeReferenceHandler__WEBPACK_IMPORTED_MODULE_19__.LayerTileTreeReferenceHandler),
|
|
193215
|
-
/* harmony export */ MapBoxLayerImageryProvider: () => (/* reexport safe */
|
|
193476
|
+
/* harmony export */ MapBoxLayerImageryProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_MapBoxLayerImageryProvider__WEBPACK_IMPORTED_MODULE_61__.MapBoxLayerImageryProvider),
|
|
193216
193477
|
/* harmony export */ MapCartoRectangle: () => (/* reexport safe */ _map_MapCartoRectangle__WEBPACK_IMPORTED_MODULE_1__.MapCartoRectangle),
|
|
193217
|
-
/* harmony export */ MapFeatureInfoRecord: () => (/* reexport safe */
|
|
193218
|
-
/* harmony export */
|
|
193219
|
-
/* harmony export */
|
|
193220
|
-
/* harmony export */
|
|
193221
|
-
/* harmony export */
|
|
193222
|
-
/* harmony export */
|
|
193223
|
-
/* harmony export */
|
|
193224
|
-
/* harmony export */
|
|
193225
|
-
/* harmony export */
|
|
193226
|
-
/* harmony export */
|
|
193227
|
-
/* harmony export */
|
|
193228
|
-
/* harmony export */
|
|
193229
|
-
/* harmony export */
|
|
193230
|
-
/* harmony export */
|
|
193231
|
-
/* harmony export */
|
|
193232
|
-
/* harmony export */
|
|
193233
|
-
/* harmony export */
|
|
193234
|
-
/* harmony export */
|
|
193235
|
-
/* harmony export */
|
|
193236
|
-
/* harmony export */
|
|
193237
|
-
/* harmony export */
|
|
193238
|
-
/* harmony export */
|
|
193239
|
-
/* harmony export */
|
|
193240
|
-
/* harmony export */
|
|
193241
|
-
/* harmony export */
|
|
193242
|
-
/* harmony export */
|
|
193478
|
+
/* harmony export */ MapFeatureInfoRecord: () => (/* reexport safe */ _map_MapFeatureInfo__WEBPACK_IMPORTED_MODULE_42__.MapFeatureInfoRecord),
|
|
193479
|
+
/* harmony export */ MapLayerAuthenticationFailedError: () => (/* reexport safe */ _map_MapLayerFormatRegistry__WEBPACK_IMPORTED_MODULE_43__.MapLayerAuthenticationFailedError),
|
|
193480
|
+
/* harmony export */ MapLayerFeatureRecord: () => (/* reexport safe */ _map_MapFeatureInfo__WEBPACK_IMPORTED_MODULE_42__.MapLayerFeatureRecord),
|
|
193481
|
+
/* harmony export */ MapLayerFormat: () => (/* reexport safe */ _map_MapLayerFormatRegistry__WEBPACK_IMPORTED_MODULE_43__.MapLayerFormat),
|
|
193482
|
+
/* harmony export */ MapLayerFormatRegistry: () => (/* reexport safe */ _map_MapLayerFormatRegistry__WEBPACK_IMPORTED_MODULE_43__.MapLayerFormatRegistry),
|
|
193483
|
+
/* harmony export */ MapLayerImageryProvider: () => (/* reexport safe */ _map_MapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_51__.MapLayerImageryProvider),
|
|
193484
|
+
/* harmony export */ MapLayerImageryProviderStatus: () => (/* reexport safe */ _map_MapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_51__.MapLayerImageryProviderStatus),
|
|
193485
|
+
/* harmony export */ MapLayerSource: () => (/* reexport safe */ _map_MapLayerSources__WEBPACK_IMPORTED_MODULE_88__.MapLayerSource),
|
|
193486
|
+
/* harmony export */ MapLayerSourceStatus: () => (/* reexport safe */ _map_MapLayerSources__WEBPACK_IMPORTED_MODULE_88__.MapLayerSourceStatus),
|
|
193487
|
+
/* harmony export */ MapLayerSources: () => (/* reexport safe */ _map_MapLayerSources__WEBPACK_IMPORTED_MODULE_88__.MapLayerSources),
|
|
193488
|
+
/* harmony export */ MapLayerTileTreeReference: () => (/* reexport safe */ _map_MapLayerTileTreeReference__WEBPACK_IMPORTED_MODULE_66__.MapLayerTileTreeReference),
|
|
193489
|
+
/* harmony export */ MapLayerUntrustedOriginError: () => (/* reexport safe */ _map_MapLayerFormatRegistry__WEBPACK_IMPORTED_MODULE_43__.MapLayerUntrustedOriginError),
|
|
193490
|
+
/* harmony export */ MapTile: () => (/* reexport safe */ _map_MapTile__WEBPACK_IMPORTED_MODULE_72__.MapTile),
|
|
193491
|
+
/* harmony export */ MapTileLoader: () => (/* reexport safe */ _internal_tile_map_MapTileLoader__WEBPACK_IMPORTED_MODULE_74__.MapTileLoader),
|
|
193492
|
+
/* harmony export */ MapTileProjection: () => (/* reexport safe */ _map_MapTile__WEBPACK_IMPORTED_MODULE_72__.MapTileProjection),
|
|
193493
|
+
/* harmony export */ MapTileTree: () => (/* reexport safe */ _map_MapTileTree__WEBPACK_IMPORTED_MODULE_67__.MapTileTree),
|
|
193494
|
+
/* harmony export */ MapTileTreeReference: () => (/* reexport safe */ _map_MapTileTree__WEBPACK_IMPORTED_MODULE_67__.MapTileTreeReference),
|
|
193495
|
+
/* harmony export */ MapTileTreeScaleRangeVisibility: () => (/* reexport safe */ _map_MapTileTree__WEBPACK_IMPORTED_MODULE_67__.MapTileTreeScaleRangeVisibility),
|
|
193496
|
+
/* harmony export */ MapTiledGraphicsProvider: () => (/* reexport safe */ _map_MapTiledGraphicsProvider__WEBPACK_IMPORTED_MODULE_89__.MapTiledGraphicsProvider),
|
|
193497
|
+
/* harmony export */ MapTilingScheme: () => (/* reexport safe */ _map_MapTilingScheme__WEBPACK_IMPORTED_MODULE_76__.MapTilingScheme),
|
|
193498
|
+
/* harmony export */ ModelMapLayerTileTreeReference: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__.ModelMapLayerTileTreeReference),
|
|
193499
|
+
/* harmony export */ OPCFormatInterpreter: () => (/* reexport safe */ _internal_tile_OPCFormatInterpreter__WEBPACK_IMPORTED_MODULE_93__.OPCFormatInterpreter),
|
|
193500
|
+
/* harmony export */ OrbitGtTileTree: () => (/* reexport safe */ _internal_tile_OrbitGtTileTree__WEBPACK_IMPORTED_MODULE_86__.OrbitGtTileTree),
|
|
193501
|
+
/* harmony export */ OrbitGtTreeReference: () => (/* reexport safe */ _internal_tile_OrbitGtTileTree__WEBPACK_IMPORTED_MODULE_86__.OrbitGtTreeReference),
|
|
193502
|
+
/* harmony export */ PlanarProjection: () => (/* reexport safe */ _map_MapTile__WEBPACK_IMPORTED_MODULE_72__.PlanarProjection),
|
|
193503
|
+
/* harmony export */ PlanarTilePatch: () => (/* reexport safe */ _map_MapTile__WEBPACK_IMPORTED_MODULE_72__.PlanarTilePatch),
|
|
193504
|
+
/* harmony export */ ProjectedTexture: () => (/* reexport safe */ _internal_render_webgl_MapLayerParams__WEBPACK_IMPORTED_MODULE_96__.ProjectedTexture),
|
|
193243
193505
|
/* harmony export */ QuadId: () => (/* reexport safe */ _map_QuadId__WEBPACK_IMPORTED_MODULE_2__.QuadId),
|
|
193244
193506
|
/* harmony export */ ReadonlyTileUserSet: () => (/* reexport safe */ _internal_tile_TileUserSet__WEBPACK_IMPORTED_MODULE_31__.ReadonlyTileUserSet),
|
|
193245
|
-
/* harmony export */ RealityModelTileTree: () => (/* reexport safe */
|
|
193246
|
-
/* harmony export */ RealityModelTileTreeProps: () => (/* reexport safe */
|
|
193247
|
-
/* harmony export */ RealityModelTileUtils: () => (/* reexport safe */
|
|
193507
|
+
/* harmony export */ RealityModelTileTree: () => (/* reexport safe */ _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_79__.RealityModelTileTree),
|
|
193508
|
+
/* harmony export */ RealityModelTileTreeProps: () => (/* reexport safe */ _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_79__.RealityModelTileTreeProps),
|
|
193509
|
+
/* harmony export */ RealityModelTileUtils: () => (/* reexport safe */ _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_79__.RealityModelTileUtils),
|
|
193248
193510
|
/* harmony export */ RealityTile: () => (/* reexport safe */ _RealityTile__WEBPACK_IMPORTED_MODULE_6__.RealityTile),
|
|
193249
193511
|
/* harmony export */ RealityTileDrawArgs: () => (/* reexport safe */ _internal_tile_RealityTileDrawArgs__WEBPACK_IMPORTED_MODULE_10__.RealityTileDrawArgs),
|
|
193250
|
-
/* harmony export */ RealityTileLoader: () => (/* reexport safe */
|
|
193251
|
-
/* harmony export */ RealityTileRegion: () => (/* reexport safe */
|
|
193512
|
+
/* harmony export */ RealityTileLoader: () => (/* reexport safe */ _internal_tile_RealityTileLoader__WEBPACK_IMPORTED_MODULE_73__.RealityTileLoader),
|
|
193513
|
+
/* harmony export */ RealityTileRegion: () => (/* reexport safe */ _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_79__.RealityTileRegion),
|
|
193252
193514
|
/* harmony export */ RealityTileTree: () => (/* reexport safe */ _RealityTileTree__WEBPACK_IMPORTED_MODULE_15__.RealityTileTree),
|
|
193253
|
-
/* harmony export */ RealityTreeReference: () => (/* reexport safe */
|
|
193254
|
-
/* harmony export */ SelectParent: () => (/* reexport safe */
|
|
193255
|
-
/* harmony export */ SpatialClassifierTileTreeReference: () => (/* reexport safe */
|
|
193256
|
-
/* harmony export */ SpatialTileTreeReferences: () => (/* reexport safe */
|
|
193257
|
-
/* harmony export */ TerrainMeshProvider: () => (/* reexport safe */
|
|
193258
|
-
/* harmony export */ TerrainProviderRegistry: () => (/* reexport safe */
|
|
193259
|
-
/* harmony export */ ThreeDTileFormatInterpreter: () => (/* reexport safe */
|
|
193515
|
+
/* harmony export */ RealityTreeReference: () => (/* reexport safe */ _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_79__.RealityTreeReference),
|
|
193516
|
+
/* harmony export */ SelectParent: () => (/* reexport safe */ _internal_tile_IModelTile__WEBPACK_IMPORTED_MODULE_81__.SelectParent),
|
|
193517
|
+
/* harmony export */ SpatialClassifierTileTreeReference: () => (/* reexport safe */ _internal_tile_ClassifierTileTree__WEBPACK_IMPORTED_MODULE_85__.SpatialClassifierTileTreeReference),
|
|
193518
|
+
/* harmony export */ SpatialTileTreeReferences: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__.SpatialTileTreeReferences),
|
|
193519
|
+
/* harmony export */ TerrainMeshProvider: () => (/* reexport safe */ _map_TerrainMeshProvider__WEBPACK_IMPORTED_MODULE_68__.TerrainMeshProvider),
|
|
193520
|
+
/* harmony export */ TerrainProviderRegistry: () => (/* reexport safe */ _map_TerrainProvider__WEBPACK_IMPORTED_MODULE_69__.TerrainProviderRegistry),
|
|
193521
|
+
/* harmony export */ ThreeDTileFormatInterpreter: () => (/* reexport safe */ _internal_tile_ThreeDTileFormatInterpreter__WEBPACK_IMPORTED_MODULE_92__.ThreeDTileFormatInterpreter),
|
|
193260
193522
|
/* harmony export */ Tile: () => (/* reexport safe */ _Tile__WEBPACK_IMPORTED_MODULE_4__.Tile),
|
|
193261
193523
|
/* harmony export */ TileAdmin: () => (/* reexport safe */ _TileAdmin__WEBPACK_IMPORTED_MODULE_23__.TileAdmin),
|
|
193262
|
-
/* harmony export */ TileAvailability: () => (/* reexport safe */
|
|
193524
|
+
/* harmony export */ TileAvailability: () => (/* reexport safe */ _internal_tile_map_MapTileAvailability__WEBPACK_IMPORTED_MODULE_77__.TileAvailability),
|
|
193263
193525
|
/* harmony export */ TileBoundingBoxes: () => (/* reexport safe */ _Tile__WEBPACK_IMPORTED_MODULE_4__.TileBoundingBoxes),
|
|
193264
193526
|
/* harmony export */ TileDrawArgs: () => (/* reexport safe */ _TileDrawArgs__WEBPACK_IMPORTED_MODULE_9__.TileDrawArgs),
|
|
193265
193527
|
/* harmony export */ TileGeometryCollector: () => (/* reexport safe */ _TileGeometryCollector__WEBPACK_IMPORTED_MODULE_21__.TileGeometryCollector),
|
|
@@ -193274,7 +193536,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
193274
193536
|
/* harmony export */ TileTree: () => (/* reexport safe */ _TileTree__WEBPACK_IMPORTED_MODULE_14__.TileTree),
|
|
193275
193537
|
/* harmony export */ TileTreeLoadStatus: () => (/* reexport safe */ _TileTree__WEBPACK_IMPORTED_MODULE_14__.TileTreeLoadStatus),
|
|
193276
193538
|
/* harmony export */ TileTreeReference: () => (/* reexport safe */ _TileTreeReference__WEBPACK_IMPORTED_MODULE_18__.TileTreeReference),
|
|
193277
|
-
/* harmony export */ TileUrlImageryProvider: () => (/* reexport safe */
|
|
193539
|
+
/* harmony export */ TileUrlImageryProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_TileUrlImageryProvider__WEBPACK_IMPORTED_MODULE_62__.TileUrlImageryProvider),
|
|
193278
193540
|
/* harmony export */ TileUsageMarker: () => (/* reexport safe */ _TileUsageMarker__WEBPACK_IMPORTED_MODULE_29__.TileUsageMarker),
|
|
193279
193541
|
/* harmony export */ TileUser: () => (/* reexport safe */ _TileUser__WEBPACK_IMPORTED_MODULE_30__.TileUser),
|
|
193280
193542
|
/* harmony export */ TileUserIdSet: () => (/* reexport safe */ _internal_tile_LRUTileList__WEBPACK_IMPORTED_MODULE_5__.TileUserIdSet),
|
|
@@ -193285,66 +193547,68 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
193285
193547
|
/* harmony export */ TraversalDetails: () => (/* reexport safe */ _RealityTileTree__WEBPACK_IMPORTED_MODULE_15__.TraversalDetails),
|
|
193286
193548
|
/* harmony export */ TraversalSelectionContext: () => (/* reexport safe */ _RealityTileTree__WEBPACK_IMPORTED_MODULE_15__.TraversalSelectionContext),
|
|
193287
193549
|
/* harmony export */ UniqueTileUserSets: () => (/* reexport safe */ _internal_tile_TileUserSet__WEBPACK_IMPORTED_MODULE_31__.UniqueTileUserSets),
|
|
193288
|
-
/* harmony export */ UpsampledMapTile: () => (/* reexport safe */
|
|
193289
|
-
/* harmony export */ WebMercator: () => (/* reexport safe */
|
|
193290
|
-
/* harmony export */ WebMercatorProjection: () => (/* reexport safe */
|
|
193291
|
-
/* harmony export */ WebMercatorTilingScheme: () => (/* reexport safe */
|
|
193292
|
-
/* harmony export */ WmsCapabilities: () => (/* reexport safe */
|
|
193293
|
-
/* harmony export */ WmsCapability: () => (/* reexport safe */
|
|
193294
|
-
/* harmony export */ WmsMapLayerImageryProvider: () => (/* reexport safe */
|
|
193295
|
-
/* harmony export */ WmsUtilities: () => (/* reexport safe */
|
|
193296
|
-
/* harmony export */ WmtsCapabilities: () => (/* reexport safe */
|
|
193297
|
-
/* harmony export */ WmtsCapability: () => (/* reexport safe */
|
|
193298
|
-
/* harmony export */ WmtsConstants: () => (/* reexport safe */
|
|
193299
|
-
/* harmony export */ WmtsMapLayerImageryProvider: () => (/* reexport safe */
|
|
193550
|
+
/* harmony export */ UpsampledMapTile: () => (/* reexport safe */ _map_MapTile__WEBPACK_IMPORTED_MODULE_72__.UpsampledMapTile),
|
|
193551
|
+
/* harmony export */ WebMercator: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_WebMercator__WEBPACK_IMPORTED_MODULE_52__.WebMercator),
|
|
193552
|
+
/* harmony export */ WebMercatorProjection: () => (/* reexport safe */ _map_MapTilingScheme__WEBPACK_IMPORTED_MODULE_76__.WebMercatorProjection),
|
|
193553
|
+
/* harmony export */ WebMercatorTilingScheme: () => (/* reexport safe */ _map_MapTilingScheme__WEBPACK_IMPORTED_MODULE_76__.WebMercatorTilingScheme),
|
|
193554
|
+
/* harmony export */ WmsCapabilities: () => (/* reexport safe */ _internal_tile_map_WmsCapabilities__WEBPACK_IMPORTED_MODULE_47__.WmsCapabilities),
|
|
193555
|
+
/* harmony export */ WmsCapability: () => (/* reexport safe */ _internal_tile_map_WmsCapabilities__WEBPACK_IMPORTED_MODULE_47__.WmsCapability),
|
|
193556
|
+
/* harmony export */ WmsMapLayerImageryProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_WmsMapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_63__.WmsMapLayerImageryProvider),
|
|
193557
|
+
/* harmony export */ WmsUtilities: () => (/* reexport safe */ _internal_tile_map_WmsUtilities__WEBPACK_IMPORTED_MODULE_46__.WmsUtilities),
|
|
193558
|
+
/* harmony export */ WmtsCapabilities: () => (/* reexport safe */ _internal_tile_map_WmtsCapabilities__WEBPACK_IMPORTED_MODULE_48__.WmtsCapabilities),
|
|
193559
|
+
/* harmony export */ WmtsCapability: () => (/* reexport safe */ _internal_tile_map_WmtsCapabilities__WEBPACK_IMPORTED_MODULE_48__.WmtsCapability),
|
|
193560
|
+
/* harmony export */ WmtsConstants: () => (/* reexport safe */ _internal_tile_map_WmtsCapabilities__WEBPACK_IMPORTED_MODULE_48__.WmtsConstants),
|
|
193561
|
+
/* harmony export */ WmtsMapLayerImageryProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_WmtsMapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_64__.WmtsMapLayerImageryProvider),
|
|
193300
193562
|
/* harmony export */ acquireImdlDecoder: () => (/* reexport safe */ _internal_tile_ImdlDecoder__WEBPACK_IMPORTED_MODULE_36__.acquireImdlDecoder),
|
|
193301
193563
|
/* harmony export */ acquireImdlParser: () => (/* reexport safe */ _internal_tile_ImdlParser__WEBPACK_IMPORTED_MODULE_38__.acquireImdlParser),
|
|
193302
193564
|
/* harmony export */ addRangeGraphic: () => (/* reexport safe */ _Tile__WEBPACK_IMPORTED_MODULE_4__.addRangeGraphic),
|
|
193303
|
-
/* harmony export */ appendQueryParams: () => (/* reexport safe */
|
|
193304
|
-
/* harmony export */ collectMaskRefs: () => (/* reexport safe */
|
|
193305
|
-
/* harmony export */ compareMapLayer: () => (/* reexport safe */
|
|
193306
|
-
/* harmony export */ computeCesiumTokenTimeoutInterval: () => (/* reexport safe */
|
|
193307
|
-
/* harmony export */ computeVerticalDatumShift: () => (/* reexport safe */
|
|
193308
|
-
/* harmony export */ createClassifierTileTreeReference: () => (/* reexport safe */
|
|
193565
|
+
/* harmony export */ appendQueryParams: () => (/* reexport safe */ _internal_tile_map_UrlUtils__WEBPACK_IMPORTED_MODULE_50__.appendQueryParams),
|
|
193566
|
+
/* harmony export */ collectMaskRefs: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__.collectMaskRefs),
|
|
193567
|
+
/* harmony export */ compareMapLayer: () => (/* reexport safe */ _internal_render_webgl_MapLayerParams__WEBPACK_IMPORTED_MODULE_96__.compareMapLayer),
|
|
193568
|
+
/* harmony export */ computeCesiumTokenTimeoutInterval: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_70__.computeCesiumTokenTimeoutInterval),
|
|
193569
|
+
/* harmony export */ computeVerticalDatumShift: () => (/* reexport safe */ _internal_tile_OrbitGtTileTree__WEBPACK_IMPORTED_MODULE_86__.computeVerticalDatumShift),
|
|
193570
|
+
/* harmony export */ createClassifierTileTreeReference: () => (/* reexport safe */ _internal_tile_ClassifierTileTree__WEBPACK_IMPORTED_MODULE_85__.createClassifierTileTreeReference),
|
|
193309
193571
|
/* harmony export */ createDefaultViewFlagOverrides: () => (/* reexport safe */ _internal_tile_ViewFlagOverrides__WEBPACK_IMPORTED_MODULE_0__.createDefaultViewFlagOverrides),
|
|
193310
193572
|
/* harmony export */ createGraphicFromDescription: () => (/* reexport safe */ _internal_tile_ImdlGraphicsCreator__WEBPACK_IMPORTED_MODULE_37__.createGraphicFromDescription),
|
|
193311
193573
|
/* harmony export */ createGraphicTemplateFromDescription: () => (/* reexport safe */ _internal_tile_ImdlGraphicsCreator__WEBPACK_IMPORTED_MODULE_37__.createGraphicTemplateFromDescription),
|
|
193312
|
-
/* harmony export */ createMapLayerTreeReference: () => (/* reexport safe */
|
|
193313
|
-
/* harmony export */ createMaskTreeReference: () => (/* reexport safe */
|
|
193314
|
-
/* harmony export */ createModelMapLayerTileTreeReference: () => (/* reexport safe */
|
|
193315
|
-
/* harmony export */ createOrbitGtTileTreeReference: () => (/* reexport safe */
|
|
193316
|
-
/* harmony export */ createPrimaryTileTreeReference: () => (/* reexport safe */
|
|
193317
|
-
/* harmony export */ createReaderPropsWithBaseUrl: () => (/* reexport safe */
|
|
193318
|
-
/* harmony export */ createRealityTileTreeReference: () => (/* reexport safe */
|
|
193319
|
-
/* harmony export */ createSpatialTileTreeReferences: () => (/* reexport safe */
|
|
193574
|
+
/* harmony export */ createMapLayerTreeReference: () => (/* reexport safe */ _map_MapLayerTileTreeReference__WEBPACK_IMPORTED_MODULE_66__.createMapLayerTreeReference),
|
|
193575
|
+
/* harmony export */ createMaskTreeReference: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__.createMaskTreeReference),
|
|
193576
|
+
/* harmony export */ createModelMapLayerTileTreeReference: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__.createModelMapLayerTileTreeReference),
|
|
193577
|
+
/* harmony export */ createOrbitGtTileTreeReference: () => (/* reexport safe */ _internal_tile_OrbitGtTileTree__WEBPACK_IMPORTED_MODULE_86__.createOrbitGtTileTreeReference),
|
|
193578
|
+
/* harmony export */ createPrimaryTileTreeReference: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__.createPrimaryTileTreeReference),
|
|
193579
|
+
/* harmony export */ createReaderPropsWithBaseUrl: () => (/* reexport safe */ _internal_tile_RealityTileLoader__WEBPACK_IMPORTED_MODULE_73__.createReaderPropsWithBaseUrl),
|
|
193580
|
+
/* harmony export */ createRealityTileTreeReference: () => (/* reexport safe */ _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_79__.createRealityTileTreeReference),
|
|
193581
|
+
/* harmony export */ createSpatialTileTreeReferences: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__.createSpatialTileTreeReferences),
|
|
193582
|
+
/* harmony export */ credentialedFetchRedirect: () => (/* reexport safe */ _internal_tile_map_MapLayerFetch__WEBPACK_IMPORTED_MODULE_45__.credentialedFetchRedirect),
|
|
193320
193583
|
/* harmony export */ decodeImdlGraphics: () => (/* reexport safe */ _internal_tile_ImdlGraphicsCreator__WEBPACK_IMPORTED_MODULE_37__.decodeImdlGraphics),
|
|
193321
|
-
/* harmony export */ decodeMeshoptBuffer: () => (/* reexport safe */
|
|
193322
|
-
/* harmony export */ deflateCoordinates: () => (/* reexport safe */
|
|
193323
|
-
/* harmony export */ disposeTileTreesForGeometricModels: () => (/* reexport safe */
|
|
193324
|
-
/* harmony export */ escapeHtml: () => (/* reexport safe */
|
|
193325
|
-
/* harmony export */
|
|
193326
|
-
/* harmony export */
|
|
193327
|
-
/* harmony export */
|
|
193328
|
-
/* harmony export */
|
|
193329
|
-
/* harmony export */
|
|
193330
|
-
/* harmony export */
|
|
193331
|
-
/* harmony export */
|
|
193584
|
+
/* harmony export */ decodeMeshoptBuffer: () => (/* reexport safe */ _internal_tile_MeshoptCompression__WEBPACK_IMPORTED_MODULE_95__.decodeMeshoptBuffer),
|
|
193585
|
+
/* harmony export */ deflateCoordinates: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_CoordinatesUtils__WEBPACK_IMPORTED_MODULE_49__.deflateCoordinates),
|
|
193586
|
+
/* harmony export */ disposeTileTreesForGeometricModels: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__.disposeTileTreesForGeometricModels),
|
|
193587
|
+
/* harmony export */ escapeHtml: () => (/* reexport safe */ _map_MapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_51__.escapeHtml),
|
|
193588
|
+
/* harmony export */ fetchMapLayerRequest: () => (/* reexport safe */ _internal_tile_map_MapLayerFetch__WEBPACK_IMPORTED_MODULE_45__.fetchMapLayerRequest),
|
|
193589
|
+
/* harmony export */ getCesiumAccessClient: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_70__.getCesiumAccessClient),
|
|
193590
|
+
/* harmony export */ getCesiumAccessTokenAndEndpointUrl: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_70__.getCesiumAccessTokenAndEndpointUrl),
|
|
193591
|
+
/* harmony export */ getCesiumAssetUrl: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_70__.getCesiumAssetUrl),
|
|
193592
|
+
/* harmony export */ getCesiumOSMBuildingsUrl: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_70__.getCesiumOSMBuildingsUrl),
|
|
193593
|
+
/* harmony export */ getCesiumTerrainEndpointErrorDescription: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_70__.getCesiumTerrainEndpointErrorDescription),
|
|
193594
|
+
/* harmony export */ getCesiumTerrainProvider: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_70__.getCesiumTerrainProvider),
|
|
193595
|
+
/* harmony export */ getGcsConverterAvailable: () => (/* reexport safe */ _map_MapTileTree__WEBPACK_IMPORTED_MODULE_67__.getGcsConverterAvailable),
|
|
193332
193596
|
/* harmony export */ getMeshPrimitives: () => (/* reexport safe */ _GltfReader__WEBPACK_IMPORTED_MODULE_32__.getMeshPrimitives),
|
|
193333
|
-
/* harmony export */ getMeshoptDecoder: () => (/* reexport safe */
|
|
193334
|
-
/* harmony export */ iModelTileParamsFromJSON: () => (/* reexport safe */
|
|
193335
|
-
/* harmony export */ iModelTileTreeParamsFromJSON: () => (/* reexport safe */
|
|
193336
|
-
/* harmony export */ internalMapLayerImageryFormats: () => (/* reexport safe */
|
|
193597
|
+
/* harmony export */ getMeshoptDecoder: () => (/* reexport safe */ _internal_tile_MeshoptCompression__WEBPACK_IMPORTED_MODULE_95__.getMeshoptDecoder),
|
|
193598
|
+
/* harmony export */ iModelTileParamsFromJSON: () => (/* reexport safe */ _internal_tile_IModelTile__WEBPACK_IMPORTED_MODULE_81__.iModelTileParamsFromJSON),
|
|
193599
|
+
/* harmony export */ iModelTileTreeParamsFromJSON: () => (/* reexport safe */ _internal_tile_IModelTileTree__WEBPACK_IMPORTED_MODULE_83__.iModelTileTreeParamsFromJSON),
|
|
193600
|
+
/* harmony export */ internalMapLayerImageryFormats: () => (/* reexport safe */ _map_MapLayerImageryFormats__WEBPACK_IMPORTED_MODULE_65__.internalMapLayerImageryFormats),
|
|
193337
193601
|
/* harmony export */ overrideRequestTileTreeProps: () => (/* reexport safe */ _TileAdmin__WEBPACK_IMPORTED_MODULE_23__.overrideRequestTileTreeProps),
|
|
193338
193602
|
/* harmony export */ readElementGraphics: () => (/* reexport safe */ _ImdlReader__WEBPACK_IMPORTED_MODULE_35__.readElementGraphics),
|
|
193339
193603
|
/* harmony export */ readGltf: () => (/* reexport safe */ _GltfReader__WEBPACK_IMPORTED_MODULE_32__.readGltf),
|
|
193340
193604
|
/* harmony export */ readGltfGraphics: () => (/* reexport safe */ _GltfReader__WEBPACK_IMPORTED_MODULE_32__.readGltfGraphics),
|
|
193341
193605
|
/* harmony export */ readGltfTemplate: () => (/* reexport safe */ _GltfReader__WEBPACK_IMPORTED_MODULE_32__.readGltfTemplate),
|
|
193342
193606
|
/* harmony export */ readImdlContent: () => (/* reexport safe */ _ImdlReader__WEBPACK_IMPORTED_MODULE_35__.readImdlContent),
|
|
193343
|
-
/* harmony export */ readPntsColors: () => (/* reexport safe */
|
|
193344
|
-
/* harmony export */ readPointCloudTileContent: () => (/* reexport safe */
|
|
193345
|
-
/* harmony export */ resolveCesiumTerrainEndpoint: () => (/* reexport safe */
|
|
193346
|
-
/* harmony export */ tileTreeReferenceFromRenderGraphic: () => (/* reexport safe */
|
|
193347
|
-
/* harmony export */ tryGetOrigin: () => (/* reexport safe */
|
|
193607
|
+
/* harmony export */ readPntsColors: () => (/* reexport safe */ _internal_tile_PntsReader__WEBPACK_IMPORTED_MODULE_78__.readPntsColors),
|
|
193608
|
+
/* harmony export */ readPointCloudTileContent: () => (/* reexport safe */ _internal_tile_PntsReader__WEBPACK_IMPORTED_MODULE_78__.readPointCloudTileContent),
|
|
193609
|
+
/* harmony export */ resolveCesiumTerrainEndpoint: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_70__.resolveCesiumTerrainEndpoint),
|
|
193610
|
+
/* harmony export */ tileTreeReferenceFromRenderGraphic: () => (/* reexport safe */ _RenderGraphicTileTree__WEBPACK_IMPORTED_MODULE_80__.tileTreeReferenceFromRenderGraphic),
|
|
193611
|
+
/* harmony export */ tryGetOrigin: () => (/* reexport safe */ _map_MapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_51__.tryGetOrigin)
|
|
193348
193612
|
/* harmony export */ });
|
|
193349
193613
|
/* harmony import */ var _internal_tile_ViewFlagOverrides__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../internal/tile/ViewFlagOverrides */ "../../core/frontend/lib/esm/internal/tile/ViewFlagOverrides.js");
|
|
193350
193614
|
/* harmony import */ var _map_MapCartoRectangle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./map/MapCartoRectangle */ "../../core/frontend/lib/esm/tile/map/MapCartoRectangle.js");
|
|
@@ -193387,60 +193651,62 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
193387
193651
|
/* harmony import */ var _internal_tile_ImdlParser__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ../internal/tile/ImdlParser */ "../../core/frontend/lib/esm/internal/tile/ImdlParser.js");
|
|
193388
193652
|
/* 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");
|
|
193389
193653
|
/* harmony import */ var _map_MapLayerAuthentication__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./map/MapLayerAuthentication */ "../../core/frontend/lib/esm/tile/map/MapLayerAuthentication.js");
|
|
193390
|
-
/* harmony import */ var
|
|
193391
|
-
/* harmony import */ var
|
|
193392
|
-
/* harmony import */ var
|
|
193393
|
-
/* harmony import */ var
|
|
193394
|
-
/* harmony import */ var
|
|
193395
|
-
/* harmony import */ var
|
|
193396
|
-
/* harmony import */ var
|
|
193397
|
-
/* harmony import */ var
|
|
193398
|
-
/* harmony import */ var
|
|
193399
|
-
/* harmony import */ var
|
|
193400
|
-
/* harmony import */ var
|
|
193401
|
-
/* harmony import */ var
|
|
193402
|
-
/* harmony import */ var
|
|
193403
|
-
/* harmony import */ var
|
|
193404
|
-
/* harmony import */ var
|
|
193405
|
-
/* harmony import */ var
|
|
193406
|
-
/* harmony import */ var
|
|
193407
|
-
/* harmony import */ var
|
|
193408
|
-
/* harmony import */ var
|
|
193409
|
-
/* harmony import */ var
|
|
193410
|
-
/* harmony import */ var
|
|
193411
|
-
/* harmony import */ var
|
|
193412
|
-
/* harmony import */ var
|
|
193413
|
-
/* harmony import */ var
|
|
193414
|
-
/* harmony import */ var
|
|
193415
|
-
/* harmony import */ var
|
|
193416
|
-
/* harmony import */ var
|
|
193417
|
-
/* harmony import */ var
|
|
193418
|
-
/* harmony import */ var
|
|
193419
|
-
/* harmony import */ var
|
|
193420
|
-
/* harmony import */ var
|
|
193421
|
-
/* harmony import */ var
|
|
193422
|
-
/* harmony import */ var
|
|
193423
|
-
/* harmony import */ var
|
|
193424
|
-
/* harmony import */ var
|
|
193425
|
-
/* harmony import */ var
|
|
193426
|
-
/* harmony import */ var
|
|
193427
|
-
/* harmony import */ var
|
|
193428
|
-
/* harmony import */ var
|
|
193429
|
-
/* harmony import */ var
|
|
193430
|
-
/* harmony import */ var
|
|
193431
|
-
/* harmony import */ var
|
|
193432
|
-
/* harmony import */ var
|
|
193433
|
-
/* harmony import */ var
|
|
193434
|
-
/* harmony import */ var
|
|
193435
|
-
/* harmony import */ var
|
|
193436
|
-
/* harmony import */ var
|
|
193437
|
-
/* harmony import */ var
|
|
193438
|
-
/* harmony import */ var
|
|
193439
|
-
/* harmony import */ var
|
|
193440
|
-
/* harmony import */ var
|
|
193441
|
-
/* harmony import */ var
|
|
193442
|
-
/* harmony import */ var
|
|
193443
|
-
/* harmony import */ var
|
|
193654
|
+
/* harmony import */ var _map_MapLayerFetchHandler__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./map/MapLayerFetchHandler */ "../../core/frontend/lib/esm/tile/map/MapLayerFetchHandler.js");
|
|
193655
|
+
/* harmony import */ var _map_MapFeatureInfo__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./map/MapFeatureInfo */ "../../core/frontend/lib/esm/tile/map/MapFeatureInfo.js");
|
|
193656
|
+
/* harmony import */ var _map_MapLayerFormatRegistry__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./map/MapLayerFormatRegistry */ "../../core/frontend/lib/esm/tile/map/MapLayerFormatRegistry.js");
|
|
193657
|
+
/* 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");
|
|
193658
|
+
/* 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");
|
|
193659
|
+
/* 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");
|
|
193660
|
+
/* 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");
|
|
193661
|
+
/* 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");
|
|
193662
|
+
/* 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");
|
|
193663
|
+
/* 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");
|
|
193664
|
+
/* harmony import */ var _map_MapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./map/MapLayerImageryProvider */ "../../core/frontend/lib/esm/tile/map/MapLayerImageryProvider.js");
|
|
193665
|
+
/* 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");
|
|
193666
|
+
/* 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");
|
|
193667
|
+
/* 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");
|
|
193668
|
+
/* 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");
|
|
193669
|
+
/* 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");
|
|
193670
|
+
/* 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");
|
|
193671
|
+
/* 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");
|
|
193672
|
+
/* 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");
|
|
193673
|
+
/* 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");
|
|
193674
|
+
/* 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");
|
|
193675
|
+
/* 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");
|
|
193676
|
+
/* 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");
|
|
193677
|
+
/* 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");
|
|
193678
|
+
/* harmony import */ var _map_MapLayerImageryFormats__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./map/MapLayerImageryFormats */ "../../core/frontend/lib/esm/tile/map/MapLayerImageryFormats.js");
|
|
193679
|
+
/* harmony import */ var _map_MapLayerTileTreeReference__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./map/MapLayerTileTreeReference */ "../../core/frontend/lib/esm/tile/map/MapLayerTileTreeReference.js");
|
|
193680
|
+
/* harmony import */ var _map_MapTileTree__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./map/MapTileTree */ "../../core/frontend/lib/esm/tile/map/MapTileTree.js");
|
|
193681
|
+
/* harmony import */ var _map_TerrainMeshProvider__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./map/TerrainMeshProvider */ "../../core/frontend/lib/esm/tile/map/TerrainMeshProvider.js");
|
|
193682
|
+
/* harmony import */ var _map_TerrainProvider__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./map/TerrainProvider */ "../../core/frontend/lib/esm/tile/map/TerrainProvider.js");
|
|
193683
|
+
/* harmony import */ var _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./map/CesiumTerrainProvider */ "../../core/frontend/lib/esm/tile/map/CesiumTerrainProvider.js");
|
|
193684
|
+
/* harmony import */ var _map_EllipsoidTerrainProvider__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./map/EllipsoidTerrainProvider */ "../../core/frontend/lib/esm/tile/map/EllipsoidTerrainProvider.js");
|
|
193685
|
+
/* harmony import */ var _map_MapTile__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ./map/MapTile */ "../../core/frontend/lib/esm/tile/map/MapTile.js");
|
|
193686
|
+
/* harmony import */ var _internal_tile_RealityTileLoader__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ../internal/tile/RealityTileLoader */ "../../core/frontend/lib/esm/internal/tile/RealityTileLoader.js");
|
|
193687
|
+
/* 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");
|
|
193688
|
+
/* harmony import */ var _map_BingElevation__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ./map/BingElevation */ "../../core/frontend/lib/esm/tile/map/BingElevation.js");
|
|
193689
|
+
/* harmony import */ var _map_MapTilingScheme__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ./map/MapTilingScheme */ "../../core/frontend/lib/esm/tile/map/MapTilingScheme.js");
|
|
193690
|
+
/* 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");
|
|
193691
|
+
/* harmony import */ var _internal_tile_PntsReader__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ../internal/tile/PntsReader */ "../../core/frontend/lib/esm/internal/tile/PntsReader.js");
|
|
193692
|
+
/* harmony import */ var _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ../internal/tile/RealityModelTileTree */ "../../core/frontend/lib/esm/internal/tile/RealityModelTileTree.js");
|
|
193693
|
+
/* harmony import */ var _RenderGraphicTileTree__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ./RenderGraphicTileTree */ "../../core/frontend/lib/esm/tile/RenderGraphicTileTree.js");
|
|
193694
|
+
/* harmony import */ var _internal_tile_IModelTile__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ../internal/tile/IModelTile */ "../../core/frontend/lib/esm/internal/tile/IModelTile.js");
|
|
193695
|
+
/* harmony import */ var _internal_tile_DynamicIModelTile__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ../internal/tile/DynamicIModelTile */ "../../core/frontend/lib/esm/internal/tile/DynamicIModelTile.js");
|
|
193696
|
+
/* harmony import */ var _internal_tile_IModelTileTree__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ../internal/tile/IModelTileTree */ "../../core/frontend/lib/esm/internal/tile/IModelTileTree.js");
|
|
193697
|
+
/* harmony import */ var _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ../internal/tile/PrimaryTileTree */ "../../core/frontend/lib/esm/internal/tile/PrimaryTileTree.js");
|
|
193698
|
+
/* harmony import */ var _internal_tile_ClassifierTileTree__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ../internal/tile/ClassifierTileTree */ "../../core/frontend/lib/esm/internal/tile/ClassifierTileTree.js");
|
|
193699
|
+
/* harmony import */ var _internal_tile_OrbitGtTileTree__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ../internal/tile/OrbitGtTileTree */ "../../core/frontend/lib/esm/internal/tile/OrbitGtTileTree.js");
|
|
193700
|
+
/* harmony import */ var _map_ImageryTileTree__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ./map/ImageryTileTree */ "../../core/frontend/lib/esm/tile/map/ImageryTileTree.js");
|
|
193701
|
+
/* harmony import */ var _map_MapLayerSources__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ./map/MapLayerSources */ "../../core/frontend/lib/esm/tile/map/MapLayerSources.js");
|
|
193702
|
+
/* harmony import */ var _map_MapTiledGraphicsProvider__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ./map/MapTiledGraphicsProvider */ "../../core/frontend/lib/esm/tile/map/MapTiledGraphicsProvider.js");
|
|
193703
|
+
/* harmony import */ var _internal_tile_CesiumAssetProvider__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ../internal/tile/CesiumAssetProvider */ "../../core/frontend/lib/esm/internal/tile/CesiumAssetProvider.js");
|
|
193704
|
+
/* harmony import */ var _internal_tile_ContextShareProvider__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ../internal/tile/ContextShareProvider */ "../../core/frontend/lib/esm/internal/tile/ContextShareProvider.js");
|
|
193705
|
+
/* harmony import */ var _internal_tile_ThreeDTileFormatInterpreter__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ../internal/tile/ThreeDTileFormatInterpreter */ "../../core/frontend/lib/esm/internal/tile/ThreeDTileFormatInterpreter.js");
|
|
193706
|
+
/* harmony import */ var _internal_tile_OPCFormatInterpreter__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ../internal/tile/OPCFormatInterpreter */ "../../core/frontend/lib/esm/internal/tile/OPCFormatInterpreter.js");
|
|
193707
|
+
/* harmony import */ var _internal_tile_FetchCloudStorage__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ../internal/tile/FetchCloudStorage */ "../../core/frontend/lib/esm/internal/tile/FetchCloudStorage.js");
|
|
193708
|
+
/* harmony import */ var _internal_tile_MeshoptCompression__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ../internal/tile/MeshoptCompression */ "../../core/frontend/lib/esm/internal/tile/MeshoptCompression.js");
|
|
193709
|
+
/* 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");
|
|
193444
193710
|
/*---------------------------------------------------------------------------------------------
|
|
193445
193711
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
193446
193712
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -193551,6 +193817,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
193551
193817
|
|
|
193552
193818
|
|
|
193553
193819
|
|
|
193820
|
+
|
|
193821
|
+
|
|
193554
193822
|
|
|
193555
193823
|
|
|
193556
193824
|
|
|
@@ -195061,6 +195329,26 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
195061
195329
|
|
|
195062
195330
|
|
|
195063
195331
|
|
|
195332
|
+
/***/ },
|
|
195333
|
+
|
|
195334
|
+
/***/ "../../core/frontend/lib/esm/tile/map/MapLayerFetchHandler.js"
|
|
195335
|
+
/*!********************************************************************!*\
|
|
195336
|
+
!*** ../../core/frontend/lib/esm/tile/map/MapLayerFetchHandler.js ***!
|
|
195337
|
+
\********************************************************************/
|
|
195338
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
195339
|
+
|
|
195340
|
+
"use strict";
|
|
195341
|
+
__webpack_require__.r(__webpack_exports__);
|
|
195342
|
+
/*---------------------------------------------------------------------------------------------
|
|
195343
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
195344
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
195345
|
+
*--------------------------------------------------------------------------------------------*/
|
|
195346
|
+
/** @packageDocumentation
|
|
195347
|
+
* @module MapLayers
|
|
195348
|
+
*/
|
|
195349
|
+
|
|
195350
|
+
|
|
195351
|
+
|
|
195064
195352
|
/***/ },
|
|
195065
195353
|
|
|
195066
195354
|
/***/ "../../core/frontend/lib/esm/tile/map/MapLayerFormatRegistry.js"
|
|
@@ -195072,6 +195360,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
195072
195360
|
"use strict";
|
|
195073
195361
|
__webpack_require__.r(__webpack_exports__);
|
|
195074
195362
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
195363
|
+
/* harmony export */ MapLayerAuthenticationFailedError: () => (/* binding */ MapLayerAuthenticationFailedError),
|
|
195075
195364
|
/* harmony export */ MapLayerFormat: () => (/* binding */ MapLayerFormat),
|
|
195076
195365
|
/* harmony export */ MapLayerFormatRegistry: () => (/* binding */ MapLayerFormatRegistry),
|
|
195077
195366
|
/* harmony export */ MapLayerUntrustedOriginError: () => (/* binding */ MapLayerUntrustedOriginError)
|
|
@@ -195155,6 +195444,22 @@ class MapLayerUntrustedOriginError extends Error {
|
|
|
195155
195444
|
this.url = url;
|
|
195156
195445
|
}
|
|
195157
195446
|
}
|
|
195447
|
+
/** Error reporting an unrecoverable authentication failure for a map-layer request.
|
|
195448
|
+
* Thrown by a [[MapLayerFetchHandler]] when it recognizes an authentication failure it cannot fix
|
|
195449
|
+
* silently (e.g. a `401` that survives a token refresh, or a protocol-specific error embedded in a
|
|
195450
|
+
* `200` body); callers convert it to [[MapLayerImageryProviderStatus.RequireAuth]] (tile requests and
|
|
195451
|
+
* provider initialization) or [[MapLayerSourceStatus.RequireAuth]] (source validation), letting the
|
|
195452
|
+
* application prompt for re-authentication.
|
|
195453
|
+
* @beta
|
|
195454
|
+
*/
|
|
195455
|
+
class MapLayerAuthenticationFailedError extends Error {
|
|
195456
|
+
/** The URL of the request that failed to authenticate. */
|
|
195457
|
+
url;
|
|
195458
|
+
constructor(url) {
|
|
195459
|
+
super("Authentication failed for map-layer request");
|
|
195460
|
+
this.url = url;
|
|
195461
|
+
}
|
|
195462
|
+
}
|
|
195158
195463
|
/**
|
|
195159
195464
|
* A registry of MapLayerFormats identified by their unique format IDs. The registry can be accessed via [[IModelApp.mapLayerFormatRegistry]].
|
|
195160
195465
|
* @public
|
|
@@ -195174,6 +195479,30 @@ class MapLayerFormatRegistry {
|
|
|
195174
195479
|
* @beta
|
|
195175
195480
|
*/
|
|
195176
195481
|
restrictCredentialsToTrustedOrigins = false;
|
|
195482
|
+
_fetchHandlers = [];
|
|
195483
|
+
/** Appends a [[MapLayerFetchHandler]] to the pipeline wrapping every map-layer network request issued through
|
|
195484
|
+
* [[MapLayerImageryProvider]] — tiles, tooltips, capabilities, service metadata, and source validation.
|
|
195485
|
+
* Handlers run in registration order (the first registered is the outermost), each deciding whether to
|
|
195486
|
+
* manage a request or decline it to the next one; several layers of an application can therefore register
|
|
195487
|
+
* their own handler without coordinating. Returns the function that removes the handler.
|
|
195488
|
+
* @beta
|
|
195489
|
+
*/
|
|
195490
|
+
addMapLayerFetchHandler(handler) {
|
|
195491
|
+
// One wrapper per registration, so registering the same function twice yields independent removers.
|
|
195492
|
+
const registration = async (request, fetchRequest) => handler(request, fetchRequest);
|
|
195493
|
+
this._fetchHandlers.push(registration);
|
|
195494
|
+
return () => {
|
|
195495
|
+
const index = this._fetchHandlers.indexOf(registration);
|
|
195496
|
+
if (index >= 0)
|
|
195497
|
+
this._fetchHandlers.splice(index, 1);
|
|
195498
|
+
};
|
|
195499
|
+
}
|
|
195500
|
+
/** The registered [[MapLayerFetchHandler]]s, in pipeline order.
|
|
195501
|
+
* @internal
|
|
195502
|
+
*/
|
|
195503
|
+
get mapLayerFetchHandlers() {
|
|
195504
|
+
return this._fetchHandlers;
|
|
195505
|
+
}
|
|
195177
195506
|
constructor(opts) {
|
|
195178
195507
|
this._configOptions = opts ?? {};
|
|
195179
195508
|
_internal__WEBPACK_IMPORTED_MODULE_2__.internalMapLayerImageryFormats.forEach((format) => this.register(format));
|
|
@@ -195383,7 +195712,12 @@ class WmsMapLayerFormat extends ImageryMapLayerFormat {
|
|
|
195383
195712
|
try {
|
|
195384
195713
|
let subLayers;
|
|
195385
195714
|
const maxVisibleSubLayers = 50;
|
|
195386
|
-
const capabilities = await _internal__WEBPACK_IMPORTED_MODULE_0__.WmsCapabilities.create(url,
|
|
195715
|
+
const capabilities = await _internal__WEBPACK_IMPORTED_MODULE_0__.WmsCapabilities.create(url, {
|
|
195716
|
+
credentials: (userName && password ? { user: userName, password } : undefined),
|
|
195717
|
+
ignoreCache,
|
|
195718
|
+
queryParams: source.collectQueryParams(),
|
|
195719
|
+
formatId: source.formatId,
|
|
195720
|
+
});
|
|
195387
195721
|
if (capabilities !== undefined) {
|
|
195388
195722
|
subLayers = capabilities.getSubLayers(false);
|
|
195389
195723
|
const rootsSubLayer = subLayers?.find((sublayer) => sublayer.parent === undefined);
|
|
@@ -195433,7 +195767,10 @@ class WmsMapLayerFormat extends ImageryMapLayerFormat {
|
|
|
195433
195767
|
return { status: _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.UntrustedOrigin, blockedOrigin };
|
|
195434
195768
|
}
|
|
195435
195769
|
let status = _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.InvalidUrl;
|
|
195436
|
-
if (err
|
|
195770
|
+
if (err instanceof _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerAuthenticationFailedError) {
|
|
195771
|
+
status = _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.RequireAuth;
|
|
195772
|
+
}
|
|
195773
|
+
else if (err?.status === 401) {
|
|
195437
195774
|
status = ((userName && password) ? _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.InvalidCredentials : _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.RequireAuth);
|
|
195438
195775
|
}
|
|
195439
195776
|
return { status };
|
|
@@ -195458,7 +195795,12 @@ class WmtsMapLayerFormat extends ImageryMapLayerFormat {
|
|
|
195458
195795
|
const { url, userName, password } = source;
|
|
195459
195796
|
try {
|
|
195460
195797
|
const subLayers = [];
|
|
195461
|
-
const capabilities = await _internal__WEBPACK_IMPORTED_MODULE_0__.WmtsCapabilities.create(url,
|
|
195798
|
+
const capabilities = await _internal__WEBPACK_IMPORTED_MODULE_0__.WmtsCapabilities.create(url, {
|
|
195799
|
+
credentials: (userName && password ? { user: userName, password } : undefined),
|
|
195800
|
+
ignoreCache,
|
|
195801
|
+
queryParams: source.collectQueryParams(),
|
|
195802
|
+
formatId: source.formatId,
|
|
195803
|
+
});
|
|
195462
195804
|
if (!capabilities)
|
|
195463
195805
|
return { status: _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.InvalidUrl };
|
|
195464
195806
|
// Only returns layer that can be published in the Google maps or WGS84 aligned tile trees.
|
|
@@ -195506,7 +195848,10 @@ class WmtsMapLayerFormat extends ImageryMapLayerFormat {
|
|
|
195506
195848
|
return { status: _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.UntrustedOrigin, blockedOrigin };
|
|
195507
195849
|
}
|
|
195508
195850
|
let status = _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.InvalidUrl;
|
|
195509
|
-
if (err
|
|
195851
|
+
if (err instanceof _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerAuthenticationFailedError) {
|
|
195852
|
+
status = _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.RequireAuth;
|
|
195853
|
+
}
|
|
195854
|
+
else if (err?.status === 401) {
|
|
195510
195855
|
status = ((userName && password) ? _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.InvalidCredentials : _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.RequireAuth);
|
|
195511
195856
|
}
|
|
195512
195857
|
return { status };
|
|
@@ -195598,6 +195943,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
195598
195943
|
const tileImageSize = 256, untiledImageSize = 256;
|
|
195599
195944
|
const earthRadius = 6378137;
|
|
195600
195945
|
const doDebugToolTips = false;
|
|
195946
|
+
const loggerCategory = "MapLayerImageryProvider";
|
|
195601
195947
|
/** Escapes HTML metacharacters so the text renders literally when assigned to `innerHTML`.
|
|
195602
195948
|
* Use for any server- or user-supplied string that ends up in the map tooltip, which is rendered
|
|
195603
195949
|
* as HTML by [[MapLayerTileTreeReference.getToolTip]].
|
|
@@ -195884,12 +196230,37 @@ class MapLayerImageryProvider {
|
|
|
195884
196230
|
* @internal
|
|
195885
196231
|
*/
|
|
195886
196232
|
onStatusUpdated(_newStatus) { }
|
|
196233
|
+
/** Transitions to [[MapLayerImageryProviderStatus.RequireAuth]] after a [[MapLayerFetchHandler]] reported an
|
|
196234
|
+
* unrecoverable authentication failure. The user is notified once per transition, and only if tiles had
|
|
196235
|
+
* loaded before: an initialization failure was already reported through source validation.
|
|
196236
|
+
* @internal
|
|
196237
|
+
*/
|
|
196238
|
+
reportAuthenticationFailure() {
|
|
196239
|
+
const alreadyReported = this._status === MapLayerImageryProviderStatus.RequireAuth;
|
|
196240
|
+
this.setStatus(MapLayerImageryProviderStatus.RequireAuth);
|
|
196241
|
+
if (alreadyReported || !this._hasSuccessfullyFetchedTile)
|
|
196242
|
+
return;
|
|
196243
|
+
const msg = _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.localization.getLocalizedString("iModelJs:MapLayers.Messages.LoadTileTokenError", { layerName: this._settings.name });
|
|
196244
|
+
_IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.notifications.outputMessage(new _NotificationManager__WEBPACK_IMPORTED_MODULE_4__.NotifyMessageDetails(_NotificationManager__WEBPACK_IMPORTED_MODULE_4__.OutputMessagePriority.Warning, msg));
|
|
196245
|
+
}
|
|
195887
196246
|
/** @internal */
|
|
195888
196247
|
setRequestAuthorization(headers) {
|
|
195889
196248
|
if (this._settings.userName && this._settings.password) {
|
|
195890
196249
|
(0,_request_utils__WEBPACK_IMPORTED_MODULE_6__.setBasicAuthorization)(headers, this._settings.userName, this._settings.password);
|
|
195891
196250
|
}
|
|
195892
196251
|
}
|
|
196252
|
+
/** The access client registered for this layer's format, if any.
|
|
196253
|
+
* @internal
|
|
196254
|
+
*/
|
|
196255
|
+
get accessClient() {
|
|
196256
|
+
return _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.mapLayerFormatRegistry?.getAccessClient(this._settings.formatId);
|
|
196257
|
+
}
|
|
196258
|
+
/** True while at least one [[MapLayerFetchHandler]] is registered via [[MapLayerFormatRegistry.addMapLayerFetchHandler]].
|
|
196259
|
+
* @internal
|
|
196260
|
+
*/
|
|
196261
|
+
get hasFetchHandler() {
|
|
196262
|
+
return (_IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.mapLayerFormatRegistry?.mapLayerFetchHandlers.length ?? 0) > 0;
|
|
196263
|
+
}
|
|
195893
196264
|
/** Returns true if the given URL has the same origin as this layer's settings URL.
|
|
195894
196265
|
* Used to avoid leaking credentials to third-party hosts.
|
|
195895
196266
|
* @internal
|
|
@@ -195959,28 +196330,12 @@ class MapLayerImageryProvider {
|
|
|
195959
196330
|
logUntrustedOriginUse(url) {
|
|
195960
196331
|
_IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.mapLayerFormatRegistry.logUntrustedOriginUse(url);
|
|
195961
196332
|
}
|
|
195962
|
-
/** The redirect policy to apply to a request that carries browser credentials (see [[includeUserCredentials]]).
|
|
195963
|
-
*
|
|
195964
|
-
* When [[MapLayerFormatRegistry.restrictCredentialsToTrustedOrigins]] is enabled, redirects are refused
|
|
195965
|
-
* outright (`"error"`). `fetch` cannot be asked to follow only same-origin redirects, and by the time a
|
|
195966
|
-
* followed redirect can be inspected the credentials have already been delivered to the destination — so
|
|
195967
|
-
* refusing is the only way to honour the guarantee that credentials reach none but the origins listed in
|
|
195968
|
-
* [[MapLayerFormatRegistry.trustedCredentialsOrigins]]. Legitimate same-origin redirects fail as a result;
|
|
195969
|
-
* that is the cost of the opt-in restriction.
|
|
195970
|
-
*
|
|
195971
|
-
* When the restriction is disabled (the default), redirects are followed as before and
|
|
195972
|
-
* [[checkCredentialedRedirect]] reports the destination after the fact.
|
|
195973
|
-
* @internal
|
|
195974
|
-
*/
|
|
195975
|
-
get credentialedRedirect() {
|
|
195976
|
-
return _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.mapLayerFormatRegistry.restrictCredentialsToTrustedOrigins ? "error" : undefined;
|
|
195977
|
-
}
|
|
195978
196333
|
/** Detects that a request carrying browser credentials (see [[includeUserCredentials]]) was transparently
|
|
195979
196334
|
* redirected to a different origin, and reports or logs that origin.
|
|
195980
196335
|
*
|
|
195981
196336
|
* This is a **best-effort, after-the-fact** signal used only while
|
|
195982
196337
|
* [[MapLayerFormatRegistry.restrictCredentialsToTrustedOrigins]] is disabled, where credentialed requests
|
|
195983
|
-
* still follow redirects (see [[
|
|
196338
|
+
* still follow redirects (see [[credentialedFetchRedirect]]). It cannot prevent the exposure — the credentials
|
|
195984
196339
|
* have already been sent — and it does not fire at all when the destination denies CORS, because `fetch`
|
|
195985
196340
|
* then rejects instead of returning a `Response`. The destination origin is never latched as SSO-succeeded,
|
|
195986
196341
|
* so credentials do not keep flowing to it.
|
|
@@ -195995,46 +196350,32 @@ class MapLayerImageryProvider {
|
|
|
195995
196350
|
else
|
|
195996
196351
|
this.logUntrustedOriginUse(response.url); // no-op when the restriction is enabled
|
|
195997
196352
|
}
|
|
195998
|
-
/**
|
|
195999
|
-
|
|
196000
|
-
|
|
196001
|
-
|
|
196002
|
-
|
|
196003
|
-
|
|
196004
|
-
// `authorization` are excluded: those bypass the origin policy entirely.
|
|
196005
|
-
const hasSettingsCreds = !authorization && !!this._settings.userName && !!this._settings.password;
|
|
196006
|
-
if (authorization) {
|
|
196007
|
-
headers = new Headers();
|
|
196008
|
-
headers.set("Authorization", authorization);
|
|
196009
|
-
}
|
|
196010
|
-
else if (hasSettingsCreds) {
|
|
196011
|
-
if (this.isCredentialsSharingAllowed(url)) {
|
|
196012
|
-
hasCreds = true;
|
|
196013
|
-
headers = new Headers();
|
|
196014
|
-
this.setRequestAuthorization(headers);
|
|
196015
|
-
if (!this.matchesSettingsUrlOrigin(url))
|
|
196016
|
-
this.logUntrustedOriginUse(url);
|
|
196017
|
-
}
|
|
196018
|
-
}
|
|
196019
|
-
const includeCredentials = this.includeUserCredentials(url);
|
|
196353
|
+
/** The default send for [[makeRequest]]: legacy redirect policy, NTLM/SSO handling and origin-trust
|
|
196354
|
+
* checks for one request. The SSO retry never applies to sends a fetch handler modified.
|
|
196355
|
+
*/
|
|
196356
|
+
async sendDefaultRequest(request, credentialed, hasCreds, hasSettingsCreds, timeoutMs) {
|
|
196357
|
+
const requestUrl = request.url;
|
|
196358
|
+
const includeCredentials = this.includeUserCredentials(requestUrl);
|
|
196020
196359
|
const opts = {
|
|
196021
196360
|
method: "GET",
|
|
196022
|
-
headers,
|
|
196361
|
+
headers: request.headers,
|
|
196023
196362
|
credentials: includeCredentials ? "include" : undefined,
|
|
196024
|
-
|
|
196363
|
+
// Sends the handler modified may carry injected secrets: same redirect policy as credentialed ones.
|
|
196364
|
+
redirect: (includeCredentials || credentialed) ? (0,_internal__WEBPACK_IMPORTED_MODULE_5__.credentialedFetchRedirect)() : undefined,
|
|
196025
196365
|
};
|
|
196026
196366
|
if (timeoutMs !== undefined)
|
|
196027
196367
|
(0,_request_utils__WEBPACK_IMPORTED_MODULE_6__.setRequestTimeout)(opts, timeoutMs);
|
|
196028
|
-
|
|
196029
|
-
if (includeCredentials)
|
|
196030
|
-
this.checkCredentialedRedirect(
|
|
196368
|
+
let rsp = await fetch(requestUrl, opts);
|
|
196369
|
+
if (includeCredentials || credentialed)
|
|
196370
|
+
this.checkCredentialedRedirect(requestUrl, rsp);
|
|
196031
196371
|
// fetch follows redirects transparently, so all trust decisions below target the final
|
|
196032
196372
|
// (post-redirect) URL reported by the response, not the URL we asked for.
|
|
196033
|
-
const challengedUrl =
|
|
196034
|
-
if (
|
|
196035
|
-
&& (0,_request_utils__WEBPACK_IMPORTED_MODULE_6__.headersIncludeAuthMethod)(
|
|
196373
|
+
const challengedUrl = rsp.url || requestUrl;
|
|
196374
|
+
if (rsp.status === 401
|
|
196375
|
+
&& (0,_request_utils__WEBPACK_IMPORTED_MODULE_6__.headersIncludeAuthMethod)(rsp.headers, ["ntlm", "negotiate"])
|
|
196036
196376
|
&& !includeCredentials
|
|
196037
|
-
&& !hasCreds
|
|
196377
|
+
&& !hasCreds
|
|
196378
|
+
&& !credentialed) {
|
|
196038
196379
|
if (this.isSsoAllowed(challengedUrl)) {
|
|
196039
196380
|
// Removed the previous headers and make sure "include" credentials is set
|
|
196040
196381
|
opts.headers = undefined;
|
|
@@ -196044,8 +196385,8 @@ class MapLayerImageryProvider {
|
|
|
196044
196385
|
opts.redirect = _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.mapLayerFormatRegistry.restrictCredentialsToTrustedOrigins ? "error" : undefined;
|
|
196045
196386
|
this.logUntrustedOriginUse(challengedUrl);
|
|
196046
196387
|
// We got a http 401 challenge, lets try again with SSO enabled (i.e. Windows Authentication)
|
|
196047
|
-
|
|
196048
|
-
if (
|
|
196388
|
+
rsp = await fetch(challengedUrl, opts);
|
|
196389
|
+
if (rsp.status === 200) {
|
|
196049
196390
|
this.recordSsoSucceeded(challengedUrl); // avoid going through 401 challenges over and over for this origin
|
|
196050
196391
|
}
|
|
196051
196392
|
}
|
|
@@ -196053,16 +196394,69 @@ class MapLayerImageryProvider {
|
|
|
196053
196394
|
this.reportBlockedOrigin(challengedUrl);
|
|
196054
196395
|
}
|
|
196055
196396
|
}
|
|
196056
|
-
else if ((
|
|
196397
|
+
else if ((rsp.status === 401 || rsp.status === 403) && hasSettingsCreds && !credentialed && !this.isCredentialsSharingAllowed(challengedUrl)) {
|
|
196057
196398
|
// Some servers answer an unauthenticated request with 403 (Forbidden) rather than a 401 challenge;
|
|
196058
196399
|
// since this request could not present its credentials to the challenging origin, either status most
|
|
196059
|
-
// likely results from that
|
|
196400
|
+
// likely results from that (never on a send the handler modified: the handler classifies those).
|
|
196401
|
+
// The permission is recomputed for the challenged URL rather than reusing the
|
|
196060
196402
|
// decision made for the requested one: `fetch` strips the Authorization header when it follows a
|
|
196061
196403
|
// cross-origin redirect, so a trusted request can still arrive unauthenticated at an untrusted origin,
|
|
196062
196404
|
// and conversely a request that started out untrusted may end up at an origin that is trusted.
|
|
196063
196405
|
this.reportBlockedOrigin(challengedUrl);
|
|
196064
196406
|
}
|
|
196065
|
-
return
|
|
196407
|
+
return rsp;
|
|
196408
|
+
}
|
|
196409
|
+
/** @internal */
|
|
196410
|
+
async makeRequest(url, timeoutMs, authorization) {
|
|
196411
|
+
let headers;
|
|
196412
|
+
let hasCreds = false;
|
|
196413
|
+
// Whether this request had basic-auth credentials of its own to offer. Requests carrying a caller-supplied
|
|
196414
|
+
// `authorization` are excluded: those bypass the origin policy entirely.
|
|
196415
|
+
const hasSettingsCreds = !authorization && !!this._settings.userName && !!this._settings.password;
|
|
196416
|
+
if (authorization) {
|
|
196417
|
+
headers = new Headers();
|
|
196418
|
+
headers.set("Authorization", authorization);
|
|
196419
|
+
}
|
|
196420
|
+
else if (hasSettingsCreds) {
|
|
196421
|
+
if (this.isCredentialsSharingAllowed(url)) {
|
|
196422
|
+
hasCreds = true;
|
|
196423
|
+
headers = new Headers();
|
|
196424
|
+
this.setRequestAuthorization(headers);
|
|
196425
|
+
if (!this.matchesSettingsUrlOrigin(url))
|
|
196426
|
+
this.logUntrustedOriginUse(url);
|
|
196427
|
+
}
|
|
196428
|
+
}
|
|
196429
|
+
// Route the request through the registered fetch handler (if any), which has full control: it may
|
|
196430
|
+
// send a copy with other query parameters and headers, retry, or short-circuit. Handler failures propagate: the
|
|
196431
|
+
// request must never silently degrade to an unauthenticated one.
|
|
196432
|
+
try {
|
|
196433
|
+
const { response, managedByHandler } = await (0,_internal__WEBPACK_IMPORTED_MODULE_5__.fetchMapLayerRequest)({
|
|
196434
|
+
url,
|
|
196435
|
+
formatId: this._settings.formatId,
|
|
196436
|
+
layerUrl: this._settings.url,
|
|
196437
|
+
layerProperties: this._settings.properties,
|
|
196438
|
+
headers,
|
|
196439
|
+
send: async (request, credentialed) => this.sendDefaultRequest(request, credentialed, hasCreds, hasSettingsCreds, timeoutMs),
|
|
196440
|
+
});
|
|
196441
|
+
if (managedByHandler)
|
|
196442
|
+
this._handlerManagedResponses.add(response);
|
|
196443
|
+
return response;
|
|
196444
|
+
}
|
|
196445
|
+
catch (error) {
|
|
196446
|
+
if (error instanceof _internal__WEBPACK_IMPORTED_MODULE_5__.MapLayerAuthenticationFailedError)
|
|
196447
|
+
this.reportAuthenticationFailure();
|
|
196448
|
+
throw error;
|
|
196449
|
+
}
|
|
196450
|
+
}
|
|
196451
|
+
/** Responses of [[makeRequest]] managed by a fetch handler (see [[MapLayerFetchResult.managedByHandler]]). */
|
|
196452
|
+
_handlerManagedResponses = new WeakSet();
|
|
196453
|
+
/** Returns true if a fetch handler returned this [[makeRequest]] response as its own, in which case the
|
|
196454
|
+
* provider applies none of its default response handling (status-code or protocol-error classification):
|
|
196455
|
+
* the handler reports authentication failures by throwing [[MapLayerAuthenticationFailedError]] instead.
|
|
196456
|
+
* @internal
|
|
196457
|
+
*/
|
|
196458
|
+
isManagedByHandler(response) {
|
|
196459
|
+
return this._handlerManagedResponses.has(response);
|
|
196066
196460
|
}
|
|
196067
196461
|
/** Returns a map layer tile at the specified settings. */
|
|
196068
196462
|
async loadTile(row, column, zoomLevel) {
|
|
@@ -196097,16 +196491,39 @@ class MapLayerImageryProvider {
|
|
|
196097
196491
|
headers = new Headers();
|
|
196098
196492
|
this.setRequestAuthorization(headers);
|
|
196099
196493
|
}
|
|
196494
|
+
let response;
|
|
196100
196495
|
try {
|
|
196101
|
-
|
|
196102
|
-
|
|
196103
|
-
|
|
196496
|
+
({ response } = await (0,_internal__WEBPACK_IMPORTED_MODULE_5__.fetchMapLayerRequest)({
|
|
196497
|
+
url,
|
|
196498
|
+
formatId: this._settings.formatId,
|
|
196499
|
+
layerUrl: this._settings.url,
|
|
196500
|
+
layerProperties: this._settings.properties,
|
|
196104
196501
|
headers,
|
|
196105
|
-
|
|
196106
|
-
|
|
196107
|
-
|
|
196108
|
-
|
|
196109
|
-
|
|
196502
|
+
send: async (request, credentialed) => {
|
|
196503
|
+
const requestUrl = request.url;
|
|
196504
|
+
const includeCredentials = this.includeUserCredentials(requestUrl);
|
|
196505
|
+
const rsp = await fetch(requestUrl, {
|
|
196506
|
+
method: "GET",
|
|
196507
|
+
headers: request.headers,
|
|
196508
|
+
credentials: includeCredentials ? "include" : undefined,
|
|
196509
|
+
redirect: (includeCredentials || credentialed) ? (0,_internal__WEBPACK_IMPORTED_MODULE_5__.credentialedFetchRedirect)() : undefined,
|
|
196510
|
+
});
|
|
196511
|
+
if (includeCredentials || credentialed)
|
|
196512
|
+
this.checkCredentialedRedirect(requestUrl, rsp);
|
|
196513
|
+
return rsp;
|
|
196514
|
+
},
|
|
196515
|
+
}));
|
|
196516
|
+
}
|
|
196517
|
+
catch (error) {
|
|
196518
|
+
// Never degrade to an unauthenticated request or reject (getToolTip callers do not catch); skip the tooltip.
|
|
196519
|
+
// The status transition the handler asked for still applies.
|
|
196520
|
+
if (error instanceof _internal__WEBPACK_IMPORTED_MODULE_5__.MapLayerAuthenticationFailedError)
|
|
196521
|
+
this.reportAuthenticationFailure();
|
|
196522
|
+
if (this.hasFetchHandler)
|
|
196523
|
+
_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)}`);
|
|
196524
|
+
return;
|
|
196525
|
+
}
|
|
196526
|
+
try {
|
|
196110
196527
|
let text = await response.text();
|
|
196111
196528
|
if (text) {
|
|
196112
196529
|
// Tooltip content (e.g. WMS GetFeatureInfo responses) is rendered as HTML downstream and may
|
|
@@ -196228,11 +196645,7 @@ class MapLayerImageryProvider {
|
|
|
196228
196645
|
* @internal
|
|
196229
196646
|
*/
|
|
196230
196647
|
appendCustomParams(url) {
|
|
196231
|
-
|
|
196232
|
-
return url;
|
|
196233
|
-
let tmpUrl = (0,_internal__WEBPACK_IMPORTED_MODULE_5__.appendQueryParams)(url, this._settings.savedQueryParams);
|
|
196234
|
-
tmpUrl = (0,_internal__WEBPACK_IMPORTED_MODULE_5__.appendQueryParams)(tmpUrl, this._settings.unsavedQueryParams);
|
|
196235
|
-
return tmpUrl;
|
|
196648
|
+
return (0,_internal__WEBPACK_IMPORTED_MODULE_5__.appendQueryParams)(url, this._settings.collectQueryParams());
|
|
196236
196649
|
}
|
|
196237
196650
|
}
|
|
196238
196651
|
|
|
@@ -196311,21 +196724,33 @@ class MapLayerSource {
|
|
|
196311
196724
|
transparentBackground;
|
|
196312
196725
|
userName;
|
|
196313
196726
|
password;
|
|
196314
|
-
/**
|
|
196727
|
+
/** Former name of [[queryParams]], which stores the value; retained as the backing field so existing subclasses
|
|
196728
|
+
* and `delete` keep working.
|
|
196729
|
+
* @deprecated in 5.16. Use [[queryParams]].
|
|
196315
196730
|
* @beta
|
|
196316
196731
|
*/
|
|
196317
196732
|
savedQueryParams;
|
|
196733
|
+
/** Non-secret query parameters appended to every request made for the source, persisted as part of the JSON
|
|
196734
|
+
* representation ([[MapLayerSourceProps.queryParams]]). Secrets must never be placed here; the hosting application
|
|
196735
|
+
* injects them per session through a [[MapLayerFetchHandler]].
|
|
196736
|
+
* @beta
|
|
196737
|
+
*/
|
|
196738
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated -- the deprecated field is the storage until its removal.
|
|
196739
|
+
get queryParams() { return this.savedQueryParams; }
|
|
196740
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
196741
|
+
set queryParams(value) { this.savedQueryParams = value; }
|
|
196318
196742
|
/** List of query parameters that will get appended to the source URL that should *not* be be persisted part of the JSON representation.
|
|
196743
|
+
* @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.
|
|
196319
196744
|
* @beta
|
|
196320
196745
|
*/
|
|
196321
196746
|
unsavedQueryParams;
|
|
196322
|
-
constructor(formatId = "WMS", name, url, baseMap = false, transparentBackground = true,
|
|
196747
|
+
constructor(formatId = "WMS", name, url, baseMap = false, transparentBackground = true, queryParams) {
|
|
196323
196748
|
this.formatId = formatId;
|
|
196324
196749
|
this.name = name;
|
|
196325
196750
|
this.url = url;
|
|
196326
196751
|
this.baseMap = baseMap;
|
|
196327
196752
|
this.transparentBackground = transparentBackground;
|
|
196328
|
-
this.
|
|
196753
|
+
this.queryParams = queryParams;
|
|
196329
196754
|
}
|
|
196330
196755
|
static fromJSON(json) {
|
|
196331
196756
|
if (json === undefined)
|
|
@@ -196349,7 +196774,7 @@ class MapLayerSource {
|
|
|
196349
196774
|
return undefined;
|
|
196350
196775
|
}
|
|
196351
196776
|
toJSON() {
|
|
196352
|
-
return { url: this.url, name: this.name, formatId: this.formatId, transparentBackground: this.transparentBackground, queryParams: this.
|
|
196777
|
+
return { url: this.url, name: this.name, formatId: this.formatId, transparentBackground: this.transparentBackground, queryParams: this.queryParams };
|
|
196353
196778
|
}
|
|
196354
196779
|
toLayerSettings(subLayers) {
|
|
196355
196780
|
// When MapLayerSetting is created from a MapLayerSource, sub-layers and credentials need to be set separately.
|
|
@@ -196357,10 +196782,12 @@ class MapLayerSource {
|
|
|
196357
196782
|
if (this.userName !== undefined || this.password !== undefined) {
|
|
196358
196783
|
layerSettings?.setCredentials(this.userName, this.password);
|
|
196359
196784
|
}
|
|
196360
|
-
if (this.
|
|
196361
|
-
layerSettings.
|
|
196785
|
+
if (this.queryParams) {
|
|
196786
|
+
layerSettings.queryParams = { ...this.queryParams };
|
|
196362
196787
|
}
|
|
196788
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated -- kept for backward compatibility until removal.
|
|
196363
196789
|
if (this.unsavedQueryParams) {
|
|
196790
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
196364
196791
|
layerSettings.unsavedQueryParams = { ...this.unsavedQueryParams };
|
|
196365
196792
|
}
|
|
196366
196793
|
return layerSettings;
|
|
@@ -196368,14 +196795,17 @@ class MapLayerSource {
|
|
|
196368
196795
|
getCredentials() {
|
|
196369
196796
|
return this.userName && this.password ? { user: this.userName, password: this.password } : undefined;
|
|
196370
196797
|
}
|
|
196371
|
-
/**
|
|
196372
|
-
|
|
196373
|
-
|
|
196798
|
+
/** The query parameters actually sent with requests: [[queryParams]] overlaid with the deprecated `unsavedQueryParams`
|
|
196799
|
+
* (a key present in both takes the latter's value). Equals a copy of [[queryParams]] once `unsavedQueryParams` is removed.
|
|
196800
|
+
* @beta
|
|
196801
|
+
*/
|
|
196374
196802
|
collectQueryParams() {
|
|
196375
196803
|
let queryParams = {};
|
|
196376
|
-
if (this.
|
|
196377
|
-
queryParams = { ...this.
|
|
196804
|
+
if (this.queryParams)
|
|
196805
|
+
queryParams = { ...this.queryParams };
|
|
196806
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated -- kept for backward compatibility until removal.
|
|
196378
196807
|
if (this.unsavedQueryParams)
|
|
196808
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
196379
196809
|
queryParams = { ...queryParams, ...this.unsavedQueryParams };
|
|
196380
196810
|
return queryParams;
|
|
196381
196811
|
}
|
|
@@ -344489,7 +344919,7 @@ class TestContext {
|
|
|
344489
344919
|
this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
|
|
344490
344920
|
const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
|
|
344491
344921
|
await core_frontend_1.NoRenderApp.startup({
|
|
344492
|
-
applicationVersion: "5.16.0-dev.
|
|
344922
|
+
applicationVersion: "5.16.0-dev.5",
|
|
344493
344923
|
applicationId: this.settings.gprid,
|
|
344494
344924
|
authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.serviceAuthToken),
|
|
344495
344925
|
hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
|
|
@@ -371101,7 +371531,7 @@ class WMS {
|
|
|
371101
371531
|
(module) {
|
|
371102
371532
|
|
|
371103
371533
|
"use strict";
|
|
371104
|
-
module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.16.0-dev.
|
|
371534
|
+
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"}}');
|
|
371105
371535
|
|
|
371106
371536
|
/***/ },
|
|
371107
371537
|
|