@itwin/map-layers-auth 4.0.0-dev.52 → 4.0.0-dev.55
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/cjs/ArcGis/ArcGisAccessClient.d.ts +72 -72
- package/lib/cjs/ArcGis/ArcGisAccessClient.js +286 -286
- package/lib/cjs/ArcGis/ArcGisOAuth2Endpoint.d.ts +22 -22
- package/lib/cjs/ArcGis/ArcGisOAuth2Endpoint.js +46 -46
- package/lib/cjs/ArcGis/ArcGisTokenGenerator.d.ts +41 -41
- package/lib/cjs/ArcGis/ArcGisTokenGenerator.js +109 -109
- package/lib/cjs/ArcGis/ArcGisTokenGenerator.js.map +1 -1
- package/lib/cjs/ArcGis/ArcGisTokenManager.d.ts +20 -20
- package/lib/cjs/ArcGis/ArcGisTokenManager.js +111 -111
- package/lib/cjs/ArcGis/ArcGisTokenManager.js.map +1 -1
- package/lib/cjs/ArcGis/ArcGisUrl.d.ts +6 -6
- package/lib/cjs/ArcGis/ArcGisUrl.js +48 -48
- package/lib/cjs/map-layers-auth.d.ts +5 -5
- package/lib/cjs/map-layers-auth.js +25 -21
- package/lib/cjs/map-layers-auth.js.map +1 -1
- package/lib/esm/ArcGis/ArcGisAccessClient.d.ts +72 -72
- package/lib/esm/ArcGis/ArcGisAccessClient.js +282 -282
- package/lib/esm/ArcGis/ArcGisOAuth2Endpoint.d.ts +22 -22
- package/lib/esm/ArcGis/ArcGisOAuth2Endpoint.js +42 -42
- package/lib/esm/ArcGis/ArcGisTokenGenerator.d.ts +41 -41
- package/lib/esm/ArcGis/ArcGisTokenGenerator.js +106 -105
- package/lib/esm/ArcGis/ArcGisTokenGenerator.js.map +1 -1
- package/lib/esm/ArcGis/ArcGisTokenManager.d.ts +20 -20
- package/lib/esm/ArcGis/ArcGisTokenManager.js +108 -107
- package/lib/esm/ArcGis/ArcGisTokenManager.js.map +1 -1
- package/lib/esm/ArcGis/ArcGisUrl.d.ts +6 -6
- package/lib/esm/ArcGis/ArcGisUrl.js +44 -44
- package/lib/esm/map-layers-auth.d.ts +5 -5
- package/lib/esm/map-layers-auth.js +9 -9
- package/package.json +8 -8
|
@@ -1,112 +1,112 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
-
*--------------------------------------------------------------------------------------------*/
|
|
6
|
-
/** @packageDocumentation
|
|
7
|
-
* @module Tiles
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.ArcGisTokenManager = void 0;
|
|
11
|
-
const ArcGisTokenGenerator_1 = require("./ArcGisTokenGenerator");
|
|
12
|
-
/** @internal */
|
|
13
|
-
class ArcGisTokenManager {
|
|
14
|
-
static async getToken(arcGisRestServiceUrl, userName, password, options) {
|
|
15
|
-
if (!ArcGisTokenManager._generator)
|
|
16
|
-
ArcGisTokenManager._generator = new ArcGisTokenGenerator_1.ArcGisTokenGenerator();
|
|
17
|
-
const tokenCacheKey = `${encodeURIComponent(userName)}@${arcGisRestServiceUrl}`;
|
|
18
|
-
// First check in the session cache
|
|
19
|
-
const cachedToken = ArcGisTokenManager._cache.get(tokenCacheKey);
|
|
20
|
-
// Check if token is in cached and is valid within the threshold, if not, generate a new token immediately.
|
|
21
|
-
if (cachedToken !== undefined && (cachedToken.expires - (+new Date()) > ArcGisTokenManager.tokenExpiryThreshold)) {
|
|
22
|
-
return cachedToken;
|
|
23
|
-
}
|
|
24
|
-
// Nothing in cache, generate a new token
|
|
25
|
-
const newToken = await ArcGisTokenManager._generator.generate(arcGisRestServiceUrl, userName, password, options);
|
|
26
|
-
if (newToken.token) {
|
|
27
|
-
const token = newToken;
|
|
28
|
-
ArcGisTokenManager._cache.set(tokenCacheKey, token);
|
|
29
|
-
return token;
|
|
30
|
-
}
|
|
31
|
-
return undefined;
|
|
32
|
-
}
|
|
33
|
-
static invalidateToken(token) {
|
|
34
|
-
for (const [key, value] of ArcGisTokenManager._cache) {
|
|
35
|
-
if (value.token === token.token)
|
|
36
|
-
return ArcGisTokenManager._cache.delete(key);
|
|
37
|
-
}
|
|
38
|
-
return false;
|
|
39
|
-
}
|
|
40
|
-
static getOAuth2Token(key) {
|
|
41
|
-
if (ArcGisTokenManager._oauth2Cache === undefined) {
|
|
42
|
-
ArcGisTokenManager._oauth2Cache = new Map();
|
|
43
|
-
ArcGisTokenManager.loadFromBrowserStorage();
|
|
44
|
-
}
|
|
45
|
-
const cachedToken = ArcGisTokenManager._oauth2Cache.get(key);
|
|
46
|
-
// If cached token has expired (or about to expire), invalidate don't return it.
|
|
47
|
-
if (cachedToken !== undefined && (cachedToken.expiresAt - (+new Date()) < ArcGisTokenManager.tokenExpiryThreshold)) {
|
|
48
|
-
ArcGisTokenManager._oauth2Cache.delete(key);
|
|
49
|
-
return undefined;
|
|
50
|
-
}
|
|
51
|
-
return cachedToken;
|
|
52
|
-
}
|
|
53
|
-
static invalidateOAuth2Token(token) {
|
|
54
|
-
if (ArcGisTokenManager._oauth2Cache) {
|
|
55
|
-
for (const [key, value] of ArcGisTokenManager._oauth2Cache) {
|
|
56
|
-
if (value.token === token.token) {
|
|
57
|
-
const deleted = ArcGisTokenManager._oauth2Cache.delete(key);
|
|
58
|
-
ArcGisTokenManager.saveToBrowserStorage();
|
|
59
|
-
return deleted;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
return false;
|
|
64
|
-
}
|
|
65
|
-
static setOAuth2Token(key, token) {
|
|
66
|
-
if (ArcGisTokenManager._oauth2Cache === undefined) {
|
|
67
|
-
ArcGisTokenManager._oauth2Cache = new Map();
|
|
68
|
-
}
|
|
69
|
-
ArcGisTokenManager._oauth2Cache.set(key, token);
|
|
70
|
-
ArcGisTokenManager.saveToBrowserStorage();
|
|
71
|
-
}
|
|
72
|
-
static loadFromBrowserStorage() {
|
|
73
|
-
if (ArcGisTokenManager._oauth2Cache === undefined) {
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
const loadEntries = (json) => {
|
|
77
|
-
if (json && ArcGisTokenManager._oauth2Cache !== undefined) {
|
|
78
|
-
const tokens = JSON.parse(json);
|
|
79
|
-
if (tokens) {
|
|
80
|
-
for (const [key, value] of Object.entries(tokens)) {
|
|
81
|
-
ArcGisTokenManager._oauth2Cache.set(key, value);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
};
|
|
86
|
-
loadEntries(window.sessionStorage.getItem(this._browserStorageKey) ?? undefined);
|
|
87
|
-
loadEntries(window.localStorage.getItem(this._browserStorageKey) ?? undefined);
|
|
88
|
-
}
|
|
89
|
-
static saveToBrowserStorage() {
|
|
90
|
-
if (ArcGisTokenManager._oauth2Cache === undefined) {
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
const sessionTokens = {};
|
|
94
|
-
const storageTokens = {};
|
|
95
|
-
ArcGisTokenManager._oauth2Cache.forEach((value, key) => {
|
|
96
|
-
// ignore the persist flag for now, and only save to session storage
|
|
97
|
-
// if (value.persist === true) {
|
|
98
|
-
// storageTokens[key] = value;
|
|
99
|
-
// } else {
|
|
100
|
-
// sessionTokens[key] = value;
|
|
101
|
-
// }
|
|
102
|
-
sessionTokens[key] = value;
|
|
103
|
-
});
|
|
104
|
-
window.sessionStorage.setItem(this._browserStorageKey, JSON.stringify(sessionTokens));
|
|
105
|
-
window.localStorage.setItem(this._browserStorageKey, JSON.stringify(storageTokens));
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
ArcGisTokenManager.
|
|
110
|
-
ArcGisTokenManager.
|
|
111
|
-
ArcGisTokenManager
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
/** @packageDocumentation
|
|
7
|
+
* @module Tiles
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.ArcGisTokenManager = void 0;
|
|
11
|
+
const ArcGisTokenGenerator_1 = require("./ArcGisTokenGenerator");
|
|
12
|
+
/** @internal */
|
|
13
|
+
class ArcGisTokenManager {
|
|
14
|
+
static async getToken(arcGisRestServiceUrl, userName, password, options) {
|
|
15
|
+
if (!ArcGisTokenManager._generator)
|
|
16
|
+
ArcGisTokenManager._generator = new ArcGisTokenGenerator_1.ArcGisTokenGenerator();
|
|
17
|
+
const tokenCacheKey = `${encodeURIComponent(userName)}@${arcGisRestServiceUrl}`;
|
|
18
|
+
// First check in the session cache
|
|
19
|
+
const cachedToken = ArcGisTokenManager._cache.get(tokenCacheKey);
|
|
20
|
+
// Check if token is in cached and is valid within the threshold, if not, generate a new token immediately.
|
|
21
|
+
if (cachedToken !== undefined && (cachedToken.expires - (+new Date()) > ArcGisTokenManager.tokenExpiryThreshold)) {
|
|
22
|
+
return cachedToken;
|
|
23
|
+
}
|
|
24
|
+
// Nothing in cache, generate a new token
|
|
25
|
+
const newToken = await ArcGisTokenManager._generator.generate(arcGisRestServiceUrl, userName, password, options);
|
|
26
|
+
if (newToken.token) {
|
|
27
|
+
const token = newToken;
|
|
28
|
+
ArcGisTokenManager._cache.set(tokenCacheKey, token);
|
|
29
|
+
return token;
|
|
30
|
+
}
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
static invalidateToken(token) {
|
|
34
|
+
for (const [key, value] of ArcGisTokenManager._cache) {
|
|
35
|
+
if (value.token === token.token)
|
|
36
|
+
return ArcGisTokenManager._cache.delete(key);
|
|
37
|
+
}
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
static getOAuth2Token(key) {
|
|
41
|
+
if (ArcGisTokenManager._oauth2Cache === undefined) {
|
|
42
|
+
ArcGisTokenManager._oauth2Cache = new Map();
|
|
43
|
+
ArcGisTokenManager.loadFromBrowserStorage();
|
|
44
|
+
}
|
|
45
|
+
const cachedToken = ArcGisTokenManager._oauth2Cache.get(key);
|
|
46
|
+
// If cached token has expired (or about to expire), invalidate don't return it.
|
|
47
|
+
if (cachedToken !== undefined && (cachedToken.expiresAt - (+new Date()) < ArcGisTokenManager.tokenExpiryThreshold)) {
|
|
48
|
+
ArcGisTokenManager._oauth2Cache.delete(key);
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
return cachedToken;
|
|
52
|
+
}
|
|
53
|
+
static invalidateOAuth2Token(token) {
|
|
54
|
+
if (ArcGisTokenManager._oauth2Cache) {
|
|
55
|
+
for (const [key, value] of ArcGisTokenManager._oauth2Cache) {
|
|
56
|
+
if (value.token === token.token) {
|
|
57
|
+
const deleted = ArcGisTokenManager._oauth2Cache.delete(key);
|
|
58
|
+
ArcGisTokenManager.saveToBrowserStorage();
|
|
59
|
+
return deleted;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
static setOAuth2Token(key, token) {
|
|
66
|
+
if (ArcGisTokenManager._oauth2Cache === undefined) {
|
|
67
|
+
ArcGisTokenManager._oauth2Cache = new Map();
|
|
68
|
+
}
|
|
69
|
+
ArcGisTokenManager._oauth2Cache.set(key, token);
|
|
70
|
+
ArcGisTokenManager.saveToBrowserStorage();
|
|
71
|
+
}
|
|
72
|
+
static loadFromBrowserStorage() {
|
|
73
|
+
if (ArcGisTokenManager._oauth2Cache === undefined) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const loadEntries = (json) => {
|
|
77
|
+
if (json && ArcGisTokenManager._oauth2Cache !== undefined) {
|
|
78
|
+
const tokens = JSON.parse(json);
|
|
79
|
+
if (tokens) {
|
|
80
|
+
for (const [key, value] of Object.entries(tokens)) {
|
|
81
|
+
ArcGisTokenManager._oauth2Cache.set(key, value);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
loadEntries(window.sessionStorage.getItem(this._browserStorageKey) ?? undefined);
|
|
87
|
+
loadEntries(window.localStorage.getItem(this._browserStorageKey) ?? undefined);
|
|
88
|
+
}
|
|
89
|
+
static saveToBrowserStorage() {
|
|
90
|
+
if (ArcGisTokenManager._oauth2Cache === undefined) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
const sessionTokens = {};
|
|
94
|
+
const storageTokens = {};
|
|
95
|
+
ArcGisTokenManager._oauth2Cache.forEach((value, key) => {
|
|
96
|
+
// ignore the persist flag for now, and only save to session storage
|
|
97
|
+
// if (value.persist === true) {
|
|
98
|
+
// storageTokens[key] = value;
|
|
99
|
+
// } else {
|
|
100
|
+
// sessionTokens[key] = value;
|
|
101
|
+
// }
|
|
102
|
+
sessionTokens[key] = value;
|
|
103
|
+
});
|
|
104
|
+
window.sessionStorage.setItem(this._browserStorageKey, JSON.stringify(sessionTokens));
|
|
105
|
+
window.localStorage.setItem(this._browserStorageKey, JSON.stringify(storageTokens));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
ArcGisTokenManager.tokenExpiryThreshold = 300000; // 5 minutes in milliseconds
|
|
109
|
+
ArcGisTokenManager._cache = new Map();
|
|
110
|
+
ArcGisTokenManager._browserStorageKey = "arcGisOAuth";
|
|
111
|
+
exports.ArcGisTokenManager = ArcGisTokenManager;
|
|
112
112
|
//# sourceMappingURL=ArcGisTokenManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArcGisTokenManager.js","sourceRoot":"","sources":["../../../src/ArcGis/ArcGisTokenManager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ArcGisTokenManager.js","sourceRoot":"","sources":["../../../src/ArcGis/ArcGisTokenManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { MapLayerAccessToken } from \"@itwin/core-frontend\";\r\nimport { ArcGisGenerateTokenOptions, ArcGisOAuth2Token, ArcGisToken, ArcGisTokenGenerator } from \"./ArcGisTokenGenerator\";\r\n\r\n/** @internal */\r\ninterface ArcGisTokenProps {\r\n [hostname: string]: ArcGisOAuth2Token;\r\n}\r\n\r\n/** @internal */\r\nexport class ArcGisTokenManager {\r\n private static readonly tokenExpiryThreshold = 300000; // 5 minutes in milliseconds\r\n private static _cache = new Map<string, ArcGisToken>();\r\n private static _oauth2Cache: Map<string, ArcGisOAuth2Token> | undefined;\r\n private static _generator: ArcGisTokenGenerator | undefined;\r\n private static readonly _browserStorageKey = \"arcGisOAuth\";\r\n\r\n public static async getToken(arcGisRestServiceUrl: string, userName: string, password: string, options: ArcGisGenerateTokenOptions): Promise<ArcGisToken | undefined> {\r\n if (!ArcGisTokenManager._generator)\r\n ArcGisTokenManager._generator = new ArcGisTokenGenerator();\r\n\r\n const tokenCacheKey = `${encodeURIComponent(userName)}@${arcGisRestServiceUrl}`;\r\n\r\n // First check in the session cache\r\n const cachedToken = ArcGisTokenManager._cache.get(tokenCacheKey);\r\n\r\n // Check if token is in cached and is valid within the threshold, if not, generate a new token immediately.\r\n if (cachedToken !== undefined && (cachedToken.expires - (+new Date()) > ArcGisTokenManager.tokenExpiryThreshold)) {\r\n return cachedToken;\r\n }\r\n\r\n // Nothing in cache, generate a new token\r\n const newToken = await ArcGisTokenManager._generator.generate(arcGisRestServiceUrl, userName, password, options);\r\n if (newToken.token) {\r\n const token = newToken as ArcGisToken;\r\n ArcGisTokenManager._cache.set(tokenCacheKey, token);\r\n return token;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n public static invalidateToken(token: MapLayerAccessToken): boolean {\r\n\r\n for (const [key, value] of ArcGisTokenManager._cache) {\r\n if (value.token === token.token)\r\n return ArcGisTokenManager._cache.delete(key);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static getOAuth2Token(key: string): ArcGisOAuth2Token | undefined {\r\n if (ArcGisTokenManager._oauth2Cache === undefined) {\r\n ArcGisTokenManager._oauth2Cache = new Map<string, ArcGisOAuth2Token>();\r\n ArcGisTokenManager.loadFromBrowserStorage();\r\n }\r\n\r\n const cachedToken = ArcGisTokenManager._oauth2Cache.get(key);\r\n\r\n // If cached token has expired (or about to expire), invalidate don't return it.\r\n if (cachedToken !== undefined && (cachedToken.expiresAt - (+new Date()) < ArcGisTokenManager.tokenExpiryThreshold)) {\r\n ArcGisTokenManager._oauth2Cache.delete(key);\r\n return undefined;\r\n }\r\n\r\n return cachedToken;\r\n }\r\n\r\n public static invalidateOAuth2Token(token: MapLayerAccessToken) {\r\n\r\n if (ArcGisTokenManager._oauth2Cache) {\r\n for (const [key, value] of ArcGisTokenManager._oauth2Cache) {\r\n if (value.token === token.token){\r\n const deleted = ArcGisTokenManager._oauth2Cache.delete(key);\r\n ArcGisTokenManager.saveToBrowserStorage();\r\n return deleted;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static setOAuth2Token(key: string, token: ArcGisOAuth2Token) {\r\n\r\n if (ArcGisTokenManager._oauth2Cache === undefined) {\r\n ArcGisTokenManager._oauth2Cache = new Map<string, ArcGisOAuth2Token>();\r\n\r\n }\r\n ArcGisTokenManager._oauth2Cache.set(key, token);\r\n\r\n ArcGisTokenManager.saveToBrowserStorage();\r\n }\r\n\r\n public static loadFromBrowserStorage() {\r\n if (ArcGisTokenManager._oauth2Cache === undefined) {\r\n return;\r\n }\r\n\r\n const loadEntries = (json: string | undefined) => {\r\n if (json && ArcGisTokenManager._oauth2Cache !== undefined) {\r\n const tokens: ArcGisTokenProps | undefined = JSON.parse(json);\r\n if (tokens) {\r\n for (const [key, value] of Object.entries(tokens)) {\r\n ArcGisTokenManager._oauth2Cache.set(key, value);\r\n }\r\n }\r\n }\r\n };\r\n\r\n loadEntries(window.sessionStorage.getItem(this._browserStorageKey) ?? undefined);\r\n loadEntries(window.localStorage.getItem(this._browserStorageKey) ?? undefined);\r\n }\r\n\r\n public static saveToBrowserStorage() {\r\n\r\n if (ArcGisTokenManager._oauth2Cache === undefined) {\r\n return;\r\n }\r\n const sessionTokens: ArcGisTokenProps = {};\r\n const storageTokens: ArcGisTokenProps = {};\r\n\r\n ArcGisTokenManager._oauth2Cache.forEach((value: ArcGisOAuth2Token, key: string) => {\r\n // ignore the persist flag for now, and only save to session storage\r\n // if (value.persist === true) {\r\n // storageTokens[key] = value;\r\n // } else {\r\n // sessionTokens[key] = value;\r\n // }\r\n sessionTokens[key] = value;\r\n });\r\n window.sessionStorage.setItem(this._browserStorageKey, JSON.stringify(sessionTokens));\r\n window.localStorage.setItem(this._browserStorageKey, JSON.stringify(storageTokens));\r\n }\r\n\r\n}\r\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/** @internal */
|
|
2
|
-
export declare class ArcGisUrl {
|
|
3
|
-
static extractRestBaseUrl(url: URL): URL | undefined;
|
|
4
|
-
static getRestUrlFromGenerateTokenUrl(url: URL): Promise<URL | undefined>;
|
|
5
|
-
private static fetchJson;
|
|
6
|
-
}
|
|
1
|
+
/** @internal */
|
|
2
|
+
export declare class ArcGisUrl {
|
|
3
|
+
static extractRestBaseUrl(url: URL): URL | undefined;
|
|
4
|
+
static getRestUrlFromGenerateTokenUrl(url: URL): Promise<URL | undefined>;
|
|
5
|
+
private static fetchJson;
|
|
6
|
+
}
|
|
7
7
|
//# sourceMappingURL=ArcGisUrl.d.ts.map
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ArcGisUrl = void 0;
|
|
4
|
-
/*---------------------------------------------------------------------------------------------
|
|
5
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
6
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
7
|
-
*--------------------------------------------------------------------------------------------*/
|
|
8
|
-
/** @internal */
|
|
9
|
-
class ArcGisUrl {
|
|
10
|
-
// Extract the sub-url up to '/rest/'
|
|
11
|
-
static extractRestBaseUrl(url) {
|
|
12
|
-
const urlStr = url.toString();
|
|
13
|
-
const searchStr = "/rest/";
|
|
14
|
-
const restPos = urlStr.indexOf(searchStr);
|
|
15
|
-
return (restPos === -1 ? undefined : new URL(urlStr.substring(0, restPos + searchStr.length)));
|
|
16
|
-
}
|
|
17
|
-
static async getRestUrlFromGenerateTokenUrl(url) {
|
|
18
|
-
const restUrl = ArcGisUrl.extractRestBaseUrl(url);
|
|
19
|
-
if (restUrl === undefined) {
|
|
20
|
-
return undefined;
|
|
21
|
-
}
|
|
22
|
-
// First attempt: derive the Oauth2 token URL from the 'tokenServicesUrl', exposed by the 'info request'
|
|
23
|
-
const infoUrl = new URL(`${restUrl.toString()}info`);
|
|
24
|
-
infoUrl.searchParams.append("f", "json");
|
|
25
|
-
let json;
|
|
26
|
-
try {
|
|
27
|
-
json = await ArcGisUrl.fetchJson(infoUrl);
|
|
28
|
-
}
|
|
29
|
-
catch {
|
|
30
|
-
}
|
|
31
|
-
const tokenServicesUrl = json?.authInfo?.tokenServicesUrl;
|
|
32
|
-
if (tokenServicesUrl === undefined) {
|
|
33
|
-
return undefined;
|
|
34
|
-
}
|
|
35
|
-
return ArcGisUrl.extractRestBaseUrl(new URL(tokenServicesUrl));
|
|
36
|
-
}
|
|
37
|
-
static async fetchJson(url) {
|
|
38
|
-
let json;
|
|
39
|
-
try {
|
|
40
|
-
const response = await fetch(url.toString(), { method: "GET" });
|
|
41
|
-
json = await response.json();
|
|
42
|
-
}
|
|
43
|
-
catch {
|
|
44
|
-
}
|
|
45
|
-
return json;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
exports.ArcGisUrl = ArcGisUrl;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ArcGisUrl = void 0;
|
|
4
|
+
/*---------------------------------------------------------------------------------------------
|
|
5
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
6
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
7
|
+
*--------------------------------------------------------------------------------------------*/
|
|
8
|
+
/** @internal */
|
|
9
|
+
class ArcGisUrl {
|
|
10
|
+
// Extract the sub-url up to '/rest/'
|
|
11
|
+
static extractRestBaseUrl(url) {
|
|
12
|
+
const urlStr = url.toString();
|
|
13
|
+
const searchStr = "/rest/";
|
|
14
|
+
const restPos = urlStr.indexOf(searchStr);
|
|
15
|
+
return (restPos === -1 ? undefined : new URL(urlStr.substring(0, restPos + searchStr.length)));
|
|
16
|
+
}
|
|
17
|
+
static async getRestUrlFromGenerateTokenUrl(url) {
|
|
18
|
+
const restUrl = ArcGisUrl.extractRestBaseUrl(url);
|
|
19
|
+
if (restUrl === undefined) {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
// First attempt: derive the Oauth2 token URL from the 'tokenServicesUrl', exposed by the 'info request'
|
|
23
|
+
const infoUrl = new URL(`${restUrl.toString()}info`);
|
|
24
|
+
infoUrl.searchParams.append("f", "json");
|
|
25
|
+
let json;
|
|
26
|
+
try {
|
|
27
|
+
json = await ArcGisUrl.fetchJson(infoUrl);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
}
|
|
31
|
+
const tokenServicesUrl = json?.authInfo?.tokenServicesUrl;
|
|
32
|
+
if (tokenServicesUrl === undefined) {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
return ArcGisUrl.extractRestBaseUrl(new URL(tokenServicesUrl));
|
|
36
|
+
}
|
|
37
|
+
static async fetchJson(url) {
|
|
38
|
+
let json;
|
|
39
|
+
try {
|
|
40
|
+
const response = await fetch(url.toString(), { method: "GET" });
|
|
41
|
+
json = await response.json();
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
}
|
|
45
|
+
return json;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.ArcGisUrl = ArcGisUrl;
|
|
49
49
|
//# sourceMappingURL=ArcGisUrl.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export * from "./ArcGis/ArcGisOAuth2Endpoint";
|
|
2
|
-
export * from "./ArcGis/ArcGisUrl";
|
|
3
|
-
export * from "./ArcGis/ArcGisAccessClient";
|
|
4
|
-
export * from "./ArcGis/ArcGisTokenGenerator";
|
|
5
|
-
export * from "./ArcGis/ArcGisTokenManager";
|
|
1
|
+
export * from "./ArcGis/ArcGisOAuth2Endpoint";
|
|
2
|
+
export * from "./ArcGis/ArcGisUrl";
|
|
3
|
+
export * from "./ArcGis/ArcGisAccessClient";
|
|
4
|
+
export * from "./ArcGis/ArcGisTokenGenerator";
|
|
5
|
+
export * from "./ArcGis/ArcGisTokenManager";
|
|
6
6
|
//# sourceMappingURL=map-layers-auth.d.ts.map
|
|
@@ -1,22 +1,26 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
__exportStar(require("./ArcGis/
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
/*---------------------------------------------------------------------------------------------
|
|
18
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
19
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
20
|
+
*--------------------------------------------------------------------------------------------*/
|
|
21
|
+
__exportStar(require("./ArcGis/ArcGisOAuth2Endpoint"), exports);
|
|
22
|
+
__exportStar(require("./ArcGis/ArcGisUrl"), exports);
|
|
23
|
+
__exportStar(require("./ArcGis/ArcGisAccessClient"), exports);
|
|
24
|
+
__exportStar(require("./ArcGis/ArcGisTokenGenerator"), exports);
|
|
25
|
+
__exportStar(require("./ArcGis/ArcGisTokenManager"), exports);
|
|
22
26
|
//# sourceMappingURL=map-layers-auth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-layers-auth.js","sourceRoot":"","sources":["../../src/map-layers-auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"map-layers-auth.js","sourceRoot":"","sources":["../../src/map-layers-auth.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,gEAA8C;AAC9C,qDAAmC;AACnC,8DAA4C;AAC5C,gEAA8C;AAC9C,8DAA4C","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nexport * from \"./ArcGis/ArcGisOAuth2Endpoint\";\r\nexport * from \"./ArcGis/ArcGisUrl\";\r\nexport * from \"./ArcGis/ArcGisAccessClient\";\r\nexport * from \"./ArcGis/ArcGisTokenGenerator\";\r\nexport * from \"./ArcGis/ArcGisTokenManager\";\r\n"]}
|
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
/** @packageDocumentation
|
|
2
|
-
* @module Tiles
|
|
3
|
-
*/
|
|
4
|
-
import { BeEvent } from "@itwin/core-bentley";
|
|
5
|
-
import { MapLayerAccessClient, MapLayerAccessToken, MapLayerAccessTokenParams, MapLayerTokenEndpoint } from "@itwin/core-frontend";
|
|
6
|
-
/** @beta */
|
|
7
|
-
export interface ArcGisEnterpriseClientId {
|
|
8
|
-
serviceBaseUrl: string;
|
|
9
|
-
clientId: string;
|
|
10
|
-
}
|
|
11
|
-
/** @beta */
|
|
12
|
-
export interface ArcGisOAuthClientIds {
|
|
13
|
-
arcgisOnlineClientId?: string;
|
|
14
|
-
enterpriseClientIds?: ArcGisEnterpriseClientId[];
|
|
15
|
-
}
|
|
16
|
-
/** @beta
|
|
17
|
-
* ArcGIS OAuth configurations parameters.
|
|
18
|
-
* See https://developers.arcgis.com/documentation/mapping-apis-and-services/security/arcgis-identity/serverless-web-apps/
|
|
19
|
-
* more details.
|
|
20
|
-
*/
|
|
21
|
-
export interface ArcGisOAuthConfig {
|
|
22
|
-
redirectUri: string;
|
|
23
|
-
tokenExpiration?: number;
|
|
24
|
-
clientIds: ArcGisOAuthClientIds;
|
|
25
|
-
}
|
|
26
|
-
/** @beta */
|
|
27
|
-
export declare class ArcGisAccessClient implements MapLayerAccessClient {
|
|
28
|
-
readonly onOAuthProcessEnd: BeEvent<import("@itwin/core-bentley").Listener>;
|
|
29
|
-
private _redirectUri;
|
|
30
|
-
private _expiration;
|
|
31
|
-
private _clientIds;
|
|
32
|
-
private _forceLegacyToken;
|
|
33
|
-
constructor();
|
|
34
|
-
initialize(oAuthConfig?: ArcGisOAuthConfig): boolean;
|
|
35
|
-
private initOauthCallbackFunction;
|
|
36
|
-
unInitialize(): void;
|
|
37
|
-
getAccessToken(params: MapLayerAccessTokenParams): Promise<MapLayerAccessToken | undefined>;
|
|
38
|
-
getTokenServiceEndPoint(mapLayerUrl: string): Promise<MapLayerTokenEndpoint | undefined>;
|
|
39
|
-
invalidateToken(token: MapLayerAccessToken): boolean;
|
|
40
|
-
get redirectUri(): string | undefined;
|
|
41
|
-
getMatchingEnterpriseClientId(url: string): string | undefined;
|
|
42
|
-
get expiration(): number | undefined;
|
|
43
|
-
get arcGisOnlineClientId(): string | undefined;
|
|
44
|
-
set arcGisOnlineClientId(clientId: string | undefined);
|
|
45
|
-
get arcGisEnterpriseClientIds(): ArcGisEnterpriseClientId[] | undefined;
|
|
46
|
-
setEnterpriseClientId(serviceBaseUrl: string, clientId: string): void;
|
|
47
|
-
removeEnterpriseClientId(clientId: ArcGisEnterpriseClientId): void;
|
|
48
|
-
/** @internal */
|
|
49
|
-
private getOAuthTokenForMapLayerUrl;
|
|
50
|
-
private _oauthAuthorizeEndPointsCache;
|
|
51
|
-
private _oauthTokenEndPointsCache;
|
|
52
|
-
/**
|
|
53
|
-
* Get OAuth2 endpoint that must be cause to get the Oauth2 token
|
|
54
|
-
* @internal
|
|
55
|
-
*/
|
|
56
|
-
private cacheEndpoint;
|
|
57
|
-
/**
|
|
58
|
-
* Get OAuth2 endpoint that must be cause to get the Oauth2 token
|
|
59
|
-
* @internal
|
|
60
|
-
*/
|
|
61
|
-
private createEndpoint;
|
|
62
|
-
/**
|
|
63
|
-
* Get OAuth2 endpoint that must be cause to get the Oauth2 token
|
|
64
|
-
* @internal
|
|
65
|
-
*/
|
|
66
|
-
private getOAuth2Endpoint;
|
|
67
|
-
/**
|
|
68
|
-
* Construct the complete Authorize url to starts the Oauth process
|
|
69
|
-
* @internal
|
|
70
|
-
*/
|
|
71
|
-
private constructLoginUrl;
|
|
72
|
-
}
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module Tiles
|
|
3
|
+
*/
|
|
4
|
+
import { BeEvent } from "@itwin/core-bentley";
|
|
5
|
+
import { MapLayerAccessClient, MapLayerAccessToken, MapLayerAccessTokenParams, MapLayerTokenEndpoint } from "@itwin/core-frontend";
|
|
6
|
+
/** @beta */
|
|
7
|
+
export interface ArcGisEnterpriseClientId {
|
|
8
|
+
serviceBaseUrl: string;
|
|
9
|
+
clientId: string;
|
|
10
|
+
}
|
|
11
|
+
/** @beta */
|
|
12
|
+
export interface ArcGisOAuthClientIds {
|
|
13
|
+
arcgisOnlineClientId?: string;
|
|
14
|
+
enterpriseClientIds?: ArcGisEnterpriseClientId[];
|
|
15
|
+
}
|
|
16
|
+
/** @beta
|
|
17
|
+
* ArcGIS OAuth configurations parameters.
|
|
18
|
+
* See https://developers.arcgis.com/documentation/mapping-apis-and-services/security/arcgis-identity/serverless-web-apps/
|
|
19
|
+
* more details.
|
|
20
|
+
*/
|
|
21
|
+
export interface ArcGisOAuthConfig {
|
|
22
|
+
redirectUri: string;
|
|
23
|
+
tokenExpiration?: number;
|
|
24
|
+
clientIds: ArcGisOAuthClientIds;
|
|
25
|
+
}
|
|
26
|
+
/** @beta */
|
|
27
|
+
export declare class ArcGisAccessClient implements MapLayerAccessClient {
|
|
28
|
+
readonly onOAuthProcessEnd: BeEvent<import("@itwin/core-bentley").Listener>;
|
|
29
|
+
private _redirectUri;
|
|
30
|
+
private _expiration;
|
|
31
|
+
private _clientIds;
|
|
32
|
+
private _forceLegacyToken;
|
|
33
|
+
constructor();
|
|
34
|
+
initialize(oAuthConfig?: ArcGisOAuthConfig): boolean;
|
|
35
|
+
private initOauthCallbackFunction;
|
|
36
|
+
unInitialize(): void;
|
|
37
|
+
getAccessToken(params: MapLayerAccessTokenParams): Promise<MapLayerAccessToken | undefined>;
|
|
38
|
+
getTokenServiceEndPoint(mapLayerUrl: string): Promise<MapLayerTokenEndpoint | undefined>;
|
|
39
|
+
invalidateToken(token: MapLayerAccessToken): boolean;
|
|
40
|
+
get redirectUri(): string | undefined;
|
|
41
|
+
getMatchingEnterpriseClientId(url: string): string | undefined;
|
|
42
|
+
get expiration(): number | undefined;
|
|
43
|
+
get arcGisOnlineClientId(): string | undefined;
|
|
44
|
+
set arcGisOnlineClientId(clientId: string | undefined);
|
|
45
|
+
get arcGisEnterpriseClientIds(): ArcGisEnterpriseClientId[] | undefined;
|
|
46
|
+
setEnterpriseClientId(serviceBaseUrl: string, clientId: string): void;
|
|
47
|
+
removeEnterpriseClientId(clientId: ArcGisEnterpriseClientId): void;
|
|
48
|
+
/** @internal */
|
|
49
|
+
private getOAuthTokenForMapLayerUrl;
|
|
50
|
+
private _oauthAuthorizeEndPointsCache;
|
|
51
|
+
private _oauthTokenEndPointsCache;
|
|
52
|
+
/**
|
|
53
|
+
* Get OAuth2 endpoint that must be cause to get the Oauth2 token
|
|
54
|
+
* @internal
|
|
55
|
+
*/
|
|
56
|
+
private cacheEndpoint;
|
|
57
|
+
/**
|
|
58
|
+
* Get OAuth2 endpoint that must be cause to get the Oauth2 token
|
|
59
|
+
* @internal
|
|
60
|
+
*/
|
|
61
|
+
private createEndpoint;
|
|
62
|
+
/**
|
|
63
|
+
* Get OAuth2 endpoint that must be cause to get the Oauth2 token
|
|
64
|
+
* @internal
|
|
65
|
+
*/
|
|
66
|
+
private getOAuth2Endpoint;
|
|
67
|
+
/**
|
|
68
|
+
* Construct the complete Authorize url to starts the Oauth process
|
|
69
|
+
* @internal
|
|
70
|
+
*/
|
|
71
|
+
private constructLoginUrl;
|
|
72
|
+
}
|
|
73
73
|
//# sourceMappingURL=ArcGisAccessClient.d.ts.map
|