@metamask/snaps-execution-environments 6.6.2 → 6.7.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 +13 -1
- package/dist/common/BaseSnapExecutor.cjs +436 -0
- package/dist/common/BaseSnapExecutor.cjs.map +1 -0
- package/dist/{types/common/BaseSnapExecutor.d.ts → common/BaseSnapExecutor.d.cts} +8 -6
- package/dist/common/BaseSnapExecutor.d.cts.map +1 -0
- package/dist/common/BaseSnapExecutor.d.mts +70 -0
- package/dist/common/BaseSnapExecutor.d.mts.map +1 -0
- package/dist/common/BaseSnapExecutor.mjs +430 -24
- package/dist/common/BaseSnapExecutor.mjs.map +1 -1
- package/dist/common/commands.cjs +95 -0
- package/dist/common/commands.cjs.map +1 -0
- package/dist/{types/common/commands.d.ts → common/commands.d.cts} +5 -4
- package/dist/common/commands.d.cts.map +1 -0
- package/dist/common/commands.d.mts +31 -0
- package/dist/common/commands.d.mts.map +1 -0
- package/dist/common/commands.mjs +89 -10
- package/dist/common/commands.mjs.map +1 -1
- package/dist/common/endowments/commonEndowmentFactory.cjs +76 -0
- package/dist/common/endowments/commonEndowmentFactory.cjs.map +1 -0
- package/dist/{types/common/endowments/commonEndowmentFactory.d.ts → common/endowments/commonEndowmentFactory.d.cts} +5 -4
- package/dist/common/endowments/commonEndowmentFactory.d.cts.map +1 -0
- package/dist/common/endowments/commonEndowmentFactory.d.mts +26 -0
- package/dist/common/endowments/commonEndowmentFactory.d.mts.map +1 -0
- package/dist/common/endowments/commonEndowmentFactory.mjs +69 -18
- package/dist/common/endowments/commonEndowmentFactory.mjs.map +1 -1
- package/dist/common/endowments/console.cjs +103 -0
- package/dist/common/endowments/console.cjs.map +1 -0
- package/dist/{types/common/endowments/console.d.ts → common/endowments/console.d.cts} +2 -1
- package/dist/common/endowments/console.d.cts.map +1 -0
- package/dist/common/endowments/console.d.mts +46 -0
- package/dist/common/endowments/console.d.mts.map +1 -0
- package/dist/common/endowments/console.mjs +98 -11
- package/dist/common/endowments/console.mjs.map +1 -1
- package/dist/common/endowments/crypto.cjs +30 -0
- package/dist/common/endowments/crypto.cjs.map +1 -0
- package/dist/{types/common/endowments/crypto.d.ts → common/endowments/crypto.d.cts} +1 -0
- package/dist/common/endowments/crypto.d.cts.map +1 -0
- package/dist/common/endowments/crypto.d.mts +13 -0
- package/dist/common/endowments/crypto.d.mts.map +1 -0
- package/dist/common/endowments/crypto.mjs +24 -9
- package/dist/common/endowments/crypto.mjs.map +1 -1
- package/dist/common/endowments/date.cjs +39 -0
- package/dist/common/endowments/date.cjs.map +1 -0
- package/dist/{types/common/endowments/date.d.ts → common/endowments/date.d.cts} +1 -0
- package/dist/common/endowments/date.d.cts.map +1 -0
- package/dist/common/endowments/date.d.mts +16 -0
- package/dist/common/endowments/date.d.mts.map +1 -0
- package/dist/common/endowments/date.mjs +35 -7
- package/dist/common/endowments/date.mjs.map +1 -1
- package/dist/common/endowments/index.cjs +93 -0
- package/dist/common/endowments/index.cjs.map +1 -0
- package/dist/{types/common/endowments/index.d.ts → common/endowments/index.d.cts} +4 -3
- package/dist/common/endowments/index.d.cts.map +1 -0
- package/dist/common/endowments/index.d.mts +29 -0
- package/dist/common/endowments/index.d.mts.map +1 -0
- package/dist/common/endowments/index.mjs +85 -20
- package/dist/common/endowments/index.mjs.map +1 -1
- package/dist/common/endowments/interval.cjs +51 -0
- package/dist/common/endowments/interval.cjs.map +1 -0
- package/dist/{types/common/endowments/interval.d.ts → common/endowments/interval.d.cts} +1 -0
- package/dist/common/endowments/interval.d.cts.map +1 -0
- package/dist/common/endowments/interval.d.mts +10 -0
- package/dist/common/endowments/interval.d.mts.map +1 -0
- package/dist/common/endowments/interval.mjs +47 -6
- package/dist/common/endowments/interval.mjs.map +1 -1
- package/dist/common/endowments/math.cjs +54 -0
- package/dist/common/endowments/math.cjs.map +1 -0
- package/dist/{types/common/endowments/math.d.ts → common/endowments/math.d.cts} +1 -0
- package/dist/common/endowments/math.d.cts.map +1 -0
- package/dist/common/endowments/math.d.mts +61 -0
- package/dist/common/endowments/math.d.mts.map +1 -0
- package/dist/common/endowments/math.mjs +50 -8
- package/dist/common/endowments/math.mjs.map +1 -1
- package/dist/common/endowments/network.cjs +255 -0
- package/dist/common/endowments/network.cjs.map +1 -0
- package/dist/{types/common/endowments/network.d.ts → common/endowments/network.d.cts} +4 -2
- package/dist/common/endowments/network.d.cts.map +1 -0
- package/dist/common/endowments/network.d.mts +25 -0
- package/dist/common/endowments/network.d.mts.map +1 -0
- package/dist/common/endowments/network.mjs +251 -8
- package/dist/common/endowments/network.mjs.map +1 -1
- package/dist/common/endowments/textDecoder.cjs +18 -0
- package/dist/common/endowments/textDecoder.cjs.map +1 -0
- package/dist/{types/common/endowments/textDecoder.d.ts → common/endowments/textDecoder.d.cts} +1 -0
- package/dist/common/endowments/textDecoder.d.cts.map +1 -0
- package/dist/common/endowments/textDecoder.d.mts +11 -0
- package/dist/common/endowments/textDecoder.d.mts.map +1 -0
- package/dist/common/endowments/textDecoder.mjs +14 -6
- package/dist/common/endowments/textDecoder.mjs.map +1 -1
- package/dist/common/endowments/textEncoder.cjs +18 -0
- package/dist/common/endowments/textEncoder.cjs.map +1 -0
- package/dist/{types/common/endowments/textEncoder.d.ts → common/endowments/textEncoder.d.cts} +1 -0
- package/dist/common/endowments/textEncoder.d.cts.map +1 -0
- package/dist/common/endowments/textEncoder.d.mts +11 -0
- package/dist/common/endowments/textEncoder.d.mts.map +1 -0
- package/dist/common/endowments/textEncoder.mjs +14 -6
- package/dist/common/endowments/textEncoder.mjs.map +1 -1
- package/dist/common/endowments/timeout.cjs +53 -0
- package/dist/common/endowments/timeout.cjs.map +1 -0
- package/dist/{types/common/endowments/timeout.d.ts → common/endowments/timeout.d.cts} +1 -0
- package/dist/common/endowments/timeout.d.cts.map +1 -0
- package/dist/common/endowments/timeout.d.mts +10 -0
- package/dist/common/endowments/timeout.d.mts.map +1 -0
- package/dist/common/endowments/timeout.mjs +49 -6
- package/dist/common/endowments/timeout.mjs.map +1 -1
- package/dist/common/globalEvents.cjs +48 -0
- package/dist/common/globalEvents.cjs.map +1 -0
- package/dist/{types/common/globalEvents.d.ts → common/globalEvents.d.cts} +1 -0
- package/dist/common/globalEvents.d.cts.map +1 -0
- package/dist/common/globalEvents.d.mts +21 -0
- package/dist/common/globalEvents.d.mts.map +1 -0
- package/dist/common/globalEvents.mjs +42 -10
- package/dist/common/globalEvents.mjs.map +1 -1
- package/dist/common/globalObject.cjs +50 -0
- package/dist/common/globalObject.cjs.map +1 -0
- package/dist/{types/common/globalObject.d.ts → common/globalObject.d.cts} +1 -0
- package/dist/common/globalObject.d.cts.map +1 -0
- package/dist/common/globalObject.d.mts +10 -0
- package/dist/common/globalObject.d.mts.map +1 -0
- package/dist/common/globalObject.mjs +45 -9
- package/dist/common/globalObject.mjs.map +1 -1
- package/dist/common/lockdown/lockdown-events.cjs +60 -0
- package/dist/common/lockdown/lockdown-events.cjs.map +1 -0
- package/dist/{types/common/lockdown/lockdown-events.d.ts → common/lockdown/lockdown-events.d.cts} +1 -0
- package/dist/common/lockdown/lockdown-events.d.cts.map +1 -0
- package/dist/common/lockdown/lockdown-events.d.mts +5 -0
- package/dist/common/lockdown/lockdown-events.d.mts.map +1 -0
- package/dist/common/lockdown/lockdown-events.mjs +55 -7
- package/dist/common/lockdown/lockdown-events.mjs.map +1 -1
- package/dist/common/lockdown/lockdown-more.cjs +89 -0
- package/dist/common/lockdown/lockdown-more.cjs.map +1 -0
- package/dist/{types/common/lockdown/lockdown-more.d.ts → common/lockdown/lockdown-more.d.cts} +1 -0
- package/dist/common/lockdown/lockdown-more.d.cts.map +1 -0
- package/dist/common/lockdown/lockdown-more.d.mts +23 -0
- package/dist/common/lockdown/lockdown-more.d.mts.map +1 -0
- package/dist/common/lockdown/lockdown-more.mjs +84 -7
- package/dist/common/lockdown/lockdown-more.mjs.map +1 -1
- package/dist/common/lockdown/lockdown.cjs +29 -0
- package/dist/common/lockdown/lockdown.cjs.map +1 -0
- package/dist/{types/common/lockdown/lockdown.d.ts → common/lockdown/lockdown.d.cts} +1 -0
- package/dist/common/lockdown/lockdown.d.cts.map +1 -0
- package/dist/common/lockdown/lockdown.d.mts +8 -0
- package/dist/common/lockdown/lockdown.d.mts.map +1 -0
- package/dist/common/lockdown/lockdown.mjs +22 -19
- package/dist/common/lockdown/lockdown.mjs.map +1 -1
- package/dist/common/sortParams.cjs +35 -0
- package/dist/common/sortParams.cjs.map +1 -0
- package/dist/{types/common/sortParams.d.ts → common/sortParams.d.cts} +2 -1
- package/dist/common/sortParams.d.cts.map +1 -0
- package/dist/common/sortParams.d.mts +17 -0
- package/dist/common/sortParams.d.mts.map +1 -0
- package/dist/common/sortParams.mjs +29 -6
- package/dist/common/sortParams.mjs.map +1 -1
- package/dist/common/utils.cjs +156 -0
- package/dist/common/utils.cjs.map +1 -0
- package/dist/{types/common/utils.d.ts → common/utils.d.cts} +2 -1
- package/dist/common/utils.d.cts.map +1 -0
- package/dist/common/utils.d.mts +50 -0
- package/dist/common/utils.d.mts.map +1 -0
- package/dist/common/utils.mjs +146 -20
- package/dist/common/utils.mjs.map +1 -1
- package/dist/common/validation.cjs +137 -0
- package/dist/common/validation.cjs.map +1 -0
- package/dist/{types/common/validation.d.ts → common/validation.d.cts} +37 -36
- package/dist/common/validation.d.cts.map +1 -0
- package/dist/common/validation.d.mts +199 -0
- package/dist/common/validation.d.mts.map +1 -0
- package/dist/common/validation.mjs +127 -37
- package/dist/common/validation.mjs.map +1 -1
- package/dist/iframe/IFrameSnapExecutor.cjs +42 -0
- package/dist/iframe/IFrameSnapExecutor.cjs.map +1 -0
- package/dist/{types/iframe/IFrameSnapExecutor.d.ts → iframe/IFrameSnapExecutor.d.cts} +3 -2
- package/dist/iframe/IFrameSnapExecutor.d.cts.map +1 -0
- package/dist/iframe/IFrameSnapExecutor.d.mts +14 -0
- package/dist/iframe/IFrameSnapExecutor.d.mts.map +1 -0
- package/dist/iframe/IFrameSnapExecutor.mjs +42 -26
- package/dist/iframe/IFrameSnapExecutor.mjs.map +1 -1
- package/dist/iframe/index.cjs +10 -0
- package/dist/iframe/index.cjs.map +1 -0
- package/dist/iframe/index.d.cts +2 -0
- package/dist/iframe/index.d.cts.map +1 -0
- package/dist/iframe/index.d.mts +2 -0
- package/dist/iframe/index.d.mts.map +1 -0
- package/dist/iframe/index.mjs +4 -31
- package/dist/iframe/index.mjs.map +1 -1
- package/dist/index.cjs +18 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +2 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +2 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +1 -8
- package/dist/index.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-process/ChildProcessSnapExecutor.cjs +30 -0
- package/dist/node-process/ChildProcessSnapExecutor.cjs.map +1 -0
- package/dist/{types/node-process/ChildProcessSnapExecutor.d.ts → node-process/ChildProcessSnapExecutor.d.cts} +2 -1
- package/dist/node-process/ChildProcessSnapExecutor.d.cts.map +1 -0
- package/dist/node-process/ChildProcessSnapExecutor.d.mts +5 -0
- package/dist/node-process/ChildProcessSnapExecutor.d.mts.map +1 -0
- package/dist/node-process/ChildProcessSnapExecutor.mjs +30 -26
- package/dist/node-process/ChildProcessSnapExecutor.mjs.map +1 -1
- package/dist/node-process/index.cjs +8 -0
- package/dist/node-process/index.cjs.map +1 -0
- package/dist/node-process/index.d.cts +2 -0
- package/dist/node-process/index.d.cts.map +1 -0
- package/dist/node-process/index.d.mts +2 -0
- package/dist/node-process/index.d.mts.map +1 -0
- package/dist/node-process/index.mjs +3 -28
- package/dist/node-process/index.mjs.map +1 -1
- package/dist/node-thread/ThreadSnapExecutor.cjs +30 -0
- package/dist/node-thread/ThreadSnapExecutor.cjs.map +1 -0
- package/dist/node-thread/ThreadSnapExecutor.d.cts +5 -0
- package/dist/node-thread/ThreadSnapExecutor.d.cts.map +1 -0
- package/dist/node-thread/ThreadSnapExecutor.d.mts +5 -0
- package/dist/node-thread/ThreadSnapExecutor.d.mts.map +1 -0
- package/dist/node-thread/ThreadSnapExecutor.mjs +30 -26
- package/dist/node-thread/ThreadSnapExecutor.mjs.map +1 -1
- package/dist/node-thread/index.cjs +8 -0
- package/dist/node-thread/index.cjs.map +1 -0
- package/dist/node-thread/index.d.cts +2 -0
- package/dist/node-thread/index.d.cts.map +1 -0
- package/dist/node-thread/index.d.mts +2 -0
- package/dist/node-thread/index.d.mts.map +1 -0
- package/dist/node-thread/index.mjs +3 -28
- package/dist/node-thread/index.mjs.map +1 -1
- package/dist/proxy/ProxySnapExecutor.cjs +112 -0
- package/dist/proxy/ProxySnapExecutor.cjs.map +1 -0
- package/dist/{types/proxy/ProxySnapExecutor.d.ts → proxy/ProxySnapExecutor.d.cts} +4 -3
- package/dist/proxy/ProxySnapExecutor.d.cts.map +1 -0
- package/dist/proxy/ProxySnapExecutor.d.mts +36 -0
- package/dist/proxy/ProxySnapExecutor.d.mts.map +1 -0
- package/dist/proxy/ProxySnapExecutor.mjs +104 -6
- package/dist/proxy/ProxySnapExecutor.mjs.map +1 -1
- package/dist/proxy/index.cjs +18 -0
- package/dist/proxy/index.cjs.map +1 -0
- package/dist/proxy/index.d.cts +2 -0
- package/dist/proxy/index.d.cts.map +1 -0
- package/dist/proxy/index.d.mts +2 -0
- package/dist/proxy/index.d.mts.map +1 -0
- package/dist/proxy/index.mjs +1 -8
- package/dist/proxy/index.mjs.map +1 -1
- package/dist/webview/WebViewExecutorStream.cjs +79 -0
- package/dist/webview/WebViewExecutorStream.cjs.map +1 -0
- package/dist/{types/webview/WebViewExecutorStream.d.ts → webview/WebViewExecutorStream.d.cts} +3 -2
- package/dist/webview/WebViewExecutorStream.d.cts.map +1 -0
- package/dist/webview/WebViewExecutorStream.d.mts +33 -0
- package/dist/webview/WebViewExecutorStream.d.mts.map +1 -0
- package/dist/webview/WebViewExecutorStream.mjs +74 -6
- package/dist/webview/WebViewExecutorStream.mjs.map +1 -1
- package/dist/webview/index.cjs +16 -0
- package/dist/webview/index.cjs.map +1 -0
- package/dist/webview/index.d.cts +2 -0
- package/dist/webview/index.d.cts.map +1 -0
- package/dist/webview/index.d.mts +2 -0
- package/dist/webview/index.d.mts.map +1 -0
- package/dist/webview/index.mjs +9 -21
- package/dist/webview/index.mjs.map +1 -1
- package/dist/webworker/executor/WebWorkerSnapExecutor.cjs +37 -0
- package/dist/webworker/executor/WebWorkerSnapExecutor.cjs.map +1 -0
- package/dist/{types/webworker/executor/WebWorkerSnapExecutor.d.ts → webworker/executor/WebWorkerSnapExecutor.d.cts} +3 -2
- package/dist/webworker/executor/WebWorkerSnapExecutor.d.cts.map +1 -0
- package/dist/webworker/executor/WebWorkerSnapExecutor.d.mts +14 -0
- package/dist/webworker/executor/WebWorkerSnapExecutor.d.mts.map +1 -0
- package/dist/webworker/executor/WebWorkerSnapExecutor.mjs +37 -26
- package/dist/webworker/executor/WebWorkerSnapExecutor.mjs.map +1 -1
- package/dist/webworker/executor/index.cjs +10 -0
- package/dist/webworker/executor/index.cjs.map +1 -0
- package/dist/webworker/executor/index.d.cts +2 -0
- package/dist/webworker/executor/index.d.cts.map +1 -0
- package/dist/webworker/executor/index.d.mts +2 -0
- package/dist/webworker/executor/index.d.mts.map +1 -0
- package/dist/webworker/executor/index.mjs +4 -31
- package/dist/webworker/executor/index.mjs.map +1 -1
- package/dist/webworker/pool/WebWorkerPool.cjs +168 -0
- package/dist/webworker/pool/WebWorkerPool.cjs.map +1 -0
- package/dist/{types/webworker/pool/WebWorkerPool.d.ts → webworker/pool/WebWorkerPool.d.cts} +4 -3
- package/dist/webworker/pool/WebWorkerPool.d.cts.map +1 -0
- package/dist/webworker/pool/WebWorkerPool.d.mts +24 -0
- package/dist/webworker/pool/WebWorkerPool.d.mts.map +1 -0
- package/dist/webworker/pool/WebWorkerPool.mjs +163 -6
- package/dist/webworker/pool/WebWorkerPool.mjs.map +1 -1
- package/dist/webworker/pool/index.cjs +10 -0
- package/dist/webworker/pool/index.cjs.map +1 -0
- package/dist/webworker/pool/index.d.cts +2 -0
- package/dist/webworker/pool/index.d.cts.map +1 -0
- package/dist/webworker/pool/index.d.mts +2 -0
- package/dist/webworker/pool/index.d.mts.map +1 -0
- package/dist/webworker/pool/index.mjs +4 -12
- package/dist/webworker/pool/index.mjs.map +1 -1
- package/package.json +21 -18
- package/dist/browserify/iframe/bundle.js +0 -9
- package/dist/browserify/iframe/index.html +0 -13394
- package/dist/browserify/node-process/bundle.js +0 -13390
- package/dist/browserify/node-thread/bundle.js +0 -13390
- package/dist/browserify/webview/index.html +0 -13402
- package/dist/browserify/worker-executor/bundle.js +0 -13392
- package/dist/browserify/worker-pool/bundle.js +0 -9
- package/dist/browserify/worker-pool/index.html +0 -13394
- package/dist/chunk-2VA6RAEE.js +0 -30
- package/dist/chunk-2VA6RAEE.js.map +0 -1
- package/dist/chunk-3JCT4MWT.js +0 -108
- package/dist/chunk-3JCT4MWT.js.map +0 -1
- package/dist/chunk-46LW37FK.js +0 -144
- package/dist/chunk-46LW37FK.js.map +0 -1
- package/dist/chunk-4COIRXF5.js +0 -86
- package/dist/chunk-4COIRXF5.js.map +0 -1
- package/dist/chunk-4XRZLEKU.js +0 -49
- package/dist/chunk-4XRZLEKU.js.map +0 -1
- package/dist/chunk-53ZULHPK.mjs +0 -16
- package/dist/chunk-53ZULHPK.mjs.map +0 -1
- package/dist/chunk-5DEV3QQU.mjs +0 -12
- package/dist/chunk-5DEV3QQU.mjs.map +0 -1
- package/dist/chunk-5LGIS4VY.js +0 -33
- package/dist/chunk-5LGIS4VY.js.map +0 -1
- package/dist/chunk-5STN3QCA.js +0 -183
- package/dist/chunk-5STN3QCA.js.map +0 -1
- package/dist/chunk-75RCH4ZX.mjs +0 -151
- package/dist/chunk-75RCH4ZX.mjs.map +0 -1
- package/dist/chunk-7AJWXSDQ.mjs +0 -73
- package/dist/chunk-7AJWXSDQ.mjs.map +0 -1
- package/dist/chunk-7MMUJJQ2.js +0 -151
- package/dist/chunk-7MMUJJQ2.js.map +0 -1
- package/dist/chunk-BCBKEUCG.mjs +0 -38
- package/dist/chunk-BCBKEUCG.mjs.map +0 -1
- package/dist/chunk-BTEAZZKP.mjs +0 -24
- package/dist/chunk-BTEAZZKP.mjs.map +0 -1
- package/dist/chunk-BVRVUIJB.mjs +0 -67
- package/dist/chunk-BVRVUIJB.mjs.map +0 -1
- package/dist/chunk-CV5LC4PP.js +0 -24
- package/dist/chunk-CV5LC4PP.js.map +0 -1
- package/dist/chunk-DAG7NWEU.mjs +0 -33
- package/dist/chunk-DAG7NWEU.mjs.map +0 -1
- package/dist/chunk-DKDTGAFK.js +0 -67
- package/dist/chunk-DKDTGAFK.js.map +0 -1
- package/dist/chunk-DLLLH5HN.js +0 -26
- package/dist/chunk-DLLLH5HN.js.map +0 -1
- package/dist/chunk-EXN2TFDJ.js +0 -38
- package/dist/chunk-EXN2TFDJ.js.map +0 -1
- package/dist/chunk-FJT65CXB.js +0 -472
- package/dist/chunk-FJT65CXB.js.map +0 -1
- package/dist/chunk-FOEAIF5U.js +0 -16
- package/dist/chunk-FOEAIF5U.js.map +0 -1
- package/dist/chunk-FUPEJT7B.js +0 -82
- package/dist/chunk-FUPEJT7B.js.map +0 -1
- package/dist/chunk-HCJZG6W7.mjs +0 -45
- package/dist/chunk-HCJZG6W7.mjs.map +0 -1
- package/dist/chunk-HGLRZZ56.js +0 -32
- package/dist/chunk-HGLRZZ56.js.map +0 -1
- package/dist/chunk-HL2TTKF3.mjs +0 -144
- package/dist/chunk-HL2TTKF3.mjs.map +0 -1
- package/dist/chunk-HWS4QSOC.mjs +0 -16
- package/dist/chunk-HWS4QSOC.mjs.map +0 -1
- package/dist/chunk-HXKBUIYS.js +0 -262
- package/dist/chunk-HXKBUIYS.js.map +0 -1
- package/dist/chunk-I5G4YFHM.js +0 -73
- package/dist/chunk-I5G4YFHM.js.map +0 -1
- package/dist/chunk-IX5S3V47.mjs +0 -26
- package/dist/chunk-IX5S3V47.mjs.map +0 -1
- package/dist/chunk-JOT5JH42.js +0 -52
- package/dist/chunk-JOT5JH42.js.map +0 -1
- package/dist/chunk-KEAB7ZVV.js +0 -50
- package/dist/chunk-KEAB7ZVV.js.map +0 -1
- package/dist/chunk-LAKWJYBO.js +0 -33
- package/dist/chunk-LAKWJYBO.js.map +0 -1
- package/dist/chunk-LO5ORVRC.js +0 -16
- package/dist/chunk-LO5ORVRC.js.map +0 -1
- package/dist/chunk-MCXWFCGV.js +0 -1
- package/dist/chunk-MCXWFCGV.js.map +0 -1
- package/dist/chunk-MIWGLICQ.mjs +0 -108
- package/dist/chunk-MIWGLICQ.mjs.map +0 -1
- package/dist/chunk-MMYM63NH.mjs +0 -82
- package/dist/chunk-MMYM63NH.mjs.map +0 -1
- package/dist/chunk-MS2LQQYH.js +0 -38
- package/dist/chunk-MS2LQQYH.js.map +0 -1
- package/dist/chunk-MXNMMTJW.mjs +0 -51
- package/dist/chunk-MXNMMTJW.mjs.map +0 -1
- package/dist/chunk-OBT45IWW.js +0 -92
- package/dist/chunk-OBT45IWW.js.map +0 -1
- package/dist/chunk-OCNPLHS2.js +0 -51
- package/dist/chunk-OCNPLHS2.js.map +0 -1
- package/dist/chunk-ODICKSGZ.mjs +0 -86
- package/dist/chunk-ODICKSGZ.mjs.map +0 -1
- package/dist/chunk-OIN7VU4G.mjs +0 -33
- package/dist/chunk-OIN7VU4G.mjs.map +0 -1
- package/dist/chunk-Q42NNJFY.mjs +0 -32
- package/dist/chunk-Q42NNJFY.mjs.map +0 -1
- package/dist/chunk-Q42WB3ZO.js +0 -40
- package/dist/chunk-Q42WB3ZO.js.map +0 -1
- package/dist/chunk-QZC2X6NG.js +0 -44
- package/dist/chunk-QZC2X6NG.js.map +0 -1
- package/dist/chunk-S5NWI5Z7.mjs +0 -50
- package/dist/chunk-S5NWI5Z7.mjs.map +0 -1
- package/dist/chunk-S7257EN3.mjs +0 -49
- package/dist/chunk-S7257EN3.mjs.map +0 -1
- package/dist/chunk-TSEAPB7L.mjs +0 -1
- package/dist/chunk-TSEAPB7L.mjs.map +0 -1
- package/dist/chunk-TZAPZE45.mjs +0 -472
- package/dist/chunk-TZAPZE45.mjs.map +0 -1
- package/dist/chunk-UOPIRTJX.mjs +0 -44
- package/dist/chunk-UOPIRTJX.mjs.map +0 -1
- package/dist/chunk-V76DI2XM.mjs +0 -183
- package/dist/chunk-V76DI2XM.mjs.map +0 -1
- package/dist/chunk-VFQ5CRZS.mjs +0 -40
- package/dist/chunk-VFQ5CRZS.mjs.map +0 -1
- package/dist/chunk-W7EDURT5.mjs +0 -92
- package/dist/chunk-W7EDURT5.mjs.map +0 -1
- package/dist/chunk-WZDVTU5C.js +0 -45
- package/dist/chunk-WZDVTU5C.js.map +0 -1
- package/dist/chunk-XPCW7TKM.mjs +0 -262
- package/dist/chunk-XPCW7TKM.mjs.map +0 -1
- package/dist/chunk-Y7AK2VVC.mjs +0 -52
- package/dist/chunk-Y7AK2VVC.mjs.map +0 -1
- package/dist/chunk-YRZVIDCF.mjs +0 -38
- package/dist/chunk-YRZVIDCF.mjs.map +0 -1
- package/dist/chunk-Z7BOREC4.js +0 -12
- package/dist/chunk-Z7BOREC4.js.map +0 -1
- package/dist/chunk-ZNTCZK7J.mjs +0 -30
- package/dist/chunk-ZNTCZK7J.mjs.map +0 -1
- package/dist/common/BaseSnapExecutor.js +0 -26
- package/dist/common/BaseSnapExecutor.js.map +0 -1
- package/dist/common/commands.js +0 -11
- package/dist/common/commands.js.map +0 -1
- package/dist/common/endowments/commonEndowmentFactory.js +0 -20
- package/dist/common/endowments/commonEndowmentFactory.js.map +0 -1
- package/dist/common/endowments/console.js +0 -13
- package/dist/common/endowments/console.js.map +0 -1
- package/dist/common/endowments/crypto.js +0 -11
- package/dist/common/endowments/crypto.js.map +0 -1
- package/dist/common/endowments/date.js +0 -9
- package/dist/common/endowments/date.js.map +0 -1
- package/dist/common/endowments/index.js +0 -21
- package/dist/common/endowments/index.js.map +0 -1
- package/dist/common/endowments/interval.js +0 -8
- package/dist/common/endowments/interval.js.map +0 -1
- package/dist/common/endowments/math.js +0 -10
- package/dist/common/endowments/math.js.map +0 -1
- package/dist/common/endowments/network.js +0 -10
- package/dist/common/endowments/network.js.map +0 -1
- package/dist/common/endowments/textDecoder.js +0 -8
- package/dist/common/endowments/textDecoder.js.map +0 -1
- package/dist/common/endowments/textEncoder.js +0 -8
- package/dist/common/endowments/textEncoder.js.map +0 -1
- package/dist/common/endowments/timeout.js +0 -8
- package/dist/common/endowments/timeout.js.map +0 -1
- package/dist/common/globalEvents.js +0 -11
- package/dist/common/globalEvents.js.map +0 -1
- package/dist/common/globalObject.js +0 -10
- package/dist/common/globalObject.js.map +0 -1
- package/dist/common/lockdown/lockdown-events.js +0 -8
- package/dist/common/lockdown/lockdown-events.js.map +0 -1
- package/dist/common/lockdown/lockdown-more.js +0 -8
- package/dist/common/lockdown/lockdown-more.js.map +0 -1
- package/dist/common/lockdown/lockdown.js +0 -22
- package/dist/common/lockdown/lockdown.js.map +0 -1
- package/dist/common/sortParams.js +0 -8
- package/dist/common/sortParams.js.map +0 -1
- package/dist/common/utils.js +0 -21
- package/dist/common/utils.js.map +0 -1
- package/dist/common/validation.js +0 -38
- package/dist/common/validation.js.map +0 -1
- package/dist/globals.d.js +0 -1
- package/dist/globals.d.js.map +0 -1
- package/dist/globals.d.mjs +0 -1
- package/dist/globals.d.mjs.map +0 -1
- package/dist/iframe/IFrameSnapExecutor.js +0 -27
- package/dist/iframe/IFrameSnapExecutor.js.map +0 -1
- package/dist/iframe/index.js +0 -35
- package/dist/iframe/index.js.map +0 -1
- package/dist/index.js +0 -9
- package/dist/index.js.map +0 -1
- package/dist/logging.js +0 -8
- package/dist/logging.js.map +0 -1
- package/dist/node-process/ChildProcessSnapExecutor.js +0 -27
- package/dist/node-process/ChildProcessSnapExecutor.js.map +0 -1
- package/dist/node-process/index.js +0 -31
- package/dist/node-process/index.js.map +0 -1
- package/dist/node-thread/ThreadSnapExecutor.js +0 -27
- package/dist/node-thread/ThreadSnapExecutor.js.map +0 -1
- package/dist/node-thread/index.js +0 -31
- package/dist/node-thread/index.js.map +0 -1
- package/dist/proxy/ProxySnapExecutor.js +0 -8
- package/dist/proxy/ProxySnapExecutor.js.map +0 -1
- package/dist/proxy/index.js +0 -9
- package/dist/proxy/index.js.map +0 -1
- package/dist/tsconfig.build.tsbuildinfo +0 -1
- package/dist/types/iframe/index.d.ts +0 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/node-process/index.d.ts +0 -1
- package/dist/types/node-thread/ThreadSnapExecutor.d.ts +0 -4
- package/dist/types/node-thread/index.d.ts +0 -1
- package/dist/types/proxy/index.d.ts +0 -1
- 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/providers.d.js +0 -1
- package/dist/types/vendor/providers.d.js.map +0 -1
- package/dist/types/vendor/providers.d.mjs +0 -1
- package/dist/types/vendor/providers.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/webview/index.d.ts +0 -1
- package/dist/types/webworker/executor/index.d.ts +0 -1
- package/dist/types/webworker/pool/index.d.ts +0 -1
- package/dist/webview/WebViewExecutorStream.js +0 -8
- package/dist/webview/WebViewExecutorStream.js.map +0 -1
- package/dist/webview/index.js +0 -26
- package/dist/webview/index.js.map +0 -1
- package/dist/webworker/executor/WebWorkerSnapExecutor.js +0 -27
- package/dist/webworker/executor/WebWorkerSnapExecutor.js.map +0 -1
- package/dist/webworker/executor/index.js +0 -35
- package/dist/webworker/executor/index.js.map +0 -1
- package/dist/webworker/pool/WebWorkerPool.js +0 -8
- package/dist/webworker/pool/WebWorkerPool.js.map +0 -1
- package/dist/webworker/pool/index.js +0 -16
- package/dist/webworker/pool/index.js.map +0 -1
package/dist/chunk-HCJZG6W7.mjs
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
BaseSnapExecutor
|
|
3
|
-
} from "./chunk-TZAPZE45.mjs";
|
|
4
|
-
import {
|
|
5
|
-
log
|
|
6
|
-
} from "./chunk-5DEV3QQU.mjs";
|
|
7
|
-
|
|
8
|
-
// src/iframe/IFrameSnapExecutor.ts
|
|
9
|
-
import ObjectMultiplex from "@metamask/object-multiplex";
|
|
10
|
-
import { WindowPostMessageStream } from "@metamask/post-message-stream";
|
|
11
|
-
import { logError, SNAP_STREAM_NAMES } from "@metamask/snaps-utils";
|
|
12
|
-
import { pipeline } from "readable-stream";
|
|
13
|
-
var IFrameSnapExecutor = class _IFrameSnapExecutor extends BaseSnapExecutor {
|
|
14
|
-
/**
|
|
15
|
-
* Initialize the IFrameSnapExecutor. This creates a post message stream from
|
|
16
|
-
* and to the parent window, for two-way communication with the iframe.
|
|
17
|
-
*
|
|
18
|
-
* @param stream - The stream to use for communication.
|
|
19
|
-
* @returns An instance of `IFrameSnapExecutor`, with the initialized post
|
|
20
|
-
* message streams.
|
|
21
|
-
*/
|
|
22
|
-
static initialize(stream = new WindowPostMessageStream({
|
|
23
|
-
name: "child",
|
|
24
|
-
target: "parent",
|
|
25
|
-
targetWindow: self.parent,
|
|
26
|
-
targetOrigin: "*"
|
|
27
|
-
})) {
|
|
28
|
-
log("Worker: Connecting to parent.");
|
|
29
|
-
const mux = new ObjectMultiplex();
|
|
30
|
-
pipeline(stream, mux, stream, (error) => {
|
|
31
|
-
if (error) {
|
|
32
|
-
logError(`Parent stream failure, closing worker.`, error);
|
|
33
|
-
}
|
|
34
|
-
self.close();
|
|
35
|
-
});
|
|
36
|
-
const commandStream = mux.createStream(SNAP_STREAM_NAMES.COMMAND);
|
|
37
|
-
const rpcStream = mux.createStream(SNAP_STREAM_NAMES.JSON_RPC);
|
|
38
|
-
return new _IFrameSnapExecutor(commandStream, rpcStream);
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
export {
|
|
43
|
-
IFrameSnapExecutor
|
|
44
|
-
};
|
|
45
|
-
//# sourceMappingURL=chunk-HCJZG6W7.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/iframe/IFrameSnapExecutor.ts"],"sourcesContent":["import ObjectMultiplex from '@metamask/object-multiplex';\nimport type { BasePostMessageStream } from '@metamask/post-message-stream';\nimport { WindowPostMessageStream } from '@metamask/post-message-stream';\nimport { logError, SNAP_STREAM_NAMES } from '@metamask/snaps-utils';\nimport { pipeline } from 'readable-stream';\n\nimport { BaseSnapExecutor } from '../common/BaseSnapExecutor';\nimport { log } from '../logging';\n\nexport class IFrameSnapExecutor extends BaseSnapExecutor {\n /**\n * Initialize the IFrameSnapExecutor. This creates a post message stream from\n * and to the parent window, for two-way communication with the iframe.\n *\n * @param stream - The stream to use for communication.\n * @returns An instance of `IFrameSnapExecutor`, with the initialized post\n * message streams.\n */\n static initialize(\n stream: BasePostMessageStream = new WindowPostMessageStream({\n name: 'child',\n target: 'parent',\n targetWindow: self.parent,\n targetOrigin: '*',\n }),\n ) {\n log('Worker: Connecting to parent.');\n\n const mux = new ObjectMultiplex();\n pipeline(stream, mux, stream, (error) => {\n if (error) {\n logError(`Parent stream failure, closing worker.`, error);\n }\n self.close();\n });\n\n const commandStream = mux.createStream(SNAP_STREAM_NAMES.COMMAND);\n const rpcStream = mux.createStream(SNAP_STREAM_NAMES.JSON_RPC);\n\n return new IFrameSnapExecutor(commandStream, rpcStream);\n }\n}\n"],"mappings":";;;;;;;;AAAA,OAAO,qBAAqB;AAE5B,SAAS,+BAA+B;AACxC,SAAS,UAAU,yBAAyB;AAC5C,SAAS,gBAAgB;AAKlB,IAAM,qBAAN,MAAM,4BAA2B,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASvD,OAAO,WACL,SAAgC,IAAI,wBAAwB;AAAA,IAC1D,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,cAAc,KAAK;AAAA,IACnB,cAAc;AAAA,EAChB,CAAC,GACD;AACA,QAAI,+BAA+B;AAEnC,UAAM,MAAM,IAAI,gBAAgB;AAChC,aAAS,QAAQ,KAAK,QAAQ,CAAC,UAAU;AACvC,UAAI,OAAO;AACT,iBAAS,0CAA0C,KAAK;AAAA,MAC1D;AACA,WAAK,MAAM;AAAA,IACb,CAAC;AAED,UAAM,gBAAgB,IAAI,aAAa,kBAAkB,OAAO;AAChE,UAAM,YAAY,IAAI,aAAa,kBAAkB,QAAQ;AAE7D,WAAO,IAAI,oBAAmB,eAAe,SAAS;AAAA,EACxD;AACF;","names":[]}
|
package/dist/chunk-HGLRZZ56.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
-
|
|
3
|
-
var _chunkDLLLH5HNjs = require('./chunk-DLLLH5HN.js');
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var _chunkEXN2TFDJjs = require('./chunk-EXN2TFDJ.js');
|
|
7
|
-
|
|
8
|
-
// src/common/endowments/crypto.ts
|
|
9
|
-
var createCrypto = () => {
|
|
10
|
-
if ("crypto" in _chunkDLLLH5HNjs.rootRealmGlobal && typeof _chunkDLLLH5HNjs.rootRealmGlobal.crypto === "object" && "SubtleCrypto" in _chunkDLLLH5HNjs.rootRealmGlobal && typeof _chunkDLLLH5HNjs.rootRealmGlobal.SubtleCrypto === "function") {
|
|
11
|
-
return {
|
|
12
|
-
crypto: harden(_chunkDLLLH5HNjs.rootRealmGlobal.crypto),
|
|
13
|
-
SubtleCrypto: harden(_chunkDLLLH5HNjs.rootRealmGlobal.SubtleCrypto)
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
const crypto = _chunkEXN2TFDJjs.__require.call(void 0, "crypto").webcrypto;
|
|
17
|
-
return {
|
|
18
|
-
crypto: harden(crypto),
|
|
19
|
-
SubtleCrypto: harden(crypto.subtle.constructor)
|
|
20
|
-
};
|
|
21
|
-
};
|
|
22
|
-
var endowmentModule = {
|
|
23
|
-
names: ["crypto", "SubtleCrypto"],
|
|
24
|
-
factory: createCrypto
|
|
25
|
-
};
|
|
26
|
-
var crypto_default = endowmentModule;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
exports.createCrypto = createCrypto; exports.crypto_default = crypto_default;
|
|
32
|
-
//# sourceMappingURL=chunk-HGLRZZ56.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/common/endowments/crypto.ts"],"names":[],"mappings":";;;;;;;;AAEO,IAAM,eAAe,MAAM;AAChC,MACE,YAAY,mBACZ,OAAO,gBAAgB,WAAW,YAClC,kBAAkB,mBAClB,OAAO,gBAAgB,iBAAiB,YACxC;AACA,WAAO;AAAA,MACL,QAAQ,OAAO,gBAAgB,MAAM;AAAA,MACrC,cAAc,OAAO,gBAAgB,YAAY;AAAA,IACnD;AAAA,EACF;AAIA,QAAM,SAAS,UAAQ,QAAQ,EAAE;AACjC,SAAO;AAAA,IACL,QAAQ,OAAO,MAAM;AAAA,IACrB,cAAc,OAAO,OAAO,OAAO,WAAW;AAAA,EAChD;AACF;AAEA,IAAM,kBAAkB;AAAA,EACtB,OAAO,CAAC,UAAU,cAAc;AAAA,EAChC,SAAS;AACX;AACA,IAAO,iBAAQ","sourcesContent":["import { rootRealmGlobal } from '../globalObject';\n\nexport const createCrypto = () => {\n if (\n 'crypto' in rootRealmGlobal &&\n typeof rootRealmGlobal.crypto === 'object' &&\n 'SubtleCrypto' in rootRealmGlobal &&\n typeof rootRealmGlobal.SubtleCrypto === 'function'\n ) {\n return {\n crypto: harden(rootRealmGlobal.crypto),\n SubtleCrypto: harden(rootRealmGlobal.SubtleCrypto),\n };\n }\n // For now, we expose the experimental webcrypto API for Node.js execution environments\n // TODO: Figure out if this is enough long-term or if we should use a polyfill.\n /* eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires, n/global-require */\n const crypto = require('crypto').webcrypto;\n return {\n crypto: harden(crypto),\n SubtleCrypto: harden(crypto.subtle.constructor),\n } as const;\n};\n\nconst endowmentModule = {\n names: ['crypto', 'SubtleCrypto'] as const,\n factory: createCrypto,\n};\nexport default endowmentModule;\n"]}
|
package/dist/chunk-HL2TTKF3.mjs
DELETED
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
log
|
|
3
|
-
} from "./chunk-5DEV3QQU.mjs";
|
|
4
|
-
|
|
5
|
-
// src/common/utils.ts
|
|
6
|
-
import { rpcErrors } from "@metamask/rpc-errors";
|
|
7
|
-
import {
|
|
8
|
-
assert,
|
|
9
|
-
assertStruct,
|
|
10
|
-
getJsonSize,
|
|
11
|
-
getSafeJson,
|
|
12
|
-
isObject,
|
|
13
|
-
JsonStruct
|
|
14
|
-
} from "@metamask/utils";
|
|
15
|
-
var MAX_RESPONSE_JSON_SIZE = 64e6;
|
|
16
|
-
async function withTeardown(originalPromise, teardownRef) {
|
|
17
|
-
const myTeardown = teardownRef.lastTeardown;
|
|
18
|
-
return new Promise((resolve, reject) => {
|
|
19
|
-
originalPromise.then((value) => {
|
|
20
|
-
if (teardownRef.lastTeardown === myTeardown) {
|
|
21
|
-
resolve(value);
|
|
22
|
-
} else {
|
|
23
|
-
log(
|
|
24
|
-
"Late promise received after Snap finished execution. Promise will be dropped."
|
|
25
|
-
);
|
|
26
|
-
}
|
|
27
|
-
}).catch((reason) => {
|
|
28
|
-
if (teardownRef.lastTeardown === myTeardown) {
|
|
29
|
-
reject(reason);
|
|
30
|
-
} else {
|
|
31
|
-
log(
|
|
32
|
-
"Late promise received after Snap finished execution. Promise will be dropped."
|
|
33
|
-
);
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
function proxyStreamProvider(request) {
|
|
39
|
-
const proxy = new Proxy(
|
|
40
|
-
{},
|
|
41
|
-
{
|
|
42
|
-
has(_target, prop) {
|
|
43
|
-
return typeof prop === "string" && ["request"].includes(prop);
|
|
44
|
-
},
|
|
45
|
-
get(_target, prop) {
|
|
46
|
-
if (prop === "request") {
|
|
47
|
-
return request;
|
|
48
|
-
}
|
|
49
|
-
return void 0;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
);
|
|
53
|
-
return proxy;
|
|
54
|
-
}
|
|
55
|
-
var BLOCKED_RPC_METHODS = Object.freeze([
|
|
56
|
-
"wallet_requestSnaps",
|
|
57
|
-
"wallet_requestPermissions",
|
|
58
|
-
"wallet_revokePermissions",
|
|
59
|
-
// We disallow all of these confirmations for now, since the screens are not ready for Snaps.
|
|
60
|
-
"eth_sendTransaction",
|
|
61
|
-
"eth_sign",
|
|
62
|
-
"eth_signTypedData",
|
|
63
|
-
"eth_signTypedData_v1",
|
|
64
|
-
"eth_signTypedData_v3",
|
|
65
|
-
"eth_signTypedData_v4",
|
|
66
|
-
"eth_decrypt",
|
|
67
|
-
"eth_getEncryptionPublicKey",
|
|
68
|
-
"wallet_addEthereumChain",
|
|
69
|
-
"wallet_switchEthereumChain",
|
|
70
|
-
"wallet_watchAsset",
|
|
71
|
-
"wallet_registerOnboarding",
|
|
72
|
-
"wallet_scanQRCode"
|
|
73
|
-
]);
|
|
74
|
-
function assertSnapOutboundRequest(args) {
|
|
75
|
-
assert(
|
|
76
|
-
String.prototype.startsWith.call(args.method, "wallet_") || String.prototype.startsWith.call(args.method, "snap_"),
|
|
77
|
-
"The global Snap API only allows RPC methods starting with `wallet_*` and `snap_*`.",
|
|
78
|
-
rpcErrors.methodNotSupported
|
|
79
|
-
);
|
|
80
|
-
assert(
|
|
81
|
-
!BLOCKED_RPC_METHODS.includes(args.method),
|
|
82
|
-
rpcErrors.methodNotFound({
|
|
83
|
-
data: {
|
|
84
|
-
method: args.method
|
|
85
|
-
}
|
|
86
|
-
})
|
|
87
|
-
);
|
|
88
|
-
assertStruct(
|
|
89
|
-
args,
|
|
90
|
-
JsonStruct,
|
|
91
|
-
"Provided value is not JSON-RPC compatible",
|
|
92
|
-
rpcErrors.invalidParams
|
|
93
|
-
);
|
|
94
|
-
}
|
|
95
|
-
function assertEthereumOutboundRequest(args) {
|
|
96
|
-
assert(
|
|
97
|
-
!String.prototype.startsWith.call(args.method, "snap_"),
|
|
98
|
-
rpcErrors.methodNotFound({
|
|
99
|
-
data: {
|
|
100
|
-
method: args.method
|
|
101
|
-
}
|
|
102
|
-
})
|
|
103
|
-
);
|
|
104
|
-
assert(
|
|
105
|
-
!BLOCKED_RPC_METHODS.includes(args.method),
|
|
106
|
-
rpcErrors.methodNotFound({
|
|
107
|
-
data: {
|
|
108
|
-
method: args.method
|
|
109
|
-
}
|
|
110
|
-
})
|
|
111
|
-
);
|
|
112
|
-
assertStruct(
|
|
113
|
-
args,
|
|
114
|
-
JsonStruct,
|
|
115
|
-
"Provided value is not JSON-RPC compatible",
|
|
116
|
-
rpcErrors.invalidParams
|
|
117
|
-
);
|
|
118
|
-
}
|
|
119
|
-
function sanitizeRequestArguments(value) {
|
|
120
|
-
const json = JSON.parse(JSON.stringify(value));
|
|
121
|
-
return getSafeJson(json);
|
|
122
|
-
}
|
|
123
|
-
function isValidResponse(response) {
|
|
124
|
-
if (!isObject(response)) {
|
|
125
|
-
return false;
|
|
126
|
-
}
|
|
127
|
-
try {
|
|
128
|
-
const size = getJsonSize(response);
|
|
129
|
-
return size < MAX_RESPONSE_JSON_SIZE;
|
|
130
|
-
} catch {
|
|
131
|
-
return false;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
export {
|
|
136
|
-
withTeardown,
|
|
137
|
-
proxyStreamProvider,
|
|
138
|
-
BLOCKED_RPC_METHODS,
|
|
139
|
-
assertSnapOutboundRequest,
|
|
140
|
-
assertEthereumOutboundRequest,
|
|
141
|
-
sanitizeRequestArguments,
|
|
142
|
-
isValidResponse
|
|
143
|
-
};
|
|
144
|
-
//# sourceMappingURL=chunk-HL2TTKF3.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/common/utils.ts"],"sourcesContent":["import type { StreamProvider, RequestArguments } from '@metamask/providers';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport {\n assert,\n assertStruct,\n getJsonSize,\n getSafeJson,\n isObject,\n JsonStruct,\n} from '@metamask/utils';\n\nimport { log } from '../logging';\n\n// 64 MB - we chose this number because it is the size limit for postMessage\n// between the extension and the dapp enforced by Chrome.\nconst MAX_RESPONSE_JSON_SIZE = 64_000_000;\n\n/**\n * Make proxy for Promise and handle the teardown process properly.\n * If the teardown is called in the meanwhile, Promise result will not be\n * exposed to the snap anymore and warning will be logged to the console.\n *\n * @param originalPromise - Original promise.\n * @param teardownRef - Reference containing teardown count.\n * @param teardownRef.lastTeardown - Number of the last teardown.\n * @returns New proxy promise.\n */\nexport async function withTeardown<Type>(\n originalPromise: Promise<Type>,\n teardownRef: { lastTeardown: number },\n): Promise<Type> {\n const myTeardown = teardownRef.lastTeardown;\n return new Promise<Type>((resolve, reject) => {\n originalPromise\n .then((value) => {\n if (teardownRef.lastTeardown === myTeardown) {\n resolve(value);\n } else {\n log(\n 'Late promise received after Snap finished execution. Promise will be dropped.',\n );\n }\n })\n .catch((reason) => {\n if (teardownRef.lastTeardown === myTeardown) {\n reject(reason);\n } else {\n log(\n 'Late promise received after Snap finished execution. Promise will be dropped.',\n );\n }\n });\n });\n}\n\n/**\n * Returns a Proxy that only allows access to a `request` function.\n * This is useful for replacing StreamProvider with an attenuated version.\n *\n * @param request - Custom attenuated request function.\n * @returns Proxy that mimics a StreamProvider instance.\n */\nexport function proxyStreamProvider(request: unknown): StreamProvider {\n // Proxy target is intentionally set to be an empty object, to ensure\n // that access to the prototype chain is not possible.\n const proxy = new Proxy(\n {},\n {\n has(_target: object, prop: string | symbol) {\n return typeof prop === 'string' && ['request'].includes(prop);\n },\n get(_target, prop: keyof StreamProvider) {\n if (prop === 'request') {\n return request;\n }\n\n return undefined;\n },\n },\n );\n\n return proxy as StreamProvider;\n}\n\n// We're blocking these RPC methods for v1, will revisit later.\nexport const BLOCKED_RPC_METHODS = Object.freeze([\n 'wallet_requestSnaps',\n 'wallet_requestPermissions',\n 'wallet_revokePermissions',\n // We disallow all of these confirmations for now, since the screens are not ready for Snaps.\n 'eth_sendTransaction',\n 'eth_sign',\n 'eth_signTypedData',\n 'eth_signTypedData_v1',\n 'eth_signTypedData_v3',\n 'eth_signTypedData_v4',\n 'eth_decrypt',\n 'eth_getEncryptionPublicKey',\n 'wallet_addEthereumChain',\n 'wallet_switchEthereumChain',\n 'wallet_watchAsset',\n 'wallet_registerOnboarding',\n 'wallet_scanQRCode',\n]);\n\n/**\n * Asserts the validity of request arguments for a snap outbound request using the `snap.request` API.\n *\n * @param args - The arguments to validate.\n */\nexport function assertSnapOutboundRequest(args: RequestArguments) {\n // Disallow any non `wallet_` or `snap_` methods for separation of concerns.\n assert(\n String.prototype.startsWith.call(args.method, 'wallet_') ||\n String.prototype.startsWith.call(args.method, 'snap_'),\n 'The global Snap API only allows RPC methods starting with `wallet_*` and `snap_*`.',\n rpcErrors.methodNotSupported,\n );\n assert(\n !BLOCKED_RPC_METHODS.includes(args.method),\n rpcErrors.methodNotFound({\n data: {\n method: args.method,\n },\n }),\n );\n assertStruct(\n args,\n JsonStruct,\n 'Provided value is not JSON-RPC compatible',\n rpcErrors.invalidParams,\n );\n}\n\n/**\n * Asserts the validity of request arguments for an ethereum outbound request using the `ethereum.request` API.\n *\n * @param args - The arguments to validate.\n */\nexport function assertEthereumOutboundRequest(args: RequestArguments) {\n // Disallow snaps methods for separation of concerns.\n assert(\n !String.prototype.startsWith.call(args.method, 'snap_'),\n rpcErrors.methodNotFound({\n data: {\n method: args.method,\n },\n }),\n );\n assert(\n !BLOCKED_RPC_METHODS.includes(args.method),\n rpcErrors.methodNotFound({\n data: {\n method: args.method,\n },\n }),\n );\n assertStruct(\n args,\n JsonStruct,\n 'Provided value is not JSON-RPC compatible',\n rpcErrors.invalidParams,\n );\n}\n\n/**\n * Gets a sanitized value to be used for passing to the underlying MetaMask provider.\n *\n * @param value - An unsanitized value from a snap.\n * @returns A sanitized value ready to be passed to a MetaMask provider.\n */\nexport function sanitizeRequestArguments(value: unknown): RequestArguments {\n // Before passing to getSafeJson we run the value through JSON serialization.\n // This lets request arguments contain undefined which is normally disallowed.\n const json = JSON.parse(JSON.stringify(value));\n return getSafeJson(json) as RequestArguments;\n}\n\n/**\n * Check if the input is a valid response.\n *\n * @param response - The response.\n * @returns True if the response is valid, otherwise false.\n */\nexport function isValidResponse(response: Record<string, unknown>) {\n if (!isObject(response)) {\n return false;\n }\n\n try {\n // If the JSON is invalid this will throw and we should return false.\n const size = getJsonSize(response);\n return size < MAX_RESPONSE_JSON_SIZE;\n } catch {\n return false;\n }\n}\n"],"mappings":";;;;;AACA,SAAS,iBAAiB;AAC1B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAMP,IAAM,yBAAyB;AAY/B,eAAsB,aACpB,iBACA,aACe;AACf,QAAM,aAAa,YAAY;AAC/B,SAAO,IAAI,QAAc,CAAC,SAAS,WAAW;AAC5C,oBACG,KAAK,CAAC,UAAU;AACf,UAAI,YAAY,iBAAiB,YAAY;AAC3C,gBAAQ,KAAK;AAAA,MACf,OAAO;AACL;AAAA,UACE;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC,EACA,MAAM,CAAC,WAAW;AACjB,UAAI,YAAY,iBAAiB,YAAY;AAC3C,eAAO,MAAM;AAAA,MACf,OAAO;AACL;AAAA,UACE;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACL,CAAC;AACH;AASO,SAAS,oBAAoB,SAAkC;AAGpE,QAAM,QAAQ,IAAI;AAAA,IAChB,CAAC;AAAA,IACD;AAAA,MACE,IAAI,SAAiB,MAAuB;AAC1C,eAAO,OAAO,SAAS,YAAY,CAAC,SAAS,EAAE,SAAS,IAAI;AAAA,MAC9D;AAAA,MACA,IAAI,SAAS,MAA4B;AACvC,YAAI,SAAS,WAAW;AACtB,iBAAO;AAAA,QACT;AAEA,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAGO,IAAM,sBAAsB,OAAO,OAAO;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAOM,SAAS,0BAA0B,MAAwB;AAEhE;AAAA,IACE,OAAO,UAAU,WAAW,KAAK,KAAK,QAAQ,SAAS,KACrD,OAAO,UAAU,WAAW,KAAK,KAAK,QAAQ,OAAO;AAAA,IACvD;AAAA,IACA,UAAU;AAAA,EACZ;AACA;AAAA,IACE,CAAC,oBAAoB,SAAS,KAAK,MAAM;AAAA,IACzC,UAAU,eAAe;AAAA,MACvB,MAAM;AAAA,QACJ,QAAQ,KAAK;AAAA,MACf;AAAA,IACF,CAAC;AAAA,EACH;AACA;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,EACZ;AACF;AAOO,SAAS,8BAA8B,MAAwB;AAEpE;AAAA,IACE,CAAC,OAAO,UAAU,WAAW,KAAK,KAAK,QAAQ,OAAO;AAAA,IACtD,UAAU,eAAe;AAAA,MACvB,MAAM;AAAA,QACJ,QAAQ,KAAK;AAAA,MACf;AAAA,IACF,CAAC;AAAA,EACH;AACA;AAAA,IACE,CAAC,oBAAoB,SAAS,KAAK,MAAM;AAAA,IACzC,UAAU,eAAe;AAAA,MACvB,MAAM;AAAA,QACJ,QAAQ,KAAK;AAAA,MACf;AAAA,IACF,CAAC;AAAA,EACH;AACA;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,EACZ;AACF;AAQO,SAAS,yBAAyB,OAAkC;AAGzE,QAAM,OAAO,KAAK,MAAM,KAAK,UAAU,KAAK,CAAC;AAC7C,SAAO,YAAY,IAAI;AACzB;AAQO,SAAS,gBAAgB,UAAmC;AACjE,MAAI,CAAC,SAAS,QAAQ,GAAG;AACvB,WAAO;AAAA,EACT;AAEA,MAAI;AAEF,UAAM,OAAO,YAAY,QAAQ;AACjC,WAAO,OAAO;AAAA,EAChB,QAAQ;AACN,WAAO;AAAA,EACT;AACF;","names":[]}
|
package/dist/chunk-HWS4QSOC.mjs
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
// src/common/endowments/textEncoder.ts
|
|
2
|
-
var createTextEncoder = () => {
|
|
3
|
-
return {
|
|
4
|
-
TextEncoder: harden(TextEncoder)
|
|
5
|
-
};
|
|
6
|
-
};
|
|
7
|
-
var endowmentModule = {
|
|
8
|
-
names: ["TextEncoder"],
|
|
9
|
-
factory: createTextEncoder
|
|
10
|
-
};
|
|
11
|
-
var textEncoder_default = endowmentModule;
|
|
12
|
-
|
|
13
|
-
export {
|
|
14
|
-
textEncoder_default
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=chunk-HWS4QSOC.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/common/endowments/textEncoder.ts"],"sourcesContent":["/**\n * Creates TextEncoder function hardened by SES.\n *\n * @returns An object with the attenuated `TextEncoder` function.\n */\nconst createTextEncoder = () => {\n return {\n TextEncoder: harden(TextEncoder),\n } as const;\n};\n\nconst endowmentModule = {\n names: ['TextEncoder'] as const,\n factory: createTextEncoder,\n};\nexport default endowmentModule;\n"],"mappings":";AAKA,IAAM,oBAAoB,MAAM;AAC9B,SAAO;AAAA,IACL,aAAa,OAAO,WAAW;AAAA,EACjC;AACF;AAEA,IAAM,kBAAkB;AAAA,EACtB,OAAO,CAAC,aAAa;AAAA,EACrB,SAAS;AACX;AACA,IAAO,sBAAQ;","names":[]}
|
package/dist/chunk-HXKBUIYS.js
DELETED
|
@@ -1,262 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
-
|
|
3
|
-
var _chunk46LW37FKjs = require('./chunk-46LW37FK.js');
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var _chunkEXN2TFDJjs = require('./chunk-EXN2TFDJ.js');
|
|
9
|
-
|
|
10
|
-
// src/common/endowments/network.ts
|
|
11
|
-
var _utils = require('@metamask/utils');
|
|
12
|
-
var _teardownRef, _ogResponse, _onStart, _onFinish;
|
|
13
|
-
var _ResponseWrapper = class _ResponseWrapper {
|
|
14
|
-
constructor(ogResponse, teardownRef, onStart, onFinish) {
|
|
15
|
-
_chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _teardownRef, void 0);
|
|
16
|
-
_chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _ogResponse, void 0);
|
|
17
|
-
_chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _onStart, void 0);
|
|
18
|
-
_chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _onFinish, void 0);
|
|
19
|
-
_chunkEXN2TFDJjs.__privateSet.call(void 0, this, _ogResponse, ogResponse);
|
|
20
|
-
_chunkEXN2TFDJjs.__privateSet.call(void 0, this, _teardownRef, teardownRef);
|
|
21
|
-
_chunkEXN2TFDJjs.__privateSet.call(void 0, this, _onStart, onStart);
|
|
22
|
-
_chunkEXN2TFDJjs.__privateSet.call(void 0, this, _onFinish, onFinish);
|
|
23
|
-
}
|
|
24
|
-
get body() {
|
|
25
|
-
return _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _ogResponse).body;
|
|
26
|
-
}
|
|
27
|
-
get bodyUsed() {
|
|
28
|
-
return _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _ogResponse).bodyUsed;
|
|
29
|
-
}
|
|
30
|
-
get headers() {
|
|
31
|
-
return _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _ogResponse).headers;
|
|
32
|
-
}
|
|
33
|
-
get ok() {
|
|
34
|
-
return _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _ogResponse).ok;
|
|
35
|
-
}
|
|
36
|
-
get redirected() {
|
|
37
|
-
return _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _ogResponse).redirected;
|
|
38
|
-
}
|
|
39
|
-
get status() {
|
|
40
|
-
return _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _ogResponse).status;
|
|
41
|
-
}
|
|
42
|
-
get statusText() {
|
|
43
|
-
return _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _ogResponse).statusText;
|
|
44
|
-
}
|
|
45
|
-
get type() {
|
|
46
|
-
return _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _ogResponse).type;
|
|
47
|
-
}
|
|
48
|
-
get url() {
|
|
49
|
-
return _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _ogResponse).url;
|
|
50
|
-
}
|
|
51
|
-
async text() {
|
|
52
|
-
return await _chunk46LW37FKjs.withTeardown.call(void 0,
|
|
53
|
-
(async () => {
|
|
54
|
-
await _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _onStart).call(this);
|
|
55
|
-
try {
|
|
56
|
-
return await _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _ogResponse).text();
|
|
57
|
-
} finally {
|
|
58
|
-
await _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _onFinish).call(this);
|
|
59
|
-
}
|
|
60
|
-
})(),
|
|
61
|
-
_chunkEXN2TFDJjs.__privateGet.call(void 0, this, _teardownRef)
|
|
62
|
-
);
|
|
63
|
-
}
|
|
64
|
-
async arrayBuffer() {
|
|
65
|
-
return await _chunk46LW37FKjs.withTeardown.call(void 0,
|
|
66
|
-
(async () => {
|
|
67
|
-
await _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _onStart).call(this);
|
|
68
|
-
try {
|
|
69
|
-
return await _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _ogResponse).arrayBuffer();
|
|
70
|
-
} finally {
|
|
71
|
-
await _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _onFinish).call(this);
|
|
72
|
-
}
|
|
73
|
-
})(),
|
|
74
|
-
_chunkEXN2TFDJjs.__privateGet.call(void 0, this, _teardownRef)
|
|
75
|
-
);
|
|
76
|
-
}
|
|
77
|
-
async blob() {
|
|
78
|
-
return await _chunk46LW37FKjs.withTeardown.call(void 0,
|
|
79
|
-
(async () => {
|
|
80
|
-
await _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _onStart).call(this);
|
|
81
|
-
try {
|
|
82
|
-
return await _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _ogResponse).blob();
|
|
83
|
-
} finally {
|
|
84
|
-
await _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _onFinish).call(this);
|
|
85
|
-
}
|
|
86
|
-
})(),
|
|
87
|
-
_chunkEXN2TFDJjs.__privateGet.call(void 0, this, _teardownRef)
|
|
88
|
-
);
|
|
89
|
-
}
|
|
90
|
-
clone() {
|
|
91
|
-
const newResponse = _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _ogResponse).clone();
|
|
92
|
-
return new _ResponseWrapper(
|
|
93
|
-
newResponse,
|
|
94
|
-
_chunkEXN2TFDJjs.__privateGet.call(void 0, this, _teardownRef),
|
|
95
|
-
_chunkEXN2TFDJjs.__privateGet.call(void 0, this, _onStart),
|
|
96
|
-
_chunkEXN2TFDJjs.__privateGet.call(void 0, this, _onFinish)
|
|
97
|
-
);
|
|
98
|
-
}
|
|
99
|
-
async formData() {
|
|
100
|
-
return await _chunk46LW37FKjs.withTeardown.call(void 0,
|
|
101
|
-
(async () => {
|
|
102
|
-
await _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _onStart).call(this);
|
|
103
|
-
try {
|
|
104
|
-
return await _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _ogResponse).formData();
|
|
105
|
-
} finally {
|
|
106
|
-
await _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _onFinish).call(this);
|
|
107
|
-
}
|
|
108
|
-
})(),
|
|
109
|
-
_chunkEXN2TFDJjs.__privateGet.call(void 0, this, _teardownRef)
|
|
110
|
-
);
|
|
111
|
-
}
|
|
112
|
-
async json() {
|
|
113
|
-
return await _chunk46LW37FKjs.withTeardown.call(void 0,
|
|
114
|
-
(async () => {
|
|
115
|
-
await _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _onStart).call(this);
|
|
116
|
-
try {
|
|
117
|
-
return await _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _ogResponse).json();
|
|
118
|
-
} finally {
|
|
119
|
-
await _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _onFinish).call(this);
|
|
120
|
-
}
|
|
121
|
-
})(),
|
|
122
|
-
_chunkEXN2TFDJjs.__privateGet.call(void 0, this, _teardownRef)
|
|
123
|
-
);
|
|
124
|
-
}
|
|
125
|
-
};
|
|
126
|
-
_teardownRef = new WeakMap();
|
|
127
|
-
_ogResponse = new WeakMap();
|
|
128
|
-
_onStart = new WeakMap();
|
|
129
|
-
_onFinish = new WeakMap();
|
|
130
|
-
var ResponseWrapper = _ResponseWrapper;
|
|
131
|
-
var createNetwork = ({ notify } = {}) => {
|
|
132
|
-
_utils.assert.call(void 0, notify, "Notify must be passed to network endowment factory");
|
|
133
|
-
const openConnections = /* @__PURE__ */ new Set();
|
|
134
|
-
const teardownRef = { lastTeardown: 0 };
|
|
135
|
-
const cleanup = new FinalizationRegistry(
|
|
136
|
-
/* istanbul ignore next: can't test garbage collection without modifying node parameters */
|
|
137
|
-
(callback) => callback()
|
|
138
|
-
);
|
|
139
|
-
const _fetch = async (input, init) => {
|
|
140
|
-
const abortController = new AbortController();
|
|
141
|
-
if (init?.signal !== null && init?.signal !== void 0) {
|
|
142
|
-
const originalSignal = init.signal;
|
|
143
|
-
originalSignal.addEventListener(
|
|
144
|
-
"abort",
|
|
145
|
-
() => {
|
|
146
|
-
abortController.abort(originalSignal.reason);
|
|
147
|
-
},
|
|
148
|
-
{ once: true }
|
|
149
|
-
);
|
|
150
|
-
}
|
|
151
|
-
let started = false;
|
|
152
|
-
const onStart = async () => {
|
|
153
|
-
if (!started) {
|
|
154
|
-
started = true;
|
|
155
|
-
await notify({
|
|
156
|
-
method: "OutboundRequest",
|
|
157
|
-
params: { source: "fetch" }
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
};
|
|
161
|
-
let finished = false;
|
|
162
|
-
const onFinish = async () => {
|
|
163
|
-
if (!finished) {
|
|
164
|
-
finished = true;
|
|
165
|
-
await notify({
|
|
166
|
-
method: "OutboundResponse",
|
|
167
|
-
params: { source: "fetch" }
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
};
|
|
171
|
-
let res;
|
|
172
|
-
let openFetchConnection;
|
|
173
|
-
return await _chunk46LW37FKjs.withTeardown.call(void 0,
|
|
174
|
-
(async () => {
|
|
175
|
-
try {
|
|
176
|
-
await notify({
|
|
177
|
-
method: "OutboundRequest",
|
|
178
|
-
params: { source: "fetch" }
|
|
179
|
-
});
|
|
180
|
-
const fetchPromise = fetch(input, {
|
|
181
|
-
...init,
|
|
182
|
-
signal: abortController.signal
|
|
183
|
-
});
|
|
184
|
-
openFetchConnection = {
|
|
185
|
-
cancel: async () => {
|
|
186
|
-
abortController.abort();
|
|
187
|
-
try {
|
|
188
|
-
await fetchPromise;
|
|
189
|
-
} catch {
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
};
|
|
193
|
-
openConnections.add(openFetchConnection);
|
|
194
|
-
res = new ResponseWrapper(
|
|
195
|
-
await fetchPromise,
|
|
196
|
-
teardownRef,
|
|
197
|
-
onStart,
|
|
198
|
-
onFinish
|
|
199
|
-
);
|
|
200
|
-
} finally {
|
|
201
|
-
if (openFetchConnection !== void 0) {
|
|
202
|
-
openConnections.delete(openFetchConnection);
|
|
203
|
-
}
|
|
204
|
-
await notify({
|
|
205
|
-
method: "OutboundResponse",
|
|
206
|
-
params: { source: "fetch" }
|
|
207
|
-
});
|
|
208
|
-
}
|
|
209
|
-
if (res.body !== null) {
|
|
210
|
-
const body = new WeakRef(res.body);
|
|
211
|
-
const openBodyConnection = {
|
|
212
|
-
cancel: (
|
|
213
|
-
/* istanbul ignore next: see it.todo('can be torn down during body read') test */
|
|
214
|
-
async () => {
|
|
215
|
-
try {
|
|
216
|
-
await body.deref()?.cancel();
|
|
217
|
-
} catch {
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
)
|
|
221
|
-
};
|
|
222
|
-
openConnections.add(openBodyConnection);
|
|
223
|
-
cleanup.register(
|
|
224
|
-
res.body,
|
|
225
|
-
/* istanbul ignore next: can't test garbage collection without modifying node parameters */
|
|
226
|
-
() => openConnections.delete(openBodyConnection)
|
|
227
|
-
);
|
|
228
|
-
}
|
|
229
|
-
return harden(res);
|
|
230
|
-
})(),
|
|
231
|
-
teardownRef
|
|
232
|
-
);
|
|
233
|
-
};
|
|
234
|
-
const teardownFunction = async () => {
|
|
235
|
-
teardownRef.lastTeardown += 1;
|
|
236
|
-
const promises = [];
|
|
237
|
-
openConnections.forEach(({ cancel }) => promises.push(cancel()));
|
|
238
|
-
openConnections.clear();
|
|
239
|
-
await Promise.all(promises);
|
|
240
|
-
};
|
|
241
|
-
return {
|
|
242
|
-
fetch: harden(_fetch),
|
|
243
|
-
// Request, Headers and Response are the endowments injected alongside fetch
|
|
244
|
-
// only when 'endowment:network-access' permission is requested,
|
|
245
|
-
// therefore these are hardened as part of fetch dependency injection within its factory.
|
|
246
|
-
// These endowments are not (and should never be) available by default.
|
|
247
|
-
Request: harden(Request),
|
|
248
|
-
Headers: harden(Headers),
|
|
249
|
-
Response: harden(Response),
|
|
250
|
-
teardownFunction
|
|
251
|
-
};
|
|
252
|
-
};
|
|
253
|
-
var endowmentModule = {
|
|
254
|
-
names: ["fetch", "Request", "Headers", "Response"],
|
|
255
|
-
factory: createNetwork
|
|
256
|
-
};
|
|
257
|
-
var network_default = endowmentModule;
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
exports.network_default = network_default;
|
|
262
|
-
//# sourceMappingURL=chunk-HXKBUIYS.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/common/endowments/network.ts"],"names":[],"mappings":"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","sourcesContent":["import { assert } from '@metamask/utils';\n\nimport { withTeardown } from '../utils';\nimport type { EndowmentFactoryOptions } from './commonEndowmentFactory';\n\n/**\n * This class wraps a Response object.\n * That way, a teardown process can stop any processes left.\n */\nclass ResponseWrapper implements Response {\n readonly #teardownRef: { lastTeardown: number };\n\n #ogResponse: Response;\n\n #onStart: () => Promise<void>;\n\n #onFinish: () => Promise<void>;\n\n constructor(\n ogResponse: Response,\n teardownRef: { lastTeardown: number },\n onStart: () => Promise<void>,\n onFinish: () => Promise<void>,\n ) {\n this.#ogResponse = ogResponse;\n this.#teardownRef = teardownRef;\n this.#onStart = onStart;\n this.#onFinish = onFinish;\n }\n\n get body(): ReadableStream<Uint8Array> | null {\n return this.#ogResponse.body;\n }\n\n get bodyUsed() {\n return this.#ogResponse.bodyUsed;\n }\n\n get headers() {\n return this.#ogResponse.headers;\n }\n\n get ok() {\n return this.#ogResponse.ok;\n }\n\n get redirected() {\n return this.#ogResponse.redirected;\n }\n\n get status() {\n return this.#ogResponse.status;\n }\n\n get statusText() {\n return this.#ogResponse.statusText;\n }\n\n get type() {\n return this.#ogResponse.type;\n }\n\n get url() {\n return this.#ogResponse.url;\n }\n\n async text() {\n return await withTeardown<string>(\n (async () => {\n await this.#onStart();\n try {\n return await this.#ogResponse.text();\n } finally {\n await this.#onFinish();\n }\n })(),\n this.#teardownRef,\n );\n }\n\n async arrayBuffer(): Promise<ArrayBuffer> {\n return await withTeardown<ArrayBuffer>(\n (async () => {\n await this.#onStart();\n try {\n return await this.#ogResponse.arrayBuffer();\n } finally {\n await this.#onFinish();\n }\n })(),\n this.#teardownRef,\n );\n }\n\n async blob(): Promise<Blob> {\n return await withTeardown<Blob>(\n (async () => {\n await this.#onStart();\n try {\n return await this.#ogResponse.blob();\n } finally {\n await this.#onFinish();\n }\n })(),\n this.#teardownRef,\n );\n }\n\n clone(): Response {\n const newResponse = this.#ogResponse.clone();\n return new ResponseWrapper(\n newResponse,\n this.#teardownRef,\n this.#onStart,\n this.#onFinish,\n );\n }\n\n async formData(): Promise<FormData> {\n return await withTeardown<FormData>(\n (async () => {\n await this.#onStart();\n try {\n return await this.#ogResponse.formData();\n } finally {\n await this.#onFinish();\n }\n })(),\n this.#teardownRef,\n );\n }\n\n async json(): Promise<any> {\n return await withTeardown(\n (async () => {\n await this.#onStart();\n try {\n return await this.#ogResponse.json();\n } finally {\n await this.#onFinish();\n }\n })(),\n this.#teardownRef,\n );\n }\n}\n\n/**\n * Create a network endowment, consisting of a `fetch` function.\n * This allows us to provide a teardown function, so that we can cancel\n * any pending requests, connections, streams, etc. that may be open when a snap\n * is terminated.\n *\n * This wraps the original implementation of `fetch`,\n * to ensure that a bad actor cannot get access to the original function, thus\n * potentially preventing the network requests from being torn down.\n *\n * @param options - An options bag.\n * @param options.notify - A reference to the notify function of the snap executor.\n * @returns An object containing a wrapped `fetch`\n * function, as well as a teardown function.\n */\nconst createNetwork = ({ notify }: EndowmentFactoryOptions = {}) => {\n assert(notify, 'Notify must be passed to network endowment factory');\n // Open fetch calls or open body streams\n const openConnections = new Set<{ cancel: () => Promise<void> }>();\n // Track last teardown count\n const teardownRef = { lastTeardown: 0 };\n\n // Remove items from openConnections after they were garbage collected\n const cleanup = new FinalizationRegistry<() => void>(\n /* istanbul ignore next: can't test garbage collection without modifying node parameters */\n (callback) => callback(),\n );\n\n const _fetch: typeof fetch = async (\n input: RequestInfo | URL,\n init?: RequestInit,\n ): Promise<Response> => {\n const abortController = new AbortController();\n if (init?.signal !== null && init?.signal !== undefined) {\n const originalSignal = init.signal;\n // Merge abort controllers\n originalSignal.addEventListener(\n 'abort',\n () => {\n abortController.abort((originalSignal as any).reason);\n },\n { once: true },\n );\n }\n\n let started = false;\n const onStart = async () => {\n if (!started) {\n started = true;\n await notify({\n method: 'OutboundRequest',\n params: { source: 'fetch' },\n });\n }\n };\n\n let finished = false;\n const onFinish = async () => {\n if (!finished) {\n finished = true;\n await notify({\n method: 'OutboundResponse',\n params: { source: 'fetch' },\n });\n }\n };\n\n let res: Response;\n let openFetchConnection: { cancel: () => Promise<void> } | undefined;\n return await withTeardown(\n (async () => {\n try {\n await notify({\n method: 'OutboundRequest',\n params: { source: 'fetch' },\n });\n const fetchPromise = fetch(input, {\n ...init,\n signal: abortController.signal,\n });\n\n openFetchConnection = {\n cancel: async () => {\n abortController.abort();\n try {\n await fetchPromise;\n } catch {\n /* do nothing */\n }\n },\n };\n openConnections.add(openFetchConnection);\n\n res = new ResponseWrapper(\n await fetchPromise,\n teardownRef,\n onStart,\n onFinish,\n );\n } finally {\n if (openFetchConnection !== undefined) {\n openConnections.delete(openFetchConnection);\n }\n await notify({\n method: 'OutboundResponse',\n params: { source: 'fetch' },\n });\n }\n\n if (res.body !== null) {\n const body = new WeakRef<ReadableStream>(res.body);\n\n const openBodyConnection = {\n cancel:\n /* istanbul ignore next: see it.todo('can be torn down during body read') test */\n async () => {\n try {\n await body.deref()?.cancel();\n } catch {\n /* do nothing */\n }\n },\n };\n openConnections.add(openBodyConnection);\n cleanup.register(\n res.body,\n /* istanbul ignore next: can't test garbage collection without modifying node parameters */\n () => openConnections.delete(openBodyConnection),\n );\n }\n return harden(res);\n })(),\n teardownRef,\n );\n };\n\n const teardownFunction = async () => {\n teardownRef.lastTeardown += 1;\n const promises: Promise<void>[] = [];\n openConnections.forEach(({ cancel }) => promises.push(cancel()));\n openConnections.clear();\n await Promise.all(promises);\n };\n\n return {\n fetch: harden(_fetch),\n // Request, Headers and Response are the endowments injected alongside fetch\n // only when 'endowment:network-access' permission is requested,\n // therefore these are hardened as part of fetch dependency injection within its factory.\n // These endowments are not (and should never be) available by default.\n Request: harden(Request),\n Headers: harden(Headers),\n Response: harden(Response),\n teardownFunction,\n };\n};\n\nconst endowmentModule = {\n names: ['fetch', 'Request', 'Headers', 'Response'] as const,\n factory: createNetwork,\n};\nexport default endowmentModule;\n"]}
|
package/dist/chunk-I5G4YFHM.js
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var _chunkEXN2TFDJjs = require('./chunk-EXN2TFDJ.js');
|
|
6
|
-
|
|
7
|
-
// src/webview/WebViewExecutorStream.ts
|
|
8
|
-
var _postmessagestream = require('@metamask/post-message-stream');
|
|
9
|
-
var _utils = require('@metamask/post-message-stream/dist/utils');
|
|
10
|
-
var _utils3 = require('@metamask/utils');
|
|
11
|
-
var _name, _target, _targetWindow;
|
|
12
|
-
var WebViewExecutorStream = class extends _postmessagestream.BasePostMessageStream {
|
|
13
|
-
/**
|
|
14
|
-
* A special post-message-stream to be used by the WebView executor.
|
|
15
|
-
*
|
|
16
|
-
* This stream is different in a few ways:
|
|
17
|
-
* - It expects data to be base64 encoded
|
|
18
|
-
* - It stringifies the data it posts
|
|
19
|
-
* - It does less validation of origins
|
|
20
|
-
*
|
|
21
|
-
* @param args - Options bag.
|
|
22
|
-
* @param args.name - The name of the stream. Used to differentiate between
|
|
23
|
-
* multiple streams sharing the same window object. child:WebView
|
|
24
|
-
* @param args.target - The name of the stream to exchange messages with. parent:rnside
|
|
25
|
-
* @param args.targetWindow - The window object of the target stream.
|
|
26
|
-
*/
|
|
27
|
-
constructor({ name, target, targetWindow }) {
|
|
28
|
-
super();
|
|
29
|
-
_chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _name, void 0);
|
|
30
|
-
_chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _target, void 0);
|
|
31
|
-
_chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _targetWindow, void 0);
|
|
32
|
-
_chunkEXN2TFDJjs.__privateSet.call(void 0, this, _name, name);
|
|
33
|
-
_chunkEXN2TFDJjs.__privateSet.call(void 0, this, _target, target);
|
|
34
|
-
_chunkEXN2TFDJjs.__privateSet.call(void 0, this, _targetWindow, targetWindow);
|
|
35
|
-
this._onMessage = this._onMessage.bind(this);
|
|
36
|
-
window.addEventListener("message", this._onMessage, false);
|
|
37
|
-
this._handshake();
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Webview needs to receive strings only on postMessage. That's the main difference between this and the original window post message stream.
|
|
41
|
-
* Reference: https://github.com/react-native-webview/react-native-webview/blob/master/docs/Guide.md?plain=1#L471
|
|
42
|
-
*/
|
|
43
|
-
_postMessage(data) {
|
|
44
|
-
_chunkEXN2TFDJjs.__privateGet.call(void 0, this, _targetWindow).postMessage(
|
|
45
|
-
JSON.stringify({
|
|
46
|
-
target: _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _target),
|
|
47
|
-
data
|
|
48
|
-
})
|
|
49
|
-
);
|
|
50
|
-
}
|
|
51
|
-
_onMessage(event) {
|
|
52
|
-
if (typeof event.data !== "string") {
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
const bytes = _utils3.base64ToBytes.call(void 0, event.data);
|
|
56
|
-
const message = JSON.parse(_utils3.bytesToString.call(void 0, bytes));
|
|
57
|
-
if (!_utils.isValidStreamMessage.call(void 0, message) || message.target !== _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _name)) {
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
this._onData(message.data);
|
|
61
|
-
}
|
|
62
|
-
_destroy() {
|
|
63
|
-
window.removeEventListener("message", this._onMessage, false);
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
_name = new WeakMap();
|
|
67
|
-
_target = new WeakMap();
|
|
68
|
-
_targetWindow = new WeakMap();
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
exports.WebViewExecutorStream = WebViewExecutorStream;
|
|
73
|
-
//# sourceMappingURL=chunk-I5G4YFHM.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/webview/WebViewExecutorStream.ts"],"names":[],"mappings":";;;;;;;AACA,SAAS,6BAA6B;AACtC,SAAS,4BAA4B;AACrC,SAAS,eAAe,qBAAqB;AAH7C;AAWO,IAAM,wBAAN,cAAoC,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsB/D,YAAY,EAAE,MAAM,QAAQ,aAAa,GAA8B;AACrE,UAAM;AAtBR;AAEA;AAEA;AAoBE,uBAAK,OAAQ;AACb,uBAAK,SAAU;AACf,uBAAK,eAAgB;AAErB,SAAK,aAAa,KAAK,WAAW,KAAK,IAAI;AAI3C,WAAO,iBAAiB,WAAW,KAAK,YAAmB,KAAK;AAEhE,SAAK,WAAW;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA,EAOU,aAAa,MAAqB;AAC1C,uBAAK,eAAc;AAAA,MACjB,KAAK,UAAU;AAAA,QACb,QAAQ,mBAAK;AAAA,QACb;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEQ,WAAW,OAA+B;AAChD,QAAI,OAAO,MAAM,SAAS,UAAU;AAClC;AAAA,IACF;AAEA,UAAM,QAAQ,cAAc,MAAM,IAAI;AACtC,UAAM,UAAU,KAAK,MAAM,cAAc,KAAK,CAAC;AAI/C,QAAI,CAAC,qBAAqB,OAAO,KAAK,QAAQ,WAAW,mBAAK,QAAO;AACnE;AAAA,IACF;AAEA,SAAK,QAAQ,QAAQ,IAAI;AAAA,EAC3B;AAAA,EAEA,WAAW;AAGT,WAAO,oBAAoB,WAAW,KAAK,YAAmB,KAAK;AAAA,EACrE;AACF;AAzEE;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 { base64ToBytes, bytesToString } from '@metamask/utils';\n\ntype WebViewExecutorStreamArgs = {\n name: string;\n target: string;\n targetWindow: Window['ReactNativeWebView'];\n};\n\nexport class WebViewExecutorStream extends BasePostMessageStream {\n #name;\n\n #target;\n\n #targetWindow;\n\n /**\n * A special post-message-stream to be used by the WebView executor.\n *\n * This stream is different in a few ways:\n * - It expects data to be base64 encoded\n * - It stringifies the data it posts\n * - It does less validation of origins\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. child:WebView\n * @param args.target - The name of the stream to exchange messages with. parent:rnside\n * @param args.targetWindow - The window object of the target stream.\n */\n\n constructor({ name, target, targetWindow }: WebViewExecutorStreamArgs) {\n super();\n\n this.#name = name;\n this.#target = target;\n this.#targetWindow = targetWindow;\n\n this._onMessage = this._onMessage.bind(this);\n\n // This method is already bound.\n // eslint-disable-next-line @typescript-eslint/unbound-method\n window.addEventListener('message', this._onMessage as any, false);\n\n this._handshake();\n }\n\n /**\n * Webview needs to receive strings only on postMessage. That's the main difference between this and the original window post message stream.\n * Reference: https://github.com/react-native-webview/react-native-webview/blob/master/docs/Guide.md?plain=1#L471\n */\n\n protected _postMessage(data: unknown): void {\n this.#targetWindow.postMessage(\n JSON.stringify({\n target: this.#target,\n data,\n }),\n );\n }\n\n private _onMessage(event: PostMessageEvent): void {\n if (typeof event.data !== 'string') {\n return;\n }\n\n const bytes = base64ToBytes(event.data);\n const message = JSON.parse(bytesToString(bytes));\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 // This method is already bound.\n // eslint-disable-next-line @typescript-eslint/unbound-method\n window.removeEventListener('message', this._onMessage as any, false);\n }\n}\n"]}
|