From d1c37f42822a48c0fe947dcb00ab687ef6554355 Mon Sep 17 00:00:00 2001 From: Bradley Hart Date: Fri, 2 Jul 2021 14:56:37 -0400 Subject: [PATCH 1/5] Making adjustments to resource payer and read only following discussions --- .gitignore | 1 + docs/how-to-guides/20_how-to-set-a-payer.md | 2 +- src/eosjs-api-interfaces.ts | 6 +-- src/eosjs-api.ts | 46 ++++++++++++++++----- src/tests/eosjs-api.test.ts | 12 +++--- src/tests/node.js | 12 +++--- src/tests/node.test.ts | 6 +-- src/tests/web.html | 1 - 8 files changed, 55 insertions(+), 31 deletions(-) diff --git a/.gitignore b/.gitignore index 6bcf614be..0ac5c6486 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ .DS_Store .idea +.vscode dist/ dist-web/ node_modules/ diff --git a/docs/how-to-guides/20_how-to-set-a-payer.md b/docs/how-to-guides/20_how-to-set-a-payer.md index 5907861b1..ef93e4a91 100644 --- a/docs/how-to-guides/20_how-to-set-a-payer.md +++ b/docs/how-to-guides/20_how-to-set-a-payer.md @@ -1,4 +1,4 @@ -After the release of v2.2 of nodeos, the transaction sponsorship feature is available to sponsor the resources for a transaction. To set a separate payer for the resources for a transaction, add a `resource_payer` object to your transaction that specifies the `payer`, `max_net_bytes`, `max_cpu_us`, and `max_memory_bytes`. This functionality requires the `RESOURCE_PAYER` feature to be enabled on the chain. +After the release of v2.2 of nodeos, the resource payer feature is available to sponsor the resources for a transaction. To set a separate payer for the resources for a transaction, add a `resource_payer` object to your transaction that specifies the `payer`, `max_net_bytes`, `max_cpu_us`, and `max_memory_bytes`. This functionality requires the `RESOURCE_PAYER` protocol feature to be enabled on the chain. A typical use-case for this feature has a service or application pay for the resources of a transaction instead of their users. Since authorization is required for both the user in the transaction and the payer, a possible workflow would have the transaction signed by the user's wallet application and then also signed by the service/application before sent to nodeos. diff --git a/src/eosjs-api-interfaces.ts b/src/eosjs-api-interfaces.ts index d52487095..6680b37aa 100644 --- a/src/eosjs-api-interfaces.ts +++ b/src/eosjs-api-interfaces.ts @@ -74,9 +74,9 @@ export interface SignatureProvider { export interface ResourcePayer { payer: string; - max_net_bytes: number|string; - max_cpu_us: number|string; - max_memory_bytes: number|string; + max_net_bytes: number; + max_cpu_us: number; + max_memory_bytes: number; } export interface Transaction { diff --git a/src/eosjs-api.ts b/src/eosjs-api.ts index 898d26004..5d48e3735 100644 --- a/src/eosjs-api.ts +++ b/src/eosjs-api.ts @@ -250,6 +250,9 @@ export class Api { extensionBuffer.pushArray(ser.hexToUint8Array(extensionData[1])); const deserializedObj = types.get(transactionExtension.type).deserialize(extensionBuffer); if (extensionData[0] === 1) { + deserializedObj.max_net_bytes = Number(deserializedObj.max_net_bytes); + deserializedObj.max_cpu_us = Number(deserializedObj.max_cpu_us); + deserializedObj.max_memory_bytes = Number(deserializedObj.max_memory_bytes); transaction.resource_payer = deserializedObj; } }); @@ -390,14 +393,18 @@ export class Api { }); } if (broadcast) { - let result; - if (readOnlyTrx) { - return this.rpc.push_ro_transaction(pushTransactionArgs, returnFailureTraces) as Promise; - } if (compression) { - return this.pushCompressedSignedTransaction(pushTransactionArgs) as Promise; + return this.pushCompressedSignedTransaction( + pushTransactionArgs, + readOnlyTrx, + returnFailureTraces, + ) as Promise; } - return this.pushSignedTransaction(pushTransactionArgs) as Promise; + return this.pushSignedTransaction( + pushTransactionArgs, + readOnlyTrx, + returnFailureTraces, + ) as Promise; } return pushTransactionArgs as PushTransactionArgs; } @@ -462,8 +469,17 @@ export class Api { /** Broadcast a signed transaction */ public async pushSignedTransaction( - { signatures, serializedTransaction, serializedContextFreeData }: PushTransactionArgs - ): Promise { + { signatures, serializedTransaction, serializedContextFreeData }: PushTransactionArgs, + readOnlyTrx = false, + returnFailureTraces = false, + ): Promise { + if (readOnlyTrx) { + return this.rpc.push_ro_transaction({ + signatures, + serializedTransaction, + serializedContextFreeData, + }, returnFailureTraces); + } return this.rpc.push_transaction({ signatures, serializedTransaction, @@ -472,12 +488,22 @@ export class Api { } public async pushCompressedSignedTransaction( - { signatures, serializedTransaction, serializedContextFreeData }: PushTransactionArgs - ): Promise { + { signatures, serializedTransaction, serializedContextFreeData }: PushTransactionArgs, + readOnlyTrx = false, + returnFailureTraces = false, + ): Promise { const compressedSerializedTransaction = this.deflateSerializedArray(serializedTransaction); const compressedSerializedContextFreeData = this.deflateSerializedArray(serializedContextFreeData || new Uint8Array(0)); + if (readOnlyTrx) { + return this.rpc.push_ro_transaction({ + signatures, + compression: 1, + serializedTransaction: compressedSerializedTransaction, + serializedContextFreeData: compressedSerializedContextFreeData + }, returnFailureTraces); + } return this.rpc.push_transaction({ signatures, compression: 1, diff --git a/src/tests/eosjs-api.test.ts b/src/tests/eosjs-api.test.ts index 9326ad6e1..220fe2da1 100644 --- a/src/tests/eosjs-api.test.ts +++ b/src/tests/eosjs-api.test.ts @@ -329,18 +329,18 @@ describe('eosjs-api', () => { context_free_actions: [] as any, resource_payer: { payer: 'payer', - max_net_bytes: '4096', - max_cpu_us: '250', - max_memory_bytes: '0' + max_net_bytes: 4096, + max_cpu_us: 250, + max_memory_bytes: 0 } }; const serialized = [[1, '0000000080ABBCA90010000000000000FA000000000000000000000000000000']]; const deserialized = { resource_payer: { payer: 'payer', - max_net_bytes: '4096', - max_cpu_us: '250', - max_memory_bytes: '0' + max_net_bytes: 4096, + max_cpu_us: 250, + max_memory_bytes: 0 } }; diff --git a/src/tests/node.js b/src/tests/node.js index 6f2cf7822..1ad1993d5 100644 --- a/src/tests/node.js +++ b/src/tests/node.js @@ -230,17 +230,15 @@ const readOnlyQuery = async () => { const readOnlyFailureTrace = async () => { return await api.transact({ actions: [{ - account: 'eosio.token', - name: 'transfer', + account: 'eosio', + name: 'setpriv', authorization: [{ - actor: 'alice', + actor: 'bob', permission: 'active', }], data: { - from: 'alice', - to: 'bob', - quantity: '2000000.0000 SYS', - memo: 'failureTrace', + account: 'bob', + is_priv: '1' }, }] }, { diff --git a/src/tests/node.test.ts b/src/tests/node.test.ts index 437db888b..4a371af3c 100644 --- a/src/tests/node.test.ts +++ b/src/tests/node.test.ts @@ -126,10 +126,10 @@ describe('Node JS environment', () => { try { await tests.readOnlyFailureTrace(); } catch (e) { - err = e.details; + err = e; } - expect(err.code).toEqual(3050003); - expect(err.stack[0].data.s).toEqual('overdrawn balance'); + expect(err.details.code).toEqual(3090004); + expect(err.details.stack[0].format).toEqual('missing authority of ${account}'); }); it('throws appropriate error message without configuration object or TAPOS in place', async () => { diff --git a/src/tests/web.html b/src/tests/web.html index 85cea41bf..7155ee4c3 100644 --- a/src/tests/web.html +++ b/src/tests/web.html @@ -613,7 +613,6 @@ try { await readOnlyFailureTrace(); } catch (err) { - console.log(err); if (err.details.code === 3050003 && err.details.stack[0].data.s === 'overdrawn balance') { resultsLabel.className = "success"; resultsLabel.innerText = SUCCESS; From d70c8d8f68e6615c98c8586ba83910ae517322d2 Mon Sep 17 00:00:00 2001 From: Bradley Hart Date: Fri, 2 Jul 2021 15:08:05 -0400 Subject: [PATCH 2/5] Adding compression to read only transaction test --- src/tests/node.js | 2 +- src/tests/web.html | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/tests/node.js b/src/tests/node.js index 1ad1993d5..a06b58f93 100644 --- a/src/tests/node.js +++ b/src/tests/node.js @@ -222,8 +222,8 @@ const readOnlyQuery = async () => { }, { blocksBehind: 3, expireSeconds: 30, + compression: true, readOnlyTrx: true, - returnFailureTraces: true, }); }; diff --git a/src/tests/web.html b/src/tests/web.html index 7155ee4c3..4d546d25b 100644 --- a/src/tests/web.html +++ b/src/tests/web.html @@ -544,6 +544,7 @@ }, { blocksBehind: 3, expireSeconds: 30, + compression: true, readOnlyTrx: true, }); } From 823917c6f9a038c725693b601f569dfa4736509d Mon Sep 17 00:00:00 2001 From: Bradley Hart Date: Fri, 2 Jul 2021 15:12:35 -0400 Subject: [PATCH 3/5] Also adding changes to the web test file --- src/tests/web.html | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/src/tests/web.html b/src/tests/web.html index 4d546d25b..90c116ab6 100644 --- a/src/tests/web.html +++ b/src/tests/web.html @@ -584,20 +584,18 @@ const readOnlyFailureTrace = async () => { return await api.transact({ - actions: [{ - account: 'eosio.token', - name: 'transfer', - authorization: [{ - actor: 'alice', - permission: 'active', - }], - data: { - from: 'alice', - to: 'bob', - quantity: '2000000.0000 SYS', - memo: 'failureTrace', - }, - }] + actions: [{ + account: 'eosio', + name: 'setpriv', + authorization: [{ + actor: 'bob', + permission: 'active', + }], + data: { + account: 'bob', + is_priv: '1' + }, + }] }, { blocksBehind: 3, expireSeconds: 30, @@ -614,7 +612,7 @@ try { await readOnlyFailureTrace(); } catch (err) { - if (err.details.code === 3050003 && err.details.stack[0].data.s === 'overdrawn balance') { + if (err.details.code === 3090004 && err.details.stack[0].format === 'missing authority of ${account}') { resultsLabel.className = "success"; resultsLabel.innerText = SUCCESS; return true; From 021fea595b7008f561543c050fcf4577333d9aa9 Mon Sep 17 00:00:00 2001 From: Bradley Hart Date: Tue, 6 Jul 2021 12:50:30 -0400 Subject: [PATCH 4/5] Moving expects to inside the catch statement --- src/tests/node.test.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/tests/node.test.ts b/src/tests/node.test.ts index 4a371af3c..e7f32b90f 100644 --- a/src/tests/node.test.ts +++ b/src/tests/node.test.ts @@ -122,14 +122,12 @@ describe('Node JS environment', () => { }); it('returns failure trace for failed transaction', async () => { - let err; try { await tests.readOnlyFailureTrace(); } catch (e) { - err = e; + expect(e.details.code).toEqual(3090004); + expect(e.details.stack[0].format).toEqual('missing authority of ${account}'); } - expect(err.details.code).toEqual(3090004); - expect(err.details.stack[0].format).toEqual('missing authority of ${account}'); }); it('throws appropriate error message without configuration object or TAPOS in place', async () => { From fb859624a842ca7544f558c7ab05a686d6712e05 Mon Sep 17 00:00:00 2001 From: "Block.one DevOps" Date: Tue, 6 Jul 2021 16:55:13 +0000 Subject: [PATCH 5/5] Updating package.json and yarn.lock --- package.json | 4 +- yarn.lock | 247 +++++++++++++++++++++++++++------------------------ 2 files changed, 132 insertions(+), 119 deletions(-) diff --git a/package.json b/package.json index ec17ff982..1b5ab859a 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "crypto-browserify": "^3.12.0", "cypress": "^7.6.0", "eosjs-ecc": "^4.0.7", - "eslint": "^7.29.0", + "eslint": "^7.30.0", "jest": "^26.6.3", "jest-extended": "^0.11.5", "jest-fetch-mock": "^3.0.3", @@ -52,7 +52,7 @@ "ts-jest": "^26.5.6", "ts-loader": "^9.2.3", "typescript": "^4.3.5", - "webpack": "^5.41.1", + "webpack": "^5.42.1", "webpack-cli": "^4.7.2" }, "jest": { diff --git a/yarn.lock b/yarn.lock index 4487cf499..6c5ae45b0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -402,6 +402,20 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" +"@humanwhocodes/config-array@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" + integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== + dependencies: + "@humanwhocodes/object-schema" "^1.2.0" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/object-schema@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf" + integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== + "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -728,7 +742,12 @@ "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*", "@types/estree@^0.0.48": +"@types/estree@*": + version "0.0.49" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.49.tgz#3facb98ebcd4114a4ecef74e0de2175b56fd4464" + integrity sha512-K1AFuMe8a+pXmfHTtnwBvqoEylNKVeaiKYkjmcEAdytMQVJ/i9Fu7sc13GxgXdO49gkE7Hy8SyJonUZUn+eVaw== + +"@types/estree@^0.0.48": version "0.0.48" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.48.tgz#18dc8091b285df90db2f25aa7d906cfc394b7f74" integrity sha512-LfZwXoGUDo0C3me81HXgkBg5CTQYb6xzEl+fNmbO4JdRiSKQ8A0GD1OBBvKAIsbCUgoyAty7m99GqqMQe784ew== @@ -783,7 +802,7 @@ jest-diff "^26.0.0" pretty-format "^26.0.0" -"@types/json-schema@*", "@types/json-schema@^7.0.6", "@types/json-schema@^7.0.7": +"@types/json-schema@*", "@types/json-schema@^7.0.7": version "7.0.7" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== @@ -802,9 +821,9 @@ form-data "^3.0.0" "@types/node@*": - version "15.12.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.5.tgz#9a78318a45d75c9523d2396131bd3cca54b2d185" - integrity sha512-se3yX7UHv5Bscf8f1ERKvQOD6sTyycH3hdaoozvaLxgUiY5lIGEeH37AD0G0Qi9kPqihPn0HOfd2yaIEN9VwEg== + version "16.0.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.0.0.tgz#067a6c49dc7a5c2412a505628e26902ae967bf6f" + integrity sha512-TmCW5HoZ2o2/z2EYi109jLqIaPIi9y/lc2LmDCWzuCi35bcaQ+OtUh6nwBiFK7SOu25FAU5+YKdqFZUwtqGSdg== "@types/node@^14.14.31", "@types/node@^14.17.4": version "14.17.4" @@ -847,35 +866,35 @@ integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== "@types/stack-utils@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff" - integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw== + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" + integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== "@types/tapable@^1": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.7.tgz#545158342f949e8fd3bfd813224971ecddc3fac4" - integrity sha512-0VBprVqfgFD7Ehb2vd8Lh9TG3jP98gvr8rgehQqzztZNI7o8zS8Ad4jyZneKELphpuE212D8J70LnSNQSyO6bQ== + version "1.0.8" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.8.tgz#b94a4391c85666c7b73299fd3ad79d4faa435310" + integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ== "@types/uglify-js@*": - version "3.13.0" - resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.13.0.tgz#1cad8df1fb0b143c5aba08de5712ea9d1ff71124" - integrity sha512-EGkrJD5Uy+Pg0NUR8uA4bJ5WMfljyad0G+784vLCNUkD+QwOJXUbBYExXfVGf7YtyzdQp3L/XMYcliB987kL5Q== + version "3.13.1" + resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.13.1.tgz#5e889e9e81e94245c75b6450600e1c5ea2878aea" + integrity sha512-O3MmRAk6ZuAKa9CHgg0Pr0+lUOqoMLpc9AS4R8ano2auvsg7IE8syF3Xh/NPr26TWklxYcqoEEFdzLLs1fV9PQ== dependencies: source-map "^0.6.1" "@types/webpack-sources@*": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-2.1.0.tgz#8882b0bd62d1e0ce62f183d0d01b72e6e82e8c10" - integrity sha512-LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg== + version "2.1.1" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-2.1.1.tgz#6af17e3a3ded71eec2b98008d7c12f498a0a4506" + integrity sha512-MjM1R6iuw8XaVbtkCBz0N349cyqBjJHCbQiOeppe3VBeFvxqs74RKHAVt9LkxTnUWc7YLZOEsUfPUnmK6SBPKQ== dependencies: "@types/node" "*" "@types/source-list-map" "*" source-map "^0.7.3" "@types/webpack@^4.4.31": - version "4.41.29" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.29.tgz#2e66c1de8223c440366469415c50a47d97625773" - integrity sha512-6pLaORaVNZxiB3FSHbyBiWM7QdazAWda1zvAq4SbZObZqHSDbWLi62iFdblVea6SK9eyBIVp5yHhKt/yNQdR7Q== + version "4.41.30" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.30.tgz#fd3db6d0d41e145a8eeeafcd3c4a7ccde9068ddc" + integrity sha512-GUHyY+pfuQ6haAfzu4S14F+R5iGRwN6b2FRNJY7U0NilmFAqbsOfK6j1HwuLBAqwRIT+pVdNDJGJ6e8rpp0KHA== dependencies: "@types/node" "*" "@types/tapable" "^1" @@ -885,98 +904,98 @@ source-map "^0.6.0" "@types/yargs-parser@*": - version "20.2.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" - integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== + version "20.2.1" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" + integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== "@types/yargs@^13.0.0": - version "13.0.11" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.11.tgz#def2f0c93e4bdf2c61d7e34899b17e34be28d3b1" - integrity sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ== + version "13.0.12" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.12.tgz#d895a88c703b78af0465a9de88aa92c61430b092" + integrity sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ== dependencies: "@types/yargs-parser" "*" "@types/yargs@^15.0.0": - version "15.0.13" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.13.tgz#34f7fec8b389d7f3c1fd08026a5763e072d3c6dc" - integrity sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ== + version "15.0.14" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.14.tgz#26d821ddb89e70492160b66d10a0eb6df8f6fb06" + integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ== dependencies: "@types/yargs-parser" "*" "@types/yauzl@^2.9.1": - version "2.9.1" - resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.1.tgz#d10f69f9f522eef3cf98e30afb684a1e1ec923af" - integrity sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA== + version "2.9.2" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.2.tgz#c48e5d56aff1444409e39fa164b0b4d4552a7b7a" + integrity sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA== dependencies: "@types/node" "*" "@typescript-eslint/eslint-plugin@^4.23.0": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.1.tgz#c045e440196ae45464e08e20c38aff5c3a825947" - integrity sha512-9yfcNpDaNGQ6/LQOX/KhUFTR1sCKH+PBr234k6hI9XJ0VP5UqGxap0AnNwBnWFk1MNyWBylJH9ZkzBXC+5akZQ== + version "4.28.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.2.tgz#7a8320f00141666813d0ae43b49ee8244f7cf92a" + integrity sha512-PGqpLLzHSxq956rzNGasO3GsAPf2lY9lDUBXhS++SKonglUmJypaUtcKzRtUte8CV7nruwnDxtLUKpVxs0wQBw== dependencies: - "@typescript-eslint/experimental-utils" "4.28.1" - "@typescript-eslint/scope-manager" "4.28.1" + "@typescript-eslint/experimental-utils" "4.28.2" + "@typescript-eslint/scope-manager" "4.28.2" debug "^4.3.1" functional-red-black-tree "^1.0.1" regexpp "^3.1.0" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/experimental-utils@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.1.tgz#3869489dcca3c18523c46018b8996e15948dbadc" - integrity sha512-n8/ggadrZ+uyrfrSEchx3jgODdmcx7MzVM2sI3cTpI/YlfSm0+9HEUaWw3aQn2urL2KYlWYMDgn45iLfjDYB+Q== +"@typescript-eslint/experimental-utils@4.28.2": + version "4.28.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.2.tgz#4ebdec06a10888e9326e1d51d81ad52a361bd0b0" + integrity sha512-MwHPsL6qo98RC55IoWWP8/opTykjTp4JzfPu1VfO2Z0MshNP0UZ1GEV5rYSSnZSUI8VD7iHvtIPVGW5Nfh7klQ== dependencies: "@types/json-schema" "^7.0.7" - "@typescript-eslint/scope-manager" "4.28.1" - "@typescript-eslint/types" "4.28.1" - "@typescript-eslint/typescript-estree" "4.28.1" + "@typescript-eslint/scope-manager" "4.28.2" + "@typescript-eslint/types" "4.28.2" + "@typescript-eslint/typescript-estree" "4.28.2" eslint-scope "^5.1.1" eslint-utils "^3.0.0" "@typescript-eslint/parser@^4.23.0": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.28.1.tgz#5181b81658414f47291452c15bf6cd44a32f85bd" - integrity sha512-UjrMsgnhQIIK82hXGaD+MCN8IfORS1CbMdu7VlZbYa8LCZtbZjJA26De4IPQB7XYZbL8gJ99KWNj0l6WD0guJg== + version "4.28.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.28.2.tgz#6aff11bf4b91eb67ca7517962eede951e9e2a15d" + integrity sha512-Q0gSCN51eikAgFGY+gnd5p9bhhCUAl0ERMiDKrTzpSoMYRubdB8MJrTTR/BBii8z+iFwz8oihxd0RAdP4l8w8w== dependencies: - "@typescript-eslint/scope-manager" "4.28.1" - "@typescript-eslint/types" "4.28.1" - "@typescript-eslint/typescript-estree" "4.28.1" + "@typescript-eslint/scope-manager" "4.28.2" + "@typescript-eslint/types" "4.28.2" + "@typescript-eslint/typescript-estree" "4.28.2" debug "^4.3.1" -"@typescript-eslint/scope-manager@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.28.1.tgz#fd3c20627cdc12933f6d98b386940d8d0ce8a991" - integrity sha512-o95bvGKfss6705x7jFGDyS7trAORTy57lwJ+VsYwil/lOUxKQ9tA7Suuq+ciMhJc/1qPwB3XE2DKh9wubW8YYA== +"@typescript-eslint/scope-manager@4.28.2": + version "4.28.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.28.2.tgz#451dce90303a3ce283750111495d34c9c204e510" + integrity sha512-MqbypNjIkJFEFuOwPWNDjq0nqXAKZvDNNs9yNseoGBB1wYfz1G0WHC2AVOy4XD7di3KCcW3+nhZyN6zruqmp2A== dependencies: - "@typescript-eslint/types" "4.28.1" - "@typescript-eslint/visitor-keys" "4.28.1" + "@typescript-eslint/types" "4.28.2" + "@typescript-eslint/visitor-keys" "4.28.2" -"@typescript-eslint/types@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.28.1.tgz#d0f2ecbef3684634db357b9bbfc97b94b828f83f" - integrity sha512-4z+knEihcyX7blAGi7O3Fm3O6YRCP+r56NJFMNGsmtdw+NCdpG5SgNz427LS9nQkRVTswZLhz484hakQwB8RRg== +"@typescript-eslint/types@4.28.2": + version "4.28.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.28.2.tgz#e6b9e234e0e9a66c4d25bab881661e91478223b5" + integrity sha512-Gr15fuQVd93uD9zzxbApz3wf7ua3yk4ZujABZlZhaxxKY8ojo448u7XTm/+ETpy0V0dlMtj6t4VdDvdc0JmUhA== -"@typescript-eslint/typescript-estree@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.1.tgz#af882ae41740d1f268e38b4d0fad21e7e8d86a81" - integrity sha512-GhKxmC4sHXxHGJv8e8egAZeTZ6HI4mLU6S7FUzvFOtsk7ZIDN1ksA9r9DyOgNqowA9yAtZXV0Uiap61bIO81FQ== +"@typescript-eslint/typescript-estree@4.28.2": + version "4.28.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.2.tgz#680129b2a285289a15e7c6108c84739adf3a798c" + integrity sha512-86lLstLvK6QjNZjMoYUBMMsULFw0hPHJlk1fzhAVoNjDBuPVxiwvGuPQq3fsBMCxuDJwmX87tM/AXoadhHRljg== dependencies: - "@typescript-eslint/types" "4.28.1" - "@typescript-eslint/visitor-keys" "4.28.1" + "@typescript-eslint/types" "4.28.2" + "@typescript-eslint/visitor-keys" "4.28.2" debug "^4.3.1" globby "^11.0.3" is-glob "^4.0.1" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.1.tgz#162a515ee255f18a6068edc26df793cdc1ec9157" - integrity sha512-K4HMrdFqr9PFquPu178SaSb92CaWe2yErXyPumc8cYWxFmhgJsNY9eSePmO05j0JhBvf2Cdhptd6E6Yv9HVHcg== +"@typescript-eslint/visitor-keys@4.28.2": + version "4.28.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.2.tgz#bf56a400857bb68b59b311e6d0a5fbef5c3b5130" + integrity sha512-aT2B4PLyyRDUVUafXzpZFoc0C9t0za4BJAKP5sgWIhG+jHECQZUEjuQSCIwZdiJJ4w4cgu5r3Kh20SOdtEBl0w== dependencies: - "@typescript-eslint/types" "4.28.1" + "@typescript-eslint/types" "4.28.2" eslint-visitor-keys "^2.0.0" "@webassemblyjs/ast@1.11.0": @@ -1155,7 +1174,7 @@ acorn@^7.1.1, acorn@^7.4.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.2.1, acorn@^8.2.4: +acorn@^8.2.4, acorn@^8.4.1: version "8.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c" integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== @@ -1191,9 +1210,9 @@ ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: uri-js "^4.2.2" ajv@^8.0.1: - version "8.6.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.0.tgz#60cc45d9c46a477d80d92c48076d972c342e5720" - integrity sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ== + version "8.6.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.1.tgz#ae65764bf1edde8cd861281cda5057852364a295" + integrity sha512-42VLtQUOLefAvKFAQIxIZDaThq6om/PrfP0CYk3/vn+y4BMNkKnbli8ON2QCiHov4KkzOSJ/xSoBJdayiiYvVQ== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -1695,9 +1714,9 @@ camelcase@^6.0.0: integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== caniuse-lite@^1.0.30001219: - version "1.0.30001241" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001241.tgz#cd3fae47eb3d7691692b406568d7a3e5b23c7598" - integrity sha512-1uoSZ1Pq1VpH0WerIMqwptXHNNGfdl7d1cJUFs80CwQ/lVzdhTvsFZCeNFslze7AjsQnb4C85tzclPa1VShbeQ== + version "1.0.30001242" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001242.tgz#04201627abcd60dc89211f22cbe2347306cda46b" + integrity sha512-KvNuZ/duufelMB3w2xtf9gEWCSxJwUgoxOx5b6ScLXC4kPc9xsczUVCPrQU26j5kOsHM4pSUL54tAZt5THQKug== capture-exit@^2.0.0: version "2.0.0" @@ -2121,14 +2140,14 @@ data-urls@^2.0.0: whatwg-url "^8.0.0" dayjs@^1.10.4: - version "1.10.5" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.5.tgz#5600df4548fc2453b3f163ebb2abbe965ccfb986" - integrity sha512-BUFis41ikLz+65iH6LHQCDm4YPMj5r1YFLdupPIyM4SGcXMmtiLQ7U37i+hGS8urIuqe7I/ou3IS1jVc4nbN4g== + version "1.10.6" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.6.tgz#288b2aa82f2d8418a6c9d4df5898c0737ad02a63" + integrity sha512-AztC/IOW4L1Q41A86phW5Thhcrco3xuAA+YX/BLpLWWjRcTj5TOt/QImBLmCKlrF7u7k47arTnOyL6GnbG8Hvw== -debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== dependencies: ms "2.1.2" @@ -2146,13 +2165,6 @@ debug@^3.1.0: dependencies: ms "^2.1.1" -debug@^4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== - dependencies: - ms "2.1.2" - decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -2287,9 +2299,9 @@ ecurve@1.0.5: bigi "^1.1.0" electron-to-chromium@^1.3.723: - version "1.3.763" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.763.tgz#93f6f02506d099941f557b9db9ba50b30215bf15" - integrity sha512-UyvEPae0wvzsyNJhVfGeFSOlUkHEze8xSIiExO5tZQ8QTr7obFiJWGk3U4e7afFOJMQJDszqU/3Pk5jtKiaSEg== + version "1.3.768" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.768.tgz#bbe47394f0073c947168589b7d19388518a7a9a9" + integrity sha512-I4UMZHhVSK2pwt8jOIxTi3GIuc41NkddtKT/hpuxp9GO5UWJgDKTBa4TACppbVAuKtKbMK6BhQZvT5tFF1bcNA== elliptic@6.5.4, elliptic@^6.5.3: version "6.5.4" @@ -2452,13 +2464,14 @@ eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint@^7.26.0, eslint@^7.29.0: - version "7.29.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.29.0.tgz#ee2a7648f2e729485e4d0bd6383ec1deabc8b3c0" - integrity sha512-82G/JToB9qIy/ArBzIWG9xvvwL3R86AlCjtGw+A29OMZDqhTybz/MByORSukGxeI+YPCR4coYyITKk8BFH9nDA== +eslint@^7.26.0, eslint@^7.30.0: + version "7.30.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.30.0.tgz#6d34ab51aaa56112fd97166226c9a97f505474f8" + integrity sha512-VLqz80i3as3NdloY44BQSJpFw534L9Oh+6zJOUaViV4JPd+DaHwutqP7tcpkW3YiXbK6s05RZl7yl7cQn+lijg== dependencies: "@babel/code-frame" "7.12.11" "@eslint/eslintrc" "^0.4.2" + "@humanwhocodes/config-array" "^0.5.0" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -2742,9 +2755,9 @@ fastest-levenshtein@^1.0.12: integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== fastq@^1.6.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.0.tgz#bb9fb955a07130a918eb63c1f5161cc32a5d0858" - integrity sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g== + version "1.11.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.1.tgz#5d8175aae17db61947f8b162cfc7f63264d22807" + integrity sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw== dependencies: reusify "^1.0.4" @@ -2810,9 +2823,9 @@ flat-cache@^3.0.4: rimraf "^3.0.2" flatted@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" - integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== + version "3.2.0" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.0.tgz#da07fb8808050aba6fdeac2294542e5043583f05" + integrity sha512-XprP7lDrVT+kE2c2YlfiV+IfS9zxukiIOvNamPNsImNhXadSsQEbosItdL9bUQlCZXR13SvPk20BjWSWLA7m4A== for-in@^1.0.2: version "1.0.2" @@ -5113,11 +5126,11 @@ saxes@^5.0.1: xmlchars "^2.2.0" schema-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" - integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== + version "3.1.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.0.tgz#95986eb604f66daadeed56e379bfe7a7f963cdb9" + integrity sha512-tTEaeYkyIhEZ9uWgAjDerWov3T9MgX8dhhy2r0IGeeX4W8ngtGl1++dUve/RUqzuaASSh7shwCDJjEzthxki8w== dependencies: - "@types/json-schema" "^7.0.6" + "@types/json-schema" "^7.0.7" ajv "^6.12.5" ajv-keywords "^3.5.2" @@ -5903,17 +5916,17 @@ webpack-sources@^2.3.0: source-list-map "^2.0.1" source-map "^0.6.1" -webpack@^5.41.1: - version "5.41.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.41.1.tgz#23fa1d82c95c222d3fc3163806b9a833fe52b253" - integrity sha512-AJZIIsqJ/MVTmegEq9Tlw5mk5EHdGiJbDdz9qP15vmUH+oxI1FdWcL0E9EO8K/zKaRPWqEs7G/OPxq1P61u5Ug== +webpack@^5.42.1: + version "5.42.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.42.1.tgz#3347d0d93e79fe70bf62e51981024c80b9c8c3df" + integrity sha512-msikozzXrG2Hdx+dElq0fyNvxPFsaM2dKLc/l+xkMmhO/1qwVJ9K9gY+fi/49MYWcpSP7alnK5Q78Evrd1LiqQ== dependencies: "@types/eslint-scope" "^3.7.0" "@types/estree" "^0.0.48" "@webassemblyjs/ast" "1.11.0" "@webassemblyjs/wasm-edit" "1.11.0" "@webassemblyjs/wasm-parser" "1.11.0" - acorn "^8.2.1" + acorn "^8.4.1" browserslist "^4.14.5" chrome-trace-event "^1.0.2" enhanced-resolve "^5.8.0" @@ -6016,9 +6029,9 @@ write-file-atomic@^3.0.0: typedarray-to-buffer "^3.1.5" ws@^7.4.5: - version "7.5.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.1.tgz#44fc000d87edb1d9c53e51fbc69a0ac1f6871d66" - integrity sha512-2c6faOUH/nhoQN6abwMloF7Iyl0ZS2E9HGtsiLrWn0zOOMWlhtDmdf/uihDt6jnuCxgtwGBNy6Onsoy2s2O2Ow== + version "7.5.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.2.tgz#09cc8fea3bec1bc5ed44ef51b42f945be36900f6" + integrity sha512-lkF7AWRicoB9mAgjeKbGqVUekLnSNO4VjKVnuPHpQeOxZOErX6BPXwJk70nFslRCEEA8EVW7ZjKwXaP9N+1sKQ== xml-name-validator@^3.0.0: version "3.0.0"