@multiversx/sdk-web-wallet-cross-window-provider 0.0.26 → 0.0.27

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.
Files changed (70) hide show
  1. package/out/CrossWindowProvider/CrossWindowProvider.js +113 -36
  2. package/out/CrossWindowProvider/CrossWindowProvider.js.map +1 -1
  3. package/out/CrossWindowProvider/WindowManager.js +172 -0
  4. package/out/CrossWindowProvider/WindowManager.js.map +1 -0
  5. package/out/CrossWindowProvider/index.js +1 -17
  6. package/out/CrossWindowProvider/index.js.map +1 -1
  7. package/out/CrossWindowProvider/tests/Cancel.test.js +7 -9
  8. package/out/CrossWindowProvider/tests/Cancel.test.js.map +1 -1
  9. package/out/CrossWindowProvider/tests/Init.test.js +5 -7
  10. package/out/CrossWindowProvider/tests/Init.test.js.map +1 -1
  11. package/out/CrossWindowProvider/tests/Login.test.js +7 -9
  12. package/out/CrossWindowProvider/tests/Login.test.js.map +1 -1
  13. package/out/CrossWindowProvider/tests/Logout.test.js +8 -10
  14. package/out/CrossWindowProvider/tests/Logout.test.js.map +1 -1
  15. package/out/CrossWindowProvider/tests/SignMessage.test.js +9 -11
  16. package/out/CrossWindowProvider/tests/SignMessage.test.js.map +1 -1
  17. package/out/CrossWindowProvider/tests/SignTransaction.test.js +8 -10
  18. package/out/CrossWindowProvider/tests/SignTransaction.test.js.map +1 -1
  19. package/out/{WindowManager → CrossWindowProvider}/tests/windowManager.test.js +15 -17
  20. package/out/CrossWindowProvider/tests/windowManager.test.js.map +1 -0
  21. package/out/IframeProvider/IframeManager.js +72 -0
  22. package/out/IframeProvider/IframeManager.js.map +1 -0
  23. package/out/IframeProvider/IframeProvider.js +42 -0
  24. package/out/IframeProvider/IframeProvider.js.map +1 -0
  25. package/out/IframeProvider/index.js +2 -0
  26. package/out/IframeProvider/index.js.map +1 -0
  27. package/out/constants.js +11 -14
  28. package/out/constants.js.map +1 -1
  29. package/out/errors.js +12 -30
  30. package/out/errors.js.map +1 -1
  31. package/out/index.js +1 -17
  32. package/out/index.js.map +1 -1
  33. package/out/test-utils/createMockTransaction.js +6 -11
  34. package/out/test-utils/createMockTransaction.js.map +1 -1
  35. package/out/test-utils/getWalletWindowMock.js +1 -5
  36. package/out/test-utils/getWalletWindowMock.js.map +1 -1
  37. package/out/test-utils/index.js +3 -19
  38. package/out/test-utils/index.js.map +1 -1
  39. package/out/test-utils/mockWindowManager.js +2 -6
  40. package/out/test-utils/mockWindowManager.js.map +1 -1
  41. package/out/{CrossWindowProvider → types/CrossWindowProvider}/CrossWindowProvider.d.ts +17 -6
  42. package/out/{WindowManager → types/CrossWindowProvider}/WindowManager.d.ts +8 -2
  43. package/out/types/IframeProvider/IframeManager.d.ts +13 -0
  44. package/out/types/IframeProvider/IframeProvider.d.ts +10 -0
  45. package/out/types/IframeProvider/index.d.ts +1 -0
  46. package/out/{errors.d.ts → types/errors.d.ts} +0 -3
  47. package/out/{types.d.ts → types/types.d.ts} +0 -9
  48. package/out/types.js +6 -9
  49. package/out/types.js.map +1 -1
  50. package/package.json +13 -7
  51. package/out/WindowManager/WindowManager.js +0 -147
  52. package/out/WindowManager/WindowManager.js.map +0 -1
  53. package/out/WindowManager/index.d.ts +0 -1
  54. package/out/WindowManager/index.js +0 -18
  55. package/out/WindowManager/index.js.map +0 -1
  56. package/out/WindowManager/tests/windowManager.test.js.map +0 -1
  57. /package/out/{CrossWindowProvider → types/CrossWindowProvider}/index.d.ts +0 -0
  58. /package/out/{CrossWindowProvider → types/CrossWindowProvider}/tests/Cancel.test.d.ts +0 -0
  59. /package/out/{CrossWindowProvider → types/CrossWindowProvider}/tests/Init.test.d.ts +0 -0
  60. /package/out/{CrossWindowProvider → types/CrossWindowProvider}/tests/Login.test.d.ts +0 -0
  61. /package/out/{CrossWindowProvider → types/CrossWindowProvider}/tests/Logout.test.d.ts +0 -0
  62. /package/out/{CrossWindowProvider → types/CrossWindowProvider}/tests/SignMessage.test.d.ts +0 -0
  63. /package/out/{CrossWindowProvider → types/CrossWindowProvider}/tests/SignTransaction.test.d.ts +0 -0
  64. /package/out/{WindowManager → types/CrossWindowProvider}/tests/windowManager.test.d.ts +0 -0
  65. /package/out/{constants.d.ts → types/constants.d.ts} +0 -0
  66. /package/out/{index.d.ts → types/index.d.ts} +0 -0
  67. /package/out/{test-utils → types/test-utils}/createMockTransaction.d.ts +0 -0
  68. /package/out/{test-utils → types/test-utils}/getWalletWindowMock.d.ts +0 -0
  69. /package/out/{test-utils → types/test-utils}/index.d.ts +0 -0
  70. /package/out/{test-utils → types/test-utils}/mockWindowManager.d.ts +0 -0
@@ -1,20 +1,4 @@
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
- __exportStar(require("./createMockTransaction"), exports);
18
- __exportStar(require("./getWalletWindowMock"), exports);
19
- __exportStar(require("./mockWindowManager"), exports);
1
+ export * from './createMockTransaction';
2
+ export * from './getWalletWindowMock';
3
+ export * from './mockWindowManager';
20
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/test-utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,wDAAsC;AACtC,sDAAoC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/test-utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC"}
@@ -1,11 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mockWindoManager = void 0;
4
- const WindowManager_1 = require("../WindowManager/WindowManager");
5
- const mockWindoManager = () => (WindowManager_1.WindowManager.getInstance = jest.fn().mockReturnValue({
1
+ import { WindowManager } from '../CrossWindowProvider/WindowManager';
2
+ export const mockWindoManager = () => (WindowManager.getInstance = jest.fn().mockReturnValue({
6
3
  init: jest.fn().mockResolvedValue(true),
7
4
  postMessage: jest.fn().mockResolvedValue({ payload: {} }),
8
5
  closeConnection: jest.fn().mockResolvedValue(true)
9
6
  }));
10
- exports.mockWindoManager = mockWindoManager;
11
7
  //# sourceMappingURL=mockWindowManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mockWindowManager.js","sourceRoot":"","sources":["../../src/test-utils/mockWindowManager.ts"],"names":[],"mappings":";;;AAAA,kEAA+D;AAExD,MAAM,gBAAgB,GAAG,GAAG,EAAE,CACnC,CAAC,6BAAa,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IACrD,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC;IACvC,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzD,eAAe,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC;CACnD,CAAC,CAAC,CAAC;AALO,QAAA,gBAAgB,oBAKvB"}
1
+ {"version":3,"file":"mockWindowManager.js","sourceRoot":"","sources":["../../src/test-utils/mockWindowManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE,CACnC,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IACrD,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC;IACvC,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzD,eAAe,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC;CACnD,CAAC,CAAC,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import { SignableMessage, Transaction } from '@multiversx/sdk-core';
2
+ import { IframeManager } from '../IframeProvider/IframeManager';
2
3
  import { CrossWindowProviderRequestEnums } from '../types';
3
- interface ICrossWindowWalletAccount {
4
+ import { WindowManager } from './WindowManager';
5
+ export interface ICrossWindowWalletAccount {
4
6
  address: string;
5
7
  signature?: string;
6
8
  multisig?: string;
@@ -8,11 +10,13 @@ interface ICrossWindowWalletAccount {
8
10
  }
9
11
  export declare class CrossWindowProvider {
10
12
  account: ICrossWindowWalletAccount;
11
- private initialized;
12
- private windowManager;
13
- private static _instance;
13
+ protected initialized: boolean;
14
+ protected windowManager: WindowManager | IframeManager | null;
15
+ protected static _instance: CrossWindowProvider | null;
14
16
  private accessToken;
15
- private constructor();
17
+ protected _shouldShowConsentPopup: boolean;
18
+ setShouldShowConsentPopup(shouldShow: boolean): void;
19
+ constructor();
16
20
  private ensureConnected;
17
21
  private disconnect;
18
22
  static getInstance(): CrossWindowProvider;
@@ -28,8 +32,15 @@ export declare class CrossWindowProvider {
28
32
  isConnected(): Promise<boolean>;
29
33
  signTransaction(transaction: Transaction): Promise<Transaction>;
30
34
  signTransactions(transactions: Transaction[]): Promise<Transaction[]>;
35
+ protected openPopupConsent(action: string): Promise<{
36
+ popupConsentResponse: boolean;
37
+ popup?: undefined;
38
+ } | {
39
+ popup: HTMLOpenPopupNotificationElement;
40
+ popupConsentResponse: unknown;
41
+ }>;
31
42
  guardTransactions(transactions: Transaction[]): Promise<Transaction[]>;
32
43
  signMessage(message: SignableMessage): Promise<SignableMessage>;
33
44
  cancelAction(): Promise<import("../types").PostMessageReturnType<CrossWindowProviderRequestEnums.cancelAction>>;
45
+ clearInstance(): void;
34
46
  }
35
- export {};
@@ -1,13 +1,18 @@
1
1
  import { CrossWindowProviderRequestEnums, CrossWindowProviderResponseEnums, PostMessageParamsType, PostMessageReturnType, ReplyWithPostMessagePayloadType } from '../types';
2
2
  export declare class WindowManager {
3
- private walletUrl;
3
+ protected _walletUrl: string;
4
4
  private initialized;
5
- private static _instance;
5
+ protected static _instance: WindowManager | null;
6
6
  walletWindow: Window | null;
7
7
  constructor();
8
+ get walletUrl(): string;
8
9
  static getInstance(): WindowManager;
9
10
  setWalletUrl(url: string): WindowManager;
10
11
  init(): Promise<boolean>;
12
+ setWalletWindow(): Promise<void>;
13
+ closeWalletWindow(): void;
14
+ onDisconnect(): void;
15
+ isWalletOpened(type?: CrossWindowProviderRequestEnums): boolean;
11
16
  handshake(type: CrossWindowProviderRequestEnums): Promise<boolean>;
12
17
  private addHandshakeChangeListener;
13
18
  listenOnce<T extends CrossWindowProviderResponseEnums>(action: T): Promise<{
@@ -17,4 +22,5 @@ export declare class WindowManager {
17
22
  closeConnection(): Promise<boolean>;
18
23
  isInitialized(): boolean;
19
24
  postMessage<T extends CrossWindowProviderRequestEnums>({ type, payload }: PostMessageParamsType<T>): Promise<PostMessageReturnType<T>>;
25
+ clearInstance(): void;
20
26
  }
@@ -0,0 +1,13 @@
1
+ import { WindowManager } from '../CrossWindowProvider/WindowManager';
2
+ export declare class IframeManager extends WindowManager {
3
+ private floatingWalletComponent?;
4
+ constructor();
5
+ get floatingWallet(): HTMLFloatingWalletElement | undefined;
6
+ static getInstance(): IframeManager;
7
+ setWalletWindow(): Promise<void>;
8
+ closeConnection(): Promise<boolean>;
9
+ isWalletOpened(): boolean;
10
+ closeWalletWindow(): void;
11
+ clearInstance(): void;
12
+ onDisconnect(): void;
13
+ }
@@ -0,0 +1,10 @@
1
+ import { Transaction } from '@multiversx/sdk-core';
2
+ import { CrossWindowProvider } from '../CrossWindowProvider';
3
+ import { IframeManager } from './IframeManager';
4
+ export declare class IframeProvider extends CrossWindowProvider {
5
+ protected windowManager: IframeManager;
6
+ init(): Promise<boolean>;
7
+ static getInstance(): IframeProvider;
8
+ openPopupConsent(_action: string): any;
9
+ signTransactions(transactions: Transaction[]): Promise<Transaction[]>;
10
+ }
@@ -0,0 +1 @@
1
+ export * from './IframeProvider';
@@ -1,6 +1,3 @@
1
- /**
2
- * The base class for exceptions (errors).
3
- */
4
1
  export declare class Err extends Error {
5
2
  inner: Error | undefined;
6
3
  constructor(message: string, inner?: Error);
@@ -31,18 +31,9 @@ export type ReplyWithPostMessageObjectType = {
31
31
  [CrossWindowProviderResponseEnums.loginResponse]: {
32
32
  address: string;
33
33
  accessToken?: string;
34
- /**
35
- * used in De-Fi wallet extension as wallet name
36
- * */
37
34
  name?: string;
38
35
  signature?: string;
39
- /**
40
- * contract address for alternate multisig login
41
- * */
42
36
  multisig?: string;
43
- /**
44
- * custom address for alternate login
45
- * */
46
37
  impersonate?: string;
47
38
  };
48
39
  [CrossWindowProviderResponseEnums.disconnectResponse]: boolean;
package/out/types.js CHANGED
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SignMessageStatusEnum = exports.CrossWindowProviderResponseEnums = exports.CrossWindowProviderRequestEnums = void 0;
4
- var CrossWindowProviderRequestEnums;
1
+ export var CrossWindowProviderRequestEnums;
5
2
  (function (CrossWindowProviderRequestEnums) {
6
3
  CrossWindowProviderRequestEnums["signTransactionsRequest"] = "SIGN_TRANSACTIONS_REQUEST";
7
4
  CrossWindowProviderRequestEnums["guardTransactionsRequest"] = "GUARD_TRANSACTIONS_REQUEST";
@@ -11,8 +8,8 @@ var CrossWindowProviderRequestEnums;
11
8
  CrossWindowProviderRequestEnums["cancelAction"] = "CANCEL_ACTION_REQUEST";
12
9
  CrossWindowProviderRequestEnums["finalizeHandshakeRequest"] = "FINALIZE_HANDSHAKE_REQUEST";
13
10
  CrossWindowProviderRequestEnums["finalizeResetStateRequest"] = "FINALIZE_RESET_STATE_REQUEST";
14
- })(CrossWindowProviderRequestEnums = exports.CrossWindowProviderRequestEnums || (exports.CrossWindowProviderRequestEnums = {}));
15
- var CrossWindowProviderResponseEnums;
11
+ })(CrossWindowProviderRequestEnums || (CrossWindowProviderRequestEnums = {}));
12
+ export var CrossWindowProviderResponseEnums;
16
13
  (function (CrossWindowProviderResponseEnums) {
17
14
  CrossWindowProviderResponseEnums["handshakeResponse"] = "HANDSHAKE_RESPONSE";
18
15
  CrossWindowProviderResponseEnums["guardTransactionsResponse"] = "GUARD_TRANSACTIONS_RESPONSE";
@@ -23,12 +20,12 @@ var CrossWindowProviderResponseEnums;
23
20
  CrossWindowProviderResponseEnums["signMessageResponse"] = "SIGN_MESSAGE_RESPONSE";
24
21
  CrossWindowProviderResponseEnums["noneResponse"] = "NONE_RESPONSE";
25
22
  CrossWindowProviderResponseEnums["resetStateResponse"] = "RESET_STATE_RESPONSE";
26
- })(CrossWindowProviderResponseEnums = exports.CrossWindowProviderResponseEnums || (exports.CrossWindowProviderResponseEnums = {}));
27
- var SignMessageStatusEnum;
23
+ })(CrossWindowProviderResponseEnums || (CrossWindowProviderResponseEnums = {}));
24
+ export var SignMessageStatusEnum;
28
25
  (function (SignMessageStatusEnum) {
29
26
  SignMessageStatusEnum["pending"] = "pending";
30
27
  SignMessageStatusEnum["failed"] = "failed";
31
28
  SignMessageStatusEnum["signed"] = "signed";
32
29
  SignMessageStatusEnum["cancelled"] = "cancelled";
33
- })(SignMessageStatusEnum = exports.SignMessageStatusEnum || (exports.SignMessageStatusEnum = {}));
30
+ })(SignMessageStatusEnum || (SignMessageStatusEnum = {}));
34
31
  //# sourceMappingURL=types.js.map
package/out/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAEA,IAAY,+BASX;AATD,WAAY,+BAA+B;IACzC,wFAAqD,CAAA;IACrD,0FAAuD,CAAA;IACvD,8EAA2C,CAAA;IAC3C,iEAA8B,CAAA;IAC9B,mEAAgC,CAAA;IAChC,yEAAsC,CAAA;IACtC,0FAAuD,CAAA;IACvD,6FAA0D,CAAA;AAC5D,CAAC,EATW,+BAA+B,GAA/B,uCAA+B,KAA/B,uCAA+B,QAS1C;AAED,IAAY,gCAUX;AAVD,WAAY,gCAAgC;IAC1C,4EAAwC,CAAA;IACxC,6FAAyD,CAAA;IACzD,oEAAgC,CAAA;IAChC,8EAA0C,CAAA;IAC1C,sEAAkC,CAAA;IAClC,2FAAuD,CAAA;IACvD,iFAA6C,CAAA;IAC7C,kEAA8B,CAAA;IAC9B,+EAA2C,CAAA;AAC7C,CAAC,EAVW,gCAAgC,GAAhC,wCAAgC,KAAhC,wCAAgC,QAU3C;AAED,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC/B,4CAAmB,CAAA;IACnB,0CAAiB,CAAA;IACjB,0CAAiB,CAAA;IACjB,gDAAuB,CAAA;AACzB,CAAC,EALW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QAKhC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,+BASX;AATD,WAAY,+BAA+B;IACzC,wFAAqD,CAAA;IACrD,0FAAuD,CAAA;IACvD,8EAA2C,CAAA;IAC3C,iEAA8B,CAAA;IAC9B,mEAAgC,CAAA;IAChC,yEAAsC,CAAA;IACtC,0FAAuD,CAAA;IACvD,6FAA0D,CAAA;AAC5D,CAAC,EATW,+BAA+B,KAA/B,+BAA+B,QAS1C;AAED,MAAM,CAAN,IAAY,gCAUX;AAVD,WAAY,gCAAgC;IAC1C,4EAAwC,CAAA;IACxC,6FAAyD,CAAA;IACzD,oEAAgC,CAAA;IAChC,8EAA0C,CAAA;IAC1C,sEAAkC,CAAA;IAClC,2FAAuD,CAAA;IACvD,iFAA6C,CAAA;IAC7C,kEAA8B,CAAA;IAC9B,+EAA2C,CAAA;AAC7C,CAAC,EAVW,gCAAgC,KAAhC,gCAAgC,QAU3C;AAED,MAAM,CAAN,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC/B,4CAAmB,CAAA;IACnB,0CAAiB,CAAA;IACjB,0CAAiB,CAAA;IACjB,gDAAuB,CAAA;AACzB,CAAC,EALW,qBAAqB,KAArB,qBAAqB,QAKhC"}
package/package.json CHANGED
@@ -1,19 +1,24 @@
1
1
  {
2
2
  "name": "@multiversx/sdk-web-wallet-cross-window-provider",
3
- "version": "0.0.26",
3
+ "version": "0.0.27",
4
4
  "description": "Signing provider for dApps: Cross Window",
5
5
  "main": "out/index.js",
6
- "types": "out/index.d.js",
6
+ "module": "out/index.js",
7
+ "types": "out/types/index.d.ts",
8
+ "directories": {
9
+ "lib": "src"
10
+ },
7
11
  "files": [
8
- "out/**/*"
12
+ "out"
9
13
  ],
10
14
  "engines": {
11
15
  "node": ">=18"
12
16
  },
13
17
  "scripts": {
14
- "compile": "tsc -p tsconfig.json",
15
- "pretest": "npm run compile",
16
- "prepare": "npm run compile",
18
+ "build:package": "npm run tsc",
19
+ "tsc": "tsc -p . --outDir ./out",
20
+ "pretest": "npm run build:package",
21
+ "prepare": "npm run build:package",
17
22
  "lint": "eslint --fix --ext js,ts src",
18
23
  "test": "jest"
19
24
  },
@@ -45,6 +50,7 @@
45
50
  "@multiversx/sdk-core": "12.18.0",
46
51
  "@types/jest": "^29.5.11",
47
52
  "@types/qs": "6.9.10",
48
- "qs": "6.11.2"
53
+ "qs": "6.11.2",
54
+ "@multiversx/sdk-dapp-ui": "0.0.2"
49
55
  }
50
56
  }
@@ -1,147 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.WindowManager = void 0;
13
- const constants_1 = require("../constants");
14
- const errors_1 = require("../errors");
15
- const types_1 = require("../types");
16
- class WindowManager {
17
- constructor() {
18
- var _a, _b;
19
- this.walletUrl = '';
20
- this.initialized = false;
21
- this.walletWindow = null;
22
- (_a = constants_1.safeWindow.addEventListener) === null || _a === void 0 ? void 0 : _a.call(constants_1.safeWindow, 'beforeunload', () => {
23
- var _a;
24
- (_a = this.walletWindow) === null || _a === void 0 ? void 0 : _a.close();
25
- });
26
- constants_1.safeWindow.name = (_b = constants_1.safeWindow.location) === null || _b === void 0 ? void 0 : _b.origin;
27
- WindowManager._instance = this; // TODO: remove singleton
28
- }
29
- static getInstance() {
30
- return WindowManager._instance;
31
- }
32
- setWalletUrl(url) {
33
- this.walletUrl = url;
34
- return WindowManager._instance;
35
- }
36
- init() {
37
- return __awaiter(this, void 0, void 0, function* () {
38
- this.initialized = true;
39
- return this.initialized;
40
- });
41
- }
42
- handshake(type) {
43
- var _a, _b, _c, _d;
44
- return __awaiter(this, void 0, void 0, function* () {
45
- const isOpened = type === types_1.CrossWindowProviderRequestEnums.cancelAction &&
46
- Boolean(this.walletWindow);
47
- if (isOpened) {
48
- return true;
49
- }
50
- (_a = this.walletWindow) === null || _a === void 0 ? void 0 : _a.close();
51
- this.walletWindow =
52
- (_c = (_b = constants_1.safeWindow.open) === null || _b === void 0 ? void 0 : _b.call(constants_1.safeWindow, this.walletUrl, this.walletUrl)) !== null && _c !== void 0 ? _c : null;
53
- const { payload: isWalletReady } = yield this.listenOnce(types_1.CrossWindowProviderResponseEnums.handshakeResponse);
54
- if (!isWalletReady) {
55
- throw new errors_1.ErrCannotEstablishHandshake();
56
- }
57
- (_d = this.walletWindow) === null || _d === void 0 ? void 0 : _d.postMessage({
58
- type: types_1.CrossWindowProviderRequestEnums.finalizeHandshakeRequest
59
- }, this.walletUrl);
60
- this.addHandshakeChangeListener();
61
- return true;
62
- });
63
- }
64
- addHandshakeChangeListener() {
65
- var _a;
66
- return __awaiter(this, void 0, void 0, function* () {
67
- const walletUrl = this.walletUrl;
68
- const eventHandler = (event) => {
69
- var _a, _b;
70
- try {
71
- const { type, payload } = event.data;
72
- const isWalletEvent = event.origin === new URL(walletUrl).origin;
73
- if (!isWalletEvent) {
74
- return;
75
- }
76
- switch (type) {
77
- case types_1.CrossWindowProviderResponseEnums.handshakeResponse:
78
- if (payload === false) {
79
- (_a = this.walletWindow) === null || _a === void 0 ? void 0 : _a.close();
80
- this.walletWindow = null;
81
- (_b = constants_1.safeWindow.removeEventListener) === null || _b === void 0 ? void 0 : _b.call(constants_1.safeWindow, 'message', eventHandler);
82
- }
83
- break;
84
- }
85
- }
86
- catch (_c) { }
87
- };
88
- (_a = constants_1.safeWindow.addEventListener) === null || _a === void 0 ? void 0 : _a.call(constants_1.safeWindow, 'message', eventHandler);
89
- });
90
- }
91
- listenOnce(action) {
92
- return __awaiter(this, void 0, void 0, function* () {
93
- if (!this.walletWindow) {
94
- throw new errors_1.ErrWalletWindowNotInstantiated();
95
- }
96
- return yield new Promise((resolve) => {
97
- var _a;
98
- const walletUrl = this.walletUrl;
99
- (_a = constants_1.safeWindow.addEventListener) === null || _a === void 0 ? void 0 : _a.call(constants_1.safeWindow, 'message', function eventHandler(event) {
100
- var _a;
101
- return __awaiter(this, void 0, void 0, function* () {
102
- const { type, payload } = event.data;
103
- const isWalletEvent = event.origin === new URL(walletUrl).origin;
104
- const isCurrentAction = action === type ||
105
- type === types_1.CrossWindowProviderResponseEnums.cancelResponse;
106
- if (!isCurrentAction || !isWalletEvent) {
107
- return;
108
- }
109
- (_a = constants_1.safeWindow.removeEventListener) === null || _a === void 0 ? void 0 : _a.call(constants_1.safeWindow, 'message', eventHandler);
110
- resolve({ type, payload });
111
- });
112
- });
113
- });
114
- });
115
- }
116
- closeConnection() {
117
- return __awaiter(this, void 0, void 0, function* () {
118
- if (!this.initialized) {
119
- throw new errors_1.ErrProviderNotInitialized();
120
- }
121
- yield this.postMessage({
122
- type: types_1.CrossWindowProviderRequestEnums.logoutRequest,
123
- payload: undefined
124
- });
125
- return true;
126
- });
127
- }
128
- isInitialized() {
129
- return this.initialized;
130
- }
131
- postMessage({ type, payload }) {
132
- var _a, _b;
133
- return __awaiter(this, void 0, void 0, function* () {
134
- yield this.handshake(type);
135
- (_a = this.walletWindow) === null || _a === void 0 ? void 0 : _a.postMessage({
136
- type,
137
- payload
138
- }, this.walletUrl);
139
- const data = yield this.listenOnce(constants_1.responseTypeMap[type]);
140
- (_b = this.walletWindow) === null || _b === void 0 ? void 0 : _b.close();
141
- return data;
142
- });
143
- }
144
- }
145
- WindowManager._instance = new WindowManager();
146
- exports.WindowManager = WindowManager;
147
- //# sourceMappingURL=WindowManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WindowManager.js","sourceRoot":"","sources":["../../src/WindowManager/WindowManager.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export * from './WindowManager';
@@ -1,18 +0,0 @@
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
- __exportStar(require("./WindowManager"), exports);
18
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/WindowManager/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"windowManager.test.js","sourceRoot":"","sources":["../../../src/WindowManager/tests/windowManager.test.ts"],"names":[],"mappings":"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"}
File without changes
File without changes
File without changes