diff --git a/.github/eosjs-ci/Dockerfile b/.github/eosjs-ci/Dockerfile index 1f6d7b030..b2e61acb7 100644 --- a/.github/eosjs-ci/Dockerfile +++ b/.github/eosjs-ci/Dockerfile @@ -1,3 +1,11 @@ +### Current Version: v0.2.2 +### Test: +#### docker build --tag eosjs-ci:test ./.github/eosjs-ci +#### docker run --publish 8888:8888 eosjs-ci:test +### Deploy: +#### docker build --tag eosio/eosjs-ci:v0.2.2 ./.github/eosjs-ci +#### docker push eosio/eosjs-ci:v0.2.2 + FROM ubuntu:18.04 ENTRYPOINT ["nodeos", "--data-dir", "/root/.local/share", "-e", "-p", "eosio", "--replay-blockchain", "--plugin", "eosio::producer_plugin", "--plugin", "eosio::chain_api_plugin", "--plugin", "eosio::http_plugin", "--http-server-address=0.0.0.0:8888", "--access-control-allow-origin=*", "--contracts-console", "--http-validate-host=false", "--verbose-http-errors", "--max-transaction-time=100"] diff --git a/.github/eosjs-ci/scripts/deploy_contracts.sh b/.github/eosjs-ci/scripts/deploy_contracts.sh index acede2c3f..231c3dc84 100644 --- a/.github/eosjs-ci/scripts/deploy_contracts.sh +++ b/.github/eosjs-ci/scripts/deploy_contracts.sh @@ -163,11 +163,16 @@ setabi eosio $CONTRACTS_DIR/system/system.abi sleep 1s cleos wallet unlock --password $(cat "$CONFIG_DIR"/keys/default_wallet_password.txt) || true create_account eosio.token $SYSTEM_ACCOUNT_PUBLIC_KEY $SYSTEM_ACCOUNT_PRIVATE_KEY +create_account returnvalue $SYSTEM_ACCOUNT_PUBLIC_KEY $SYSTEM_ACCOUNT_PRIVATE_KEY create_account bob $EXAMPLE_ACCOUNT_PUBLIC_KEY $EXAMPLE_ACCOUNT_PRIVATE_KEY create_account alice $EXAMPLE_ACCOUNT_PUBLIC_KEY $EXAMPLE_ACCOUNT_PRIVATE_KEY create_account bobr1 $R1_EXAMPLE_ACCOUNT_PUBLIC_KEY $R1_EXAMPLE_ACCOUNT_PRIVATE_KEY create_account alicer1 $R1_EXAMPLE_ACCOUNT_PUBLIC_KEY $R1_EXAMPLE_ACCOUNT_PRIVATE_KEY +sleep 1s +cleos set abi returnvalue $CONTRACTS_DIR/action_results/action_results.abi -p returnvalue@active -p eosio@active +cleos set code returnvalue $CONTRACTS_DIR/action_results/action_results.wasm -p returnvalue@active -p eosio@active + sleep 1s cleos set abi eosio.token $CONTRACTS_DIR/token/token.abi -p eosio.token@active -p eosio@active cleos set code eosio.token $CONTRACTS_DIR/token/token.wasm -p eosio.token@active -p eosio@active diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a14a7e2f2..d0164830c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -73,7 +73,7 @@ jobs: git push origin ${GITHUB_REF#refs/*/} services: nodeos: - image: eosio/eosjs-ci:v0.2.1 + image: eosio/eosjs-ci:v0.2.2 ports: - 8888:8888 diff --git a/.github/workflows/publish-edge.yml b/.github/workflows/publish-edge.yml index c81a3a620..226b8e103 100644 --- a/.github/workflows/publish-edge.yml +++ b/.github/workflows/publish-edge.yml @@ -58,7 +58,7 @@ jobs: services: nodeos: - image: eosio/eosjs-ci:v0.2.1 + image: eosio/eosjs-ci:v0.2.2 ports: - 8888:8888 diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index 57237c8b4..8a000dd07 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -57,7 +57,7 @@ jobs: services: nodeos: - image: eosio/eosjs-ci:v0.2.1 + image: eosio/eosjs-ci:v0.2.2 ports: - 8888:8888 @@ -117,7 +117,7 @@ jobs: services: nodeos: - image: eosio/eosjs-ci:v0.2.1 + image: eosio/eosjs-ci:v0.2.2 ports: - 8888:8888 diff --git a/.gitignore b/.gitignore index 6bca495a0..6bcf614be 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,8 @@ dist-web/ node_modules/ docs-build/ *.tgz +.github/**/*.wasm +.github/**/*.abi #cypress artifacts cypress/screenshots/ diff --git a/package.json b/package.json index 43bd5375c..09ac30514 100644 --- a/package.json +++ b/package.json @@ -34,17 +34,17 @@ "devDependencies": { "@blockone/eslint-config-blockone": "^3.0.0", "@types/elliptic": "^6.4.12", - "@types/jest": "^26.0.4", - "@types/node": "^14.0.23", + "@types/jest": "^26.0.6", + "@types/node": "^14.0.24", "@types/pako": "^1.0.1", - "cypress": "^4.10.0", + "cypress": "^4.11.0", "eosjs-ecc": "^4.0.7", "eslint": "^6.8.0", "jest": "^26.1.0", "jest-fetch-mock": "^3.0.3", - "ts-jest": "^26.1.2", + "ts-jest": "^26.1.3", "ts-loader": "^7.0.5", - "typescript": "^3.9.6", + "typescript": "^3.9.7", "webpack": "^4.43.0", "webpack-cli": "^3.3.12" }, diff --git a/src/tests/action_results_abi.wasm b/src/tests/action_results_abi.wasm new file mode 100755 index 000000000..e5b77b312 Binary files /dev/null and b/src/tests/action_results_abi.wasm differ diff --git a/src/tests/eosjs-api.test.ts b/src/tests/eosjs-api.test.ts index 6ef77a386..50488d90b 100644 --- a/src/tests/eosjs-api.test.ts +++ b/src/tests/eosjs-api.test.ts @@ -1,5 +1,5 @@ const { TextEncoder, TextDecoder } = require('util'); -import { Api, TransactionBuilder, ActionBuilder } from '../eosjs-api'; +import { Api } from '../eosjs-api'; import { JsonRpc } from '../eosjs-jsonrpc'; import { JsSignatureProvider } from '../eosjs-jssig'; import { WasmAbiProvider, WasmAbi } from '../eosjs-wasmabi'; diff --git a/src/tests/node.js b/src/tests/node.js index 24e60b3fe..4d0aa2366 100644 --- a/src/tests/node.js +++ b/src/tests/node.js @@ -29,6 +29,14 @@ const setWasmAbi = async () => { textEncoder: api.textEncoder, textDecoder: api.textDecoder, print: (x) => { process.stdout.write(x); }, + }), + new WasmAbi({ + account: 'returnvalue', + mod: new global.WebAssembly.Module(fs.readFileSync(path.join(__dirname + '/action_results_abi.wasm'))), + memoryThreshold: 32000, + textEncoder: api.textEncoder, + textDecoder: api.textDecoder, + print: (x) => { process.stdout.write(x); }, }) ]); }; @@ -126,6 +134,16 @@ const transactWithShorthandTxWasm = async () => { }); }; +const transactWithReturnValue = async () => { + await setWasmAbi(); + const tx = api.buildTransaction(); + tx.with('returnvalue').as('bob').actionresret(); + return await tx.send({ + blocksBehind: 3, + expireSeconds: 30 + }); +}; + const broadcastResult = async (signaturesAndPackedTransaction) => await api.pushSignedTransaction(signaturesAndPackedTransaction); const transactShouldFail = async () => await api.transact({ @@ -156,5 +174,6 @@ module.exports = { transactWithShorthandApiWasm, transactWithShorthandTxJson, transactWithShorthandTxWasm, + transactWithReturnValue, rpcShouldFail }; diff --git a/src/tests/node.test.ts b/src/tests/node.test.ts index b92b38d76..f7e1b272c 100644 --- a/src/tests/node.test.ts +++ b/src/tests/node.test.ts @@ -87,6 +87,12 @@ describe('Node JS environment', () => { expect(Object.keys(transactionResponse)).toContain('transaction_id'); }); + it('confirms an action\'s return value can be verified', async () => { + const expectedValue = 10; + transactionResponse = await tests.transactWithReturnValue(); + expect(transactionResponse.processed.action_traces[0].return_value).toEqual(expectedValue); + }); + it('throws appropriate error message without configuration object or TAPOS in place', async () => { try { failedAsPlanned = true; diff --git a/src/tests/token_abi.wasm b/src/tests/token_abi.wasm index 47bb60a70..28a28cc9c 100755 Binary files a/src/tests/token_abi.wasm and b/src/tests/token_abi.wasm differ diff --git a/src/tests/web.html b/src/tests/web.html index 8d4a1d806..ad8916c42 100644 --- a/src/tests/web.html +++ b/src/tests/web.html @@ -20,23 +20,40 @@ const signatureProvider = new eosjs_jssig.JsSignatureProvider([privateKey, r1PrivateKey]); const wasmAbiProvider = new eosjs_wasmabi.WasmAbiProvider(); const api = new eosjs_api.Api({ rpc, signatureProvider, wasmAbiProvider }); - let module; + let tokenModule; + let rvModule; const setWasmAbi = async () => { - if (!module) { - const response = await fetch('token_abi.wasm'); - const buffer = await response.arrayBuffer(); - module = await WebAssembly.compile(buffer); + let response; + let buffer; + if (!tokenModule) { + response = await fetch('token_abi.wasm'); + buffer = await response.arrayBuffer(); + tokenModule = await WebAssembly.compile(buffer); + } + + if (!rvModule) { + response = await fetch('action_results_abi.wasm'); + buffer = await response.arrayBuffer(); + rvModule = await WebAssembly.compile(buffer); } await api.wasmAbiProvider.setWasmAbis([ new eosjs_wasmabi.WasmAbi({ account: 'eosio.token', - mod: module, + mod: tokenModule, memoryThreshold: 32000, textEncoder: new TextEncoder(), textDecoder: new TextDecoder('utf-8', { fatal: true }), print: (x) => console.info(x), + }), + new eosjs_wasmabi.WasmAbi({ + account: 'returnvalue', + mod: rvModule, + memoryThreshold: 32000, + textEncoder: new TextEncoder, + textDecoder: new TextDecoder('utf-8', { fatal: true }), + print: (x) => console.info(x), }) ]); }; @@ -397,6 +414,40 @@ resultsLabel.innerText = FAILED; return false; }; + + const returnValueTx = async () => { + await setWasmAbi(); + const tx = api.buildTransaction(); + tx.with('returnvalue').as('bob').actionresret(); + return tx.send({ + blocksBehind: 3, + expireSeconds: 30 + }); + } + + const testWithReturnValueTx = async (e) => { + const expectedValue = 10; + resultsLabel = e.target; + resultsLabel.innerText = EXECUTING; + + try { + transactionResponse = await returnValueTx(); + } catch (error) { + resultsLabel.className = 'failed'; + resultsLabel.innerText = FAILED; + console.error('Transact Return Values Test Failure: ', error.message); + return false; + } + + if (transactionResponse.processed.action_traces[0].return_value === expectedValue) { + resultsLabel.className = "success"; + resultsLabel.innerText = SUCCESS; + return true; + } + resultsLabel.className = 'failed'; + resultsLabel.innerText = FAILED; + return false; + } const transactShouldFail = async () => await api.transact({ actions: [{ @@ -484,6 +535,7 @@

Web Build Integration Tests

Transact with .with() Using Api and Wasm Abi

Transact with .with() Using Tx and Wasm Abi

Transact elliptic p256/KeyType.r1 Keys and Signatures

+

Transact Return Values

Invalid Transaction Throws Error

Invalid Rpc Call Throws Rpc Error

diff --git a/yarn.lock b/yarn.lock index cf95a565f..2c75781ce 100644 --- a/yarn.lock +++ b/yarn.lock @@ -534,9 +534,9 @@ any-observable "^0.3.0" "@sinonjs/commons@^1.7.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.0.tgz#c8d68821a854c555bba172f3b06959a0039b236d" - integrity sha512-wEj54PfsZ5jGSwMX68G8ZXFawcSglQSXqCftWX3ec8MDUzQdHgcKvw97awHbY0efQEL5iKUOAmmVtoYgmrSG4Q== + version "1.8.1" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz#e7df00f98a203324f6dc7cc606cad9d4a8ab2217" + integrity sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw== dependencies: type-detect "4.0.8" @@ -631,10 +631,10 @@ "@types/istanbul-lib-coverage" "*" "@types/istanbul-lib-report" "*" -"@types/jest@^26.0.4": - version "26.0.4" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.4.tgz#d2e513e85aca16992816f192582b5e67b0b15efb" - integrity sha512-4fQNItvelbNA9+sFgU+fhJo8ZFF+AS4Egk3GWwCW2jFtViukXbnztccafAdLhzE/0EiCogljtQQXP8aQ9J7sFg== +"@types/jest@^26.0.6": + version "26.0.6" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.6.tgz#b9f5ef7ba7e0e45a0c482667a0cf314f0a6ed6b3" + integrity sha512-XhJCNf+oPyA90jyPhOT3yZo6xR8R7auyUAibzRewPwbOb649AOPXX/JSjbafcbxJrxs/+BymBmHSETM8VpGMOw== dependencies: jest-diff "^25.2.1" pretty-format "^25.2.1" @@ -644,10 +644,10 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.5.tgz#dcce4430e64b443ba8945f0290fb564ad5bac6dd" integrity sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ== -"@types/node@*", "@types/node@^14.0.23": - version "14.0.23" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.23.tgz#676fa0883450ed9da0bb24156213636290892806" - integrity sha512-Z4U8yDAl5TFkmYsZdFPdjeMa57NOvnaf1tljHzhouaPEp7LCj2JKkejpI1ODviIAQuW4CcQmxkQ77rnLsOOoKw== +"@types/node@*", "@types/node@^14.0.24": + version "14.0.24" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.24.tgz#b0f86f58564fa02a28b68f8b55d4cdec42e3b9d6" + integrity sha512-btt/oNOiDWcSuI721MdL8VQGnjsKjlTMdrKyTcLCKeQp/n4AAMFJ961wMbp+09y8WuGPClDEv07RIItdXKIXAA== "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -1262,16 +1262,16 @@ bluebird@3.7.2, bluebird@^3.5.5: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== +bn.js@5.1.2, bn.js@^5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" + integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA== + bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: version "4.11.9" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== -bn.js@^5.1.1, bn.js@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" - integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA== - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1581,9 +1581,9 @@ chokidar@^2.1.8: fsevents "^1.2.7" chokidar@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.0.tgz#b30611423ce376357c765b9b8f904b9fba3c0be8" - integrity sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ== + version "3.4.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.1.tgz#e905bdecf10eaa0a0b1db0c664481cc4cbc22ba1" + integrity sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g== dependencies: anymatch "~3.1.1" braces "~3.0.2" @@ -1954,10 +1954,10 @@ cyclist@^1.0.1: resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= -cypress@^4.10.0: - version "4.10.0" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-4.10.0.tgz#6b507f4637af6a65ea285953f899951d65e82416" - integrity sha512-eFv1WPp4zFrAgZ6mwherBGVsTpHvay/hEF5F7U7yfAkTxsUQn/ZG/LdX67fIi3bKDTQXYzFv/CvywlQSeug8Bg== +cypress@^4.11.0: + version "4.11.0" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-4.11.0.tgz#054b0b85fd3aea793f186249ee1216126d5f0a7e" + integrity sha512-6Yd598+KPATM+dU1Ig0g2hbA+R/o1MAKt0xIejw4nZBVLSplCouBzqeKve6XsxGU6n4HMSt/+QYsWfFcoQeSEw== dependencies: "@cypress/listr-verbose-renderer" "0.4.1" "@cypress/request" "2.88.5" @@ -1983,7 +1983,7 @@ cypress@^4.10.0: is-installed-globally "0.3.2" lazy-ass "1.6.0" listr "0.14.3" - lodash "4.17.15" + lodash "4.17.19" log-symbols "3.0.0" minimist "1.2.5" moment "2.26.0" @@ -2286,9 +2286,9 @@ eslint-plugin-jsdoc@^21.0.0: spdx-expression-parse "^3.0.0" eslint-plugin-prefer-arrow@^1.1.7: - version "1.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.1.tgz#9e2943cdae4476e41f94f50dd7a250f267db6865" - integrity sha512-CPAvdTGG0YbFAJrUKdRBrOJ0X1I7jTtF5VIM4m2Bw1/A2jrhfUeUAcPy4pAEB5DNaUuDqc59f3pKTeiVeamS1A== + version "1.2.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.2.tgz#0c6d25a6b94cb3e0110a23d129760af5860edb6e" + integrity sha512-C8YMhL+r8RMeMdYAw/rQtE6xNdMulj+zGWud/qIGnlmomiPRaLDGLMeskZ3alN6uMBojmooRimtdrXebLN4svQ== eslint-scope@^4.0.3: version "4.0.3" @@ -2417,9 +2417,9 @@ eventemitter2@6.4.2: integrity sha512-r/Pwupa5RIzxIHbEKCkNXqpEQIIT4uQDxmP4G/Lug/NokVUWj0joz/WzWl3OxRpC5kDrH/WdiUJoR+IrwvXJEw== events@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" - integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg== + version "3.2.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" + integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" @@ -3151,9 +3151,9 @@ ini@^1.3.4, ini@^1.3.5: integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== inquirer@^7.0.0: - version "7.3.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.2.tgz#25245d2e32dc9f33dbe26eeaada231daa66e9c7c" - integrity sha512-DF4osh1FM6l0RJc5YWYhSDB6TawiBRlbV9Cox8MWlidU218Tb7fm3lQTULyUJDfJ0tjbzl0W4q651mrCCEM55w== + version "7.3.3" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" + integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== dependencies: ansi-escapes "^4.2.1" chalk "^4.1.0" @@ -3161,7 +3161,7 @@ inquirer@^7.0.0: cli-width "^3.0.0" external-editor "^3.0.3" figures "^3.0.0" - lodash "^4.17.16" + lodash "^4.17.19" mute-stream "0.0.8" run-async "^2.4.0" rxjs "^6.6.0" @@ -3388,7 +3388,7 @@ is-wsl@^1.1.0: resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= -is-wsl@^2.1.1: +is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== @@ -4102,7 +4102,7 @@ lodash.sortby@^4.7.0: resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= -lodash@4.17.15, lodash@4.17.19, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.16, lodash@^4.17.19: +lodash@4.17.19, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19: version "4.17.19" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== @@ -4440,15 +4440,15 @@ node-modules-regexp@^1.0.0: integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= node-notifier@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-7.0.1.tgz#a355e33e6bebacef9bf8562689aed0f4230ca6f9" - integrity sha512-VkzhierE7DBmQEElhTGJIoiZa1oqRijOtgOlsXg32KrJRXsPy0NXFBqWGW/wTswnJlDCs5viRYaqWguqzsKcmg== + version "7.0.2" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-7.0.2.tgz#3a70b1b70aca5e919d0b1b022530697466d9c675" + integrity sha512-ux+n4hPVETuTL8+daJXTOC6uKLgMsl1RYfFv7DKRzyvzBapqco0rZZ9g72ZN8VS6V+gvNYHYa/ofcCY8fkJWsA== dependencies: growly "^1.3.0" - is-wsl "^2.1.1" - semver "^7.2.1" + is-wsl "^2.2.0" + semver "^7.3.2" shellwords "^0.1.1" - uuid "^7.0.3" + uuid "^8.2.0" which "^2.0.2" normalize-package-data@^2.5.0: @@ -5014,9 +5014,9 @@ readdirp@~3.4.0: picomatch "^2.2.1" regenerator-runtime@^0.13.2: - version "0.13.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" - integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== + version "0.13.7" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" @@ -5063,19 +5063,19 @@ request-progress@3.0.0: dependencies: throttleit "^1.0.0" -request-promise-core@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9" - integrity sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ== +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== dependencies: - lodash "^4.17.15" + lodash "^4.17.19" request-promise-native@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36" - integrity sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ== + version "1.0.9" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== dependencies: - request-promise-core "1.1.3" + request-promise-core "1.1.4" stealthy-require "^1.1.1" tough-cookie "^2.3.3" @@ -5304,7 +5304,7 @@ schema-utils@^1.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@7.x, semver@^7.2.1, semver@^7.3.2: +semver@7.x, semver@^7.3.2: version "7.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== @@ -5918,10 +5918,10 @@ tr46@^2.0.2: dependencies: punycode "^2.1.1" -ts-jest@^26.1.2: - version "26.1.2" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.1.2.tgz#dd2e832ffae9cb803361483b6a3010a6413dc475" - integrity sha512-V4SyBDO9gOdEh+AF4KtXJeP+EeI4PkOrxcA8ptl4o8nCXUVM5Gg/8ngGKneS5BsZaR9DXVQNqj9k+iqGAnpGow== +ts-jest@^26.1.3: + version "26.1.3" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.1.3.tgz#aac928a05fdf13e3e6dfbc8caec3847442667894" + integrity sha512-beUTSvuqR9SmKQEylewqJdnXWMVGJRFqSz2M8wKJe7GBMmLZ5zw6XXKSJckbHNMxn+zdB3guN2eOucSw2gBMnw== dependencies: bs-logger "0.x" buffer-from "1.x" @@ -6013,10 +6013,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^3.9.6: - version "3.9.6" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.6.tgz#8f3e0198a34c3ae17091b35571d3afd31999365a" - integrity sha512-Pspx3oKAPJtjNwE92YS05HQoY7z2SFyOpHo9MqJor3BXAGNaPUs83CuVp9VISFkSjyRfiTpmKuAYGJB7S7hOxw== +typescript@^3.9.7: + version "3.9.7" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" + integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== union-value@^1.0.0: version "1.0.1" @@ -6114,10 +6114,10 @@ uuid@^3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.3.tgz#c5c9f2c8cf25dc0a372c4df1441c41f5bd0c680b" - integrity sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg== +uuid@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.2.0.tgz#cb10dd6b118e2dada7d0cd9730ba7417c93d920e" + integrity sha512-CYpGiFTUrmI6OBMkAdjSDM0k5h8SkkiTP4WAjQgDgNB1S3Ou9VBEvr6q0Kv2H1mMk7IWfxYGpMH5sd5AvcIV2Q== v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.1: version "2.1.1"