mirror of
https://github.com/fluencelabs/avm-runner-background
synced 2025-03-14 21:10:50 +00:00
Switch to marine version of AquaVM (#3)
This commit is contained in:
parent
757a03cf7f
commit
fb3c5fc81b
2
.github/workflows/test_node.yml
vendored
2
.github/workflows/test_node.yml
vendored
@ -9,7 +9,7 @@ jobs:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [15.x, 16.x]
|
||||
node-version: [16.x]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
2
.github/workflows/test_node_negative.yml
vendored
2
.github/workflows/test_node_negative.yml
vendored
@ -9,7 +9,7 @@ jobs:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [15.x, 16.x]
|
||||
node-version: [16.x]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
@ -1,5 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
# set current working directory to script directory to run script from everywhere
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
|
3
avm-runner-background/package-lock.json
generated
3
avm-runner-background/package-lock.json
generated
@ -13,6 +13,9 @@
|
||||
"browser-or-node": "^2.0.0",
|
||||
"threads": "^1.7.0"
|
||||
},
|
||||
"bin": {
|
||||
"copy-avm-runner": "dist/copyRunnerScript.js"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^16.11.10",
|
||||
"typescript": "^4.0.0"
|
||||
|
@ -21,7 +21,9 @@ import { RunnerScriptInterface, wasmLoadingMethod } from './types';
|
||||
export { wasmLoadingMethod } from './types';
|
||||
|
||||
const defaultAvmFileName = 'avm.wasm';
|
||||
const defaultMarineFileName = 'marine-js.wasm';
|
||||
const avmPackageName = '@fluencelabs/avm';
|
||||
const marinePackageName = '@fluencelabs/marine-js';
|
||||
const runnerScriptNodePath = './runnerScript.node.js';
|
||||
const runnerScriptWebPath = './runnerScript.web.js';
|
||||
|
||||
@ -41,7 +43,10 @@ export class AvmRunnerBackground implements AvmRunner {
|
||||
method = this._loadingMethod || {
|
||||
method: 'fetch-from-url',
|
||||
baseUrl: window.location.origin,
|
||||
filePath: defaultAvmFileName,
|
||||
filePaths: {
|
||||
avm: defaultAvmFileName,
|
||||
marine: defaultMarineFileName,
|
||||
},
|
||||
};
|
||||
workerPath = runnerScriptWebPath;
|
||||
}
|
||||
@ -54,19 +59,23 @@ export class AvmRunnerBackground implements AvmRunner {
|
||||
try {
|
||||
// webpack will complain about missing dependencies for web target
|
||||
// to fix this we have to use eval('require')
|
||||
const path = eval('require')('path');
|
||||
const fluencePath = eval('require').resolve(avmPackageName);
|
||||
const filePath = path.join(path.dirname(fluencePath), defaultAvmFileName);
|
||||
const require = eval('require');
|
||||
const path = require('path');
|
||||
const avmPackagePath = require.resolve(avmPackageName);
|
||||
const avmFilePath = path.join(path.dirname(avmPackagePath), defaultAvmFileName);
|
||||
|
||||
const marinePackagePath = require.resolve(marinePackageName);
|
||||
const marineFilePath = path.join(path.dirname(marinePackagePath), defaultMarineFileName);
|
||||
|
||||
method = {
|
||||
method: 'read-from-fs',
|
||||
filePath: filePath,
|
||||
filePaths: {
|
||||
avm: avmFilePath,
|
||||
marine: marineFilePath,
|
||||
},
|
||||
};
|
||||
} catch (e: any) {
|
||||
throw new Error(
|
||||
'Failed to load avm.wasm. Did you forget to install @fluencelabs/avm? Original error: ' +
|
||||
e.toString(),
|
||||
);
|
||||
throw new Error('Failed to load wasm file(s). Original error: ' + e.toString());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@ -16,15 +16,20 @@
|
||||
|
||||
import { CallResultsArray, InterpreterResult, LogLevel } from '@fluencelabs/avm-runner-interface';
|
||||
|
||||
interface FilePaths {
|
||||
avm: string;
|
||||
marine: string;
|
||||
}
|
||||
|
||||
export type wasmLoadingMethod =
|
||||
| {
|
||||
method: 'fetch-from-url';
|
||||
baseUrl: string;
|
||||
filePath: string;
|
||||
filePaths: FilePaths;
|
||||
}
|
||||
| {
|
||||
method: 'read-from-fs';
|
||||
filePath: string;
|
||||
filePaths: FilePaths;
|
||||
};
|
||||
|
||||
export type RunnerScriptInterface = {
|
||||
|
345
runner-script/package-lock.json
generated
345
runner-script/package-lock.json
generated
@ -8,8 +8,10 @@
|
||||
"name": "runner-script",
|
||||
"version": "1.0.0",
|
||||
"dependencies": {
|
||||
"@fluencelabs/avm": "0.19.6",
|
||||
"@fluencelabs/avm-runner-interface": "^0.2.0",
|
||||
"@fluencelabs/marine-js": "^0.1.0-web-runtime-experiments.0",
|
||||
"@wasmer/wasi": "^0.12.0",
|
||||
"@wasmer/wasmfs": "^0.12.0",
|
||||
"browser-or-node": "^2.0.0",
|
||||
"threads": "^1.7.0"
|
||||
},
|
||||
@ -22,6 +24,24 @@
|
||||
"webpack-cli": "^4.9.1"
|
||||
}
|
||||
},
|
||||
"../../marine/web-runtime/npm-package": {
|
||||
"name": "@fluencelabs/marine-js",
|
||||
"version": "0.0.3",
|
||||
"extraneous": true,
|
||||
"license": "Apache 2.0",
|
||||
"bin": {
|
||||
"copy-marine": "dist/copyMarine.js"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@fluencelabs/avm": "0.20.0-marine-web-adapted.1",
|
||||
"@types/jest": "^27.4.0",
|
||||
"@types/node": "^14.0.0",
|
||||
"@wasmer/wasi": "^0.12.0",
|
||||
"@wasmer/wasmfs": "^0.12.0",
|
||||
"jest": "^27.2.4",
|
||||
"typescript": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@discoveryjs/json-ext": {
|
||||
"version": "0.5.5",
|
||||
"resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.5.tgz",
|
||||
@ -31,25 +51,51 @@
|
||||
"node": ">=10.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@fluencelabs/avm": {
|
||||
"version": "0.19.6",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.19.6.tgz",
|
||||
"integrity": "sha512-T6UQsIuGVltf13Wc3bFmuCYmQzu/00Y4lPS7atBauQ2R4+BqhRg1dc5reSZ+MbAW3Vy+NmJY1EEYOFRpLCGBwg==",
|
||||
"bin": {
|
||||
"copy-avm": "dist/copyAvm.js"
|
||||
}
|
||||
},
|
||||
"node_modules/@fluencelabs/avm-runner-interface": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/avm-runner-interface/-/avm-runner-interface-0.2.0.tgz",
|
||||
"integrity": "sha512-Y41pL+UwZZVdormxju8cJQsNRp6tdER0VqJ9Kg9gH2wd1KJAaYTJkyVbn8NB7fEFRUbqfbb1BXHi9wWBYOgGYQ=="
|
||||
},
|
||||
"node_modules/@fluencelabs/marine-js": {
|
||||
"version": "0.1.0-web-runtime-experiments.0",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/marine-js/-/marine-js-0.1.0-web-runtime-experiments.0.tgz",
|
||||
"integrity": "sha512-UQxTtACJLNJcTaD10LQ2hIA1x5/yN6S4XT0Kn8wCYVz/QbD/itb47x8+wA582HNKEbJpHuj0A098UYrt6+WpQA==",
|
||||
"bin": {
|
||||
"copy-marine": "dist/copyMarine.js"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "17.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.0.tgz",
|
||||
"integrity": "sha512-eMhwJXc931Ihh4tkU+Y7GiLzT/y/DBNpNtr4yU9O2w3SYBsr9NaOPhQlLKRmoWtI54uNwuo0IOUFQjVOTZYRvw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@wasmer/wasi": {
|
||||
"version": "0.12.0",
|
||||
"resolved": "https://registry.npmjs.org/@wasmer/wasi/-/wasi-0.12.0.tgz",
|
||||
"integrity": "sha512-FJhLZKAfLWm/yjQI7eCRHNbA8ezmb7LSpUYFkHruZXs2mXk2+DaQtSElEtOoNrVQ4vApTyVaAd5/b7uEu8w6wQ==",
|
||||
"dependencies": {
|
||||
"browser-process-hrtime": "^1.0.0",
|
||||
"buffer-es6": "^4.9.3",
|
||||
"path-browserify": "^1.0.0",
|
||||
"randomfill": "^1.0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@wasmer/wasi/node_modules/path-browserify": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
|
||||
"integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g=="
|
||||
},
|
||||
"node_modules/@wasmer/wasmfs": {
|
||||
"version": "0.12.0",
|
||||
"resolved": "https://registry.npmjs.org/@wasmer/wasmfs/-/wasmfs-0.12.0.tgz",
|
||||
"integrity": "sha512-m1ftchyQ1DfSenm5XbbdGIpb6KJHH5z0gODo3IZr6lATkj4WXfX/UeBTZ0aG9YVShBp+kHLdUHvOkqjy6p/GWw==",
|
||||
"dependencies": {
|
||||
"memfs": "3.0.4",
|
||||
"pako": "^1.0.11",
|
||||
"tar-stream": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@webassemblyjs/ast": {
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz",
|
||||
@ -551,7 +597,6 @@
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
|
||||
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
@ -596,6 +641,52 @@
|
||||
"file-uri-to-path": "1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/bl": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
|
||||
"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
|
||||
"dependencies": {
|
||||
"buffer": "^5.5.0",
|
||||
"inherits": "^2.0.4",
|
||||
"readable-stream": "^3.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/bl/node_modules/buffer": {
|
||||
"version": "5.7.1",
|
||||
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
|
||||
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/feross"
|
||||
},
|
||||
{
|
||||
"type": "patreon",
|
||||
"url": "https://www.patreon.com/feross"
|
||||
},
|
||||
{
|
||||
"type": "consulting",
|
||||
"url": "https://feross.org/support"
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"base64-js": "^1.3.1",
|
||||
"ieee754": "^1.1.13"
|
||||
}
|
||||
},
|
||||
"node_modules/bl/node_modules/readable-stream": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
|
||||
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
|
||||
"dependencies": {
|
||||
"inherits": "^2.0.3",
|
||||
"string_decoder": "^1.1.1",
|
||||
"util-deprecate": "^1.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/bluebird": {
|
||||
"version": "3.7.2",
|
||||
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
|
||||
@ -641,6 +732,11 @@
|
||||
"resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-2.0.0.tgz",
|
||||
"integrity": "sha512-3Lrks/Okgof+/cRguUNG+qRXSeq79SO3hY4QrXJayJofwJwHiGC0qi99uDjsfTwULUFSr1OGVsBkdIkygKjTUA=="
|
||||
},
|
||||
"node_modules/browser-process-hrtime": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
|
||||
"integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow=="
|
||||
},
|
||||
"node_modules/browserify-aes": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
|
||||
@ -739,6 +835,11 @@
|
||||
"isarray": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/buffer-es6": {
|
||||
"version": "4.9.3",
|
||||
"resolved": "https://registry.npmjs.org/buffer-es6/-/buffer-es6-4.9.3.tgz",
|
||||
"integrity": "sha1-8mNHuC33b9N+GLy1KIxJcM/VxAQ="
|
||||
},
|
||||
"node_modules/buffer-from": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
|
||||
@ -1274,7 +1375,6 @@
|
||||
"version": "1.4.4",
|
||||
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
|
||||
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"once": "^1.4.0"
|
||||
}
|
||||
@ -1595,6 +1695,11 @@
|
||||
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/fast-extend": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/fast-extend/-/fast-extend-1.0.2.tgz",
|
||||
"integrity": "sha512-XXA9RmlPatkFKUzqVZAFth18R4Wo+Xug/S+C7YlYA3xrXwfPlW3dqNwOb4hvQo7wZJ2cNDYhrYuPzVOfHy5/uQ=="
|
||||
},
|
||||
"node_modules/fast-json-stable-stringify": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
|
||||
@ -1764,6 +1869,16 @@
|
||||
"readable-stream": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/fs-constants": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
|
||||
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
|
||||
},
|
||||
"node_modules/fs-monkey": {
|
||||
"version": "0.3.3",
|
||||
"resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-0.3.3.tgz",
|
||||
"integrity": "sha512-FNUvuTAJ3CqCQb5ELn+qCbGR/Zllhf2HtwsdAtBi59s1WeCjKMT81fHcSu7dwIskqGVK+MmOrb7VOBlq3/SItw=="
|
||||
},
|
||||
"node_modules/fs-write-stream-atomic": {
|
||||
"version": "1.0.10",
|
||||
"resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
|
||||
@ -2080,7 +2195,6 @@
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
|
||||
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
@ -2146,8 +2260,7 @@
|
||||
"node_modules/inherits": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
||||
"dev": true
|
||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
||||
},
|
||||
"node_modules/internal-slot": {
|
||||
"version": "1.0.3",
|
||||
@ -2722,6 +2835,15 @@
|
||||
"safe-buffer": "^5.1.2"
|
||||
}
|
||||
},
|
||||
"node_modules/memfs": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/memfs/-/memfs-3.0.4.tgz",
|
||||
"integrity": "sha512-OcZEzwX9E5AoY8SXjuAvw0DbIAYwUzV/I236I8Pqvrlv7sL/Y0E9aRCon05DhaV8pg1b32uxj76RgW0s5xjHBA==",
|
||||
"dependencies": {
|
||||
"fast-extend": "1.0.2",
|
||||
"fs-monkey": "0.3.3"
|
||||
}
|
||||
},
|
||||
"node_modules/memory-fs": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
|
||||
@ -3169,7 +3291,6 @@
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"wrappy": "1"
|
||||
}
|
||||
@ -3234,8 +3355,7 @@
|
||||
"node_modules/pako": {
|
||||
"version": "1.0.11",
|
||||
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
|
||||
"integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
|
||||
"dev": true
|
||||
"integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
|
||||
},
|
||||
"node_modules/parallel-transform": {
|
||||
"version": "1.2.0",
|
||||
@ -3481,7 +3601,6 @@
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
|
||||
"integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"safe-buffer": "^5.1.0"
|
||||
}
|
||||
@ -3490,7 +3609,6 @@
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
|
||||
"integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"randombytes": "^2.0.5",
|
||||
"safe-buffer": "^5.1.0"
|
||||
@ -3699,7 +3817,6 @@
|
||||
"version": "5.2.1",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
|
||||
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
@ -4132,7 +4249,6 @@
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
|
||||
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"safe-buffer": "~5.2.0"
|
||||
}
|
||||
@ -4181,6 +4297,34 @@
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/tar-stream": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
|
||||
"integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
|
||||
"dependencies": {
|
||||
"bl": "^4.0.3",
|
||||
"end-of-stream": "^1.4.1",
|
||||
"fs-constants": "^1.0.0",
|
||||
"inherits": "^2.0.3",
|
||||
"readable-stream": "^3.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/tar-stream/node_modules/readable-stream": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
|
||||
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
|
||||
"dependencies": {
|
||||
"inherits": "^2.0.3",
|
||||
"string_decoder": "^1.1.1",
|
||||
"util-deprecate": "^1.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/terser": {
|
||||
"version": "4.8.0",
|
||||
"resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz",
|
||||
@ -4650,8 +4794,7 @@
|
||||
"node_modules/util-deprecate": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
|
||||
"dev": true
|
||||
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
|
||||
},
|
||||
"node_modules/vm-browserify": {
|
||||
"version": "1.1.2",
|
||||
@ -5363,8 +5506,7 @@
|
||||
"node_modules/wrappy": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
|
||||
"dev": true
|
||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
||||
},
|
||||
"node_modules/xtend": {
|
||||
"version": "4.0.2",
|
||||
@ -5395,22 +5537,50 @@
|
||||
"integrity": "sha512-6nFkfkmSeV/rqSaS4oWHgmpnYw194f6hmWF5is6b0J1naJZoiD0NTc9AiUwPHvWsowkjuHErCZT1wa0jg+BLIA==",
|
||||
"dev": true
|
||||
},
|
||||
"@fluencelabs/avm": {
|
||||
"version": "0.19.6",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.19.6.tgz",
|
||||
"integrity": "sha512-T6UQsIuGVltf13Wc3bFmuCYmQzu/00Y4lPS7atBauQ2R4+BqhRg1dc5reSZ+MbAW3Vy+NmJY1EEYOFRpLCGBwg=="
|
||||
},
|
||||
"@fluencelabs/avm-runner-interface": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/avm-runner-interface/-/avm-runner-interface-0.2.0.tgz",
|
||||
"integrity": "sha512-Y41pL+UwZZVdormxju8cJQsNRp6tdER0VqJ9Kg9gH2wd1KJAaYTJkyVbn8NB7fEFRUbqfbb1BXHi9wWBYOgGYQ=="
|
||||
},
|
||||
"@fluencelabs/marine-js": {
|
||||
"version": "0.1.0-web-runtime-experiments.0",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/marine-js/-/marine-js-0.1.0-web-runtime-experiments.0.tgz",
|
||||
"integrity": "sha512-UQxTtACJLNJcTaD10LQ2hIA1x5/yN6S4XT0Kn8wCYVz/QbD/itb47x8+wA582HNKEbJpHuj0A098UYrt6+WpQA=="
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "17.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.0.tgz",
|
||||
"integrity": "sha512-eMhwJXc931Ihh4tkU+Y7GiLzT/y/DBNpNtr4yU9O2w3SYBsr9NaOPhQlLKRmoWtI54uNwuo0IOUFQjVOTZYRvw==",
|
||||
"dev": true
|
||||
},
|
||||
"@wasmer/wasi": {
|
||||
"version": "0.12.0",
|
||||
"resolved": "https://registry.npmjs.org/@wasmer/wasi/-/wasi-0.12.0.tgz",
|
||||
"integrity": "sha512-FJhLZKAfLWm/yjQI7eCRHNbA8ezmb7LSpUYFkHruZXs2mXk2+DaQtSElEtOoNrVQ4vApTyVaAd5/b7uEu8w6wQ==",
|
||||
"requires": {
|
||||
"browser-process-hrtime": "^1.0.0",
|
||||
"buffer-es6": "^4.9.3",
|
||||
"path-browserify": "^1.0.0",
|
||||
"randomfill": "^1.0.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"path-browserify": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
|
||||
"integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"@wasmer/wasmfs": {
|
||||
"version": "0.12.0",
|
||||
"resolved": "https://registry.npmjs.org/@wasmer/wasmfs/-/wasmfs-0.12.0.tgz",
|
||||
"integrity": "sha512-m1ftchyQ1DfSenm5XbbdGIpb6KJHH5z0gODo3IZr6lATkj4WXfX/UeBTZ0aG9YVShBp+kHLdUHvOkqjy6p/GWw==",
|
||||
"requires": {
|
||||
"memfs": "3.0.4",
|
||||
"pako": "^1.0.11",
|
||||
"tar-stream": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"@webassemblyjs/ast": {
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz",
|
||||
@ -5839,8 +6009,7 @@
|
||||
"base64-js": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
|
||||
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
|
||||
"dev": true
|
||||
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
|
||||
},
|
||||
"big.js": {
|
||||
"version": "5.2.2",
|
||||
@ -5865,6 +6034,37 @@
|
||||
"file-uri-to-path": "1.0.0"
|
||||
}
|
||||
},
|
||||
"bl": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
|
||||
"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
|
||||
"requires": {
|
||||
"buffer": "^5.5.0",
|
||||
"inherits": "^2.0.4",
|
||||
"readable-stream": "^3.4.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"buffer": {
|
||||
"version": "5.7.1",
|
||||
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
|
||||
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
|
||||
"requires": {
|
||||
"base64-js": "^1.3.1",
|
||||
"ieee754": "^1.1.13"
|
||||
}
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
|
||||
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
|
||||
"requires": {
|
||||
"inherits": "^2.0.3",
|
||||
"string_decoder": "^1.1.1",
|
||||
"util-deprecate": "^1.0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"bluebird": {
|
||||
"version": "3.7.2",
|
||||
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
|
||||
@ -5907,6 +6107,11 @@
|
||||
"resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-2.0.0.tgz",
|
||||
"integrity": "sha512-3Lrks/Okgof+/cRguUNG+qRXSeq79SO3hY4QrXJayJofwJwHiGC0qi99uDjsfTwULUFSr1OGVsBkdIkygKjTUA=="
|
||||
},
|
||||
"browser-process-hrtime": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
|
||||
"integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow=="
|
||||
},
|
||||
"browserify-aes": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
|
||||
@ -6004,6 +6209,11 @@
|
||||
"isarray": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"buffer-es6": {
|
||||
"version": "4.9.3",
|
||||
"resolved": "https://registry.npmjs.org/buffer-es6/-/buffer-es6-4.9.3.tgz",
|
||||
"integrity": "sha1-8mNHuC33b9N+GLy1KIxJcM/VxAQ="
|
||||
},
|
||||
"buffer-from": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
|
||||
@ -6475,7 +6685,6 @@
|
||||
"version": "1.4.4",
|
||||
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
|
||||
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"once": "^1.4.0"
|
||||
}
|
||||
@ -6732,6 +6941,11 @@
|
||||
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
|
||||
"dev": true
|
||||
},
|
||||
"fast-extend": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/fast-extend/-/fast-extend-1.0.2.tgz",
|
||||
"integrity": "sha512-XXA9RmlPatkFKUzqVZAFth18R4Wo+Xug/S+C7YlYA3xrXwfPlW3dqNwOb4hvQo7wZJ2cNDYhrYuPzVOfHy5/uQ=="
|
||||
},
|
||||
"fast-json-stable-stringify": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
|
||||
@ -6873,6 +7087,16 @@
|
||||
"readable-stream": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"fs-constants": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
|
||||
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
|
||||
},
|
||||
"fs-monkey": {
|
||||
"version": "0.3.3",
|
||||
"resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-0.3.3.tgz",
|
||||
"integrity": "sha512-FNUvuTAJ3CqCQb5ELn+qCbGR/Zllhf2HtwsdAtBi59s1WeCjKMT81fHcSu7dwIskqGVK+MmOrb7VOBlq3/SItw=="
|
||||
},
|
||||
"fs-write-stream-atomic": {
|
||||
"version": "1.0.10",
|
||||
"resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
|
||||
@ -7115,8 +7339,7 @@
|
||||
"ieee754": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
|
||||
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
|
||||
"dev": true
|
||||
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
|
||||
},
|
||||
"iferr": {
|
||||
"version": "0.1.5",
|
||||
@ -7159,8 +7382,7 @@
|
||||
"inherits": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
||||
"dev": true
|
||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
||||
},
|
||||
"internal-slot": {
|
||||
"version": "1.0.3",
|
||||
@ -7572,6 +7794,15 @@
|
||||
"safe-buffer": "^5.1.2"
|
||||
}
|
||||
},
|
||||
"memfs": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/memfs/-/memfs-3.0.4.tgz",
|
||||
"integrity": "sha512-OcZEzwX9E5AoY8SXjuAvw0DbIAYwUzV/I236I8Pqvrlv7sL/Y0E9aRCon05DhaV8pg1b32uxj76RgW0s5xjHBA==",
|
||||
"requires": {
|
||||
"fast-extend": "1.0.2",
|
||||
"fs-monkey": "0.3.3"
|
||||
}
|
||||
},
|
||||
"memory-fs": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
|
||||
@ -7951,7 +8182,6 @@
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"wrappy": "1"
|
||||
}
|
||||
@ -7998,8 +8228,7 @@
|
||||
"pako": {
|
||||
"version": "1.0.11",
|
||||
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
|
||||
"integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
|
||||
"dev": true
|
||||
"integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
|
||||
},
|
||||
"parallel-transform": {
|
||||
"version": "1.2.0",
|
||||
@ -8209,7 +8438,6 @@
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
|
||||
"integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"safe-buffer": "^5.1.0"
|
||||
}
|
||||
@ -8218,7 +8446,6 @@
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
|
||||
"integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"randombytes": "^2.0.5",
|
||||
"safe-buffer": "^5.1.0"
|
||||
@ -8393,8 +8620,7 @@
|
||||
"safe-buffer": {
|
||||
"version": "5.2.1",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
|
||||
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
|
||||
"dev": true
|
||||
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
|
||||
},
|
||||
"safe-regex": {
|
||||
"version": "1.1.0",
|
||||
@ -8752,7 +8978,6 @@
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
|
||||
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"safe-buffer": "~5.2.0"
|
||||
}
|
||||
@ -8789,6 +9014,30 @@
|
||||
"integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==",
|
||||
"dev": true
|
||||
},
|
||||
"tar-stream": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
|
||||
"integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
|
||||
"requires": {
|
||||
"bl": "^4.0.3",
|
||||
"end-of-stream": "^1.4.1",
|
||||
"fs-constants": "^1.0.0",
|
||||
"inherits": "^2.0.3",
|
||||
"readable-stream": "^3.1.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"readable-stream": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
|
||||
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
|
||||
"requires": {
|
||||
"inherits": "^2.0.3",
|
||||
"string_decoder": "^1.1.1",
|
||||
"util-deprecate": "^1.0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"terser": {
|
||||
"version": "4.8.0",
|
||||
"resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz",
|
||||
@ -9170,8 +9419,7 @@
|
||||
"util-deprecate": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
|
||||
"dev": true
|
||||
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
|
||||
},
|
||||
"vm-browserify": {
|
||||
"version": "1.1.2",
|
||||
@ -9739,8 +9987,7 @@
|
||||
"wrappy": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
|
||||
"dev": true
|
||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
||||
},
|
||||
"xtend": {
|
||||
"version": "4.0.2",
|
||||
|
@ -14,8 +14,10 @@
|
||||
"webpack-cli": "^4.9.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@fluencelabs/avm": "0.19.6",
|
||||
"@fluencelabs/avm-runner-interface": "^0.2.0",
|
||||
"@fluencelabs/marine-js": "0.1.0",
|
||||
"@wasmer/wasi": "^0.12.0",
|
||||
"@wasmer/wasmfs": "^0.12.0",
|
||||
"browser-or-node": "^2.0.0",
|
||||
"threads": "^1.7.0"
|
||||
}
|
||||
|
@ -1,8 +1,23 @@
|
||||
import { LogLevel, CallResultsArray, InterpreterResult } from '@fluencelabs/avm-runner-interface';
|
||||
import { AirInterpreter } from '@fluencelabs/avm';
|
||||
import { WASI } from '@wasmer/wasi';
|
||||
import { WasmFs } from '@wasmer/wasmfs';
|
||||
import bindings from '@wasmer/wasi/lib/bindings/browser';
|
||||
import { LogLevel, CallResultsArray, InterpreterResult, CallRequest } from '@fluencelabs/avm-runner-interface';
|
||||
import { isBrowser, isNode, isWebWorker } from 'browser-or-node';
|
||||
import { expose } from 'threads';
|
||||
import { wasmLoadingMethod, RunnerScriptInterface } from './types';
|
||||
import { init } from '@fluencelabs/marine-js';
|
||||
|
||||
type LogImport = {
|
||||
log_utf8_string: (level: any, target: any, offset: any, size: any) => void;
|
||||
};
|
||||
|
||||
type ImportObject = {
|
||||
host: LogImport;
|
||||
};
|
||||
|
||||
type HostImportsConfig = {
|
||||
exports: any;
|
||||
};
|
||||
|
||||
const logFunction = (level: LogLevel, message: string) => {
|
||||
switch (level) {
|
||||
@ -22,51 +37,148 @@ const logFunction = (level: LogLevel, message: string) => {
|
||||
}
|
||||
};
|
||||
|
||||
let airInterpreter: AirInterpreter | 'not-set' | 'terminated' = 'not-set';
|
||||
let cachegetUint8Memory0 = null;
|
||||
|
||||
function getUint8Memory0(wasm) {
|
||||
if (cachegetUint8Memory0 === null || cachegetUint8Memory0.buffer !== wasm.memory.buffer) {
|
||||
cachegetUint8Memory0 = new Uint8Array(wasm.memory.buffer);
|
||||
}
|
||||
return cachegetUint8Memory0;
|
||||
}
|
||||
|
||||
function getStringFromWasm0(wasm, ptr, len) {
|
||||
return decoder.decode(getUint8Memory0(wasm).subarray(ptr, ptr + len));
|
||||
}
|
||||
|
||||
/// Returns import object that describes host functions called by AIR interpreter
|
||||
function newImportObject(cfg: HostImportsConfig): ImportObject {
|
||||
return {
|
||||
host: log_import(cfg),
|
||||
};
|
||||
}
|
||||
|
||||
function log_import(cfg: HostImportsConfig): LogImport {
|
||||
return {
|
||||
log_utf8_string: (level: any, target: any, offset: any, size: any) => {
|
||||
let wasm = cfg.exports;
|
||||
|
||||
try {
|
||||
let str = getStringFromWasm0(wasm, offset, size);
|
||||
let levelStr: LogLevel;
|
||||
switch (level) {
|
||||
case 1:
|
||||
levelStr = 'error';
|
||||
break;
|
||||
case 2:
|
||||
levelStr = 'warn';
|
||||
break;
|
||||
case 3:
|
||||
levelStr = 'info';
|
||||
break;
|
||||
case 4:
|
||||
levelStr = 'debug';
|
||||
break;
|
||||
case 6:
|
||||
levelStr = 'trace';
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
logFunction(levelStr, str);
|
||||
} finally {
|
||||
}
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
type Awaited<T> = T extends PromiseLike<infer U> ? U : T;
|
||||
|
||||
let marineInstance: Awaited<ReturnType<typeof init>> | 'not-set' | 'terminated' = 'not-set';
|
||||
|
||||
const tryLoadFromUrl = async (baseUrl: string, url: string): Promise<WebAssembly.Module> => {
|
||||
const fullUrl = baseUrl + '/' + url;
|
||||
try {
|
||||
return await WebAssembly.compileStreaming(fetch(fullUrl));
|
||||
} catch (e) {
|
||||
throw new Error(
|
||||
`Failed to load ${fullUrl}. This usually means that the web server is not serving wasm files correctly. Original error: ${e.toString()}`,
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
const tryLoadFromFs = async (path: string): Promise<WebAssembly.Module> => {
|
||||
try {
|
||||
// webpack will complain about missing dependencies for web target
|
||||
// to fix this we have to use eval('require')
|
||||
const fs = eval('require')('fs');
|
||||
const file = fs.readFileSync(path);
|
||||
return await WebAssembly.compile(file);
|
||||
} catch (e) {
|
||||
throw new Error(`Failed to load ${path}. ${e.toString()}`);
|
||||
}
|
||||
};
|
||||
|
||||
const decoder = new TextDecoder();
|
||||
|
||||
const toExpose: RunnerScriptInterface = {
|
||||
init: async (logLevel: LogLevel, loadMethod: wasmLoadingMethod) => {
|
||||
let module: WebAssembly.Module;
|
||||
let avmModule: WebAssembly.Module;
|
||||
let marineModule: WebAssembly.Module;
|
||||
if (isBrowser || isWebWorker) {
|
||||
if (loadMethod.method !== 'fetch-from-url') {
|
||||
throw new Error("Only 'fetch-from-url' is supported for browsers");
|
||||
}
|
||||
|
||||
const url = loadMethod.baseUrl + '/' + loadMethod.filePath;
|
||||
|
||||
try {
|
||||
module = await WebAssembly.compileStreaming(fetch(url));
|
||||
} catch (e) {
|
||||
throw new Error(
|
||||
`Failed to load ${url}. This usually means that the web server is not serving avm file correctly. Original error: ${e.toString()}`,
|
||||
);
|
||||
}
|
||||
avmModule = await tryLoadFromUrl(loadMethod.baseUrl, loadMethod.filePaths.avm);
|
||||
marineModule = await tryLoadFromUrl(loadMethod.baseUrl, loadMethod.filePaths.marine);
|
||||
} else if (isNode) {
|
||||
if (loadMethod.method !== 'read-from-fs') {
|
||||
throw new Error("Only 'read-from-fs' is supported for nodejs");
|
||||
}
|
||||
|
||||
try {
|
||||
// webpack will complain about missing dependencies for web target
|
||||
// to fix this we have to use eval('require')
|
||||
const fs = eval('require')('fs');
|
||||
const file = fs.readFileSync(loadMethod.filePath);
|
||||
module = await WebAssembly.compile(file);
|
||||
} catch (e) {
|
||||
throw new Error(
|
||||
`Failed to load ${
|
||||
loadMethod.filePath
|
||||
}. Did you forget to install @fluencelabs/avm? Original error: ${e.toString()}`,
|
||||
);
|
||||
}
|
||||
avmModule = await tryLoadFromFs(loadMethod.filePaths.avm);
|
||||
marineModule = await tryLoadFromFs(loadMethod.filePaths.marine);
|
||||
} else {
|
||||
throw new Error('Environment not supported');
|
||||
}
|
||||
airInterpreter = await AirInterpreter.create(module, logLevel, logFunction);
|
||||
|
||||
// wasi is needed to run AVM with marine-js
|
||||
const wasmFs = new WasmFs();
|
||||
const wasi = new WASI({
|
||||
args: [],
|
||||
env: {},
|
||||
bindings: {
|
||||
...bindings,
|
||||
fs: wasmFs.fs,
|
||||
},
|
||||
});
|
||||
|
||||
const cfg = {
|
||||
exports: undefined,
|
||||
};
|
||||
|
||||
const avmInstance = await WebAssembly.instantiate(avmModule, {
|
||||
...wasi.getImports(avmModule),
|
||||
...newImportObject(cfg)
|
||||
});
|
||||
wasi.start(avmInstance);
|
||||
cfg.exports = avmInstance.exports;
|
||||
|
||||
marineInstance = await init(marineModule);
|
||||
|
||||
const customSections = WebAssembly.Module.customSections(avmModule, 'interface-types');
|
||||
const itCustomSections = new Uint8Array(customSections[0]);
|
||||
let rawResult = marineInstance.register_module('avm', itCustomSections, avmInstance);
|
||||
|
||||
let result: any;
|
||||
try {
|
||||
result = JSON.parse(rawResult);
|
||||
} catch (ex) {
|
||||
throw "register_module result parsing error: " + ex + ", original text: " + rawResult;
|
||||
}
|
||||
},
|
||||
|
||||
terminate: async () => {
|
||||
airInterpreter = 'not-set';
|
||||
marineInstance = 'not-set';
|
||||
},
|
||||
|
||||
run: async (
|
||||
@ -79,15 +191,107 @@ const toExpose: RunnerScriptInterface = {
|
||||
},
|
||||
callResults: CallResultsArray,
|
||||
): Promise<InterpreterResult> => {
|
||||
if (airInterpreter === 'not-set') {
|
||||
if (marineInstance === 'not-set') {
|
||||
throw new Error('Interpreter is not initialized');
|
||||
}
|
||||
|
||||
if (airInterpreter === 'terminated') {
|
||||
if (marineInstance === 'terminated') {
|
||||
throw new Error('Interpreter is terminated');
|
||||
}
|
||||
|
||||
return airInterpreter.invoke(air, prevData, data, params, callResults);
|
||||
try {
|
||||
const callResultsToPass: any = {};
|
||||
for (let [k, v] of callResults) {
|
||||
callResultsToPass[k] = {
|
||||
ret_code: v.retCode,
|
||||
result: v.result,
|
||||
};
|
||||
}
|
||||
|
||||
const paramsToPass = {
|
||||
init_peer_id: params.initPeerId,
|
||||
current_peer_id: params.currentPeerId,
|
||||
};
|
||||
|
||||
const avmArg = JSON.stringify([
|
||||
air,
|
||||
Array.from(prevData),
|
||||
Array.from(data),
|
||||
paramsToPass,
|
||||
Array.from(Buffer.from(JSON.stringify(callResultsToPass))),
|
||||
]);
|
||||
|
||||
const rawResult = marineInstance.call_module('avm', 'invoke', avmArg);
|
||||
|
||||
let result: any;
|
||||
try {
|
||||
result = JSON.parse(rawResult);
|
||||
} catch (ex) {
|
||||
throw "call_module result parsing error: " + ex + ", original text: " + rawResult;
|
||||
}
|
||||
|
||||
if (result.error !== "") {
|
||||
throw "call_module returned error: " + result.error;
|
||||
}
|
||||
|
||||
result = result.result;
|
||||
|
||||
const callRequestsStr = decoder.decode(new Uint8Array(result.call_requests));
|
||||
let parsedCallRequests;
|
||||
try {
|
||||
if (callRequestsStr.length === 0) {
|
||||
parsedCallRequests = {};
|
||||
} else {
|
||||
parsedCallRequests = JSON.parse(callRequestsStr);
|
||||
}
|
||||
} catch (e) {
|
||||
throw "Couldn't parse call requests: " + e + '. Original string is: ' + callRequestsStr;
|
||||
}
|
||||
|
||||
let resultCallRequests: Array<[key: number, callRequest: CallRequest]> = [];
|
||||
for (const k in parsedCallRequests) {
|
||||
const v = parsedCallRequests[k];
|
||||
|
||||
let arguments_;
|
||||
let tetraplets;
|
||||
try {
|
||||
arguments_ = JSON.parse(v.arguments);
|
||||
} catch (e) {
|
||||
throw "Couldn't parse arguments: " + e + '. Original string is: ' + arguments_;
|
||||
}
|
||||
|
||||
try {
|
||||
tetraplets = JSON.parse(v.tetraplets);
|
||||
} catch (e) {
|
||||
throw "Couldn't parse tetraplets: " + e + '. Original string is: ' + tetraplets;
|
||||
}
|
||||
|
||||
resultCallRequests.push([
|
||||
k as any,
|
||||
{
|
||||
serviceId: v.service_id,
|
||||
functionName: v.function_name,
|
||||
arguments: arguments_,
|
||||
tetraplets: tetraplets,
|
||||
},
|
||||
]);
|
||||
}
|
||||
return {
|
||||
retCode: result.ret_code,
|
||||
errorMessage: result.error_message,
|
||||
data: result.data,
|
||||
nextPeerPks: result.next_peer_pks,
|
||||
callRequests: resultCallRequests,
|
||||
};
|
||||
} catch (e) {
|
||||
return {
|
||||
retCode: -1,
|
||||
errorMessage: 'marine-js call failed, ' + e,
|
||||
data: undefined,
|
||||
nextPeerPks: undefined,
|
||||
callRequests: undefined,
|
||||
};
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -16,15 +16,20 @@
|
||||
|
||||
import { CallResultsArray, InterpreterResult, LogLevel } from '@fluencelabs/avm-runner-interface';
|
||||
|
||||
interface FilePaths {
|
||||
avm: string;
|
||||
marine: string;
|
||||
}
|
||||
|
||||
export type wasmLoadingMethod =
|
||||
| {
|
||||
method: 'fetch-from-url';
|
||||
baseUrl: string;
|
||||
filePath: string;
|
||||
filePaths: FilePaths;
|
||||
}
|
||||
| {
|
||||
method: 'read-from-fs';
|
||||
filePath: string;
|
||||
filePaths: FilePaths;
|
||||
};
|
||||
|
||||
export type RunnerScriptInterface = {
|
||||
|
@ -2,9 +2,9 @@
|
||||
|
||||
const path = require('path');
|
||||
|
||||
const isProduction = true;
|
||||
// const isProduction = true;
|
||||
// uncomment to debug
|
||||
// const isProduction = false;
|
||||
const isProduction = false;
|
||||
|
||||
const config = {
|
||||
entry: './src/index.ts',
|
||||
|
@ -15,6 +15,6 @@ describe('NodeJS negative tests', () => {
|
||||
const res = await testRunner.init('off').catch((e) => e.message);
|
||||
|
||||
// assert
|
||||
expect(res).toMatch('Failed to load avm.wasm. Did you forget to install @fluencelabs/avm?');
|
||||
expect(res).toMatch('Failed to load wasm file(s).');
|
||||
});
|
||||
});
|
||||
|
65
tests/node/package-lock.json
generated
65
tests/node/package-lock.json
generated
@ -6,7 +6,8 @@
|
||||
"packages": {
|
||||
"": {
|
||||
"dependencies": {
|
||||
"@fluencelabs/avm": "0.19.6"
|
||||
"@fluencelabs/avm": "0.20.0-marine-web.3",
|
||||
"@fluencelabs/marine-js": "0.1.0-web-runtime-experiments.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/jest": "^27.0.3",
|
||||
@ -17,6 +18,43 @@
|
||||
"typescript": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"../../../aquavm/avm/client": {
|
||||
"name": "@fluencelabs/avm",
|
||||
"version": "0.0.0",
|
||||
"extraneous": true,
|
||||
"license": "Apache 2.0",
|
||||
"bin": {
|
||||
"copy-avm": "dist/copyAvm.js"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^14.0.0",
|
||||
"typescript": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"../../../marine/web-runtime/npm-package": {
|
||||
"name": "@fluencelabs/marine-js",
|
||||
"version": "0.0.3",
|
||||
"extraneous": true,
|
||||
"license": "Apache 2.0",
|
||||
"bin": {
|
||||
"copy-marine": "dist/copyMarine.js"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@fluencelabs/avm": "0.20.0-marine-web-adapted.1",
|
||||
"@types/jest": "^27.4.0",
|
||||
"@types/node": "^14.0.0",
|
||||
"@wasmer/wasi": "^0.12.0",
|
||||
"@wasmer/wasmfs": "^0.12.0",
|
||||
"jest": "^27.2.4",
|
||||
"typescript": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"../../aquavm/avm/client": {
|
||||
"extraneous": true
|
||||
},
|
||||
"../../marine/web-runtime/npm-package": {
|
||||
"extraneous": true
|
||||
},
|
||||
"node_modules/@babel/code-frame": {
|
||||
"version": "7.16.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz",
|
||||
@ -578,13 +616,21 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@fluencelabs/avm": {
|
||||
"version": "0.19.6",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.19.6.tgz",
|
||||
"integrity": "sha512-T6UQsIuGVltf13Wc3bFmuCYmQzu/00Y4lPS7atBauQ2R4+BqhRg1dc5reSZ+MbAW3Vy+NmJY1EEYOFRpLCGBwg==",
|
||||
"version": "0.20.0-marine-web.3",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.20.0-marine-web.3.tgz",
|
||||
"integrity": "sha512-sYh3CEGPaa3feI1nNbrhNVhqvX+LBoadufRIqL2MUgYD0htoteJZ8l+MsSodieCZeISfIgBQCYXKCVKB7qwyOA==",
|
||||
"bin": {
|
||||
"copy-avm": "dist/copyAvm.js"
|
||||
}
|
||||
},
|
||||
"node_modules/@fluencelabs/marine-js": {
|
||||
"version": "0.1.0-web-runtime-experiments.0",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/marine-js/-/marine-js-0.1.0-web-runtime-experiments.0.tgz",
|
||||
"integrity": "sha512-UQxTtACJLNJcTaD10LQ2hIA1x5/yN6S4XT0Kn8wCYVz/QbD/itb47x8+wA582HNKEbJpHuj0A098UYrt6+WpQA==",
|
||||
"bin": {
|
||||
"copy-marine": "dist/copyMarine.js"
|
||||
}
|
||||
},
|
||||
"node_modules/@istanbuljs/load-nyc-config": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
|
||||
@ -4651,9 +4697,14 @@
|
||||
"dev": true
|
||||
},
|
||||
"@fluencelabs/avm": {
|
||||
"version": "0.19.6",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.19.6.tgz",
|
||||
"integrity": "sha512-T6UQsIuGVltf13Wc3bFmuCYmQzu/00Y4lPS7atBauQ2R4+BqhRg1dc5reSZ+MbAW3Vy+NmJY1EEYOFRpLCGBwg=="
|
||||
"version": "0.20.0-marine-web.3",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.20.0-marine-web.3.tgz",
|
||||
"integrity": "sha512-sYh3CEGPaa3feI1nNbrhNVhqvX+LBoadufRIqL2MUgYD0htoteJZ8l+MsSodieCZeISfIgBQCYXKCVKB7qwyOA=="
|
||||
},
|
||||
"@fluencelabs/marine-js": {
|
||||
"version": "0.1.0-web-runtime-experiments.0",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/marine-js/-/marine-js-0.1.0-web-runtime-experiments.0.tgz",
|
||||
"integrity": "sha512-UQxTtACJLNJcTaD10LQ2hIA1x5/yN6S4XT0Kn8wCYVz/QbD/itb47x8+wA582HNKEbJpHuj0A098UYrt6+WpQA=="
|
||||
},
|
||||
"@istanbuljs/load-nyc-config": {
|
||||
"version": "1.1.0",
|
||||
|
@ -13,6 +13,7 @@
|
||||
"typescript": "^4.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@fluencelabs/avm": "0.19.6"
|
||||
"@fluencelabs/avm": "0.20.8",
|
||||
"@fluencelabs/marine-js": "0.1.0"
|
||||
}
|
||||
}
|
||||
|
@ -26,6 +26,9 @@ describe('Nodejs integration tests', () => {
|
||||
await testRunner.terminate();
|
||||
|
||||
// assert
|
||||
expect(res).not.toBeUndefined();
|
||||
expect(res).toMatchObject({
|
||||
retCode: 0,
|
||||
errorMessage: '',
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@ -1,5 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
# set current working directory to script directory to run script from everywhere
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
{
|
||||
"scripts": {
|
||||
"test": "jest --runInBand"
|
||||
"test": "jest --runInBand",
|
||||
"test:verbose": "jest --runInBand --verbose"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/jest": "^27.0.3",
|
||||
|
@ -13,11 +13,11 @@ let server;
|
||||
jest.setTimeout(10000);
|
||||
|
||||
const startServer = async (modifyConfig?) => {
|
||||
const loadInBrowserToDebug = true; // set to true to debug
|
||||
const loadInBrowserToDebug = false; // set to true to debug
|
||||
|
||||
modifyConfig = modifyConfig || ((_) => {});
|
||||
|
||||
const cfg = webpackConfig();
|
||||
const cfg: any = webpackConfig();
|
||||
modifyConfig(cfg);
|
||||
const compiler = Webpack(cfg);
|
||||
const devServerOptions = { ...cfg.devServer, open: loadInBrowserToDebug };
|
||||
|
30
tests/web/test-project/package-lock.json
generated
30
tests/web/test-project/package-lock.json
generated
@ -9,7 +9,8 @@
|
||||
"js-base64": "^3.7.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@fluencelabs/avm": "0.19.6",
|
||||
"@fluencelabs/avm": "0.20.0-marine-web.3",
|
||||
"@fluencelabs/marine-js": "^0.1.0-web-runtime-experiments.0",
|
||||
"@webpack-cli/generators": "^2.4.1",
|
||||
"css-loader": "^6.5.1",
|
||||
"html-webpack-plugin": "^5.5.0",
|
||||
@ -130,14 +131,23 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@fluencelabs/avm": {
|
||||
"version": "0.19.6",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.19.6.tgz",
|
||||
"integrity": "sha512-T6UQsIuGVltf13Wc3bFmuCYmQzu/00Y4lPS7atBauQ2R4+BqhRg1dc5reSZ+MbAW3Vy+NmJY1EEYOFRpLCGBwg==",
|
||||
"version": "0.20.0-marine-web.3",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.20.0-marine-web.3.tgz",
|
||||
"integrity": "sha512-sYh3CEGPaa3feI1nNbrhNVhqvX+LBoadufRIqL2MUgYD0htoteJZ8l+MsSodieCZeISfIgBQCYXKCVKB7qwyOA==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"copy-avm": "dist/copyAvm.js"
|
||||
}
|
||||
},
|
||||
"node_modules/@fluencelabs/marine-js": {
|
||||
"version": "0.1.0-web-runtime-experiments.0",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/marine-js/-/marine-js-0.1.0-web-runtime-experiments.0.tgz",
|
||||
"integrity": "sha512-UQxTtACJLNJcTaD10LQ2hIA1x5/yN6S4XT0Kn8wCYVz/QbD/itb47x8+wA582HNKEbJpHuj0A098UYrt6+WpQA==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"copy-marine": "dist/copyMarine.js"
|
||||
}
|
||||
},
|
||||
"node_modules/@mrmlnc/readdir-enhanced": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz",
|
||||
@ -9277,9 +9287,15 @@
|
||||
"dev": true
|
||||
},
|
||||
"@fluencelabs/avm": {
|
||||
"version": "0.19.6",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.19.6.tgz",
|
||||
"integrity": "sha512-T6UQsIuGVltf13Wc3bFmuCYmQzu/00Y4lPS7atBauQ2R4+BqhRg1dc5reSZ+MbAW3Vy+NmJY1EEYOFRpLCGBwg==",
|
||||
"version": "0.20.0-marine-web.3",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.20.0-marine-web.3.tgz",
|
||||
"integrity": "sha512-sYh3CEGPaa3feI1nNbrhNVhqvX+LBoadufRIqL2MUgYD0htoteJZ8l+MsSodieCZeISfIgBQCYXKCVKB7qwyOA==",
|
||||
"dev": true
|
||||
},
|
||||
"@fluencelabs/marine-js": {
|
||||
"version": "0.1.0-web-runtime-experiments.0",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/marine-js/-/marine-js-0.1.0-web-runtime-experiments.0.tgz",
|
||||
"integrity": "sha512-UQxTtACJLNJcTaD10LQ2hIA1x5/yN6S4XT0Kn8wCYVz/QbD/itb47x8+wA582HNKEbJpHuj0A098UYrt6+WpQA==",
|
||||
"dev": true
|
||||
},
|
||||
"@mrmlnc/readdir-enhanced": {
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"scripts": {
|
||||
"start": "webpack serve",
|
||||
"copy-public": "copy-avm public && copy-avm-runner public",
|
||||
"copy-public": "copy-avm public && copy-marine public && copy-avm-runner public",
|
||||
"install:local": "install-local ../../../avm-runner-background",
|
||||
"build": "webpack --mode=production --node-env=production",
|
||||
"build:dev": "webpack --mode=development",
|
||||
@ -21,7 +21,8 @@
|
||||
"webpack": "^5.65.0",
|
||||
"webpack-cli": "^4.9.1",
|
||||
"webpack-dev-server": "^4.6.0",
|
||||
"@fluencelabs/avm": "0.19.6"
|
||||
"@fluencelabs/avm": "0.20.8",
|
||||
"@fluencelabs/marine-js": "0.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"js-base64": "^3.7.2"
|
||||
|
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user