@metamask/snaps-controllers 5.0.0 → 6.0.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 +18 -1
- package/dist/chunk-26FZJGWA.mjs +331 -0
- package/dist/chunk-26FZJGWA.mjs.map +1 -0
- package/dist/chunk-2SSKLA6H.mjs +47 -0
- package/dist/chunk-2SSKLA6H.mjs.map +1 -0
- package/dist/chunk-2WWTILPZ.js +101 -0
- package/dist/chunk-2WWTILPZ.js.map +1 -0
- package/dist/chunk-35RVMQQU.mjs +283 -0
- package/dist/chunk-35RVMQQU.mjs.map +1 -0
- package/dist/chunk-3EJ6JINY.mjs +1 -0
- package/dist/chunk-3EJ6JINY.mjs.map +1 -0
- package/dist/chunk-3RXU6FL7.js +354 -0
- package/dist/chunk-3RXU6FL7.js.map +1 -0
- package/dist/chunk-3ZTS7EYA.mjs +109 -0
- package/dist/chunk-3ZTS7EYA.mjs.map +1 -0
- package/dist/chunk-4ICLRPDE.mjs +354 -0
- package/dist/chunk-4ICLRPDE.mjs.map +1 -0
- package/dist/chunk-4X5GUCI4.js +1 -0
- package/dist/chunk-4X5GUCI4.js.map +1 -0
- package/dist/chunk-5526GKFY.mjs +101 -0
- package/dist/chunk-5526GKFY.mjs.map +1 -0
- package/dist/chunk-57XSIYLY.mjs +9 -0
- package/dist/chunk-57XSIYLY.mjs.map +1 -0
- package/dist/chunk-5AOHJSZ6.mjs +40 -0
- package/dist/chunk-5AOHJSZ6.mjs.map +1 -0
- package/dist/chunk-5JX3PHKY.mjs +7 -0
- package/dist/chunk-5JX3PHKY.mjs.map +1 -0
- package/dist/chunk-5UJDZGAF.mjs +19 -0
- package/dist/chunk-5UJDZGAF.mjs.map +1 -0
- package/dist/chunk-66XO4TRY.js +9 -0
- package/dist/chunk-66XO4TRY.js.map +1 -0
- package/dist/chunk-6I34XHMY.mjs +1 -0
- package/dist/chunk-6I34XHMY.mjs.map +1 -0
- package/dist/chunk-6JQAGWUX.mjs +2307 -0
- package/dist/chunk-6JQAGWUX.mjs.map +1 -0
- package/dist/chunk-6RHMHULS.js +7 -0
- package/dist/chunk-6RHMHULS.js.map +1 -0
- package/dist/chunk-7LDJN7LU.js +283 -0
- package/dist/chunk-7LDJN7LU.js.map +1 -0
- package/dist/chunk-7W4BE27D.mjs +1 -0
- package/dist/chunk-7W4BE27D.mjs.map +1 -0
- package/dist/chunk-A7QA5OIN.js +1 -0
- package/dist/chunk-A7QA5OIN.js.map +1 -0
- package/dist/chunk-AR5J3IYZ.js +1 -0
- package/dist/chunk-AR5J3IYZ.js.map +1 -0
- package/dist/chunk-BEEH4ZXK.js +1 -0
- package/dist/chunk-BEEH4ZXK.js.map +1 -0
- package/dist/chunk-BFD5P2VB.mjs +12 -0
- package/dist/chunk-BFD5P2VB.mjs.map +1 -0
- package/dist/chunk-BGJPFPCH.js +109 -0
- package/dist/chunk-BGJPFPCH.js.map +1 -0
- package/dist/chunk-BKAYI3FB.js +74 -0
- package/dist/chunk-BKAYI3FB.js.map +1 -0
- package/dist/chunk-BMLPPIKQ.js +38 -0
- package/dist/chunk-BMLPPIKQ.js.map +1 -0
- package/dist/chunk-BMNPP53N.js +1 -0
- package/dist/chunk-BMNPP53N.js.map +1 -0
- package/dist/chunk-BUPF6RN3.mjs +1 -0
- package/dist/chunk-BUPF6RN3.mjs.map +1 -0
- package/dist/chunk-DC3KUFAP.mjs +58 -0
- package/dist/chunk-DC3KUFAP.mjs.map +1 -0
- package/dist/chunk-DLLH2SFQ.js +19 -0
- package/dist/chunk-DLLH2SFQ.js.map +1 -0
- package/dist/chunk-DQPMF4WI.mjs +1 -0
- package/dist/chunk-DQPMF4WI.mjs.map +1 -0
- package/dist/chunk-DX3JFCRL.mjs +72 -0
- package/dist/chunk-DX3JFCRL.mjs.map +1 -0
- package/dist/chunk-E5PSKNI7.js +1 -0
- package/dist/chunk-E5PSKNI7.js.map +1 -0
- package/dist/chunk-EXN2TFDJ.js +38 -0
- package/dist/chunk-EXN2TFDJ.js.map +1 -0
- package/dist/chunk-F62W2GSZ.js +47 -0
- package/dist/chunk-F62W2GSZ.js.map +1 -0
- package/dist/chunk-FD37BGB7.mjs +1 -0
- package/dist/chunk-FD37BGB7.mjs.map +1 -0
- package/dist/chunk-FYDIMXGD.mjs +71 -0
- package/dist/chunk-FYDIMXGD.mjs.map +1 -0
- package/dist/chunk-H3QD2CYQ.mjs +38 -0
- package/dist/chunk-H3QD2CYQ.mjs.map +1 -0
- package/dist/chunk-I6HMKVV3.js +48 -0
- package/dist/chunk-I6HMKVV3.js.map +1 -0
- package/dist/chunk-IEFJGFVV.mjs +1 -0
- package/dist/chunk-IEFJGFVV.mjs.map +1 -0
- package/dist/chunk-J35UUTXN.mjs +1 -0
- package/dist/chunk-J35UUTXN.mjs.map +1 -0
- package/dist/chunk-JBMTTZHS.js +1 -0
- package/dist/chunk-JBMTTZHS.js.map +1 -0
- package/dist/chunk-JFXRELU2.mjs +39 -0
- package/dist/chunk-JFXRELU2.mjs.map +1 -0
- package/dist/chunk-JPJ2F22U.mjs +38 -0
- package/dist/chunk-JPJ2F22U.mjs.map +1 -0
- package/dist/chunk-KDQ6OXVG.js +39 -0
- package/dist/chunk-KDQ6OXVG.js.map +1 -0
- package/dist/chunk-KET5WAIE.mjs +1 -0
- package/dist/chunk-KET5WAIE.mjs.map +1 -0
- package/dist/chunk-KF6HZNN4.js +1 -0
- package/dist/chunk-KF6HZNN4.js.map +1 -0
- package/dist/chunk-LANLSIYZ.mjs +74 -0
- package/dist/chunk-LANLSIYZ.mjs.map +1 -0
- package/dist/chunk-LFWLV3SS.js +273 -0
- package/dist/chunk-LFWLV3SS.js.map +1 -0
- package/dist/chunk-MJOLPPQK.mjs +105 -0
- package/dist/chunk-MJOLPPQK.mjs.map +1 -0
- package/dist/chunk-N3MAPSR3.js +197 -0
- package/dist/chunk-N3MAPSR3.js.map +1 -0
- package/dist/chunk-NAJQX2WM.mjs +55 -0
- package/dist/chunk-NAJQX2WM.mjs.map +1 -0
- package/dist/chunk-NDOKX4CC.js +58 -0
- package/dist/chunk-NDOKX4CC.js.map +1 -0
- package/dist/chunk-NKMIKK4P.js +71 -0
- package/dist/chunk-NKMIKK4P.js.map +1 -0
- package/dist/chunk-NSOTRW3O.mjs +1 -0
- package/dist/chunk-NSOTRW3O.mjs.map +1 -0
- package/dist/chunk-OJ2YAMFL.mjs +1 -0
- package/dist/chunk-OJ2YAMFL.mjs.map +1 -0
- package/dist/chunk-OPH3RY2U.mjs +60 -0
- package/dist/chunk-OPH3RY2U.mjs.map +1 -0
- package/dist/chunk-OUYEWVXP.js +331 -0
- package/dist/chunk-OUYEWVXP.js.map +1 -0
- package/dist/chunk-OYSDB7WV.js +60 -0
- package/dist/chunk-OYSDB7WV.js.map +1 -0
- package/dist/chunk-OZPD234W.js +55 -0
- package/dist/chunk-OZPD234W.js.map +1 -0
- package/dist/chunk-SREHPG7K.js +40 -0
- package/dist/chunk-SREHPG7K.js.map +1 -0
- package/dist/chunk-U7REZSMO.js +1 -0
- package/dist/chunk-U7REZSMO.js.map +1 -0
- package/dist/chunk-UMS7NV46.mjs +59 -0
- package/dist/chunk-UMS7NV46.mjs.map +1 -0
- package/dist/chunk-V5F3LOTD.js +2307 -0
- package/dist/chunk-V5F3LOTD.js.map +1 -0
- package/dist/chunk-VADTO25Q.js +12 -0
- package/dist/chunk-VADTO25Q.js.map +1 -0
- package/dist/chunk-VK6JW7XB.js +1 -0
- package/dist/chunk-VK6JW7XB.js.map +1 -0
- package/dist/chunk-VZD5REFA.js +72 -0
- package/dist/chunk-VZD5REFA.js.map +1 -0
- package/dist/chunk-W6RU3LZS.mjs +1 -0
- package/dist/chunk-W6RU3LZS.mjs.map +1 -0
- package/dist/chunk-WCLBWRFH.js +1 -0
- package/dist/chunk-WCLBWRFH.js.map +1 -0
- package/dist/chunk-WFWBAJSP.js +38 -0
- package/dist/chunk-WFWBAJSP.js.map +1 -0
- package/dist/chunk-WMOR2T45.js +1 -0
- package/dist/chunk-WMOR2T45.js.map +1 -0
- package/dist/chunk-WUAYTNK4.mjs +92 -0
- package/dist/chunk-WUAYTNK4.mjs.map +1 -0
- package/dist/chunk-X57FJ67O.mjs +197 -0
- package/dist/chunk-X57FJ67O.mjs.map +1 -0
- package/dist/chunk-XEITRX5U.js +59 -0
- package/dist/chunk-XEITRX5U.js.map +1 -0
- package/dist/chunk-XQ2TCH36.mjs +48 -0
- package/dist/chunk-XQ2TCH36.mjs.map +1 -0
- package/dist/chunk-XW3CYXPK.js +105 -0
- package/dist/chunk-XW3CYXPK.js.map +1 -0
- package/dist/chunk-YRZVIDCF.mjs +38 -0
- package/dist/chunk-YRZVIDCF.mjs.map +1 -0
- package/dist/chunk-YYBXAUVN.js +1 -0
- package/dist/chunk-YYBXAUVN.js.map +1 -0
- package/dist/chunk-Z7J4BWYY.mjs +1 -0
- package/dist/chunk-Z7J4BWYY.mjs.map +1 -0
- package/dist/chunk-ZQHMLI2N.mjs +273 -0
- package/dist/chunk-ZQHMLI2N.mjs.map +1 -0
- package/dist/chunk-ZRHUHKGT.js +92 -0
- package/dist/chunk-ZRHUHKGT.js.map +1 -0
- package/dist/cronjob/CronjobController.js +41 -0
- package/dist/cronjob/CronjobController.js.map +1 -0
- package/dist/cronjob/CronjobController.mjs +41 -0
- package/dist/cronjob/CronjobController.mjs.map +1 -0
- package/dist/cronjob/index.js +41 -0
- package/dist/cronjob/index.js.map +1 -0
- package/dist/cronjob/index.mjs +41 -0
- package/dist/cronjob/index.mjs.map +1 -0
- package/dist/fsm.js +10 -0
- package/dist/fsm.js.map +1 -0
- package/dist/fsm.mjs +10 -0
- package/dist/fsm.mjs.map +1 -0
- package/dist/index.js +118 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +118 -0
- package/dist/index.mjs.map +1 -0
- package/dist/interface/SnapInterfaceController.js +9 -0
- package/dist/interface/SnapInterfaceController.js.map +1 -0
- package/dist/interface/SnapInterfaceController.mjs +9 -0
- package/dist/interface/SnapInterfaceController.mjs.map +1 -0
- package/dist/interface/index.js +10 -0
- package/dist/interface/index.js.map +1 -0
- package/dist/interface/index.mjs +10 -0
- package/dist/interface/index.mjs.map +1 -0
- package/dist/interface/utils.js +14 -0
- package/dist/interface/utils.js.map +1 -0
- package/dist/interface/utils.mjs +14 -0
- package/dist/interface/utils.mjs.map +1 -0
- package/dist/logging.js +8 -0
- package/dist/logging.js.map +1 -0
- package/dist/logging.mjs +8 -0
- package/dist/logging.mjs.map +1 -0
- package/dist/node.js +128 -0
- package/dist/node.js.map +1 -0
- package/dist/node.mjs +128 -0
- package/dist/node.mjs.map +1 -0
- package/dist/react-native.js +125 -0
- package/dist/react-native.js.map +1 -0
- package/dist/react-native.mjs +125 -0
- package/dist/react-native.mjs.map +1 -0
- package/dist/services/AbstractExecutionService.js +13 -0
- package/dist/services/AbstractExecutionService.js.map +1 -0
- package/dist/services/AbstractExecutionService.mjs +13 -0
- package/dist/services/AbstractExecutionService.mjs.map +1 -0
- package/dist/services/ExecutionService.js +2 -0
- package/dist/services/ExecutionService.js.map +1 -0
- package/dist/services/ExecutionService.mjs +2 -0
- package/dist/services/ExecutionService.mjs.map +1 -0
- package/dist/services/ProxyPostMessageStream.js +8 -0
- package/dist/services/ProxyPostMessageStream.js.map +1 -0
- package/dist/services/ProxyPostMessageStream.mjs +8 -0
- package/dist/services/ProxyPostMessageStream.mjs.map +1 -0
- package/dist/services/browser.js +40 -0
- package/dist/services/browser.js.map +1 -0
- package/dist/services/browser.mjs +40 -0
- package/dist/services/browser.mjs.map +1 -0
- package/dist/services/iframe/IframeExecutionService.js +12 -0
- package/dist/services/iframe/IframeExecutionService.js.map +1 -0
- package/dist/services/iframe/IframeExecutionService.mjs +12 -0
- package/dist/services/iframe/IframeExecutionService.mjs.map +1 -0
- package/dist/services/iframe/index.js +13 -0
- package/dist/services/iframe/index.js.map +1 -0
- package/dist/services/iframe/index.mjs +13 -0
- package/dist/services/iframe/index.mjs.map +1 -0
- package/dist/services/index.js +35 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/index.mjs +35 -0
- package/dist/services/index.mjs.map +1 -0
- package/dist/services/node-js/NodeProcessExecutionService.js +22 -0
- package/dist/services/node-js/NodeProcessExecutionService.js.map +1 -0
- package/dist/services/node-js/NodeProcessExecutionService.mjs +22 -0
- package/dist/services/node-js/NodeProcessExecutionService.mjs.map +1 -0
- package/dist/services/node-js/NodeThreadExecutionService.js +22 -0
- package/dist/services/node-js/NodeThreadExecutionService.js.map +1 -0
- package/dist/services/node-js/NodeThreadExecutionService.mjs +22 -0
- package/dist/services/node-js/NodeThreadExecutionService.mjs.map +1 -0
- package/dist/services/node-js/index.js +27 -0
- package/dist/services/node-js/index.js.map +1 -0
- package/dist/services/node-js/index.mjs +27 -0
- package/dist/services/node-js/index.mjs.map +1 -0
- package/dist/services/node.js +45 -0
- package/dist/services/node.js.map +1 -0
- package/dist/services/node.mjs +45 -0
- package/dist/services/node.mjs.map +1 -0
- package/dist/services/offscreen/OffscreenExecutionService.js +14 -0
- package/dist/services/offscreen/OffscreenExecutionService.js.map +1 -0
- package/dist/services/offscreen/OffscreenExecutionService.mjs +14 -0
- package/dist/services/offscreen/OffscreenExecutionService.mjs.map +1 -0
- package/dist/services/offscreen/index.js +15 -0
- package/dist/services/offscreen/index.js.map +1 -0
- package/dist/services/offscreen/index.mjs +15 -0
- package/dist/services/offscreen/index.mjs.map +1 -0
- package/dist/services/proxy/ProxyExecutionService.js +13 -0
- package/dist/services/proxy/ProxyExecutionService.js.map +1 -0
- package/dist/services/proxy/ProxyExecutionService.mjs +13 -0
- package/dist/services/proxy/ProxyExecutionService.mjs.map +1 -0
- package/dist/services/react-native.js +42 -0
- package/dist/services/react-native.js.map +1 -0
- package/dist/services/react-native.mjs +42 -0
- package/dist/services/react-native.mjs.map +1 -0
- package/dist/services/webview/WebViewExecutionService.js +15 -0
- package/dist/services/webview/WebViewExecutionService.js.map +1 -0
- package/dist/services/webview/WebViewExecutionService.mjs +15 -0
- package/dist/services/webview/WebViewExecutionService.mjs.map +1 -0
- package/dist/services/webview/WebViewMessageStream.js +8 -0
- package/dist/services/webview/WebViewMessageStream.js.map +1 -0
- package/dist/services/webview/WebViewMessageStream.mjs +8 -0
- package/dist/services/webview/WebViewMessageStream.mjs.map +1 -0
- package/dist/services/webview/index.js +16 -0
- package/dist/services/webview/index.js.map +1 -0
- package/dist/services/webview/index.mjs +16 -0
- package/dist/services/webview/index.mjs.map +1 -0
- package/dist/services/webworker/WebWorkerExecutionService.js +15 -0
- package/dist/services/webworker/WebWorkerExecutionService.js.map +1 -0
- package/dist/services/webworker/WebWorkerExecutionService.mjs +15 -0
- package/dist/services/webworker/WebWorkerExecutionService.mjs.map +1 -0
- package/dist/services/webworker/index.js +16 -0
- package/dist/services/webworker/index.js.map +1 -0
- package/dist/services/webworker/index.mjs +16 -0
- package/dist/services/webworker/index.mjs.map +1 -0
- package/dist/snaps/RequestQueue.js +8 -0
- package/dist/snaps/RequestQueue.js.map +1 -0
- package/dist/snaps/RequestQueue.mjs +8 -0
- package/dist/snaps/RequestQueue.mjs.map +1 -0
- package/dist/snaps/SnapController.js +30 -0
- package/dist/snaps/SnapController.js.map +1 -0
- package/dist/snaps/SnapController.mjs +30 -0
- package/dist/snaps/SnapController.mjs.map +1 -0
- package/dist/snaps/Timer.js +8 -0
- package/dist/snaps/Timer.js.map +1 -0
- package/dist/snaps/Timer.mjs +8 -0
- package/dist/snaps/Timer.mjs.map +1 -0
- package/dist/snaps/constants.js +8 -0
- package/dist/snaps/constants.js.map +1 -0
- package/dist/snaps/constants.mjs +8 -0
- package/dist/snaps/constants.mjs.map +1 -0
- package/dist/snaps/index.js +63 -0
- package/dist/snaps/index.js.map +1 -0
- package/dist/snaps/index.mjs +63 -0
- package/dist/snaps/index.mjs.map +1 -0
- package/dist/snaps/location/http.js +8 -0
- package/dist/snaps/location/http.js.map +1 -0
- package/dist/snaps/location/http.mjs +8 -0
- package/dist/snaps/location/http.mjs.map +1 -0
- package/dist/snaps/location/index.js +31 -0
- package/dist/snaps/location/index.js.map +1 -0
- package/dist/snaps/location/index.mjs +31 -0
- package/dist/snaps/location/index.mjs.map +1 -0
- package/dist/snaps/location/local.js +9 -0
- package/dist/snaps/location/local.js.map +1 -0
- package/dist/snaps/location/local.mjs +9 -0
- package/dist/snaps/location/local.mjs.map +1 -0
- package/dist/snaps/location/location.js +11 -0
- package/dist/snaps/location/location.js.map +1 -0
- package/dist/snaps/location/location.mjs +11 -0
- package/dist/snaps/location/location.mjs.map +1 -0
- package/dist/snaps/location/npm.js +18 -0
- package/dist/snaps/location/npm.js.map +1 -0
- package/dist/snaps/location/npm.mjs +18 -0
- package/dist/snaps/location/npm.mjs.map +1 -0
- package/dist/snaps/registry/index.js +13 -0
- package/dist/snaps/registry/index.js.map +1 -0
- package/dist/snaps/registry/index.mjs +13 -0
- package/dist/snaps/registry/index.mjs.map +1 -0
- package/dist/snaps/registry/json.js +9 -0
- package/dist/snaps/registry/json.js.map +1 -0
- package/dist/snaps/registry/json.mjs +9 -0
- package/dist/snaps/registry/json.mjs.map +1 -0
- package/dist/snaps/registry/registry.js +8 -0
- package/dist/snaps/registry/registry.js.map +1 -0
- package/dist/snaps/registry/registry.mjs +8 -0
- package/dist/snaps/registry/registry.mjs.map +1 -0
- package/dist/snaps/selectors.js +8 -0
- package/dist/snaps/selectors.js.map +1 -0
- package/dist/snaps/selectors.mjs +8 -0
- package/dist/snaps/selectors.mjs.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/types/node.d.ts +2 -0
- package/dist/types/react-native.d.ts +2 -0
- package/dist/types/services/index.d.ts +0 -2
- package/dist/types/services/node.d.ts +2 -0
- package/dist/types/services/react-native.d.ts +2 -0
- package/dist/types/utils.d.ts +1 -1
- package/dist/types/vendor/global.d.js +1 -0
- package/dist/types/vendor/global.d.js.map +1 -0
- package/dist/types/vendor/global.d.mjs +1 -0
- package/dist/types/vendor/global.d.mjs.map +1 -0
- package/dist/types/vendor/readable-stream.d.js +1 -0
- package/dist/types/vendor/readable-stream.d.js.map +1 -0
- package/dist/types/vendor/readable-stream.d.mjs +1 -0
- package/dist/types/vendor/readable-stream.d.mjs.map +1 -0
- package/dist/types/vendor/zlib.d.js +1 -0
- package/dist/types/vendor/zlib.d.js.map +1 -0
- package/dist/types/vendor/zlib.d.mjs +1 -0
- package/dist/types/vendor/zlib.d.mjs.map +1 -0
- package/dist/utils.js +21 -0
- package/dist/utils.js.map +1 -0
- package/dist/utils.mjs +21 -0
- package/dist/utils.mjs.map +1 -0
- package/package.json +32 -23
- package/dist/cjs/cronjob/CronjobController.js +0 -296
- package/dist/cjs/cronjob/CronjobController.js.map +0 -1
- package/dist/cjs/cronjob/index.js +0 -20
- package/dist/cjs/cronjob/index.js.map +0 -1
- package/dist/cjs/fsm.js +0 -69
- package/dist/cjs/fsm.js.map +0 -1
- package/dist/cjs/index.js +0 -24
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/interface/SnapInterfaceController.js +0 -166
- package/dist/cjs/interface/SnapInterfaceController.js.map +0 -1
- package/dist/cjs/interface/index.js +0 -20
- package/dist/cjs/interface/index.js.map +0 -1
- package/dist/cjs/interface/utils.js +0 -59
- package/dist/cjs/interface/utils.js.map +0 -1
- package/dist/cjs/logging.js +0 -15
- package/dist/cjs/logging.js.map +0 -1
- package/dist/cjs/services/AbstractExecutionService.js +0 -387
- package/dist/cjs/services/AbstractExecutionService.js.map +0 -1
- package/dist/cjs/services/ExecutionService.js +0 -7
- package/dist/cjs/services/ExecutionService.js.map +0 -1
- package/dist/cjs/services/ProxyPostMessageStream.js +0 -109
- package/dist/cjs/services/ProxyPostMessageStream.js.map +0 -1
- package/dist/cjs/services/browser.js +0 -33
- package/dist/cjs/services/browser.js.map +0 -1
- package/dist/cjs/services/iframe/IframeExecutionService.js +0 -54
- package/dist/cjs/services/iframe/IframeExecutionService.js.map +0 -1
- package/dist/cjs/services/iframe/index.js +0 -20
- package/dist/cjs/services/iframe/index.js.map +0 -1
- package/dist/cjs/services/index.js +0 -33
- package/dist/cjs/services/index.js.map +0 -1
- package/dist/cjs/services/node/NodeProcessExecutionService.js +0 -42
- package/dist/cjs/services/node/NodeProcessExecutionService.js.map +0 -1
- package/dist/cjs/services/node/NodeThreadExecutionService.js +0 -43
- package/dist/cjs/services/node/NodeThreadExecutionService.js.map +0 -1
- package/dist/cjs/services/node/index.js +0 -21
- package/dist/cjs/services/node/index.js.map +0 -1
- package/dist/cjs/services/offscreen/OffscreenExecutionService.js +0 -96
- package/dist/cjs/services/offscreen/OffscreenExecutionService.js.map +0 -1
- package/dist/cjs/services/offscreen/index.js +0 -20
- package/dist/cjs/services/offscreen/index.js.map +0 -1
- package/dist/cjs/services/proxy/ProxyExecutionService.js +0 -110
- package/dist/cjs/services/proxy/ProxyExecutionService.js.map +0 -1
- package/dist/cjs/services/webview/WebViewExecutionService.js +0 -99
- package/dist/cjs/services/webview/WebViewExecutionService.js.map +0 -1
- package/dist/cjs/services/webview/WebViewMessageStream.js +0 -127
- package/dist/cjs/services/webview/WebViewMessageStream.js.map +0 -1
- package/dist/cjs/services/webview/index.js +0 -20
- package/dist/cjs/services/webview/index.js.map +0 -1
- package/dist/cjs/services/webworker/WebWorkerExecutionService.js +0 -148
- package/dist/cjs/services/webworker/WebWorkerExecutionService.js.map +0 -1
- package/dist/cjs/services/webworker/index.js +0 -20
- package/dist/cjs/services/webworker/index.js.map +0 -1
- package/dist/cjs/snaps/RequestQueue.js +0 -63
- package/dist/cjs/snaps/RequestQueue.js.map +0 -1
- package/dist/cjs/snaps/SnapController.js +0 -1968
- package/dist/cjs/snaps/SnapController.js.map +0 -1
- package/dist/cjs/snaps/Timer.js +0 -117
- package/dist/cjs/snaps/Timer.js.map +0 -1
- package/dist/cjs/snaps/constants.js +0 -25
- package/dist/cjs/snaps/constants.js.map +0 -1
- package/dist/cjs/snaps/index.js +0 -23
- package/dist/cjs/snaps/index.js.map +0 -1
- package/dist/cjs/snaps/location/http.js +0 -106
- package/dist/cjs/snaps/location/http.js.map +0 -1
- package/dist/cjs/snaps/location/index.js +0 -23
- package/dist/cjs/snaps/location/index.js.map +0 -1
- package/dist/cjs/snaps/location/local.js +0 -93
- package/dist/cjs/snaps/location/local.js.map +0 -1
- package/dist/cjs/snaps/location/location.js +0 -34
- package/dist/cjs/snaps/location/location.js.map +0 -1
- package/dist/cjs/snaps/location/npm.js +0 -389
- package/dist/cjs/snaps/location/npm.js.map +0 -1
- package/dist/cjs/snaps/registry/index.js +0 -21
- package/dist/cjs/snaps/registry/index.js.map +0 -1
- package/dist/cjs/snaps/registry/json.js +0 -306
- package/dist/cjs/snaps/registry/json.js.map +0 -1
- package/dist/cjs/snaps/registry/registry.js +0 -18
- package/dist/cjs/snaps/registry/registry.js.map +0 -1
- package/dist/cjs/snaps/selectors.js +0 -13
- package/dist/cjs/snaps/selectors.js.map +0 -1
- package/dist/cjs/utils.js +0 -111
- package/dist/cjs/utils.js.map +0 -1
- package/dist/esm/cronjob/CronjobController.js +0 -281
- package/dist/esm/cronjob/CronjobController.js.map +0 -1
- package/dist/esm/cronjob/index.js +0 -3
- package/dist/esm/cronjob/index.js.map +0 -1
- package/dist/esm/fsm.js +0 -70
- package/dist/esm/fsm.js.map +0 -1
- package/dist/esm/index.js +0 -7
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/interface/SnapInterfaceController.js +0 -158
- package/dist/esm/interface/SnapInterfaceController.js.map +0 -1
- package/dist/esm/interface/index.js +0 -3
- package/dist/esm/interface/index.js.map +0 -1
- package/dist/esm/interface/utils.js +0 -62
- package/dist/esm/interface/utils.js.map +0 -1
- package/dist/esm/logging.js +0 -10
- package/dist/esm/logging.js.map +0 -1
- package/dist/esm/services/AbstractExecutionService.js +0 -370
- package/dist/esm/services/AbstractExecutionService.js.map +0 -1
- package/dist/esm/services/ExecutionService.js +0 -4
- package/dist/esm/services/ExecutionService.js.map +0 -1
- package/dist/esm/services/ProxyPostMessageStream.js +0 -102
- package/dist/esm/services/ProxyPostMessageStream.js.map +0 -1
- package/dist/esm/services/browser.js +0 -10
- package/dist/esm/services/browser.js.map +0 -1
- package/dist/esm/services/iframe/IframeExecutionService.js +0 -44
- package/dist/esm/services/iframe/IframeExecutionService.js.map +0 -1
- package/dist/esm/services/iframe/index.js +0 -3
- package/dist/esm/services/iframe/index.js.map +0 -1
- package/dist/esm/services/index.js +0 -10
- package/dist/esm/services/index.js.map +0 -1
- package/dist/esm/services/node/NodeProcessExecutionService.js +0 -32
- package/dist/esm/services/node/NodeProcessExecutionService.js.map +0 -1
- package/dist/esm/services/node/NodeThreadExecutionService.js +0 -34
- package/dist/esm/services/node/NodeThreadExecutionService.js.map +0 -1
- package/dist/esm/services/node/index.js +0 -4
- package/dist/esm/services/node/index.js.map +0 -1
- package/dist/esm/services/offscreen/OffscreenExecutionService.js +0 -86
- package/dist/esm/services/offscreen/OffscreenExecutionService.js.map +0 -1
- package/dist/esm/services/offscreen/index.js +0 -3
- package/dist/esm/services/offscreen/index.js.map +0 -1
- package/dist/esm/services/proxy/ProxyExecutionService.js +0 -100
- package/dist/esm/services/proxy/ProxyExecutionService.js.map +0 -1
- package/dist/esm/services/webview/WebViewExecutionService.js +0 -89
- package/dist/esm/services/webview/WebViewExecutionService.js.map +0 -1
- package/dist/esm/services/webview/WebViewMessageStream.js +0 -119
- package/dist/esm/services/webview/WebViewMessageStream.js.map +0 -1
- package/dist/esm/services/webview/index.js +0 -3
- package/dist/esm/services/webview/index.js.map +0 -1
- package/dist/esm/services/webworker/WebWorkerExecutionService.js +0 -130
- package/dist/esm/services/webworker/WebWorkerExecutionService.js.map +0 -1
- package/dist/esm/services/webworker/index.js +0 -3
- package/dist/esm/services/webworker/index.js.map +0 -1
- package/dist/esm/snaps/RequestQueue.js +0 -53
- package/dist/esm/snaps/RequestQueue.js.map +0 -1
- package/dist/esm/snaps/SnapController.js +0 -1947
- package/dist/esm/snaps/SnapController.js.map +0 -1
- package/dist/esm/snaps/Timer.js +0 -107
- package/dist/esm/snaps/Timer.js.map +0 -1
- package/dist/esm/snaps/constants.js +0 -16
- package/dist/esm/snaps/constants.js.map +0 -1
- package/dist/esm/snaps/index.js +0 -6
- package/dist/esm/snaps/index.js.map +0 -1
- package/dist/esm/snaps/location/http.js +0 -96
- package/dist/esm/snaps/location/http.js.map +0 -1
- package/dist/esm/snaps/location/index.js +0 -6
- package/dist/esm/snaps/location/index.js.map +0 -1
- package/dist/esm/snaps/location/local.js +0 -83
- package/dist/esm/snaps/location/local.js.map +0 -1
- package/dist/esm/snaps/location/location.js +0 -30
- package/dist/esm/snaps/location/location.js.map +0 -1
- package/dist/esm/snaps/location/npm.js +0 -373
- package/dist/esm/snaps/location/npm.js.map +0 -1
- package/dist/esm/snaps/registry/index.js +0 -4
- package/dist/esm/snaps/registry/index.js.map +0 -1
- package/dist/esm/snaps/registry/json.js +0 -296
- package/dist/esm/snaps/registry/json.js.map +0 -1
- package/dist/esm/snaps/registry/registry.js +0 -8
- package/dist/esm/snaps/registry/registry.js.map +0 -1
- package/dist/esm/snaps/selectors.js +0 -3
- package/dist/esm/snaps/selectors.js.map +0 -1
- package/dist/esm/utils.js +0 -132
- package/dist/esm/utils.js.map +0 -1
- /package/dist/types/services/{node → node-js}/NodeProcessExecutionService.d.ts +0 -0
- /package/dist/types/services/{node → node-js}/NodeThreadExecutionService.d.ts +0 -0
- /package/dist/types/services/{node → node-js}/index.d.ts +0 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// src/interface/utils.ts
|
|
2
|
+
import { NodeType, assert } from "@metamask/snaps-sdk";
|
|
3
|
+
var constructInputState = (state, component) => {
|
|
4
|
+
return component.value ?? state[component.name] ?? null;
|
|
5
|
+
};
|
|
6
|
+
var constructFormInputState = (state, component, form) => {
|
|
7
|
+
const oldFormState = state[form];
|
|
8
|
+
const oldInputState = oldFormState?.[component.name];
|
|
9
|
+
return component.value ?? oldInputState ?? null;
|
|
10
|
+
};
|
|
11
|
+
var assertNameIsUnique = (state, name) => {
|
|
12
|
+
assert(
|
|
13
|
+
state[name] === void 0,
|
|
14
|
+
`Duplicate component names are not allowed, found multiple instances of: "${name}".`
|
|
15
|
+
);
|
|
16
|
+
};
|
|
17
|
+
var constructState = (oldState, component, newState = {}) => {
|
|
18
|
+
const { type } = component;
|
|
19
|
+
if (type === NodeType.Panel) {
|
|
20
|
+
return component.children.reduce(
|
|
21
|
+
(acc, node) => constructState(oldState, node, acc),
|
|
22
|
+
newState
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
if (type === NodeType.Form) {
|
|
26
|
+
assertNameIsUnique(newState, component.name);
|
|
27
|
+
newState[component.name] = component.children.reduce(
|
|
28
|
+
(acc, node) => {
|
|
29
|
+
if (node.type === NodeType.Input) {
|
|
30
|
+
assertNameIsUnique(acc, node.name);
|
|
31
|
+
acc[node.name] = constructFormInputState(
|
|
32
|
+
oldState,
|
|
33
|
+
node,
|
|
34
|
+
component.name
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
return acc;
|
|
38
|
+
},
|
|
39
|
+
{}
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
if (type === NodeType.Input) {
|
|
43
|
+
assertNameIsUnique(newState, component.name);
|
|
44
|
+
newState[component.name] = constructInputState(oldState, component);
|
|
45
|
+
}
|
|
46
|
+
return newState;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export {
|
|
50
|
+
constructInputState,
|
|
51
|
+
constructFormInputState,
|
|
52
|
+
assertNameIsUnique,
|
|
53
|
+
constructState
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=chunk-NAJQX2WM.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/interface/utils.ts"],"sourcesContent":["import { NodeType, assert } from '@metamask/snaps-sdk';\nimport type {\n Component,\n Input,\n FormState,\n InterfaceState,\n} from '@metamask/snaps-sdk';\n\n/**\n * Construct the state for a stray input (not enclosed in a form).\n *\n * @param state - The interface state.\n * @param component - The Input component.\n * @returns The input state.\n */\nexport const constructInputState = (\n state: InterfaceState,\n component: Input,\n) => {\n return component.value ?? state[component.name] ?? null;\n};\n\n/**\n * Construct the state for a form input.\n *\n * Sets the state to either the specified component value, the previous value from the old state or null.\n *\n * @param state - The interface state.\n * @param component - The Input component.\n * @param form - The parent form name of the input.\n * @returns The input state.\n */\nexport const constructFormInputState = (\n state: InterfaceState,\n component: Input,\n form: string,\n) => {\n const oldFormState = state[form] as FormState;\n const oldInputState = oldFormState?.[component.name];\n return component.value ?? oldInputState ?? null;\n};\n\n/**\n * Assert that the component name is unique in state.\n *\n * @param state - The interface state to verify against.\n * @param name - The component name to verify.\n */\nexport const assertNameIsUnique = (state: InterfaceState, name: string) => {\n assert(\n state[name] === undefined,\n `Duplicate component names are not allowed, found multiple instances of: \"${name}\".`,\n );\n};\n\n/**\n * Construct the interface state for a given component tree while preserving values for matching stateful components in the old state.\n *\n * @param oldState - The previous state.\n * @param component - The UI component to construct state from.\n * @param newState - The state that is being constructed.\n * @returns The interface state of the passed component.\n */\nexport const constructState = (\n oldState: InterfaceState,\n component: Component,\n newState: InterfaceState = {},\n): InterfaceState => {\n const { type } = component;\n if (type === NodeType.Panel) {\n return component.children.reduce(\n (acc, node) => constructState(oldState, node, acc),\n newState,\n );\n }\n\n if (type === NodeType.Form) {\n assertNameIsUnique(newState, component.name);\n newState[component.name] = component.children.reduce<FormState>(\n (acc, node) => {\n if (node.type === NodeType.Input) {\n assertNameIsUnique(acc, node.name);\n acc[node.name] = constructFormInputState(\n oldState,\n node,\n component.name,\n );\n }\n\n return acc;\n },\n {},\n );\n }\n\n if (type === NodeType.Input) {\n assertNameIsUnique(newState, component.name);\n newState[component.name] = constructInputState(oldState, component);\n }\n\n return newState;\n};\n"],"mappings":";AAAA,SAAS,UAAU,cAAc;AAe1B,IAAM,sBAAsB,CACjC,OACA,cACG;AACH,SAAO,UAAU,SAAS,MAAM,UAAU,IAAI,KAAK;AACrD;AAYO,IAAM,0BAA0B,CACrC,OACA,WACA,SACG;AACH,QAAM,eAAe,MAAM,IAAI;AAC/B,QAAM,gBAAgB,eAAe,UAAU,IAAI;AACnD,SAAO,UAAU,SAAS,iBAAiB;AAC7C;AAQO,IAAM,qBAAqB,CAAC,OAAuB,SAAiB;AACzE;AAAA,IACE,MAAM,IAAI,MAAM;AAAA,IAChB,4EAA4E,IAAI;AAAA,EAClF;AACF;AAUO,IAAM,iBAAiB,CAC5B,UACA,WACA,WAA2B,CAAC,MACT;AACnB,QAAM,EAAE,KAAK,IAAI;AACjB,MAAI,SAAS,SAAS,OAAO;AAC3B,WAAO,UAAU,SAAS;AAAA,MACxB,CAAC,KAAK,SAAS,eAAe,UAAU,MAAM,GAAG;AAAA,MACjD;AAAA,IACF;AAAA,EACF;AAEA,MAAI,SAAS,SAAS,MAAM;AAC1B,uBAAmB,UAAU,UAAU,IAAI;AAC3C,aAAS,UAAU,IAAI,IAAI,UAAU,SAAS;AAAA,MAC5C,CAAC,KAAK,SAAS;AACb,YAAI,KAAK,SAAS,SAAS,OAAO;AAChC,6BAAmB,KAAK,KAAK,IAAI;AACjC,cAAI,KAAK,IAAI,IAAI;AAAA,YACf;AAAA,YACA;AAAA,YACA,UAAU;AAAA,UACZ;AAAA,QACF;AAEA,eAAO;AAAA,MACT;AAAA,MACA,CAAC;AAAA,IACH;AAAA,EACF;AAEA,MAAI,SAAS,SAAS,OAAO;AAC3B,uBAAmB,UAAU,UAAU,IAAI;AAC3C,aAAS,UAAU,IAAI,IAAI,oBAAoB,UAAU,SAAS;AAAA,EACpE;AAEA,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunkNKMIKK4Pjs = require('./chunk-NKMIKK4P.js');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var _chunkBKAYI3FBjs = require('./chunk-BKAYI3FB.js');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
var _chunkEXN2TFDJjs = require('./chunk-EXN2TFDJ.js');
|
|
13
|
+
|
|
14
|
+
// src/services/webview/WebViewExecutionService.ts
|
|
15
|
+
var _getWebView, _ensureWebViewLoaded, ensureWebViewLoaded_fn;
|
|
16
|
+
var WebViewExecutionService = class extends _chunkBKAYI3FBjs.ProxyExecutionService {
|
|
17
|
+
constructor({
|
|
18
|
+
messenger,
|
|
19
|
+
setupSnapProvider,
|
|
20
|
+
getWebView
|
|
21
|
+
}) {
|
|
22
|
+
super({
|
|
23
|
+
messenger,
|
|
24
|
+
setupSnapProvider,
|
|
25
|
+
stream: new (0, _chunkNKMIKK4Pjs.WebViewMessageStream)({
|
|
26
|
+
name: "parent",
|
|
27
|
+
target: "child",
|
|
28
|
+
getWebView
|
|
29
|
+
})
|
|
30
|
+
});
|
|
31
|
+
/**
|
|
32
|
+
* Ensure that the WebView has been loaded by awaiting the getWebView promise.
|
|
33
|
+
*/
|
|
34
|
+
_chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _ensureWebViewLoaded);
|
|
35
|
+
_chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _getWebView, void 0);
|
|
36
|
+
_chunkEXN2TFDJjs.__privateSet.call(void 0, this, _getWebView, getWebView);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Create a new stream for the specified job. This wraps the runtime stream
|
|
40
|
+
* in a stream specific to the job.
|
|
41
|
+
*
|
|
42
|
+
* @param jobId - The job ID.
|
|
43
|
+
*/
|
|
44
|
+
async initEnvStream(jobId) {
|
|
45
|
+
await _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _ensureWebViewLoaded, ensureWebViewLoaded_fn).call(this);
|
|
46
|
+
return super.initEnvStream(jobId);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
_getWebView = new WeakMap();
|
|
50
|
+
_ensureWebViewLoaded = new WeakSet();
|
|
51
|
+
ensureWebViewLoaded_fn = async function() {
|
|
52
|
+
await _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _getWebView).call(this);
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
exports.WebViewExecutionService = WebViewExecutionService;
|
|
58
|
+
//# sourceMappingURL=chunk-NDOKX4CC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/services/webview/WebViewExecutionService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA;AASO,IAAM,0BAAN,cAAsC,sBAAsB;AAAA,EAGjE,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAAgC;AAC9B,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA,QAAQ,IAAI,qBAAqB;AAAA,QAC/B,MAAM;AAAA,QACN,QAAQ;AAAA,QACR;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAoBH;AAAA;AAAA;AAAA,uBAAM;AAnCN;AAgBE,uBAAK,aAAc;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAgB,cAAc,OAAe;AAE3C,UAAM,sBAAK,8CAAL;AAEN,WAAO,MAAM,cAAc,KAAK;AAAA,EAClC;AAQF;AAtCE;AAmCM;AAAA,yBAAoB,iBAAG;AAC3B,QAAM,mBAAK,aAAL;AACR","sourcesContent":["import type { ExecutionServiceArgs } from '../AbstractExecutionService';\nimport { ProxyExecutionService } from '../proxy/ProxyExecutionService';\nimport type { WebViewInterface } from './WebViewMessageStream';\nimport { WebViewMessageStream } from './WebViewMessageStream';\n\nexport type WebViewExecutionServiceArgs = ExecutionServiceArgs & {\n getWebView: () => Promise<WebViewInterface>;\n};\n\nexport class WebViewExecutionService extends ProxyExecutionService {\n #getWebView;\n\n constructor({\n messenger,\n setupSnapProvider,\n getWebView,\n }: WebViewExecutionServiceArgs) {\n super({\n messenger,\n setupSnapProvider,\n stream: new WebViewMessageStream({\n name: 'parent',\n target: 'child',\n getWebView,\n }),\n });\n this.#getWebView = getWebView;\n }\n\n /**\n * Create a new stream for the specified job. This wraps the runtime stream\n * in a stream specific to the job.\n *\n * @param jobId - The job ID.\n */\n protected async initEnvStream(jobId: string) {\n // Ensure that the WebView has been loaded before we proceed.\n await this.#ensureWebViewLoaded();\n\n return super.initEnvStream(jobId);\n }\n\n /**\n * Ensure that the WebView has been loaded by awaiting the getWebView promise.\n */\n async #ensureWebViewLoaded() {\n await this.#getWebView();\n }\n}\n"]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
var _chunkEXN2TFDJjs = require('./chunk-EXN2TFDJ.js');
|
|
6
|
+
|
|
7
|
+
// src/services/webview/WebViewMessageStream.ts
|
|
8
|
+
var _postmessagestream = require('@metamask/post-message-stream');
|
|
9
|
+
var _utils = require('@metamask/post-message-stream/dist/utils');
|
|
10
|
+
var _snapsutils = require('@metamask/snaps-utils');
|
|
11
|
+
var _utils3 = require('@metamask/utils');
|
|
12
|
+
var _name, _target, _webView;
|
|
13
|
+
var WebViewMessageStream = class extends _postmessagestream.BasePostMessageStream {
|
|
14
|
+
/**
|
|
15
|
+
* Creates a stream for communicating with other streams inside a WebView.
|
|
16
|
+
*
|
|
17
|
+
* @param args - Options bag.
|
|
18
|
+
* @param args.name - The name of the stream. Used to differentiate between
|
|
19
|
+
* multiple streams sharing the same window object.
|
|
20
|
+
* @param args.target - The name of the stream to exchange messages with.
|
|
21
|
+
* @param args.getWebView - A asynchronous getter for the webview.
|
|
22
|
+
*/
|
|
23
|
+
constructor({ name, target, getWebView }) {
|
|
24
|
+
super();
|
|
25
|
+
_chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _name, void 0);
|
|
26
|
+
_chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _target, void 0);
|
|
27
|
+
_chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _webView, void 0);
|
|
28
|
+
_chunkEXN2TFDJjs.__privateSet.call(void 0, this, _name, name);
|
|
29
|
+
_chunkEXN2TFDJjs.__privateSet.call(void 0, this, _target, target);
|
|
30
|
+
this._onMessage = this._onMessage.bind(this);
|
|
31
|
+
getWebView().then((webView) => {
|
|
32
|
+
_chunkEXN2TFDJjs.__privateSet.call(void 0, this, _webView, webView);
|
|
33
|
+
webView.registerMessageListener(this._onMessage);
|
|
34
|
+
this._handshake();
|
|
35
|
+
}).catch((error) => {
|
|
36
|
+
_snapsutils.logError.call(void 0, error);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
_postMessage(data) {
|
|
40
|
+
_utils3.assert.call(void 0, _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _webView));
|
|
41
|
+
const json = JSON.stringify({
|
|
42
|
+
target: _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _target),
|
|
43
|
+
data
|
|
44
|
+
});
|
|
45
|
+
const bytes = _utils3.stringToBytes.call(void 0, json);
|
|
46
|
+
const base64 = _utils3.bytesToBase64.call(void 0, bytes);
|
|
47
|
+
_chunkEXN2TFDJjs.__privateGet.call(void 0, this, _webView).injectJavaScript(`window.postMessage('${base64}')`);
|
|
48
|
+
}
|
|
49
|
+
_onMessage(event) {
|
|
50
|
+
if (typeof event.data !== "string") {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const message = JSON.parse(event.data);
|
|
54
|
+
if (!_utils.isValidStreamMessage.call(void 0, message) || message.target !== _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _name)) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
this._onData(message.data);
|
|
58
|
+
}
|
|
59
|
+
_destroy() {
|
|
60
|
+
_utils3.assert.call(void 0, _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _webView));
|
|
61
|
+
_chunkEXN2TFDJjs.__privateGet.call(void 0, this, _webView).unregisterMessageListener(this._onMessage);
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
_name = new WeakMap();
|
|
65
|
+
_target = new WeakMap();
|
|
66
|
+
_webView = new WeakMap();
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
exports.WebViewMessageStream = WebViewMessageStream;
|
|
71
|
+
//# sourceMappingURL=chunk-NKMIKK4P.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/services/webview/WebViewMessageStream.ts"],"names":[],"mappings":";;;;;;;AACA,SAAS,6BAA6B;AACtC,SAAS,4BAA4B;AACrC,SAAS,gBAAgB;AACzB,SAAS,QAAQ,eAAe,qBAAqB;AAJrD;AAsBO,IAAM,uBAAN,cAAmC,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgB9D,YAAY,EAAE,MAAM,QAAQ,WAAW,GAAsB;AAC3D,UAAM;AAhBR;AAEA;AAEA;AAcE,uBAAK,OAAQ;AACb,uBAAK,SAAU;AAEf,SAAK,aAAa,KAAK,WAAW,KAAK,IAAI;AAI3C,eAAW,EACR,KAAK,CAAC,YAAY;AACjB,yBAAK,UAAW;AAGhB,cAAQ,wBAAwB,KAAK,UAAU;AAC/C,WAAK,WAAW;AAAA,IAClB,CAAC,EACA,MAAM,CAAC,UAAU;AAChB,eAAS,KAAK;AAAA,IAChB,CAAC;AAAA,EACL;AAAA,EAEU,aAAa,MAAqB;AAC1C,WAAO,mBAAK,SAAQ;AACpB,UAAM,OAAO,KAAK,UAAU;AAAA,MAC1B,QAAQ,mBAAK;AAAA,MACb;AAAA,IACF,CAAC;AAKD,UAAM,QAAQ,cAAc,IAAI;AAChC,UAAM,SAAS,cAAc,KAAK;AAClC,uBAAK,UAAS,iBAAiB,uBAAuB,MAAM,IAAI;AAAA,EAClE;AAAA,EAEQ,WAAW,OAA+B;AAChD,QAAI,OAAO,MAAM,SAAS,UAAU;AAClC;AAAA,IACF;AAEA,UAAM,UAAU,KAAK,MAAM,MAAM,IAAI;AAIrC,QAAI,CAAC,qBAAqB,OAAO,KAAK,QAAQ,WAAW,mBAAK,QAAO;AACnE;AAAA,IACF;AAEA,SAAK,QAAQ,QAAQ,IAAI;AAAA,EAC3B;AAAA,EAEA,WAAW;AACT,WAAO,mBAAK,SAAQ;AAGpB,uBAAK,UAAS,0BAA0B,KAAK,UAAU;AAAA,EACzD;AACF;AA3EE;AAEA;AAEA","sourcesContent":["import type { PostMessageEvent } from '@metamask/post-message-stream';\nimport { BasePostMessageStream } from '@metamask/post-message-stream';\nimport { isValidStreamMessage } from '@metamask/post-message-stream/dist/utils';\nimport { logError } from '@metamask/snaps-utils';\nimport { assert, bytesToBase64, stringToBytes } from '@metamask/utils';\n\nexport type WebViewInterface = {\n injectJavaScript(js: string): void;\n registerMessageListener(listener: (event: PostMessageEvent) => void): void;\n unregisterMessageListener(listener: (event: PostMessageEvent) => void): void;\n};\n\ntype WebViewStreamArgs = {\n name: string;\n target: string;\n getWebView: () => Promise<WebViewInterface>;\n};\n\n/**\n * A special postMessage stream used to interface with a WebView.\n */\n\nexport class WebViewMessageStream extends BasePostMessageStream {\n #name;\n\n #target;\n\n #webView: WebViewInterface | undefined;\n\n /**\n * Creates a stream for communicating with other streams inside a WebView.\n *\n * @param args - Options bag.\n * @param args.name - The name of the stream. Used to differentiate between\n * multiple streams sharing the same window object.\n * @param args.target - The name of the stream to exchange messages with.\n * @param args.getWebView - A asynchronous getter for the webview.\n */\n constructor({ name, target, getWebView }: WebViewStreamArgs) {\n super();\n\n this.#name = name;\n this.#target = target;\n\n this._onMessage = this._onMessage.bind(this);\n\n // This is a bit atypical from other post-message streams.\n // We have to wait for the WebView to fully load before we can continue using the stream.\n getWebView()\n .then((webView) => {\n this.#webView = webView;\n // This method is already bound.\n // eslint-disable-next-line @typescript-eslint/unbound-method\n webView.registerMessageListener(this._onMessage);\n this._handshake();\n })\n .catch((error) => {\n logError(error);\n });\n }\n\n protected _postMessage(data: unknown): void {\n assert(this.#webView);\n const json = JSON.stringify({\n target: this.#target,\n data,\n });\n\n // To prevent XSS, we base64 encode the message before injecting it.\n // This adds significant performance overhead.\n // TODO: Should we use mobile native base64 here?\n const bytes = stringToBytes(json);\n const base64 = bytesToBase64(bytes);\n this.#webView.injectJavaScript(`window.postMessage('${base64}')`);\n }\n\n private _onMessage(event: PostMessageEvent): void {\n if (typeof event.data !== 'string') {\n return;\n }\n\n const message = JSON.parse(event.data);\n\n // Notice that we don't check targetWindow or targetOrigin here.\n // This doesn't seem possible to do in RN.\n if (!isValidStreamMessage(message) || message.target !== this.#name) {\n return;\n }\n\n this._onData(message.data);\n }\n\n _destroy() {\n assert(this.#webView);\n // This method is already bound.\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.#webView.unregisterMessageListener(this._onMessage);\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=chunk-NSOTRW3O.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=chunk-OJ2YAMFL.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__privateAdd,
|
|
3
|
+
__privateGet,
|
|
4
|
+
__privateMethod,
|
|
5
|
+
__privateSet
|
|
6
|
+
} from "./chunk-YRZVIDCF.mjs";
|
|
7
|
+
|
|
8
|
+
// src/services/ProxyPostMessageStream.ts
|
|
9
|
+
import { BasePostMessageStream } from "@metamask/post-message-stream";
|
|
10
|
+
var _stream, _jobId, _onData, onData_fn;
|
|
11
|
+
var ProxyPostMessageStream = class extends BasePostMessageStream {
|
|
12
|
+
/**
|
|
13
|
+
* Initializes a new `ProxyPostMessageStream` instance.
|
|
14
|
+
*
|
|
15
|
+
* @param args - The constructor arguments.
|
|
16
|
+
* @param args.stream - The underlying stream to use for communication.
|
|
17
|
+
* @param args.jobId - The ID of the job this stream is associated with.
|
|
18
|
+
*/
|
|
19
|
+
constructor({ stream, jobId }) {
|
|
20
|
+
super();
|
|
21
|
+
/**
|
|
22
|
+
* Handle incoming data from the underlying stream. This checks that the job
|
|
23
|
+
* ID matches the expected job ID, and pushes the data to the stream if so.
|
|
24
|
+
*
|
|
25
|
+
* @param data - The data to handle.
|
|
26
|
+
*/
|
|
27
|
+
__privateAdd(this, _onData);
|
|
28
|
+
__privateAdd(this, _stream, void 0);
|
|
29
|
+
__privateAdd(this, _jobId, void 0);
|
|
30
|
+
__privateSet(this, _stream, stream);
|
|
31
|
+
__privateSet(this, _jobId, jobId);
|
|
32
|
+
__privateGet(this, _stream).on("data", __privateMethod(this, _onData, onData_fn).bind(this));
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Write data to the underlying stream. This wraps the data in an object with
|
|
36
|
+
* the job ID.
|
|
37
|
+
*
|
|
38
|
+
* @param data - The data to write.
|
|
39
|
+
*/
|
|
40
|
+
_postMessage(data) {
|
|
41
|
+
__privateGet(this, _stream).write({
|
|
42
|
+
jobId: __privateGet(this, _jobId),
|
|
43
|
+
data
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
_stream = new WeakMap();
|
|
48
|
+
_jobId = new WeakMap();
|
|
49
|
+
_onData = new WeakSet();
|
|
50
|
+
onData_fn = function(data) {
|
|
51
|
+
if (data.jobId !== __privateGet(this, _jobId)) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
this.push(data.data);
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
export {
|
|
58
|
+
ProxyPostMessageStream
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=chunk-OPH3RY2U.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/services/ProxyPostMessageStream.ts"],"sourcesContent":["import { BasePostMessageStream } from '@metamask/post-message-stream';\nimport type { JsonRpcRequest } from '@metamask/utils';\n\nexport type ProxyPostMessageStreamArgs = {\n stream: BasePostMessageStream;\n jobId: string;\n extra?: Record<string, unknown>;\n};\n\nexport type ProxyPostMessage = {\n jobId: string;\n data: JsonRpcRequest;\n extra?: Record<string, unknown>;\n};\n\n/**\n * A post message stream that wraps messages in a job ID, before sending them\n * over the underlying stream.\n */\nexport class ProxyPostMessageStream extends BasePostMessageStream {\n readonly #stream: BasePostMessageStream;\n\n readonly #jobId: string;\n\n /**\n * Initializes a new `ProxyPostMessageStream` instance.\n *\n * @param args - The constructor arguments.\n * @param args.stream - The underlying stream to use for communication.\n * @param args.jobId - The ID of the job this stream is associated with.\n */\n constructor({ stream, jobId }: ProxyPostMessageStreamArgs) {\n super();\n\n this.#stream = stream;\n this.#jobId = jobId;\n\n this.#stream.on('data', this.#onData.bind(this));\n }\n\n /**\n * Handle incoming data from the underlying stream. This checks that the job\n * ID matches the expected job ID, and pushes the data to the stream if so.\n *\n * @param data - The data to handle.\n */\n #onData(data: ProxyPostMessage) {\n if (data.jobId !== this.#jobId) {\n return;\n }\n\n this.push(data.data);\n }\n\n /**\n * Write data to the underlying stream. This wraps the data in an object with\n * the job ID.\n *\n * @param data - The data to write.\n */\n _postMessage(data: ProxyPostMessage) {\n this.#stream.write({\n jobId: this.#jobId,\n data,\n });\n }\n}\n"],"mappings":";;;;;;;;AAAA,SAAS,6BAA6B;AAAtC;AAmBO,IAAM,yBAAN,cAAqC,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYhE,YAAY,EAAE,QAAQ,MAAM,GAA+B;AACzD,UAAM;AAcR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA1BA,uBAAS,SAAT;AAEA,uBAAS,QAAT;AAYE,uBAAK,SAAU;AACf,uBAAK,QAAS;AAEd,uBAAK,SAAQ,GAAG,QAAQ,sBAAK,oBAAQ,KAAK,IAAI,CAAC;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsBA,aAAa,MAAwB;AACnC,uBAAK,SAAQ,MAAM;AAAA,MACjB,OAAO,mBAAK;AAAA,MACZ;AAAA,IACF,CAAC;AAAA,EACH;AACF;AA9CW;AAEA;AAwBT;AAAA,YAAO,SAAC,MAAwB;AAC9B,MAAI,KAAK,UAAU,mBAAK,SAAQ;AAC9B;AAAA,EACF;AAEA,OAAK,KAAK,KAAK,IAAI;AACrB;","names":[]}
|
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var _chunkEXN2TFDJjs = require('./chunk-EXN2TFDJ.js');
|
|
7
|
+
|
|
8
|
+
// src/snaps/location/npm.ts
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
var _snapsutils = require('@metamask/snaps-utils');
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
var _utils = require('@metamask/utils');
|
|
26
|
+
var _browserifyzlib = require('browserify-zlib');
|
|
27
|
+
var _concatstream = require('concat-stream'); var _concatstream2 = _interopRequireDefault(_concatstream);
|
|
28
|
+
var _getnpmtarballurl = require('get-npm-tarball-url'); var _getnpmtarballurl2 = _interopRequireDefault(_getnpmtarballurl);
|
|
29
|
+
var _readablestream = require('readable-stream');
|
|
30
|
+
var _readablewebtonodestream = require('readable-web-to-node-stream');
|
|
31
|
+
var _tarstream = require('tar-stream');
|
|
32
|
+
var DEFAULT_NPM_REGISTRY = new URL("https://registry.npmjs.org");
|
|
33
|
+
var _validatedManifest, _files, _lazyInit, lazyInit_fn;
|
|
34
|
+
var BaseNpmLocation = class {
|
|
35
|
+
constructor(url, opts = {}) {
|
|
36
|
+
_chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _lazyInit);
|
|
37
|
+
_chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _validatedManifest, void 0);
|
|
38
|
+
_chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _files, void 0);
|
|
39
|
+
const allowCustomRegistries = _nullishCoalesce(opts.allowCustomRegistries, () => ( false));
|
|
40
|
+
const fetchFunction = _nullishCoalesce(opts.fetch, () => ( globalThis.fetch.bind(globalThis)));
|
|
41
|
+
const requestedRange = _nullishCoalesce(opts.versionRange, () => ( _snapsutils.DEFAULT_REQUESTED_SNAP_VERSION));
|
|
42
|
+
const defaultResolve = async (range) => range;
|
|
43
|
+
const resolveVersion = _nullishCoalesce(opts.resolveVersion, () => ( defaultResolve));
|
|
44
|
+
_utils.assertStruct.call(void 0, url.toString(), _snapsutils.NpmSnapIdStruct, "Invalid Snap Id: ");
|
|
45
|
+
let registry;
|
|
46
|
+
if (url.host === "" && url.port === "" && url.username === "" && url.password === "") {
|
|
47
|
+
registry = DEFAULT_NPM_REGISTRY;
|
|
48
|
+
} else {
|
|
49
|
+
registry = "https://";
|
|
50
|
+
if (url.username) {
|
|
51
|
+
registry += url.username;
|
|
52
|
+
if (url.password) {
|
|
53
|
+
registry += `:${url.password}`;
|
|
54
|
+
}
|
|
55
|
+
registry += "@";
|
|
56
|
+
}
|
|
57
|
+
registry += url.host;
|
|
58
|
+
registry = new URL(registry);
|
|
59
|
+
_utils.assert.call(void 0,
|
|
60
|
+
allowCustomRegistries,
|
|
61
|
+
new TypeError(
|
|
62
|
+
`Custom NPM registries are disabled, tried to use "${registry.toString()}".`
|
|
63
|
+
)
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
_utils.assert.call(void 0,
|
|
67
|
+
registry.pathname === "/" && registry.search === "" && registry.hash === ""
|
|
68
|
+
);
|
|
69
|
+
_utils.assert.call(void 0,
|
|
70
|
+
url.pathname !== "" && url.pathname !== "/",
|
|
71
|
+
new TypeError("The package name in NPM location is empty.")
|
|
72
|
+
);
|
|
73
|
+
let packageName = url.pathname;
|
|
74
|
+
if (packageName.startsWith("/")) {
|
|
75
|
+
packageName = packageName.slice(1);
|
|
76
|
+
}
|
|
77
|
+
this.meta = {
|
|
78
|
+
requestedRange,
|
|
79
|
+
registry,
|
|
80
|
+
packageName,
|
|
81
|
+
fetch: fetchFunction,
|
|
82
|
+
resolveVersion
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
async manifest() {
|
|
86
|
+
if (_chunkEXN2TFDJjs.__privateGet.call(void 0, this, _validatedManifest)) {
|
|
87
|
+
return _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _validatedManifest).clone();
|
|
88
|
+
}
|
|
89
|
+
const vfile = await this.fetch("snap.manifest.json");
|
|
90
|
+
const result = _snapsutils.parseJson.call(void 0, vfile.toString());
|
|
91
|
+
vfile.result = _snapsutils.createSnapManifest.call(void 0, result);
|
|
92
|
+
_chunkEXN2TFDJjs.__privateSet.call(void 0, this, _validatedManifest, vfile);
|
|
93
|
+
return this.manifest();
|
|
94
|
+
}
|
|
95
|
+
async fetch(path) {
|
|
96
|
+
const relativePath = _snapsutils.normalizeRelative.call(void 0, path);
|
|
97
|
+
if (!_chunkEXN2TFDJjs.__privateGet.call(void 0, this, _files)) {
|
|
98
|
+
await _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _lazyInit, lazyInit_fn).call(this);
|
|
99
|
+
_utils.assert.call(void 0, _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _files) !== void 0);
|
|
100
|
+
}
|
|
101
|
+
const vfile = _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _files).get(relativePath);
|
|
102
|
+
_utils.assert.call(void 0,
|
|
103
|
+
vfile !== void 0,
|
|
104
|
+
new TypeError(`File "${path}" not found in package.`)
|
|
105
|
+
);
|
|
106
|
+
return vfile.clone();
|
|
107
|
+
}
|
|
108
|
+
get packageName() {
|
|
109
|
+
return this.meta.packageName;
|
|
110
|
+
}
|
|
111
|
+
get version() {
|
|
112
|
+
_utils.assert.call(void 0,
|
|
113
|
+
this.meta.version !== void 0,
|
|
114
|
+
"Tried to access version without first fetching NPM package."
|
|
115
|
+
);
|
|
116
|
+
return this.meta.version;
|
|
117
|
+
}
|
|
118
|
+
get registry() {
|
|
119
|
+
return this.meta.registry;
|
|
120
|
+
}
|
|
121
|
+
get versionRange() {
|
|
122
|
+
return this.meta.requestedRange;
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
_validatedManifest = new WeakMap();
|
|
126
|
+
_files = new WeakMap();
|
|
127
|
+
_lazyInit = new WeakSet();
|
|
128
|
+
lazyInit_fn = async function() {
|
|
129
|
+
_utils.assert.call(void 0, _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _files) === void 0);
|
|
130
|
+
const resolvedVersion = await this.meta.resolveVersion(
|
|
131
|
+
this.meta.requestedRange
|
|
132
|
+
);
|
|
133
|
+
const { tarballURL, targetVersion } = await resolveNpmVersion(
|
|
134
|
+
this.meta.packageName,
|
|
135
|
+
resolvedVersion,
|
|
136
|
+
this.meta.registry,
|
|
137
|
+
this.meta.fetch
|
|
138
|
+
);
|
|
139
|
+
if (!_snapsutils.isValidUrl.call(void 0, tarballURL) || !tarballURL.toString().endsWith(".tgz")) {
|
|
140
|
+
throw new Error(
|
|
141
|
+
`Failed to find valid tarball URL in NPM metadata for package "${this.meta.packageName}".`
|
|
142
|
+
);
|
|
143
|
+
}
|
|
144
|
+
const newTarballUrl = new URL(tarballURL);
|
|
145
|
+
newTarballUrl.hostname = this.meta.registry.hostname;
|
|
146
|
+
newTarballUrl.protocol = this.meta.registry.protocol;
|
|
147
|
+
const files = await this.fetchNpmTarball(newTarballUrl);
|
|
148
|
+
_chunkEXN2TFDJjs.__privateSet.call(void 0, this, _files, files);
|
|
149
|
+
this.meta.version = targetVersion;
|
|
150
|
+
};
|
|
151
|
+
var TARBALL_SIZE_SAFETY_LIMIT = 262144e3;
|
|
152
|
+
var NpmLocation = class extends BaseNpmLocation {
|
|
153
|
+
/**
|
|
154
|
+
* Fetches and unpacks the tarball (`.tgz` file) from the specified URL.
|
|
155
|
+
*
|
|
156
|
+
* @param tarballUrl - The tarball URL to fetch and unpack.
|
|
157
|
+
* @returns A the files for the package tarball.
|
|
158
|
+
* @throws If fetching the tarball fails.
|
|
159
|
+
*/
|
|
160
|
+
async fetchNpmTarball(tarballUrl) {
|
|
161
|
+
const tarballResponse = await this.meta.fetch(tarballUrl.toString());
|
|
162
|
+
if (!tarballResponse.ok || !tarballResponse.body) {
|
|
163
|
+
throw new Error(
|
|
164
|
+
`Failed to fetch tarball for package "${this.meta.packageName}".`
|
|
165
|
+
);
|
|
166
|
+
}
|
|
167
|
+
const tarballSizeString = tarballResponse.headers.get("content-length");
|
|
168
|
+
_utils.assert.call(void 0, tarballSizeString, "Snap tarball has invalid content-length");
|
|
169
|
+
const tarballSize = parseInt(tarballSizeString, 10);
|
|
170
|
+
_utils.assert.call(void 0,
|
|
171
|
+
tarballSize <= TARBALL_SIZE_SAFETY_LIMIT,
|
|
172
|
+
"Snap tarball exceeds size limit"
|
|
173
|
+
);
|
|
174
|
+
return new Promise((resolve, reject) => {
|
|
175
|
+
const files = /* @__PURE__ */ new Map();
|
|
176
|
+
const tarballStream = createTarballStream(
|
|
177
|
+
getNpmCanonicalBasePath(this.meta.registry, this.meta.packageName),
|
|
178
|
+
files
|
|
179
|
+
);
|
|
180
|
+
const body = tarballResponse.body;
|
|
181
|
+
if ("pipeThrough" in body && "DecompressionStream" in globalThis) {
|
|
182
|
+
const decompressionStream = new DecompressionStream("gzip");
|
|
183
|
+
const decompressedStream = body.pipeThrough(decompressionStream);
|
|
184
|
+
_readablestream.pipeline.call(void 0,
|
|
185
|
+
getNodeStream(decompressedStream),
|
|
186
|
+
tarballStream,
|
|
187
|
+
(error) => {
|
|
188
|
+
error ? reject(error) : resolve(files);
|
|
189
|
+
}
|
|
190
|
+
);
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
_readablestream.pipeline.call(void 0,
|
|
194
|
+
getNodeStream(body),
|
|
195
|
+
_browserifyzlib.createGunzip.call(void 0, ),
|
|
196
|
+
tarballStream,
|
|
197
|
+
(error) => {
|
|
198
|
+
error ? reject(error) : resolve(files);
|
|
199
|
+
}
|
|
200
|
+
);
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
async function fetchNpmMetadata(packageName, registryUrl, fetchFunction) {
|
|
205
|
+
const packageResponse = await fetchFunction(
|
|
206
|
+
new URL(packageName, registryUrl).toString(),
|
|
207
|
+
{
|
|
208
|
+
headers: {
|
|
209
|
+
// Corgi format is slightly smaller: https://github.com/npm/pacote/blob/main/lib/registry.js#L71
|
|
210
|
+
accept: isNPM(registryUrl) ? "application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*" : "application/json"
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
);
|
|
214
|
+
if (!packageResponse.ok) {
|
|
215
|
+
throw new Error(
|
|
216
|
+
`Failed to fetch NPM registry entry. Status code: ${packageResponse.status}.`
|
|
217
|
+
);
|
|
218
|
+
}
|
|
219
|
+
const packageMetadata = await packageResponse.json();
|
|
220
|
+
if (!_utils.isObject.call(void 0, packageMetadata)) {
|
|
221
|
+
throw new Error(
|
|
222
|
+
`Failed to fetch package "${packageName}" metadata from npm.`
|
|
223
|
+
);
|
|
224
|
+
}
|
|
225
|
+
return packageMetadata;
|
|
226
|
+
}
|
|
227
|
+
function getNpmCanonicalBasePath(registryUrl, packageName) {
|
|
228
|
+
let canonicalBase = "npm://";
|
|
229
|
+
if (registryUrl.username !== "") {
|
|
230
|
+
canonicalBase += registryUrl.username;
|
|
231
|
+
if (registryUrl.password !== "") {
|
|
232
|
+
canonicalBase += `:${registryUrl.password}`;
|
|
233
|
+
}
|
|
234
|
+
canonicalBase += "@";
|
|
235
|
+
}
|
|
236
|
+
return `${canonicalBase}${registryUrl.host}/${packageName}/`;
|
|
237
|
+
}
|
|
238
|
+
function isNPM(registryUrl) {
|
|
239
|
+
return registryUrl.toString() === DEFAULT_NPM_REGISTRY.toString();
|
|
240
|
+
}
|
|
241
|
+
async function resolveNpmVersion(packageName, versionRange, registryUrl, fetchFunction) {
|
|
242
|
+
if (isNPM(registryUrl) && _utils.isValidSemVerVersion.call(void 0, versionRange)) {
|
|
243
|
+
return {
|
|
244
|
+
tarballURL: _getnpmtarballurl2.default.call(void 0, packageName, versionRange),
|
|
245
|
+
targetVersion: versionRange
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
const packageMetadata = await fetchNpmMetadata(
|
|
249
|
+
packageName,
|
|
250
|
+
registryUrl,
|
|
251
|
+
fetchFunction
|
|
252
|
+
);
|
|
253
|
+
const versions = Object.keys(_nullishCoalesce(_optionalChain([packageMetadata, 'optionalAccess', _ => _.versions]), () => ( {}))).map(
|
|
254
|
+
(version) => {
|
|
255
|
+
_utils.assertIsSemVerVersion.call(void 0, version);
|
|
256
|
+
return version;
|
|
257
|
+
}
|
|
258
|
+
);
|
|
259
|
+
const targetVersion = _snapsutils.getTargetVersion.call(void 0, versions, versionRange);
|
|
260
|
+
if (targetVersion === null) {
|
|
261
|
+
throw new Error(
|
|
262
|
+
`Failed to find a matching version in npm metadata for package "${packageName}" and requested semver range "${versionRange}".`
|
|
263
|
+
);
|
|
264
|
+
}
|
|
265
|
+
const tarballURL = _optionalChain([packageMetadata, 'optionalAccess', _2 => _2.versions, 'optionalAccess', _3 => _3[targetVersion], 'optionalAccess', _4 => _4.dist, 'optionalAccess', _5 => _5.tarball]);
|
|
266
|
+
return { tarballURL, targetVersion };
|
|
267
|
+
}
|
|
268
|
+
var NPM_TARBALL_PATH_PREFIX = /^package\//u;
|
|
269
|
+
function getNodeStream(stream) {
|
|
270
|
+
if (typeof stream.getReader !== "function") {
|
|
271
|
+
return stream;
|
|
272
|
+
}
|
|
273
|
+
return new (0, _readablewebtonodestream.ReadableWebToNodeStream)(stream);
|
|
274
|
+
}
|
|
275
|
+
function createTarballStream(canonicalBase, files) {
|
|
276
|
+
_utils.assert.call(void 0,
|
|
277
|
+
canonicalBase.endsWith("/"),
|
|
278
|
+
"Base needs to end with '/' for relative paths to be added as children instead of siblings."
|
|
279
|
+
);
|
|
280
|
+
_utils.assert.call(void 0,
|
|
281
|
+
canonicalBase.startsWith("npm:"),
|
|
282
|
+
'Protocol mismatch, expected "npm:".'
|
|
283
|
+
);
|
|
284
|
+
const extractStream = _tarstream.extract.call(void 0, );
|
|
285
|
+
let totalSize = 0;
|
|
286
|
+
extractStream.on("entry", (header, entryStream, next) => {
|
|
287
|
+
const { name: headerName, type: headerType } = header;
|
|
288
|
+
if (headerType === "file") {
|
|
289
|
+
const path = headerName.replace(NPM_TARBALL_PATH_PREFIX, "");
|
|
290
|
+
return entryStream.pipe(
|
|
291
|
+
_concatstream2.default.call(void 0, { encoding: "uint8array" }, (data) => {
|
|
292
|
+
try {
|
|
293
|
+
totalSize += data.byteLength;
|
|
294
|
+
_utils.assert.call(void 0,
|
|
295
|
+
totalSize < TARBALL_SIZE_SAFETY_LIMIT,
|
|
296
|
+
`Snap tarball exceeds limit of ${TARBALL_SIZE_SAFETY_LIMIT} bytes.`
|
|
297
|
+
);
|
|
298
|
+
const vfile = new (0, _snapsutils.VirtualFile)({
|
|
299
|
+
value: data,
|
|
300
|
+
path,
|
|
301
|
+
data: {
|
|
302
|
+
canonicalPath: new URL(path, canonicalBase).toString()
|
|
303
|
+
}
|
|
304
|
+
});
|
|
305
|
+
_utils.assert.call(void 0,
|
|
306
|
+
!files.has(path),
|
|
307
|
+
"Malformed tarball, multiple files with the same path."
|
|
308
|
+
);
|
|
309
|
+
files.set(path, vfile);
|
|
310
|
+
return next();
|
|
311
|
+
} catch (error) {
|
|
312
|
+
return extractStream.destroy(error);
|
|
313
|
+
}
|
|
314
|
+
})
|
|
315
|
+
);
|
|
316
|
+
}
|
|
317
|
+
entryStream.on("end", () => next());
|
|
318
|
+
return entryStream.resume();
|
|
319
|
+
});
|
|
320
|
+
return extractStream;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
exports.DEFAULT_NPM_REGISTRY = DEFAULT_NPM_REGISTRY; exports.BaseNpmLocation = BaseNpmLocation; exports.TARBALL_SIZE_SAFETY_LIMIT = TARBALL_SIZE_SAFETY_LIMIT; exports.NpmLocation = NpmLocation; exports.fetchNpmMetadata = fetchNpmMetadata; exports.getNpmCanonicalBasePath = getNpmCanonicalBasePath;
|
|
331
|
+
//# sourceMappingURL=chunk-OUYEWVXP.js.map
|