@itwin/ecschema-rpcinterface-tests 5.15.1 → 5.16.0-dev.10
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 +960 -418
- package/lib/dist/bundled-tests.js.map +1 -1
- package/package.json +16 -21
|
@@ -5394,9 +5394,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
5394
5394
|
|
|
5395
5395
|
/***/ },
|
|
5396
5396
|
|
|
5397
|
-
/***/ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@
|
|
5397
|
+
/***/ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@6.2_e7b0f93268ba392b62030a9909ee634e/node_modules/@itwin/oidc-signin-tool/lib/cjs/TestFrontendAuthorizationClient.js"
|
|
5398
5398
|
/*!*****************************************************************************************************************************************************************************************!*\
|
|
5399
|
-
!*** ../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@
|
|
5399
|
+
!*** ../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@6.2_e7b0f93268ba392b62030a9909ee634e/node_modules/@itwin/oidc-signin-tool/lib/cjs/TestFrontendAuthorizationClient.js ***!
|
|
5400
5400
|
\*****************************************************************************************************************************************************************************************/
|
|
5401
5401
|
(__unused_webpack_module, exports, __webpack_require__) {
|
|
5402
5402
|
|
|
@@ -5451,9 +5451,9 @@ exports.TestFrontendAuthorizationClient = TestFrontendAuthorizationClient;
|
|
|
5451
5451
|
|
|
5452
5452
|
/***/ },
|
|
5453
5453
|
|
|
5454
|
-
/***/ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@
|
|
5454
|
+
/***/ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@6.2_e7b0f93268ba392b62030a9909ee634e/node_modules/@itwin/oidc-signin-tool/lib/cjs/TestUsers.js"
|
|
5455
5455
|
/*!*******************************************************************************************************************************************************************!*\
|
|
5456
|
-
!*** ../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@
|
|
5456
|
+
!*** ../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@6.2_e7b0f93268ba392b62030a9909ee634e/node_modules/@itwin/oidc-signin-tool/lib/cjs/TestUsers.js ***!
|
|
5457
5457
|
\*******************************************************************************************************************************************************************/
|
|
5458
5458
|
(__unused_webpack_module, exports) {
|
|
5459
5459
|
|
|
@@ -5539,9 +5539,9 @@ exports.TestUsers = TestUsers;
|
|
|
5539
5539
|
|
|
5540
5540
|
/***/ },
|
|
5541
5541
|
|
|
5542
|
-
/***/ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@
|
|
5542
|
+
/***/ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@6.2_e7b0f93268ba392b62030a9909ee634e/node_modules/@itwin/oidc-signin-tool/lib/cjs/certa/certaCommon.js"
|
|
5543
5543
|
/*!***************************************************************************************************************************************************************************!*\
|
|
5544
|
-
!*** ../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@
|
|
5544
|
+
!*** ../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@6.2_e7b0f93268ba392b62030a9909ee634e/node_modules/@itwin/oidc-signin-tool/lib/cjs/certa/certaCommon.js ***!
|
|
5545
5545
|
\***************************************************************************************************************************************************************************/
|
|
5546
5546
|
(__unused_webpack_module, exports, __webpack_require__) {
|
|
5547
5547
|
|
|
@@ -5577,9 +5577,9 @@ async function getServiceAuthTokenFromBackend(oidcConfig) {
|
|
|
5577
5577
|
|
|
5578
5578
|
/***/ },
|
|
5579
5579
|
|
|
5580
|
-
/***/ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@
|
|
5580
|
+
/***/ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@6.2_e7b0f93268ba392b62030a9909ee634e/node_modules/@itwin/oidc-signin-tool/lib/cjs/frontend.js"
|
|
5581
5581
|
/*!******************************************************************************************************************************************************************!*\
|
|
5582
|
-
!*** ../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@
|
|
5582
|
+
!*** ../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@6.2_e7b0f93268ba392b62030a9909ee634e/node_modules/@itwin/oidc-signin-tool/lib/cjs/frontend.js ***!
|
|
5583
5583
|
\******************************************************************************************************************************************************************/
|
|
5584
5584
|
(__unused_webpack_module, exports, __webpack_require__) {
|
|
5585
5585
|
|
|
@@ -5604,9 +5604,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
5604
5604
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
5605
5605
|
};
|
|
5606
5606
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
5607
|
-
__exportStar(__webpack_require__(/*! ./TestUsers */ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@
|
|
5608
|
-
__exportStar(__webpack_require__(/*! ./TestFrontendAuthorizationClient */ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@
|
|
5609
|
-
__exportStar(__webpack_require__(/*! ./certa/certaCommon */ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@
|
|
5607
|
+
__exportStar(__webpack_require__(/*! ./TestUsers */ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@6.2_e7b0f93268ba392b62030a9909ee634e/node_modules/@itwin/oidc-signin-tool/lib/cjs/TestUsers.js"), exports);
|
|
5608
|
+
__exportStar(__webpack_require__(/*! ./TestFrontendAuthorizationClient */ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@6.2_e7b0f93268ba392b62030a9909ee634e/node_modules/@itwin/oidc-signin-tool/lib/cjs/TestFrontendAuthorizationClient.js"), exports);
|
|
5609
|
+
__exportStar(__webpack_require__(/*! ./certa/certaCommon */ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@6.2_e7b0f93268ba392b62030a9909ee634e/node_modules/@itwin/oidc-signin-tool/lib/cjs/certa/certaCommon.js"), exports);
|
|
5610
5610
|
//# sourceMappingURL=frontend.js.map
|
|
5611
5611
|
|
|
5612
5612
|
/***/ },
|
|
@@ -28306,9 +28306,9 @@ class QueryOptionsBuilder {
|
|
|
28306
28306
|
return this;
|
|
28307
28307
|
}
|
|
28308
28308
|
/**
|
|
28309
|
-
* By default
|
|
28309
|
+
* By default blobs are not abbreviated and all blob data is returned by query as is. If set to true, blobs are abbreviated to save memory and network bandwidth.
|
|
28310
28310
|
* Use @type BlobReader to access blob data more efficiently.
|
|
28311
|
-
* @param val A boolean value, if set to
|
|
28311
|
+
* @param val A boolean value, if set to true will abbreviate blob type property data instead of returning it in full. Returning complete blob data could cost time and network bandwidth.
|
|
28312
28312
|
* @returns @type QueryOptionsBuilder for fluent interface.
|
|
28313
28313
|
*/
|
|
28314
28314
|
setAbbreviateBlobs(val) {
|
|
@@ -30871,6 +30871,8 @@ class ECSqlReader extends _ECSqlReaderBase__WEBPACK_IMPORTED_MODULE_2__.ECSqlRea
|
|
|
30871
30871
|
_lockArgs = false;
|
|
30872
30872
|
_cursorId = "";
|
|
30873
30873
|
_stats = { backendCpuTime: 0, backendTotalTime: 0, backendMemUsed: 0, backendRowsReturned: 0, totalTime: 0, retryCount: 0, prepareTime: 0 };
|
|
30874
|
+
_cloudTimingUnavailable = false;
|
|
30875
|
+
_cloudBlocksUnavailable = false;
|
|
30874
30876
|
_options = new _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_0__.QueryOptionsBuilder().getOptions();
|
|
30875
30877
|
/**
|
|
30876
30878
|
* @internal
|
|
@@ -30939,7 +30941,8 @@ class ECSqlReader extends _ECSqlReaderBase__WEBPACK_IMPORTED_MODULE_2__.ECSqlRea
|
|
|
30939
30941
|
return this._localRows[this._localOffset];
|
|
30940
30942
|
}
|
|
30941
30943
|
/**
|
|
30942
|
-
* Get
|
|
30944
|
+
* Get accumulated statistics for this reader's lifetime, including retries and failed attempts with available timings.
|
|
30945
|
+
* Deprecated resets do not clear these statistics.
|
|
30943
30946
|
*/
|
|
30944
30947
|
get stats() {
|
|
30945
30948
|
return this._stats;
|
|
@@ -30985,24 +30988,66 @@ class ECSqlReader extends _ECSqlReaderBase__WEBPACK_IMPORTED_MODULE_2__.ECSqlRea
|
|
|
30985
30988
|
async runWithRetry(request) {
|
|
30986
30989
|
const needRetry = (rs) => (rs.status === _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_0__.DbResponseStatus.Partial || rs.status === _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_0__.DbResponseStatus.QueueFull || rs.status === _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_0__.DbResponseStatus.Timeout || rs.status === _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_0__.DbResponseStatus.ShuttingDown) && (rs.data === undefined || rs.data.length === 0);
|
|
30987
30990
|
const updateStats = (rs) => {
|
|
30991
|
+
this._stats.backendMemUsed += rs.stats.memUsed;
|
|
30992
|
+
this._stats.backendRowsReturned += (rs.data === undefined) ? 0 : rs.data.length;
|
|
30993
|
+
};
|
|
30994
|
+
const updateTiming = (rs) => {
|
|
30988
30995
|
this._stats.backendCpuTime += rs.stats.cpuTime;
|
|
30989
30996
|
this._stats.backendTotalTime += rs.stats.totalTime;
|
|
30990
|
-
this._stats.backendMemUsed += rs.stats.memUsed;
|
|
30991
30997
|
this._stats.prepareTime += rs.stats.prepareTime;
|
|
30992
|
-
|
|
30998
|
+
if (rs.stats.cloudSqliteTimingState === "notExecuted")
|
|
30999
|
+
return;
|
|
31000
|
+
if (this._cloudTimingUnavailable)
|
|
31001
|
+
return;
|
|
31002
|
+
if (rs.stats.cloudSqliteTimingState !== "unavailable" && rs.stats.downloadTime !== undefined && rs.stats.executionTime !== undefined) {
|
|
31003
|
+
this._stats.backendDownloadTime = (this._stats.backendDownloadTime ?? 0) + rs.stats.downloadTime;
|
|
31004
|
+
this._stats.backendExecutionTime = (this._stats.backendExecutionTime ?? 0) + rs.stats.executionTime;
|
|
31005
|
+
if (!this._cloudBlocksUnavailable) {
|
|
31006
|
+
const { downloadBlocks, downloadBytes } = rs.stats;
|
|
31007
|
+
if (downloadBlocks !== undefined && Number.isSafeInteger(downloadBlocks) && downloadBlocks >= 0
|
|
31008
|
+
&& downloadBytes !== undefined && Number.isSafeInteger(downloadBytes) && downloadBytes >= 0) {
|
|
31009
|
+
this._stats.backendDownloadBlocks = (this._stats.backendDownloadBlocks ?? 0) + downloadBlocks;
|
|
31010
|
+
this._stats.backendDownloadBytes = (this._stats.backendDownloadBytes ?? 0) + downloadBytes;
|
|
31011
|
+
}
|
|
31012
|
+
else {
|
|
31013
|
+
this.invalidateCloudBlocks();
|
|
31014
|
+
}
|
|
31015
|
+
}
|
|
31016
|
+
}
|
|
31017
|
+
else {
|
|
31018
|
+
this.invalidateCloudTiming();
|
|
31019
|
+
}
|
|
30993
31020
|
};
|
|
30994
|
-
const execQuery =
|
|
30995
|
-
const startTime =
|
|
30996
|
-
const
|
|
30997
|
-
|
|
30998
|
-
|
|
31021
|
+
const execQuery = (req) => {
|
|
31022
|
+
const startTime = performance.now();
|
|
31023
|
+
const onResponse = (rs) => {
|
|
31024
|
+
this._stats.totalTime += performance.now() - startTime;
|
|
31025
|
+
updateTiming(rs);
|
|
31026
|
+
return rs;
|
|
31027
|
+
};
|
|
31028
|
+
const onError = (err) => {
|
|
31029
|
+
this._stats.totalTime += performance.now() - startTime;
|
|
31030
|
+
this.invalidateCloudTiming();
|
|
31031
|
+
throw err;
|
|
31032
|
+
};
|
|
31033
|
+
let result;
|
|
31034
|
+
try {
|
|
31035
|
+
result = this._executor.execute(req);
|
|
31036
|
+
}
|
|
31037
|
+
catch (err) {
|
|
31038
|
+
return onError(err);
|
|
31039
|
+
}
|
|
31040
|
+
return "then" in result ? result.then(onResponse, onError) : onResponse(result);
|
|
30999
31041
|
};
|
|
31000
31042
|
let retry = ECSqlReader._maxRetryCount;
|
|
31001
|
-
let
|
|
31043
|
+
let pending = execQuery(request);
|
|
31044
|
+
let resp = "then" in pending ? await pending : pending;
|
|
31002
31045
|
_ConcurrentQuery__WEBPACK_IMPORTED_MODULE_0__.DbQueryError.throwIfError(resp, request);
|
|
31003
31046
|
while (--retry > 0 && needRetry(resp)) {
|
|
31004
|
-
|
|
31047
|
+
pending = execQuery(request);
|
|
31048
|
+
resp = "then" in pending ? await pending : pending;
|
|
31005
31049
|
this._stats.retryCount += 1;
|
|
31050
|
+
_ConcurrentQuery__WEBPACK_IMPORTED_MODULE_0__.DbQueryError.throwIfError(resp, request);
|
|
31006
31051
|
if (needRetry(resp)) {
|
|
31007
31052
|
updateStats(resp);
|
|
31008
31053
|
}
|
|
@@ -31013,6 +31058,17 @@ class ECSqlReader extends _ECSqlReaderBase__WEBPACK_IMPORTED_MODULE_2__.ECSqlRea
|
|
|
31013
31058
|
updateStats(resp);
|
|
31014
31059
|
return resp;
|
|
31015
31060
|
}
|
|
31061
|
+
invalidateCloudTiming() {
|
|
31062
|
+
this._cloudTimingUnavailable = true;
|
|
31063
|
+
delete this._stats.backendDownloadTime;
|
|
31064
|
+
delete this._stats.backendExecutionTime;
|
|
31065
|
+
this.invalidateCloudBlocks();
|
|
31066
|
+
}
|
|
31067
|
+
invalidateCloudBlocks() {
|
|
31068
|
+
this._cloudBlocksUnavailable = true;
|
|
31069
|
+
delete this._stats.backendDownloadBlocks;
|
|
31070
|
+
delete this._stats.backendDownloadBytes;
|
|
31071
|
+
}
|
|
31016
31072
|
/**
|
|
31017
31073
|
* Get the metadata for each column in the query result.
|
|
31018
31074
|
*
|
|
@@ -31057,13 +31113,21 @@ class ECSqlReader extends _ECSqlReaderBase__WEBPACK_IMPORTED_MODULE_2__.ECSqlRea
|
|
|
31057
31113
|
}
|
|
31058
31114
|
/**
|
|
31059
31115
|
* Get all remaining rows from the query result.
|
|
31116
|
+
* Buffered pages are materialized without awaiting each individual row.
|
|
31060
31117
|
*
|
|
31061
31118
|
* @returns An array of all remaining rows from the query result.
|
|
31062
31119
|
*/
|
|
31063
31120
|
async toArray() {
|
|
31064
31121
|
const rows = [];
|
|
31122
|
+
const drainPage = this.step === ECSqlReader.prototype.step;
|
|
31065
31123
|
while (await this.step()) {
|
|
31066
31124
|
rows.push(this.formatCurrentRow());
|
|
31125
|
+
if (drainPage) {
|
|
31126
|
+
while (this._localOffset < this._localRows.length - 1) {
|
|
31127
|
+
++this._localOffset;
|
|
31128
|
+
rows.push(this.formatCurrentRow());
|
|
31129
|
+
}
|
|
31130
|
+
}
|
|
31067
31131
|
}
|
|
31068
31132
|
return rows;
|
|
31069
31133
|
}
|
|
@@ -31196,7 +31260,7 @@ class ECSqlReaderBase {
|
|
|
31196
31260
|
return target.getRowInternal()[prop.index];
|
|
31197
31261
|
}
|
|
31198
31262
|
if (key === "getMetaData") {
|
|
31199
|
-
return () => target.
|
|
31263
|
+
return () => target.getMetaDataInternal();
|
|
31200
31264
|
}
|
|
31201
31265
|
if (key === "toRow") {
|
|
31202
31266
|
return () => target.formatCurrentRow(true);
|
|
@@ -31251,6 +31315,10 @@ class ECSqlReaderBase {
|
|
|
31251
31315
|
get done() {
|
|
31252
31316
|
return this._done;
|
|
31253
31317
|
}
|
|
31318
|
+
/** @internal */
|
|
31319
|
+
getMetaDataInternal() {
|
|
31320
|
+
return this._props.properties;
|
|
31321
|
+
}
|
|
31254
31322
|
/**
|
|
31255
31323
|
* Converts Base64-encoded strings in a row object into Uint8Arrays in-place.
|
|
31256
31324
|
* @internal
|
|
@@ -36790,12 +36858,24 @@ class ImageMapLayerSettings extends MapLayerSettings {
|
|
|
36790
36858
|
userName;
|
|
36791
36859
|
password;
|
|
36792
36860
|
accessKey;
|
|
36793
|
-
/**
|
|
36794
|
-
*
|
|
36861
|
+
/** Former name of [[queryParams]], which stores the value; retained as the backing field so existing subclasses
|
|
36862
|
+
* and `delete` keep working.
|
|
36863
|
+
* @deprecated in 5.16. Use [[queryParams]].
|
|
36795
36864
|
* @beta
|
|
36796
36865
|
*/
|
|
36797
36866
|
savedQueryParams;
|
|
36867
|
+
/** Non-secret query parameters appended to every request made for the layer, persisted as part of the JSON
|
|
36868
|
+
* representation ([[ImageMapLayerProps.queryParams]]). Secrets must never be placed here; the hosting application
|
|
36869
|
+
* injects them per session through a fetch handler (see `MapLayerFormatRegistry.addMapLayerFetchHandler` in
|
|
36870
|
+
* `@itwin/core-frontend`), which also protects them against leaking through redirects.
|
|
36871
|
+
* @beta
|
|
36872
|
+
*/
|
|
36873
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated -- the deprecated field is the storage until its removal.
|
|
36874
|
+
get queryParams() { return this.savedQueryParams; }
|
|
36875
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
36876
|
+
set queryParams(value) { this.savedQueryParams = value; }
|
|
36798
36877
|
/** List of query parameters that will get appended to the settings URL that should *not* be be persisted part of the JSON representation.
|
|
36878
|
+
* @deprecated in 5.16. Register a fetch handler (`MapLayerFormatRegistry.addMapLayerFetchHandler` in `@itwin/core-frontend`) to inject secret or per-session parameters, which unlike this field are protected against leaking through redirects; use [[queryParams]] for non-secret parameters.
|
|
36799
36879
|
* @beta
|
|
36800
36880
|
*/
|
|
36801
36881
|
unsavedQueryParams;
|
|
@@ -36813,7 +36893,7 @@ class ImageMapLayerSettings extends MapLayerSettings {
|
|
|
36813
36893
|
this.url = props.url;
|
|
36814
36894
|
this.accessKey = props.accessKey;
|
|
36815
36895
|
if (props.queryParams) {
|
|
36816
|
-
this.
|
|
36896
|
+
this.queryParams = { ...props.queryParams };
|
|
36817
36897
|
}
|
|
36818
36898
|
if (props.properties) {
|
|
36819
36899
|
this.properties = { ...props.properties };
|
|
@@ -36837,8 +36917,8 @@ class ImageMapLayerSettings extends MapLayerSettings {
|
|
|
36837
36917
|
props.formatId = this.formatId;
|
|
36838
36918
|
if (this.subLayers.length > 0)
|
|
36839
36919
|
props.subLayers = this.subLayers.map((x) => x.toJSON());
|
|
36840
|
-
if (this.
|
|
36841
|
-
props.queryParams = { ...this.
|
|
36920
|
+
if (this.queryParams)
|
|
36921
|
+
props.queryParams = { ...this.queryParams };
|
|
36842
36922
|
if (this.properties) {
|
|
36843
36923
|
props.properties = structuredClone(this.properties);
|
|
36844
36924
|
}
|
|
@@ -36853,10 +36933,10 @@ class ImageMapLayerSettings extends MapLayerSettings {
|
|
|
36853
36933
|
// Clone members not part of MapLayerProps
|
|
36854
36934
|
clone.userName = this.userName;
|
|
36855
36935
|
clone.password = this.password;
|
|
36936
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated -- kept for backward compatibility until removal.
|
|
36856
36937
|
if (this.unsavedQueryParams)
|
|
36938
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
36857
36939
|
clone.unsavedQueryParams = { ...this.unsavedQueryParams };
|
|
36858
|
-
if (this.savedQueryParams)
|
|
36859
|
-
clone.savedQueryParams = { ...this.savedQueryParams };
|
|
36860
36940
|
return clone;
|
|
36861
36941
|
}
|
|
36862
36942
|
/** @internal */
|
|
@@ -36869,8 +36949,8 @@ class ImageMapLayerSettings extends MapLayerSettings {
|
|
|
36869
36949
|
if (changedProps.queryParams) {
|
|
36870
36950
|
props.queryParams = { ...changedProps.queryParams };
|
|
36871
36951
|
}
|
|
36872
|
-
else if (this.
|
|
36873
|
-
props.queryParams = { ...this.
|
|
36952
|
+
else if (this.queryParams) {
|
|
36953
|
+
props.queryParams = { ...this.queryParams };
|
|
36874
36954
|
}
|
|
36875
36955
|
if (changedProps.properties) {
|
|
36876
36956
|
props.properties = { ...changedProps.properties };
|
|
@@ -36946,14 +37026,17 @@ class ImageMapLayerSettings extends MapLayerSettings {
|
|
|
36946
37026
|
this.userName = userName;
|
|
36947
37027
|
this.password = password;
|
|
36948
37028
|
}
|
|
36949
|
-
/**
|
|
36950
|
-
|
|
36951
|
-
|
|
37029
|
+
/** The query parameters actually sent with requests: [[queryParams]] overlaid with the deprecated `unsavedQueryParams`
|
|
37030
|
+
* (a key present in both takes the latter's value). Equals a copy of [[queryParams]] once `unsavedQueryParams` is removed.
|
|
37031
|
+
* @beta
|
|
37032
|
+
*/
|
|
36952
37033
|
collectQueryParams() {
|
|
36953
37034
|
let queryParams = {};
|
|
36954
|
-
if (this.
|
|
36955
|
-
queryParams = { ...this.
|
|
37035
|
+
if (this.queryParams)
|
|
37036
|
+
queryParams = { ...this.queryParams };
|
|
37037
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated -- kept for backward compatibility until removal.
|
|
36956
37038
|
if (this.unsavedQueryParams)
|
|
37039
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
36957
37040
|
queryParams = { ...queryParams, ...this.unsavedQueryParams };
|
|
36958
37041
|
return queryParams;
|
|
36959
37042
|
}
|
|
@@ -97480,6 +97563,8 @@ class RealityDataSourceTilesetUrlImpl {
|
|
|
97480
97563
|
_baseUrl = "";
|
|
97481
97564
|
/** Need to be passed down to child tile requests when requesting from blob storage, e.g. a Cesium export from the Mesh Export Service*/
|
|
97482
97565
|
_searchParams = "";
|
|
97566
|
+
/** Origin of the root tileset URL. `_searchParams` are only forwarded to this origin. */
|
|
97567
|
+
_origin;
|
|
97483
97568
|
/** Construct a new reality data source.
|
|
97484
97569
|
* @param props JSON representation of the reality data source
|
|
97485
97570
|
*/
|
|
@@ -97528,6 +97613,7 @@ class RealityDataSourceTilesetUrlImpl {
|
|
|
97528
97613
|
const urlParts = url.split("/");
|
|
97529
97614
|
const newUrl = new URL(url);
|
|
97530
97615
|
this._searchParams = newUrl.search;
|
|
97616
|
+
this._origin = newUrl.origin;
|
|
97531
97617
|
urlParts.pop();
|
|
97532
97618
|
if (urlParts.length === 0)
|
|
97533
97619
|
this._baseUrl = "";
|
|
@@ -97561,10 +97647,13 @@ class RealityDataSourceTilesetUrlImpl {
|
|
|
97561
97647
|
/** Returns the tile URL.
|
|
97562
97648
|
* If the tile path is a relative URL, the base URL is prepended to it.
|
|
97563
97649
|
* For both absolute and relative tile path URLs, the search parameters are checked. If the search params are empty, the base URL's search params are appended to the tile path.
|
|
97650
|
+
* The base URL's search params (which may contain credentials such as a SAS token) are never appended to an absolute URL on a different origin.
|
|
97564
97651
|
*/
|
|
97565
97652
|
getTileUrl(tilePath) {
|
|
97566
97653
|
if (this.isValidURL(tilePath)) {
|
|
97567
97654
|
const url = new URL(tilePath);
|
|
97655
|
+
if (url.origin !== this._origin)
|
|
97656
|
+
return tilePath;
|
|
97568
97657
|
return url.search === "" ? `${tilePath}${this._searchParams}` : tilePath;
|
|
97569
97658
|
}
|
|
97570
97659
|
return tilePath.includes("?") ? `${this._baseUrl}${tilePath}` : `${this._baseUrl}${tilePath}${this._searchParams}`;
|
|
@@ -115999,6 +116088,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
115999
116088
|
/* harmony export */ ManipulatorToolEvent: () => (/* reexport safe */ _tools_ToolAdmin__WEBPACK_IMPORTED_MODULE_115__.ManipulatorToolEvent),
|
|
116000
116089
|
/* harmony export */ MapCartoRectangle: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapCartoRectangle),
|
|
116001
116090
|
/* harmony export */ MapFeatureInfoRecord: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapFeatureInfoRecord),
|
|
116091
|
+
/* harmony export */ MapLayerAuthenticationFailedError: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapLayerAuthenticationFailedError),
|
|
116002
116092
|
/* harmony export */ MapLayerFeatureRecord: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapLayerFeatureRecord),
|
|
116003
116093
|
/* harmony export */ MapLayerFormat: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapLayerFormat),
|
|
116004
116094
|
/* harmony export */ MapLayerFormatRegistry: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapLayerFormatRegistry),
|
|
@@ -116008,6 +116098,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
116008
116098
|
/* harmony export */ MapLayerSourceStatus: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapLayerSourceStatus),
|
|
116009
116099
|
/* harmony export */ MapLayerSources: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapLayerSources),
|
|
116010
116100
|
/* harmony export */ MapLayerTileTreeReference: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapLayerTileTreeReference),
|
|
116101
|
+
/* harmony export */ MapLayerUntrustedOriginError: () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_125__.MapLayerUntrustedOriginError),
|
|
116011
116102
|
/* harmony export */ MapTile: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapTile),
|
|
116012
116103
|
/* harmony export */ MapTileProjection: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapTileProjection),
|
|
116013
116104
|
/* harmony export */ MapTileTree: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapTileTree),
|
|
@@ -116223,10 +116314,12 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
116223
116314
|
/* harmony export */ createQuantityDescription: () => (/* reexport safe */ _properties_FormattedQuantityDescription__WEBPACK_IMPORTED_MODULE_72__.createQuantityDescription),
|
|
116224
116315
|
/* harmony export */ createSpatialTileTreeReferences: () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_125__.createSpatialTileTreeReferences),
|
|
116225
116316
|
/* harmony export */ createWorkerProxy: () => (/* reexport safe */ _common__WEBPACK_IMPORTED_MODULE_12__.createWorkerProxy),
|
|
116317
|
+
/* harmony export */ credentialedFetchRedirect: () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_125__.credentialedFetchRedirect),
|
|
116226
116318
|
/* harmony export */ deflateCoordinates: () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_125__.deflateCoordinates),
|
|
116227
116319
|
/* harmony export */ extractImageSourceDimensions: () => (/* reexport safe */ _common__WEBPACK_IMPORTED_MODULE_12__.extractImageSourceDimensions),
|
|
116228
116320
|
/* harmony export */ eyeToCartographicOnGlobe: () => (/* reexport safe */ _ViewGlobalLocation__WEBPACK_IMPORTED_MODULE_60__.eyeToCartographicOnGlobe),
|
|
116229
116321
|
/* harmony export */ eyeToCartographicOnGlobeFromGcs: () => (/* reexport safe */ _ViewGlobalLocation__WEBPACK_IMPORTED_MODULE_60__.eyeToCartographicOnGlobeFromGcs),
|
|
116322
|
+
/* harmony export */ fetchMapLayerRequest: () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_125__.fetchMapLayerRequest),
|
|
116230
116323
|
/* harmony export */ formatAnimationBranchId: () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_125__.formatAnimationBranchId),
|
|
116231
116324
|
/* harmony export */ getCenteredViewRect: () => (/* reexport safe */ _common__WEBPACK_IMPORTED_MODULE_12__.getCenteredViewRect),
|
|
116232
116325
|
/* harmony export */ getCesiumAssetUrl: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.getCesiumAssetUrl),
|
|
@@ -117562,6 +117655,9 @@ class RealityDataSourceGoogle3dTilesImpl {
|
|
|
117562
117655
|
// We also do not need to worry about the tile path starting with a slash.
|
|
117563
117656
|
// This happens in these tiles at the second .json level, but the URL API will handle that for us.
|
|
117564
117657
|
const url = new URL(tilePath, this._baseUrl);
|
|
117658
|
+
// Never forward the API key or session params to a different origin.
|
|
117659
|
+
if (!this.isSameOrigin(url))
|
|
117660
|
+
return url.toString();
|
|
117565
117661
|
// If tile is a reference to a tileset, iterate over tileset url's search params and store them in this._searchParams so we can pass them down to children
|
|
117566
117662
|
if (this.getTileContentType(url.toString()) === "tileset" && url.searchParams.size !== 0) {
|
|
117567
117663
|
for (const [key, value] of url.searchParams.entries()) {
|
|
@@ -117581,15 +117677,20 @@ class RealityDataSourceGoogle3dTilesImpl {
|
|
|
117581
117677
|
}
|
|
117582
117678
|
return newUrl.toString();
|
|
117583
117679
|
}
|
|
117680
|
+
/** Returns true if `url` has the same origin as the root tileset. Credentials are only sent to that origin. */
|
|
117681
|
+
isSameOrigin(url) {
|
|
117682
|
+
return new URL(url).origin === this._baseUrl;
|
|
117683
|
+
}
|
|
117584
117684
|
/**
|
|
117585
117685
|
* Returns the tile content. The path to the tile is relative to the base url of present reality data whatever the type.
|
|
117586
117686
|
*/
|
|
117587
117687
|
async getTileContent(name) {
|
|
117688
|
+
const url = this.getTileUrl(name);
|
|
117588
117689
|
let authToken;
|
|
117589
|
-
if (this._getAuthToken) {
|
|
117690
|
+
if (this._getAuthToken && this.isSameOrigin(url)) {
|
|
117590
117691
|
authToken = await this._getAuthToken();
|
|
117591
117692
|
}
|
|
117592
|
-
return (0,_request_Request__WEBPACK_IMPORTED_MODULE_2__.request)(
|
|
117693
|
+
return (0,_request_Request__WEBPACK_IMPORTED_MODULE_2__.request)(url, "arraybuffer", authToken ? {
|
|
117593
117694
|
headers: {
|
|
117594
117695
|
authorization: `Bearer ${authToken}`
|
|
117595
117696
|
}
|
|
@@ -117599,11 +117700,12 @@ class RealityDataSourceGoogle3dTilesImpl {
|
|
|
117599
117700
|
* Returns the tile content in json format. The path to the tile is relative to the base url of present reality data whatever the type.
|
|
117600
117701
|
*/
|
|
117601
117702
|
async getTileJson(name) {
|
|
117703
|
+
const url = this.getTileUrl(name);
|
|
117602
117704
|
let authToken;
|
|
117603
|
-
if (this._getAuthToken) {
|
|
117705
|
+
if (this._getAuthToken && this.isSameOrigin(url)) {
|
|
117604
117706
|
authToken = await this._getAuthToken();
|
|
117605
117707
|
}
|
|
117606
|
-
return (0,_request_Request__WEBPACK_IMPORTED_MODULE_2__.request)(
|
|
117708
|
+
return (0,_request_Request__WEBPACK_IMPORTED_MODULE_2__.request)(url, "json", authToken ? {
|
|
117607
117709
|
headers: {
|
|
117608
117710
|
authorization: `Bearer ${authToken}`
|
|
117609
117711
|
}
|
|
@@ -118639,6 +118741,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
118639
118741
|
/* harmony export */ LayerTileTreeHandler: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.LayerTileTreeHandler),
|
|
118640
118742
|
/* harmony export */ LayerTileTreeReferenceHandler: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.LayerTileTreeReferenceHandler),
|
|
118641
118743
|
/* harmony export */ LogoDecoration: () => (/* reexport safe */ _GoogleMapsDecorator__WEBPACK_IMPORTED_MODULE_9__.LogoDecoration),
|
|
118744
|
+
/* harmony export */ MapLayerUntrustedOriginError: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.MapLayerUntrustedOriginError),
|
|
118642
118745
|
/* harmony export */ MapTileTreeReference: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.MapTileTreeReference),
|
|
118643
118746
|
/* harmony export */ OnScreenTarget: () => (/* reexport safe */ _render_webgl_Target__WEBPACK_IMPORTED_MODULE_3__.OnScreenTarget),
|
|
118644
118747
|
/* harmony export */ PerformanceMetrics: () => (/* reexport safe */ _render_webgl_PerformanceMetrics__WEBPACK_IMPORTED_MODULE_4__.PerformanceMetrics),
|
|
@@ -118656,7 +118759,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
118656
118759
|
/* harmony export */ appendQueryParams: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.appendQueryParams),
|
|
118657
118760
|
/* harmony export */ collectMaskRefs: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.collectMaskRefs),
|
|
118658
118761
|
/* harmony export */ createSpatialTileTreeReferences: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.createSpatialTileTreeReferences),
|
|
118762
|
+
/* harmony export */ credentialedFetchRedirect: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.credentialedFetchRedirect),
|
|
118659
118763
|
/* harmony export */ deflateCoordinates: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.deflateCoordinates),
|
|
118764
|
+
/* harmony export */ fetchMapLayerRequest: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.fetchMapLayerRequest),
|
|
118660
118765
|
/* harmony export */ formatAnimationBranchId: () => (/* reexport safe */ _render_AnimationBranchState__WEBPACK_IMPORTED_MODULE_6__.formatAnimationBranchId)
|
|
118661
118766
|
/* harmony export */ });
|
|
118662
118767
|
/* harmony import */ var _common_internal_Symbols__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/internal/Symbols */ "../../core/frontend/lib/esm/common/internal/Symbols.js");
|
|
@@ -156721,7 +156826,7 @@ class RealityTileLoader {
|
|
|
156721
156826
|
/** The base URL the glTF reader should resolve relatively-referenced resources (e.g. external images) against.
|
|
156722
156827
|
* Prefer the tile's own content URL so that images referenced relative to the content (typical of JSON `.gltf` tiles)
|
|
156723
156828
|
* resolve correctly, rather than against the tileset root. The tileset's query/authentication parameters (e.g.
|
|
156724
|
-
* `?sig=abc`) are preserved on the returned URL: the data source appends them to every tile request, and the glTF
|
|
156829
|
+
* `?sig=abc`) are preserved on the returned URL when it shares the tileset's origin: the data source appends them to every tile request, and the glTF
|
|
156725
156830
|
* reader re-applies the base URL's query string to each relatively-referenced resource (see `GltfReader.resolveUrl`),
|
|
156726
156831
|
* so external resources must be fetched with the same parameters.
|
|
156727
156832
|
*/
|
|
@@ -156732,8 +156837,10 @@ class RealityTileLoader {
|
|
|
156732
156837
|
return tile.contentUrl;
|
|
156733
156838
|
try {
|
|
156734
156839
|
const resolved = new URL(tile.contentUrl, treeBaseUrl);
|
|
156735
|
-
|
|
156736
|
-
|
|
156840
|
+
const base = new URL(treeBaseUrl);
|
|
156841
|
+
// Only inherit the tileset's query (which may contain credentials) on the tileset's own origin.
|
|
156842
|
+
if ("" === resolved.search && resolved.origin === base.origin)
|
|
156843
|
+
resolved.search = base.search;
|
|
156737
156844
|
return resolved.toString();
|
|
156738
156845
|
}
|
|
156739
156846
|
catch {
|
|
@@ -157742,6 +157849,8 @@ class ArcGisUtilities {
|
|
|
157742
157849
|
metadata = await this.getServiceJson({ url: source.url, formatId: source.formatId, userName: source.userName, password: source.password, queryParams: source.collectQueryParams(), ignoreCache });
|
|
157743
157850
|
}
|
|
157744
157851
|
catch (err) {
|
|
157852
|
+
if (err instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerAuthenticationFailedError)
|
|
157853
|
+
return { status: _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerSourceStatus.RequireAuth };
|
|
157745
157854
|
if (err instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerUntrustedOriginError) {
|
|
157746
157855
|
let blockedOrigin;
|
|
157747
157856
|
try {
|
|
@@ -157756,16 +157865,17 @@ class ArcGisUtilities {
|
|
|
157756
157865
|
if (json === undefined) {
|
|
157757
157866
|
return { status: _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerSourceStatus.InvalidUrl };
|
|
157758
157867
|
}
|
|
157759
|
-
|
|
157868
|
+
const errorCode = metadata?.errorCode;
|
|
157869
|
+
if (errorCode !== undefined) {
|
|
157760
157870
|
// If we got a 'Token Required' error, lets check what authentification methods this ESRI service offers
|
|
157761
157871
|
// and return information needed to initiate the authentification process... the end-user
|
|
157762
157872
|
// will have to provide his credentials before we can fully validate this source.
|
|
157763
157873
|
// Note: Some servers will throw a error 403 (You do not have permissions to access this resource or perform this operation),
|
|
157764
157874
|
// instead of 499 (TokenRequired)
|
|
157765
|
-
if (
|
|
157875
|
+
if (errorCode === ArcGisErrorCode.TokenRequired || errorCode === ArcGisErrorCode.MissingPermissions) {
|
|
157766
157876
|
return (source.userName || source.password) ? { status: _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerSourceStatus.InvalidCredentials } : { status: _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerSourceStatus.RequireAuth };
|
|
157767
157877
|
}
|
|
157768
|
-
else if (
|
|
157878
|
+
else if (errorCode === ArcGisErrorCode.InvalidCredentials)
|
|
157769
157879
|
return { status: _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerSourceStatus.InvalidCredentials };
|
|
157770
157880
|
}
|
|
157771
157881
|
// Check this service support the expected queries
|
|
@@ -157816,11 +157926,17 @@ class ArcGisUtilities {
|
|
|
157816
157926
|
* @param requireToken Flag to indicate if a token is required
|
|
157817
157927
|
* @throws [[MapLayerUntrustedOriginError]] if an NTLM/Negotiate challenge could not be answered because
|
|
157818
157928
|
* the URL's origin is not trusted (see [[MapLayerFormatRegistry.restrictCredentialsToTrustedOrigins]]);
|
|
157929
|
+
* [[MapLayerAuthenticationFailedError]] if a registered [[MapLayerFetchHandler]] reported an
|
|
157930
|
+
* authentication failure;
|
|
157819
157931
|
* all other errors are caught and reported by returning `undefined`.
|
|
157820
157932
|
*/
|
|
157821
157933
|
static async getServiceJson(args) {
|
|
157822
|
-
const { url, formatId, userName, password, queryParams, ignoreCache, requireToken } = args;
|
|
157823
|
-
|
|
157934
|
+
const { url, layerUrl = url, layerProperties, formatId, userName, password, queryParams, ignoreCache, requireToken } = args;
|
|
157935
|
+
const accessClient = _IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry?.getAccessClient(formatId);
|
|
157936
|
+
// The cache is keyed by URL only, so responses customized by the fetch handler (e.g.
|
|
157937
|
+
// header-authenticated) must not be shared with or served from differently-customized requests.
|
|
157938
|
+
const hasFetchHandler = (_IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry?.mapLayerFetchHandlers.length ?? 0) > 0;
|
|
157939
|
+
if (!ignoreCache && !hasFetchHandler) {
|
|
157824
157940
|
const cached = ArcGisUtilities._serviceCache.get(url);
|
|
157825
157941
|
if (cached !== undefined)
|
|
157826
157942
|
return cached;
|
|
@@ -157839,55 +157955,71 @@ class ArcGisUtilities {
|
|
|
157839
157955
|
appendParams(tmpUrl, queryParams);
|
|
157840
157956
|
return tmpUrl;
|
|
157841
157957
|
};
|
|
157958
|
+
// Routes each request through the registered fetch handler (if any); handler failures propagate.
|
|
157959
|
+
// The NTLM/SSO retry applies only to the initial request, and never to sends the handler modified.
|
|
157960
|
+
const requestJson = async (target, allowSsoRetry) => {
|
|
157961
|
+
return (0,_tile_internal__WEBPACK_IMPORTED_MODULE_1__.fetchMapLayerRequest)({
|
|
157962
|
+
url: target.toString(),
|
|
157963
|
+
formatId,
|
|
157964
|
+
layerUrl,
|
|
157965
|
+
layerProperties,
|
|
157966
|
+
send: async (request, credentialed) => {
|
|
157967
|
+
// Sends the handler modified may carry injected secrets: same redirect policy as credentialed ones.
|
|
157968
|
+
let rsp = await fetch(request.url, { method: "GET", headers: request.headers, redirect: credentialed ? (0,_tile_internal__WEBPACK_IMPORTED_MODULE_1__.credentialedFetchRedirect)() : undefined });
|
|
157969
|
+
if (allowSsoRetry && rsp.status === 401 && !requireToken && !credentialed && (0,_request_utils__WEBPACK_IMPORTED_MODULE_3__.headersIncludeAuthMethod)(rsp.headers, ["ntlm", "negotiate"])) {
|
|
157970
|
+
// fetch follows redirects transparently, so trust decisions target the final (post-redirect) URL.
|
|
157971
|
+
const challengedUrl = rsp.url || request.url;
|
|
157972
|
+
if (!_IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry.isSsoAllowed(challengedUrl))
|
|
157973
|
+
throw new _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerUntrustedOriginError(challengedUrl);
|
|
157974
|
+
_IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry.logUntrustedOriginUse(challengedUrl);
|
|
157975
|
+
// We got a http 401 challenge, lets try again with SSO enabled (i.e. Windows Authentication).
|
|
157976
|
+
rsp = await fetch(challengedUrl, {
|
|
157977
|
+
method: "GET",
|
|
157978
|
+
credentials: "include",
|
|
157979
|
+
redirect: _IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry.restrictCredentialsToTrustedOrigins ? "error" : undefined,
|
|
157980
|
+
});
|
|
157981
|
+
}
|
|
157982
|
+
return rsp;
|
|
157983
|
+
},
|
|
157984
|
+
});
|
|
157985
|
+
};
|
|
157842
157986
|
let accessTokenRequired = false;
|
|
157843
157987
|
try {
|
|
157844
157988
|
let tmpUrl = createUrlObj();
|
|
157845
157989
|
// In some cases, caller might already know token is required, so append it immediately
|
|
157846
157990
|
if (requireToken) {
|
|
157847
|
-
const accessClient = _IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry.getAccessClient(formatId);
|
|
157848
157991
|
if (accessClient) {
|
|
157849
157992
|
accessTokenRequired = true;
|
|
157850
157993
|
await ArcGisUtilities.appendSecurityToken(tmpUrl, accessClient, { mapLayerUrl: new URL(url), userName, password });
|
|
157851
157994
|
}
|
|
157852
157995
|
}
|
|
157853
|
-
let response = await
|
|
157854
|
-
if (response.status === 401 && !requireToken && (0,_request_utils__WEBPACK_IMPORTED_MODULE_3__.headersIncludeAuthMethod)(response.headers, ["ntlm", "negotiate"])) {
|
|
157855
|
-
// fetch follows redirects transparently, so trust decisions target the final (post-redirect) URL.
|
|
157856
|
-
const challengedUrl = response.url || tmpUrl.toString();
|
|
157857
|
-
if (!_IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry.isSsoAllowed(challengedUrl))
|
|
157858
|
-
throw new _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerUntrustedOriginError(challengedUrl);
|
|
157859
|
-
_IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry.logUntrustedOriginUse(challengedUrl);
|
|
157860
|
-
// We got a http 401 challenge, lets try again with SSO enabled (i.e. Windows Authentication).
|
|
157861
|
-
response = await fetch(challengedUrl, {
|
|
157862
|
-
method: "GET",
|
|
157863
|
-
credentials: "include",
|
|
157864
|
-
redirect: _IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry.restrictCredentialsToTrustedOrigins ? "error" : undefined,
|
|
157865
|
-
});
|
|
157866
|
-
}
|
|
157996
|
+
let { response, managedByHandler } = await requestJson(tmpUrl, true);
|
|
157867
157997
|
// Append security token when corresponding error code is returned by ArcGIS service
|
|
157868
|
-
|
|
157998
|
+
const errorCode = await ArcGisUtilities.checkForResponseErrorCode(response);
|
|
157869
157999
|
if (!accessTokenRequired
|
|
157870
158000
|
&& (errorCode === ArcGisErrorCode.TokenRequired || errorCode === ArcGisErrorCode.MissingPermissions)) {
|
|
157871
158001
|
accessTokenRequired = true;
|
|
157872
158002
|
// If token required
|
|
157873
|
-
const accessClient = _IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry.getAccessClient(formatId);
|
|
157874
158003
|
if (accessClient) {
|
|
157875
158004
|
tmpUrl = createUrlObj();
|
|
157876
158005
|
await ArcGisUtilities.appendSecurityToken(tmpUrl, accessClient, { mapLayerUrl: new URL(url), userName, password });
|
|
157877
|
-
response = await
|
|
157878
|
-
errorCode = await ArcGisUtilities.checkForResponseErrorCode(response);
|
|
158006
|
+
({ response, managedByHandler } = await requestJson(tmpUrl, false));
|
|
157879
158007
|
}
|
|
157880
158008
|
}
|
|
157881
158009
|
const json = await response.json();
|
|
157882
|
-
|
|
157883
|
-
|
|
157884
|
-
|
|
158010
|
+
// Classified from the parsed body regardless of the Content-Type the server labelled it with.
|
|
158011
|
+
const contentErrorCode = json?.error?.code;
|
|
158012
|
+
const info = { content: json, accessTokenRequired, errorCode: managedByHandler ? undefined : contentErrorCode };
|
|
158013
|
+
// Cache the response only if it doesn't contain any error, and never when a fetch handler managed it or
|
|
158014
|
+
// is registered (the cache is keyed by URL only, so protected data must not be cached).
|
|
158015
|
+
if (!hasFetchHandler && !managedByHandler)
|
|
158016
|
+
ArcGisUtilities._serviceCache.set(url, (contentErrorCode === undefined ? info : undefined));
|
|
157885
158017
|
return info; // Always return json, even though it contains an error code.
|
|
157886
158018
|
}
|
|
157887
158019
|
catch (err) {
|
|
157888
158020
|
ArcGisUtilities._serviceCache.set(url, undefined);
|
|
157889
|
-
if (err instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerUntrustedOriginError)
|
|
157890
|
-
throw err; // propagate so callers can report the blocked origin
|
|
158021
|
+
if (err instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerUntrustedOriginError || err instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerAuthenticationFailedError)
|
|
158022
|
+
throw err; // propagate so callers can report the blocked origin / authentication failure
|
|
157891
158023
|
return undefined;
|
|
157892
158024
|
}
|
|
157893
158025
|
}
|
|
@@ -158023,6 +158155,8 @@ class ArcGISImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE_0__.
|
|
|
158023
158155
|
*/
|
|
158024
158156
|
_accessTokenRequired = false;
|
|
158025
158157
|
_querySupported = false;
|
|
158158
|
+
/** Responses of [[fetch]] managed by a fetch handler (see [[MapLayerFetchResult.managedByHandler]]). */
|
|
158159
|
+
_handlerManagedFetchResponses = new WeakSet();
|
|
158026
158160
|
get supportsMapFeatureInfo() { return this._querySupported; }
|
|
158027
158161
|
constructor(settings, usesCachedTiles) {
|
|
158028
158162
|
super(settings, usesCachedTiles);
|
|
@@ -158047,11 +158181,13 @@ class ArcGISImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE_0__.
|
|
|
158047
158181
|
async getServiceJson() {
|
|
158048
158182
|
let metadata;
|
|
158049
158183
|
try {
|
|
158050
|
-
metadata = await _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisUtilities.getServiceJson({ url: this._settings.url, formatId: this._settings.formatId, userName: this._settings.userName, password: this._settings.password, queryParams: this._settings.collectQueryParams() });
|
|
158184
|
+
metadata = await _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisUtilities.getServiceJson({ url: this._settings.url, layerProperties: this._settings.properties, formatId: this._settings.formatId, userName: this._settings.userName, password: this._settings.password, queryParams: this._settings.collectQueryParams() });
|
|
158051
158185
|
}
|
|
158052
158186
|
catch (err) {
|
|
158053
158187
|
if (err instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerUntrustedOriginError)
|
|
158054
158188
|
this.reportBlockedOrigin(err.url);
|
|
158189
|
+
else if (err instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerAuthenticationFailedError)
|
|
158190
|
+
this.setStatus(_tile_internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerImageryProviderStatus.RequireAuth);
|
|
158055
158191
|
}
|
|
158056
158192
|
if (metadata && metadata.accessTokenRequired) {
|
|
158057
158193
|
const accessClient = _IModelApp__WEBPACK_IMPORTED_MODULE_1__.IModelApp.mapLayerFormatRegistry.getAccessClient(this._settings.formatId);
|
|
@@ -158069,6 +158205,56 @@ class ArcGISImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE_0__.
|
|
|
158069
158205
|
}
|
|
158070
158206
|
return metadata;
|
|
158071
158207
|
}
|
|
158208
|
+
/** The default send for [[fetch]]: legacy redirect policy and origin-trust checks for one target.
|
|
158209
|
+
* The NTLM/SSO retry applies only when `allowSsoRetry` (the initial request of an operation), and
|
|
158210
|
+
* never to sends a fetch handler modified.
|
|
158211
|
+
*/
|
|
158212
|
+
async sendArcGisRequest(request, credentialed, allowSsoRetry, options) {
|
|
158213
|
+
const includeCredentials = this.includeUserCredentials(request.url);
|
|
158214
|
+
let rsp = await fetch(request.url, {
|
|
158215
|
+
...options,
|
|
158216
|
+
headers: request.headers,
|
|
158217
|
+
credentials: includeCredentials ? "include" : undefined,
|
|
158218
|
+
// Sends the handler modified may carry injected secrets: same redirect policy as credentialed ones.
|
|
158219
|
+
redirect: (includeCredentials || credentialed) ? ((0,_tile_internal__WEBPACK_IMPORTED_MODULE_0__.credentialedFetchRedirect)() ?? options?.redirect) : options?.redirect,
|
|
158220
|
+
});
|
|
158221
|
+
if (includeCredentials || credentialed)
|
|
158222
|
+
this.checkCredentialedRedirect(request.url, rsp);
|
|
158223
|
+
if (allowSsoRetry && rsp.status === 401 && !this._lastAccessToken && !credentialed && (0,_request_utils__WEBPACK_IMPORTED_MODULE_3__.headersIncludeAuthMethod)(rsp.headers, ["ntlm", "negotiate"])) {
|
|
158224
|
+
// fetch follows redirects transparently, so trust decisions target the final (post-redirect) URL.
|
|
158225
|
+
const challengedUrl = rsp.url || request.url;
|
|
158226
|
+
if (this.isSsoAllowed(challengedUrl)) {
|
|
158227
|
+
// We got a http 401 challenge, lets try again with SSO enabled (i.e. Windows Authentication).
|
|
158228
|
+
this.logUntrustedOriginUse(challengedUrl);
|
|
158229
|
+
rsp = await fetch(challengedUrl, {
|
|
158230
|
+
...options,
|
|
158231
|
+
credentials: "include",
|
|
158232
|
+
redirect: _IModelApp__WEBPACK_IMPORTED_MODULE_1__.IModelApp.mapLayerFormatRegistry.restrictCredentialsToTrustedOrigins ? "error" : undefined,
|
|
158233
|
+
});
|
|
158234
|
+
if (rsp.status === 200) {
|
|
158235
|
+
this.recordSsoSucceeded(challengedUrl); // avoid going through 401 challenges over and over for this origin
|
|
158236
|
+
}
|
|
158237
|
+
}
|
|
158238
|
+
else {
|
|
158239
|
+
this.reportBlockedOrigin(challengedUrl);
|
|
158240
|
+
}
|
|
158241
|
+
}
|
|
158242
|
+
return rsp;
|
|
158243
|
+
}
|
|
158244
|
+
/** Routes one request - initial, HTML fallback or token retry - through the registered fetch handler
|
|
158245
|
+
* (if any), with fresh headers per request so injected values are neither accumulated nor exposed to
|
|
158246
|
+
* cross-origin redirects.
|
|
158247
|
+
*/
|
|
158248
|
+
async requestViaHandler(target, allowSsoRetry, options) {
|
|
158249
|
+
return (0,_tile_internal__WEBPACK_IMPORTED_MODULE_0__.fetchMapLayerRequest)({
|
|
158250
|
+
url: target.toString(),
|
|
158251
|
+
formatId: this._settings.formatId,
|
|
158252
|
+
layerUrl: this._settings.url,
|
|
158253
|
+
layerProperties: this._settings.properties,
|
|
158254
|
+
headers: new Headers(options?.headers),
|
|
158255
|
+
send: async (request, credentialed) => this.sendArcGisRequest(request, credentialed, allowSsoRetry, options),
|
|
158256
|
+
});
|
|
158257
|
+
}
|
|
158072
158258
|
/**
|
|
158073
158259
|
* Make a request to an ArcGIS service using the provided URL and init parameters.
|
|
158074
158260
|
* @param url URL to query
|
|
@@ -158077,19 +158263,24 @@ class ArcGISImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE_0__.
|
|
|
158077
158263
|
*/
|
|
158078
158264
|
async fetch(url, options) {
|
|
158079
158265
|
let errorCode;
|
|
158080
|
-
const urlObj = new URL(url);
|
|
158081
158266
|
const queryParams = this._settings.collectQueryParams();
|
|
158082
|
-
|
|
158083
|
-
|
|
158084
|
-
|
|
158085
|
-
|
|
158086
|
-
|
|
158087
|
-
this._lastAccessToken = await _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisUtilities.appendSecurityToken(urlObj, this._accessClient, {
|
|
158088
|
-
mapLayerUrl: new URL(this._settings.url),
|
|
158089
|
-
portal: typeof this._settings.properties?.portal === "string" ? this._settings.properties.portal : undefined,
|
|
158090
|
-
userName: this._settings.userName,
|
|
158091
|
-
password: this._settings.password
|
|
158267
|
+
const buildRequestUrl = () => {
|
|
158268
|
+
const requestUrl = new URL(url);
|
|
158269
|
+
Object.keys(queryParams).forEach((paramKey) => {
|
|
158270
|
+
if (!requestUrl.searchParams.has(paramKey))
|
|
158271
|
+
requestUrl.searchParams.append(paramKey, queryParams[paramKey]);
|
|
158092
158272
|
});
|
|
158273
|
+
return requestUrl;
|
|
158274
|
+
};
|
|
158275
|
+
const accessTokenParams = {
|
|
158276
|
+
mapLayerUrl: new URL(this._settings.url),
|
|
158277
|
+
portal: typeof this._settings.properties?.portal === "string" ? this._settings.properties.portal : undefined,
|
|
158278
|
+
userName: this._settings.userName,
|
|
158279
|
+
password: this._settings.password,
|
|
158280
|
+
};
|
|
158281
|
+
const urlObj = buildRequestUrl();
|
|
158282
|
+
if (this._accessTokenRequired && this._accessClient) {
|
|
158283
|
+
this._lastAccessToken = await _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisUtilities.appendSecurityToken(urlObj, this._accessClient, accessTokenParams);
|
|
158093
158284
|
}
|
|
158094
158285
|
// We want to complete the first request before letting other requests go;
|
|
158095
158286
|
// this done to avoid flooding server with requests missing credentials
|
|
@@ -158098,35 +158289,9 @@ class ArcGISImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE_0__.
|
|
|
158098
158289
|
else
|
|
158099
158290
|
await this._firstRequestPromise;
|
|
158100
158291
|
let response;
|
|
158292
|
+
let managedByHandler = false;
|
|
158101
158293
|
try {
|
|
158102
|
-
|
|
158103
|
-
const includeCredentials = this.includeUserCredentials(requestUrl);
|
|
158104
|
-
response = await fetch(urlObj, {
|
|
158105
|
-
...options,
|
|
158106
|
-
credentials: includeCredentials ? "include" : undefined,
|
|
158107
|
-
redirect: includeCredentials ? this.credentialedRedirect : options?.redirect,
|
|
158108
|
-
});
|
|
158109
|
-
if (includeCredentials)
|
|
158110
|
-
this.checkCredentialedRedirect(requestUrl, response);
|
|
158111
|
-
if (response.status === 401 && !this._lastAccessToken && (0,_request_utils__WEBPACK_IMPORTED_MODULE_3__.headersIncludeAuthMethod)(response.headers, ["ntlm", "negotiate"])) {
|
|
158112
|
-
// fetch follows redirects transparently, so trust decisions target the final (post-redirect) URL.
|
|
158113
|
-
const challengedUrl = response.url || requestUrl;
|
|
158114
|
-
if (this.isSsoAllowed(challengedUrl)) {
|
|
158115
|
-
// We got a http 401 challenge, lets try again with SSO enabled (i.e. Windows Authentication).
|
|
158116
|
-
this.logUntrustedOriginUse(challengedUrl);
|
|
158117
|
-
response = await fetch(challengedUrl, {
|
|
158118
|
-
...options,
|
|
158119
|
-
credentials: "include",
|
|
158120
|
-
redirect: _IModelApp__WEBPACK_IMPORTED_MODULE_1__.IModelApp.mapLayerFormatRegistry.restrictCredentialsToTrustedOrigins ? "error" : undefined,
|
|
158121
|
-
});
|
|
158122
|
-
if (response.status === 200) {
|
|
158123
|
-
this.recordSsoSucceeded(challengedUrl); // avoid going through 401 challenges over and over for this origin
|
|
158124
|
-
}
|
|
158125
|
-
}
|
|
158126
|
-
else {
|
|
158127
|
-
this.reportBlockedOrigin(challengedUrl);
|
|
158128
|
-
}
|
|
158129
|
-
}
|
|
158294
|
+
({ response, managedByHandler } = await this.requestViaHandler(urlObj, true, options));
|
|
158130
158295
|
if ((this._lastAccessToken && response.status === 400)
|
|
158131
158296
|
|| response.headers.get("content-type")?.toLowerCase().includes("htm")) {
|
|
158132
158297
|
// For some reasons when we make a request with the fetch() api and there is a token error
|
|
@@ -158137,7 +158302,7 @@ class ArcGISImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE_0__.
|
|
|
158137
158302
|
if (this._lastAccessToken && this._accessTokenRequired)
|
|
158138
158303
|
tmpUrl.searchParams.append("token", this._lastAccessToken.token);
|
|
158139
158304
|
tmpUrl.searchParams.append("f", "json");
|
|
158140
|
-
response = await
|
|
158305
|
+
({ response, managedByHandler } = await this.requestViaHandler(tmpUrl, false, options));
|
|
158141
158306
|
}
|
|
158142
158307
|
errorCode = await _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisUtilities.checkForResponseErrorCode(response);
|
|
158143
158308
|
if (errorCode !== undefined &&
|
|
@@ -158149,19 +158314,21 @@ class ArcGISImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE_0__.
|
|
|
158149
158314
|
// Token might have expired, make a second attempt by forcing new token.
|
|
158150
158315
|
if (this._accessClient?.invalidateToken !== undefined && this._lastAccessToken !== undefined)
|
|
158151
158316
|
this._accessClient.invalidateToken(this._lastAccessToken);
|
|
158152
|
-
|
|
158317
|
+
// A fresh URL: the expired token must not remain as a first `token` parameter.
|
|
158318
|
+
const retryUrl = buildRequestUrl();
|
|
158153
158319
|
if (this._accessClient) {
|
|
158154
158320
|
try {
|
|
158155
|
-
this._lastAccessToken = await _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisUtilities.appendSecurityToken(
|
|
158321
|
+
this._lastAccessToken = await _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisUtilities.appendSecurityToken(retryUrl, this._accessClient, accessTokenParams);
|
|
158156
158322
|
}
|
|
158157
158323
|
catch {
|
|
158158
158324
|
}
|
|
158159
158325
|
}
|
|
158160
158326
|
// Make a second attempt with refreshed token
|
|
158161
|
-
response = await
|
|
158327
|
+
({ response, managedByHandler } = await this.requestViaHandler(retryUrl, false, options));
|
|
158162
158328
|
errorCode = await _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisUtilities.checkForResponseErrorCode(response);
|
|
158163
158329
|
}
|
|
158164
|
-
|
|
158330
|
+
// An error code in a response managed by the fetch handler is not classified here.
|
|
158331
|
+
if (!managedByHandler && errorCode !== undefined &&
|
|
158165
158332
|
(errorCode === _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisErrorCode.TokenRequired
|
|
158166
158333
|
|| errorCode === _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisErrorCode.InvalidToken
|
|
158167
158334
|
|| errorCode === _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisErrorCode.MissingPermissions)) {
|
|
@@ -158176,13 +158343,24 @@ class ArcGISImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE_0__.
|
|
|
158176
158343
|
}
|
|
158177
158344
|
}
|
|
158178
158345
|
}
|
|
158346
|
+
catch (error) {
|
|
158347
|
+
if (error instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerAuthenticationFailedError)
|
|
158348
|
+
this.reportAuthenticationFailure();
|
|
158349
|
+
throw error;
|
|
158350
|
+
}
|
|
158179
158351
|
finally {
|
|
158180
158352
|
this.onFirstRequestCompleted.raiseEvent();
|
|
158181
158353
|
}
|
|
158182
158354
|
if (response === undefined)
|
|
158183
158355
|
throw new Error("fetch call failed");
|
|
158356
|
+
if (managedByHandler)
|
|
158357
|
+
this._handlerManagedFetchResponses.add(response);
|
|
158184
158358
|
return response;
|
|
158185
158359
|
}
|
|
158360
|
+
/** Also true for responses of [[fetch]] a handler returned as its own. */
|
|
158361
|
+
isManagedByHandler(response) {
|
|
158362
|
+
return this._handlerManagedFetchResponses.has(response) || super.isManagedByHandler(response);
|
|
158363
|
+
}
|
|
158186
158364
|
}
|
|
158187
158365
|
|
|
158188
158366
|
|
|
@@ -158339,14 +158517,15 @@ class ArcGISMapLayerImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MOD
|
|
|
158339
158517
|
const metadata = await this.getServiceJson();
|
|
158340
158518
|
if (metadata?.content === undefined) {
|
|
158341
158519
|
// By returning (i.e., not throwing), we ensure the tile tree gets created and the current provider is preserved to report status.
|
|
158342
|
-
if (this.status === _tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapLayerImageryProviderStatus.UntrustedOrigin)
|
|
158520
|
+
if (this.status === _tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapLayerImageryProviderStatus.UntrustedOrigin || this.status === _tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapLayerImageryProviderStatus.RequireAuth)
|
|
158343
158521
|
return;
|
|
158344
158522
|
throw new _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.ServerError(_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_5__.IModelStatus.ValidationFailed, "");
|
|
158345
158523
|
}
|
|
158346
158524
|
const json = metadata.content;
|
|
158347
|
-
|
|
158348
|
-
|
|
158349
|
-
||
|
|
158525
|
+
const errorCode = metadata.errorCode;
|
|
158526
|
+
if (errorCode === _tile_internal__WEBPACK_IMPORTED_MODULE_2__.ArcGisErrorCode.TokenRequired
|
|
158527
|
+
|| errorCode === _tile_internal__WEBPACK_IMPORTED_MODULE_2__.ArcGisErrorCode.InvalidToken
|
|
158528
|
+
|| errorCode === _tile_internal__WEBPACK_IMPORTED_MODULE_2__.ArcGisErrorCode.MissingPermissions) {
|
|
158350
158529
|
// Check again layer status, it might have change during await.
|
|
158351
158530
|
if (this.status === _tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapLayerImageryProviderStatus.Valid) {
|
|
158352
158531
|
this.setStatus(_tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapLayerImageryProviderStatus.RequireAuth);
|
|
@@ -159362,7 +159541,13 @@ class WmsMapLayerImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE
|
|
|
159362
159541
|
async initialize() {
|
|
159363
159542
|
try {
|
|
159364
159543
|
const credentials = (this._settings.userName && this._settings.password ? { user: this._settings.userName, password: this._settings.password } : undefined);
|
|
159365
|
-
this._capabilities = await _tile_internal__WEBPACK_IMPORTED_MODULE_3__.WmsCapabilities.create(this._baseUrl,
|
|
159544
|
+
this._capabilities = await _tile_internal__WEBPACK_IMPORTED_MODULE_3__.WmsCapabilities.create(this._baseUrl, {
|
|
159545
|
+
credentials,
|
|
159546
|
+
queryParams: this._settings.collectQueryParams(),
|
|
159547
|
+
formatId: this._settings.formatId,
|
|
159548
|
+
layerUrl: this._settings.url,
|
|
159549
|
+
layerProperties: this._settings.properties,
|
|
159550
|
+
});
|
|
159366
159551
|
if (undefined !== this._capabilities) {
|
|
159367
159552
|
this._allLayersRange = this._capabilities.cartoRange;
|
|
159368
159553
|
if (this._capabilities.layer && Array.isArray(this._capabilities.layer.subLayers)) {
|
|
@@ -159396,7 +159581,7 @@ class WmsMapLayerImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE
|
|
|
159396
159581
|
if (error instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_3__.MapLayerUntrustedOriginError) {
|
|
159397
159582
|
this.reportBlockedOrigin(error.url);
|
|
159398
159583
|
}
|
|
159399
|
-
else if (error?.status === 401) {
|
|
159584
|
+
else if (error instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_3__.MapLayerAuthenticationFailedError || error?.status === 401) {
|
|
159400
159585
|
this.setStatus(_tile_internal__WEBPACK_IMPORTED_MODULE_3__.MapLayerImageryProviderStatus.RequireAuth);
|
|
159401
159586
|
}
|
|
159402
159587
|
else {
|
|
@@ -159559,7 +159744,13 @@ class WmtsMapLayerImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODUL
|
|
|
159559
159744
|
async initialize() {
|
|
159560
159745
|
try {
|
|
159561
159746
|
const credentials = (this._settings.userName && this._settings.password ? { user: this._settings.userName, password: this._settings.password } : undefined);
|
|
159562
|
-
this._capabilities = await _tile_internal__WEBPACK_IMPORTED_MODULE_2__.WmtsCapabilities.create(this._baseUrl,
|
|
159747
|
+
this._capabilities = await _tile_internal__WEBPACK_IMPORTED_MODULE_2__.WmtsCapabilities.create(this._baseUrl, {
|
|
159748
|
+
credentials,
|
|
159749
|
+
queryParams: this._settings.collectQueryParams(),
|
|
159750
|
+
formatId: this._settings.formatId,
|
|
159751
|
+
layerUrl: this._settings.url,
|
|
159752
|
+
layerProperties: this._settings.properties,
|
|
159753
|
+
});
|
|
159563
159754
|
this.initPreferredTileMatrixSet();
|
|
159564
159755
|
this.initPreferredStyle();
|
|
159565
159756
|
this.initDisplayedLayer();
|
|
@@ -159575,7 +159766,7 @@ class WmtsMapLayerImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODUL
|
|
|
159575
159766
|
if (error instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapLayerUntrustedOriginError) {
|
|
159576
159767
|
this.reportBlockedOrigin(error.url);
|
|
159577
159768
|
}
|
|
159578
|
-
else if (error?.status === 401) {
|
|
159769
|
+
else if (error instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapLayerAuthenticationFailedError || error?.status === 401) {
|
|
159579
159770
|
this.setStatus(_tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapLayerImageryProviderStatus.RequireAuth);
|
|
159580
159771
|
}
|
|
159581
159772
|
else {
|
|
@@ -159735,6 +159926,113 @@ class WmtsMapLayerImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODUL
|
|
|
159735
159926
|
}
|
|
159736
159927
|
|
|
159737
159928
|
|
|
159929
|
+
/***/ },
|
|
159930
|
+
|
|
159931
|
+
/***/ "../../core/frontend/lib/esm/internal/tile/map/MapLayerFetch.js"
|
|
159932
|
+
/*!**********************************************************************!*\
|
|
159933
|
+
!*** ../../core/frontend/lib/esm/internal/tile/map/MapLayerFetch.js ***!
|
|
159934
|
+
\**********************************************************************/
|
|
159935
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
159936
|
+
|
|
159937
|
+
"use strict";
|
|
159938
|
+
__webpack_require__.r(__webpack_exports__);
|
|
159939
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
159940
|
+
/* harmony export */ credentialedFetchRedirect: () => (/* binding */ credentialedFetchRedirect),
|
|
159941
|
+
/* harmony export */ fetchMapLayerRequest: () => (/* binding */ fetchMapLayerRequest)
|
|
159942
|
+
/* harmony export */ });
|
|
159943
|
+
/* harmony import */ var _IModelApp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../IModelApp */ "../../core/frontend/lib/esm/IModelApp.js");
|
|
159944
|
+
/*---------------------------------------------------------------------------------------------
|
|
159945
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
159946
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
159947
|
+
*--------------------------------------------------------------------------------------------*/
|
|
159948
|
+
/** @packageDocumentation
|
|
159949
|
+
* @module Tiles
|
|
159950
|
+
*/
|
|
159951
|
+
|
|
159952
|
+
/** Routes an outgoing map-layer request through the pipeline of [[MapLayerFetchHandler]]s registered via
|
|
159953
|
+
* [[MapLayerFormatRegistry.addMapLayerFetchHandler]]; issues the default send directly when there is none or
|
|
159954
|
+
* every handler declines. A handler may decline, pass a copy of the request with other query parameters or
|
|
159955
|
+
* headers to `fetchRequest` (which offers it to the remaining handlers, then sends it credentialed), call it
|
|
159956
|
+
* any number of times, short-circuit with its own response, or throw [[MapLayerAuthenticationFailedError]].
|
|
159957
|
+
* @internal
|
|
159958
|
+
*/
|
|
159959
|
+
async function fetchMapLayerRequest(args) {
|
|
159960
|
+
const headers = args.headers ?? new Headers();
|
|
159961
|
+
const { layerUrl, layerProperties, formatId } = args;
|
|
159962
|
+
// Snapshot: registrations changing while a handler awaits must not shift the pipeline of a request in flight.
|
|
159963
|
+
const handlers = [...(_IModelApp__WEBPACK_IMPORTED_MODULE_0__.IModelApp.mapLayerFormatRegistry?.mapLayerFetchHandlers ?? [])];
|
|
159964
|
+
let parsed;
|
|
159965
|
+
if (handlers.length > 0) {
|
|
159966
|
+
try {
|
|
159967
|
+
// Relative URLs are valid targets (fetch resolves them against the document); resolve them the same way so
|
|
159968
|
+
// they are not opted out of the pipeline. Parsing only: the URL sent stays the caller's unless its query changes.
|
|
159969
|
+
parsed = new URL(args.url, typeof document !== "undefined" ? document.baseURI : undefined);
|
|
159970
|
+
}
|
|
159971
|
+
catch {
|
|
159972
|
+
// Not a parseable URL; issue the original request unhandled.
|
|
159973
|
+
}
|
|
159974
|
+
}
|
|
159975
|
+
if (!parsed) {
|
|
159976
|
+
const unhandled = await args.send({ url: args.url, layerUrl, layerProperties, formatId, searchParams: new URLSearchParams(), headers }, false);
|
|
159977
|
+
return { response: unhandled, managedByHandler: false };
|
|
159978
|
+
}
|
|
159979
|
+
const original = parsed;
|
|
159980
|
+
const originalSearch = original.searchParams.toString();
|
|
159981
|
+
const request = { url: args.url, layerUrl, layerProperties, formatId, searchParams: original.searchParams, headers };
|
|
159982
|
+
// Copies the mutable fields (including provider properties and their arrays; `readonly` is shallow), so a handler that
|
|
159983
|
+
// mutates its request in place and then declines cannot leak the mutation to the next handler or to the default
|
|
159984
|
+
// send. The URL string stays ours verbatim (URL serialization would normalize it) unless the query parameters
|
|
159985
|
+
// changed, in which case it is recomputed from them; the target never changes.
|
|
159986
|
+
const snapshot = (source) => {
|
|
159987
|
+
const searchParams = new URLSearchParams(source.searchParams);
|
|
159988
|
+
let url = args.url;
|
|
159989
|
+
if (searchParams.toString() !== originalSearch) {
|
|
159990
|
+
const changed = new URL(original);
|
|
159991
|
+
changed.search = searchParams.toString();
|
|
159992
|
+
url = changed.toString();
|
|
159993
|
+
}
|
|
159994
|
+
// Properties are informational layer context, not handler-editable request data. Always clone the
|
|
159995
|
+
// original settings, not source.layerProperties, so forwarding a modified copy cannot change that context.
|
|
159996
|
+
return { url, layerUrl, layerProperties: layerProperties === undefined ? undefined : structuredClone(layerProperties), formatId, searchParams, headers: new Headers(source.headers) };
|
|
159997
|
+
};
|
|
159998
|
+
// Offers the request to handlers[index..]: a declined request goes unchanged to the next handler; a request a
|
|
159999
|
+
// handler sends is offered to the remaining ones, then issued credentialed.
|
|
160000
|
+
const dispatch = async (index, toOffer) => {
|
|
160001
|
+
for (let i = index; i < handlers.length; ++i) {
|
|
160002
|
+
const handled = await handlers[i](snapshot(toOffer), async (toSend) => {
|
|
160003
|
+
const next = snapshot(toSend);
|
|
160004
|
+
return (await dispatch(i + 1, next)) ?? args.send(next, true);
|
|
160005
|
+
});
|
|
160006
|
+
if (handled)
|
|
160007
|
+
return handled;
|
|
160008
|
+
}
|
|
160009
|
+
return undefined;
|
|
160010
|
+
};
|
|
160011
|
+
const response = await dispatch(0, request);
|
|
160012
|
+
if (response)
|
|
160013
|
+
return { response, managedByHandler: true };
|
|
160014
|
+
return { response: await args.send(request, false), managedByHandler: false };
|
|
160015
|
+
}
|
|
160016
|
+
/** The redirect policy for a request that carries credentials: browser credentials (see
|
|
160017
|
+
* [[MapLayerImageryProvider.includeUserCredentials]]), settings-derived basic auth, or values a fetch handler
|
|
160018
|
+
* injected (see [[MapLayerFetchRequest]]).
|
|
160019
|
+
*
|
|
160020
|
+
* When [[MapLayerFormatRegistry.restrictCredentialsToTrustedOrigins]] is enabled, redirects are refused
|
|
160021
|
+
* outright (`"error"`). `fetch` cannot be asked to follow only same-origin redirects, and by the time a
|
|
160022
|
+
* followed redirect can be inspected the credentials have already been delivered to the destination — so
|
|
160023
|
+
* refusing is the only way to honour the guarantee that credentials reach none but the origins listed in
|
|
160024
|
+
* [[MapLayerFormatRegistry.trustedCredentialsOrigins]]. Legitimate same-origin redirects fail as a result;
|
|
160025
|
+
* that is the cost of the opt-in restriction.
|
|
160026
|
+
*
|
|
160027
|
+
* When the restriction is disabled (the default), redirects are followed as before and
|
|
160028
|
+
* [[MapLayerImageryProvider.checkCredentialedRedirect]] reports the destination after the fact.
|
|
160029
|
+
* @internal
|
|
160030
|
+
*/
|
|
160031
|
+
function credentialedFetchRedirect() {
|
|
160032
|
+
return _IModelApp__WEBPACK_IMPORTED_MODULE_0__.IModelApp.mapLayerFormatRegistry.restrictCredentialsToTrustedOrigins ? "error" : undefined;
|
|
160033
|
+
}
|
|
160034
|
+
|
|
160035
|
+
|
|
159738
160036
|
/***/ },
|
|
159739
160037
|
|
|
159740
160038
|
/***/ "../../core/frontend/lib/esm/internal/tile/map/MapTileAvailability.js"
|
|
@@ -160099,7 +160397,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
160099
160397
|
* @internal
|
|
160100
160398
|
*/
|
|
160101
160399
|
function appendQueryParams(url, queryParams) {
|
|
160102
|
-
if (!queryParams)
|
|
160400
|
+
if (!queryParams || Object.keys(queryParams).length === 0)
|
|
160103
160401
|
return url;
|
|
160104
160402
|
// create a lower-case array of keys
|
|
160105
160403
|
const currentParams = [];
|
|
@@ -160151,7 +160449,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
160151
160449
|
/* harmony export */ WmsCapability: () => (/* binding */ WmsCapability)
|
|
160152
160450
|
/* harmony export */ });
|
|
160153
160451
|
/* harmony import */ var wms_capabilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! wms-capabilities */ "../../common/temp/node_modules/.pnpm/wms-capabilities@0.6.0/node_modules/wms-capabilities/dist/wms-capabilities.mjs");
|
|
160154
|
-
/* harmony import */ var
|
|
160452
|
+
/* harmony import */ var _IModelApp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../IModelApp */ "../../core/frontend/lib/esm/IModelApp.js");
|
|
160453
|
+
/* harmony import */ var _tile_internal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../tile/internal */ "../../core/frontend/lib/esm/tile/internal.js");
|
|
160155
160454
|
/*---------------------------------------------------------------------------------------------
|
|
160156
160455
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
160157
160456
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -160161,8 +160460,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
160161
160460
|
*/
|
|
160162
160461
|
|
|
160163
160462
|
|
|
160463
|
+
|
|
160164
160464
|
function rangeFromJSONArray(json) {
|
|
160165
|
-
return (Array.isArray(json) && json.length === 4) ?
|
|
160465
|
+
return (Array.isArray(json) && json.length === 4) ? _tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapCartoRectangle.fromDegrees(json[0], json[1], json[2], json[3]) : undefined;
|
|
160166
160466
|
}
|
|
160167
160467
|
function rangeFromJSON(json) {
|
|
160168
160468
|
if (undefined !== json.LatLonBoundingBox)
|
|
@@ -160358,13 +160658,9 @@ class WmsCapabilities {
|
|
|
160358
160658
|
return undefined; // Degenerate capabilities document
|
|
160359
160659
|
}
|
|
160360
160660
|
}
|
|
160361
|
-
static async create(url,
|
|
160362
|
-
|
|
160363
|
-
|
|
160364
|
-
if (cached !== undefined)
|
|
160365
|
-
return cached;
|
|
160366
|
-
}
|
|
160367
|
-
const tmpUrl = new URL(_tile_internal__WEBPACK_IMPORTED_MODULE_1__.WmsUtilities.getBaseUrl(url));
|
|
160661
|
+
static async create(url, options) {
|
|
160662
|
+
const { credentials, ignoreCache, queryParams, formatId, layerUrl, layerProperties } = options ?? {};
|
|
160663
|
+
const tmpUrl = new URL(_tile_internal__WEBPACK_IMPORTED_MODULE_2__.WmsUtilities.getBaseUrl(url));
|
|
160368
160664
|
tmpUrl.searchParams.append("request", "GetCapabilities");
|
|
160369
160665
|
tmpUrl.searchParams.append("service", "WMS");
|
|
160370
160666
|
if (queryParams) {
|
|
@@ -160373,15 +160669,25 @@ class WmsCapabilities {
|
|
|
160373
160669
|
tmpUrl.searchParams.append(paramKey, queryParams[paramKey]);
|
|
160374
160670
|
});
|
|
160375
160671
|
}
|
|
160376
|
-
const
|
|
160672
|
+
const cacheKey = tmpUrl.toString();
|
|
160673
|
+
// The cache never contains credentialed results (see the write below), so a credentialed request
|
|
160674
|
+
// must not be served a cached public document either; responses customized by the fetch handler
|
|
160675
|
+
// must not be shared with or served from differently-customized requests.
|
|
160676
|
+
const hasFetchHandler = (_IModelApp__WEBPACK_IMPORTED_MODULE_1__.IModelApp.mapLayerFormatRegistry?.mapLayerFetchHandlers.length ?? 0) > 0;
|
|
160677
|
+
if (!ignoreCache && !hasFetchHandler && !credentials) {
|
|
160678
|
+
const cached = WmsCapabilities._capabilitiesCache.get(cacheKey);
|
|
160679
|
+
if (cached !== undefined)
|
|
160680
|
+
return cached;
|
|
160681
|
+
}
|
|
160682
|
+
const xmlCapabilities = await _tile_internal__WEBPACK_IMPORTED_MODULE_2__.WmsUtilities.fetchXml(tmpUrl.toString(), { credentials, formatId: formatId ?? "WMS", layerUrl: layerUrl ?? url, layerProperties });
|
|
160377
160683
|
if (!xmlCapabilities)
|
|
160378
160684
|
return undefined;
|
|
160379
160685
|
const capabilities = WmsCapabilities.tryParse(xmlCapabilities);
|
|
160380
160686
|
if (capabilities === undefined)
|
|
160381
160687
|
return undefined;
|
|
160382
|
-
if (!credentials) {
|
|
160688
|
+
if (!credentials && !hasFetchHandler) {
|
|
160383
160689
|
// Avoid caching protected data
|
|
160384
|
-
WmsCapabilities._capabilitiesCache.set(
|
|
160690
|
+
WmsCapabilities._capabilitiesCache.set(cacheKey, capabilities);
|
|
160385
160691
|
}
|
|
160386
160692
|
return capabilities;
|
|
160387
160693
|
}
|
|
@@ -160419,9 +160725,6 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
160419
160725
|
|
|
160420
160726
|
|
|
160421
160727
|
|
|
160422
|
-
/** @packageDocumentation
|
|
160423
|
-
* @module Tiles
|
|
160424
|
-
*/
|
|
160425
160728
|
/** @internal */
|
|
160426
160729
|
class WmsUtilities {
|
|
160427
160730
|
static getBaseUrl(url) {
|
|
@@ -160432,21 +160735,58 @@ class WmsUtilities {
|
|
|
160432
160735
|
* fetch XML from HTTP request
|
|
160433
160736
|
* @param url server URL to address the request
|
|
160434
160737
|
*/
|
|
160435
|
-
static async fetchXml(url,
|
|
160738
|
+
static async fetchXml(url, options) {
|
|
160739
|
+
const { credentials, formatId, layerUrl, layerProperties } = options ?? {};
|
|
160436
160740
|
let headers;
|
|
160437
|
-
|
|
160741
|
+
const hasCredentials = !!(credentials && credentials.user && credentials.password);
|
|
160742
|
+
if (hasCredentials) {
|
|
160438
160743
|
// Basic credentials are considered settings-derived credentials for this source. When the registry is
|
|
160439
160744
|
// enforcing trusted origins, the source URL itself is the only implicitly trusted origin for basic auth;
|
|
160440
160745
|
// opaque/custom-protocol URLs have no network origin and must therefore be treated as untrusted.
|
|
160441
|
-
|
|
160746
|
+
// Optional chaining: some callers run before IModelApp startup.
|
|
160747
|
+
const allowBasicAuth = !_IModelApp__WEBPACK_IMPORTED_MODULE_0__.IModelApp.mapLayerFormatRegistry?.restrictCredentialsToTrustedOrigins
|
|
160442
160748
|
|| _IModelApp__WEBPACK_IMPORTED_MODULE_0__.IModelApp.mapLayerFormatRegistry.isCredentialsSharingAllowed(url, url);
|
|
160443
160749
|
if (allowBasicAuth) {
|
|
160444
160750
|
headers = new Headers();
|
|
160445
160751
|
(0,_request_utils__WEBPACK_IMPORTED_MODULE_2__.setBasicAuthorization)(headers, credentials);
|
|
160446
160752
|
}
|
|
160447
160753
|
}
|
|
160448
|
-
|
|
160449
|
-
|
|
160754
|
+
const credentialsWithheld = hasCredentials && headers === undefined;
|
|
160755
|
+
// Route the request through the registered fetch handler (if any). Handler failures — including
|
|
160756
|
+
// MapLayerAuthenticationFailedError — propagate so callers can transition to RequireAuth.
|
|
160757
|
+
const { response, managedByHandler } = await (0,_tile_internal__WEBPACK_IMPORTED_MODULE_3__.fetchMapLayerRequest)({
|
|
160758
|
+
url,
|
|
160759
|
+
formatId: formatId ?? "",
|
|
160760
|
+
layerUrl: layerUrl ?? url,
|
|
160761
|
+
layerProperties,
|
|
160762
|
+
headers,
|
|
160763
|
+
send: async (request, credentialed) => {
|
|
160764
|
+
const rsp = await fetch(request.url, {
|
|
160765
|
+
method: "GET",
|
|
160766
|
+
headers: request.headers,
|
|
160767
|
+
// Sends the handler modified may carry injected secrets: same redirect policy as credentialed ones.
|
|
160768
|
+
redirect: credentialed ? (0,_tile_internal__WEBPACK_IMPORTED_MODULE_3__.credentialedFetchRedirect)() : undefined,
|
|
160769
|
+
});
|
|
160770
|
+
// A send the handler modified never falls back to the legacy basic-auth / NTLM-SSO handling:
|
|
160771
|
+
// the handler is the authentication authority for it.
|
|
160772
|
+
return credentialed ? rsp : WmsUtilities.handleLegacyChallenges(rsp, request.url, credentials, credentialsWithheld);
|
|
160773
|
+
},
|
|
160774
|
+
});
|
|
160775
|
+
if (response.status !== 200) {
|
|
160776
|
+
// A status in a response managed by the fetch handler is not an authentication failure (it would have
|
|
160777
|
+
// thrown MapLayerAuthenticationFailedError): report it without a status so callers do not classify it.
|
|
160778
|
+
if (managedByHandler)
|
|
160779
|
+
throw new Error(`Map-layer fetch handler returned status ${response.status} for '${url}'`);
|
|
160780
|
+
throw new _request_Request__WEBPACK_IMPORTED_MODULE_1__.HttpResponseError(response.status, await response.text());
|
|
160781
|
+
}
|
|
160782
|
+
return response.text();
|
|
160783
|
+
}
|
|
160784
|
+
/** Legacy (no injected credentials) challenge handling: basic-auth/untrusted-origin classification and the SSO retry.
|
|
160785
|
+
* `credentialsWithheld` is true when basic credentials exist but were not attached because the origin is untrusted.
|
|
160786
|
+
*/
|
|
160787
|
+
static async handleLegacyChallenges(firstResponse, url, credentials, credentialsWithheld) {
|
|
160788
|
+
let response = firstResponse;
|
|
160789
|
+
if (credentialsWithheld && (response.status === 401 || response.status === 403)) {
|
|
160450
160790
|
throw new _tile_internal__WEBPACK_IMPORTED_MODULE_3__.MapLayerUntrustedOriginError(url);
|
|
160451
160791
|
}
|
|
160452
160792
|
if (!credentials && response.status === 401 && (0,_request_utils__WEBPACK_IMPORTED_MODULE_2__.headersIncludeAuthMethod)(response.headers, ["ntlm", "negotiate"])) {
|
|
@@ -160462,9 +160802,7 @@ class WmsUtilities {
|
|
|
160462
160802
|
redirect: _IModelApp__WEBPACK_IMPORTED_MODULE_0__.IModelApp.mapLayerFormatRegistry.restrictCredentialsToTrustedOrigins ? "error" : undefined,
|
|
160463
160803
|
});
|
|
160464
160804
|
}
|
|
160465
|
-
|
|
160466
|
-
throw new _request_Request__WEBPACK_IMPORTED_MODULE_1__.HttpResponseError(response.status, await response.text());
|
|
160467
|
-
return response.text();
|
|
160805
|
+
return response;
|
|
160468
160806
|
}
|
|
160469
160807
|
}
|
|
160470
160808
|
|
|
@@ -160486,7 +160824,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
160486
160824
|
/* harmony export */ });
|
|
160487
160825
|
/* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
|
|
160488
160826
|
/* harmony import */ var _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @itwin/core-geometry */ "../../core/geometry/lib/esm/core-geometry.js");
|
|
160489
|
-
/* harmony import */ var
|
|
160827
|
+
/* harmony import */ var _IModelApp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../IModelApp */ "../../core/frontend/lib/esm/IModelApp.js");
|
|
160828
|
+
/* harmony import */ var _tile_internal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../tile/internal */ "../../core/frontend/lib/esm/tile/internal.js");
|
|
160490
160829
|
/*---------------------------------------------------------------------------------------------
|
|
160491
160830
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
160492
160831
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -160497,6 +160836,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
160497
160836
|
|
|
160498
160837
|
|
|
160499
160838
|
|
|
160839
|
+
|
|
160500
160840
|
var OwsConstants;
|
|
160501
160841
|
(function (OwsConstants) {
|
|
160502
160842
|
OwsConstants["ABSTRACT_XMLTAG"] = "ows:Abstract";
|
|
@@ -160902,14 +161242,14 @@ var WmtsCapability;
|
|
|
160902
161242
|
upperCornerArray = getElementTextContent(bbox[0], OwsConstants.UPPERCORNER_XMLTAG)?.split(" ").map((x) => +x);
|
|
160903
161243
|
}
|
|
160904
161244
|
if (lowerCornerArray?.length === 2 && upperCornerArray?.length === 2)
|
|
160905
|
-
this.wsg84BoundingBox =
|
|
161245
|
+
this.wsg84BoundingBox = _tile_internal__WEBPACK_IMPORTED_MODULE_3__.MapCartoRectangle.fromDegrees(lowerCornerArray[0], lowerCornerArray[1], upperCornerArray[0], upperCornerArray[1]);
|
|
160906
161246
|
// If we could not initialized WSG84 bounding box, attempt to initialized it from Bounding Box
|
|
160907
161247
|
if (!this.wsg84BoundingBox && (this.boundingBox?.crs?.includes("EPSG:4326") || this.boundingBox?.crs?.includes("CRS:84"))) {
|
|
160908
161248
|
const range = this.boundingBox.range;
|
|
160909
161249
|
if (range)
|
|
160910
|
-
this.wsg84BoundingBox =
|
|
161250
|
+
this.wsg84BoundingBox = _tile_internal__WEBPACK_IMPORTED_MODULE_3__.MapCartoRectangle.fromDegrees(range.low.x, range.low.y, range.high.x, range.high.y);
|
|
160911
161251
|
else
|
|
160912
|
-
this.wsg84BoundingBox =
|
|
161252
|
+
this.wsg84BoundingBox = _tile_internal__WEBPACK_IMPORTED_MODULE_3__.MapCartoRectangle.createMaximum();
|
|
160913
161253
|
}
|
|
160914
161254
|
// Style
|
|
160915
161255
|
const style = elem.getElementsByTagName("Style");
|
|
@@ -160962,13 +161302,9 @@ class WmtsCapabilities {
|
|
|
160962
161302
|
const xmlDoc = parser.parseFromString(xmlCapabilities, "text/xml");
|
|
160963
161303
|
return new WmtsCapabilities(xmlDoc);
|
|
160964
161304
|
}
|
|
160965
|
-
static async create(url,
|
|
160966
|
-
|
|
160967
|
-
|
|
160968
|
-
if (cached !== undefined)
|
|
160969
|
-
return cached;
|
|
160970
|
-
}
|
|
160971
|
-
const tmpUrl = new URL(_tile_internal__WEBPACK_IMPORTED_MODULE_2__.WmsUtilities.getBaseUrl(url));
|
|
161305
|
+
static async create(url, options) {
|
|
161306
|
+
const { credentials, ignoreCache, queryParams, formatId, layerUrl, layerProperties } = options ?? {};
|
|
161307
|
+
const tmpUrl = new URL(_tile_internal__WEBPACK_IMPORTED_MODULE_3__.WmsUtilities.getBaseUrl(url));
|
|
160972
161308
|
tmpUrl.searchParams.append("request", "GetCapabilities");
|
|
160973
161309
|
tmpUrl.searchParams.append("service", "WMTS");
|
|
160974
161310
|
if (queryParams) {
|
|
@@ -160977,12 +161313,22 @@ class WmtsCapabilities {
|
|
|
160977
161313
|
tmpUrl.searchParams.append(paramKey, queryParams[paramKey]);
|
|
160978
161314
|
});
|
|
160979
161315
|
}
|
|
160980
|
-
const
|
|
161316
|
+
const cacheKey = tmpUrl.toString();
|
|
161317
|
+
// The cache never contains credentialed results (see the write below), so a credentialed request
|
|
161318
|
+
// must not be served a cached public document either; responses customized by the fetch handler
|
|
161319
|
+
// must not be shared with or served from differently-customized requests.
|
|
161320
|
+
const hasFetchHandler = (_IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry?.mapLayerFetchHandlers.length ?? 0) > 0;
|
|
161321
|
+
if (!ignoreCache && !hasFetchHandler && !credentials) {
|
|
161322
|
+
const cached = WmtsCapabilities._capabilitiesCache.get(cacheKey);
|
|
161323
|
+
if (cached !== undefined)
|
|
161324
|
+
return cached;
|
|
161325
|
+
}
|
|
161326
|
+
const xmlCapabilities = await _tile_internal__WEBPACK_IMPORTED_MODULE_3__.WmsUtilities.fetchXml(tmpUrl.toString(), { credentials, formatId: formatId ?? "WMTS", layerUrl: layerUrl ?? url, layerProperties });
|
|
160981
161327
|
if (!xmlCapabilities)
|
|
160982
161328
|
return undefined;
|
|
160983
161329
|
const capabilities = WmtsCapabilities.createFromXml(xmlCapabilities);
|
|
160984
|
-
if (capabilities)
|
|
160985
|
-
WmtsCapabilities._capabilitiesCache.set(
|
|
161330
|
+
if (capabilities && !credentials && !hasFetchHandler)
|
|
161331
|
+
WmtsCapabilities._capabilitiesCache.set(cacheKey, capabilities);
|
|
160986
161332
|
return capabilities;
|
|
160987
161333
|
}
|
|
160988
161334
|
}
|
|
@@ -167888,7 +168234,9 @@ class GltfReader {
|
|
|
167888
168234
|
resolveUrl(uri) {
|
|
167889
168235
|
try {
|
|
167890
168236
|
const resolved = new URL(uri, this._baseUrl);
|
|
167891
|
-
|
|
168237
|
+
// Only forward the base URL's query (which may contain credentials) to the same origin.
|
|
168238
|
+
if (this._baseUrl && resolved.origin === this._baseUrl.origin)
|
|
168239
|
+
resolved.search = this._baseUrl.search;
|
|
167892
168240
|
return resolved.toString();
|
|
167893
168241
|
}
|
|
167894
168242
|
catch {
|
|
@@ -173006,27 +173354,27 @@ var TiledGraphicsProvider;
|
|
|
173006
173354
|
"use strict";
|
|
173007
173355
|
__webpack_require__.r(__webpack_exports__);
|
|
173008
173356
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
173009
|
-
/* harmony export */ AnimatedTreeReference: () => (/* reexport safe */
|
|
173010
|
-
/* harmony export */ ArcGISIdentifyRequestUrl: () => (/* reexport safe */
|
|
173011
|
-
/* harmony export */ ArcGISImageryProvider: () => (/* reexport safe */
|
|
173012
|
-
/* harmony export */ ArcGISMapLayerImageryProvider: () => (/* reexport safe */
|
|
173357
|
+
/* harmony export */ AnimatedTreeReference: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__.AnimatedTreeReference),
|
|
173358
|
+
/* harmony export */ ArcGISIdentifyRequestUrl: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_ArcGISMapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_59__.ArcGISIdentifyRequestUrl),
|
|
173359
|
+
/* harmony export */ ArcGISImageryProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_ArcGISImageryProvider__WEBPACK_IMPORTED_MODULE_55__.ArcGISImageryProvider),
|
|
173360
|
+
/* harmony export */ ArcGISMapLayerImageryProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_ArcGISMapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_59__.ArcGISMapLayerImageryProvider),
|
|
173013
173361
|
/* harmony export */ ArcGISTileMap: () => (/* reexport safe */ _internal_tile_map_ArcGISTileMap__WEBPACK_IMPORTED_MODULE_39__.ArcGISTileMap),
|
|
173014
|
-
/* harmony export */ ArcGisErrorCode: () => (/* reexport safe */
|
|
173015
|
-
/* harmony export */ ArcGisGeometryReaderJSON: () => (/* reexport safe */
|
|
173016
|
-
/* harmony export */ ArcGisUtilities: () => (/* reexport safe */
|
|
173362
|
+
/* harmony export */ ArcGisErrorCode: () => (/* reexport safe */ _internal_tile_map_ArcGisUtilities__WEBPACK_IMPORTED_MODULE_44__.ArcGisErrorCode),
|
|
173363
|
+
/* harmony export */ ArcGisGeometryReaderJSON: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_ArcGisGeometryReaderJSON__WEBPACK_IMPORTED_MODULE_58__.ArcGisGeometryReaderJSON),
|
|
173364
|
+
/* harmony export */ ArcGisUtilities: () => (/* reexport safe */ _internal_tile_map_ArcGisUtilities__WEBPACK_IMPORTED_MODULE_44__.ArcGisUtilities),
|
|
173017
173365
|
/* harmony export */ B3dmReader: () => (/* reexport safe */ _internal_tile_B3dmReader__WEBPACK_IMPORTED_MODULE_34__.B3dmReader),
|
|
173018
173366
|
/* harmony export */ BatchedTileIdMap: () => (/* reexport safe */ _internal_tile_BatchedTileIdMap__WEBPACK_IMPORTED_MODULE_12__.BatchedTileIdMap),
|
|
173019
|
-
/* harmony export */ BingElevationProvider: () => (/* reexport safe */
|
|
173020
|
-
/* harmony export */ BingMapsImageryLayerProvider: () => (/* reexport safe */
|
|
173021
|
-
/* harmony export */ CesiumIonAssetProvider: () => (/* reexport safe */
|
|
173022
|
-
/* harmony export */ ContextShareProvider: () => (/* reexport safe */
|
|
173367
|
+
/* harmony export */ BingElevationProvider: () => (/* reexport safe */ _map_BingElevation__WEBPACK_IMPORTED_MODULE_75__.BingElevationProvider),
|
|
173368
|
+
/* harmony export */ BingMapsImageryLayerProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_BingImageryProvider__WEBPACK_IMPORTED_MODULE_60__.BingMapsImageryLayerProvider),
|
|
173369
|
+
/* harmony export */ CesiumIonAssetProvider: () => (/* reexport safe */ _internal_tile_CesiumAssetProvider__WEBPACK_IMPORTED_MODULE_90__.CesiumIonAssetProvider),
|
|
173370
|
+
/* harmony export */ ContextShareProvider: () => (/* reexport safe */ _internal_tile_ContextShareProvider__WEBPACK_IMPORTED_MODULE_91__.ContextShareProvider),
|
|
173023
173371
|
/* harmony export */ DisclosedTileTreeSet: () => (/* reexport safe */ _DisclosedTileTreeSet__WEBPACK_IMPORTED_MODULE_3__.DisclosedTileTreeSet),
|
|
173024
|
-
/* harmony export */ DynamicIModelTile: () => (/* reexport safe */
|
|
173025
|
-
/* harmony export */ EllipsoidTerrainProvider: () => (/* reexport safe */
|
|
173026
|
-
/* harmony export */ FeatureGeometryBaseRenderer: () => (/* reexport safe */
|
|
173027
|
-
/* harmony export */ FeatureGraphicsRenderer: () => (/* reexport safe */
|
|
173028
|
-
/* harmony export */ FetchCloudStorage: () => (/* reexport safe */
|
|
173029
|
-
/* harmony export */ GeographicTilingScheme: () => (/* reexport safe */
|
|
173372
|
+
/* harmony export */ DynamicIModelTile: () => (/* reexport safe */ _internal_tile_DynamicIModelTile__WEBPACK_IMPORTED_MODULE_82__.DynamicIModelTile),
|
|
173373
|
+
/* harmony export */ EllipsoidTerrainProvider: () => (/* reexport safe */ _map_EllipsoidTerrainProvider__WEBPACK_IMPORTED_MODULE_71__.EllipsoidTerrainProvider),
|
|
173374
|
+
/* harmony export */ FeatureGeometryBaseRenderer: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_FeatureGeometryRenderer__WEBPACK_IMPORTED_MODULE_56__.FeatureGeometryBaseRenderer),
|
|
173375
|
+
/* harmony export */ FeatureGraphicsRenderer: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_FeatureGraphicsRenderer__WEBPACK_IMPORTED_MODULE_57__.FeatureGraphicsRenderer),
|
|
173376
|
+
/* harmony export */ FetchCloudStorage: () => (/* reexport safe */ _internal_tile_FetchCloudStorage__WEBPACK_IMPORTED_MODULE_94__.FetchCloudStorage),
|
|
173377
|
+
/* harmony export */ GeographicTilingScheme: () => (/* reexport safe */ _map_MapTilingScheme__WEBPACK_IMPORTED_MODULE_76__.GeographicTilingScheme),
|
|
173030
173378
|
/* harmony export */ GltfBufferData: () => (/* reexport safe */ _GltfReader__WEBPACK_IMPORTED_MODULE_32__.GltfBufferData),
|
|
173031
173379
|
/* harmony export */ GltfGraphicsReader: () => (/* reexport safe */ _GltfReader__WEBPACK_IMPORTED_MODULE_32__.GltfGraphicsReader),
|
|
173032
173380
|
/* harmony export */ GltfMeshData: () => (/* reexport safe */ _GltfReader__WEBPACK_IMPORTED_MODULE_32__.GltfMeshData),
|
|
@@ -173034,67 +173382,68 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
173034
173382
|
/* harmony export */ GltfReaderProps: () => (/* reexport safe */ _GltfReader__WEBPACK_IMPORTED_MODULE_32__.GltfReaderProps),
|
|
173035
173383
|
/* harmony export */ GraphicsCollectorDrawArgs: () => (/* reexport safe */ _internal_tile_GraphicsCollector__WEBPACK_IMPORTED_MODULE_11__.GraphicsCollectorDrawArgs),
|
|
173036
173384
|
/* harmony export */ I3dmReader: () => (/* reexport safe */ _internal_tile_I3dmReader__WEBPACK_IMPORTED_MODULE_33__.I3dmReader),
|
|
173037
|
-
/* harmony export */ IModelTile: () => (/* reexport safe */
|
|
173385
|
+
/* harmony export */ IModelTile: () => (/* reexport safe */ _internal_tile_IModelTile__WEBPACK_IMPORTED_MODULE_81__.IModelTile),
|
|
173038
173386
|
/* harmony export */ IModelTileRequestChannels: () => (/* reexport safe */ _internal_tile_IModelTileRequestChannels__WEBPACK_IMPORTED_MODULE_27__.IModelTileRequestChannels),
|
|
173039
|
-
/* harmony export */ IModelTileTree: () => (/* reexport safe */
|
|
173040
|
-
/* harmony export */ ImageryMapLayerFormat: () => (/* reexport safe */
|
|
173041
|
-
/* harmony export */ ImageryMapLayerTreeReference: () => (/* reexport safe */
|
|
173042
|
-
/* harmony export */ ImageryMapTile: () => (/* reexport safe */
|
|
173043
|
-
/* harmony export */ ImageryMapTileTree: () => (/* reexport safe */
|
|
173044
|
-
/* harmony export */ ImageryTileTreeState: () => (/* reexport safe */
|
|
173387
|
+
/* harmony export */ IModelTileTree: () => (/* reexport safe */ _internal_tile_IModelTileTree__WEBPACK_IMPORTED_MODULE_83__.IModelTileTree),
|
|
173388
|
+
/* harmony export */ ImageryMapLayerFormat: () => (/* reexport safe */ _map_MapLayerImageryFormats__WEBPACK_IMPORTED_MODULE_65__.ImageryMapLayerFormat),
|
|
173389
|
+
/* harmony export */ ImageryMapLayerTreeReference: () => (/* reexport safe */ _map_ImageryTileTree__WEBPACK_IMPORTED_MODULE_87__.ImageryMapLayerTreeReference),
|
|
173390
|
+
/* harmony export */ ImageryMapTile: () => (/* reexport safe */ _map_ImageryTileTree__WEBPACK_IMPORTED_MODULE_87__.ImageryMapTile),
|
|
173391
|
+
/* harmony export */ ImageryMapTileTree: () => (/* reexport safe */ _map_ImageryTileTree__WEBPACK_IMPORTED_MODULE_87__.ImageryMapTileTree),
|
|
173392
|
+
/* harmony export */ ImageryTileTreeState: () => (/* reexport safe */ _map_ImageryTileTree__WEBPACK_IMPORTED_MODULE_87__.ImageryTileTreeState),
|
|
173045
173393
|
/* harmony export */ ImdlReader: () => (/* reexport safe */ _ImdlReader__WEBPACK_IMPORTED_MODULE_35__.ImdlReader),
|
|
173046
173394
|
/* harmony export */ LRUTileList: () => (/* reexport safe */ _internal_tile_LRUTileList__WEBPACK_IMPORTED_MODULE_5__.LRUTileList),
|
|
173047
|
-
/* harmony export */ LayerTextureParams: () => (/* reexport safe */
|
|
173395
|
+
/* harmony export */ LayerTextureParams: () => (/* reexport safe */ _internal_render_webgl_MapLayerParams__WEBPACK_IMPORTED_MODULE_96__.LayerTextureParams),
|
|
173048
173396
|
/* harmony export */ LayerTileTreeHandler: () => (/* reexport safe */ _internal_tile_LayerTileTreeHandler__WEBPACK_IMPORTED_MODULE_20__.LayerTileTreeHandler),
|
|
173049
173397
|
/* harmony export */ LayerTileTreeReferenceHandler: () => (/* reexport safe */ _internal_tile_LayerTileTreeReferenceHandler__WEBPACK_IMPORTED_MODULE_19__.LayerTileTreeReferenceHandler),
|
|
173050
|
-
/* harmony export */ MapBoxLayerImageryProvider: () => (/* reexport safe */
|
|
173398
|
+
/* harmony export */ MapBoxLayerImageryProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_MapBoxLayerImageryProvider__WEBPACK_IMPORTED_MODULE_61__.MapBoxLayerImageryProvider),
|
|
173051
173399
|
/* harmony export */ MapCartoRectangle: () => (/* reexport safe */ _map_MapCartoRectangle__WEBPACK_IMPORTED_MODULE_1__.MapCartoRectangle),
|
|
173052
|
-
/* harmony export */ MapFeatureInfoRecord: () => (/* reexport safe */
|
|
173053
|
-
/* harmony export */
|
|
173054
|
-
/* harmony export */
|
|
173055
|
-
/* harmony export */
|
|
173056
|
-
/* harmony export */
|
|
173057
|
-
/* harmony export */
|
|
173058
|
-
/* harmony export */
|
|
173059
|
-
/* harmony export */
|
|
173060
|
-
/* harmony export */
|
|
173061
|
-
/* harmony export */
|
|
173062
|
-
/* harmony export */
|
|
173063
|
-
/* harmony export */
|
|
173064
|
-
/* harmony export */
|
|
173065
|
-
/* harmony export */
|
|
173066
|
-
/* harmony export */
|
|
173067
|
-
/* harmony export */
|
|
173068
|
-
/* harmony export */
|
|
173069
|
-
/* harmony export */
|
|
173070
|
-
/* harmony export */
|
|
173071
|
-
/* harmony export */
|
|
173072
|
-
/* harmony export */
|
|
173073
|
-
/* harmony export */
|
|
173074
|
-
/* harmony export */
|
|
173075
|
-
/* harmony export */
|
|
173076
|
-
/* harmony export */
|
|
173077
|
-
/* harmony export */
|
|
173400
|
+
/* harmony export */ MapFeatureInfoRecord: () => (/* reexport safe */ _map_MapFeatureInfo__WEBPACK_IMPORTED_MODULE_42__.MapFeatureInfoRecord),
|
|
173401
|
+
/* harmony export */ MapLayerAuthenticationFailedError: () => (/* reexport safe */ _map_MapLayerFormatRegistry__WEBPACK_IMPORTED_MODULE_43__.MapLayerAuthenticationFailedError),
|
|
173402
|
+
/* harmony export */ MapLayerFeatureRecord: () => (/* reexport safe */ _map_MapFeatureInfo__WEBPACK_IMPORTED_MODULE_42__.MapLayerFeatureRecord),
|
|
173403
|
+
/* harmony export */ MapLayerFormat: () => (/* reexport safe */ _map_MapLayerFormatRegistry__WEBPACK_IMPORTED_MODULE_43__.MapLayerFormat),
|
|
173404
|
+
/* harmony export */ MapLayerFormatRegistry: () => (/* reexport safe */ _map_MapLayerFormatRegistry__WEBPACK_IMPORTED_MODULE_43__.MapLayerFormatRegistry),
|
|
173405
|
+
/* harmony export */ MapLayerImageryProvider: () => (/* reexport safe */ _map_MapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_51__.MapLayerImageryProvider),
|
|
173406
|
+
/* harmony export */ MapLayerImageryProviderStatus: () => (/* reexport safe */ _map_MapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_51__.MapLayerImageryProviderStatus),
|
|
173407
|
+
/* harmony export */ MapLayerSource: () => (/* reexport safe */ _map_MapLayerSources__WEBPACK_IMPORTED_MODULE_88__.MapLayerSource),
|
|
173408
|
+
/* harmony export */ MapLayerSourceStatus: () => (/* reexport safe */ _map_MapLayerSources__WEBPACK_IMPORTED_MODULE_88__.MapLayerSourceStatus),
|
|
173409
|
+
/* harmony export */ MapLayerSources: () => (/* reexport safe */ _map_MapLayerSources__WEBPACK_IMPORTED_MODULE_88__.MapLayerSources),
|
|
173410
|
+
/* harmony export */ MapLayerTileTreeReference: () => (/* reexport safe */ _map_MapLayerTileTreeReference__WEBPACK_IMPORTED_MODULE_66__.MapLayerTileTreeReference),
|
|
173411
|
+
/* harmony export */ MapLayerUntrustedOriginError: () => (/* reexport safe */ _map_MapLayerFormatRegistry__WEBPACK_IMPORTED_MODULE_43__.MapLayerUntrustedOriginError),
|
|
173412
|
+
/* harmony export */ MapTile: () => (/* reexport safe */ _map_MapTile__WEBPACK_IMPORTED_MODULE_72__.MapTile),
|
|
173413
|
+
/* harmony export */ MapTileLoader: () => (/* reexport safe */ _internal_tile_map_MapTileLoader__WEBPACK_IMPORTED_MODULE_74__.MapTileLoader),
|
|
173414
|
+
/* harmony export */ MapTileProjection: () => (/* reexport safe */ _map_MapTile__WEBPACK_IMPORTED_MODULE_72__.MapTileProjection),
|
|
173415
|
+
/* harmony export */ MapTileTree: () => (/* reexport safe */ _map_MapTileTree__WEBPACK_IMPORTED_MODULE_67__.MapTileTree),
|
|
173416
|
+
/* harmony export */ MapTileTreeReference: () => (/* reexport safe */ _map_MapTileTree__WEBPACK_IMPORTED_MODULE_67__.MapTileTreeReference),
|
|
173417
|
+
/* harmony export */ MapTileTreeScaleRangeVisibility: () => (/* reexport safe */ _map_MapTileTree__WEBPACK_IMPORTED_MODULE_67__.MapTileTreeScaleRangeVisibility),
|
|
173418
|
+
/* harmony export */ MapTiledGraphicsProvider: () => (/* reexport safe */ _map_MapTiledGraphicsProvider__WEBPACK_IMPORTED_MODULE_89__.MapTiledGraphicsProvider),
|
|
173419
|
+
/* harmony export */ MapTilingScheme: () => (/* reexport safe */ _map_MapTilingScheme__WEBPACK_IMPORTED_MODULE_76__.MapTilingScheme),
|
|
173420
|
+
/* harmony export */ ModelMapLayerTileTreeReference: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__.ModelMapLayerTileTreeReference),
|
|
173421
|
+
/* harmony export */ OPCFormatInterpreter: () => (/* reexport safe */ _internal_tile_OPCFormatInterpreter__WEBPACK_IMPORTED_MODULE_93__.OPCFormatInterpreter),
|
|
173422
|
+
/* harmony export */ OrbitGtTileTree: () => (/* reexport safe */ _internal_tile_OrbitGtTileTree__WEBPACK_IMPORTED_MODULE_86__.OrbitGtTileTree),
|
|
173423
|
+
/* harmony export */ OrbitGtTreeReference: () => (/* reexport safe */ _internal_tile_OrbitGtTileTree__WEBPACK_IMPORTED_MODULE_86__.OrbitGtTreeReference),
|
|
173424
|
+
/* harmony export */ PlanarProjection: () => (/* reexport safe */ _map_MapTile__WEBPACK_IMPORTED_MODULE_72__.PlanarProjection),
|
|
173425
|
+
/* harmony export */ PlanarTilePatch: () => (/* reexport safe */ _map_MapTile__WEBPACK_IMPORTED_MODULE_72__.PlanarTilePatch),
|
|
173426
|
+
/* harmony export */ ProjectedTexture: () => (/* reexport safe */ _internal_render_webgl_MapLayerParams__WEBPACK_IMPORTED_MODULE_96__.ProjectedTexture),
|
|
173078
173427
|
/* harmony export */ QuadId: () => (/* reexport safe */ _map_QuadId__WEBPACK_IMPORTED_MODULE_2__.QuadId),
|
|
173079
173428
|
/* harmony export */ ReadonlyTileUserSet: () => (/* reexport safe */ _internal_tile_TileUserSet__WEBPACK_IMPORTED_MODULE_31__.ReadonlyTileUserSet),
|
|
173080
|
-
/* harmony export */ RealityModelTileTree: () => (/* reexport safe */
|
|
173081
|
-
/* harmony export */ RealityModelTileTreeProps: () => (/* reexport safe */
|
|
173082
|
-
/* harmony export */ RealityModelTileUtils: () => (/* reexport safe */
|
|
173429
|
+
/* harmony export */ RealityModelTileTree: () => (/* reexport safe */ _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_79__.RealityModelTileTree),
|
|
173430
|
+
/* harmony export */ RealityModelTileTreeProps: () => (/* reexport safe */ _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_79__.RealityModelTileTreeProps),
|
|
173431
|
+
/* harmony export */ RealityModelTileUtils: () => (/* reexport safe */ _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_79__.RealityModelTileUtils),
|
|
173083
173432
|
/* harmony export */ RealityTile: () => (/* reexport safe */ _RealityTile__WEBPACK_IMPORTED_MODULE_6__.RealityTile),
|
|
173084
173433
|
/* harmony export */ RealityTileDrawArgs: () => (/* reexport safe */ _internal_tile_RealityTileDrawArgs__WEBPACK_IMPORTED_MODULE_10__.RealityTileDrawArgs),
|
|
173085
|
-
/* harmony export */ RealityTileLoader: () => (/* reexport safe */
|
|
173086
|
-
/* harmony export */ RealityTileRegion: () => (/* reexport safe */
|
|
173434
|
+
/* harmony export */ RealityTileLoader: () => (/* reexport safe */ _internal_tile_RealityTileLoader__WEBPACK_IMPORTED_MODULE_73__.RealityTileLoader),
|
|
173435
|
+
/* harmony export */ RealityTileRegion: () => (/* reexport safe */ _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_79__.RealityTileRegion),
|
|
173087
173436
|
/* harmony export */ RealityTileTree: () => (/* reexport safe */ _RealityTileTree__WEBPACK_IMPORTED_MODULE_15__.RealityTileTree),
|
|
173088
|
-
/* harmony export */ RealityTreeReference: () => (/* reexport safe */
|
|
173089
|
-
/* harmony export */ SelectParent: () => (/* reexport safe */
|
|
173090
|
-
/* harmony export */ SpatialClassifierTileTreeReference: () => (/* reexport safe */
|
|
173091
|
-
/* harmony export */ SpatialTileTreeReferences: () => (/* reexport safe */
|
|
173092
|
-
/* harmony export */ TerrainMeshProvider: () => (/* reexport safe */
|
|
173093
|
-
/* harmony export */ TerrainProviderRegistry: () => (/* reexport safe */
|
|
173094
|
-
/* harmony export */ ThreeDTileFormatInterpreter: () => (/* reexport safe */
|
|
173437
|
+
/* harmony export */ RealityTreeReference: () => (/* reexport safe */ _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_79__.RealityTreeReference),
|
|
173438
|
+
/* harmony export */ SelectParent: () => (/* reexport safe */ _internal_tile_IModelTile__WEBPACK_IMPORTED_MODULE_81__.SelectParent),
|
|
173439
|
+
/* harmony export */ SpatialClassifierTileTreeReference: () => (/* reexport safe */ _internal_tile_ClassifierTileTree__WEBPACK_IMPORTED_MODULE_85__.SpatialClassifierTileTreeReference),
|
|
173440
|
+
/* harmony export */ SpatialTileTreeReferences: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__.SpatialTileTreeReferences),
|
|
173441
|
+
/* harmony export */ TerrainMeshProvider: () => (/* reexport safe */ _map_TerrainMeshProvider__WEBPACK_IMPORTED_MODULE_68__.TerrainMeshProvider),
|
|
173442
|
+
/* harmony export */ TerrainProviderRegistry: () => (/* reexport safe */ _map_TerrainProvider__WEBPACK_IMPORTED_MODULE_69__.TerrainProviderRegistry),
|
|
173443
|
+
/* harmony export */ ThreeDTileFormatInterpreter: () => (/* reexport safe */ _internal_tile_ThreeDTileFormatInterpreter__WEBPACK_IMPORTED_MODULE_92__.ThreeDTileFormatInterpreter),
|
|
173095
173444
|
/* harmony export */ Tile: () => (/* reexport safe */ _Tile__WEBPACK_IMPORTED_MODULE_4__.Tile),
|
|
173096
173445
|
/* harmony export */ TileAdmin: () => (/* reexport safe */ _TileAdmin__WEBPACK_IMPORTED_MODULE_23__.TileAdmin),
|
|
173097
|
-
/* harmony export */ TileAvailability: () => (/* reexport safe */
|
|
173446
|
+
/* harmony export */ TileAvailability: () => (/* reexport safe */ _internal_tile_map_MapTileAvailability__WEBPACK_IMPORTED_MODULE_77__.TileAvailability),
|
|
173098
173447
|
/* harmony export */ TileBoundingBoxes: () => (/* reexport safe */ _Tile__WEBPACK_IMPORTED_MODULE_4__.TileBoundingBoxes),
|
|
173099
173448
|
/* harmony export */ TileDrawArgs: () => (/* reexport safe */ _TileDrawArgs__WEBPACK_IMPORTED_MODULE_9__.TileDrawArgs),
|
|
173100
173449
|
/* harmony export */ TileGeometryCollector: () => (/* reexport safe */ _TileGeometryCollector__WEBPACK_IMPORTED_MODULE_21__.TileGeometryCollector),
|
|
@@ -173109,7 +173458,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
173109
173458
|
/* harmony export */ TileTree: () => (/* reexport safe */ _TileTree__WEBPACK_IMPORTED_MODULE_14__.TileTree),
|
|
173110
173459
|
/* harmony export */ TileTreeLoadStatus: () => (/* reexport safe */ _TileTree__WEBPACK_IMPORTED_MODULE_14__.TileTreeLoadStatus),
|
|
173111
173460
|
/* harmony export */ TileTreeReference: () => (/* reexport safe */ _TileTreeReference__WEBPACK_IMPORTED_MODULE_18__.TileTreeReference),
|
|
173112
|
-
/* harmony export */ TileUrlImageryProvider: () => (/* reexport safe */
|
|
173461
|
+
/* harmony export */ TileUrlImageryProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_TileUrlImageryProvider__WEBPACK_IMPORTED_MODULE_62__.TileUrlImageryProvider),
|
|
173113
173462
|
/* harmony export */ TileUsageMarker: () => (/* reexport safe */ _TileUsageMarker__WEBPACK_IMPORTED_MODULE_29__.TileUsageMarker),
|
|
173114
173463
|
/* harmony export */ TileUser: () => (/* reexport safe */ _TileUser__WEBPACK_IMPORTED_MODULE_30__.TileUser),
|
|
173115
173464
|
/* harmony export */ TileUserIdSet: () => (/* reexport safe */ _internal_tile_LRUTileList__WEBPACK_IMPORTED_MODULE_5__.TileUserIdSet),
|
|
@@ -173120,66 +173469,68 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
173120
173469
|
/* harmony export */ TraversalDetails: () => (/* reexport safe */ _RealityTileTree__WEBPACK_IMPORTED_MODULE_15__.TraversalDetails),
|
|
173121
173470
|
/* harmony export */ TraversalSelectionContext: () => (/* reexport safe */ _RealityTileTree__WEBPACK_IMPORTED_MODULE_15__.TraversalSelectionContext),
|
|
173122
173471
|
/* harmony export */ UniqueTileUserSets: () => (/* reexport safe */ _internal_tile_TileUserSet__WEBPACK_IMPORTED_MODULE_31__.UniqueTileUserSets),
|
|
173123
|
-
/* harmony export */ UpsampledMapTile: () => (/* reexport safe */
|
|
173124
|
-
/* harmony export */ WebMercator: () => (/* reexport safe */
|
|
173125
|
-
/* harmony export */ WebMercatorProjection: () => (/* reexport safe */
|
|
173126
|
-
/* harmony export */ WebMercatorTilingScheme: () => (/* reexport safe */
|
|
173127
|
-
/* harmony export */ WmsCapabilities: () => (/* reexport safe */
|
|
173128
|
-
/* harmony export */ WmsCapability: () => (/* reexport safe */
|
|
173129
|
-
/* harmony export */ WmsMapLayerImageryProvider: () => (/* reexport safe */
|
|
173130
|
-
/* harmony export */ WmsUtilities: () => (/* reexport safe */
|
|
173131
|
-
/* harmony export */ WmtsCapabilities: () => (/* reexport safe */
|
|
173132
|
-
/* harmony export */ WmtsCapability: () => (/* reexport safe */
|
|
173133
|
-
/* harmony export */ WmtsConstants: () => (/* reexport safe */
|
|
173134
|
-
/* harmony export */ WmtsMapLayerImageryProvider: () => (/* reexport safe */
|
|
173472
|
+
/* harmony export */ UpsampledMapTile: () => (/* reexport safe */ _map_MapTile__WEBPACK_IMPORTED_MODULE_72__.UpsampledMapTile),
|
|
173473
|
+
/* harmony export */ WebMercator: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_WebMercator__WEBPACK_IMPORTED_MODULE_52__.WebMercator),
|
|
173474
|
+
/* harmony export */ WebMercatorProjection: () => (/* reexport safe */ _map_MapTilingScheme__WEBPACK_IMPORTED_MODULE_76__.WebMercatorProjection),
|
|
173475
|
+
/* harmony export */ WebMercatorTilingScheme: () => (/* reexport safe */ _map_MapTilingScheme__WEBPACK_IMPORTED_MODULE_76__.WebMercatorTilingScheme),
|
|
173476
|
+
/* harmony export */ WmsCapabilities: () => (/* reexport safe */ _internal_tile_map_WmsCapabilities__WEBPACK_IMPORTED_MODULE_47__.WmsCapabilities),
|
|
173477
|
+
/* harmony export */ WmsCapability: () => (/* reexport safe */ _internal_tile_map_WmsCapabilities__WEBPACK_IMPORTED_MODULE_47__.WmsCapability),
|
|
173478
|
+
/* harmony export */ WmsMapLayerImageryProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_WmsMapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_63__.WmsMapLayerImageryProvider),
|
|
173479
|
+
/* harmony export */ WmsUtilities: () => (/* reexport safe */ _internal_tile_map_WmsUtilities__WEBPACK_IMPORTED_MODULE_46__.WmsUtilities),
|
|
173480
|
+
/* harmony export */ WmtsCapabilities: () => (/* reexport safe */ _internal_tile_map_WmtsCapabilities__WEBPACK_IMPORTED_MODULE_48__.WmtsCapabilities),
|
|
173481
|
+
/* harmony export */ WmtsCapability: () => (/* reexport safe */ _internal_tile_map_WmtsCapabilities__WEBPACK_IMPORTED_MODULE_48__.WmtsCapability),
|
|
173482
|
+
/* harmony export */ WmtsConstants: () => (/* reexport safe */ _internal_tile_map_WmtsCapabilities__WEBPACK_IMPORTED_MODULE_48__.WmtsConstants),
|
|
173483
|
+
/* harmony export */ WmtsMapLayerImageryProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_WmtsMapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_64__.WmtsMapLayerImageryProvider),
|
|
173135
173484
|
/* harmony export */ acquireImdlDecoder: () => (/* reexport safe */ _internal_tile_ImdlDecoder__WEBPACK_IMPORTED_MODULE_36__.acquireImdlDecoder),
|
|
173136
173485
|
/* harmony export */ acquireImdlParser: () => (/* reexport safe */ _internal_tile_ImdlParser__WEBPACK_IMPORTED_MODULE_38__.acquireImdlParser),
|
|
173137
173486
|
/* harmony export */ addRangeGraphic: () => (/* reexport safe */ _Tile__WEBPACK_IMPORTED_MODULE_4__.addRangeGraphic),
|
|
173138
|
-
/* harmony export */ appendQueryParams: () => (/* reexport safe */
|
|
173139
|
-
/* harmony export */ collectMaskRefs: () => (/* reexport safe */
|
|
173140
|
-
/* harmony export */ compareMapLayer: () => (/* reexport safe */
|
|
173141
|
-
/* harmony export */ computeCesiumTokenTimeoutInterval: () => (/* reexport safe */
|
|
173142
|
-
/* harmony export */ computeVerticalDatumShift: () => (/* reexport safe */
|
|
173143
|
-
/* harmony export */ createClassifierTileTreeReference: () => (/* reexport safe */
|
|
173487
|
+
/* harmony export */ appendQueryParams: () => (/* reexport safe */ _internal_tile_map_UrlUtils__WEBPACK_IMPORTED_MODULE_50__.appendQueryParams),
|
|
173488
|
+
/* harmony export */ collectMaskRefs: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__.collectMaskRefs),
|
|
173489
|
+
/* harmony export */ compareMapLayer: () => (/* reexport safe */ _internal_render_webgl_MapLayerParams__WEBPACK_IMPORTED_MODULE_96__.compareMapLayer),
|
|
173490
|
+
/* harmony export */ computeCesiumTokenTimeoutInterval: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_70__.computeCesiumTokenTimeoutInterval),
|
|
173491
|
+
/* harmony export */ computeVerticalDatumShift: () => (/* reexport safe */ _internal_tile_OrbitGtTileTree__WEBPACK_IMPORTED_MODULE_86__.computeVerticalDatumShift),
|
|
173492
|
+
/* harmony export */ createClassifierTileTreeReference: () => (/* reexport safe */ _internal_tile_ClassifierTileTree__WEBPACK_IMPORTED_MODULE_85__.createClassifierTileTreeReference),
|
|
173144
173493
|
/* harmony export */ createDefaultViewFlagOverrides: () => (/* reexport safe */ _internal_tile_ViewFlagOverrides__WEBPACK_IMPORTED_MODULE_0__.createDefaultViewFlagOverrides),
|
|
173145
173494
|
/* harmony export */ createGraphicFromDescription: () => (/* reexport safe */ _internal_tile_ImdlGraphicsCreator__WEBPACK_IMPORTED_MODULE_37__.createGraphicFromDescription),
|
|
173146
173495
|
/* harmony export */ createGraphicTemplateFromDescription: () => (/* reexport safe */ _internal_tile_ImdlGraphicsCreator__WEBPACK_IMPORTED_MODULE_37__.createGraphicTemplateFromDescription),
|
|
173147
|
-
/* harmony export */ createMapLayerTreeReference: () => (/* reexport safe */
|
|
173148
|
-
/* harmony export */ createMaskTreeReference: () => (/* reexport safe */
|
|
173149
|
-
/* harmony export */ createModelMapLayerTileTreeReference: () => (/* reexport safe */
|
|
173150
|
-
/* harmony export */ createOrbitGtTileTreeReference: () => (/* reexport safe */
|
|
173151
|
-
/* harmony export */ createPrimaryTileTreeReference: () => (/* reexport safe */
|
|
173152
|
-
/* harmony export */ createReaderPropsWithBaseUrl: () => (/* reexport safe */
|
|
173153
|
-
/* harmony export */ createRealityTileTreeReference: () => (/* reexport safe */
|
|
173154
|
-
/* harmony export */ createSpatialTileTreeReferences: () => (/* reexport safe */
|
|
173496
|
+
/* harmony export */ createMapLayerTreeReference: () => (/* reexport safe */ _map_MapLayerTileTreeReference__WEBPACK_IMPORTED_MODULE_66__.createMapLayerTreeReference),
|
|
173497
|
+
/* harmony export */ createMaskTreeReference: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__.createMaskTreeReference),
|
|
173498
|
+
/* harmony export */ createModelMapLayerTileTreeReference: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__.createModelMapLayerTileTreeReference),
|
|
173499
|
+
/* harmony export */ createOrbitGtTileTreeReference: () => (/* reexport safe */ _internal_tile_OrbitGtTileTree__WEBPACK_IMPORTED_MODULE_86__.createOrbitGtTileTreeReference),
|
|
173500
|
+
/* harmony export */ createPrimaryTileTreeReference: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__.createPrimaryTileTreeReference),
|
|
173501
|
+
/* harmony export */ createReaderPropsWithBaseUrl: () => (/* reexport safe */ _internal_tile_RealityTileLoader__WEBPACK_IMPORTED_MODULE_73__.createReaderPropsWithBaseUrl),
|
|
173502
|
+
/* harmony export */ createRealityTileTreeReference: () => (/* reexport safe */ _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_79__.createRealityTileTreeReference),
|
|
173503
|
+
/* harmony export */ createSpatialTileTreeReferences: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__.createSpatialTileTreeReferences),
|
|
173504
|
+
/* harmony export */ credentialedFetchRedirect: () => (/* reexport safe */ _internal_tile_map_MapLayerFetch__WEBPACK_IMPORTED_MODULE_45__.credentialedFetchRedirect),
|
|
173155
173505
|
/* harmony export */ decodeImdlGraphics: () => (/* reexport safe */ _internal_tile_ImdlGraphicsCreator__WEBPACK_IMPORTED_MODULE_37__.decodeImdlGraphics),
|
|
173156
|
-
/* harmony export */ decodeMeshoptBuffer: () => (/* reexport safe */
|
|
173157
|
-
/* harmony export */ deflateCoordinates: () => (/* reexport safe */
|
|
173158
|
-
/* harmony export */ disposeTileTreesForGeometricModels: () => (/* reexport safe */
|
|
173159
|
-
/* harmony export */ escapeHtml: () => (/* reexport safe */
|
|
173160
|
-
/* harmony export */
|
|
173161
|
-
/* harmony export */
|
|
173162
|
-
/* harmony export */
|
|
173163
|
-
/* harmony export */
|
|
173164
|
-
/* harmony export */
|
|
173165
|
-
/* harmony export */
|
|
173166
|
-
/* harmony export */
|
|
173506
|
+
/* harmony export */ decodeMeshoptBuffer: () => (/* reexport safe */ _internal_tile_MeshoptCompression__WEBPACK_IMPORTED_MODULE_95__.decodeMeshoptBuffer),
|
|
173507
|
+
/* harmony export */ deflateCoordinates: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_CoordinatesUtils__WEBPACK_IMPORTED_MODULE_49__.deflateCoordinates),
|
|
173508
|
+
/* harmony export */ disposeTileTreesForGeometricModels: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__.disposeTileTreesForGeometricModels),
|
|
173509
|
+
/* harmony export */ escapeHtml: () => (/* reexport safe */ _map_MapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_51__.escapeHtml),
|
|
173510
|
+
/* harmony export */ fetchMapLayerRequest: () => (/* reexport safe */ _internal_tile_map_MapLayerFetch__WEBPACK_IMPORTED_MODULE_45__.fetchMapLayerRequest),
|
|
173511
|
+
/* harmony export */ getCesiumAccessClient: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_70__.getCesiumAccessClient),
|
|
173512
|
+
/* harmony export */ getCesiumAccessTokenAndEndpointUrl: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_70__.getCesiumAccessTokenAndEndpointUrl),
|
|
173513
|
+
/* harmony export */ getCesiumAssetUrl: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_70__.getCesiumAssetUrl),
|
|
173514
|
+
/* harmony export */ getCesiumOSMBuildingsUrl: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_70__.getCesiumOSMBuildingsUrl),
|
|
173515
|
+
/* harmony export */ getCesiumTerrainEndpointErrorDescription: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_70__.getCesiumTerrainEndpointErrorDescription),
|
|
173516
|
+
/* harmony export */ getCesiumTerrainProvider: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_70__.getCesiumTerrainProvider),
|
|
173517
|
+
/* harmony export */ getGcsConverterAvailable: () => (/* reexport safe */ _map_MapTileTree__WEBPACK_IMPORTED_MODULE_67__.getGcsConverterAvailable),
|
|
173167
173518
|
/* harmony export */ getMeshPrimitives: () => (/* reexport safe */ _GltfReader__WEBPACK_IMPORTED_MODULE_32__.getMeshPrimitives),
|
|
173168
|
-
/* harmony export */ getMeshoptDecoder: () => (/* reexport safe */
|
|
173169
|
-
/* harmony export */ iModelTileParamsFromJSON: () => (/* reexport safe */
|
|
173170
|
-
/* harmony export */ iModelTileTreeParamsFromJSON: () => (/* reexport safe */
|
|
173171
|
-
/* harmony export */ internalMapLayerImageryFormats: () => (/* reexport safe */
|
|
173519
|
+
/* harmony export */ getMeshoptDecoder: () => (/* reexport safe */ _internal_tile_MeshoptCompression__WEBPACK_IMPORTED_MODULE_95__.getMeshoptDecoder),
|
|
173520
|
+
/* harmony export */ iModelTileParamsFromJSON: () => (/* reexport safe */ _internal_tile_IModelTile__WEBPACK_IMPORTED_MODULE_81__.iModelTileParamsFromJSON),
|
|
173521
|
+
/* harmony export */ iModelTileTreeParamsFromJSON: () => (/* reexport safe */ _internal_tile_IModelTileTree__WEBPACK_IMPORTED_MODULE_83__.iModelTileTreeParamsFromJSON),
|
|
173522
|
+
/* harmony export */ internalMapLayerImageryFormats: () => (/* reexport safe */ _map_MapLayerImageryFormats__WEBPACK_IMPORTED_MODULE_65__.internalMapLayerImageryFormats),
|
|
173172
173523
|
/* harmony export */ overrideRequestTileTreeProps: () => (/* reexport safe */ _TileAdmin__WEBPACK_IMPORTED_MODULE_23__.overrideRequestTileTreeProps),
|
|
173173
173524
|
/* harmony export */ readElementGraphics: () => (/* reexport safe */ _ImdlReader__WEBPACK_IMPORTED_MODULE_35__.readElementGraphics),
|
|
173174
173525
|
/* harmony export */ readGltf: () => (/* reexport safe */ _GltfReader__WEBPACK_IMPORTED_MODULE_32__.readGltf),
|
|
173175
173526
|
/* harmony export */ readGltfGraphics: () => (/* reexport safe */ _GltfReader__WEBPACK_IMPORTED_MODULE_32__.readGltfGraphics),
|
|
173176
173527
|
/* harmony export */ readGltfTemplate: () => (/* reexport safe */ _GltfReader__WEBPACK_IMPORTED_MODULE_32__.readGltfTemplate),
|
|
173177
173528
|
/* harmony export */ readImdlContent: () => (/* reexport safe */ _ImdlReader__WEBPACK_IMPORTED_MODULE_35__.readImdlContent),
|
|
173178
|
-
/* harmony export */ readPntsColors: () => (/* reexport safe */
|
|
173179
|
-
/* harmony export */ readPointCloudTileContent: () => (/* reexport safe */
|
|
173180
|
-
/* harmony export */ resolveCesiumTerrainEndpoint: () => (/* reexport safe */
|
|
173181
|
-
/* harmony export */ tileTreeReferenceFromRenderGraphic: () => (/* reexport safe */
|
|
173182
|
-
/* harmony export */ tryGetOrigin: () => (/* reexport safe */
|
|
173529
|
+
/* harmony export */ readPntsColors: () => (/* reexport safe */ _internal_tile_PntsReader__WEBPACK_IMPORTED_MODULE_78__.readPntsColors),
|
|
173530
|
+
/* harmony export */ readPointCloudTileContent: () => (/* reexport safe */ _internal_tile_PntsReader__WEBPACK_IMPORTED_MODULE_78__.readPointCloudTileContent),
|
|
173531
|
+
/* harmony export */ resolveCesiumTerrainEndpoint: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_70__.resolveCesiumTerrainEndpoint),
|
|
173532
|
+
/* harmony export */ tileTreeReferenceFromRenderGraphic: () => (/* reexport safe */ _RenderGraphicTileTree__WEBPACK_IMPORTED_MODULE_80__.tileTreeReferenceFromRenderGraphic),
|
|
173533
|
+
/* harmony export */ tryGetOrigin: () => (/* reexport safe */ _map_MapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_51__.tryGetOrigin)
|
|
173183
173534
|
/* harmony export */ });
|
|
173184
173535
|
/* harmony import */ var _internal_tile_ViewFlagOverrides__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../internal/tile/ViewFlagOverrides */ "../../core/frontend/lib/esm/internal/tile/ViewFlagOverrides.js");
|
|
173185
173536
|
/* harmony import */ var _map_MapCartoRectangle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./map/MapCartoRectangle */ "../../core/frontend/lib/esm/tile/map/MapCartoRectangle.js");
|
|
@@ -173222,60 +173573,62 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
173222
173573
|
/* harmony import */ var _internal_tile_ImdlParser__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ../internal/tile/ImdlParser */ "../../core/frontend/lib/esm/internal/tile/ImdlParser.js");
|
|
173223
173574
|
/* harmony import */ var _internal_tile_map_ArcGISTileMap__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ../internal/tile/map/ArcGISTileMap */ "../../core/frontend/lib/esm/internal/tile/map/ArcGISTileMap.js");
|
|
173224
173575
|
/* harmony import */ var _map_MapLayerAuthentication__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./map/MapLayerAuthentication */ "../../core/frontend/lib/esm/tile/map/MapLayerAuthentication.js");
|
|
173225
|
-
/* harmony import */ var
|
|
173226
|
-
/* harmony import */ var
|
|
173227
|
-
/* harmony import */ var
|
|
173228
|
-
/* harmony import */ var
|
|
173229
|
-
/* harmony import */ var
|
|
173230
|
-
/* harmony import */ var
|
|
173231
|
-
/* harmony import */ var
|
|
173232
|
-
/* harmony import */ var
|
|
173233
|
-
/* harmony import */ var
|
|
173234
|
-
/* harmony import */ var
|
|
173235
|
-
/* harmony import */ var
|
|
173236
|
-
/* harmony import */ var
|
|
173237
|
-
/* harmony import */ var
|
|
173238
|
-
/* harmony import */ var
|
|
173239
|
-
/* harmony import */ var
|
|
173240
|
-
/* harmony import */ var
|
|
173241
|
-
/* harmony import */ var
|
|
173242
|
-
/* harmony import */ var
|
|
173243
|
-
/* harmony import */ var
|
|
173244
|
-
/* harmony import */ var
|
|
173245
|
-
/* harmony import */ var
|
|
173246
|
-
/* harmony import */ var
|
|
173247
|
-
/* harmony import */ var
|
|
173248
|
-
/* harmony import */ var
|
|
173249
|
-
/* harmony import */ var
|
|
173250
|
-
/* harmony import */ var
|
|
173251
|
-
/* harmony import */ var
|
|
173252
|
-
/* harmony import */ var
|
|
173253
|
-
/* harmony import */ var
|
|
173254
|
-
/* harmony import */ var
|
|
173255
|
-
/* harmony import */ var
|
|
173256
|
-
/* harmony import */ var
|
|
173257
|
-
/* harmony import */ var
|
|
173258
|
-
/* harmony import */ var
|
|
173259
|
-
/* harmony import */ var
|
|
173260
|
-
/* harmony import */ var
|
|
173261
|
-
/* harmony import */ var
|
|
173262
|
-
/* harmony import */ var
|
|
173263
|
-
/* harmony import */ var
|
|
173264
|
-
/* harmony import */ var
|
|
173265
|
-
/* harmony import */ var
|
|
173266
|
-
/* harmony import */ var
|
|
173267
|
-
/* harmony import */ var
|
|
173268
|
-
/* harmony import */ var
|
|
173269
|
-
/* harmony import */ var
|
|
173270
|
-
/* harmony import */ var
|
|
173271
|
-
/* harmony import */ var
|
|
173272
|
-
/* harmony import */ var
|
|
173273
|
-
/* harmony import */ var
|
|
173274
|
-
/* harmony import */ var
|
|
173275
|
-
/* harmony import */ var
|
|
173276
|
-
/* harmony import */ var
|
|
173277
|
-
/* harmony import */ var
|
|
173278
|
-
/* harmony import */ var
|
|
173576
|
+
/* harmony import */ var _map_MapLayerFetchHandler__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./map/MapLayerFetchHandler */ "../../core/frontend/lib/esm/tile/map/MapLayerFetchHandler.js");
|
|
173577
|
+
/* harmony import */ var _map_MapFeatureInfo__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./map/MapFeatureInfo */ "../../core/frontend/lib/esm/tile/map/MapFeatureInfo.js");
|
|
173578
|
+
/* harmony import */ var _map_MapLayerFormatRegistry__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./map/MapLayerFormatRegistry */ "../../core/frontend/lib/esm/tile/map/MapLayerFormatRegistry.js");
|
|
173579
|
+
/* 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");
|
|
173580
|
+
/* 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");
|
|
173581
|
+
/* 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");
|
|
173582
|
+
/* 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");
|
|
173583
|
+
/* 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");
|
|
173584
|
+
/* 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");
|
|
173585
|
+
/* 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");
|
|
173586
|
+
/* harmony import */ var _map_MapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./map/MapLayerImageryProvider */ "../../core/frontend/lib/esm/tile/map/MapLayerImageryProvider.js");
|
|
173587
|
+
/* 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");
|
|
173588
|
+
/* 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");
|
|
173589
|
+
/* 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");
|
|
173590
|
+
/* 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");
|
|
173591
|
+
/* 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");
|
|
173592
|
+
/* 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");
|
|
173593
|
+
/* 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");
|
|
173594
|
+
/* 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");
|
|
173595
|
+
/* 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");
|
|
173596
|
+
/* 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");
|
|
173597
|
+
/* 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");
|
|
173598
|
+
/* 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");
|
|
173599
|
+
/* 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");
|
|
173600
|
+
/* harmony import */ var _map_MapLayerImageryFormats__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./map/MapLayerImageryFormats */ "../../core/frontend/lib/esm/tile/map/MapLayerImageryFormats.js");
|
|
173601
|
+
/* harmony import */ var _map_MapLayerTileTreeReference__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./map/MapLayerTileTreeReference */ "../../core/frontend/lib/esm/tile/map/MapLayerTileTreeReference.js");
|
|
173602
|
+
/* harmony import */ var _map_MapTileTree__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./map/MapTileTree */ "../../core/frontend/lib/esm/tile/map/MapTileTree.js");
|
|
173603
|
+
/* harmony import */ var _map_TerrainMeshProvider__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./map/TerrainMeshProvider */ "../../core/frontend/lib/esm/tile/map/TerrainMeshProvider.js");
|
|
173604
|
+
/* harmony import */ var _map_TerrainProvider__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./map/TerrainProvider */ "../../core/frontend/lib/esm/tile/map/TerrainProvider.js");
|
|
173605
|
+
/* harmony import */ var _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./map/CesiumTerrainProvider */ "../../core/frontend/lib/esm/tile/map/CesiumTerrainProvider.js");
|
|
173606
|
+
/* harmony import */ var _map_EllipsoidTerrainProvider__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./map/EllipsoidTerrainProvider */ "../../core/frontend/lib/esm/tile/map/EllipsoidTerrainProvider.js");
|
|
173607
|
+
/* harmony import */ var _map_MapTile__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ./map/MapTile */ "../../core/frontend/lib/esm/tile/map/MapTile.js");
|
|
173608
|
+
/* harmony import */ var _internal_tile_RealityTileLoader__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ../internal/tile/RealityTileLoader */ "../../core/frontend/lib/esm/internal/tile/RealityTileLoader.js");
|
|
173609
|
+
/* 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");
|
|
173610
|
+
/* harmony import */ var _map_BingElevation__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ./map/BingElevation */ "../../core/frontend/lib/esm/tile/map/BingElevation.js");
|
|
173611
|
+
/* harmony import */ var _map_MapTilingScheme__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ./map/MapTilingScheme */ "../../core/frontend/lib/esm/tile/map/MapTilingScheme.js");
|
|
173612
|
+
/* 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");
|
|
173613
|
+
/* harmony import */ var _internal_tile_PntsReader__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ../internal/tile/PntsReader */ "../../core/frontend/lib/esm/internal/tile/PntsReader.js");
|
|
173614
|
+
/* harmony import */ var _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ../internal/tile/RealityModelTileTree */ "../../core/frontend/lib/esm/internal/tile/RealityModelTileTree.js");
|
|
173615
|
+
/* harmony import */ var _RenderGraphicTileTree__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ./RenderGraphicTileTree */ "../../core/frontend/lib/esm/tile/RenderGraphicTileTree.js");
|
|
173616
|
+
/* harmony import */ var _internal_tile_IModelTile__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ../internal/tile/IModelTile */ "../../core/frontend/lib/esm/internal/tile/IModelTile.js");
|
|
173617
|
+
/* harmony import */ var _internal_tile_DynamicIModelTile__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ../internal/tile/DynamicIModelTile */ "../../core/frontend/lib/esm/internal/tile/DynamicIModelTile.js");
|
|
173618
|
+
/* harmony import */ var _internal_tile_IModelTileTree__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ../internal/tile/IModelTileTree */ "../../core/frontend/lib/esm/internal/tile/IModelTileTree.js");
|
|
173619
|
+
/* harmony import */ var _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ../internal/tile/PrimaryTileTree */ "../../core/frontend/lib/esm/internal/tile/PrimaryTileTree.js");
|
|
173620
|
+
/* harmony import */ var _internal_tile_ClassifierTileTree__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ../internal/tile/ClassifierTileTree */ "../../core/frontend/lib/esm/internal/tile/ClassifierTileTree.js");
|
|
173621
|
+
/* harmony import */ var _internal_tile_OrbitGtTileTree__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ../internal/tile/OrbitGtTileTree */ "../../core/frontend/lib/esm/internal/tile/OrbitGtTileTree.js");
|
|
173622
|
+
/* harmony import */ var _map_ImageryTileTree__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ./map/ImageryTileTree */ "../../core/frontend/lib/esm/tile/map/ImageryTileTree.js");
|
|
173623
|
+
/* harmony import */ var _map_MapLayerSources__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ./map/MapLayerSources */ "../../core/frontend/lib/esm/tile/map/MapLayerSources.js");
|
|
173624
|
+
/* harmony import */ var _map_MapTiledGraphicsProvider__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ./map/MapTiledGraphicsProvider */ "../../core/frontend/lib/esm/tile/map/MapTiledGraphicsProvider.js");
|
|
173625
|
+
/* harmony import */ var _internal_tile_CesiumAssetProvider__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ../internal/tile/CesiumAssetProvider */ "../../core/frontend/lib/esm/internal/tile/CesiumAssetProvider.js");
|
|
173626
|
+
/* harmony import */ var _internal_tile_ContextShareProvider__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ../internal/tile/ContextShareProvider */ "../../core/frontend/lib/esm/internal/tile/ContextShareProvider.js");
|
|
173627
|
+
/* harmony import */ var _internal_tile_ThreeDTileFormatInterpreter__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ../internal/tile/ThreeDTileFormatInterpreter */ "../../core/frontend/lib/esm/internal/tile/ThreeDTileFormatInterpreter.js");
|
|
173628
|
+
/* harmony import */ var _internal_tile_OPCFormatInterpreter__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ../internal/tile/OPCFormatInterpreter */ "../../core/frontend/lib/esm/internal/tile/OPCFormatInterpreter.js");
|
|
173629
|
+
/* harmony import */ var _internal_tile_FetchCloudStorage__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ../internal/tile/FetchCloudStorage */ "../../core/frontend/lib/esm/internal/tile/FetchCloudStorage.js");
|
|
173630
|
+
/* harmony import */ var _internal_tile_MeshoptCompression__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ../internal/tile/MeshoptCompression */ "../../core/frontend/lib/esm/internal/tile/MeshoptCompression.js");
|
|
173631
|
+
/* harmony import */ var _internal_render_webgl_MapLayerParams__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ../internal/render/webgl/MapLayerParams */ "../../core/frontend/lib/esm/internal/render/webgl/MapLayerParams.js");
|
|
173279
173632
|
/*---------------------------------------------------------------------------------------------
|
|
173280
173633
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
173281
173634
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -173386,6 +173739,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
173386
173739
|
|
|
173387
173740
|
|
|
173388
173741
|
|
|
173742
|
+
|
|
173743
|
+
|
|
173389
173744
|
|
|
173390
173745
|
|
|
173391
173746
|
|
|
@@ -174896,6 +175251,26 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
174896
175251
|
|
|
174897
175252
|
|
|
174898
175253
|
|
|
175254
|
+
/***/ },
|
|
175255
|
+
|
|
175256
|
+
/***/ "../../core/frontend/lib/esm/tile/map/MapLayerFetchHandler.js"
|
|
175257
|
+
/*!********************************************************************!*\
|
|
175258
|
+
!*** ../../core/frontend/lib/esm/tile/map/MapLayerFetchHandler.js ***!
|
|
175259
|
+
\********************************************************************/
|
|
175260
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
175261
|
+
|
|
175262
|
+
"use strict";
|
|
175263
|
+
__webpack_require__.r(__webpack_exports__);
|
|
175264
|
+
/*---------------------------------------------------------------------------------------------
|
|
175265
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
175266
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
175267
|
+
*--------------------------------------------------------------------------------------------*/
|
|
175268
|
+
/** @packageDocumentation
|
|
175269
|
+
* @module MapLayers
|
|
175270
|
+
*/
|
|
175271
|
+
|
|
175272
|
+
|
|
175273
|
+
|
|
174899
175274
|
/***/ },
|
|
174900
175275
|
|
|
174901
175276
|
/***/ "../../core/frontend/lib/esm/tile/map/MapLayerFormatRegistry.js"
|
|
@@ -174907,6 +175282,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
174907
175282
|
"use strict";
|
|
174908
175283
|
__webpack_require__.r(__webpack_exports__);
|
|
174909
175284
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
175285
|
+
/* harmony export */ MapLayerAuthenticationFailedError: () => (/* binding */ MapLayerAuthenticationFailedError),
|
|
174910
175286
|
/* harmony export */ MapLayerFormat: () => (/* binding */ MapLayerFormat),
|
|
174911
175287
|
/* harmony export */ MapLayerFormatRegistry: () => (/* binding */ MapLayerFormatRegistry),
|
|
174912
175288
|
/* harmony export */ MapLayerUntrustedOriginError: () => (/* binding */ MapLayerUntrustedOriginError)
|
|
@@ -174990,6 +175366,22 @@ class MapLayerUntrustedOriginError extends Error {
|
|
|
174990
175366
|
this.url = url;
|
|
174991
175367
|
}
|
|
174992
175368
|
}
|
|
175369
|
+
/** Error reporting an unrecoverable authentication failure for a map-layer request.
|
|
175370
|
+
* Thrown by a [[MapLayerFetchHandler]] when it recognizes an authentication failure it cannot fix
|
|
175371
|
+
* silently (e.g. a `401` that survives a token refresh, or a protocol-specific error embedded in a
|
|
175372
|
+
* `200` body); callers convert it to [[MapLayerImageryProviderStatus.RequireAuth]] (tile requests and
|
|
175373
|
+
* provider initialization) or [[MapLayerSourceStatus.RequireAuth]] (source validation), letting the
|
|
175374
|
+
* application prompt for re-authentication.
|
|
175375
|
+
* @beta
|
|
175376
|
+
*/
|
|
175377
|
+
class MapLayerAuthenticationFailedError extends Error {
|
|
175378
|
+
/** The URL of the request that failed to authenticate. */
|
|
175379
|
+
url;
|
|
175380
|
+
constructor(url) {
|
|
175381
|
+
super("Authentication failed for map-layer request");
|
|
175382
|
+
this.url = url;
|
|
175383
|
+
}
|
|
175384
|
+
}
|
|
174993
175385
|
/**
|
|
174994
175386
|
* A registry of MapLayerFormats identified by their unique format IDs. The registry can be accessed via [[IModelApp.mapLayerFormatRegistry]].
|
|
174995
175387
|
* @public
|
|
@@ -175009,6 +175401,30 @@ class MapLayerFormatRegistry {
|
|
|
175009
175401
|
* @beta
|
|
175010
175402
|
*/
|
|
175011
175403
|
restrictCredentialsToTrustedOrigins = false;
|
|
175404
|
+
_fetchHandlers = [];
|
|
175405
|
+
/** Appends a [[MapLayerFetchHandler]] to the pipeline wrapping every map-layer network request issued through
|
|
175406
|
+
* [[MapLayerImageryProvider]] — tiles, tooltips, capabilities, service metadata, and source validation.
|
|
175407
|
+
* Handlers run in registration order (the first registered is the outermost), each deciding whether to
|
|
175408
|
+
* manage a request or decline it to the next one; several layers of an application can therefore register
|
|
175409
|
+
* their own handler without coordinating. Returns the function that removes the handler.
|
|
175410
|
+
* @beta
|
|
175411
|
+
*/
|
|
175412
|
+
addMapLayerFetchHandler(handler) {
|
|
175413
|
+
// One wrapper per registration, so registering the same function twice yields independent removers.
|
|
175414
|
+
const registration = async (request, fetchRequest) => handler(request, fetchRequest);
|
|
175415
|
+
this._fetchHandlers.push(registration);
|
|
175416
|
+
return () => {
|
|
175417
|
+
const index = this._fetchHandlers.indexOf(registration);
|
|
175418
|
+
if (index >= 0)
|
|
175419
|
+
this._fetchHandlers.splice(index, 1);
|
|
175420
|
+
};
|
|
175421
|
+
}
|
|
175422
|
+
/** The registered [[MapLayerFetchHandler]]s, in pipeline order.
|
|
175423
|
+
* @internal
|
|
175424
|
+
*/
|
|
175425
|
+
get mapLayerFetchHandlers() {
|
|
175426
|
+
return this._fetchHandlers;
|
|
175427
|
+
}
|
|
175012
175428
|
constructor(opts) {
|
|
175013
175429
|
this._configOptions = opts ?? {};
|
|
175014
175430
|
_internal__WEBPACK_IMPORTED_MODULE_2__.internalMapLayerImageryFormats.forEach((format) => this.register(format));
|
|
@@ -175218,7 +175634,12 @@ class WmsMapLayerFormat extends ImageryMapLayerFormat {
|
|
|
175218
175634
|
try {
|
|
175219
175635
|
let subLayers;
|
|
175220
175636
|
const maxVisibleSubLayers = 50;
|
|
175221
|
-
const capabilities = await _internal__WEBPACK_IMPORTED_MODULE_0__.WmsCapabilities.create(url,
|
|
175637
|
+
const capabilities = await _internal__WEBPACK_IMPORTED_MODULE_0__.WmsCapabilities.create(url, {
|
|
175638
|
+
credentials: (userName && password ? { user: userName, password } : undefined),
|
|
175639
|
+
ignoreCache,
|
|
175640
|
+
queryParams: source.collectQueryParams(),
|
|
175641
|
+
formatId: source.formatId,
|
|
175642
|
+
});
|
|
175222
175643
|
if (capabilities !== undefined) {
|
|
175223
175644
|
subLayers = capabilities.getSubLayers(false);
|
|
175224
175645
|
const rootsSubLayer = subLayers?.find((sublayer) => sublayer.parent === undefined);
|
|
@@ -175268,7 +175689,10 @@ class WmsMapLayerFormat extends ImageryMapLayerFormat {
|
|
|
175268
175689
|
return { status: _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.UntrustedOrigin, blockedOrigin };
|
|
175269
175690
|
}
|
|
175270
175691
|
let status = _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.InvalidUrl;
|
|
175271
|
-
if (err
|
|
175692
|
+
if (err instanceof _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerAuthenticationFailedError) {
|
|
175693
|
+
status = _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.RequireAuth;
|
|
175694
|
+
}
|
|
175695
|
+
else if (err?.status === 401) {
|
|
175272
175696
|
status = ((userName && password) ? _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.InvalidCredentials : _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.RequireAuth);
|
|
175273
175697
|
}
|
|
175274
175698
|
return { status };
|
|
@@ -175293,7 +175717,12 @@ class WmtsMapLayerFormat extends ImageryMapLayerFormat {
|
|
|
175293
175717
|
const { url, userName, password } = source;
|
|
175294
175718
|
try {
|
|
175295
175719
|
const subLayers = [];
|
|
175296
|
-
const capabilities = await _internal__WEBPACK_IMPORTED_MODULE_0__.WmtsCapabilities.create(url,
|
|
175720
|
+
const capabilities = await _internal__WEBPACK_IMPORTED_MODULE_0__.WmtsCapabilities.create(url, {
|
|
175721
|
+
credentials: (userName && password ? { user: userName, password } : undefined),
|
|
175722
|
+
ignoreCache,
|
|
175723
|
+
queryParams: source.collectQueryParams(),
|
|
175724
|
+
formatId: source.formatId,
|
|
175725
|
+
});
|
|
175297
175726
|
if (!capabilities)
|
|
175298
175727
|
return { status: _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.InvalidUrl };
|
|
175299
175728
|
// Only returns layer that can be published in the Google maps or WGS84 aligned tile trees.
|
|
@@ -175341,7 +175770,10 @@ class WmtsMapLayerFormat extends ImageryMapLayerFormat {
|
|
|
175341
175770
|
return { status: _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.UntrustedOrigin, blockedOrigin };
|
|
175342
175771
|
}
|
|
175343
175772
|
let status = _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.InvalidUrl;
|
|
175344
|
-
if (err
|
|
175773
|
+
if (err instanceof _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerAuthenticationFailedError) {
|
|
175774
|
+
status = _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.RequireAuth;
|
|
175775
|
+
}
|
|
175776
|
+
else if (err?.status === 401) {
|
|
175345
175777
|
status = ((userName && password) ? _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.InvalidCredentials : _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.RequireAuth);
|
|
175346
175778
|
}
|
|
175347
175779
|
return { status };
|
|
@@ -175433,6 +175865,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
175433
175865
|
const tileImageSize = 256, untiledImageSize = 256;
|
|
175434
175866
|
const earthRadius = 6378137;
|
|
175435
175867
|
const doDebugToolTips = false;
|
|
175868
|
+
const loggerCategory = "MapLayerImageryProvider";
|
|
175436
175869
|
/** Escapes HTML metacharacters so the text renders literally when assigned to `innerHTML`.
|
|
175437
175870
|
* Use for any server- or user-supplied string that ends up in the map tooltip, which is rendered
|
|
175438
175871
|
* as HTML by [[MapLayerTileTreeReference.getToolTip]].
|
|
@@ -175719,12 +176152,37 @@ class MapLayerImageryProvider {
|
|
|
175719
176152
|
* @internal
|
|
175720
176153
|
*/
|
|
175721
176154
|
onStatusUpdated(_newStatus) { }
|
|
176155
|
+
/** Transitions to [[MapLayerImageryProviderStatus.RequireAuth]] after a [[MapLayerFetchHandler]] reported an
|
|
176156
|
+
* unrecoverable authentication failure. The user is notified once per transition, and only if tiles had
|
|
176157
|
+
* loaded before: an initialization failure was already reported through source validation.
|
|
176158
|
+
* @internal
|
|
176159
|
+
*/
|
|
176160
|
+
reportAuthenticationFailure() {
|
|
176161
|
+
const alreadyReported = this._status === MapLayerImageryProviderStatus.RequireAuth;
|
|
176162
|
+
this.setStatus(MapLayerImageryProviderStatus.RequireAuth);
|
|
176163
|
+
if (alreadyReported || !this._hasSuccessfullyFetchedTile)
|
|
176164
|
+
return;
|
|
176165
|
+
const msg = _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.localization.getLocalizedString("iModelJs:MapLayers.Messages.LoadTileTokenError", { layerName: this._settings.name });
|
|
176166
|
+
_IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.notifications.outputMessage(new _NotificationManager__WEBPACK_IMPORTED_MODULE_4__.NotifyMessageDetails(_NotificationManager__WEBPACK_IMPORTED_MODULE_4__.OutputMessagePriority.Warning, msg));
|
|
176167
|
+
}
|
|
175722
176168
|
/** @internal */
|
|
175723
176169
|
setRequestAuthorization(headers) {
|
|
175724
176170
|
if (this._settings.userName && this._settings.password) {
|
|
175725
176171
|
(0,_request_utils__WEBPACK_IMPORTED_MODULE_6__.setBasicAuthorization)(headers, this._settings.userName, this._settings.password);
|
|
175726
176172
|
}
|
|
175727
176173
|
}
|
|
176174
|
+
/** The access client registered for this layer's format, if any.
|
|
176175
|
+
* @internal
|
|
176176
|
+
*/
|
|
176177
|
+
get accessClient() {
|
|
176178
|
+
return _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.mapLayerFormatRegistry?.getAccessClient(this._settings.formatId);
|
|
176179
|
+
}
|
|
176180
|
+
/** True while at least one [[MapLayerFetchHandler]] is registered via [[MapLayerFormatRegistry.addMapLayerFetchHandler]].
|
|
176181
|
+
* @internal
|
|
176182
|
+
*/
|
|
176183
|
+
get hasFetchHandler() {
|
|
176184
|
+
return (_IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.mapLayerFormatRegistry?.mapLayerFetchHandlers.length ?? 0) > 0;
|
|
176185
|
+
}
|
|
175728
176186
|
/** Returns true if the given URL has the same origin as this layer's settings URL.
|
|
175729
176187
|
* Used to avoid leaking credentials to third-party hosts.
|
|
175730
176188
|
* @internal
|
|
@@ -175794,28 +176252,12 @@ class MapLayerImageryProvider {
|
|
|
175794
176252
|
logUntrustedOriginUse(url) {
|
|
175795
176253
|
_IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.mapLayerFormatRegistry.logUntrustedOriginUse(url);
|
|
175796
176254
|
}
|
|
175797
|
-
/** The redirect policy to apply to a request that carries browser credentials (see [[includeUserCredentials]]).
|
|
175798
|
-
*
|
|
175799
|
-
* When [[MapLayerFormatRegistry.restrictCredentialsToTrustedOrigins]] is enabled, redirects are refused
|
|
175800
|
-
* outright (`"error"`). `fetch` cannot be asked to follow only same-origin redirects, and by the time a
|
|
175801
|
-
* followed redirect can be inspected the credentials have already been delivered to the destination — so
|
|
175802
|
-
* refusing is the only way to honour the guarantee that credentials reach none but the origins listed in
|
|
175803
|
-
* [[MapLayerFormatRegistry.trustedCredentialsOrigins]]. Legitimate same-origin redirects fail as a result;
|
|
175804
|
-
* that is the cost of the opt-in restriction.
|
|
175805
|
-
*
|
|
175806
|
-
* When the restriction is disabled (the default), redirects are followed as before and
|
|
175807
|
-
* [[checkCredentialedRedirect]] reports the destination after the fact.
|
|
175808
|
-
* @internal
|
|
175809
|
-
*/
|
|
175810
|
-
get credentialedRedirect() {
|
|
175811
|
-
return _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.mapLayerFormatRegistry.restrictCredentialsToTrustedOrigins ? "error" : undefined;
|
|
175812
|
-
}
|
|
175813
176255
|
/** Detects that a request carrying browser credentials (see [[includeUserCredentials]]) was transparently
|
|
175814
176256
|
* redirected to a different origin, and reports or logs that origin.
|
|
175815
176257
|
*
|
|
175816
176258
|
* This is a **best-effort, after-the-fact** signal used only while
|
|
175817
176259
|
* [[MapLayerFormatRegistry.restrictCredentialsToTrustedOrigins]] is disabled, where credentialed requests
|
|
175818
|
-
* still follow redirects (see [[
|
|
176260
|
+
* still follow redirects (see [[credentialedFetchRedirect]]). It cannot prevent the exposure — the credentials
|
|
175819
176261
|
* have already been sent — and it does not fire at all when the destination denies CORS, because `fetch`
|
|
175820
176262
|
* then rejects instead of returning a `Response`. The destination origin is never latched as SSO-succeeded,
|
|
175821
176263
|
* so credentials do not keep flowing to it.
|
|
@@ -175830,46 +176272,32 @@ class MapLayerImageryProvider {
|
|
|
175830
176272
|
else
|
|
175831
176273
|
this.logUntrustedOriginUse(response.url); // no-op when the restriction is enabled
|
|
175832
176274
|
}
|
|
175833
|
-
/**
|
|
175834
|
-
|
|
175835
|
-
|
|
175836
|
-
|
|
175837
|
-
|
|
175838
|
-
|
|
175839
|
-
// `authorization` are excluded: those bypass the origin policy entirely.
|
|
175840
|
-
const hasSettingsCreds = !authorization && !!this._settings.userName && !!this._settings.password;
|
|
175841
|
-
if (authorization) {
|
|
175842
|
-
headers = new Headers();
|
|
175843
|
-
headers.set("Authorization", authorization);
|
|
175844
|
-
}
|
|
175845
|
-
else if (hasSettingsCreds) {
|
|
175846
|
-
if (this.isCredentialsSharingAllowed(url)) {
|
|
175847
|
-
hasCreds = true;
|
|
175848
|
-
headers = new Headers();
|
|
175849
|
-
this.setRequestAuthorization(headers);
|
|
175850
|
-
if (!this.matchesSettingsUrlOrigin(url))
|
|
175851
|
-
this.logUntrustedOriginUse(url);
|
|
175852
|
-
}
|
|
175853
|
-
}
|
|
175854
|
-
const includeCredentials = this.includeUserCredentials(url);
|
|
176275
|
+
/** The default send for [[makeRequest]]: legacy redirect policy, NTLM/SSO handling and origin-trust
|
|
176276
|
+
* checks for one request. The SSO retry never applies to sends a fetch handler modified.
|
|
176277
|
+
*/
|
|
176278
|
+
async sendDefaultRequest(request, credentialed, hasCreds, hasSettingsCreds, timeoutMs) {
|
|
176279
|
+
const requestUrl = request.url;
|
|
176280
|
+
const includeCredentials = this.includeUserCredentials(requestUrl);
|
|
175855
176281
|
const opts = {
|
|
175856
176282
|
method: "GET",
|
|
175857
|
-
headers,
|
|
176283
|
+
headers: request.headers,
|
|
175858
176284
|
credentials: includeCredentials ? "include" : undefined,
|
|
175859
|
-
|
|
176285
|
+
// Sends the handler modified may carry injected secrets: same redirect policy as credentialed ones.
|
|
176286
|
+
redirect: (includeCredentials || credentialed) ? (0,_internal__WEBPACK_IMPORTED_MODULE_5__.credentialedFetchRedirect)() : undefined,
|
|
175860
176287
|
};
|
|
175861
176288
|
if (timeoutMs !== undefined)
|
|
175862
176289
|
(0,_request_utils__WEBPACK_IMPORTED_MODULE_6__.setRequestTimeout)(opts, timeoutMs);
|
|
175863
|
-
|
|
175864
|
-
if (includeCredentials)
|
|
175865
|
-
this.checkCredentialedRedirect(
|
|
176290
|
+
let rsp = await fetch(requestUrl, opts);
|
|
176291
|
+
if (includeCredentials || credentialed)
|
|
176292
|
+
this.checkCredentialedRedirect(requestUrl, rsp);
|
|
175866
176293
|
// fetch follows redirects transparently, so all trust decisions below target the final
|
|
175867
176294
|
// (post-redirect) URL reported by the response, not the URL we asked for.
|
|
175868
|
-
const challengedUrl =
|
|
175869
|
-
if (
|
|
175870
|
-
&& (0,_request_utils__WEBPACK_IMPORTED_MODULE_6__.headersIncludeAuthMethod)(
|
|
176295
|
+
const challengedUrl = rsp.url || requestUrl;
|
|
176296
|
+
if (rsp.status === 401
|
|
176297
|
+
&& (0,_request_utils__WEBPACK_IMPORTED_MODULE_6__.headersIncludeAuthMethod)(rsp.headers, ["ntlm", "negotiate"])
|
|
175871
176298
|
&& !includeCredentials
|
|
175872
|
-
&& !hasCreds
|
|
176299
|
+
&& !hasCreds
|
|
176300
|
+
&& !credentialed) {
|
|
175873
176301
|
if (this.isSsoAllowed(challengedUrl)) {
|
|
175874
176302
|
// Removed the previous headers and make sure "include" credentials is set
|
|
175875
176303
|
opts.headers = undefined;
|
|
@@ -175879,8 +176307,8 @@ class MapLayerImageryProvider {
|
|
|
175879
176307
|
opts.redirect = _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.mapLayerFormatRegistry.restrictCredentialsToTrustedOrigins ? "error" : undefined;
|
|
175880
176308
|
this.logUntrustedOriginUse(challengedUrl);
|
|
175881
176309
|
// We got a http 401 challenge, lets try again with SSO enabled (i.e. Windows Authentication)
|
|
175882
|
-
|
|
175883
|
-
if (
|
|
176310
|
+
rsp = await fetch(challengedUrl, opts);
|
|
176311
|
+
if (rsp.status === 200) {
|
|
175884
176312
|
this.recordSsoSucceeded(challengedUrl); // avoid going through 401 challenges over and over for this origin
|
|
175885
176313
|
}
|
|
175886
176314
|
}
|
|
@@ -175888,16 +176316,69 @@ class MapLayerImageryProvider {
|
|
|
175888
176316
|
this.reportBlockedOrigin(challengedUrl);
|
|
175889
176317
|
}
|
|
175890
176318
|
}
|
|
175891
|
-
else if ((
|
|
176319
|
+
else if ((rsp.status === 401 || rsp.status === 403) && hasSettingsCreds && !credentialed && !this.isCredentialsSharingAllowed(challengedUrl)) {
|
|
175892
176320
|
// Some servers answer an unauthenticated request with 403 (Forbidden) rather than a 401 challenge;
|
|
175893
176321
|
// since this request could not present its credentials to the challenging origin, either status most
|
|
175894
|
-
// likely results from that
|
|
176322
|
+
// likely results from that (never on a send the handler modified: the handler classifies those).
|
|
176323
|
+
// The permission is recomputed for the challenged URL rather than reusing the
|
|
175895
176324
|
// decision made for the requested one: `fetch` strips the Authorization header when it follows a
|
|
175896
176325
|
// cross-origin redirect, so a trusted request can still arrive unauthenticated at an untrusted origin,
|
|
175897
176326
|
// and conversely a request that started out untrusted may end up at an origin that is trusted.
|
|
175898
176327
|
this.reportBlockedOrigin(challengedUrl);
|
|
175899
176328
|
}
|
|
175900
|
-
return
|
|
176329
|
+
return rsp;
|
|
176330
|
+
}
|
|
176331
|
+
/** @internal */
|
|
176332
|
+
async makeRequest(url, timeoutMs, authorization) {
|
|
176333
|
+
let headers;
|
|
176334
|
+
let hasCreds = false;
|
|
176335
|
+
// Whether this request had basic-auth credentials of its own to offer. Requests carrying a caller-supplied
|
|
176336
|
+
// `authorization` are excluded: those bypass the origin policy entirely.
|
|
176337
|
+
const hasSettingsCreds = !authorization && !!this._settings.userName && !!this._settings.password;
|
|
176338
|
+
if (authorization) {
|
|
176339
|
+
headers = new Headers();
|
|
176340
|
+
headers.set("Authorization", authorization);
|
|
176341
|
+
}
|
|
176342
|
+
else if (hasSettingsCreds) {
|
|
176343
|
+
if (this.isCredentialsSharingAllowed(url)) {
|
|
176344
|
+
hasCreds = true;
|
|
176345
|
+
headers = new Headers();
|
|
176346
|
+
this.setRequestAuthorization(headers);
|
|
176347
|
+
if (!this.matchesSettingsUrlOrigin(url))
|
|
176348
|
+
this.logUntrustedOriginUse(url);
|
|
176349
|
+
}
|
|
176350
|
+
}
|
|
176351
|
+
// Route the request through the registered fetch handler (if any), which has full control: it may
|
|
176352
|
+
// send a copy with other query parameters and headers, retry, or short-circuit. Handler failures propagate: the
|
|
176353
|
+
// request must never silently degrade to an unauthenticated one.
|
|
176354
|
+
try {
|
|
176355
|
+
const { response, managedByHandler } = await (0,_internal__WEBPACK_IMPORTED_MODULE_5__.fetchMapLayerRequest)({
|
|
176356
|
+
url,
|
|
176357
|
+
formatId: this._settings.formatId,
|
|
176358
|
+
layerUrl: this._settings.url,
|
|
176359
|
+
layerProperties: this._settings.properties,
|
|
176360
|
+
headers,
|
|
176361
|
+
send: async (request, credentialed) => this.sendDefaultRequest(request, credentialed, hasCreds, hasSettingsCreds, timeoutMs),
|
|
176362
|
+
});
|
|
176363
|
+
if (managedByHandler)
|
|
176364
|
+
this._handlerManagedResponses.add(response);
|
|
176365
|
+
return response;
|
|
176366
|
+
}
|
|
176367
|
+
catch (error) {
|
|
176368
|
+
if (error instanceof _internal__WEBPACK_IMPORTED_MODULE_5__.MapLayerAuthenticationFailedError)
|
|
176369
|
+
this.reportAuthenticationFailure();
|
|
176370
|
+
throw error;
|
|
176371
|
+
}
|
|
176372
|
+
}
|
|
176373
|
+
/** Responses of [[makeRequest]] managed by a fetch handler (see [[MapLayerFetchResult.managedByHandler]]). */
|
|
176374
|
+
_handlerManagedResponses = new WeakSet();
|
|
176375
|
+
/** Returns true if a fetch handler returned this [[makeRequest]] response as its own, in which case the
|
|
176376
|
+
* provider applies none of its default response handling (status-code or protocol-error classification):
|
|
176377
|
+
* the handler reports authentication failures by throwing [[MapLayerAuthenticationFailedError]] instead.
|
|
176378
|
+
* @internal
|
|
176379
|
+
*/
|
|
176380
|
+
isManagedByHandler(response) {
|
|
176381
|
+
return this._handlerManagedResponses.has(response);
|
|
175901
176382
|
}
|
|
175902
176383
|
/** Returns a map layer tile at the specified settings. */
|
|
175903
176384
|
async loadTile(row, column, zoomLevel) {
|
|
@@ -175932,16 +176413,39 @@ class MapLayerImageryProvider {
|
|
|
175932
176413
|
headers = new Headers();
|
|
175933
176414
|
this.setRequestAuthorization(headers);
|
|
175934
176415
|
}
|
|
176416
|
+
let response;
|
|
175935
176417
|
try {
|
|
175936
|
-
|
|
175937
|
-
|
|
175938
|
-
|
|
176418
|
+
({ response } = await (0,_internal__WEBPACK_IMPORTED_MODULE_5__.fetchMapLayerRequest)({
|
|
176419
|
+
url,
|
|
176420
|
+
formatId: this._settings.formatId,
|
|
176421
|
+
layerUrl: this._settings.url,
|
|
176422
|
+
layerProperties: this._settings.properties,
|
|
175939
176423
|
headers,
|
|
175940
|
-
|
|
175941
|
-
|
|
175942
|
-
|
|
175943
|
-
|
|
175944
|
-
|
|
176424
|
+
send: async (request, credentialed) => {
|
|
176425
|
+
const requestUrl = request.url;
|
|
176426
|
+
const includeCredentials = this.includeUserCredentials(requestUrl);
|
|
176427
|
+
const rsp = await fetch(requestUrl, {
|
|
176428
|
+
method: "GET",
|
|
176429
|
+
headers: request.headers,
|
|
176430
|
+
credentials: includeCredentials ? "include" : undefined,
|
|
176431
|
+
redirect: (includeCredentials || credentialed) ? (0,_internal__WEBPACK_IMPORTED_MODULE_5__.credentialedFetchRedirect)() : undefined,
|
|
176432
|
+
});
|
|
176433
|
+
if (includeCredentials || credentialed)
|
|
176434
|
+
this.checkCredentialedRedirect(requestUrl, rsp);
|
|
176435
|
+
return rsp;
|
|
176436
|
+
},
|
|
176437
|
+
}));
|
|
176438
|
+
}
|
|
176439
|
+
catch (error) {
|
|
176440
|
+
// Never degrade to an unauthenticated request or reject (getToolTip callers do not catch); skip the tooltip.
|
|
176441
|
+
// The status transition the handler asked for still applies.
|
|
176442
|
+
if (error instanceof _internal__WEBPACK_IMPORTED_MODULE_5__.MapLayerAuthenticationFailedError)
|
|
176443
|
+
this.reportAuthenticationFailure();
|
|
176444
|
+
if (this.hasFetchHandler)
|
|
176445
|
+
_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)}`);
|
|
176446
|
+
return;
|
|
176447
|
+
}
|
|
176448
|
+
try {
|
|
175945
176449
|
let text = await response.text();
|
|
175946
176450
|
if (text) {
|
|
175947
176451
|
// Tooltip content (e.g. WMS GetFeatureInfo responses) is rendered as HTML downstream and may
|
|
@@ -176063,11 +176567,7 @@ class MapLayerImageryProvider {
|
|
|
176063
176567
|
* @internal
|
|
176064
176568
|
*/
|
|
176065
176569
|
appendCustomParams(url) {
|
|
176066
|
-
|
|
176067
|
-
return url;
|
|
176068
|
-
let tmpUrl = (0,_internal__WEBPACK_IMPORTED_MODULE_5__.appendQueryParams)(url, this._settings.savedQueryParams);
|
|
176069
|
-
tmpUrl = (0,_internal__WEBPACK_IMPORTED_MODULE_5__.appendQueryParams)(tmpUrl, this._settings.unsavedQueryParams);
|
|
176070
|
-
return tmpUrl;
|
|
176570
|
+
return (0,_internal__WEBPACK_IMPORTED_MODULE_5__.appendQueryParams)(url, this._settings.collectQueryParams());
|
|
176071
176571
|
}
|
|
176072
176572
|
}
|
|
176073
176573
|
|
|
@@ -176146,21 +176646,33 @@ class MapLayerSource {
|
|
|
176146
176646
|
transparentBackground;
|
|
176147
176647
|
userName;
|
|
176148
176648
|
password;
|
|
176149
|
-
/**
|
|
176649
|
+
/** Former name of [[queryParams]], which stores the value; retained as the backing field so existing subclasses
|
|
176650
|
+
* and `delete` keep working.
|
|
176651
|
+
* @deprecated in 5.16. Use [[queryParams]].
|
|
176150
176652
|
* @beta
|
|
176151
176653
|
*/
|
|
176152
176654
|
savedQueryParams;
|
|
176655
|
+
/** Non-secret query parameters appended to every request made for the source, persisted as part of the JSON
|
|
176656
|
+
* representation ([[MapLayerSourceProps.queryParams]]). Secrets must never be placed here; the hosting application
|
|
176657
|
+
* injects them per session through a [[MapLayerFetchHandler]].
|
|
176658
|
+
* @beta
|
|
176659
|
+
*/
|
|
176660
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated -- the deprecated field is the storage until its removal.
|
|
176661
|
+
get queryParams() { return this.savedQueryParams; }
|
|
176662
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
176663
|
+
set queryParams(value) { this.savedQueryParams = value; }
|
|
176153
176664
|
/** List of query parameters that will get appended to the source URL that should *not* be be persisted part of the JSON representation.
|
|
176665
|
+
* @deprecated in 5.16. Register a [[MapLayerFetchHandler]] ([[MapLayerFormatRegistry.addMapLayerFetchHandler]]) to inject secret or per-session parameters, which unlike this field are protected against leaking through redirects; use [[queryParams]] for non-secret parameters.
|
|
176154
176666
|
* @beta
|
|
176155
176667
|
*/
|
|
176156
176668
|
unsavedQueryParams;
|
|
176157
|
-
constructor(formatId = "WMS", name, url, baseMap = false, transparentBackground = true,
|
|
176669
|
+
constructor(formatId = "WMS", name, url, baseMap = false, transparentBackground = true, queryParams) {
|
|
176158
176670
|
this.formatId = formatId;
|
|
176159
176671
|
this.name = name;
|
|
176160
176672
|
this.url = url;
|
|
176161
176673
|
this.baseMap = baseMap;
|
|
176162
176674
|
this.transparentBackground = transparentBackground;
|
|
176163
|
-
this.
|
|
176675
|
+
this.queryParams = queryParams;
|
|
176164
176676
|
}
|
|
176165
176677
|
static fromJSON(json) {
|
|
176166
176678
|
if (json === undefined)
|
|
@@ -176184,7 +176696,7 @@ class MapLayerSource {
|
|
|
176184
176696
|
return undefined;
|
|
176185
176697
|
}
|
|
176186
176698
|
toJSON() {
|
|
176187
|
-
return { url: this.url, name: this.name, formatId: this.formatId, transparentBackground: this.transparentBackground, queryParams: this.
|
|
176699
|
+
return { url: this.url, name: this.name, formatId: this.formatId, transparentBackground: this.transparentBackground, queryParams: this.queryParams };
|
|
176188
176700
|
}
|
|
176189
176701
|
toLayerSettings(subLayers) {
|
|
176190
176702
|
// When MapLayerSetting is created from a MapLayerSource, sub-layers and credentials need to be set separately.
|
|
@@ -176192,10 +176704,12 @@ class MapLayerSource {
|
|
|
176192
176704
|
if (this.userName !== undefined || this.password !== undefined) {
|
|
176193
176705
|
layerSettings?.setCredentials(this.userName, this.password);
|
|
176194
176706
|
}
|
|
176195
|
-
if (this.
|
|
176196
|
-
layerSettings.
|
|
176707
|
+
if (this.queryParams) {
|
|
176708
|
+
layerSettings.queryParams = { ...this.queryParams };
|
|
176197
176709
|
}
|
|
176710
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated -- kept for backward compatibility until removal.
|
|
176198
176711
|
if (this.unsavedQueryParams) {
|
|
176712
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
176199
176713
|
layerSettings.unsavedQueryParams = { ...this.unsavedQueryParams };
|
|
176200
176714
|
}
|
|
176201
176715
|
return layerSettings;
|
|
@@ -176203,14 +176717,17 @@ class MapLayerSource {
|
|
|
176203
176717
|
getCredentials() {
|
|
176204
176718
|
return this.userName && this.password ? { user: this.userName, password: this.password } : undefined;
|
|
176205
176719
|
}
|
|
176206
|
-
/**
|
|
176207
|
-
|
|
176208
|
-
|
|
176720
|
+
/** The query parameters actually sent with requests: [[queryParams]] overlaid with the deprecated `unsavedQueryParams`
|
|
176721
|
+
* (a key present in both takes the latter's value). Equals a copy of [[queryParams]] once `unsavedQueryParams` is removed.
|
|
176722
|
+
* @beta
|
|
176723
|
+
*/
|
|
176209
176724
|
collectQueryParams() {
|
|
176210
176725
|
let queryParams = {};
|
|
176211
|
-
if (this.
|
|
176212
|
-
queryParams = { ...this.
|
|
176726
|
+
if (this.queryParams)
|
|
176727
|
+
queryParams = { ...this.queryParams };
|
|
176728
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated -- kept for backward compatibility until removal.
|
|
176213
176729
|
if (this.unsavedQueryParams)
|
|
176730
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
176214
176731
|
queryParams = { ...queryParams, ...this.unsavedQueryParams };
|
|
176215
176732
|
return queryParams;
|
|
176216
176733
|
}
|
|
@@ -190090,10 +190607,35 @@ class ToolAdmin {
|
|
|
190090
190607
|
return false;
|
|
190091
190608
|
}
|
|
190092
190609
|
}
|
|
190093
|
-
/** Called
|
|
190610
|
+
/** Called to undo all changes made to the briefcase in the current session.
|
|
190611
|
+
* @returns `true` if all changes were reversed or there was nothing to undo, `false` otherwise.
|
|
190612
|
+
* @see [[doUndoOperation]] to undo only the most recent operation.
|
|
190613
|
+
* @beta
|
|
190614
|
+
*/
|
|
190615
|
+
async doUndoAllOperation() {
|
|
190616
|
+
const imodel = _IModelApp__WEBPACK_IMPORTED_MODULE_5__.IModelApp.viewManager.selectedView?.view.iModel;
|
|
190617
|
+
if (undefined === imodel || imodel.isReadonly || !imodel.isBriefcaseConnection())
|
|
190618
|
+
return false;
|
|
190619
|
+
if (!await this.finishEditCommandForTxnOperation())
|
|
190620
|
+
return false;
|
|
190621
|
+
let status;
|
|
190622
|
+
try {
|
|
190623
|
+
status = await imodel.txns.reverseAll();
|
|
190624
|
+
}
|
|
190625
|
+
catch (error) {
|
|
190626
|
+
await this.onTxnOperationError("undoAll", error);
|
|
190627
|
+
return false;
|
|
190628
|
+
}
|
|
190629
|
+
if (_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.IModelStatus.Success === status || _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.IModelStatus.NothingToUndo === status)
|
|
190630
|
+
return true;
|
|
190631
|
+
await this.onTxnOperationError("undoAll", new _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.IModelError(status, "Failed to undo all changes"));
|
|
190632
|
+
return false;
|
|
190633
|
+
}
|
|
190634
|
+
/** Called when [[doUndoOperation]], [[doRedoOperation]] or [[doUndoAllOperation]] fails to reverse or reinstate Txns.
|
|
190094
190635
|
* @param _operation The operation that failed.
|
|
190095
|
-
* @param _error The error thrown by [[BriefcaseTxns.reverseSingleTxnAsync]] or [[BriefcaseTxns.
|
|
190096
|
-
*
|
|
190636
|
+
* @param _error The error thrown by [[BriefcaseTxns.reverseSingleTxnAsync]], [[BriefcaseTxns.reinstateTxnAsync]] or [[BriefcaseTxns.reverseAll]].
|
|
190637
|
+
* If [[BriefcaseTxns.reverseAll]] returns an unsuccessful status, this is an [IModelError]($common) with that status as its `errorNumber`.
|
|
190638
|
+
* @note Implementations should not throw. Any exception thrown by this method propagates to the caller of [[doUndoOperation]], [[doRedoOperation]] or [[doUndoAllOperation]].
|
|
190097
190639
|
* @beta
|
|
190098
190640
|
*/
|
|
190099
190641
|
async onTxnOperationError(_operation, _error) { }
|
|
@@ -324183,7 +324725,7 @@ exports.TestContext = void 0;
|
|
|
324183
324725
|
const chai_1 = __webpack_require__(/*! chai */ "../../common/temp/node_modules/.pnpm/chai@4.5.0/node_modules/chai/index.js");
|
|
324184
324726
|
const core_bentley_1 = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
|
|
324185
324727
|
const core_frontend_1 = __webpack_require__(/*! @itwin/core-frontend */ "../../core/frontend/lib/esm/core-frontend.js");
|
|
324186
|
-
const frontend_1 = __webpack_require__(/*! @itwin/oidc-signin-tool/lib/cjs/frontend */ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@
|
|
324728
|
+
const frontend_1 = __webpack_require__(/*! @itwin/oidc-signin-tool/lib/cjs/frontend */ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@6.2_e7b0f93268ba392b62030a9909ee634e/node_modules/@itwin/oidc-signin-tool/lib/cjs/frontend.js");
|
|
324187
324729
|
const Settings_1 = __webpack_require__(/*! ../../common/Settings */ "./lib/common/Settings.js");
|
|
324188
324730
|
const SideChannels_1 = __webpack_require__(/*! ../../common/SideChannels */ "./lib/common/SideChannels.js");
|
|
324189
324731
|
const IModelSession_1 = __webpack_require__(/*! ./IModelSession */ "./lib/frontend/setup/IModelSession.js");
|
|
@@ -337731,7 +338273,7 @@ class WMS {
|
|
|
337731
338273
|
(module) {
|
|
337732
338274
|
|
|
337733
338275
|
"use strict";
|
|
337734
|
-
module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.
|
|
338276
|
+
module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.16.0-dev.10","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":"catalog:schemas","@bentley/formats-schema":"catalog:schemas","@bentley/units-schema":"catalog:schemas","@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":"catalog:imodels-clients","@itwin/eslint-plugin":"catalog:linting","@types/node":"catalog:build","@types/sinon":"catalog:testing","@vitest/browser-playwright":"catalog:testing","@vitest/coverage-v8":"catalog:testing","cpx2":"catalog:build","eslint":"catalog:linting","playwright":"catalog:testing","rimraf":"catalog:build","sinon":"catalog:testing","typescript":"catalog:build","vite":"catalog:bundling","vitest":"catalog:testing"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/core-i18n":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^4.4.5","@loaders.gl/draco":"^4.4.5","fuse.js":"^3.3.0","wms-capabilities":"0.6.0"}}');
|
|
337735
338277
|
|
|
337736
338278
|
/***/ },
|
|
337737
338279
|
|