@esri/hub-common 13.9.0 → 13.10.0
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/dist/esm/ArcGISContextManager.js +68 -0
- package/dist/esm/ArcGISContextManager.js.map +1 -1
- package/dist/esm/utils/sessionLocalStorage.js +10 -0
- package/dist/esm/utils/sessionLocalStorage.js.map +1 -1
- package/dist/node/ArcGISContextManager.js +68 -0
- package/dist/node/ArcGISContextManager.js.map +1 -1
- package/dist/node/utils/sessionLocalStorage.js +10 -0
- package/dist/node/utils/sessionLocalStorage.js.map +1 -1
- package/dist/types/ArcGISContextManager.d.ts +15 -0
- package/dist/types/utils/sessionLocalStorage.d.ts +6 -0
- package/package.json +1 -1
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { getSelf, getUser } from "@esri/arcgis-rest-portal";
|
|
2
|
+
import { UserSession, } from "@esri/arcgis-rest-auth";
|
|
2
3
|
import { ArcGISContext, } from "./ArcGISContext";
|
|
4
|
+
import { atob, btoa } from "abab";
|
|
3
5
|
import { getHubApiFromPortalUrl } from "./urls/getHubApiFromPortalUrl";
|
|
4
6
|
import { getPortalBaseFromOrgUrl } from "./urls/getPortalBaseFromOrgUrl";
|
|
5
7
|
import { Level, Logger } from "./utils/logger";
|
|
@@ -74,6 +76,47 @@ export class ArcGISContextManager {
|
|
|
74
76
|
await ctx.initialize();
|
|
75
77
|
return ctx;
|
|
76
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Create a new instance of the ArcGISContextManager from a serialized
|
|
81
|
+
* string. This is useful when you want to store the context in a
|
|
82
|
+
* browser's local storage or server side session.
|
|
83
|
+
* @param serializedContext
|
|
84
|
+
* @returns
|
|
85
|
+
*/
|
|
86
|
+
static async deserialize(serializedContext) {
|
|
87
|
+
const decoded = atob(serializedContext);
|
|
88
|
+
const state = JSON.parse(decoded);
|
|
89
|
+
// create opts and populate from state
|
|
90
|
+
const opts = {
|
|
91
|
+
portalUrl: state.portalUrl,
|
|
92
|
+
};
|
|
93
|
+
if (state.session) {
|
|
94
|
+
// re-create the session
|
|
95
|
+
const userSession = UserSession.deserialize(state.session);
|
|
96
|
+
// if the session is still valid, use it and the other properties
|
|
97
|
+
if (userSession.tokenExpires.getTime() > Date.now()) {
|
|
98
|
+
opts.authentication = userSession;
|
|
99
|
+
if (state.portal) {
|
|
100
|
+
opts.portal = state.portal;
|
|
101
|
+
}
|
|
102
|
+
if (state.currentUser) {
|
|
103
|
+
opts.currentUser = state.currentUser;
|
|
104
|
+
}
|
|
105
|
+
if (state.properties) {
|
|
106
|
+
opts.properties = state.properties;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
// if the session is expired, we can still carry forward the portalUrl
|
|
112
|
+
// we don't need this when auth is passed b/c it will use that instead
|
|
113
|
+
// of portalUrl
|
|
114
|
+
opts.portalUrl = state.portalUrl;
|
|
115
|
+
}
|
|
116
|
+
// system status is safe to carry forward even if session is expired
|
|
117
|
+
opts.systemStatus = state.systemStatus;
|
|
118
|
+
return ArcGISContextManager.create(opts);
|
|
119
|
+
}
|
|
77
120
|
/**
|
|
78
121
|
* Set the Authentication (UserSession) for the context.
|
|
79
122
|
* This should be called when a user signs into a running
|
|
@@ -119,6 +162,31 @@ export class ArcGISContextManager {
|
|
|
119
162
|
get context() {
|
|
120
163
|
return this._context;
|
|
121
164
|
}
|
|
165
|
+
/**
|
|
166
|
+
* Serialize the context into a string that can be stored
|
|
167
|
+
* in a browser's local storage or server side session
|
|
168
|
+
*
|
|
169
|
+
* @returns encoded string representation of the context
|
|
170
|
+
*/
|
|
171
|
+
serialize() {
|
|
172
|
+
const state = {
|
|
173
|
+
portalUrl: this._portalUrl,
|
|
174
|
+
systemStatus: this._systemStatus,
|
|
175
|
+
};
|
|
176
|
+
if (this._authentication) {
|
|
177
|
+
state.session = this._authentication.serialize();
|
|
178
|
+
}
|
|
179
|
+
if (this._portalSelf) {
|
|
180
|
+
state.portal = this._portalSelf;
|
|
181
|
+
}
|
|
182
|
+
if (this._currentUser) {
|
|
183
|
+
state.currentUser = this._currentUser;
|
|
184
|
+
}
|
|
185
|
+
if (this._properties) {
|
|
186
|
+
state.properties = this._properties;
|
|
187
|
+
}
|
|
188
|
+
return btoa(JSON.stringify(state));
|
|
189
|
+
}
|
|
122
190
|
/**
|
|
123
191
|
* If we have a UserSession, fetch portal/self and
|
|
124
192
|
* store that along with current user
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArcGISContextManager.js","sourceRoot":"","sources":["../../src/ArcGISContextManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAW,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"ArcGISContextManager.js","sourceRoot":"","sources":["../../src/ArcGISContextManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { UserSession } from "@esri/arcgis-rest-auth";
|
|
2
2
|
/**
|
|
3
|
+
* DEPRECATED: Applications should manage storage/retrieval of serialized ArcGISContexts.
|
|
4
|
+
* Please see ArcGISContextManager.serialize(...) and ArcGISContextManager.deserialize(...)
|
|
3
5
|
* Remove any serialized sessions associated with the passed clientId
|
|
4
6
|
* from a browser's local storage
|
|
5
7
|
* @param clientId oAuth Client Id
|
|
@@ -13,6 +15,8 @@ win = window) {
|
|
|
13
15
|
}
|
|
14
16
|
}
|
|
15
17
|
/**
|
|
18
|
+
* DEPRECATED: Applications should manage storage/retrieval of serialized ArcGISContexts.
|
|
19
|
+
* Please see ArcGISContextManager.serialize(...) and ArcGISContextManager.deserialize(...)
|
|
16
20
|
* Re-hydrate a UserSession from a browser's local storage.
|
|
17
21
|
* If not found,
|
|
18
22
|
* @param clientId oAuth Client Id
|
|
@@ -23,6 +27,8 @@ export function getSession(clientId,
|
|
|
23
27
|
/* istanbul ignore next */
|
|
24
28
|
win = window) {
|
|
25
29
|
let result = null;
|
|
30
|
+
// tslint:disable-next-line
|
|
31
|
+
console.warn("getSession is deprecated. App should handle storage/retrieval and use ArcGISContextManager.deserialize(...) instead.");
|
|
26
32
|
if (win.localStorage) {
|
|
27
33
|
const serializedSession = win.localStorage.getItem(`__CONTEXT_${clientId}`);
|
|
28
34
|
if (serializedSession) {
|
|
@@ -32,6 +38,8 @@ win = window) {
|
|
|
32
38
|
return result;
|
|
33
39
|
}
|
|
34
40
|
/**
|
|
41
|
+
* DEPRECATED: Applications should manage storage/retrieval of serialized ArcGISContexts.
|
|
42
|
+
* Please see ArcGISContextManager.serialize(...) and ArcGISContextManager.deserialize(...)
|
|
35
43
|
* Serialize a UserSession into a browser's local storage
|
|
36
44
|
* @param clientId oAuth Client Id
|
|
37
45
|
* @param session UserSession
|
|
@@ -40,6 +48,8 @@ win = window) {
|
|
|
40
48
|
export function saveSession(clientId, session,
|
|
41
49
|
/* istanbul ignore next */
|
|
42
50
|
win = window) {
|
|
51
|
+
// tslint:disable-next-line
|
|
52
|
+
console.warn("saveSession is deprecated. App should handle storage/retrieval and use ArcGISContextManager.serialize(...) instead.");
|
|
43
53
|
if (win.localStorage) {
|
|
44
54
|
win.localStorage.setItem(`__CONTEXT_${clientId}`, session.serialize());
|
|
45
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionLocalStorage.js","sourceRoot":"","sources":["../../../src/utils/sessionLocalStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD
|
|
1
|
+
{"version":3,"file":"sessionLocalStorage.js","sourceRoot":"","sources":["../../../src/utils/sessionLocalStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAgB;AAChB,0BAA0B;AAC1B,MAAW,MAAM;IAEjB,IAAI,GAAG,CAAC,YAAY,EAAE;QACpB,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC;KACtD;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CACxB,QAAgB;AAChB,0BAA0B;AAC1B,MAAW,MAAM;IAEjB,IAAI,MAAM,GAAuB,IAAI,CAAC;IACtC,2BAA2B;IAC3B,OAAO,CAAC,IAAI,CACV,sHAAsH,CACvH,CAAC;IACF,IAAI,GAAG,CAAC,YAAY,EAAE;QACpB,MAAM,iBAAiB,GAAG,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC;QAC5E,IAAI,iBAAiB,EAAE;YACrB,MAAM,GAAG,WAAW,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;SACrD;KACF;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CACzB,QAAgB,EAChB,OAAoB;AACpB,0BAA0B;AAC1B,MAAW,MAAM;IAEjB,2BAA2B;IAC3B,OAAO,CAAC,IAAI,CACV,qHAAqH,CACtH,CAAC;IACF,IAAI,GAAG,CAAC,YAAY,EAAE;QACpB,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,QAAQ,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;KACxE;AACH,CAAC"}
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ArcGISContextManager = void 0;
|
|
4
4
|
const arcgis_rest_portal_1 = require("@esri/arcgis-rest-portal");
|
|
5
|
+
const arcgis_rest_auth_1 = require("@esri/arcgis-rest-auth");
|
|
5
6
|
const ArcGISContext_1 = require("./ArcGISContext");
|
|
7
|
+
const abab_1 = require("abab");
|
|
6
8
|
const getHubApiFromPortalUrl_1 = require("./urls/getHubApiFromPortalUrl");
|
|
7
9
|
const getPortalBaseFromOrgUrl_1 = require("./urls/getPortalBaseFromOrgUrl");
|
|
8
10
|
const logger_1 = require("./utils/logger");
|
|
@@ -77,6 +79,47 @@ class ArcGISContextManager {
|
|
|
77
79
|
await ctx.initialize();
|
|
78
80
|
return ctx;
|
|
79
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Create a new instance of the ArcGISContextManager from a serialized
|
|
84
|
+
* string. This is useful when you want to store the context in a
|
|
85
|
+
* browser's local storage or server side session.
|
|
86
|
+
* @param serializedContext
|
|
87
|
+
* @returns
|
|
88
|
+
*/
|
|
89
|
+
static async deserialize(serializedContext) {
|
|
90
|
+
const decoded = abab_1.atob(serializedContext);
|
|
91
|
+
const state = JSON.parse(decoded);
|
|
92
|
+
// create opts and populate from state
|
|
93
|
+
const opts = {
|
|
94
|
+
portalUrl: state.portalUrl,
|
|
95
|
+
};
|
|
96
|
+
if (state.session) {
|
|
97
|
+
// re-create the session
|
|
98
|
+
const userSession = arcgis_rest_auth_1.UserSession.deserialize(state.session);
|
|
99
|
+
// if the session is still valid, use it and the other properties
|
|
100
|
+
if (userSession.tokenExpires.getTime() > Date.now()) {
|
|
101
|
+
opts.authentication = userSession;
|
|
102
|
+
if (state.portal) {
|
|
103
|
+
opts.portal = state.portal;
|
|
104
|
+
}
|
|
105
|
+
if (state.currentUser) {
|
|
106
|
+
opts.currentUser = state.currentUser;
|
|
107
|
+
}
|
|
108
|
+
if (state.properties) {
|
|
109
|
+
opts.properties = state.properties;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
// if the session is expired, we can still carry forward the portalUrl
|
|
115
|
+
// we don't need this when auth is passed b/c it will use that instead
|
|
116
|
+
// of portalUrl
|
|
117
|
+
opts.portalUrl = state.portalUrl;
|
|
118
|
+
}
|
|
119
|
+
// system status is safe to carry forward even if session is expired
|
|
120
|
+
opts.systemStatus = state.systemStatus;
|
|
121
|
+
return ArcGISContextManager.create(opts);
|
|
122
|
+
}
|
|
80
123
|
/**
|
|
81
124
|
* Set the Authentication (UserSession) for the context.
|
|
82
125
|
* This should be called when a user signs into a running
|
|
@@ -122,6 +165,31 @@ class ArcGISContextManager {
|
|
|
122
165
|
get context() {
|
|
123
166
|
return this._context;
|
|
124
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* Serialize the context into a string that can be stored
|
|
170
|
+
* in a browser's local storage or server side session
|
|
171
|
+
*
|
|
172
|
+
* @returns encoded string representation of the context
|
|
173
|
+
*/
|
|
174
|
+
serialize() {
|
|
175
|
+
const state = {
|
|
176
|
+
portalUrl: this._portalUrl,
|
|
177
|
+
systemStatus: this._systemStatus,
|
|
178
|
+
};
|
|
179
|
+
if (this._authentication) {
|
|
180
|
+
state.session = this._authentication.serialize();
|
|
181
|
+
}
|
|
182
|
+
if (this._portalSelf) {
|
|
183
|
+
state.portal = this._portalSelf;
|
|
184
|
+
}
|
|
185
|
+
if (this._currentUser) {
|
|
186
|
+
state.currentUser = this._currentUser;
|
|
187
|
+
}
|
|
188
|
+
if (this._properties) {
|
|
189
|
+
state.properties = this._properties;
|
|
190
|
+
}
|
|
191
|
+
return abab_1.btoa(JSON.stringify(state));
|
|
192
|
+
}
|
|
125
193
|
/**
|
|
126
194
|
* If we have a UserSession, fetch portal/self and
|
|
127
195
|
* store that along with current user
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArcGISContextManager.js","sourceRoot":"","sources":["../../src/ArcGISContextManager.ts"],"names":[],"mappings":";;;AAAA,iEAAqE;
|
|
1
|
+
{"version":3,"file":"ArcGISContextManager.js","sourceRoot":"","sources":["../../src/ArcGISContextManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.saveSession = exports.getSession = exports.clearSession = void 0;
|
|
4
4
|
const arcgis_rest_auth_1 = require("@esri/arcgis-rest-auth");
|
|
5
5
|
/**
|
|
6
|
+
* DEPRECATED: Applications should manage storage/retrieval of serialized ArcGISContexts.
|
|
7
|
+
* Please see ArcGISContextManager.serialize(...) and ArcGISContextManager.deserialize(...)
|
|
6
8
|
* Remove any serialized sessions associated with the passed clientId
|
|
7
9
|
* from a browser's local storage
|
|
8
10
|
* @param clientId oAuth Client Id
|
|
@@ -17,6 +19,8 @@ win = window) {
|
|
|
17
19
|
}
|
|
18
20
|
exports.clearSession = clearSession;
|
|
19
21
|
/**
|
|
22
|
+
* DEPRECATED: Applications should manage storage/retrieval of serialized ArcGISContexts.
|
|
23
|
+
* Please see ArcGISContextManager.serialize(...) and ArcGISContextManager.deserialize(...)
|
|
20
24
|
* Re-hydrate a UserSession from a browser's local storage.
|
|
21
25
|
* If not found,
|
|
22
26
|
* @param clientId oAuth Client Id
|
|
@@ -27,6 +31,8 @@ function getSession(clientId,
|
|
|
27
31
|
/* istanbul ignore next */
|
|
28
32
|
win = window) {
|
|
29
33
|
let result = null;
|
|
34
|
+
// tslint:disable-next-line
|
|
35
|
+
console.warn("getSession is deprecated. App should handle storage/retrieval and use ArcGISContextManager.deserialize(...) instead.");
|
|
30
36
|
if (win.localStorage) {
|
|
31
37
|
const serializedSession = win.localStorage.getItem(`__CONTEXT_${clientId}`);
|
|
32
38
|
if (serializedSession) {
|
|
@@ -37,6 +43,8 @@ win = window) {
|
|
|
37
43
|
}
|
|
38
44
|
exports.getSession = getSession;
|
|
39
45
|
/**
|
|
46
|
+
* DEPRECATED: Applications should manage storage/retrieval of serialized ArcGISContexts.
|
|
47
|
+
* Please see ArcGISContextManager.serialize(...) and ArcGISContextManager.deserialize(...)
|
|
40
48
|
* Serialize a UserSession into a browser's local storage
|
|
41
49
|
* @param clientId oAuth Client Id
|
|
42
50
|
* @param session UserSession
|
|
@@ -45,6 +53,8 @@ exports.getSession = getSession;
|
|
|
45
53
|
function saveSession(clientId, session,
|
|
46
54
|
/* istanbul ignore next */
|
|
47
55
|
win = window) {
|
|
56
|
+
// tslint:disable-next-line
|
|
57
|
+
console.warn("saveSession is deprecated. App should handle storage/retrieval and use ArcGISContextManager.serialize(...) instead.");
|
|
48
58
|
if (win.localStorage) {
|
|
49
59
|
win.localStorage.setItem(`__CONTEXT_${clientId}`, session.serialize());
|
|
50
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionLocalStorage.js","sourceRoot":"","sources":["../../../src/utils/sessionLocalStorage.ts"],"names":[],"mappings":";;;AAAA,6DAAqD;AAErD
|
|
1
|
+
{"version":3,"file":"sessionLocalStorage.js","sourceRoot":"","sources":["../../../src/utils/sessionLocalStorage.ts"],"names":[],"mappings":";;;AAAA,6DAAqD;AAErD;;;;;;;GAOG;AACH,SAAgB,YAAY,CAC1B,QAAgB;AAChB,0BAA0B;AAC1B,MAAW,MAAM;IAEjB,IAAI,GAAG,CAAC,YAAY,EAAE;QACpB,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC;KACtD;AACH,CAAC;AARD,oCAQC;AAED;;;;;;;;GAQG;AACH,SAAgB,UAAU,CACxB,QAAgB;AAChB,0BAA0B;AAC1B,MAAW,MAAM;IAEjB,IAAI,MAAM,GAAuB,IAAI,CAAC;IACtC,2BAA2B;IAC3B,OAAO,CAAC,IAAI,CACV,sHAAsH,CACvH,CAAC;IACF,IAAI,GAAG,CAAC,YAAY,EAAE;QACpB,MAAM,iBAAiB,GAAG,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC;QAC5E,IAAI,iBAAiB,EAAE;YACrB,MAAM,GAAG,8BAAW,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;SACrD;KACF;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAjBD,gCAiBC;AAED;;;;;;;GAOG;AACH,SAAgB,WAAW,CACzB,QAAgB,EAChB,OAAoB;AACpB,0BAA0B;AAC1B,MAAW,MAAM;IAEjB,2BAA2B;IAC3B,OAAO,CAAC,IAAI,CACV,qHAAqH,CACtH,CAAC;IACF,IAAI,GAAG,CAAC,YAAY,EAAE;QACpB,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,QAAQ,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;KACxE;AACH,CAAC;AAbD,kCAaC"}
|
|
@@ -99,6 +99,14 @@ export declare class ArcGISContextManager {
|
|
|
99
99
|
* @returns
|
|
100
100
|
*/
|
|
101
101
|
static create(opts?: IArcGISContextManagerOptions): Promise<ArcGISContextManager>;
|
|
102
|
+
/**
|
|
103
|
+
* Create a new instance of the ArcGISContextManager from a serialized
|
|
104
|
+
* string. This is useful when you want to store the context in a
|
|
105
|
+
* browser's local storage or server side session.
|
|
106
|
+
* @param serializedContext
|
|
107
|
+
* @returns
|
|
108
|
+
*/
|
|
109
|
+
static deserialize(serializedContext: string): Promise<ArcGISContextManager>;
|
|
102
110
|
/**
|
|
103
111
|
* Set the Authentication (UserSession) for the context.
|
|
104
112
|
* This should be called when a user signs into a running
|
|
@@ -124,6 +132,13 @@ export declare class ArcGISContextManager {
|
|
|
124
132
|
* like React or Ember can detect changes.
|
|
125
133
|
*/
|
|
126
134
|
get context(): IArcGISContext;
|
|
135
|
+
/**
|
|
136
|
+
* Serialize the context into a string that can be stored
|
|
137
|
+
* in a browser's local storage or server side session
|
|
138
|
+
*
|
|
139
|
+
* @returns encoded string representation of the context
|
|
140
|
+
*/
|
|
141
|
+
serialize(): string;
|
|
127
142
|
/**
|
|
128
143
|
* If we have a UserSession, fetch portal/self and
|
|
129
144
|
* store that along with current user
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { UserSession } from "@esri/arcgis-rest-auth";
|
|
2
2
|
/**
|
|
3
|
+
* DEPRECATED: Applications should manage storage/retrieval of serialized ArcGISContexts.
|
|
4
|
+
* Please see ArcGISContextManager.serialize(...) and ArcGISContextManager.deserialize(...)
|
|
3
5
|
* Remove any serialized sessions associated with the passed clientId
|
|
4
6
|
* from a browser's local storage
|
|
5
7
|
* @param clientId oAuth Client Id
|
|
@@ -7,6 +9,8 @@ import { UserSession } from "@esri/arcgis-rest-auth";
|
|
|
7
9
|
*/
|
|
8
10
|
export declare function clearSession(clientId: string, win?: any): void;
|
|
9
11
|
/**
|
|
12
|
+
* DEPRECATED: Applications should manage storage/retrieval of serialized ArcGISContexts.
|
|
13
|
+
* Please see ArcGISContextManager.serialize(...) and ArcGISContextManager.deserialize(...)
|
|
10
14
|
* Re-hydrate a UserSession from a browser's local storage.
|
|
11
15
|
* If not found,
|
|
12
16
|
* @param clientId oAuth Client Id
|
|
@@ -15,6 +19,8 @@ export declare function clearSession(clientId: string, win?: any): void;
|
|
|
15
19
|
*/
|
|
16
20
|
export declare function getSession(clientId: string, win?: any): UserSession | null;
|
|
17
21
|
/**
|
|
22
|
+
* DEPRECATED: Applications should manage storage/retrieval of serialized ArcGISContexts.
|
|
23
|
+
* Please see ArcGISContextManager.serialize(...) and ArcGISContextManager.deserialize(...)
|
|
18
24
|
* Serialize a UserSession into a browser's local storage
|
|
19
25
|
* @param clientId oAuth Client Id
|
|
20
26
|
* @param session UserSession
|