@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.
Files changed (241) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/LICENSE +20 -0
  3. package/README.md +15 -0
  4. package/dist/browser/es/connect-multichain.d.mts +585 -0
  5. package/dist/browser/es/connect-multichain.mjs +2609 -0
  6. package/dist/browser/es/connect-multichain.mjs.map +1 -0
  7. package/dist/browser/es/metafile-esm.json +1 -0
  8. package/dist/browser/iife/connect-multichain.d.ts +585 -0
  9. package/dist/browser/iife/connect-multichain.js +30057 -0
  10. package/dist/browser/iife/connect-multichain.js.map +1 -0
  11. package/dist/browser/iife/metafile-iife.json +1 -0
  12. package/dist/browser/umd/connect-multichain.d.ts +585 -0
  13. package/dist/browser/umd/connect-multichain.js +2622 -0
  14. package/dist/browser/umd/connect-multichain.js.map +1 -0
  15. package/dist/browser/umd/metafile-cjs.json +1 -0
  16. package/dist/node/cjs/connect-multichain.d.ts +585 -0
  17. package/dist/node/cjs/connect-multichain.js +2603 -0
  18. package/dist/node/cjs/connect-multichain.js.map +1 -0
  19. package/dist/node/cjs/metafile-cjs.json +1 -0
  20. package/dist/node/es/connect-multichain.d.mts +585 -0
  21. package/dist/node/es/connect-multichain.mjs +2564 -0
  22. package/dist/node/es/connect-multichain.mjs.map +1 -0
  23. package/dist/node/es/metafile-esm.json +1 -0
  24. package/dist/react-native/es/connect-multichain.d.mts +585 -0
  25. package/dist/react-native/es/connect-multichain.mjs +2517 -0
  26. package/dist/react-native/es/connect-multichain.mjs.map +1 -0
  27. package/dist/react-native/es/metafile-esm.json +1 -0
  28. package/dist/src/config/index.d.ts +4 -0
  29. package/dist/src/config/index.d.ts.map +1 -0
  30. package/dist/src/config/index.js +4 -0
  31. package/dist/src/config/index.js.map +1 -0
  32. package/dist/src/domain/errors/base.d.ts +7 -0
  33. package/dist/src/domain/errors/base.d.ts.map +1 -0
  34. package/dist/src/domain/errors/base.js +8 -0
  35. package/dist/src/domain/errors/base.js.map +1 -0
  36. package/dist/src/domain/errors/index.d.ts +3 -0
  37. package/dist/src/domain/errors/index.d.ts.map +1 -0
  38. package/dist/src/domain/errors/index.js +2 -0
  39. package/dist/src/domain/errors/index.js.map +1 -0
  40. package/dist/src/domain/errors/rpc.d.ts +25 -0
  41. package/dist/src/domain/errors/rpc.d.ts.map +1 -0
  42. package/dist/src/domain/errors/rpc.js +33 -0
  43. package/dist/src/domain/errors/rpc.js.map +1 -0
  44. package/dist/src/domain/errors/storage.d.ts +24 -0
  45. package/dist/src/domain/errors/storage.d.ts.map +1 -0
  46. package/dist/src/domain/errors/storage.js +30 -0
  47. package/dist/src/domain/errors/storage.js.map +1 -0
  48. package/dist/src/domain/errors/types.d.ts +7 -0
  49. package/dist/src/domain/errors/types.d.ts.map +1 -0
  50. package/dist/src/domain/errors/types.js +2 -0
  51. package/dist/src/domain/errors/types.js.map +1 -0
  52. package/dist/src/domain/events/index.d.ts +39 -0
  53. package/dist/src/domain/events/index.d.ts.map +1 -0
  54. package/dist/src/domain/events/index.js +58 -0
  55. package/dist/src/domain/events/index.js.map +1 -0
  56. package/dist/src/domain/events/types/index.d.ts +8 -0
  57. package/dist/src/domain/events/types/index.d.ts.map +1 -0
  58. package/dist/src/domain/events/types/index.js +2 -0
  59. package/dist/src/domain/events/types/index.js.map +1 -0
  60. package/dist/src/domain/index.d.ts +9 -0
  61. package/dist/src/domain/index.d.ts.map +1 -0
  62. package/dist/src/domain/index.js +9 -0
  63. package/dist/src/domain/index.js.map +1 -0
  64. package/dist/src/domain/logger/index.d.ts +41 -0
  65. package/dist/src/domain/logger/index.d.ts.map +1 -0
  66. package/dist/src/domain/logger/index.js +79 -0
  67. package/dist/src/domain/logger/index.js.map +1 -0
  68. package/dist/src/domain/multichain/api/constants.d.ts +5 -0
  69. package/dist/src/domain/multichain/api/constants.d.ts.map +1 -0
  70. package/dist/src/domain/multichain/api/constants.js +101 -0
  71. package/dist/src/domain/multichain/api/constants.js.map +1 -0
  72. package/dist/src/domain/multichain/api/eip155.d.ts +58 -0
  73. package/dist/src/domain/multichain/api/eip155.d.ts.map +1 -0
  74. package/dist/src/domain/multichain/api/eip155.js +2 -0
  75. package/dist/src/domain/multichain/api/eip155.js.map +1 -0
  76. package/dist/src/domain/multichain/api/infura.d.ts +3 -0
  77. package/dist/src/domain/multichain/api/infura.d.ts.map +1 -0
  78. package/dist/src/domain/multichain/api/infura.js +10 -0
  79. package/dist/src/domain/multichain/api/infura.js.map +1 -0
  80. package/dist/src/domain/multichain/api/types.d.ts +89 -0
  81. package/dist/src/domain/multichain/api/types.d.ts.map +1 -0
  82. package/dist/src/domain/multichain/api/types.js +2 -0
  83. package/dist/src/domain/multichain/api/types.js.map +1 -0
  84. package/dist/src/domain/multichain/index.d.ts +51 -0
  85. package/dist/src/domain/multichain/index.d.ts.map +1 -0
  86. package/dist/src/domain/multichain/index.js +33 -0
  87. package/dist/src/domain/multichain/index.js.map +1 -0
  88. package/dist/src/domain/multichain/types.d.ts +102 -0
  89. package/dist/src/domain/multichain/types.d.ts.map +1 -0
  90. package/dist/src/domain/multichain/types.js +2 -0
  91. package/dist/src/domain/multichain/types.js.map +1 -0
  92. package/dist/src/domain/platform/index.d.ts +17 -0
  93. package/dist/src/domain/platform/index.d.ts.map +1 -0
  94. package/dist/src/domain/platform/index.js +122 -0
  95. package/dist/src/domain/platform/index.js.map +1 -0
  96. package/dist/src/domain/store/adapter.d.ts +10 -0
  97. package/dist/src/domain/store/adapter.d.ts.map +1 -0
  98. package/dist/src/domain/store/adapter.js +6 -0
  99. package/dist/src/domain/store/adapter.js.map +1 -0
  100. package/dist/src/domain/store/client.d.ts +16 -0
  101. package/dist/src/domain/store/client.d.ts.map +1 -0
  102. package/dist/src/domain/store/client.js +3 -0
  103. package/dist/src/domain/store/client.js.map +1 -0
  104. package/dist/src/domain/store/index.d.ts +3 -0
  105. package/dist/src/domain/store/index.d.ts.map +1 -0
  106. package/dist/src/domain/store/index.js +3 -0
  107. package/dist/src/domain/store/index.js.map +1 -0
  108. package/dist/src/domain/ui/factory.d.ts +26 -0
  109. package/dist/src/domain/ui/factory.d.ts.map +1 -0
  110. package/dist/src/domain/ui/factory.js +2 -0
  111. package/dist/src/domain/ui/factory.js.map +1 -0
  112. package/dist/src/domain/ui/index.d.ts +3 -0
  113. package/dist/src/domain/ui/index.d.ts.map +1 -0
  114. package/dist/src/domain/ui/index.js +2 -0
  115. package/dist/src/domain/ui/index.js.map +1 -0
  116. package/dist/src/domain/ui/types.d.ts +34 -0
  117. package/dist/src/domain/ui/types.d.ts.map +1 -0
  118. package/dist/src/domain/ui/types.js +38 -0
  119. package/dist/src/domain/ui/types.js.map +1 -0
  120. package/dist/src/domain/utils/index.d.ts +7 -0
  121. package/dist/src/domain/utils/index.d.ts.map +1 -0
  122. package/dist/src/domain/utils/index.js +9 -0
  123. package/dist/src/domain/utils/index.js.map +1 -0
  124. package/dist/src/index.browser.d.ts +4 -0
  125. package/dist/src/index.browser.d.ts.map +1 -0
  126. package/dist/src/index.browser.js +28 -0
  127. package/dist/src/index.browser.js.map +1 -0
  128. package/dist/src/index.native.d.ts +4 -0
  129. package/dist/src/index.native.d.ts.map +1 -0
  130. package/dist/src/index.native.js +28 -0
  131. package/dist/src/index.native.js.map +1 -0
  132. package/dist/src/index.node.d.ts +4 -0
  133. package/dist/src/index.node.d.ts.map +1 -0
  134. package/dist/src/index.node.js +28 -0
  135. package/dist/src/index.node.js.map +1 -0
  136. package/dist/src/multichain/index.d.ts +41 -0
  137. package/dist/src/multichain/index.d.ts.map +1 -0
  138. package/dist/src/multichain/index.js +499 -0
  139. package/dist/src/multichain/index.js.map +1 -0
  140. package/dist/src/multichain/rpc/handlers/rpcClient.d.ts +19 -0
  141. package/dist/src/multichain/rpc/handlers/rpcClient.d.ts.map +1 -0
  142. package/dist/src/multichain/rpc/handlers/rpcClient.js +105 -0
  143. package/dist/src/multichain/rpc/handlers/rpcClient.js.map +1 -0
  144. package/dist/src/multichain/rpc/requestRouter.d.ts +29 -0
  145. package/dist/src/multichain/rpc/requestRouter.d.ts.map +1 -0
  146. package/dist/src/multichain/rpc/requestRouter.js +104 -0
  147. package/dist/src/multichain/rpc/requestRouter.js.map +1 -0
  148. package/dist/src/multichain/transports/default/index.d.ts +17 -0
  149. package/dist/src/multichain/transports/default/index.d.ts.map +1 -0
  150. package/dist/src/multichain/transports/default/index.js +101 -0
  151. package/dist/src/multichain/transports/default/index.js.map +1 -0
  152. package/dist/src/multichain/transports/mwp/KeyManager.d.ts +9 -0
  153. package/dist/src/multichain/transports/mwp/KeyManager.d.ts.map +1 -0
  154. package/dist/src/multichain/transports/mwp/KeyManager.js +35 -0
  155. package/dist/src/multichain/transports/mwp/KeyManager.js.map +1 -0
  156. package/dist/src/multichain/transports/mwp/index.d.ts +65 -0
  157. package/dist/src/multichain/transports/mwp/index.d.ts.map +1 -0
  158. package/dist/src/multichain/transports/mwp/index.js +323 -0
  159. package/dist/src/multichain/transports/mwp/index.js.map +1 -0
  160. package/dist/src/multichain/utils/index.d.ts +41 -0
  161. package/dist/src/multichain/utils/index.d.ts.map +1 -0
  162. package/dist/src/multichain/utils/index.js +239 -0
  163. package/dist/src/multichain/utils/index.js.map +1 -0
  164. package/dist/src/store/adapters/node.d.ts +9 -0
  165. package/dist/src/store/adapters/node.d.ts.map +1 -0
  166. package/dist/src/store/adapters/node.js +34 -0
  167. package/dist/src/store/adapters/node.js.map +1 -0
  168. package/dist/src/store/adapters/rn.d.ts +8 -0
  169. package/dist/src/store/adapters/rn.d.ts.map +1 -0
  170. package/dist/src/store/adapters/rn.js +33 -0
  171. package/dist/src/store/adapters/rn.js.map +1 -0
  172. package/dist/src/store/adapters/web.d.ts +16 -0
  173. package/dist/src/store/adapters/web.d.ts.map +1 -0
  174. package/dist/src/store/adapters/web.js +99 -0
  175. package/dist/src/store/adapters/web.js.map +1 -0
  176. package/dist/src/store/index.d.ts +17 -0
  177. package/dist/src/store/index.d.ts.map +1 -0
  178. package/dist/src/store/index.js +130 -0
  179. package/dist/src/store/index.js.map +1 -0
  180. package/dist/src/ui/index.d.ts +45 -0
  181. package/dist/src/ui/index.d.ts.map +1 -0
  182. package/dist/src/ui/index.js +185 -0
  183. package/dist/src/ui/index.js.map +1 -0
  184. package/dist/src/ui/modals/base/AbstractInstallModal.d.ts +16 -0
  185. package/dist/src/ui/modals/base/AbstractInstallModal.d.ts.map +1 -0
  186. package/dist/src/ui/modals/base/AbstractInstallModal.js +90 -0
  187. package/dist/src/ui/modals/base/AbstractInstallModal.js.map +1 -0
  188. package/dist/src/ui/modals/base/AbstractOTPModal.d.ts +8 -0
  189. package/dist/src/ui/modals/base/AbstractOTPModal.d.ts.map +1 -0
  190. package/dist/src/ui/modals/base/AbstractOTPModal.js +16 -0
  191. package/dist/src/ui/modals/base/AbstractOTPModal.js.map +1 -0
  192. package/dist/src/ui/modals/base/utils.d.ts +3 -0
  193. package/dist/src/ui/modals/base/utils.d.ts.map +1 -0
  194. package/dist/src/ui/modals/base/utils.js +30 -0
  195. package/dist/src/ui/modals/base/utils.js.map +1 -0
  196. package/dist/src/ui/modals/node/index.d.ts +3 -0
  197. package/dist/src/ui/modals/node/index.d.ts.map +1 -0
  198. package/dist/src/ui/modals/node/index.js +3 -0
  199. package/dist/src/ui/modals/node/index.js.map +1 -0
  200. package/dist/src/ui/modals/node/install.d.ts +9 -0
  201. package/dist/src/ui/modals/node/install.d.ts.map +1 -0
  202. package/dist/src/ui/modals/node/install.js +47 -0
  203. package/dist/src/ui/modals/node/install.js.map +1 -0
  204. package/dist/src/ui/modals/node/otp.d.ts +10 -0
  205. package/dist/src/ui/modals/node/otp.d.ts.map +1 -0
  206. package/dist/src/ui/modals/node/otp.js +10 -0
  207. package/dist/src/ui/modals/node/otp.js.map +1 -0
  208. package/dist/src/ui/modals/rn/index.d.ts +3 -0
  209. package/dist/src/ui/modals/rn/index.d.ts.map +1 -0
  210. package/dist/src/ui/modals/rn/index.js +3 -0
  211. package/dist/src/ui/modals/rn/index.js.map +1 -0
  212. package/dist/src/ui/modals/rn/install.d.ts +7 -0
  213. package/dist/src/ui/modals/rn/install.d.ts.map +1 -0
  214. package/dist/src/ui/modals/rn/install.js +9 -0
  215. package/dist/src/ui/modals/rn/install.js.map +1 -0
  216. package/dist/src/ui/modals/rn/otp.d.ts +10 -0
  217. package/dist/src/ui/modals/rn/otp.d.ts.map +1 -0
  218. package/dist/src/ui/modals/rn/otp.js +10 -0
  219. package/dist/src/ui/modals/rn/otp.js.map +1 -0
  220. package/dist/src/ui/modals/types.d.ts +13 -0
  221. package/dist/src/ui/modals/types.d.ts.map +1 -0
  222. package/dist/src/ui/modals/types.js +2 -0
  223. package/dist/src/ui/modals/types.js.map +1 -0
  224. package/dist/src/ui/modals/web/index.d.ts +3 -0
  225. package/dist/src/ui/modals/web/index.d.ts.map +1 -0
  226. package/dist/src/ui/modals/web/index.js +3 -0
  227. package/dist/src/ui/modals/web/index.js.map +1 -0
  228. package/dist/src/ui/modals/web/install.d.ts +7 -0
  229. package/dist/src/ui/modals/web/install.d.ts.map +1 -0
  230. package/dist/src/ui/modals/web/install.js +32 -0
  231. package/dist/src/ui/modals/web/install.js.map +1 -0
  232. package/dist/src/ui/modals/web/otp.d.ts +10 -0
  233. package/dist/src/ui/modals/web/otp.d.ts.map +1 -0
  234. package/dist/src/ui/modals/web/otp.js +10 -0
  235. package/dist/src/ui/modals/web/otp.js.map +1 -0
  236. package/dist/src/ui/qr.d.ts +3 -0
  237. package/dist/src/ui/qr.d.ts.map +1 -0
  238. package/dist/src/ui/qr.js +32 -0
  239. package/dist/src/ui/qr.js.map +1 -0
  240. package/dist/types/connect-multichain.d.ts +585 -0
  241. 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,3 @@
1
+ export declare function formatRemainingTime(milliseconds: number): string;
2
+ export declare function shouldLogCountdown(remainingSeconds: number): boolean;
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -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,3 @@
1
+ export { InstallModal } from './install';
2
+ export { OTPCodeModal } from './otp';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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,3 @@
1
+ export { InstallModal } from './install';
2
+ export { OTPCodeModal } from './otp';
3
+ //# sourceMappingURL=index.js.map
@@ -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,3 @@
1
+ export { InstallModal } from './install';
2
+ export { OTPCodeModal } from './otp';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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,3 @@
1
+ export { InstallModal } from './install';
2
+ export { OTPCodeModal } from './otp';
3
+ //# sourceMappingURL=index.js.map
@@ -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,7 @@
1
+ import { AbstractInstallModal } from '../base/AbstractInstallModal';
2
+ export declare class InstallModal extends AbstractInstallModal {
3
+ renderQRCode(): void;
4
+ mount(): void;
5
+ unmount(): void;
6
+ }
7
+ //# sourceMappingURL=install.d.ts.map
@@ -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,9 @@
1
+ import { AbstractInstallModal } from '../base/AbstractInstallModal';
2
+ export class InstallModal extends AbstractInstallModal {
3
+ renderQRCode() {
4
+ //Not needed for RN (WORK IN Progress)
5
+ }
6
+ mount() { }
7
+ unmount() { }
8
+ }
9
+ //# sourceMappingURL=install.js.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/ui/modals/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { InstallModal } from './install';
2
+ export { OTPCodeModal } from './otp';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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,3 @@
1
+ export { InstallModal } from './install';
2
+ export { OTPCodeModal } from './otp';
3
+ //# sourceMappingURL=index.js.map
@@ -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,7 @@
1
+ import { AbstractInstallModal } from '../base/AbstractInstallModal';
2
+ export declare class InstallModal extends AbstractInstallModal {
3
+ renderQRCode(): void;
4
+ mount(): void;
5
+ unmount(): void;
6
+ }
7
+ //# sourceMappingURL=install.d.ts.map
@@ -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,3 @@
1
+ export declare function preloadQR(): Promise<void>;
2
+ export declare function encodeQRSync(input: string): string;
3
+ //# sourceMappingURL=qr.d.ts.map
@@ -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"}