@metamask/connect-multichain 0.1.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/CHANGELOG.md +17 -0
- package/LICENSE +20 -0
- package/README.md +15 -0
- package/dist/browser/es/connect-multichain.d.mts +585 -0
- package/dist/browser/es/connect-multichain.mjs +2609 -0
- package/dist/browser/es/connect-multichain.mjs.map +1 -0
- package/dist/browser/es/metafile-esm.json +1 -0
- package/dist/browser/iife/connect-multichain.d.ts +585 -0
- package/dist/browser/iife/connect-multichain.js +30057 -0
- package/dist/browser/iife/connect-multichain.js.map +1 -0
- package/dist/browser/iife/metafile-iife.json +1 -0
- package/dist/browser/umd/connect-multichain.d.ts +585 -0
- package/dist/browser/umd/connect-multichain.js +2622 -0
- package/dist/browser/umd/connect-multichain.js.map +1 -0
- package/dist/browser/umd/metafile-cjs.json +1 -0
- package/dist/node/cjs/connect-multichain.d.ts +585 -0
- package/dist/node/cjs/connect-multichain.js +2603 -0
- package/dist/node/cjs/connect-multichain.js.map +1 -0
- package/dist/node/cjs/metafile-cjs.json +1 -0
- package/dist/node/es/connect-multichain.d.mts +585 -0
- package/dist/node/es/connect-multichain.mjs +2564 -0
- package/dist/node/es/connect-multichain.mjs.map +1 -0
- package/dist/node/es/metafile-esm.json +1 -0
- package/dist/react-native/es/connect-multichain.d.mts +585 -0
- package/dist/react-native/es/connect-multichain.mjs +2517 -0
- package/dist/react-native/es/connect-multichain.mjs.map +1 -0
- package/dist/react-native/es/metafile-esm.json +1 -0
- package/dist/src/config/index.d.ts +4 -0
- package/dist/src/config/index.d.ts.map +1 -0
- package/dist/src/config/index.js +4 -0
- package/dist/src/config/index.js.map +1 -0
- package/dist/src/domain/errors/base.d.ts +7 -0
- package/dist/src/domain/errors/base.d.ts.map +1 -0
- package/dist/src/domain/errors/base.js +8 -0
- package/dist/src/domain/errors/base.js.map +1 -0
- package/dist/src/domain/errors/index.d.ts +3 -0
- package/dist/src/domain/errors/index.d.ts.map +1 -0
- package/dist/src/domain/errors/index.js +2 -0
- package/dist/src/domain/errors/index.js.map +1 -0
- package/dist/src/domain/errors/rpc.d.ts +25 -0
- package/dist/src/domain/errors/rpc.d.ts.map +1 -0
- package/dist/src/domain/errors/rpc.js +33 -0
- package/dist/src/domain/errors/rpc.js.map +1 -0
- package/dist/src/domain/errors/storage.d.ts +24 -0
- package/dist/src/domain/errors/storage.d.ts.map +1 -0
- package/dist/src/domain/errors/storage.js +30 -0
- package/dist/src/domain/errors/storage.js.map +1 -0
- package/dist/src/domain/errors/types.d.ts +7 -0
- package/dist/src/domain/errors/types.d.ts.map +1 -0
- package/dist/src/domain/errors/types.js +2 -0
- package/dist/src/domain/errors/types.js.map +1 -0
- package/dist/src/domain/events/index.d.ts +39 -0
- package/dist/src/domain/events/index.d.ts.map +1 -0
- package/dist/src/domain/events/index.js +58 -0
- package/dist/src/domain/events/index.js.map +1 -0
- package/dist/src/domain/events/types/index.d.ts +8 -0
- package/dist/src/domain/events/types/index.d.ts.map +1 -0
- package/dist/src/domain/events/types/index.js +2 -0
- package/dist/src/domain/events/types/index.js.map +1 -0
- package/dist/src/domain/index.d.ts +9 -0
- package/dist/src/domain/index.d.ts.map +1 -0
- package/dist/src/domain/index.js +9 -0
- package/dist/src/domain/index.js.map +1 -0
- package/dist/src/domain/logger/index.d.ts +41 -0
- package/dist/src/domain/logger/index.d.ts.map +1 -0
- package/dist/src/domain/logger/index.js +79 -0
- package/dist/src/domain/logger/index.js.map +1 -0
- package/dist/src/domain/multichain/api/constants.d.ts +5 -0
- package/dist/src/domain/multichain/api/constants.d.ts.map +1 -0
- package/dist/src/domain/multichain/api/constants.js +101 -0
- package/dist/src/domain/multichain/api/constants.js.map +1 -0
- package/dist/src/domain/multichain/api/eip155.d.ts +58 -0
- package/dist/src/domain/multichain/api/eip155.d.ts.map +1 -0
- package/dist/src/domain/multichain/api/eip155.js +2 -0
- package/dist/src/domain/multichain/api/eip155.js.map +1 -0
- package/dist/src/domain/multichain/api/infura.d.ts +3 -0
- package/dist/src/domain/multichain/api/infura.d.ts.map +1 -0
- package/dist/src/domain/multichain/api/infura.js +10 -0
- package/dist/src/domain/multichain/api/infura.js.map +1 -0
- package/dist/src/domain/multichain/api/types.d.ts +89 -0
- package/dist/src/domain/multichain/api/types.d.ts.map +1 -0
- package/dist/src/domain/multichain/api/types.js +2 -0
- package/dist/src/domain/multichain/api/types.js.map +1 -0
- package/dist/src/domain/multichain/index.d.ts +51 -0
- package/dist/src/domain/multichain/index.d.ts.map +1 -0
- package/dist/src/domain/multichain/index.js +33 -0
- package/dist/src/domain/multichain/index.js.map +1 -0
- package/dist/src/domain/multichain/types.d.ts +102 -0
- package/dist/src/domain/multichain/types.d.ts.map +1 -0
- package/dist/src/domain/multichain/types.js +2 -0
- package/dist/src/domain/multichain/types.js.map +1 -0
- package/dist/src/domain/platform/index.d.ts +17 -0
- package/dist/src/domain/platform/index.d.ts.map +1 -0
- package/dist/src/domain/platform/index.js +122 -0
- package/dist/src/domain/platform/index.js.map +1 -0
- package/dist/src/domain/store/adapter.d.ts +10 -0
- package/dist/src/domain/store/adapter.d.ts.map +1 -0
- package/dist/src/domain/store/adapter.js +6 -0
- package/dist/src/domain/store/adapter.js.map +1 -0
- package/dist/src/domain/store/client.d.ts +16 -0
- package/dist/src/domain/store/client.d.ts.map +1 -0
- package/dist/src/domain/store/client.js +3 -0
- package/dist/src/domain/store/client.js.map +1 -0
- package/dist/src/domain/store/index.d.ts +3 -0
- package/dist/src/domain/store/index.d.ts.map +1 -0
- package/dist/src/domain/store/index.js +3 -0
- package/dist/src/domain/store/index.js.map +1 -0
- package/dist/src/domain/ui/factory.d.ts +26 -0
- package/dist/src/domain/ui/factory.d.ts.map +1 -0
- package/dist/src/domain/ui/factory.js +2 -0
- package/dist/src/domain/ui/factory.js.map +1 -0
- package/dist/src/domain/ui/index.d.ts +3 -0
- package/dist/src/domain/ui/index.d.ts.map +1 -0
- package/dist/src/domain/ui/index.js +2 -0
- package/dist/src/domain/ui/index.js.map +1 -0
- package/dist/src/domain/ui/types.d.ts +34 -0
- package/dist/src/domain/ui/types.d.ts.map +1 -0
- package/dist/src/domain/ui/types.js +38 -0
- package/dist/src/domain/ui/types.js.map +1 -0
- package/dist/src/domain/utils/index.d.ts +7 -0
- package/dist/src/domain/utils/index.d.ts.map +1 -0
- package/dist/src/domain/utils/index.js +9 -0
- package/dist/src/domain/utils/index.js.map +1 -0
- package/dist/src/index.browser.d.ts +4 -0
- package/dist/src/index.browser.d.ts.map +1 -0
- package/dist/src/index.browser.js +28 -0
- package/dist/src/index.browser.js.map +1 -0
- package/dist/src/index.native.d.ts +4 -0
- package/dist/src/index.native.d.ts.map +1 -0
- package/dist/src/index.native.js +28 -0
- package/dist/src/index.native.js.map +1 -0
- package/dist/src/index.node.d.ts +4 -0
- package/dist/src/index.node.d.ts.map +1 -0
- package/dist/src/index.node.js +28 -0
- package/dist/src/index.node.js.map +1 -0
- package/dist/src/multichain/index.d.ts +41 -0
- package/dist/src/multichain/index.d.ts.map +1 -0
- package/dist/src/multichain/index.js +499 -0
- package/dist/src/multichain/index.js.map +1 -0
- package/dist/src/multichain/rpc/handlers/rpcClient.d.ts +19 -0
- package/dist/src/multichain/rpc/handlers/rpcClient.d.ts.map +1 -0
- package/dist/src/multichain/rpc/handlers/rpcClient.js +105 -0
- package/dist/src/multichain/rpc/handlers/rpcClient.js.map +1 -0
- package/dist/src/multichain/rpc/requestRouter.d.ts +29 -0
- package/dist/src/multichain/rpc/requestRouter.d.ts.map +1 -0
- package/dist/src/multichain/rpc/requestRouter.js +104 -0
- package/dist/src/multichain/rpc/requestRouter.js.map +1 -0
- package/dist/src/multichain/transports/default/index.d.ts +17 -0
- package/dist/src/multichain/transports/default/index.d.ts.map +1 -0
- package/dist/src/multichain/transports/default/index.js +101 -0
- package/dist/src/multichain/transports/default/index.js.map +1 -0
- package/dist/src/multichain/transports/mwp/KeyManager.d.ts +9 -0
- package/dist/src/multichain/transports/mwp/KeyManager.d.ts.map +1 -0
- package/dist/src/multichain/transports/mwp/KeyManager.js +35 -0
- package/dist/src/multichain/transports/mwp/KeyManager.js.map +1 -0
- package/dist/src/multichain/transports/mwp/index.d.ts +65 -0
- package/dist/src/multichain/transports/mwp/index.d.ts.map +1 -0
- package/dist/src/multichain/transports/mwp/index.js +323 -0
- package/dist/src/multichain/transports/mwp/index.js.map +1 -0
- package/dist/src/multichain/utils/index.d.ts +41 -0
- package/dist/src/multichain/utils/index.d.ts.map +1 -0
- package/dist/src/multichain/utils/index.js +239 -0
- package/dist/src/multichain/utils/index.js.map +1 -0
- package/dist/src/store/adapters/node.d.ts +9 -0
- package/dist/src/store/adapters/node.d.ts.map +1 -0
- package/dist/src/store/adapters/node.js +34 -0
- package/dist/src/store/adapters/node.js.map +1 -0
- package/dist/src/store/adapters/rn.d.ts +8 -0
- package/dist/src/store/adapters/rn.d.ts.map +1 -0
- package/dist/src/store/adapters/rn.js +33 -0
- package/dist/src/store/adapters/rn.js.map +1 -0
- package/dist/src/store/adapters/web.d.ts +16 -0
- package/dist/src/store/adapters/web.d.ts.map +1 -0
- package/dist/src/store/adapters/web.js +99 -0
- package/dist/src/store/adapters/web.js.map +1 -0
- package/dist/src/store/index.d.ts +17 -0
- package/dist/src/store/index.d.ts.map +1 -0
- package/dist/src/store/index.js +130 -0
- package/dist/src/store/index.js.map +1 -0
- package/dist/src/ui/index.d.ts +45 -0
- package/dist/src/ui/index.d.ts.map +1 -0
- package/dist/src/ui/index.js +185 -0
- package/dist/src/ui/index.js.map +1 -0
- package/dist/src/ui/modals/base/AbstractInstallModal.d.ts +16 -0
- package/dist/src/ui/modals/base/AbstractInstallModal.d.ts.map +1 -0
- package/dist/src/ui/modals/base/AbstractInstallModal.js +90 -0
- package/dist/src/ui/modals/base/AbstractInstallModal.js.map +1 -0
- package/dist/src/ui/modals/base/AbstractOTPModal.d.ts +8 -0
- package/dist/src/ui/modals/base/AbstractOTPModal.d.ts.map +1 -0
- package/dist/src/ui/modals/base/AbstractOTPModal.js +16 -0
- package/dist/src/ui/modals/base/AbstractOTPModal.js.map +1 -0
- package/dist/src/ui/modals/base/utils.d.ts +3 -0
- package/dist/src/ui/modals/base/utils.d.ts.map +1 -0
- package/dist/src/ui/modals/base/utils.js +30 -0
- package/dist/src/ui/modals/base/utils.js.map +1 -0
- package/dist/src/ui/modals/node/index.d.ts +3 -0
- package/dist/src/ui/modals/node/index.d.ts.map +1 -0
- package/dist/src/ui/modals/node/index.js +3 -0
- package/dist/src/ui/modals/node/index.js.map +1 -0
- package/dist/src/ui/modals/node/install.d.ts +9 -0
- package/dist/src/ui/modals/node/install.d.ts.map +1 -0
- package/dist/src/ui/modals/node/install.js +47 -0
- package/dist/src/ui/modals/node/install.js.map +1 -0
- package/dist/src/ui/modals/node/otp.d.ts +10 -0
- package/dist/src/ui/modals/node/otp.d.ts.map +1 -0
- package/dist/src/ui/modals/node/otp.js +10 -0
- package/dist/src/ui/modals/node/otp.js.map +1 -0
- package/dist/src/ui/modals/rn/index.d.ts +3 -0
- package/dist/src/ui/modals/rn/index.d.ts.map +1 -0
- package/dist/src/ui/modals/rn/index.js +3 -0
- package/dist/src/ui/modals/rn/index.js.map +1 -0
- package/dist/src/ui/modals/rn/install.d.ts +7 -0
- package/dist/src/ui/modals/rn/install.d.ts.map +1 -0
- package/dist/src/ui/modals/rn/install.js +9 -0
- package/dist/src/ui/modals/rn/install.js.map +1 -0
- package/dist/src/ui/modals/rn/otp.d.ts +10 -0
- package/dist/src/ui/modals/rn/otp.d.ts.map +1 -0
- package/dist/src/ui/modals/rn/otp.js +10 -0
- package/dist/src/ui/modals/rn/otp.js.map +1 -0
- package/dist/src/ui/modals/types.d.ts +13 -0
- package/dist/src/ui/modals/types.d.ts.map +1 -0
- package/dist/src/ui/modals/types.js +2 -0
- package/dist/src/ui/modals/types.js.map +1 -0
- package/dist/src/ui/modals/web/index.d.ts +3 -0
- package/dist/src/ui/modals/web/index.d.ts.map +1 -0
- package/dist/src/ui/modals/web/index.js +3 -0
- package/dist/src/ui/modals/web/index.js.map +1 -0
- package/dist/src/ui/modals/web/install.d.ts +7 -0
- package/dist/src/ui/modals/web/install.d.ts.map +1 -0
- package/dist/src/ui/modals/web/install.js +32 -0
- package/dist/src/ui/modals/web/install.js.map +1 -0
- package/dist/src/ui/modals/web/otp.d.ts +10 -0
- package/dist/src/ui/modals/web/otp.d.ts.map +1 -0
- package/dist/src/ui/modals/web/otp.js +10 -0
- package/dist/src/ui/modals/web/otp.js.map +1 -0
- package/dist/src/ui/qr.d.ts +3 -0
- package/dist/src/ui/qr.d.ts.map +1 -0
- package/dist/src/ui/qr.js +32 -0
- package/dist/src/ui/qr.js.map +1 -0
- package/dist/types/connect-multichain.d.ts +585 -0
- package/package.json +111 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AbstractInstallModal.d.ts","sourceRoot":"","sources":["../../../../../src/ui/modals/base/AbstractInstallModal.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EAEtB,KAAK,kBAAkB,EACvB,KAAK,EACL,KAAK,MAAM,EACZ,MAAM,iBAAiB,CAAC;AAKzB,8BAAsB,oBAAqB,SAAQ,KAAK,CACtD,kBAAkB,EAClB,MAAM,CACP;IACC,SAAS,CAAC,QAAQ,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;IAC3D,OAAO,CAAC,kBAAkB,CAA+B;IACzD,OAAO,CAAC,mBAAmB,CAAc;IAEzC,QAAQ,CAAC,YAAY,CACnB,IAAI,EAAE,MAAM,EACZ,iBAAiB,EAAE,iBAAiB,GACnC,IAAI;IAEP,IAAI,IAAI,IAIO,MAAM,CAFpB;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,EAEpB;IAED,IAAI,iBAAiB,IAIoB,iBAAiB,CAFzD;IAED,IAAI,iBAAiB,CAAC,iBAAiB,EAAE,iBAAiB,EAEzD;IAED,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM;IAOjC,SAAS,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM;IAM3C,SAAS,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,iBAAiB;IA0DnE,SAAS,CAAC,mBAAmB;CAS9B"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { createLogger, Modal, } from '../../../domain';
|
|
11
|
+
import { formatRemainingTime, shouldLogCountdown } from './utils';
|
|
12
|
+
const logger = createLogger('metamask-sdk:ui');
|
|
13
|
+
export class AbstractInstallModal extends Modal {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments);
|
|
16
|
+
this.expirationInterval = null;
|
|
17
|
+
this.lastLoggedCountdown = -1;
|
|
18
|
+
}
|
|
19
|
+
get link() {
|
|
20
|
+
return this.data;
|
|
21
|
+
}
|
|
22
|
+
set link(link) {
|
|
23
|
+
this.data = link;
|
|
24
|
+
}
|
|
25
|
+
get connectionRequest() {
|
|
26
|
+
return this.options.connectionRequest;
|
|
27
|
+
}
|
|
28
|
+
set connectionRequest(connectionRequest) {
|
|
29
|
+
this.options.connectionRequest = connectionRequest;
|
|
30
|
+
}
|
|
31
|
+
updateLink(link) {
|
|
32
|
+
this.link = link;
|
|
33
|
+
if (this.instance) {
|
|
34
|
+
this.instance.link = link;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
updateExpiresIn(expiresIn) {
|
|
38
|
+
if (expiresIn >= 0 && this.instance) {
|
|
39
|
+
this.instance.expiresIn = expiresIn;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
startExpirationCheck(connectionRequest) {
|
|
43
|
+
this.stopExpirationCheck();
|
|
44
|
+
let currentConnectionRequest = connectionRequest;
|
|
45
|
+
this.expirationInterval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
const { sessionRequest } = currentConnectionRequest;
|
|
47
|
+
const now = Date.now();
|
|
48
|
+
const remainingMs = sessionRequest.expiresAt - now;
|
|
49
|
+
const remainingSeconds = Math.floor(remainingMs / 1000);
|
|
50
|
+
if (remainingMs > 0 &&
|
|
51
|
+
shouldLogCountdown(remainingSeconds) &&
|
|
52
|
+
this.lastLoggedCountdown !== remainingSeconds) {
|
|
53
|
+
const formattedTime = formatRemainingTime(remainingMs);
|
|
54
|
+
logger(`[UI: InstallModal-nodejs()] QR code expires in: ${formattedTime} (${remainingSeconds}s)`);
|
|
55
|
+
this.lastLoggedCountdown = remainingSeconds;
|
|
56
|
+
}
|
|
57
|
+
if (now >= sessionRequest.expiresAt) {
|
|
58
|
+
this.stopExpirationCheck();
|
|
59
|
+
logger('[UI: InstallModal-nodejs()] ⏰ QR code EXPIRED! Generating new one...');
|
|
60
|
+
try {
|
|
61
|
+
// Generate new session request
|
|
62
|
+
currentConnectionRequest =
|
|
63
|
+
yield this.options.createConnectionRequest();
|
|
64
|
+
const generateQRCode = yield this.options.generateQRCode(currentConnectionRequest);
|
|
65
|
+
this.lastLoggedCountdown = -1; // Reset countdown logging
|
|
66
|
+
//Update local instances with new data
|
|
67
|
+
this.updateLink(generateQRCode);
|
|
68
|
+
this.updateExpiresIn(remainingSeconds);
|
|
69
|
+
// Render QRCode on each platform
|
|
70
|
+
this.renderQRCode(generateQRCode, currentConnectionRequest);
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
logger(`[UI: InstallModal-nodejs()] ❌ Error generating new QR code: ${error}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
const generateQRCode = yield this.options.generateQRCode(currentConnectionRequest);
|
|
78
|
+
this.renderQRCode(generateQRCode, currentConnectionRequest);
|
|
79
|
+
}
|
|
80
|
+
}), 1000);
|
|
81
|
+
}
|
|
82
|
+
stopExpirationCheck() {
|
|
83
|
+
if (this.expirationInterval) {
|
|
84
|
+
clearInterval(this.expirationInterval);
|
|
85
|
+
this.expirationInterval = null;
|
|
86
|
+
logger('[UI: InstallModal-nodejs()] 🛑 Stopped QR code expiration checking');
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=AbstractInstallModal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AbstractInstallModal.js","sourceRoot":"","sources":["../../../../../src/ui/modals/base/AbstractInstallModal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Modal, type OTPCode, type OTPCodeWidgetProps } from '../../../domain';
|
|
2
|
+
export declare abstract class AbstractOTPCodeModal extends Modal<OTPCodeWidgetProps, OTPCode> {
|
|
3
|
+
protected instance?: HTMLMmOtpModalElement | undefined;
|
|
4
|
+
get otpCode(): string;
|
|
5
|
+
set otpCode(code: string);
|
|
6
|
+
updateOTPCode(code: string): void;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=AbstractOTPModal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AbstractOTPModal.d.ts","sourceRoot":"","sources":["../../../../../src/ui/modals/base/AbstractOTPModal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE/E,8BAAsB,oBAAqB,SAAQ,KAAK,CACtD,kBAAkB,EAClB,OAAO,CACR;IACC,SAAS,CAAC,QAAQ,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAEvD,IAAI,OAAO,IAIO,MAAM,CAFvB;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,EAEvB;IAED,aAAa,CAAC,IAAI,EAAE,MAAM;CAM3B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Modal } from '../../../domain';
|
|
2
|
+
export class AbstractOTPCodeModal extends Modal {
|
|
3
|
+
get otpCode() {
|
|
4
|
+
return this.data;
|
|
5
|
+
}
|
|
6
|
+
set otpCode(code) {
|
|
7
|
+
this.data = code;
|
|
8
|
+
}
|
|
9
|
+
updateOTPCode(code) {
|
|
10
|
+
this.otpCode = code;
|
|
11
|
+
if (this.instance) {
|
|
12
|
+
this.instance.otpCode = code;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=AbstractOTPModal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AbstractOTPModal.js","sourceRoot":"","sources":["../../../../../src/ui/modals/base/AbstractOTPModal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAyC,MAAM,iBAAiB,CAAC;AAE/E,MAAM,OAAgB,oBAAqB,SAAQ,KAGlD;IAGC,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,CAAC,IAAY;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;QAC/B,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/ui/modals/base/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAIhE;AAED,wBAAgB,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAkBpE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export function formatRemainingTime(milliseconds) {
|
|
2
|
+
if (milliseconds <= 0)
|
|
3
|
+
return 'EXPIRED';
|
|
4
|
+
const seconds = Math.floor(milliseconds / 1000);
|
|
5
|
+
return `${seconds}s`;
|
|
6
|
+
}
|
|
7
|
+
export function shouldLogCountdown(remainingSeconds) {
|
|
8
|
+
// Log at specific intervals to avoid spam
|
|
9
|
+
if (remainingSeconds <= 10) {
|
|
10
|
+
// Log every second for the last 10 seconds
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
else if (remainingSeconds <= 30) {
|
|
14
|
+
// Log every 5 seconds for the last 30 seconds
|
|
15
|
+
return remainingSeconds % 5 === 0;
|
|
16
|
+
}
|
|
17
|
+
else if (remainingSeconds <= 60) {
|
|
18
|
+
// Log every 10 seconds for the last minute
|
|
19
|
+
return remainingSeconds % 10 === 0;
|
|
20
|
+
}
|
|
21
|
+
else if (remainingSeconds <= 300) {
|
|
22
|
+
// Log every 30 seconds for the last 5 minutes
|
|
23
|
+
return remainingSeconds % 30 === 0;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
// Log every minute for longer durations
|
|
27
|
+
return remainingSeconds % 60 === 0;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/ui/modals/base/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,mBAAmB,CAAC,YAAoB;IACtD,IAAI,YAAY,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAChD,OAAO,GAAG,OAAO,GAAG,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,gBAAwB;IACzD,0CAA0C;IAC1C,IAAI,gBAAgB,IAAI,EAAE,EAAE,CAAC;QAC3B,2CAA2C;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,IAAI,gBAAgB,IAAI,EAAE,EAAE,CAAC;QAClC,8CAA8C;QAC9C,OAAO,gBAAgB,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;SAAM,IAAI,gBAAgB,IAAI,EAAE,EAAE,CAAC;QAClC,2CAA2C;QAC3C,OAAO,gBAAgB,GAAG,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;SAAM,IAAI,gBAAgB,IAAI,GAAG,EAAE,CAAC;QACnC,8CAA8C;QAC9C,OAAO,gBAAgB,GAAG,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,wCAAwC;QACxC,OAAO,gBAAgB,GAAG,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ui/modals/node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/ui/modals/node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type ConnectionRequest, type QRLink } from '../../../domain';
|
|
2
|
+
import { AbstractInstallModal } from '../base/AbstractInstallModal';
|
|
3
|
+
export declare class InstallModal extends AbstractInstallModal {
|
|
4
|
+
private displayQRWithCountdown;
|
|
5
|
+
renderQRCode(link: QRLink, connectionRequest: ConnectionRequest): void;
|
|
6
|
+
mount(): void;
|
|
7
|
+
unmount(): void;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../../../src/ui/modals/node/install.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,iBAAiB,EAEtB,KAAK,MAAM,EACZ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAKpE,qBAAa,YAAa,SAAQ,oBAAoB;IACpD,OAAO,CAAC,sBAAsB;IAgB9B,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,GAAG,IAAI;IAiBtE,KAAK;IAQL,OAAO,IAAI,IAAI;CAIhB"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/explicit-function-return-type */
|
|
2
|
+
/* eslint-disable no-restricted-syntax */
|
|
3
|
+
import { createLogger, } from '../../../domain';
|
|
4
|
+
import { encodeQRSync } from '../../qr';
|
|
5
|
+
import { AbstractInstallModal } from '../base/AbstractInstallModal';
|
|
6
|
+
import { formatRemainingTime, shouldLogCountdown } from '../base/utils';
|
|
7
|
+
const logger = createLogger('metamask-sdk:ui');
|
|
8
|
+
export class InstallModal extends AbstractInstallModal {
|
|
9
|
+
displayQRWithCountdown(qrCodeLink, expiresInMs) {
|
|
10
|
+
const isExpired = expiresInMs <= 0;
|
|
11
|
+
const formattedTime = formatRemainingTime(expiresInMs);
|
|
12
|
+
const qrCode = encodeQRSync(qrCodeLink);
|
|
13
|
+
// Clear console and display QR code with live countdown
|
|
14
|
+
console.clear();
|
|
15
|
+
console.log(qrCode);
|
|
16
|
+
if (isExpired) {
|
|
17
|
+
console.log('EXPIRED - Generating new QR code...');
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
console.log(`EXPIRES IN: ${formattedTime}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
renderQRCode(link, connectionRequest) {
|
|
24
|
+
const { sessionRequest } = connectionRequest;
|
|
25
|
+
const expiresIn = sessionRequest.expiresAt - Date.now();
|
|
26
|
+
const expiresInSeconds = Math.floor(expiresIn / 1000);
|
|
27
|
+
const shouldLog = shouldLogCountdown(expiresInSeconds);
|
|
28
|
+
const formattedTime = formatRemainingTime(expiresIn);
|
|
29
|
+
this.startExpirationCheck(connectionRequest);
|
|
30
|
+
this.displayQRWithCountdown(link, expiresIn);
|
|
31
|
+
if (shouldLog) {
|
|
32
|
+
logger(`[UI: InstallModal-nodejs()] QR code expires in: ${formattedTime} (${expiresIn}ms)`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
mount() {
|
|
36
|
+
if (!this.link) {
|
|
37
|
+
throw new Error('Session request is required');
|
|
38
|
+
}
|
|
39
|
+
const { link, connectionRequest } = this;
|
|
40
|
+
this.renderQRCode(link, connectionRequest);
|
|
41
|
+
}
|
|
42
|
+
unmount() {
|
|
43
|
+
console.clear();
|
|
44
|
+
this.stopExpirationCheck();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../../../src/ui/modals/node/install.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,yCAAyC;AACzC,OAAO,EAEL,YAAY,GAEb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExE,MAAM,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;AAE/C,MAAM,OAAO,YAAa,SAAQ,oBAAoB;IAC5C,sBAAsB,CAAC,UAAkB,EAAE,WAAmB;QACpE,MAAM,SAAS,GAAG,WAAW,IAAI,CAAC,CAAC;QACnC,MAAM,aAAa,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QAExC,wDAAwD;QACxD,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEpB,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAe,aAAa,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,YAAY,CAAC,IAAY,EAAE,iBAAoC;QAC7D,MAAM,EAAE,cAAc,EAAE,GAAG,iBAAiB,CAAC;QAC7C,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACxD,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;QACvD,MAAM,aAAa,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;QAE7C,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAE7C,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CACJ,mDAAmD,aAAa,KAAK,SAAS,KAAK,CACpF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;QACzC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO;QACL,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AbstractOTPCodeModal } from '../base/AbstractOTPModal';
|
|
2
|
+
/**
|
|
3
|
+
* TODO: This is a placeholder for the OTP code modal.
|
|
4
|
+
* It will be replaced with the actual OTP code modal once it is implemented.
|
|
5
|
+
*/
|
|
6
|
+
export declare class OTPCodeModal extends AbstractOTPCodeModal {
|
|
7
|
+
mount(): void;
|
|
8
|
+
unmount(): void;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=otp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otp.d.ts","sourceRoot":"","sources":["../../../../../src/ui/modals/node/otp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE;;;GAGG;AACH,qBAAa,YAAa,SAAQ,oBAAoB;IACpD,KAAK;IAEL,OAAO;CACR"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AbstractOTPCodeModal } from '../base/AbstractOTPModal';
|
|
2
|
+
/**
|
|
3
|
+
* TODO: This is a placeholder for the OTP code modal.
|
|
4
|
+
* It will be replaced with the actual OTP code modal once it is implemented.
|
|
5
|
+
*/
|
|
6
|
+
export class OTPCodeModal extends AbstractOTPCodeModal {
|
|
7
|
+
mount() { }
|
|
8
|
+
unmount() { }
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=otp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otp.js","sourceRoot":"","sources":["../../../../../src/ui/modals/node/otp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE;;;GAGG;AACH,MAAM,OAAO,YAAa,SAAQ,oBAAoB;IACpD,KAAK,KAAI,CAAC;IAEV,OAAO,KAAI,CAAC;CACb"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ui/modals/rn/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/ui/modals/rn/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../../../src/ui/modals/rn/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,qBAAa,YAAa,SAAQ,oBAAoB;IACpD,YAAY,IAAI,IAAI;IAIpB,KAAK;IAEL,OAAO;CACR"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../../../src/ui/modals/rn/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,MAAM,OAAO,YAAa,SAAQ,oBAAoB;IACpD,YAAY;QACV,sCAAsC;IACxC,CAAC;IAED,KAAK,KAAI,CAAC;IAEV,OAAO,KAAI,CAAC;CACb"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AbstractOTPCodeModal } from '../base/AbstractOTPModal';
|
|
2
|
+
/**
|
|
3
|
+
* TODO: This is a placeholder for the OTP code modal.
|
|
4
|
+
* It will be replaced with the actual OTP code modal once it is implemented.
|
|
5
|
+
*/
|
|
6
|
+
export declare class OTPCodeModal extends AbstractOTPCodeModal {
|
|
7
|
+
mount(): void;
|
|
8
|
+
unmount(): void;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=otp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otp.d.ts","sourceRoot":"","sources":["../../../../../src/ui/modals/rn/otp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE;;;GAGG;AACH,qBAAa,YAAa,SAAQ,oBAAoB;IACpD,KAAK;IAEL,OAAO;CACR"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AbstractOTPCodeModal } from '../base/AbstractOTPModal';
|
|
2
|
+
/**
|
|
3
|
+
* TODO: This is a placeholder for the OTP code modal.
|
|
4
|
+
* It will be replaced with the actual OTP code modal once it is implemented.
|
|
5
|
+
*/
|
|
6
|
+
export class OTPCodeModal extends AbstractOTPCodeModal {
|
|
7
|
+
mount() { }
|
|
8
|
+
unmount() { }
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=otp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otp.js","sourceRoot":"","sources":["../../../../../src/ui/modals/rn/otp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE;;;GAGG;AACH,MAAM,OAAO,YAAa,SAAQ,oBAAoB;IACpD,KAAK,KAAI,CAAC;IAEV,OAAO,KAAI,CAAC;CACb"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { InstallWidgetProps, OTPCodeWidgetProps } from '../../domain';
|
|
2
|
+
import type { AbstractInstallModal } from './base/AbstractInstallModal';
|
|
3
|
+
import type { AbstractOTPCodeModal } from './base/AbstractOTPModal';
|
|
4
|
+
export type ModalTypes = 'InstallModal' | 'OTPCodeModal';
|
|
5
|
+
/**
|
|
6
|
+
* Record type that maps modal names to their corresponding Modal instances.
|
|
7
|
+
* Used to store different types of modals that can be created by the factory.
|
|
8
|
+
*/
|
|
9
|
+
export type FactoryModals = {
|
|
10
|
+
InstallModal: new (options: InstallWidgetProps) => AbstractInstallModal;
|
|
11
|
+
OTPCodeModal: new (options: OTPCodeWidgetProps) => AbstractOTPCodeModal;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/ui/modals/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,cAAc,CAAC;AACzD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,YAAY,EAAE,KAAK,OAAO,EAAE,kBAAkB,KAAK,oBAAoB,CAAC;IACxE,YAAY,EAAE,KAAK,OAAO,EAAE,kBAAkB,KAAK,oBAAoB,CAAC;CACzE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/ui/modals/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ui/modals/web/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/ui/modals/web/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../../../src/ui/modals/web/install.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,qBAAa,YAAa,SAAQ,oBAAoB;IACpD,YAAY,IAAI,IAAI;IAIpB,KAAK;IA0BL,OAAO;CAQR"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { AbstractInstallModal } from '../base/AbstractInstallModal';
|
|
2
|
+
export class InstallModal extends AbstractInstallModal {
|
|
3
|
+
renderQRCode() {
|
|
4
|
+
//Not needed for web as its using install Modal
|
|
5
|
+
}
|
|
6
|
+
mount() {
|
|
7
|
+
var _a;
|
|
8
|
+
const { options } = this;
|
|
9
|
+
const modal = document.createElement('mm-install-modal');
|
|
10
|
+
modal.preferDesktop = options.preferDesktop;
|
|
11
|
+
modal.sdkVersion = options.sdkVersion;
|
|
12
|
+
modal.addEventListener('close', (ev) => {
|
|
13
|
+
const { detail } = ev;
|
|
14
|
+
options.onClose(detail === null || detail === void 0 ? void 0 : detail.shouldTerminate);
|
|
15
|
+
});
|
|
16
|
+
modal.addEventListener('startDesktopOnboarding', options.startDesktopOnboarding);
|
|
17
|
+
modal.link = options.link;
|
|
18
|
+
this.instance = modal;
|
|
19
|
+
(_a = options.parentElement) === null || _a === void 0 ? void 0 : _a.appendChild(modal);
|
|
20
|
+
this.startExpirationCheck(options.connectionRequest);
|
|
21
|
+
}
|
|
22
|
+
unmount() {
|
|
23
|
+
var _a;
|
|
24
|
+
const { options, instance: modal } = this;
|
|
25
|
+
this.stopExpirationCheck();
|
|
26
|
+
if (modal && ((_a = options.parentElement) === null || _a === void 0 ? void 0 : _a.contains(modal))) {
|
|
27
|
+
options.parentElement.removeChild(modal);
|
|
28
|
+
this.instance = undefined;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../../../src/ui/modals/web/install.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,MAAM,OAAO,YAAa,SAAQ,oBAAoB;IACpD,YAAY;QACV,+CAA+C;IACjD,CAAC;IAED,KAAK;;QACH,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAClC,kBAAkB,CACU,CAAC;QAE/B,KAAK,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC5C,KAAK,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACtC,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAS,EAAE,EAAE;YAC5C,MAAM,EAAE,MAAM,EAAE,GAAG,EAEjB,CAAC;YACH,OAAO,CAAC,OAAO,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,eAAe,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,gBAAgB,CACpB,wBAAwB,EACxB,OAAO,CAAC,sBAAsB,CAC/B,CAAC;QACF,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAE1B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,MAAA,OAAO,CAAC,aAAa,0CAAE,WAAW,CAAC,KAAK,CAAC,CAAC;QAE1C,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACvD,CAAC;IAED,OAAO;;QACL,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAC1C,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,KAAK,KAAI,MAAA,OAAO,CAAC,aAAa,0CAAE,QAAQ,CAAC,KAAK,CAAC,CAAA,EAAE,CAAC;YACpD,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC5B,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AbstractOTPCodeModal } from '../base/AbstractOTPModal';
|
|
2
|
+
/**
|
|
3
|
+
* TODO: This is a placeholder for the OTP code modal.
|
|
4
|
+
* It will be replaced with the actual OTP code modal once it is implemented.
|
|
5
|
+
*/
|
|
6
|
+
export declare class OTPCodeModal extends AbstractOTPCodeModal {
|
|
7
|
+
mount(): void;
|
|
8
|
+
unmount(): void;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=otp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otp.d.ts","sourceRoot":"","sources":["../../../../../src/ui/modals/web/otp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE;;;GAGG;AACH,qBAAa,YAAa,SAAQ,oBAAoB;IACpD,KAAK;IAEL,OAAO;CACR"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AbstractOTPCodeModal } from '../base/AbstractOTPModal';
|
|
2
|
+
/**
|
|
3
|
+
* TODO: This is a placeholder for the OTP code modal.
|
|
4
|
+
* It will be replaced with the actual OTP code modal once it is implemented.
|
|
5
|
+
*/
|
|
6
|
+
export class OTPCodeModal extends AbstractOTPCodeModal {
|
|
7
|
+
mount() { }
|
|
8
|
+
unmount() { }
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=otp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otp.js","sourceRoot":"","sources":["../../../../../src/ui/modals/web/otp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE;;;GAGG;AACH,MAAM,OAAO,YAAa,SAAQ,oBAAoB;IACpD,KAAK,KAAI,CAAC;IAEV,OAAO,KAAI,CAAC;CACb"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qr.d.ts","sourceRoot":"","sources":["../../../src/ui/qr.ts"],"names":[],"mappings":"AAWA,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ/C;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKlD"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/* eslint-disable require-atomic-updates */
|
|
2
|
+
/* eslint-disable jsdoc/require-jsdoc */
|
|
3
|
+
/*
|
|
4
|
+
QR adapter that hides ESM import details and exposes a sync API.
|
|
5
|
+
Consumers must call preloadQR() once before first use.
|
|
6
|
+
*/
|
|
7
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
8
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
9
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
10
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
11
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
12
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
13
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
let encodeQRImpl = null;
|
|
17
|
+
export function preloadQR() {
|
|
18
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
19
|
+
if (encodeQRImpl) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const mod = (yield import('@paulmillr/qr'));
|
|
23
|
+
encodeQRImpl = mod.default;
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
export function encodeQRSync(input) {
|
|
27
|
+
if (!encodeQRImpl) {
|
|
28
|
+
throw new Error('QR module not preloaded. Call preloadQR() first.');
|
|
29
|
+
}
|
|
30
|
+
return encodeQRImpl(input, 'ascii');
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=qr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qr.js","sourceRoot":"","sources":["../../../src/ui/qr.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,wCAAwC;AACxC;;;EAGE;;;;;;;;;;AAEF,IAAI,YAAY,GAAsD,IAAI,CAAC;AAI3E,MAAM,UAAgB,SAAS;;QAC7B,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,CAEzC,CAAC;QACF,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC;IAC7B,CAAC;CAAA;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC"}
|