@metamask/snaps-controllers 9.4.0 → 9.6.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 +23 -2
- package/dist/cronjob/CronjobController.cjs +255 -0
- package/dist/cronjob/CronjobController.cjs.map +1 -0
- package/dist/{types/cronjob/CronjobController.d.ts → cronjob/CronjobController.d.cts} +13 -10
- package/dist/cronjob/CronjobController.d.cts.map +1 -0
- package/dist/cronjob/CronjobController.d.mts +121 -0
- package/dist/cronjob/CronjobController.d.mts.map +1 -0
- package/dist/cronjob/CronjobController.mjs +249 -41
- package/dist/cronjob/CronjobController.mjs.map +1 -1
- package/dist/cronjob/index.cjs +18 -0
- package/dist/cronjob/index.cjs.map +1 -0
- package/dist/cronjob/index.d.cts +2 -0
- package/dist/cronjob/index.d.cts.map +1 -0
- package/dist/cronjob/index.d.mts +2 -0
- package/dist/cronjob/index.d.mts.map +1 -0
- package/dist/cronjob/index.mjs +1 -42
- package/dist/cronjob/index.mjs.map +1 -1
- package/dist/fsm.cjs +75 -0
- package/dist/fsm.cjs.map +1 -0
- package/dist/{types/fsm.d.ts → fsm.d.cts} +2 -1
- package/dist/fsm.d.cts.map +1 -0
- package/dist/fsm.d.mts +25 -0
- package/dist/fsm.d.mts.map +1 -0
- package/dist/fsm.mjs +69 -9
- package/dist/fsm.mjs.map +1 -1
- package/dist/index.cjs +23 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +8 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +8 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +6 -124
- package/dist/index.mjs.map +1 -1
- package/dist/insights/SnapInsightsController.cjs +182 -0
- package/dist/insights/SnapInsightsController.cjs.map +1 -0
- package/dist/{types/insights/SnapInsightsController.d.ts → insights/SnapInsightsController.d.cts} +13 -9
- package/dist/insights/SnapInsightsController.d.cts.map +1 -0
- package/dist/insights/SnapInsightsController.d.mts +38 -0
- package/dist/insights/SnapInsightsController.d.mts.map +1 -0
- package/dist/insights/SnapInsightsController.mjs +176 -23
- package/dist/insights/SnapInsightsController.mjs.map +1 -1
- package/dist/insights/index.cjs +18 -0
- package/dist/insights/index.cjs.map +1 -0
- package/dist/insights/index.d.cts +2 -0
- package/dist/insights/index.d.cts.map +1 -0
- package/dist/insights/index.d.mts +2 -0
- package/dist/insights/index.d.mts.map +1 -0
- package/dist/insights/index.mjs +1 -25
- package/dist/insights/index.mjs.map +1 -1
- package/dist/interface/SnapInterfaceController.cjs +176 -0
- package/dist/interface/SnapInterfaceController.cjs.map +1 -0
- package/dist/{types/interface/SnapInterfaceController.d.ts → interface/SnapInterfaceController.d.cts} +13 -9
- package/dist/interface/SnapInterfaceController.d.cts.map +1 -0
- package/dist/interface/SnapInterfaceController.d.mts +107 -0
- package/dist/interface/SnapInterfaceController.d.mts.map +1 -0
- package/dist/interface/SnapInterfaceController.mjs +170 -7
- package/dist/interface/SnapInterfaceController.mjs.map +1 -1
- package/dist/interface/index.cjs +18 -0
- package/dist/interface/index.cjs.map +1 -0
- package/dist/interface/index.d.cts +2 -0
- package/dist/interface/index.d.cts.map +1 -0
- package/dist/interface/index.d.mts +2 -0
- package/dist/interface/index.d.mts.map +1 -0
- package/dist/interface/index.mjs +1 -9
- package/dist/interface/index.mjs.map +1 -1
- package/dist/interface/utils.cjs +165 -0
- package/dist/interface/utils.cjs.map +1 -0
- package/dist/{types/interface/utils.d.ts → interface/utils.d.cts} +3 -2
- package/dist/interface/utils.d.cts.map +1 -0
- package/dist/interface/utils.d.mts +34 -0
- package/dist/interface/utils.d.mts.map +1 -0
- package/dist/interface/utils.mjs +157 -13
- package/dist/interface/utils.mjs.map +1 -1
- package/dist/logging.cjs +13 -0
- package/dist/logging.cjs.map +1 -0
- package/dist/{types/logging.d.ts → logging.d.cts} +1 -0
- package/dist/logging.d.cts.map +1 -0
- package/dist/logging.d.mts +9 -0
- package/dist/logging.d.mts.map +1 -0
- package/dist/logging.mjs +9 -7
- package/dist/logging.mjs.map +1 -1
- package/dist/node.cjs +20 -0
- package/dist/node.cjs.map +1 -0
- package/dist/node.d.cts +3 -0
- package/dist/node.d.cts.map +1 -0
- package/dist/node.d.mts +3 -0
- package/dist/node.d.mts.map +1 -0
- package/dist/node.mjs +3 -134
- package/dist/node.mjs.map +1 -1
- package/dist/react-native.cjs +20 -0
- package/dist/react-native.cjs.map +1 -0
- package/dist/react-native.d.cts +3 -0
- package/dist/react-native.d.cts.map +1 -0
- package/dist/react-native.d.mts +3 -0
- package/dist/react-native.d.mts.map +1 -0
- package/dist/react-native.mjs +3 -131
- package/dist/react-native.mjs.map +1 -1
- package/dist/services/AbstractExecutionService.cjs +348 -0
- package/dist/services/AbstractExecutionService.cjs.map +1 -0
- package/dist/{types/services/AbstractExecutionService.d.ts → services/AbstractExecutionService.d.cts} +8 -8
- package/dist/services/AbstractExecutionService.d.cts.map +1 -0
- package/dist/services/AbstractExecutionService.d.mts +131 -0
- package/dist/services/AbstractExecutionService.d.mts.map +1 -0
- package/dist/services/AbstractExecutionService.mjs +345 -11
- package/dist/services/AbstractExecutionService.mjs.map +1 -1
- package/dist/services/ExecutionService.cjs +4 -0
- package/dist/services/ExecutionService.cjs.map +1 -0
- package/dist/{types/services/ExecutionService.d.ts → services/ExecutionService.d.cts} +4 -3
- package/dist/services/ExecutionService.d.cts.map +1 -0
- package/dist/services/ExecutionService.d.mts +69 -0
- package/dist/services/ExecutionService.d.mts.map +1 -0
- package/dist/services/ExecutionService.mjs +2 -1
- package/dist/services/ExecutionService.mjs.map +1 -1
- package/dist/services/ProxyPostMessageStream.cjs +58 -0
- package/dist/services/ProxyPostMessageStream.cjs.map +1 -0
- package/dist/{types/services/ProxyPostMessageStream.d.ts → services/ProxyPostMessageStream.d.cts} +3 -2
- package/dist/services/ProxyPostMessageStream.d.cts.map +1 -0
- package/dist/services/ProxyPostMessageStream.d.mts +35 -0
- package/dist/services/ProxyPostMessageStream.d.mts.map +1 -0
- package/dist/services/ProxyPostMessageStream.mjs +53 -6
- package/dist/services/ProxyPostMessageStream.mjs.map +1 -1
- package/dist/services/browser.cjs +27 -0
- package/dist/services/browser.cjs.map +1 -0
- package/dist/services/browser.d.cts +8 -0
- package/dist/services/browser.d.cts.map +1 -0
- package/dist/services/browser.d.mts +8 -0
- package/dist/services/browser.d.mts.map +1 -0
- package/dist/services/browser.mjs +8 -39
- package/dist/services/browser.mjs.map +1 -1
- package/dist/services/iframe/IframeExecutionService.cjs +30 -0
- package/dist/services/iframe/IframeExecutionService.cjs.map +1 -0
- package/dist/{types/services/iframe/IframeExecutionService.d.ts → services/iframe/IframeExecutionService.d.cts} +4 -3
- package/dist/services/iframe/IframeExecutionService.d.cts.map +1 -0
- package/dist/services/iframe/IframeExecutionService.d.mts +17 -0
- package/dist/services/iframe/IframeExecutionService.d.mts.map +1 -0
- package/dist/services/iframe/IframeExecutionService.mjs +26 -11
- package/dist/services/iframe/IframeExecutionService.mjs.map +1 -1
- package/dist/services/iframe/index.cjs +18 -0
- package/dist/services/iframe/index.cjs.map +1 -0
- package/dist/services/iframe/index.d.cts +2 -0
- package/dist/services/iframe/index.d.cts.map +1 -0
- package/dist/services/iframe/index.d.mts +2 -0
- package/dist/services/iframe/index.d.mts.map +1 -0
- package/dist/services/iframe/index.mjs +1 -12
- package/dist/services/iframe/index.mjs.map +1 -1
- package/dist/services/index.cjs +25 -0
- package/dist/services/index.cjs.map +1 -0
- package/dist/services/index.d.cts +7 -0
- package/dist/services/index.d.cts.map +1 -0
- package/dist/services/index.d.mts +7 -0
- package/dist/services/index.d.mts.map +1 -0
- package/dist/services/index.mjs +6 -34
- package/dist/services/index.mjs.map +1 -1
- package/dist/services/node-js/NodeProcessExecutionService.cjs +30 -0
- package/dist/services/node-js/NodeProcessExecutionService.cjs.map +1 -0
- package/dist/{types/services/node-js/NodeProcessExecutionService.d.ts → services/node-js/NodeProcessExecutionService.d.cts} +5 -4
- package/dist/services/node-js/NodeProcessExecutionService.d.cts.map +1 -0
- package/dist/services/node-js/NodeProcessExecutionService.d.mts +13 -0
- package/dist/services/node-js/NodeProcessExecutionService.d.mts.map +1 -0
- package/dist/services/node-js/NodeProcessExecutionService.mjs +26 -21
- package/dist/services/node-js/NodeProcessExecutionService.mjs.map +1 -1
- package/dist/services/node-js/NodeThreadExecutionService.cjs +32 -0
- package/dist/services/node-js/NodeThreadExecutionService.cjs.map +1 -0
- package/dist/{types/services/node-js/NodeThreadExecutionService.d.ts → services/node-js/NodeThreadExecutionService.d.cts} +5 -4
- package/dist/services/node-js/NodeThreadExecutionService.d.cts.map +1 -0
- package/dist/services/node-js/NodeThreadExecutionService.d.mts +13 -0
- package/dist/services/node-js/NodeThreadExecutionService.d.mts.map +1 -0
- package/dist/services/node-js/NodeThreadExecutionService.mjs +28 -21
- package/dist/services/node-js/NodeThreadExecutionService.mjs.map +1 -1
- package/dist/services/node-js/index.cjs +19 -0
- package/dist/services/node-js/index.cjs.map +1 -0
- package/dist/services/node-js/index.d.cts +3 -0
- package/dist/services/node-js/index.d.cts.map +1 -0
- package/dist/services/node-js/index.d.mts +3 -0
- package/dist/services/node-js/index.d.mts.map +1 -0
- package/dist/services/node-js/index.mjs +2 -26
- package/dist/services/node-js/index.mjs.map +1 -1
- package/dist/services/node.cjs +19 -0
- package/dist/services/node.cjs.map +1 -0
- package/dist/services/node.d.cts +3 -0
- package/dist/services/node.d.cts.map +1 -0
- package/dist/services/node.d.mts +3 -0
- package/dist/services/node.d.mts.map +1 -0
- package/dist/services/node.mjs +2 -44
- package/dist/services/node.mjs.map +1 -1
- package/dist/services/offscreen/OffscreenExecutionService.cjs +56 -0
- package/dist/services/offscreen/OffscreenExecutionService.cjs.map +1 -0
- package/dist/{types/services/offscreen/OffscreenExecutionService.d.ts → services/offscreen/OffscreenExecutionService.d.cts} +3 -2
- package/dist/services/offscreen/OffscreenExecutionService.d.cts.map +1 -0
- package/dist/services/offscreen/OffscreenExecutionService.d.mts +33 -0
- package/dist/services/offscreen/OffscreenExecutionService.d.mts.map +1 -0
- package/dist/services/offscreen/OffscreenExecutionService.mjs +51 -12
- package/dist/services/offscreen/OffscreenExecutionService.mjs.map +1 -1
- package/dist/services/offscreen/index.cjs +18 -0
- package/dist/services/offscreen/index.cjs.map +1 -0
- package/dist/services/offscreen/index.d.cts +2 -0
- package/dist/services/offscreen/index.d.cts.map +1 -0
- package/dist/services/offscreen/index.d.mts +2 -0
- package/dist/services/offscreen/index.d.mts.map +1 -0
- package/dist/services/offscreen/index.mjs +1 -14
- package/dist/services/offscreen/index.mjs.map +1 -1
- package/dist/services/proxy/ProxyExecutionService.cjs +85 -0
- package/dist/services/proxy/ProxyExecutionService.cjs.map +1 -0
- package/dist/{types/services/proxy/ProxyExecutionService.d.ts → services/proxy/ProxyExecutionService.d.cts} +6 -4
- package/dist/services/proxy/ProxyExecutionService.d.cts.map +1 -0
- package/dist/services/proxy/ProxyExecutionService.d.mts +41 -0
- package/dist/services/proxy/ProxyExecutionService.d.mts.map +1 -0
- package/dist/services/proxy/ProxyExecutionService.mjs +79 -11
- package/dist/services/proxy/ProxyExecutionService.mjs.map +1 -1
- package/dist/services/react-native.cjs +19 -0
- package/dist/services/react-native.cjs.map +1 -0
- package/dist/services/react-native.d.cts +3 -0
- package/dist/services/react-native.d.cts.map +1 -0
- package/dist/services/react-native.d.mts +3 -0
- package/dist/services/react-native.d.mts.map +1 -0
- package/dist/services/react-native.mjs +2 -41
- package/dist/services/react-native.mjs.map +1 -1
- package/dist/services/webview/WebViewExecutionService.cjs +54 -0
- package/dist/services/webview/WebViewExecutionService.cjs.map +1 -0
- package/dist/{types/services/webview/WebViewExecutionService.d.ts → services/webview/WebViewExecutionService.d.cts} +5 -3
- package/dist/services/webview/WebViewExecutionService.d.cts.map +1 -0
- package/dist/services/webview/WebViewExecutionService.d.mts +22 -0
- package/dist/services/webview/WebViewExecutionService.d.mts.map +1 -0
- package/dist/services/webview/WebViewExecutionService.mjs +48 -13
- package/dist/services/webview/WebViewExecutionService.mjs.map +1 -1
- package/dist/services/webview/WebViewMessageStream.cjs +89 -0
- package/dist/services/webview/WebViewMessageStream.cjs.map +1 -0
- package/dist/{types/services/webview/WebViewMessageStream.d.ts → services/webview/WebViewMessageStream.d.cts} +3 -2
- package/dist/services/webview/WebViewMessageStream.d.cts.map +1 -0
- package/dist/services/webview/WebViewMessageStream.d.mts +33 -0
- package/dist/services/webview/WebViewMessageStream.d.mts.map +1 -0
- package/dist/services/webview/WebViewMessageStream.mjs +84 -6
- package/dist/services/webview/WebViewMessageStream.mjs.map +1 -1
- package/dist/services/webview/index.cjs +18 -0
- package/dist/services/webview/index.cjs.map +1 -0
- package/dist/services/webview/index.d.cts +2 -0
- package/dist/services/webview/index.d.cts.map +1 -0
- package/dist/services/webview/index.d.mts +2 -0
- package/dist/services/webview/index.d.mts.map +1 -0
- package/dist/services/webview/index.mjs +1 -15
- package/dist/services/webview/index.mjs.map +1 -1
- package/dist/services/webworker/WebWorkerExecutionService.cjs +101 -0
- package/dist/services/webworker/WebWorkerExecutionService.cjs.map +1 -0
- package/dist/{types/services/webworker/WebWorkerExecutionService.d.ts → services/webworker/WebWorkerExecutionService.d.cts} +5 -3
- package/dist/services/webworker/WebWorkerExecutionService.d.cts.map +1 -0
- package/dist/services/webworker/WebWorkerExecutionService.d.mts +47 -0
- package/dist/services/webworker/WebWorkerExecutionService.d.mts.map +1 -0
- package/dist/services/webworker/WebWorkerExecutionService.mjs +96 -13
- package/dist/services/webworker/WebWorkerExecutionService.mjs.map +1 -1
- package/dist/services/webworker/index.cjs +18 -0
- package/dist/services/webworker/index.cjs.map +1 -0
- package/dist/services/webworker/index.d.cts +2 -0
- package/dist/services/webworker/index.d.cts.map +1 -0
- package/dist/services/webworker/index.d.mts +2 -0
- package/dist/services/webworker/index.d.mts.map +1 -0
- package/dist/services/webworker/index.mjs +1 -15
- package/dist/services/webworker/index.mjs.map +1 -1
- package/dist/snaps/RequestQueue.cjs +44 -0
- package/dist/snaps/RequestQueue.cjs.map +1 -0
- package/dist/{types/snaps/RequestQueue.d.ts → snaps/RequestQueue.d.cts} +1 -0
- package/dist/snaps/RequestQueue.d.cts.map +1 -0
- package/dist/snaps/RequestQueue.d.mts +25 -0
- package/dist/snaps/RequestQueue.d.mts.map +1 -0
- package/dist/snaps/RequestQueue.mjs +39 -7
- package/dist/snaps/RequestQueue.mjs.map +1 -1
- package/dist/snaps/SnapController.cjs +1896 -0
- package/dist/snaps/SnapController.cjs.map +1 -0
- package/dist/{types/snaps/SnapController.d.ts → snaps/SnapController.d.cts} +39 -21
- package/dist/snaps/SnapController.d.cts.map +1 -0
- package/dist/snaps/SnapController.d.mts +667 -0
- package/dist/snaps/SnapController.d.mts.map +1 -0
- package/dist/snaps/SnapController.mjs +1890 -28
- package/dist/snaps/SnapController.mjs.map +1 -1
- package/dist/snaps/Timer.cjs +103 -0
- package/dist/snaps/Timer.cjs.map +1 -0
- package/dist/{types/snaps/Timer.d.ts → snaps/Timer.d.cts} +1 -0
- package/dist/snaps/Timer.d.cts.map +1 -0
- package/dist/snaps/Timer.d.mts +47 -0
- package/dist/snaps/Timer.d.mts.map +1 -0
- package/dist/snaps/Timer.mjs +98 -7
- package/dist/snaps/Timer.mjs.map +1 -1
- package/dist/snaps/constants.cjs +24 -0
- package/dist/snaps/constants.cjs.map +1 -0
- package/dist/{types/snaps/constants.d.ts → snaps/constants.d.cts} +1 -0
- package/dist/snaps/constants.d.cts.map +1 -0
- package/dist/snaps/constants.d.mts +8 -0
- package/dist/snaps/constants.d.mts.map +1 -0
- package/dist/snaps/constants.mjs +19 -8
- package/dist/snaps/constants.mjs.map +1 -1
- package/dist/snaps/index.cjs +21 -0
- package/dist/snaps/index.cjs.map +1 -0
- package/dist/snaps/index.d.cts +5 -0
- package/dist/snaps/index.d.cts.map +1 -0
- package/dist/snaps/index.d.mts +5 -0
- package/dist/snaps/index.d.mts.map +1 -0
- package/dist/snaps/index.mjs +4 -62
- package/dist/snaps/index.mjs.map +1 -1
- package/dist/snaps/location/http.cjs +75 -0
- package/dist/snaps/location/http.cjs.map +1 -0
- package/dist/{types/snaps/location/http.d.ts → snaps/location/http.d.cts} +4 -3
- package/dist/snaps/location/http.d.cts.map +1 -0
- package/dist/snaps/location/http.d.mts +23 -0
- package/dist/snaps/location/http.d.mts.map +1 -0
- package/dist/snaps/location/http.mjs +70 -7
- package/dist/snaps/location/http.mjs.map +1 -1
- package/dist/snaps/location/index.cjs +21 -0
- package/dist/snaps/location/index.cjs.map +1 -0
- package/dist/snaps/location/index.d.cts +5 -0
- package/dist/snaps/location/index.d.cts.map +1 -0
- package/dist/snaps/location/index.d.mts +5 -0
- package/dist/snaps/location/index.d.mts.map +1 -0
- package/dist/snaps/location/index.mjs +4 -30
- package/dist/snaps/location/index.mjs.map +1 -1
- package/dist/snaps/location/local.cjs +51 -0
- package/dist/snaps/location/local.cjs.map +1 -0
- package/dist/{types/snaps/location/local.d.ts → snaps/location/local.d.cts} +4 -3
- package/dist/snaps/location/local.d.cts.map +1 -0
- package/dist/snaps/location/local.d.mts +11 -0
- package/dist/snaps/location/local.d.mts.map +1 -0
- package/dist/snaps/location/local.mjs +45 -7
- package/dist/snaps/location/local.mjs.map +1 -1
- package/dist/snaps/location/location.cjs +34 -0
- package/dist/{chunk-2AEM5R2M.mjs.map → snaps/location/location.cjs.map} +1 -1
- package/dist/{types/snaps/location/location.d.ts → snaps/location/location.d.cts} +4 -3
- package/dist/snaps/location/location.d.cts.map +1 -0
- package/dist/snaps/location/location.d.mts +45 -0
- package/dist/snaps/location/location.d.mts.map +1 -0
- package/dist/snaps/location/location.mjs +29 -10
- package/dist/snaps/location/location.mjs.map +1 -1
- package/dist/snaps/location/npm.cjs +335 -0
- package/dist/snaps/location/npm.cjs.map +1 -0
- package/dist/{types/snaps/location/npm.d.ts → snaps/location/npm.d.cts} +5 -4
- package/dist/snaps/location/npm.d.cts.map +1 -0
- package/dist/snaps/location/npm.d.mts +84 -0
- package/dist/snaps/location/npm.d.mts.map +1 -0
- package/dist/snaps/location/npm.mjs +331 -16
- package/dist/snaps/location/npm.mjs.map +1 -1
- package/dist/snaps/registry/index.cjs +19 -0
- package/dist/snaps/registry/index.cjs.map +1 -0
- package/dist/snaps/registry/index.d.cts +3 -0
- package/dist/snaps/registry/index.d.cts.map +1 -0
- package/dist/snaps/registry/index.d.mts +3 -0
- package/dist/snaps/registry/index.d.mts.map +1 -0
- package/dist/snaps/registry/index.mjs +2 -12
- package/dist/snaps/registry/index.mjs.map +1 -1
- package/dist/snaps/registry/json.cjs +224 -0
- package/dist/snaps/registry/json.cjs.map +1 -0
- package/dist/{types/snaps/registry/json.d.ts → snaps/registry/json.d.cts} +10 -7
- package/dist/snaps/registry/json.d.cts.map +1 -0
- package/dist/snaps/registry/json.d.mts +51 -0
- package/dist/snaps/registry/json.d.mts.map +1 -0
- package/dist/snaps/registry/json.mjs +219 -7
- package/dist/snaps/registry/json.mjs.map +1 -1
- package/dist/snaps/registry/registry.cjs +11 -0
- package/dist/snaps/registry/registry.cjs.map +1 -0
- package/dist/{types/snaps/registry/registry.d.ts → snaps/registry/registry.d.cts} +4 -3
- package/dist/snaps/registry/registry.d.cts.map +1 -0
- package/dist/snaps/registry/registry.d.mts +42 -0
- package/dist/snaps/registry/registry.d.mts.map +1 -0
- package/dist/snaps/registry/registry.mjs +7 -7
- package/dist/snaps/registry/registry.mjs.map +1 -1
- package/dist/snaps/selectors.cjs +6 -0
- package/dist/snaps/selectors.cjs.map +1 -0
- package/dist/snaps/selectors.d.cts +3 -0
- package/dist/snaps/selectors.d.cts.map +1 -0
- package/dist/snaps/selectors.d.mts +3 -0
- package/dist/snaps/selectors.d.mts.map +1 -0
- package/dist/snaps/selectors.mjs +1 -7
- package/dist/snaps/selectors.mjs.map +1 -1
- package/dist/types/controllers.cjs +4 -0
- package/dist/types/controllers.cjs.map +1 -0
- package/dist/types/{types/controllers.d.ts → controllers.d.cts} +3 -2
- package/dist/types/controllers.d.cts.map +1 -0
- package/dist/types/controllers.d.mts +132 -0
- package/dist/types/controllers.d.mts.map +1 -0
- package/dist/types/controllers.mjs +2 -1
- package/dist/types/controllers.mjs.map +1 -1
- package/dist/types/encryptor.cjs +3 -0
- package/dist/types/encryptor.cjs.map +1 -0
- package/dist/types/{types/encryptor.d.ts → encryptor.d.cts} +2 -1
- package/dist/types/encryptor.d.cts.map +1 -0
- package/dist/types/encryptor.d.mts +99 -0
- package/dist/types/encryptor.d.mts.map +1 -0
- package/dist/types/encryptor.mjs +1 -1
- package/dist/types/encryptor.mjs.map +1 -1
- package/dist/types/index.cjs +19 -0
- package/dist/types/index.cjs.map +1 -0
- package/dist/types/index.d.cts +3 -0
- package/dist/types/index.d.cts.map +1 -0
- package/dist/types/index.d.mts +3 -0
- package/dist/types/index.d.mts.map +1 -0
- package/dist/types/index.mjs +2 -2
- package/dist/types/index.mjs.map +1 -1
- package/dist/utils.cjs +174 -0
- package/dist/utils.cjs.map +1 -0
- package/dist/{types/utils.d.ts → utils.d.cts} +9 -15
- package/dist/utils.d.cts.map +1 -0
- package/dist/utils.d.mts +245 -0
- package/dist/utils.d.mts.map +1 -0
- package/dist/utils.mjs +167 -22
- package/dist/utils.mjs.map +1 -1
- package/package.json +42 -30
- package/react-native.d.ts +3 -1
- package/react-native.js +1 -1
- package/dist/chunk-272IFIK7.mjs +0 -1
- package/dist/chunk-272IFIK7.mjs.map +0 -1
- package/dist/chunk-2AEM5R2M.mjs +0 -40
- package/dist/chunk-2MH7QYBP.mjs +0 -2548
- package/dist/chunk-2MH7QYBP.mjs.map +0 -1
- package/dist/chunk-2XQD4P2S.mjs +0 -1
- package/dist/chunk-2XQD4P2S.mjs.map +0 -1
- package/dist/chunk-33RRV7F4.mjs +0 -283
- package/dist/chunk-33RRV7F4.mjs.map +0 -1
- package/dist/chunk-3RNW7OKG.mjs +0 -1
- package/dist/chunk-3RNW7OKG.mjs.map +0 -1
- package/dist/chunk-3WEWHK2I.mjs +0 -104
- package/dist/chunk-3WEWHK2I.mjs.map +0 -1
- package/dist/chunk-4CA3O64H.js +0 -13
- package/dist/chunk-4CA3O64H.js.map +0 -1
- package/dist/chunk-4HVWEABQ.mjs +0 -9
- package/dist/chunk-4HVWEABQ.mjs.map +0 -1
- package/dist/chunk-4M2FX2AT.mjs +0 -26
- package/dist/chunk-4M2FX2AT.mjs.map +0 -1
- package/dist/chunk-4URGXJP7.js +0 -1
- package/dist/chunk-4URGXJP7.js.map +0 -1
- package/dist/chunk-5O4O4BI5.js +0 -276
- package/dist/chunk-5O4O4BI5.js.map +0 -1
- package/dist/chunk-6EZSNS4O.mjs +0 -59
- package/dist/chunk-6EZSNS4O.mjs.map +0 -1
- package/dist/chunk-6GMWL4JR.mjs +0 -92
- package/dist/chunk-6GMWL4JR.mjs.map +0 -1
- package/dist/chunk-6M4XK4PN.mjs +0 -273
- package/dist/chunk-6M4XK4PN.mjs.map +0 -1
- package/dist/chunk-6WGCLJGC.mjs +0 -58
- package/dist/chunk-6WGCLJGC.mjs.map +0 -1
- package/dist/chunk-7BUNUNUC.js +0 -58
- package/dist/chunk-7BUNUNUC.js.map +0 -1
- package/dist/chunk-7Y6P5FRN.js +0 -60
- package/dist/chunk-7Y6P5FRN.js.map +0 -1
- package/dist/chunk-A6WJEA3C.js +0 -1
- package/dist/chunk-A6WJEA3C.js.map +0 -1
- package/dist/chunk-AP7CJ6DA.js +0 -47
- package/dist/chunk-AP7CJ6DA.js.map +0 -1
- package/dist/chunk-B3UTLNYS.mjs +0 -48
- package/dist/chunk-B3UTLNYS.mjs.map +0 -1
- package/dist/chunk-B6KTRDBK.js +0 -127
- package/dist/chunk-B6KTRDBK.js.map +0 -1
- package/dist/chunk-B7R3EWM3.mjs +0 -1
- package/dist/chunk-B7R3EWM3.mjs.map +0 -1
- package/dist/chunk-BAEXVO3U.mjs +0 -1
- package/dist/chunk-BAEXVO3U.mjs.map +0 -1
- package/dist/chunk-BO2ZDPWV.js +0 -59
- package/dist/chunk-BO2ZDPWV.js.map +0 -1
- package/dist/chunk-BOFPNIRX.js +0 -119
- package/dist/chunk-BOFPNIRX.js.map +0 -1
- package/dist/chunk-C4D6GBMY.js +0 -71
- package/dist/chunk-C4D6GBMY.js.map +0 -1
- package/dist/chunk-CJY2LYEL.mjs +0 -253
- package/dist/chunk-CJY2LYEL.mjs.map +0 -1
- package/dist/chunk-CPUUURMT.js +0 -273
- package/dist/chunk-CPUUURMT.js.map +0 -1
- package/dist/chunk-D66YLO7T.js +0 -38
- package/dist/chunk-D66YLO7T.js.map +0 -1
- package/dist/chunk-D74XJG2L.js +0 -1
- package/dist/chunk-D74XJG2L.js.map +0 -1
- package/dist/chunk-ESQPQNEF.mjs +0 -1
- package/dist/chunk-ESQPQNEF.mjs.map +0 -1
- package/dist/chunk-EVKVZUYY.js +0 -104
- package/dist/chunk-EVKVZUYY.js.map +0 -1
- package/dist/chunk-EXN2TFDJ.js +0 -38
- package/dist/chunk-EXN2TFDJ.js.map +0 -1
- package/dist/chunk-FKQTV3LO.js +0 -2548
- package/dist/chunk-FKQTV3LO.js.map +0 -1
- package/dist/chunk-FX5AADOV.mjs +0 -1
- package/dist/chunk-FX5AADOV.mjs.map +0 -1
- package/dist/chunk-FZOI4WPB.js +0 -82
- package/dist/chunk-FZOI4WPB.js.map +0 -1
- package/dist/chunk-G66GQJS6.js +0 -1
- package/dist/chunk-G66GQJS6.js.map +0 -1
- package/dist/chunk-G7U6WKWS.mjs +0 -1
- package/dist/chunk-G7U6WKWS.mjs.map +0 -1
- package/dist/chunk-HLQQTAMM.mjs +0 -105
- package/dist/chunk-HLQQTAMM.mjs.map +0 -1
- package/dist/chunk-HOY6NKQR.js +0 -1
- package/dist/chunk-HOY6NKQR.js.map +0 -1
- package/dist/chunk-HP6S5IOB.js +0 -1
- package/dist/chunk-HP6S5IOB.js.map +0 -1
- package/dist/chunk-HWJE3SDW.mjs +0 -1
- package/dist/chunk-HWJE3SDW.mjs.map +0 -1
- package/dist/chunk-IABOI7TW.mjs +0 -1
- package/dist/chunk-IABOI7TW.mjs.map +0 -1
- package/dist/chunk-IDCWJJCQ.js +0 -1
- package/dist/chunk-IDCWJJCQ.js.map +0 -1
- package/dist/chunk-IGC4E7PI.mjs +0 -71
- package/dist/chunk-IGC4E7PI.mjs.map +0 -1
- package/dist/chunk-JAUAKTUL.js +0 -1
- package/dist/chunk-JAUAKTUL.js.map +0 -1
- package/dist/chunk-JQ54YYLU.js +0 -26
- package/dist/chunk-JQ54YYLU.js.map +0 -1
- package/dist/chunk-JW7WBUL7.js +0 -1
- package/dist/chunk-JW7WBUL7.js.map +0 -1
- package/dist/chunk-KCMULJ2M.mjs +0 -1
- package/dist/chunk-KCMULJ2M.mjs.map +0 -1
- package/dist/chunk-KELDSV7H.js +0 -39
- package/dist/chunk-KELDSV7H.js.map +0 -1
- package/dist/chunk-KRI4OKC3.mjs +0 -127
- package/dist/chunk-KRI4OKC3.mjs.map +0 -1
- package/dist/chunk-KYRKZ3RH.mjs +0 -38
- package/dist/chunk-KYRKZ3RH.mjs.map +0 -1
- package/dist/chunk-LDL6LJ3P.mjs +0 -38
- package/dist/chunk-LDL6LJ3P.mjs.map +0 -1
- package/dist/chunk-LWBPKSU2.js +0 -48
- package/dist/chunk-LWBPKSU2.js.map +0 -1
- package/dist/chunk-M7DWHPVM.js +0 -1
- package/dist/chunk-M7DWHPVM.js.map +0 -1
- package/dist/chunk-NC5PBDKD.mjs +0 -47
- package/dist/chunk-NC5PBDKD.mjs.map +0 -1
- package/dist/chunk-NXZVKBSV.js +0 -9
- package/dist/chunk-NXZVKBSV.js.map +0 -1
- package/dist/chunk-NZOUFWUN.mjs +0 -1
- package/dist/chunk-NZOUFWUN.mjs.map +0 -1
- package/dist/chunk-OHMCPTOI.js +0 -1
- package/dist/chunk-OHMCPTOI.js.map +0 -1
- package/dist/chunk-OIEUL55W.js +0 -1
- package/dist/chunk-OIEUL55W.js.map +0 -1
- package/dist/chunk-OJBUUQ5D.js +0 -253
- package/dist/chunk-OJBUUQ5D.js.map +0 -1
- package/dist/chunk-OVATPF5I.js +0 -58
- package/dist/chunk-OVATPF5I.js.map +0 -1
- package/dist/chunk-P66VIDFG.js +0 -105
- package/dist/chunk-P66VIDFG.js.map +0 -1
- package/dist/chunk-P7Y6MIZW.mjs +0 -7
- package/dist/chunk-P7Y6MIZW.mjs.map +0 -1
- package/dist/chunk-POQSARDG.js +0 -40
- package/dist/chunk-POQSARDG.js.map +0 -1
- package/dist/chunk-PYSDWIVK.js +0 -38
- package/dist/chunk-PYSDWIVK.js.map +0 -1
- package/dist/chunk-QL3QGUTM.mjs +0 -1
- package/dist/chunk-QL3QGUTM.mjs.map +0 -1
- package/dist/chunk-QRISQRFI.js +0 -399
- package/dist/chunk-QRISQRFI.js.map +0 -1
- package/dist/chunk-RDBT3ZJQ.js +0 -92
- package/dist/chunk-RDBT3ZJQ.js.map +0 -1
- package/dist/chunk-TG6OXBLR.js +0 -1
- package/dist/chunk-TG6OXBLR.js.map +0 -1
- package/dist/chunk-TMWMIQV4.js +0 -1
- package/dist/chunk-TMWMIQV4.js.map +0 -1
- package/dist/chunk-TSDUJNOP.mjs +0 -399
- package/dist/chunk-TSDUJNOP.mjs.map +0 -1
- package/dist/chunk-U74FML7Z.mjs +0 -1
- package/dist/chunk-U74FML7Z.mjs.map +0 -1
- package/dist/chunk-UMVUXQ3B.mjs +0 -276
- package/dist/chunk-UMVUXQ3B.mjs.map +0 -1
- package/dist/chunk-V6NFZ47P.mjs +0 -1
- package/dist/chunk-V6NFZ47P.mjs.map +0 -1
- package/dist/chunk-VKMY6CKT.mjs +0 -39
- package/dist/chunk-VKMY6CKT.mjs.map +0 -1
- package/dist/chunk-VNOCJWOK.js +0 -1
- package/dist/chunk-VNOCJWOK.js.map +0 -1
- package/dist/chunk-WEY7ICES.js +0 -1
- package/dist/chunk-WEY7ICES.js.map +0 -1
- package/dist/chunk-WKQRCGUW.mjs +0 -331
- package/dist/chunk-WKQRCGUW.mjs.map +0 -1
- package/dist/chunk-WR7CVDEY.mjs +0 -58
- package/dist/chunk-WR7CVDEY.mjs.map +0 -1
- package/dist/chunk-XFUP7RFI.js +0 -283
- package/dist/chunk-XFUP7RFI.js.map +0 -1
- package/dist/chunk-XO7KDFBY.mjs +0 -119
- package/dist/chunk-XO7KDFBY.mjs.map +0 -1
- package/dist/chunk-XOSHP4J3.mjs +0 -82
- package/dist/chunk-XOSHP4J3.mjs.map +0 -1
- package/dist/chunk-XWDEGRM5.js +0 -331
- package/dist/chunk-XWDEGRM5.js.map +0 -1
- package/dist/chunk-YRZVIDCF.mjs +0 -38
- package/dist/chunk-YRZVIDCF.mjs.map +0 -1
- package/dist/chunk-YYPUPKQY.js +0 -7
- package/dist/chunk-YYPUPKQY.js.map +0 -1
- package/dist/chunk-ZQAGLOXD.mjs +0 -1
- package/dist/chunk-ZQAGLOXD.mjs.map +0 -1
- package/dist/chunk-ZVOYOZFT.mjs +0 -60
- package/dist/chunk-ZVOYOZFT.mjs.map +0 -1
- package/dist/chunk-ZZD3HUNE.mjs +0 -13
- package/dist/chunk-ZZD3HUNE.mjs.map +0 -1
- package/dist/cronjob/CronjobController.js +0 -43
- package/dist/cronjob/CronjobController.js.map +0 -1
- package/dist/cronjob/index.js +0 -43
- package/dist/cronjob/index.js.map +0 -1
- package/dist/fsm.js +0 -10
- package/dist/fsm.js.map +0 -1
- package/dist/index.js +0 -125
- package/dist/index.js.map +0 -1
- package/dist/insights/SnapInsightsController.js +0 -25
- package/dist/insights/SnapInsightsController.js.map +0 -1
- package/dist/insights/index.js +0 -26
- package/dist/insights/index.js.map +0 -1
- package/dist/interface/SnapInterfaceController.js +0 -9
- package/dist/interface/SnapInterfaceController.js.map +0 -1
- package/dist/interface/index.js +0 -10
- package/dist/interface/index.js.map +0 -1
- package/dist/interface/utils.js +0 -14
- package/dist/interface/utils.js.map +0 -1
- package/dist/logging.js +0 -8
- package/dist/logging.js.map +0 -1
- package/dist/node.js +0 -135
- package/dist/node.js.map +0 -1
- package/dist/react-native.js +0 -132
- package/dist/react-native.js.map +0 -1
- package/dist/services/AbstractExecutionService.js +0 -13
- package/dist/services/AbstractExecutionService.js.map +0 -1
- package/dist/services/ExecutionService.js +0 -2
- package/dist/services/ExecutionService.js.map +0 -1
- package/dist/services/ProxyPostMessageStream.js +0 -8
- package/dist/services/ProxyPostMessageStream.js.map +0 -1
- package/dist/services/browser.js +0 -40
- package/dist/services/browser.js.map +0 -1
- package/dist/services/iframe/IframeExecutionService.js +0 -12
- package/dist/services/iframe/IframeExecutionService.js.map +0 -1
- package/dist/services/iframe/index.js +0 -13
- package/dist/services/iframe/index.js.map +0 -1
- package/dist/services/index.js +0 -35
- package/dist/services/index.js.map +0 -1
- package/dist/services/node-js/NodeProcessExecutionService.js +0 -22
- package/dist/services/node-js/NodeProcessExecutionService.js.map +0 -1
- package/dist/services/node-js/NodeThreadExecutionService.js +0 -22
- package/dist/services/node-js/NodeThreadExecutionService.js.map +0 -1
- package/dist/services/node-js/index.js +0 -27
- package/dist/services/node-js/index.js.map +0 -1
- package/dist/services/node.js +0 -45
- package/dist/services/node.js.map +0 -1
- package/dist/services/offscreen/OffscreenExecutionService.js +0 -14
- package/dist/services/offscreen/OffscreenExecutionService.js.map +0 -1
- package/dist/services/offscreen/index.js +0 -15
- package/dist/services/offscreen/index.js.map +0 -1
- package/dist/services/proxy/ProxyExecutionService.js +0 -13
- package/dist/services/proxy/ProxyExecutionService.js.map +0 -1
- package/dist/services/react-native.js +0 -42
- package/dist/services/react-native.js.map +0 -1
- package/dist/services/webview/WebViewExecutionService.js +0 -15
- package/dist/services/webview/WebViewExecutionService.js.map +0 -1
- package/dist/services/webview/WebViewMessageStream.js +0 -8
- package/dist/services/webview/WebViewMessageStream.js.map +0 -1
- package/dist/services/webview/index.js +0 -16
- package/dist/services/webview/index.js.map +0 -1
- package/dist/services/webworker/WebWorkerExecutionService.js +0 -15
- package/dist/services/webworker/WebWorkerExecutionService.js.map +0 -1
- package/dist/services/webworker/index.js +0 -16
- package/dist/services/webworker/index.js.map +0 -1
- package/dist/snaps/RequestQueue.js +0 -8
- package/dist/snaps/RequestQueue.js.map +0 -1
- package/dist/snaps/SnapController.js +0 -30
- package/dist/snaps/SnapController.js.map +0 -1
- package/dist/snaps/Timer.js +0 -8
- package/dist/snaps/Timer.js.map +0 -1
- package/dist/snaps/constants.js +0 -10
- package/dist/snaps/constants.js.map +0 -1
- package/dist/snaps/index.js +0 -63
- package/dist/snaps/index.js.map +0 -1
- package/dist/snaps/location/http.js +0 -8
- package/dist/snaps/location/http.js.map +0 -1
- package/dist/snaps/location/index.js +0 -31
- package/dist/snaps/location/index.js.map +0 -1
- package/dist/snaps/location/local.js +0 -9
- package/dist/snaps/location/local.js.map +0 -1
- package/dist/snaps/location/location.js +0 -11
- package/dist/snaps/location/location.js.map +0 -1
- package/dist/snaps/location/npm.js +0 -18
- package/dist/snaps/location/npm.js.map +0 -1
- package/dist/snaps/registry/index.js +0 -13
- package/dist/snaps/registry/index.js.map +0 -1
- package/dist/snaps/registry/json.js +0 -9
- package/dist/snaps/registry/json.js.map +0 -1
- package/dist/snaps/registry/registry.js +0 -8
- package/dist/snaps/registry/registry.js.map +0 -1
- package/dist/snaps/selectors.js +0 -8
- package/dist/snaps/selectors.js.map +0 -1
- package/dist/tsconfig.build.tsbuildinfo +0 -1
- package/dist/types/controllers.js +0 -2
- package/dist/types/controllers.js.map +0 -1
- package/dist/types/cronjob/index.d.ts +0 -1
- package/dist/types/encryptor.js +0 -2
- package/dist/types/encryptor.js.map +0 -1
- package/dist/types/index.d.ts +0 -7
- package/dist/types/index.js +0 -3
- package/dist/types/index.js.map +0 -1
- package/dist/types/insights/index.d.ts +0 -1
- package/dist/types/interface/index.d.ts +0 -1
- package/dist/types/node.d.ts +0 -2
- package/dist/types/react-native.d.ts +0 -2
- package/dist/types/services/browser.d.ts +0 -7
- package/dist/types/services/iframe/index.d.ts +0 -1
- package/dist/types/services/index.d.ts +0 -6
- package/dist/types/services/node-js/index.d.ts +0 -2
- package/dist/types/services/node.d.ts +0 -2
- package/dist/types/services/offscreen/index.d.ts +0 -1
- package/dist/types/services/react-native.d.ts +0 -2
- package/dist/types/services/webview/index.d.ts +0 -1
- package/dist/types/services/webworker/index.d.ts +0 -1
- package/dist/types/snaps/index.d.ts +0 -4
- package/dist/types/snaps/location/index.d.ts +0 -4
- package/dist/types/snaps/registry/index.d.ts +0 -2
- package/dist/types/snaps/selectors.d.ts +0 -2
- package/dist/types/types/index.d.ts +0 -2
- package/dist/types/vendor/global.d.js +0 -1
- package/dist/types/vendor/global.d.js.map +0 -1
- package/dist/types/vendor/global.d.mjs +0 -1
- package/dist/types/vendor/global.d.mjs.map +0 -1
- package/dist/types/vendor/readable-stream.d.js +0 -1
- package/dist/types/vendor/readable-stream.d.js.map +0 -1
- package/dist/types/vendor/readable-stream.d.mjs +0 -1
- package/dist/types/vendor/readable-stream.d.mjs.map +0 -1
- package/dist/types/vendor/zlib.d.js +0 -1
- package/dist/types/vendor/zlib.d.js.map +0 -1
- package/dist/types/vendor/zlib.d.mjs +0 -1
- package/dist/types/vendor/zlib.d.mjs.map +0 -1
- package/dist/utils.js +0 -23
- package/dist/utils.js.map +0 -1
package/dist/chunk-5O4O4BI5.js
DELETED
|
@@ -1,276 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
-
|
|
3
|
-
var _chunkYYPUPKQYjs = require('./chunk-YYPUPKQY.js');
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var _chunkEXN2TFDJjs = require('./chunk-EXN2TFDJ.js');
|
|
8
|
-
|
|
9
|
-
// src/insights/SnapInsightsController.ts
|
|
10
|
-
var _basecontroller = require('@metamask/base-controller');
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
var _snapsrpcmethods = require('@metamask/snaps-rpc-methods');
|
|
16
|
-
var _snapsutils = require('@metamask/snaps-utils');
|
|
17
|
-
var _utils = require('@metamask/utils');
|
|
18
|
-
var controllerName = "SnapInsightsController";
|
|
19
|
-
var _hasInsight, hasInsight_fn, _getSnapsWithPermission, getSnapsWithPermission_fn, _handleTransaction, handleTransaction_fn, _handleSignatureStateChange, handleSignatureStateChange_fn, _handleSignature, handleSignature_fn, _handleTransactionStatusUpdate, handleTransactionStatusUpdate_fn, _handleInsightCleanup, handleInsightCleanup_fn, _handleSnapRequest, handleSnapRequest_fn, _handleSnapResponse, handleSnapResponse_fn;
|
|
20
|
-
var SnapInsightsController = class extends _basecontroller.BaseController {
|
|
21
|
-
constructor({ messenger, state }) {
|
|
22
|
-
super({
|
|
23
|
-
messenger,
|
|
24
|
-
metadata: {
|
|
25
|
-
insights: { persist: false, anonymous: false }
|
|
26
|
-
},
|
|
27
|
-
name: controllerName,
|
|
28
|
-
state: { insights: {}, ...state }
|
|
29
|
-
});
|
|
30
|
-
/**
|
|
31
|
-
* Check if an insight already exists for a given ID.
|
|
32
|
-
*
|
|
33
|
-
* @param id - The ID.
|
|
34
|
-
* @returns True if the insight already exists, otherwise false.
|
|
35
|
-
*/
|
|
36
|
-
_chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _hasInsight);
|
|
37
|
-
/**
|
|
38
|
-
* Get a list of runnable Snaps that have a given permission.
|
|
39
|
-
* Also includes the permission object itself.
|
|
40
|
-
*
|
|
41
|
-
* @param permissionName - The permission name.
|
|
42
|
-
* @returns A list of objects containing Snap IDs and the permission object.
|
|
43
|
-
*/
|
|
44
|
-
_chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _getSnapsWithPermission);
|
|
45
|
-
/**
|
|
46
|
-
* Handle a newly added unapproved transaction.
|
|
47
|
-
* This function fetches insights from all available Snaps
|
|
48
|
-
* and populates the insights state blob with the responses.
|
|
49
|
-
*
|
|
50
|
-
* @param transaction - The transaction object.
|
|
51
|
-
*/
|
|
52
|
-
_chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _handleTransaction);
|
|
53
|
-
/**
|
|
54
|
-
* Handle the stateChange event emitted by the SignatureController.
|
|
55
|
-
* This function will remove existing insights from the state when applicable, as well as
|
|
56
|
-
* trigger insight fetching for newly added signatures.
|
|
57
|
-
*
|
|
58
|
-
* @param state - The SignatureController state blob.
|
|
59
|
-
*/
|
|
60
|
-
_chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _handleSignatureStateChange);
|
|
61
|
-
/**
|
|
62
|
-
* Handle a newly added unapproved signature.
|
|
63
|
-
* This function fetches insights from all available Snaps
|
|
64
|
-
* and populates the insights state blob with the responses.
|
|
65
|
-
*
|
|
66
|
-
* @param snaps - A list of Snaps to invoke.
|
|
67
|
-
* @param signature - The signature object.
|
|
68
|
-
*/
|
|
69
|
-
_chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _handleSignature);
|
|
70
|
-
/**
|
|
71
|
-
* Handle the transactionStatusUpdated event emitted by the TransactionController.
|
|
72
|
-
* This function will remove insights for the transaction in question
|
|
73
|
-
* once the transaction status has changed from unapproved.
|
|
74
|
-
*
|
|
75
|
-
* @param args - An options bag.
|
|
76
|
-
* @param args.transactionMeta - The transaction.
|
|
77
|
-
*/
|
|
78
|
-
_chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _handleTransactionStatusUpdate);
|
|
79
|
-
_chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _handleInsightCleanup);
|
|
80
|
-
/**
|
|
81
|
-
* Handle sending a request to a given Snap with a given payload.
|
|
82
|
-
*
|
|
83
|
-
* @param args - An options bag.
|
|
84
|
-
* @param args.snapId - The Snap ID.
|
|
85
|
-
* @param args.handler - The handler to invoke.
|
|
86
|
-
* @param args.params - The JSON-RPC params to send.
|
|
87
|
-
* @returns The response from the Snap.
|
|
88
|
-
*/
|
|
89
|
-
_chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _handleSnapRequest);
|
|
90
|
-
/**
|
|
91
|
-
* Handle response from a given Snap by persisting the response or error in state.
|
|
92
|
-
*
|
|
93
|
-
* @param args - An options bag.
|
|
94
|
-
* @param args.id - The transaction or signature ID.
|
|
95
|
-
* @param args.snapId - The Snap ID.
|
|
96
|
-
* @param args.response - An optional response object returned by the Snap.
|
|
97
|
-
* @param args.error - An optional error returned by the Snap.
|
|
98
|
-
*/
|
|
99
|
-
_chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _handleSnapResponse);
|
|
100
|
-
this.messagingSystem.subscribe(
|
|
101
|
-
"TransactionController:unapprovedTransactionAdded",
|
|
102
|
-
_chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _handleTransaction, handleTransaction_fn).bind(this)
|
|
103
|
-
);
|
|
104
|
-
this.messagingSystem.subscribe(
|
|
105
|
-
"TransactionController:transactionStatusUpdated",
|
|
106
|
-
_chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _handleTransactionStatusUpdate, handleTransactionStatusUpdate_fn).bind(this)
|
|
107
|
-
);
|
|
108
|
-
this.messagingSystem.subscribe(
|
|
109
|
-
"SignatureController:stateChange",
|
|
110
|
-
_chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _handleSignatureStateChange, handleSignatureStateChange_fn).bind(this)
|
|
111
|
-
);
|
|
112
|
-
}
|
|
113
|
-
};
|
|
114
|
-
_hasInsight = new WeakSet();
|
|
115
|
-
hasInsight_fn = function(id) {
|
|
116
|
-
return _utils.hasProperty.call(void 0, this.state.insights, id);
|
|
117
|
-
};
|
|
118
|
-
_getSnapsWithPermission = new WeakSet();
|
|
119
|
-
getSnapsWithPermission_fn = function(permissionName) {
|
|
120
|
-
const allSnaps = this.messagingSystem.call("SnapController:getAll");
|
|
121
|
-
const filteredSnaps = _chunkYYPUPKQYjs.getRunnableSnaps.call(void 0, allSnaps);
|
|
122
|
-
return filteredSnaps.reduce((accumulator, snap) => {
|
|
123
|
-
const permissions = this.messagingSystem.call(
|
|
124
|
-
"PermissionController:getPermissions",
|
|
125
|
-
snap.id
|
|
126
|
-
);
|
|
127
|
-
if (permissions && _utils.hasProperty.call(void 0, permissions, permissionName)) {
|
|
128
|
-
accumulator.push({
|
|
129
|
-
snapId: snap.id,
|
|
130
|
-
permission: permissions[permissionName]
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
return accumulator;
|
|
134
|
-
}, []);
|
|
135
|
-
};
|
|
136
|
-
_handleTransaction = new WeakSet();
|
|
137
|
-
handleTransaction_fn = function(transaction) {
|
|
138
|
-
const { id, txParams, chainId, origin } = transaction;
|
|
139
|
-
const caipChainId = `eip155:${parseInt(chainId, 16)}`;
|
|
140
|
-
const snaps = _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _getSnapsWithPermission, getSnapsWithPermission_fn).call(this, _snapsrpcmethods.SnapEndowments.TransactionInsight);
|
|
141
|
-
snaps.forEach(({ snapId, permission }) => {
|
|
142
|
-
const hasTransactionOriginCaveat = _snapsrpcmethods.getTransactionOriginCaveat.call(void 0, permission);
|
|
143
|
-
const transactionOrigin = hasTransactionOriginCaveat && origin ? origin : null;
|
|
144
|
-
this.update((state) => {
|
|
145
|
-
var _a;
|
|
146
|
-
(_a = state.insights)[id] ?? (_a[id] = {});
|
|
147
|
-
state.insights[id][snapId] = { snapId, loading: true };
|
|
148
|
-
});
|
|
149
|
-
_chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _handleSnapRequest, handleSnapRequest_fn).call(this, {
|
|
150
|
-
snapId,
|
|
151
|
-
handler: _snapsutils.HandlerType.OnTransaction,
|
|
152
|
-
params: {
|
|
153
|
-
transaction: txParams,
|
|
154
|
-
chainId: caipChainId,
|
|
155
|
-
transactionOrigin
|
|
156
|
-
}
|
|
157
|
-
}).then(
|
|
158
|
-
(response) => _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _handleSnapResponse, handleSnapResponse_fn).call(this, {
|
|
159
|
-
id,
|
|
160
|
-
snapId,
|
|
161
|
-
response
|
|
162
|
-
})
|
|
163
|
-
).catch((error) => _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _handleSnapResponse, handleSnapResponse_fn).call(this, { id, snapId, error }));
|
|
164
|
-
});
|
|
165
|
-
};
|
|
166
|
-
_handleSignatureStateChange = new WeakSet();
|
|
167
|
-
handleSignatureStateChange_fn = function(state) {
|
|
168
|
-
for (const id of Object.keys(this.state.insights)) {
|
|
169
|
-
if (!_utils.hasProperty.call(void 0, state.unapprovedTypedMessages, id) && !_utils.hasProperty.call(void 0, state.unapprovedPersonalMsgs, id)) {
|
|
170
|
-
_chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _handleInsightCleanup, handleInsightCleanup_fn).call(this, id);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
if (state.unapprovedPersonalMsgCount > 0 || state.unapprovedTypedMessagesCount > 0) {
|
|
174
|
-
const snaps = _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _getSnapsWithPermission, getSnapsWithPermission_fn).call(this, _snapsrpcmethods.SnapEndowments.SignatureInsight);
|
|
175
|
-
for (const personalSignature of Object.values(
|
|
176
|
-
state.unapprovedPersonalMsgs
|
|
177
|
-
)) {
|
|
178
|
-
_chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _handleSignature, handleSignature_fn).call(this, snaps, personalSignature);
|
|
179
|
-
}
|
|
180
|
-
for (const typedMessage of Object.values(state.unapprovedTypedMessages)) {
|
|
181
|
-
_chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _handleSignature, handleSignature_fn).call(this, snaps, typedMessage);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
};
|
|
185
|
-
_handleSignature = new WeakSet();
|
|
186
|
-
handleSignature_fn = function(snaps, signature) {
|
|
187
|
-
const { id, msgParams } = signature;
|
|
188
|
-
if (_chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _hasInsight, hasInsight_fn).call(this, id)) {
|
|
189
|
-
return;
|
|
190
|
-
}
|
|
191
|
-
const { from, data, signatureMethod, origin } = msgParams;
|
|
192
|
-
const shouldParse = signatureMethod === "eth_signTypedData_v3" || signatureMethod === "eth_signTypedData_v4";
|
|
193
|
-
const payload = {
|
|
194
|
-
from,
|
|
195
|
-
data: shouldParse ? JSON.parse(data) : data,
|
|
196
|
-
signatureMethod
|
|
197
|
-
};
|
|
198
|
-
snaps.forEach(({ snapId, permission }) => {
|
|
199
|
-
const hasSignatureOriginCaveat = _snapsrpcmethods.getSignatureOriginCaveat.call(void 0, permission);
|
|
200
|
-
const signatureOrigin = origin && hasSignatureOriginCaveat ? origin : null;
|
|
201
|
-
this.update((state) => {
|
|
202
|
-
var _a;
|
|
203
|
-
(_a = state.insights)[id] ?? (_a[id] = {});
|
|
204
|
-
state.insights[id][snapId] = { snapId, loading: true };
|
|
205
|
-
});
|
|
206
|
-
_chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _handleSnapRequest, handleSnapRequest_fn).call(this, {
|
|
207
|
-
snapId,
|
|
208
|
-
handler: _snapsutils.HandlerType.OnSignature,
|
|
209
|
-
params: { signature: payload, signatureOrigin }
|
|
210
|
-
}).then(
|
|
211
|
-
(response) => _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _handleSnapResponse, handleSnapResponse_fn).call(this, {
|
|
212
|
-
id,
|
|
213
|
-
snapId,
|
|
214
|
-
response
|
|
215
|
-
})
|
|
216
|
-
).catch((error) => _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _handleSnapResponse, handleSnapResponse_fn).call(this, { id, snapId, error }));
|
|
217
|
-
});
|
|
218
|
-
};
|
|
219
|
-
_handleTransactionStatusUpdate = new WeakSet();
|
|
220
|
-
handleTransactionStatusUpdate_fn = function({
|
|
221
|
-
transactionMeta
|
|
222
|
-
}) {
|
|
223
|
-
if (transactionMeta.status !== "unapproved") {
|
|
224
|
-
_chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _handleInsightCleanup, handleInsightCleanup_fn).call(this, transactionMeta.id);
|
|
225
|
-
}
|
|
226
|
-
};
|
|
227
|
-
_handleInsightCleanup = new WeakSet();
|
|
228
|
-
handleInsightCleanup_fn = function(id) {
|
|
229
|
-
if (!_chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _hasInsight, hasInsight_fn).call(this, id)) {
|
|
230
|
-
return;
|
|
231
|
-
}
|
|
232
|
-
Object.values(this.state.insights[id]).filter((insight) => insight.interfaceId).forEach((insight) => {
|
|
233
|
-
this.messagingSystem.call(
|
|
234
|
-
"SnapInterfaceController:deleteInterface",
|
|
235
|
-
insight.interfaceId
|
|
236
|
-
);
|
|
237
|
-
});
|
|
238
|
-
this.update((state) => {
|
|
239
|
-
delete state.insights[id];
|
|
240
|
-
});
|
|
241
|
-
};
|
|
242
|
-
_handleSnapRequest = new WeakSet();
|
|
243
|
-
handleSnapRequest_fn = async function({
|
|
244
|
-
snapId,
|
|
245
|
-
handler,
|
|
246
|
-
params
|
|
247
|
-
}) {
|
|
248
|
-
return this.messagingSystem.call("SnapController:handleRequest", {
|
|
249
|
-
snapId,
|
|
250
|
-
origin: "",
|
|
251
|
-
handler,
|
|
252
|
-
request: {
|
|
253
|
-
method: "",
|
|
254
|
-
params
|
|
255
|
-
}
|
|
256
|
-
});
|
|
257
|
-
};
|
|
258
|
-
_handleSnapResponse = new WeakSet();
|
|
259
|
-
handleSnapResponse_fn = function({
|
|
260
|
-
id,
|
|
261
|
-
snapId,
|
|
262
|
-
response,
|
|
263
|
-
error
|
|
264
|
-
}) {
|
|
265
|
-
this.update((state) => {
|
|
266
|
-
state.insights[id][snapId].loading = false;
|
|
267
|
-
state.insights[id][snapId].interfaceId = response?.id;
|
|
268
|
-
state.insights[id][snapId].severity = response?.severity;
|
|
269
|
-
state.insights[id][snapId].error = error?.message;
|
|
270
|
-
});
|
|
271
|
-
};
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
exports.SnapInsightsController = SnapInsightsController;
|
|
276
|
-
//# sourceMappingURL=chunk-5O4O4BI5.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/insights/SnapInsightsController.ts"],"names":[],"mappings":"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","sourcesContent":["import type { RestrictedControllerMessenger } from '@metamask/base-controller';\nimport { BaseController } from '@metamask/base-controller';\nimport type {\n Caveat,\n GetPermissions,\n ValidPermission,\n} from '@metamask/permission-controller';\nimport {\n getSignatureOriginCaveat,\n getTransactionOriginCaveat,\n SnapEndowments,\n} from '@metamask/snaps-rpc-methods';\nimport type { Json, SnapId } from '@metamask/snaps-sdk';\nimport { HandlerType } from '@metamask/snaps-utils';\nimport { hasProperty } from '@metamask/utils';\n\nimport type { DeleteInterface } from '../interface';\nimport type { GetAllSnaps, HandleSnapRequest } from '../snaps';\nimport { getRunnableSnaps } from '../snaps';\nimport type {\n TransactionControllerUnapprovedTransactionAddedEvent,\n TransactionMeta,\n SignatureStateChange,\n SignatureControllerState,\n StateSignature,\n TransactionControllerTransactionStatusUpdatedEvent,\n} from '../types';\n\nconst controllerName = 'SnapInsightsController';\n\nexport type SnapInsightsControllerAllowedActions =\n | HandleSnapRequest\n | GetAllSnaps\n | GetPermissions\n | DeleteInterface;\n\nexport type SnapInsightsControllerActions = never;\n\nexport type SnapInsightsControllerAllowedEvents =\n | TransactionControllerUnapprovedTransactionAddedEvent\n | TransactionControllerTransactionStatusUpdatedEvent\n | SignatureStateChange;\n\nexport type SnapInsightsControllerMessenger = RestrictedControllerMessenger<\n typeof controllerName,\n SnapInsightsControllerActions | SnapInsightsControllerAllowedActions,\n SnapInsightsControllerAllowedEvents,\n SnapInsightsControllerAllowedActions['type'],\n SnapInsightsControllerAllowedEvents['type']\n>;\n\nexport type SnapInsight = {\n snapId: SnapId;\n interfaceId?: string | null;\n error?: string;\n loading: boolean;\n severity?: string;\n};\n\nexport type SnapInsightsControllerState = {\n insights: Record<string, Record<SnapId, SnapInsight>>;\n};\n\nexport type SnapInsightsControllerArgs = {\n messenger: SnapInsightsControllerMessenger;\n state?: SnapInsightsControllerState;\n};\n\ntype SnapWithPermission = {\n snapId: SnapId;\n permission: ValidPermission<string, Caveat<string, Json>>;\n};\n\n/**\n * Controller for monitoring for new transactions and signatures to provide insight for.\n */\nexport class SnapInsightsController extends BaseController<\n typeof controllerName,\n SnapInsightsControllerState,\n SnapInsightsControllerMessenger\n> {\n constructor({ messenger, state }: SnapInsightsControllerArgs) {\n super({\n messenger,\n metadata: {\n insights: { persist: false, anonymous: false },\n },\n name: controllerName,\n state: { insights: {}, ...state },\n });\n\n this.messagingSystem.subscribe(\n 'TransactionController:unapprovedTransactionAdded',\n this.#handleTransaction.bind(this),\n );\n\n this.messagingSystem.subscribe(\n 'TransactionController:transactionStatusUpdated',\n this.#handleTransactionStatusUpdate.bind(this),\n );\n\n this.messagingSystem.subscribe(\n 'SignatureController:stateChange',\n this.#handleSignatureStateChange.bind(this),\n );\n }\n\n /**\n * Check if an insight already exists for a given ID.\n *\n * @param id - The ID.\n * @returns True if the insight already exists, otherwise false.\n */\n #hasInsight(id: string) {\n return hasProperty(this.state.insights, id);\n }\n\n /**\n * Get a list of runnable Snaps that have a given permission.\n * Also includes the permission object itself.\n *\n * @param permissionName - The permission name.\n * @returns A list of objects containing Snap IDs and the permission object.\n */\n #getSnapsWithPermission(permissionName: string) {\n const allSnaps = this.messagingSystem.call('SnapController:getAll');\n const filteredSnaps = getRunnableSnaps(allSnaps);\n\n return filteredSnaps.reduce<SnapWithPermission[]>((accumulator, snap) => {\n const permissions = this.messagingSystem.call(\n 'PermissionController:getPermissions',\n snap.id,\n );\n if (permissions && hasProperty(permissions, permissionName)) {\n accumulator.push({\n snapId: snap.id,\n permission: permissions[permissionName],\n });\n }\n\n return accumulator;\n }, []);\n }\n\n /**\n * Handle a newly added unapproved transaction.\n * This function fetches insights from all available Snaps\n * and populates the insights state blob with the responses.\n *\n * @param transaction - The transaction object.\n */\n #handleTransaction(transaction: TransactionMeta) {\n const { id, txParams, chainId, origin } = transaction;\n\n // This assumes that the transactions are EVM-compatible for now.\n const caipChainId = `eip155:${parseInt(chainId, 16)}`;\n\n const snaps = this.#getSnapsWithPermission(\n SnapEndowments.TransactionInsight,\n );\n\n snaps.forEach(({ snapId, permission }) => {\n const hasTransactionOriginCaveat = getTransactionOriginCaveat(permission);\n const transactionOrigin =\n hasTransactionOriginCaveat && origin ? origin : null;\n\n this.update((state) => {\n state.insights[id] ??= {};\n state.insights[id][snapId] = { snapId, loading: true };\n });\n\n this.#handleSnapRequest({\n snapId,\n handler: HandlerType.OnTransaction,\n params: {\n transaction: txParams,\n chainId: caipChainId,\n transactionOrigin,\n },\n })\n .then((response) =>\n this.#handleSnapResponse({\n id,\n snapId,\n response: response as Record<string, Json>,\n }),\n )\n .catch((error) => this.#handleSnapResponse({ id, snapId, error }));\n });\n }\n\n /**\n * Handle the stateChange event emitted by the SignatureController.\n * This function will remove existing insights from the state when applicable, as well as\n * trigger insight fetching for newly added signatures.\n *\n * @param state - The SignatureController state blob.\n */\n #handleSignatureStateChange(state: SignatureControllerState) {\n // If any IDs have disappeared since the last state update, the insight may be cleaned up.\n for (const id of Object.keys(this.state.insights)) {\n if (\n !hasProperty(state.unapprovedTypedMessages, id) &&\n !hasProperty(state.unapprovedPersonalMsgs, id)\n ) {\n this.#handleInsightCleanup(id);\n }\n }\n\n if (\n state.unapprovedPersonalMsgCount > 0 ||\n state.unapprovedTypedMessagesCount > 0\n ) {\n const snaps = this.#getSnapsWithPermission(\n SnapEndowments.SignatureInsight,\n );\n\n // This isn't very efficient, but SignatureController doesn't expose a better event for us to use yet.\n for (const personalSignature of Object.values(\n state.unapprovedPersonalMsgs,\n )) {\n this.#handleSignature(snaps, personalSignature);\n }\n\n for (const typedMessage of Object.values(state.unapprovedTypedMessages)) {\n this.#handleSignature(snaps, typedMessage);\n }\n }\n }\n\n /**\n * Handle a newly added unapproved signature.\n * This function fetches insights from all available Snaps\n * and populates the insights state blob with the responses.\n *\n * @param snaps - A list of Snaps to invoke.\n * @param signature - The signature object.\n */\n #handleSignature(snaps: SnapWithPermission[], signature: StateSignature) {\n const { id, msgParams } = signature;\n\n if (this.#hasInsight(id)) {\n return;\n }\n\n const { from, data, signatureMethod, origin } = msgParams;\n\n /**\n * Both eth_signTypedData_v3 and eth_signTypedData_v4 methods\n * need to be parsed because their data is stringified. All other\n * signature methods do not, so they are ignored.\n */\n const shouldParse =\n signatureMethod === 'eth_signTypedData_v3' ||\n signatureMethod === 'eth_signTypedData_v4';\n\n const payload = {\n from,\n data: shouldParse ? JSON.parse(data as string) : data,\n signatureMethod,\n };\n\n snaps.forEach(({ snapId, permission }) => {\n const hasSignatureOriginCaveat = getSignatureOriginCaveat(permission);\n const signatureOrigin =\n origin && hasSignatureOriginCaveat ? origin : null;\n\n this.update((state) => {\n state.insights[id] ??= {};\n state.insights[id][snapId] = { snapId, loading: true };\n });\n\n this.#handleSnapRequest({\n snapId,\n handler: HandlerType.OnSignature,\n params: { signature: payload, signatureOrigin },\n })\n .then((response) =>\n this.#handleSnapResponse({\n id,\n snapId,\n response: response as Record<string, Json>,\n }),\n )\n .catch((error) => this.#handleSnapResponse({ id, snapId, error }));\n });\n }\n\n /**\n * Handle the transactionStatusUpdated event emitted by the TransactionController.\n * This function will remove insights for the transaction in question\n * once the transaction status has changed from unapproved.\n *\n * @param args - An options bag.\n * @param args.transactionMeta - The transaction.\n */\n #handleTransactionStatusUpdate({\n transactionMeta,\n }: {\n transactionMeta: TransactionMeta;\n }) {\n if (transactionMeta.status !== 'unapproved') {\n this.#handleInsightCleanup(transactionMeta.id);\n }\n }\n\n #handleInsightCleanup(id: string) {\n if (!this.#hasInsight(id)) {\n return;\n }\n\n // Delete interfaces from interface controller.\n Object.values(this.state.insights[id])\n .filter((insight) => insight.interfaceId)\n .forEach((insight) => {\n this.messagingSystem.call(\n 'SnapInterfaceController:deleteInterface',\n insight.interfaceId as string,\n );\n });\n\n this.update((state) => {\n delete state.insights[id];\n });\n }\n\n /**\n * Handle sending a request to a given Snap with a given payload.\n *\n * @param args - An options bag.\n * @param args.snapId - The Snap ID.\n * @param args.handler - The handler to invoke.\n * @param args.params - The JSON-RPC params to send.\n * @returns The response from the Snap.\n */\n async #handleSnapRequest({\n snapId,\n handler,\n params,\n }: {\n snapId: SnapId;\n handler: HandlerType.OnTransaction | HandlerType.OnSignature;\n params: Record<string, Json>;\n }) {\n return this.messagingSystem.call('SnapController:handleRequest', {\n snapId,\n origin: '',\n handler,\n request: {\n method: '',\n params,\n },\n });\n }\n\n /**\n * Handle response from a given Snap by persisting the response or error in state.\n *\n * @param args - An options bag.\n * @param args.id - The transaction or signature ID.\n * @param args.snapId - The Snap ID.\n * @param args.response - An optional response object returned by the Snap.\n * @param args.error - An optional error returned by the Snap.\n */\n #handleSnapResponse({\n id,\n snapId,\n response,\n error,\n }: {\n id: string;\n snapId: SnapId;\n response?: Record<string, Json>;\n error?: Error;\n }) {\n this.update((state) => {\n state.insights[id][snapId].loading = false;\n state.insights[id][snapId].interfaceId = response?.id as string;\n state.insights[id][snapId].severity = response?.severity as string;\n state.insights[id][snapId].error = error?.message;\n });\n }\n}\n"]}
|
package/dist/chunk-6EZSNS4O.mjs
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
// src/fsm.ts
|
|
2
|
-
import { assert } from "@metamask/utils";
|
|
3
|
-
import { InterpreterStatus } from "@xstate/fsm";
|
|
4
|
-
function validateMachine(machine) {
|
|
5
|
-
assert("_options" in machine, "The machine is not an @xstate/fsm machine");
|
|
6
|
-
const typed = machine;
|
|
7
|
-
const toArray = (obj) => {
|
|
8
|
-
if (Array.isArray(obj)) {
|
|
9
|
-
return obj;
|
|
10
|
-
} else if (obj === void 0 || obj === null) {
|
|
11
|
-
return [];
|
|
12
|
-
}
|
|
13
|
-
return [obj];
|
|
14
|
-
};
|
|
15
|
-
const allActions = /* @__PURE__ */ new Set();
|
|
16
|
-
const addActions = (actions) => toArray(actions).flatMap((action) => {
|
|
17
|
-
if (typeof action === "string") {
|
|
18
|
-
return [action];
|
|
19
|
-
}
|
|
20
|
-
assert(typeof action === "function");
|
|
21
|
-
return [];
|
|
22
|
-
}).forEach(allActions.add.bind(allActions));
|
|
23
|
-
for (const state of Object.values(
|
|
24
|
-
typed.config.states
|
|
25
|
-
)) {
|
|
26
|
-
addActions(state.entry);
|
|
27
|
-
addActions(state.exit);
|
|
28
|
-
for (const transition of Object.values(state.on ?? {})) {
|
|
29
|
-
addActions(transition.actions);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
allActions.forEach(
|
|
33
|
-
(action) => assert(
|
|
34
|
-
typed._options.actions !== void 0 && action in typed._options.actions,
|
|
35
|
-
`Action "${action}" doesn't have an implementation`
|
|
36
|
-
)
|
|
37
|
-
);
|
|
38
|
-
}
|
|
39
|
-
function forceStrict(interpreter) {
|
|
40
|
-
let onInitialCalled = false;
|
|
41
|
-
interpreter.subscribe((state) => {
|
|
42
|
-
assert(!onInitialCalled || state.changed, "Invalid state transition");
|
|
43
|
-
onInitialCalled = true;
|
|
44
|
-
});
|
|
45
|
-
const ogSend = interpreter.send.bind(interpreter);
|
|
46
|
-
interpreter.send = (...args) => {
|
|
47
|
-
assert(
|
|
48
|
-
interpreter.status === InterpreterStatus.Running,
|
|
49
|
-
"Interpreter is stopped"
|
|
50
|
-
);
|
|
51
|
-
return ogSend(...args);
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export {
|
|
56
|
-
validateMachine,
|
|
57
|
-
forceStrict
|
|
58
|
-
};
|
|
59
|
-
//# sourceMappingURL=chunk-6EZSNS4O.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/fsm.ts"],"sourcesContent":["import { assert } from '@metamask/utils';\nimport type { EventObject, StateMachine, Typestate } from '@xstate/fsm';\nimport { InterpreterStatus } from '@xstate/fsm';\n\n/**\n * Validates the set-up of a @xstate/fsm machine.\n *\n * 1. Ensures that all named actions in the config have a provided implementation.\n *\n * @param machine - The machine to validate.\n * @throws {@link AssertionError}. If the validation fails.\n */\nexport function validateMachine<\n TContext extends object,\n TEvent extends EventObject,\n TState extends Typestate<TContext>,\n>(machine: StateMachine.Machine<TContext, TEvent, TState>) {\n assert('_options' in machine, 'The machine is not an @xstate/fsm machine');\n const typed = machine as StateMachine.Machine<TContext, TEvent, TState> & {\n _options: { actions?: StateMachine.ActionMap<TContext, TEvent> };\n };\n\n // 1.\n const toArray = <Type>(obj: Type | Type[]): Type[] => {\n if (Array.isArray(obj)) {\n return obj;\n } else if (obj === undefined || obj === null) {\n return [];\n }\n return [obj];\n };\n\n const allActions = new Set<string>();\n const addActions = (actions: any) =>\n toArray(actions)\n .flatMap((action) => {\n if (typeof action === 'string') {\n return [action];\n }\n assert(typeof action === 'function');\n return [];\n })\n .forEach(allActions.add.bind(allActions));\n\n for (const state of Object.values<(typeof typed.config.states)[string]>(\n typed.config.states,\n )) {\n addActions(state.entry);\n addActions(state.exit);\n for (const transition of Object.values<any>(state.on ?? {})) {\n addActions(transition.actions);\n }\n }\n\n allActions.forEach((action) =>\n assert(\n typed._options.actions !== undefined && action in typed._options.actions,\n `Action \"${action}\" doesn't have an implementation`,\n ),\n );\n}\n\n/**\n * Ensure that the interpreter is strict.\n * Strict means that the transition must occur.\n * The event must exist in .on {} state config and it's guard must succeed.\n *\n * The error will be thrown when an invalid `interpreter.send()` is called\n * and will be bubbled there.\n *\n * TODO(ritave): Doesn't support self transitions.\n *\n * @param interpreter - The interpreter that will be force into strict mode.\n * @throws {@link Error} Thrown when the transition is invalid.\n */\nexport function forceStrict(interpreter: StateMachine.Service<any, any, any>) {\n // As soon as a listener subscribes, it is called. It might be called in\n // an initial state which doesn't have the .changed property\n let onInitialCalled = false;\n interpreter.subscribe((state) => {\n assert(!onInitialCalled || state.changed, 'Invalid state transition');\n onInitialCalled = true;\n });\n\n const ogSend = interpreter.send.bind(interpreter);\n interpreter.send = (...args) => {\n assert(\n interpreter.status === InterpreterStatus.Running,\n 'Interpreter is stopped',\n );\n return ogSend(...args);\n };\n}\n"],"mappings":";AAAA,SAAS,cAAc;AAEvB,SAAS,yBAAyB;AAU3B,SAAS,gBAId,SAAyD;AACzD,SAAO,cAAc,SAAS,2CAA2C;AACzE,QAAM,QAAQ;AAKd,QAAM,UAAU,CAAO,QAA+B;AACpD,QAAI,MAAM,QAAQ,GAAG,GAAG;AACtB,aAAO;AAAA,IACT,WAAW,QAAQ,UAAa,QAAQ,MAAM;AAC5C,aAAO,CAAC;AAAA,IACV;AACA,WAAO,CAAC,GAAG;AAAA,EACb;AAEA,QAAM,aAAa,oBAAI,IAAY;AACnC,QAAM,aAAa,CAAC,YAClB,QAAQ,OAAO,EACZ,QAAQ,CAAC,WAAW;AACnB,QAAI,OAAO,WAAW,UAAU;AAC9B,aAAO,CAAC,MAAM;AAAA,IAChB;AACA,WAAO,OAAO,WAAW,UAAU;AACnC,WAAO,CAAC;AAAA,EACV,CAAC,EACA,QAAQ,WAAW,IAAI,KAAK,UAAU,CAAC;AAE5C,aAAW,SAAS,OAAO;AAAA,IACzB,MAAM,OAAO;AAAA,EACf,GAAG;AACD,eAAW,MAAM,KAAK;AACtB,eAAW,MAAM,IAAI;AACrB,eAAW,cAAc,OAAO,OAAY,MAAM,MAAM,CAAC,CAAC,GAAG;AAC3D,iBAAW,WAAW,OAAO;AAAA,IAC/B;AAAA,EACF;AAEA,aAAW;AAAA,IAAQ,CAAC,WAClB;AAAA,MACE,MAAM,SAAS,YAAY,UAAa,UAAU,MAAM,SAAS;AAAA,MACjE,WAAW,MAAM;AAAA,IACnB;AAAA,EACF;AACF;AAeO,SAAS,YAAY,aAAkD;AAG5E,MAAI,kBAAkB;AACtB,cAAY,UAAU,CAAC,UAAU;AAC/B,WAAO,CAAC,mBAAmB,MAAM,SAAS,0BAA0B;AACpE,sBAAkB;AAAA,EACpB,CAAC;AAED,QAAM,SAAS,YAAY,KAAK,KAAK,WAAW;AAChD,cAAY,OAAO,IAAI,SAAS;AAC9B;AAAA,MACE,YAAY,WAAW,kBAAkB;AAAA,MACzC;AAAA,IACF;AACA,WAAO,OAAO,GAAG,IAAI;AAAA,EACvB;AACF;","names":[]}
|
package/dist/chunk-6GMWL4JR.mjs
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
// src/snaps/location/http.ts
|
|
2
|
-
import {
|
|
3
|
-
VirtualFile,
|
|
4
|
-
HttpSnapIdStruct,
|
|
5
|
-
NpmSnapFileNames,
|
|
6
|
-
createSnapManifest,
|
|
7
|
-
normalizeRelative,
|
|
8
|
-
parseJson
|
|
9
|
-
} from "@metamask/snaps-utils";
|
|
10
|
-
import { assert, assertStruct } from "@metamask/utils";
|
|
11
|
-
var HttpLocation = class {
|
|
12
|
-
constructor(url, opts = {}) {
|
|
13
|
-
// We keep contents separate because then we can use only one Blob in cache,
|
|
14
|
-
// which we convert to Uint8Array when actually returning the file.
|
|
15
|
-
//
|
|
16
|
-
// That avoids deepCloning file contents.
|
|
17
|
-
// I imagine ArrayBuffers are copy-on-write optimized, meaning
|
|
18
|
-
// in most often case we'll only have one file contents in common case.
|
|
19
|
-
this.cache = /* @__PURE__ */ new Map();
|
|
20
|
-
assertStruct(url.toString(), HttpSnapIdStruct, "Invalid Snap Id: ");
|
|
21
|
-
this.fetchFn = opts.fetch ?? globalThis.fetch.bind(globalThis);
|
|
22
|
-
this.fetchOptions = opts.fetchOptions;
|
|
23
|
-
this.url = url;
|
|
24
|
-
}
|
|
25
|
-
async manifest() {
|
|
26
|
-
if (this.validatedManifest) {
|
|
27
|
-
return this.validatedManifest.clone();
|
|
28
|
-
}
|
|
29
|
-
const canonicalPath = new URL(
|
|
30
|
-
NpmSnapFileNames.Manifest,
|
|
31
|
-
this.url
|
|
32
|
-
).toString();
|
|
33
|
-
const response = await this.fetchFn(canonicalPath, this.fetchOptions);
|
|
34
|
-
if (!response.ok) {
|
|
35
|
-
throw new Error(
|
|
36
|
-
`Failed to fetch "${canonicalPath}". Status code: ${response.status}.`
|
|
37
|
-
);
|
|
38
|
-
}
|
|
39
|
-
const contents = await response.text();
|
|
40
|
-
const manifest = parseJson(contents);
|
|
41
|
-
const vfile = new VirtualFile({
|
|
42
|
-
value: contents,
|
|
43
|
-
result: createSnapManifest(manifest),
|
|
44
|
-
path: NpmSnapFileNames.Manifest,
|
|
45
|
-
data: { canonicalPath }
|
|
46
|
-
});
|
|
47
|
-
this.validatedManifest = vfile;
|
|
48
|
-
return this.manifest();
|
|
49
|
-
}
|
|
50
|
-
async fetch(path) {
|
|
51
|
-
const relativePath = normalizeRelative(path);
|
|
52
|
-
const cached = this.cache.get(relativePath);
|
|
53
|
-
if (cached !== void 0) {
|
|
54
|
-
const { file, contents } = cached;
|
|
55
|
-
const value = new Uint8Array(await contents.arrayBuffer());
|
|
56
|
-
const vfile2 = file.clone();
|
|
57
|
-
vfile2.value = value;
|
|
58
|
-
return vfile2;
|
|
59
|
-
}
|
|
60
|
-
const canonicalPath = this.toCanonical(relativePath).toString();
|
|
61
|
-
const response = await this.fetchFn(canonicalPath, this.fetchOptions);
|
|
62
|
-
if (!response.ok) {
|
|
63
|
-
throw new Error(
|
|
64
|
-
`Failed to fetch "${canonicalPath}". Status code: ${response.status}.`
|
|
65
|
-
);
|
|
66
|
-
}
|
|
67
|
-
const vfile = new VirtualFile({
|
|
68
|
-
value: "",
|
|
69
|
-
path: relativePath,
|
|
70
|
-
data: { canonicalPath }
|
|
71
|
-
});
|
|
72
|
-
const blob = await response.blob();
|
|
73
|
-
assert(
|
|
74
|
-
!this.cache.has(relativePath),
|
|
75
|
-
"Corrupted cache, multiple files with same path."
|
|
76
|
-
);
|
|
77
|
-
this.cache.set(relativePath, { file: vfile, contents: blob });
|
|
78
|
-
return this.fetch(relativePath);
|
|
79
|
-
}
|
|
80
|
-
get root() {
|
|
81
|
-
return new URL(this.url);
|
|
82
|
-
}
|
|
83
|
-
toCanonical(path) {
|
|
84
|
-
assert(!path.startsWith("/"), "Tried to parse absolute path.");
|
|
85
|
-
return new URL(path, this.url);
|
|
86
|
-
}
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
export {
|
|
90
|
-
HttpLocation
|
|
91
|
-
};
|
|
92
|
-
//# sourceMappingURL=chunk-6GMWL4JR.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/snaps/location/http.ts"],"sourcesContent":["import type { SnapManifest } from '@metamask/snaps-utils';\nimport {\n VirtualFile,\n HttpSnapIdStruct,\n NpmSnapFileNames,\n createSnapManifest,\n normalizeRelative,\n parseJson,\n} from '@metamask/snaps-utils';\nimport { assert, assertStruct } from '@metamask/utils';\n\nimport type { SnapLocation } from './location';\n\nexport interface HttpOptions {\n /**\n * @default fetch\n */\n fetch?: typeof fetch;\n fetchOptions?: RequestInit;\n}\n\nexport class HttpLocation implements SnapLocation {\n // We keep contents separate because then we can use only one Blob in cache,\n // which we convert to Uint8Array when actually returning the file.\n //\n // That avoids deepCloning file contents.\n // I imagine ArrayBuffers are copy-on-write optimized, meaning\n // in most often case we'll only have one file contents in common case.\n private readonly cache = new Map<\n string,\n { file: VirtualFile; contents: Blob }\n >();\n\n private validatedManifest?: VirtualFile<SnapManifest>;\n\n private readonly url: URL;\n\n private readonly fetchFn: typeof fetch;\n\n private readonly fetchOptions?: RequestInit;\n\n constructor(url: URL, opts: HttpOptions = {}) {\n assertStruct(url.toString(), HttpSnapIdStruct, 'Invalid Snap Id: ');\n this.fetchFn = opts.fetch ?? globalThis.fetch.bind(globalThis);\n this.fetchOptions = opts.fetchOptions;\n this.url = url;\n }\n\n async manifest(): Promise<VirtualFile<SnapManifest>> {\n if (this.validatedManifest) {\n return this.validatedManifest.clone();\n }\n\n // jest-fetch-mock doesn't handle new URL(), we need to convert .toString()\n const canonicalPath = new URL(\n NpmSnapFileNames.Manifest,\n this.url,\n ).toString();\n\n const response = await this.fetchFn(canonicalPath, this.fetchOptions);\n if (!response.ok) {\n throw new Error(\n `Failed to fetch \"${canonicalPath}\". Status code: ${response.status}.`,\n );\n }\n const contents = await response.text();\n const manifest = parseJson(contents);\n const vfile = new VirtualFile<SnapManifest>({\n value: contents,\n result: createSnapManifest(manifest),\n path: NpmSnapFileNames.Manifest,\n data: { canonicalPath },\n });\n this.validatedManifest = vfile;\n\n return this.manifest();\n }\n\n async fetch(path: string): Promise<VirtualFile> {\n const relativePath = normalizeRelative(path);\n const cached = this.cache.get(relativePath);\n if (cached !== undefined) {\n const { file, contents } = cached;\n const value = new Uint8Array(await contents.arrayBuffer());\n const vfile = file.clone();\n vfile.value = value;\n return vfile;\n }\n\n const canonicalPath = this.toCanonical(relativePath).toString();\n const response = await this.fetchFn(canonicalPath, this.fetchOptions);\n if (!response.ok) {\n throw new Error(\n `Failed to fetch \"${canonicalPath}\". Status code: ${response.status}.`,\n );\n }\n const vfile = new VirtualFile({\n value: '',\n path: relativePath,\n data: { canonicalPath },\n });\n const blob = await response.blob();\n assert(\n !this.cache.has(relativePath),\n 'Corrupted cache, multiple files with same path.',\n );\n this.cache.set(relativePath, { file: vfile, contents: blob });\n\n return this.fetch(relativePath);\n }\n\n get root(): URL {\n return new URL(this.url);\n }\n\n private toCanonical(path: string): URL {\n assert(!path.startsWith('/'), 'Tried to parse absolute path.');\n return new URL(path, this.url);\n }\n}\n"],"mappings":";AACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,QAAQ,oBAAoB;AAY9B,IAAM,eAAN,MAA2C;AAAA,EAoBhD,YAAY,KAAU,OAAoB,CAAC,GAAG;AAb9C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAiB,QAAQ,oBAAI,IAG3B;AAWA,iBAAa,IAAI,SAAS,GAAG,kBAAkB,mBAAmB;AAClE,SAAK,UAAU,KAAK,SAAS,WAAW,MAAM,KAAK,UAAU;AAC7D,SAAK,eAAe,KAAK;AACzB,SAAK,MAAM;AAAA,EACb;AAAA,EAEA,MAAM,WAA+C;AACnD,QAAI,KAAK,mBAAmB;AAC1B,aAAO,KAAK,kBAAkB,MAAM;AAAA,IACtC;AAGA,UAAM,gBAAgB,IAAI;AAAA,MACxB,iBAAiB;AAAA,MACjB,KAAK;AAAA,IACP,EAAE,SAAS;AAEX,UAAM,WAAW,MAAM,KAAK,QAAQ,eAAe,KAAK,YAAY;AACpE,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,IAAI;AAAA,QACR,oBAAoB,aAAa,mBAAmB,SAAS,MAAM;AAAA,MACrE;AAAA,IACF;AACA,UAAM,WAAW,MAAM,SAAS,KAAK;AACrC,UAAM,WAAW,UAAU,QAAQ;AACnC,UAAM,QAAQ,IAAI,YAA0B;AAAA,MAC1C,OAAO;AAAA,MACP,QAAQ,mBAAmB,QAAQ;AAAA,MACnC,MAAM,iBAAiB;AAAA,MACvB,MAAM,EAAE,cAAc;AAAA,IACxB,CAAC;AACD,SAAK,oBAAoB;AAEzB,WAAO,KAAK,SAAS;AAAA,EACvB;AAAA,EAEA,MAAM,MAAM,MAAoC;AAC9C,UAAM,eAAe,kBAAkB,IAAI;AAC3C,UAAM,SAAS,KAAK,MAAM,IAAI,YAAY;AAC1C,QAAI,WAAW,QAAW;AACxB,YAAM,EAAE,MAAM,SAAS,IAAI;AAC3B,YAAM,QAAQ,IAAI,WAAW,MAAM,SAAS,YAAY,CAAC;AACzD,YAAMA,SAAQ,KAAK,MAAM;AACzB,MAAAA,OAAM,QAAQ;AACd,aAAOA;AAAA,IACT;AAEA,UAAM,gBAAgB,KAAK,YAAY,YAAY,EAAE,SAAS;AAC9D,UAAM,WAAW,MAAM,KAAK,QAAQ,eAAe,KAAK,YAAY;AACpE,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,IAAI;AAAA,QACR,oBAAoB,aAAa,mBAAmB,SAAS,MAAM;AAAA,MACrE;AAAA,IACF;AACA,UAAM,QAAQ,IAAI,YAAY;AAAA,MAC5B,OAAO;AAAA,MACP,MAAM;AAAA,MACN,MAAM,EAAE,cAAc;AAAA,IACxB,CAAC;AACD,UAAM,OAAO,MAAM,SAAS,KAAK;AACjC;AAAA,MACE,CAAC,KAAK,MAAM,IAAI,YAAY;AAAA,MAC5B;AAAA,IACF;AACA,SAAK,MAAM,IAAI,cAAc,EAAE,MAAM,OAAO,UAAU,KAAK,CAAC;AAE5D,WAAO,KAAK,MAAM,YAAY;AAAA,EAChC;AAAA,EAEA,IAAI,OAAY;AACd,WAAO,IAAI,IAAI,KAAK,GAAG;AAAA,EACzB;AAAA,EAEQ,YAAY,MAAmB;AACrC,WAAO,CAAC,KAAK,WAAW,GAAG,GAAG,+BAA+B;AAC7D,WAAO,IAAI,IAAI,MAAM,KAAK,GAAG;AAAA,EAC/B;AACF;","names":["vfile"]}
|