@multiversx/sdk-web-wallet-cross-window-provider 3.1.0 → 3.1.1
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.
|
@@ -6,9 +6,13 @@ export declare class WindowManager {
|
|
|
6
6
|
protected initialized: boolean;
|
|
7
7
|
walletWindow: Window | null;
|
|
8
8
|
private activeListeners;
|
|
9
|
+
private static readonly SESSION_STORAGE_KEY;
|
|
9
10
|
constructor();
|
|
10
11
|
get walletUrl(): string;
|
|
11
12
|
setWalletUrl(url: string): WindowManager;
|
|
13
|
+
private _loadSessionFromStorage;
|
|
14
|
+
private _saveSessionToStorage;
|
|
15
|
+
private _clearSessionFromStorage;
|
|
12
16
|
init(): Promise<boolean>;
|
|
13
17
|
onDestroy(): boolean;
|
|
14
18
|
isWalletOpened(type?: WindowProviderRequestEnums): boolean;
|
|
@@ -25,6 +25,7 @@ class WindowManager {
|
|
|
25
25
|
this.closeWalletWindow();
|
|
26
26
|
});
|
|
27
27
|
constants_1.safeWindow.name = (_b = constants_1.safeWindow.location) === null || _b === void 0 ? void 0 : _b.origin;
|
|
28
|
+
this._loadSessionFromStorage();
|
|
28
29
|
}
|
|
29
30
|
get walletUrl() {
|
|
30
31
|
return this._walletUrl;
|
|
@@ -33,6 +34,36 @@ class WindowManager {
|
|
|
33
34
|
this._walletUrl = url;
|
|
34
35
|
return this;
|
|
35
36
|
}
|
|
37
|
+
_loadSessionFromStorage() {
|
|
38
|
+
var _a;
|
|
39
|
+
try {
|
|
40
|
+
const storedSession = (_a = constants_1.safeWindow.sessionStorage) === null || _a === void 0 ? void 0 : _a.getItem(WindowManager.SESSION_STORAGE_KEY);
|
|
41
|
+
if (storedSession) {
|
|
42
|
+
this._session = storedSession;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
console.warn('Failed to load session from sessionStorage:', error);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
_saveSessionToStorage(sessionId) {
|
|
50
|
+
var _a;
|
|
51
|
+
try {
|
|
52
|
+
(_a = constants_1.safeWindow.sessionStorage) === null || _a === void 0 ? void 0 : _a.setItem(WindowManager.SESSION_STORAGE_KEY, sessionId);
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
console.warn('Failed to save session to sessionStorage:', error);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
_clearSessionFromStorage() {
|
|
59
|
+
var _a;
|
|
60
|
+
try {
|
|
61
|
+
(_a = constants_1.safeWindow.sessionStorage) === null || _a === void 0 ? void 0 : _a.removeItem(WindowManager.SESSION_STORAGE_KEY);
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
console.warn('Failed to clear session from sessionStorage:', error);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
36
67
|
init() {
|
|
37
68
|
return __awaiter(this, void 0, void 0, function* () {
|
|
38
69
|
this.initialized = typeof window !== 'undefined';
|
|
@@ -60,7 +91,10 @@ class WindowManager {
|
|
|
60
91
|
if (!payload) {
|
|
61
92
|
throw new errors_1.ErrCannotEstablishHandshake();
|
|
62
93
|
}
|
|
63
|
-
|
|
94
|
+
const receivedSession = typeof payload === 'string' ? payload : payload.data;
|
|
95
|
+
this._session = this._session || receivedSession || Date.now().toString();
|
|
96
|
+
// Save the current session in sessionStorage to preserve it across page reloads
|
|
97
|
+
this._saveSessionToStorage(this._session);
|
|
64
98
|
(_a = this.walletWindow) === null || _a === void 0 ? void 0 : _a.postMessage({
|
|
65
99
|
type: enums_1.WindowProviderRequestEnums.finalizeHandshakeRequest,
|
|
66
100
|
payload: this._session
|
|
@@ -92,6 +126,7 @@ class WindowManager {
|
|
|
92
126
|
// Save the current session and send it in later handshake requests
|
|
93
127
|
if (typeof payload === 'string') {
|
|
94
128
|
this._session = payload;
|
|
129
|
+
this._saveSessionToStorage(this._session);
|
|
95
130
|
}
|
|
96
131
|
break;
|
|
97
132
|
}
|
|
@@ -145,6 +180,7 @@ class WindowManager {
|
|
|
145
180
|
});
|
|
146
181
|
// Reset the session on logout
|
|
147
182
|
this._session = Date.now().toString();
|
|
183
|
+
this._clearSessionFromStorage();
|
|
148
184
|
this.initialized = false;
|
|
149
185
|
return true;
|
|
150
186
|
});
|
|
@@ -177,5 +213,6 @@ class WindowManager {
|
|
|
177
213
|
});
|
|
178
214
|
}
|
|
179
215
|
}
|
|
216
|
+
WindowManager.SESSION_STORAGE_KEY = 'mx-wallet-session-id';
|
|
180
217
|
exports.WindowManager = WindowManager;
|
|
181
218
|
//# sourceMappingURL=WindowManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WindowManager.js","sourceRoot":"","sources":["../../src/WindowManager/WindowManager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAA2D;AAC3D,oCAGkB;AAClB,sCAImB;AAQnB,MAAa,aAAa;
|
|
1
|
+
{"version":3,"file":"WindowManager.js","sourceRoot":"","sources":["../../src/WindowManager/WindowManager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAA2D;AAC3D,oCAGkB;AAClB,sCAImB;AAQnB,MAAa,aAAa;IASxB;;QARQ,aAAQ,GAAG,EAAE,CAAC;QACd,eAAU,GAAG,EAAE,CAAC;QACd,gBAAW,GAAG,KAAK,CAAC;QACvB,iBAAY,GAAkB,IAAI,CAAC;QAClC,oBAAe,GACrB,IAAI,GAAG,EAAE,CAAC;QAIV,MAAA,sBAAU,CAAC,gBAAgB,uEAAG,cAAc,EAAE,GAAG,EAAE;YACjD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,sBAAU,CAAC,IAAI,GAAG,MAAA,sBAAU,CAAC,QAAQ,0CAAE,MAAM,CAAC;QAC9C,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAEM,YAAY,CAAC,GAAW;QAC7B,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,uBAAuB;;QAC7B,IAAI;YACF,MAAM,aAAa,GAAG,MAAA,sBAAU,CAAC,cAAc,0CAAE,OAAO,CACtD,aAAa,CAAC,mBAAmB,CAClC,CAAC;YACF,IAAI,aAAa,EAAE;gBACjB,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;aAC/B;SACF;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,IAAI,CAAC,6CAA6C,EAAE,KAAK,CAAC,CAAC;SACpE;IACH,CAAC;IAEO,qBAAqB,CAAC,SAAiB;;QAC7C,IAAI;YACF,MAAA,sBAAU,CAAC,cAAc,0CAAE,OAAO,CAChC,aAAa,CAAC,mBAAmB,EACjC,SAAS,CACV,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,IAAI,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;SAClE;IACH,CAAC;IAEO,wBAAwB;;QAC9B,IAAI;YACF,MAAA,sBAAU,CAAC,cAAc,0CAAE,UAAU,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;SAC1E;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,IAAI,CAAC,8CAA8C,EAAE,KAAK,CAAC,CAAC;SACrE;IACH,CAAC;IAEK,IAAI;;YACR,IAAI,CAAC,WAAW,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;YACjD,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;KAAA;IAED,SAAS;QACP,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEM,cAAc,CAAC,IAAiC;QACrD,OAAO,CACL,IAAI,KAAK,kCAA0B,CAAC,YAAY;YAChD,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAC3B,CAAC;IACJ,CAAC;IAEK,SAAS,CAAC,IAAgC;;;YAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAE3C,IAAI,QAAQ,EAAE;gBACZ,OAAO,IAAI,CAAC;aACb;YAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAE7B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CACvC,mCAA2B,CAAC,iBAAiB,CAC9C,CAAC;YAEF,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,IAAI,oCAA2B,EAAE,CAAC;aACzC;YAED,MAAM,eAAe,GACnB,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;YAEvD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,eAAe,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;YAC1E,gFAAgF;YAChF,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE1C,MAAA,IAAI,CAAC,YAAY,0CAAE,WAAW,CAC5B;gBACE,IAAI,EAAE,kCAA0B,CAAC,wBAAwB;gBACzD,OAAO,EAAE,IAAI,CAAC,QAAQ;aACvB,EACD,IAAI,CAAC,SAAS,CACf,CAAC;YAEF,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;;KACb;IAEa,0BAA0B;;;YACtC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAEjC,MAAM,YAAY,GAAG,CACnB,KAAkD,EAClD,EAAE;;gBACF,IAAI;oBACF,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;oBACrC,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,KAAK,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;oBAEjE,IAAI,CAAC,aAAa,EAAE;wBAClB,OAAO;qBACR;oBAED,QAAQ,IAAI,EAAE;wBACZ,KAAK,mCAA2B,CAAC,iBAAiB;4BAChD,IAAI,OAAO,KAAK,EAAE,EAAE;gCAClB,MAAA,IAAI,CAAC,YAAY,0CAAE,KAAK,EAAE,CAAC;gCAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gCACzB,MAAA,sBAAU,CAAC,mBAAmB,uEAAG,SAAS,EAAE,YAAY,CAAC,CAAC;gCAC1D,MAAM;6BACP;4BAED,mEAAmE;4BACnE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gCAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;gCACxB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;6BAC3C;4BAED,MAAM;qBACT;iBACF;gBAAC,OAAO,CAAC,EAAE;oBACV,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;iBAC9C;YACH,CAAC,CAAC;YAEF,MAAA,sBAAU,CAAC,gBAAgB,uEAAG,SAAS,EAAE,YAAY,CAAC,CAAC;;KACxD;IAEK,UAAU,CACd,MAAS;;YAKT,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;gBACtB,MAAM,IAAI,mCAA0B,EAAE,CAAC;aACxC;YAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAEjC,kDAAkD;gBAClD,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;oBACpC,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACzD,IAAI,eAAe,EAAE;wBACnB,sBAAU,CAAC,mBAAmB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;qBAC5D;iBACF;gBAED,MAAM,YAAY,GAAG,CACnB,KAGE,EACF,EAAE;oBACF,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;oBACrC,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,KAAK,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;oBAEjE,MAAM,eAAe,GACnB,MAAM,KAAK,IAAI;wBACf,IAAI,KAAK,mCAA2B,CAAC,cAAc,CAAC;oBAEtD,IAAI,CAAC,eAAe,IAAI,CAAC,aAAa,EAAE;wBACtC,OAAO;qBACR;oBAED,sBAAU,CAAC,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;oBACxD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAEpC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC7B,CAAC,CAAC;gBAEF,sBAAU,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;gBACrD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAEK,eAAe;;YACnB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACrB,MAAM,IAAI,kCAAyB,EAAE,CAAC;aACvC;YAED,MAAM,IAAI,CAAC,WAAW,CAAC;gBACrB,IAAI,EAAE,kCAA0B,CAAC,aAAa;gBAC9C,OAAO,EAAE,SAAS;aACnB,CAAC,CAAC;YAEH,8BAA8B;YAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YAEzB,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAED,aAAa;QACX,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEK,WAAW,CAAuC,EACtD,IAAI,EACJ,OAAO,EACkB;;;YACzB,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAE3B,MAAA,IAAI,CAAC,YAAY,0CAAE,WAAW,CAC5B;gBACE,IAAI;gBACJ,OAAO;aACR,EACD,IAAI,CAAC,SAAS,CACf,CAAC;YAEF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,2BAAe,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1D,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAEzB,OAAO,IAAI,CAAC;;KACb;IAEM,iBAAiB;;QACtB,MAAA,IAAI,CAAC,YAAY,0CAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;IAEY,eAAe;;;YAC1B,IAAI,CAAC,YAAY;gBACf,MAAA,MAAA,sBAAU,CAAC,IAAI,uEAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,mCAAI,IAAI,CAAC;;KAC7D;;AAnPuB,iCAAmB,GAAG,sBAAsB,AAAzB,CAA0B;AAP1D,sCAAa"}
|
|
@@ -68,7 +68,7 @@ export type RequestPayloadType = {
|
|
|
68
68
|
};
|
|
69
69
|
[WindowProviderRequestEnums.cancelAction]: undefined;
|
|
70
70
|
[WindowProviderRequestEnums.finalizeHandshakeRequest]: string;
|
|
71
|
-
[WindowProviderRequestEnums.finalizeResetStateRequest]: undefined;
|
|
71
|
+
[WindowProviderRequestEnums.finalizeResetStateRequest]: string | undefined;
|
|
72
72
|
};
|
|
73
73
|
export type RequestMessageType = {
|
|
74
74
|
[K in keyof RequestPayloadType]: {
|