diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bededc20a..30350a1cb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -51,6 +51,9 @@ jobs: - name: Test Types run: | yarn test-types + - name: Test Nested Containers + run: | + yarn test-nested-containers - name: Build run: | yarn build-web diff --git a/.github/workflows/publish-edge.yml b/.github/workflows/publish-edge.yml index 78cf39d63..cd526ea1c 100644 --- a/.github/workflows/publish-edge.yml +++ b/.github/workflows/publish-edge.yml @@ -54,6 +54,9 @@ jobs: - name: Test Types run: | yarn test-types + - name: Test Nested Containers + run: | + yarn test-nested-containers - name: Build run: | yarn build-web diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index 70dc13b22..8c8c58c0d 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -54,6 +54,9 @@ jobs: - name: Test Types run: | yarn test-types + - name: Test Nested Containers + run: | + yarn test-nested-containers - name: Build run: | yarn build-web @@ -107,6 +110,9 @@ jobs: - name: Test Types run: | yarn test-types + - name: Test Nested Containers + run: | + yarn test-nested-containers - name: Build run: | yarn build-web diff --git a/package.json b/package.json index 43162ec7c..4b07344a4 100644 --- a/package.json +++ b/package.json @@ -11,8 +11,9 @@ "test": "jest src/tests/*eosjs* --coverage --coverageDirectory './coverage/test'", "test-node": "jest src/tests/*node*", "test-node-coverage": "jest src/tests/*node* --coverage --coverageDirectory './coverage/test-node'", + "test-nested-containers": "jest src/tests/nested-containers.test.ts --coverage --coverageDirectory './coverage/nested-containers'", "test-types": "jest src/tests/type-checks.test.ts --coverage --coverageDirectory './coverage/test-types'", - "test-all": "yarn test && yarn test-node && yarn test-types && yarn cypress", + "test-all": "yarn test && yarn test-node && yarn test-types && yarn test-nested-containers && yarn cypress", "build": "rimraf dist && tsc -p ./tsconfig.json", "build-web": "webpack --config webpack.prod.js && webpack --config webpack.debug.js", "build-production": "yarn build && yarn build-web && yarn test-all", @@ -39,9 +40,9 @@ "@cypress/skip-test": "^2.6.1", "@types/elliptic": "^6.4.14", "@types/jest": "^26.0.24", - "@types/node": "^14.18.0", + "@types/node": "^14.18.5", "@types/node-fetch": "^2.5.12", - "@types/pako": "^1.0.2", + "@types/pako": "^1.0.3", "@types/ripemd160": "^2.0.0", "atob": "^2.1.2", "btoa": "^1.2.1", diff --git a/src/eosjs-serialize.ts b/src/eosjs-serialize.ts index 5b82edd0e..9d4380ea7 100644 --- a/src/eosjs-serialize.ts +++ b/src/eosjs-serialize.ts @@ -699,6 +699,12 @@ function serializeStruct( if (this.base) { this.base.serialize(buffer, data, state, allowExtensions); } + if (Array.isArray(data)) { // Tuple + this.fields.forEach((field: Field, index: number) => { + field.type.serialize(buffer, data[index], state, allowExtensions); + }); + return; + } for (const field of this.fields) { if (field.name in data) { if (state.skippedBinaryExtension) { diff --git a/src/tests/nested-containers.test.ts b/src/tests/nested-containers.test.ts new file mode 100644 index 000000000..0fab6d15b --- /dev/null +++ b/src/tests/nested-containers.test.ts @@ -0,0 +1,654 @@ +import fetch from 'node-fetch'; +const { TextEncoder, TextDecoder } = require('util'); + +// Code for gathering coverage for src/ not dist/, otherwise tests should test the built files in dist/ +let eosjs; +let eosjs_jssig; +if (process.env.COVERAGE_TESTING === 'true') { + eosjs = require('../'); + eosjs_jssig = require('../eosjs-jssig'); +} else { + eosjs = require('../../dist'); + eosjs_jssig = require('../../dist/eosjs-jssig'); +} + +const { JsonRpc, Api } = eosjs; +const { JsSignatureProvider } = eosjs_jssig; + +const privateKey = '5JuH9fCXmU3xbj8nRmhPZaVrxxXrdPaRmZLW1cznNTmTQR2Kg5Z'; + +const rpc = new JsonRpc('http://localhost:8888', { fetch }); +const signatureProvider = new JsSignatureProvider([privateKey]); +const api = new Api({ rpc, signatureProvider, textDecoder: new TextDecoder(), textEncoder: new TextEncoder() }); + +describe('eosjs-nested-container', () => { + + it('should test Multi Index nested containers', async () => { + jest.setTimeout(30000); + + // Tests from https://github.com/EOSIO/eos/blob/develop/tests/nested_container_multi_index_test.py + // Contract from https://github.com/EOSIO/eos/tree/develop/unittests/test-contracts/nested_container_multi_index + await api.getAbi('nestcontnmi'); + + // Test action for set< set< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setstst('alice', [[10, 10], [3], [400, 500, 600]]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for set< vector< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setstv('alice', [[16, 26], [36], [36], [46, 506, 606]]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for set< optional< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setsto('alice', [null, null, 500]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for set< map< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setstm('alice', [[{'key':30,'value':300},{'key':30,'value':300}],[{'key':60,'value':600},{'key':60,'value':600}]]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for set< pair< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setstp('alice', [{'first': 69, 'second': 129}, {'first': 69, 'second': 129}]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for set< tuple< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setstt('alice', [[1,2],[36,46], [56,66]]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for vector< set< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setvst('alice', [[10, 10], [3], [400, 500, 600]]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for vector< vector< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setvv('alice', [[16, 26], [36], [36], [46, 506, 606]]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for vector< optional< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setvo('alice',[null, null, 500]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for vector< map< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setvm('alice', [[{'key': 30, 'value': 300}, {'key': 30, 'value': 300}], [{'key': 60, 'value': 600}, {'key': 60, 'value': 600}]]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for vector< pair< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setvp('alice', [{'first': 69, 'second': 129}, {'first': 69, 'second': 129}]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for vector< tuple< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setvt('alice', [[10,20],[30,40], [50,60]]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for optional< set< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setost('alice', [10, 10, 3]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + await api.transact({ + actions: [ api.with('nestcontnmi').as('bob').setost('bob', null) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for optional< vector< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setov('alice', [46, 506, 606]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + await api.transact({ + actions: [ api.with('nestcontnmi').as('bob').setov('bob', null) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for optional< optional< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setoo('alice', 500) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + await api.transact({ + actions: [ api.with('nestcontnmi').as('bob').setoo('bob', null) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for optional< map< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setom('alice', [{'key': 10, 'value': 1000}, {'key': 11,'value': 1001}]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + await api.transact({ + actions: [ api.with('nestcontnmi').as('bob').setom('bob', null) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for optional< pair< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setop('alice', {'first': 60, 'second': 61}) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + await api.transact({ + actions: [ api.with('nestcontnmi').as('bob').setop('bob', null) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for optional< tuple< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setot('alice', [1001,2001]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + await api.transact({ + actions: [ api.with('nestcontnmi').as('bob').setot('bob', null) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for map< set< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setmst('alice', [{'key': 1,'value': [10, 10, 12, 16]}, {'key': 2, 'value': [200, 300]} ]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for map< vector< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setmv('alice', [{'key': 1, 'value': [10, 10, 12, 16]}, {'key': 2, 'value': [200, 300]} ]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for map< optional< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setmo('alice', [{'key': 10, 'value': 1000}, {'key': 11, 'value': null}]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for map< map< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setmm('alice', [{'key': 10, 'value': [{'key': 200, 'value': 2000}, {'key': 201, 'value': 2001}] }, {'key': 11, 'value': [{'key': 300, 'value': 3000}, {'key': 301, 'value': 3001}] } ]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for map< pair< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setmp('alice', [{'key': 36, 'value': {'first': 300, 'second': 301}}, {'key': 37, 'value': {'first': 600, 'second': 601}} ]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for map< tuple< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setmt('alice', [{'key':1,'value':[10,11]}, {'key':2,'value':[200,300]} ]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for pair< set< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setpst('alice', {'first': 20, 'second': [200, 200, 202]}) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for pair< vector< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setpv('alice', {'first': 10, 'second': [100, 100, 102]}) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for pair< optional< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setpo('alice', {'first': 70, 'second': 71}) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + await api.transact({ + actions: [ api.with('nestcontnmi').as('bob').setpo('bob', {'first': 70, 'second': null}) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for pair< map< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setpm('alice', {'first': 6, 'second': [{'key': 20, 'value': 300}, {'key': 21,'value': 301}] }) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for pair< pair< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setpp('alice', {'first': 30, 'second': {'first': 301, 'second': 302} }) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for pair< tuple< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setpt('alice', {'first':10, 'second':[100,101]}) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for tuple< uint16_t, set< uint16_t >, set< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').settst('alice', [10,[21,31], [41,51,61]]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for tuple< uint16_t, vector< uint16_t >, vector< uint16_t > + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').settv('alice', [16,[26,36], [46,506,606]]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for tuple< optional< uint16_t >, optional< uint16_t >, optional< uint16_t > , optional< uint16_t >, optional< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setto('alice', [100, null, 200, null, 300]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + await api.transact({ + actions: [ api.with('nestcontnmi').as('bob').setto('bob', [null, null, 10, null, 20]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for tuple< map< uint16_t, uint16_t >, map< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').settm('alice', [126, [{'key':10,'value':100},{'key':11,'value':101}], [{'key':80,'value':800},{'key':81,'value':9009}] ]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for tuple< uint16_t, pair< uint16_t, uint16_t >, pair< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').settp('alice', [127, {'first':18, 'second':28}, {'first':19, 'second':29}]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for tuple< tuple< uint16_t, uint16_t >, tuple< uint16_t, uint16_t >, tuple< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').settt('alice', [[1,2],[30,40], [50,60]]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for vector> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setvos('alice', [{'_count': 18, '_strID': 'dumstr'}, null, {'_count': 19, '_strID': 'dumstr'}]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for pair>> + await api.transact({ + actions: [ api.with('nestcontnmi').as('alice').setpvo('alice',{'first': 183, 'second':[100, null, 200]}) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + const transaction = await rpc.get_table_rows({ + code: 'nestcontnmi', + scope: 'nestcontnmi', + table: 'people2', + json: true + }); + + expect(transaction.rows[0].stst).toEqual([[3], [10], [400, 500, 600]]); + + expect(transaction.rows[0].stv).toEqual([[16, 26], [36], [46, 506, 606]]); + + expect(transaction.rows[0].sto).toEqual([null, 500]); + + expect(transaction.rows[0].stm).toEqual([[{'key': 30, 'value': 300}], [{'key': 60, 'value': 600}]]); + + expect(transaction.rows[0].stp).toEqual([{'first': 69, 'second': 129}]); + + expect(transaction.rows[0].stt).toEqual([{'field_0': 1, 'field_1': 2}, {'field_0': 36, 'field_1': 46}, {'field_0': 56, 'field_1': 66}]); + + expect(transaction.rows[0].vst).toEqual([[10], [3], [400, 500, 600]]); + + expect(transaction.rows[0].vv).toEqual([[16, 26], [36], [36], [46, 506, 606]]); + + expect(transaction.rows[0].vo).toEqual([null, null, 500]); + + expect(transaction.rows[0].vm).toEqual([[{'key': 30, 'value': 300}], [{'key': 60, 'value': 600}]]); + + expect(transaction.rows[0].vp).toEqual([{'first': 69, 'second': 129}, {'first': 69, 'second': 129}]); + + expect(transaction.rows[0].vt).toEqual([{'field_0': 10, 'field_1': 20}, {'field_0': 30, 'field_1': 40}, {'field_0': 50, 'field_1': 60}]); + + expect(transaction.rows[0].ost).toEqual([3, 10]); + expect(transaction.rows[1].ost).toEqual(null); + + expect(transaction.rows[0].ov).toEqual([46, 506, 606]); + expect(transaction.rows[1].ov).toEqual(null); + + expect(transaction.rows[0].oo).toEqual(500); + expect(transaction.rows[1].oo).toEqual(null); + + expect(transaction.rows[0].om).toEqual([{'key': 10, 'value': 1000}, {'key': 11, 'value': 1001}]); + expect(transaction.rows[1].om).toEqual(null); + + expect(transaction.rows[0].op).toEqual({'first': 60, 'second': 61}); + expect(transaction.rows[1].op).toEqual(null); + + expect(transaction.rows[0].ot).toEqual({'field_0': 1001, 'field_1': 2001}); + expect(transaction.rows[1].ot).toEqual(null); + + expect(transaction.rows[0].mst).toEqual([{'key': 1, 'value': [10, 12, 16]}, {'key': 2, 'value': [200, 300]}]); + + expect(transaction.rows[0].mv).toEqual([{'key': 1, 'value': [10, 10, 12, 16]}, {'key': 2, 'value': [200, 300]}]); + + expect(transaction.rows[0].mo).toEqual([{'key': 10, 'value': 1000}, {'key': 11, 'value': null}]); + + expect(transaction.rows[0].mm).toEqual([{'key': 10, 'value': [{'key': 200, 'value': 2000}, {'key': 201, 'value': 2001}]}, {'key': 11, 'value': [{'key': 300, 'value': 3000}, {'key': 301, 'value': 3001}]}]); + + expect(transaction.rows[0].mp).toEqual([{'key': 36, 'value': {'first': 300, 'second': 301}}, {'key': 37, 'value': {'first': 600, 'second': 601}}]); + + expect(transaction.rows[0].mt).toEqual([{'key': 1, 'value': {'field_0': 10, 'field_1': 11}}, {'key': 2, 'value': {'field_0': 200, 'field_1': 300}}]); + + expect(transaction.rows[0].pst).toEqual({'first': 20, 'second': [200, 202]}); + + expect(transaction.rows[0].pv).toEqual({'first': 10, 'second': [100, 100, 102]}); + + expect(transaction.rows[0].po).toEqual({'first': 70, 'second': 71}); + expect(transaction.rows[1].po).toEqual({'first': 70, 'second': null}); + + expect(transaction.rows[0].pm).toEqual({'first': 6, 'second': [{'key': 20, 'value': 300}, {'key': 21, 'value': 301}]}); + + expect(transaction.rows[0].pp).toEqual({'first': 30, 'second': {'first': 301, 'second': 302}}); + + expect(transaction.rows[0].pt).toEqual({'first': 10, 'second': {'field_0': 100, 'field_1': 101}}); + + expect(transaction.rows[0].tst).toEqual({'field_0': 10, 'field_1': [21, 31], 'field_2': [41, 51, 61]}); + + expect(transaction.rows[0].tv).toEqual({'field_0': 16, 'field_1': [26, 36], 'field_2': [46, 506, 606]}); + + expect(transaction.rows[0].to).toEqual({'field_0': 100, 'field_1': null, 'field_2': 200, 'field_3': null, 'field_4': 300}); + expect(transaction.rows[1].to).toEqual({'field_0': null, 'field_1': null, 'field_2': 10, 'field_3': null, 'field_4': 20}); + + expect(transaction.rows[0].tm).toEqual({'field_0': 126, 'field_1': [{'key': 10, 'value': 100}, {'key': 11, 'value': 101}], 'field_2': [{'key': 80, 'value': 800}, {'key': 81, 'value': 9009}]}); + + expect(transaction.rows[0].tp).toEqual({'field_0': 127, 'field_1': {'first': 18, 'second': 28}, 'field_2': {'first': 19, 'second': 29}}); + + expect(transaction.rows[0].tt).toEqual({'field_0': {'field_0': 1, 'field_1': 2}, 'field_1': {'field_0': 30, 'field_1': 40}, 'field_2': {'field_0': 50, 'field_1': 60}}); + + expect(transaction.rows[0].vos).toEqual([{'_count': 18, '_strID': 'dumstr'}, null, {'_count': 19, '_strID': 'dumstr'}]); + + expect(transaction.rows[0].pvo).toEqual({'first': 183, 'second': [100, null, 200]}); + }); + + it('should test Key-Value nested containers', async () => { + jest.setTimeout(30000); + + // Tests from https://github.com/EOSIO/eos/blob/develop/tests/nested_container_kv_test.py + // Contract from https://github.com/EOSIO/eos/tree/develop/unittests/test-contracts/nested_container_kv + await api.getAbi('nestcontn2kv'); + + // Test action for set< set< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setstst(1, [[10, 10], [3], [400, 500, 600]]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for set< vector< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setstv(1, [[16, 26], [36], [36], [46, 506, 606]]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for set< optional< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setsto(1, [null, null, 500]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for set< map< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setstm(1, [[{'key':30,'value':300},{'key':30,'value':300}],[{'key':60,'value':600},{'key':60,'value':600}]]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for set< pair< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setstp(1, [{'first': 69, 'second': 129}, {'first': 69, 'second': 129}]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for set< tuple< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setstt(1, [[1,2],[36,46], [56,66]]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for vector< set< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setvst(1, [[10, 10], [3], [400, 500, 600]]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for vector< vector< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setvv(1, [[16, 26], [36], [36], [46, 506, 606]]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for vector< optional< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setvo(1, [null, null, 500]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for vector< map< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setvm(1, [[{'key': 30, 'value': 300}, {'key': 30, 'value': 300}], [{'key': 60, 'value': 600}, {'key': 60, 'value': 600}]]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for vector< pair< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setvp(1, [{'first': 69, 'second': 129}, {'first': 69, 'second': 129}]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for vector< tuple< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setvt(1, [[10,20],[30,40], [50,60]]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for optional< set< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setost(1, [10, 10, 3]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + await api.transact({ + actions: [ api.with('nestcontn2kv').as('bob').setost(2, null) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for optional< vector< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setov(1, [46, 506, 606]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + await api.transact({ + actions: [ api.with('nestcontn2kv').as('bob').setov(2, null) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for optional< optional< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setoo(1, 500) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + await api.transact({ + actions: [ api.with('nestcontn2kv').as('bob').setoo(2, null) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for optional< map< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setom(1, [{'key': 10, 'value': 1000}, {'key': 11,'value': 1001}]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + await api.transact({ + actions: [ api.with('nestcontn2kv').as('bob').setom(2, null) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for optional< pair< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setop(1, {'first': 60, 'second': 61}) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + await api.transact({ + actions: [ api.with('nestcontn2kv').as('bob').setop(2, null) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for optional< tuple< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setot(1, [1001,2001]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + await api.transact({ + actions: [ api.with('nestcontn2kv').as('bob').setot(2, null) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for map< set< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setmst(1, [{'key': 1,'value': [10, 10, 12, 16]}, {'key': 2, 'value': [200, 300]} ]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for map< vector< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setmv(1, [{'key': 1, 'value': [10, 10, 12, 16]}, {'key': 2, 'value': [200, 300]} ]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for map< optional< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setmo(1, [{'key': 10, 'value': 1000}, {'key': 11, 'value': null}]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for map< map< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setmm(1, [{'key': 10, 'value': [{'key': 200, 'value': 2000}, {'key': 201, 'value': 2001}] }, {'key': 11, 'value': [{'key': 300, 'value': 3000}, {'key': 301, 'value': 3001}] } ]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for map< pair< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setmp(1, [{'key': 36, 'value': {'first': 300, 'second': 301}}, {'key': 37, 'value': {'first': 600, 'second': 601}} ]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for map< tuple< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setmt(1, [{'key':1,'value':[10,11]}, {'key':2,'value':[200,300]} ]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for pair< set< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setpst(1, {'first': 20, 'second': [200, 200, 202]}) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for pair< vector< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setpv(1, {'first': 10, 'second': [100, 100, 102]}) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for pair< optional< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setpo(1, {'first': 70, 'second': 71}) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + await api.transact({ + actions: [ api.with('nestcontn2kv').as('bob').setpo(2, {'first': 70, 'second': null}) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for pair< map< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setpm(1, {'first': 6, 'second': [{'key': 20, 'value': 300}, {'key': 21,'value': 301}] }) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for pair< pair< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setpp(1, {'first': 30, 'second': {'first': 301, 'second': 302} }) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for pair< tuple< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setpt(1, {'first':10, 'second':[100,101]}) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for tuple< uint16_t, set< uint16_t >, set< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').settst(1, [10,[21,31], [41,51,61]]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for tuple< uint16_t, vector< uint16_t >, vector< uint16_t > + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').settv(1, [16,[26,36], [46,506,606]]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for tuple< optional< uint16_t >, optional< uint16_t >, optional< uint16_t > , optional< uint16_t >, optional< uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setto(1, [100, null, 200, null, 300]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + await api.transact({ + actions: [ api.with('nestcontn2kv').as('bob').setto(2, [null, null, 10, null, 20]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for tuple< map< uint16_t, uint16_t >, map< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').settm(1, [126, [{'key':10,'value':100},{'key':11,'value':101}], [{'key':80,'value':800},{'key':81,'value':9009}] ]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for tuple< uint16_t, pair< uint16_t, uint16_t >, pair< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').settp(1, [127, {'first':18, 'second':28}, {'first':19, 'second':29}]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for tuple< tuple< uint16_t, uint16_t >, tuple< uint16_t, uint16_t >, tuple< uint16_t, uint16_t >> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').settt(1, [[1,2],[30,40], [50,60]]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for vector> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setvos(1, [{'_count': 18, '_strID': 'dumstr'}, null, {'_count': 19, '_strID': 'dumstr'}]) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + // Test action for pair>> + await api.transact({ + actions: [ api.with('nestcontn2kv').as('alice').setpvo(1,{'first': 183, 'second':[100, null, 200]}) ] + }, { blocksBehind: 3, expireSeconds: 30 }); + + await new Promise(r => setTimeout(r, 1000)); + + const transaction = await rpc.get_kv_table_rows({ + code: 'nestcontn2kv', + table: 'people2kv', + index_name: 'map.index', + json: true + }); + + expect(transaction.rows[0].stst).toEqual([[3], [10], [400, 500, 600]]); + + expect(transaction.rows[0].stv).toEqual([[16, 26], [36], [46, 506, 606]]); + + expect(transaction.rows[0].sto).toEqual([null, 500]); + + expect(transaction.rows[0].stm).toEqual([[{'key': 30, 'value': 300}], [{'key': 60, 'value': 600}]]); + + expect(transaction.rows[0].stp).toEqual([{'first': 69, 'second': 129}]); + + expect(transaction.rows[0].stt).toEqual([{'field_0': 1, 'field_1': 2}, {'field_0': 36, 'field_1': 46}, {'field_0': 56, 'field_1': 66}]); + + expect(transaction.rows[0].vst).toEqual([[10], [3], [400, 500, 600]]); + + expect(transaction.rows[0].vv).toEqual([[16, 26], [36], [36], [46, 506, 606]]); + + expect(transaction.rows[0].vo).toEqual([null, null, 500]); + + expect(transaction.rows[0].vm).toEqual([[{'key': 30, 'value': 300}], [{'key': 60, 'value': 600}]]); + + expect(transaction.rows[0].vp).toEqual([{'first': 69, 'second': 129}, {'first': 69, 'second': 129}]); + + expect(transaction.rows[0].vt).toEqual([{'field_0': 10, 'field_1': 20}, {'field_0': 30, 'field_1': 40}, {'field_0': 50, 'field_1': 60}]); + + expect(transaction.rows[0].ost).toEqual([3, 10]); + expect(transaction.rows[1].ost).toEqual(null); + + expect(transaction.rows[0].ov).toEqual([46, 506, 606]); + expect(transaction.rows[1].ov).toEqual(null); + + expect(transaction.rows[0].oo).toEqual(500); + expect(transaction.rows[1].oo).toEqual(null); + + expect(transaction.rows[0].om).toEqual([{'key': 10, 'value': 1000}, {'key': 11, 'value': 1001}]); + expect(transaction.rows[1].om).toEqual(null); + + expect(transaction.rows[0].op).toEqual({'first': 60, 'second': 61}); + expect(transaction.rows[1].op).toEqual(null); + + expect(transaction.rows[0].ot).toEqual({'field_0': 1001, 'field_1': 2001}); + expect(transaction.rows[1].ot).toEqual(null); + + expect(transaction.rows[0].mst).toEqual([{'key': 1, 'value': [10, 12, 16]}, {'key': 2, 'value': [200, 300]}]); + + expect(transaction.rows[0].mv).toEqual([{'key': 1, 'value': [10, 10, 12, 16]}, {'key': 2, 'value': [200, 300]}]); + + expect(transaction.rows[0].mo).toEqual([{'key': 10, 'value': 1000}, {'key': 11, 'value': null}]); + + expect(transaction.rows[0].mm).toEqual([{'key': 10, 'value': [{'key': 200, 'value': 2000}, {'key': 201, 'value': 2001}]}, {'key': 11, 'value': [{'key': 300, 'value': 3000}, {'key': 301, 'value': 3001}]}]); + + expect(transaction.rows[0].mp).toEqual([{'key': 36, 'value': {'first': 300, 'second': 301}}, {'key': 37, 'value': {'first': 600, 'second': 601}}]); + + expect(transaction.rows[0].mt).toEqual([{'key': 1, 'value': {'field_0': 10, 'field_1': 11}}, {'key': 2, 'value': {'field_0': 200, 'field_1': 300}}]); + + expect(transaction.rows[0].pst).toEqual({'first': 20, 'second': [200, 202]}); + + expect(transaction.rows[0].pv).toEqual({'first': 10, 'second': [100, 100, 102]}); + + expect(transaction.rows[0].po).toEqual({'first': 70, 'second': 71}); + expect(transaction.rows[1].po).toEqual({'first': 70, 'second': null}); + + expect(transaction.rows[0].pm).toEqual({'first': 6, 'second': [{'key': 20, 'value': 300}, {'key': 21, 'value': 301}]}); + + expect(transaction.rows[0].pp).toEqual({'first': 30, 'second': {'first': 301, 'second': 302}}); + + expect(transaction.rows[0].pt).toEqual({'first': 10, 'second': {'field_0': 100, 'field_1': 101}}); + + expect(transaction.rows[0].tst).toEqual({'field_0': 10, 'field_1': [21, 31], 'field_2': [41, 51, 61]}); + + expect(transaction.rows[0].tv).toEqual({'field_0': 16, 'field_1': [26, 36], 'field_2': [46, 506, 606]}); + + expect(transaction.rows[0].to).toEqual({'field_0': 100, 'field_1': null, 'field_2': 200, 'field_3': null, 'field_4': 300}); + + expect(transaction.rows[1].to).toEqual({'field_0': null, 'field_1': null, 'field_2': 10, 'field_3': null, 'field_4': 20}); + + expect(transaction.rows[0].tm).toEqual({'field_0': 126, 'field_1': [{'key': 10, 'value': 100}, {'key': 11, 'value': 101}], 'field_2': [{'key': 80, 'value': 800}, {'key': 81, 'value': 9009}]}); + + expect(transaction.rows[0].tp).toEqual({'field_0': 127, 'field_1': {'first': 18, 'second': 28}, 'field_2': {'first': 19, 'second': 29}}); + + expect(transaction.rows[0].tt).toEqual({'field_0': {'field_0': 1, 'field_1': 2}, 'field_1': {'field_0': 30, 'field_1': 40}, 'field_2': {'field_0': 50, 'field_1': 60}}); + + expect(transaction.rows[0].vos).toEqual([{'_count': 18, '_strID': 'dumstr'}, null, {'_count': 19, '_strID': 'dumstr'}]); + + expect(transaction.rows[0].pvo).toEqual({'first': 183, 'second': [100, null, 200]}); + }); +}); diff --git a/yarn.lock b/yarn.lock index 55cba24b9..303c38f79 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,32 +9,32 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431" - integrity sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" + integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== dependencies: - "@babel/highlight" "^7.16.0" + "@babel/highlight" "^7.16.7" -"@babel/compat-data@^7.16.0": - version "7.16.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.4.tgz#081d6bbc336ec5c2435c6346b2ae1fb98b5ac68e" - integrity sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q== +"@babel/compat-data@^7.16.4": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.8.tgz#31560f9f29fdf1868de8cb55049538a1b9732a60" + integrity sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q== "@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.14.8", "@babel/core@^7.7.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.5.tgz#924aa9e1ae56e1e55f7184c8bf073a50d8677f5c" - integrity sha512-wUcenlLzuWMZ9Zt8S0KmFwGlH6QKRh3vsm/dhDA3CHkiTA45YuG1XkHRcNRl73EFPXDp/d5kVOU0/y7x2w6OaQ== - dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/generator" "^7.16.5" - "@babel/helper-compilation-targets" "^7.16.3" - "@babel/helper-module-transforms" "^7.16.5" - "@babel/helpers" "^7.16.5" - "@babel/parser" "^7.16.5" - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.5" - "@babel/types" "^7.16.0" + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.7.tgz#db990f931f6d40cb9b87a0dc7d2adc749f1dcbcf" + integrity sha512-aeLaqcqThRNZYmbMqtulsetOQZ/5gbR/dWruUCJcpas4Qoyy+QeagfDsPdMrqwsPRDNxJvBlRiZxxX7THO7qtA== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.16.7" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helpers" "^7.16.7" + "@babel/parser" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.16.7" + "@babel/types" "^7.16.7" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -51,127 +51,127 @@ eslint-visitor-keys "^2.1.0" semver "^6.3.0" -"@babel/generator@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.5.tgz#26e1192eb8f78e0a3acaf3eede3c6fc96d22bedf" - integrity sha512-kIvCdjZqcdKqoDbVVdt5R99icaRtrtYhYK/xux5qiWCBmfdvEYMFZ68QCrpE5cbFM1JsuArUNs1ZkuKtTtUcZA== +"@babel/generator@^7.16.7", "@babel/generator@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.8.tgz#359d44d966b8cd059d543250ce79596f792f2ebe" + integrity sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw== dependencies: - "@babel/types" "^7.16.0" + "@babel/types" "^7.16.8" jsesc "^2.5.1" source-map "^0.5.0" -"@babel/helper-compilation-targets@^7.16.3": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz#5b480cd13f68363df6ec4dc8ac8e2da11363cbf0" - integrity sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA== +"@babel/helper-compilation-targets@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz#06e66c5f299601e6c7da350049315e83209d551b" + integrity sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA== dependencies: - "@babel/compat-data" "^7.16.0" - "@babel/helper-validator-option" "^7.14.5" + "@babel/compat-data" "^7.16.4" + "@babel/helper-validator-option" "^7.16.7" browserslist "^4.17.5" semver "^6.3.0" -"@babel/helper-environment-visitor@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.5.tgz#f6a7f38b3c6d8b07c88faea083c46c09ef5451b8" - integrity sha512-ODQyc5AnxmZWm/R2W7fzhamOk1ey8gSguo5SGvF0zcB3uUzRpTRmM/jmLSm9bDMyPlvbyJ+PwPEK0BWIoZ9wjg== +"@babel/helper-environment-visitor@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7" + integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== dependencies: - "@babel/types" "^7.16.0" + "@babel/types" "^7.16.7" -"@babel/helper-function-name@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz#b7dd0797d00bbfee4f07e9c4ea5b0e30c8bb1481" - integrity sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog== +"@babel/helper-function-name@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f" + integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA== dependencies: - "@babel/helper-get-function-arity" "^7.16.0" - "@babel/template" "^7.16.0" - "@babel/types" "^7.16.0" + "@babel/helper-get-function-arity" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/types" "^7.16.7" -"@babel/helper-get-function-arity@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz#0088c7486b29a9cb5d948b1a1de46db66e089cfa" - integrity sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ== +"@babel/helper-get-function-arity@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" + integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw== dependencies: - "@babel/types" "^7.16.0" + "@babel/types" "^7.16.7" -"@babel/helper-hoist-variables@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz#4c9023c2f1def7e28ff46fc1dbcd36a39beaa81a" - integrity sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg== +"@babel/helper-hoist-variables@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" + integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== dependencies: - "@babel/types" "^7.16.0" + "@babel/types" "^7.16.7" -"@babel/helper-module-imports@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz#90538e60b672ecf1b448f5f4f5433d37e79a3ec3" - integrity sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg== +"@babel/helper-module-imports@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" + integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== dependencies: - "@babel/types" "^7.16.0" + "@babel/types" "^7.16.7" -"@babel/helper-module-transforms@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.5.tgz#530ebf6ea87b500f60840578515adda2af470a29" - integrity sha512-CkvMxgV4ZyyioElFwcuWnDCcNIeyqTkCm9BxXZi73RR1ozqlpboqsbGUNvRTflgZtFbbJ1v5Emvm+lkjMYY/LQ== - dependencies: - "@babel/helper-environment-visitor" "^7.16.5" - "@babel/helper-module-imports" "^7.16.0" - "@babel/helper-simple-access" "^7.16.0" - "@babel/helper-split-export-declaration" "^7.16.0" - "@babel/helper-validator-identifier" "^7.15.7" - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.5" - "@babel/types" "^7.16.0" +"@babel/helper-module-transforms@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz#7665faeb721a01ca5327ddc6bba15a5cb34b6a41" + integrity sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng== + dependencies: + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-simple-access" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-validator-identifier" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.16.7" + "@babel/types" "^7.16.7" "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.5.tgz#afe37a45f39fce44a3d50a7958129ea5b1a5c074" - integrity sha512-59KHWHXxVA9K4HNF4sbHCf+eJeFe0Te/ZFGqBT4OjXhrwvA04sGfaEGsVTdsjoszq0YTP49RC9UKe5g8uN2RwQ== + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" + integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== -"@babel/helper-simple-access@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz#21d6a27620e383e37534cf6c10bba019a6f90517" - integrity sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw== +"@babel/helper-simple-access@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz#d656654b9ea08dbb9659b69d61063ccd343ff0f7" + integrity sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g== dependencies: - "@babel/types" "^7.16.0" + "@babel/types" "^7.16.7" -"@babel/helper-split-export-declaration@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz#29672f43663e936df370aaeb22beddb3baec7438" - integrity sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw== +"@babel/helper-split-export-declaration@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" + integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== dependencies: - "@babel/types" "^7.16.0" + "@babel/types" "^7.16.7" -"@babel/helper-validator-identifier@^7.15.7": - version "7.15.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" - integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== +"@babel/helper-validator-identifier@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" + integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== -"@babel/helper-validator-option@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" - integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== +"@babel/helper-validator-option@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" + integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== -"@babel/helpers@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.5.tgz#29a052d4b827846dd76ece16f565b9634c554ebd" - integrity sha512-TLgi6Lh71vvMZGEkFuIxzaPsyeYCHQ5jJOOX1f0xXn0uciFuE8cEk0wyBquMcCxBXZ5BJhE2aUB7pnWTD150Tw== +"@babel/helpers@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.7.tgz#7e3504d708d50344112767c3542fc5e357fffefc" + integrity sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw== dependencies: - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.5" - "@babel/types" "^7.16.0" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.16.7" + "@babel/types" "^7.16.7" -"@babel/highlight@^7.10.4", "@babel/highlight@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" - integrity sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g== +"@babel/highlight@^7.10.4", "@babel/highlight@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.7.tgz#81a01d7d675046f0d96f82450d9d9578bdfd6b0b" + integrity sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw== dependencies: - "@babel/helper-validator-identifier" "^7.15.7" + "@babel/helper-validator-identifier" "^7.16.7" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.0", "@babel/parser@^7.16.5": - version "7.16.6" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.6.tgz#8f194828193e8fa79166f34a4b4e52f3e769a314" - integrity sha512-Gr86ujcNuPDnNOY8mi383Hvi8IYrJVJYuf3XcuBM/Dgd+bINn/7tHqsj+tKkoreMbmGsFLsltI/JJd8fOFWGDQ== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.8.tgz#61c243a3875f7d0b0962b0543a33ece6ff2f1f17" + integrity sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -264,37 +264,37 @@ dependencies: regenerator-runtime "^0.13.2" -"@babel/template@^7.16.0", "@babel/template@^7.3.3": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.0.tgz#d16a35ebf4cd74e202083356fab21dd89363ddd6" - integrity sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A== - dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/parser" "^7.16.0" - "@babel/types" "^7.16.0" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.5.tgz#d7d400a8229c714a59b87624fc67b0f1fbd4b2b3" - integrity sha512-FOCODAzqUMROikDYLYxl4nmwiLlu85rNqBML/A5hKRVXG2LV8d0iMqgPzdYTcIpjZEBB7D6UDU9vxRZiriASdQ== - dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/generator" "^7.16.5" - "@babel/helper-environment-visitor" "^7.16.5" - "@babel/helper-function-name" "^7.16.0" - "@babel/helper-hoist-variables" "^7.16.0" - "@babel/helper-split-export-declaration" "^7.16.0" - "@babel/parser" "^7.16.5" - "@babel/types" "^7.16.0" +"@babel/template@^7.16.7", "@babel/template@^7.3.3": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" + integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/parser" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.16.7": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.8.tgz#bab2f2b09a5fe8a8d9cad22cbfe3ba1d126fef9c" + integrity sha512-xe+H7JlvKsDQwXRsBhSnq1/+9c+LlQcCK3Tn/l5sbx02HYns/cn7ibp9+RV1sIUqu7hKg91NWsgHurO9dowITQ== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.16.8" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/parser" "^7.16.8" + "@babel/types" "^7.16.8" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.16.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.0.tgz#db3b313804f96aadd0b776c4823e127ad67289ba" - integrity sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg== +"@babel/types@^7.0.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.8.tgz#0ba5da91dd71e0a4e7781a30f22770831062e3c1" + integrity sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg== dependencies: - "@babel/helper-validator-identifier" "^7.15.7" + "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": @@ -667,9 +667,9 @@ integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": - version "7.1.17" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.17.tgz#f50ac9d20d64153b510578d84f9643f9a3afbe64" - integrity sha512-6zzkezS9QEIL8yCBvXWxPTJPNuMeECJVxSOhxNY/jfq9LxOTHivaYTqr37n9LknWWRTIkzqH2UilS5QFvfa90A== + version "7.1.18" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.18.tgz#1a29abcc411a9c05e2094c98f9a1b7da6cdf49f8" + integrity sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -678,9 +678,9 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.3" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.3.tgz#f456b4b2ce79137f768aa130d2423d2f0ccfaba5" - integrity sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA== + version "7.6.4" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" + integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== dependencies: "@babel/types" "^7.0.0" @@ -714,17 +714,17 @@ "@types/bn.js" "*" "@types/eslint-scope@^3.7.0": - version "3.7.1" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.1.tgz#8dc390a7b4f9dd9f1284629efce982e41612116e" - integrity sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g== + version "3.7.3" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.3.tgz#125b88504b61e3c8bc6f870882003253005c3224" + integrity sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g== dependencies: "@types/eslint" "*" "@types/estree" "*" "@types/eslint@*": - version "8.2.1" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.2.1.tgz#13f3d69bac93c2ae008019c28783868d0a1d6605" - integrity sha512-UP9rzNn/XyGwb5RQ2fok+DzcIRIYwc16qTXse5+Smsy8MOIccCChT15KAwnsgQx4PzJkaMq4myFyZ4CL5TjhIQ== + version "8.2.2" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.2.2.tgz#b64dbdb64b1957cfc8a698c68297fcf8983e94c7" + integrity sha512-nQxgB8/Sg+QKhnV8e0WzPpxjIGT3tuJDDzybkDi8ItE/IgTlHo07U0shaIjzhcvQxlq9SDRE42lsJ23uvEgJ2A== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -750,9 +750,9 @@ "@types/node" "*" "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" - integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" + integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== "@types/istanbul-lib-report@*": version "3.0.0" @@ -803,29 +803,29 @@ form-data "^3.0.0" "@types/node@*": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.0.tgz#62797cee3b8b497f6547503b2312254d4fe3c2bb" - integrity sha512-eMhwJXc931Ihh4tkU+Y7GiLzT/y/DBNpNtr4yU9O2w3SYBsr9NaOPhQlLKRmoWtI54uNwuo0IOUFQjVOTZYRvw== + version "17.0.8" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.8.tgz#50d680c8a8a78fe30abe6906453b21ad8ab0ad7b" + integrity sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg== -"@types/node@^14.14.31", "@types/node@^14.18.0": - version "14.18.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.0.tgz#98df2397f6936bfbff4f089e40e06fa5dd88d32a" - integrity sha512-0GeIl2kmVMXEnx8tg1SlG6Gg8vkqirrW752KqolYo1PHevhhZN3bhJ67qHj+bQaINhX0Ra3TlWwRvMCd9iEfNQ== +"@types/node@^14.14.31", "@types/node@^14.18.5": + version "14.18.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.5.tgz#0dd636fe7b2c6055cbed0d4ca3b7fb540f130a96" + integrity sha512-LMy+vDDcQR48EZdEx5wRX1q/sEl6NdGuHXPnfeL8ixkwCOSZ2qnIyIZmcCbdX0MeRqHhAcHmX+haCbrS8Run+A== "@types/normalize-package-data@^2.4.0": version "2.4.1" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== -"@types/pako@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@types/pako/-/pako-1.0.2.tgz#17c9b136877f33d9ecc8e73cd26944f1f6dd39a1" - integrity sha512-8UJl2MjkqqS6ncpLZqRZ5LmGiFBkbYxocD4e4jmBqGvfRG1RS23gKsBQbdtV9O9GvRyjFTiRHRByjSlKCLlmZw== +"@types/pako@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@types/pako/-/pako-1.0.3.tgz#2e61c2b02020b5f44e2e5e946dfac74f4ec33c58" + integrity sha512-EDxOsHAD5dqjbjEUM1xwa7rpKPFb8ECBE5irONTQU7/OsO3thI5YrNEWSPNMvYmvFM0l/OLQJ6Mgw7PEdXSjhg== "@types/prettier@^2.0.0": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.2.tgz#4c62fae93eb479660c3bd93f9d24d561597a8281" - integrity sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA== + version "2.4.3" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.3.tgz#a3c65525b91fca7da00ab1a3ac2b5a2a4afbffbf" + integrity sha512-QzSuZMBuG5u8HqYz01qtMdg/Jfctlnvj1z/lYnIDXs/golxw0fxtRAHd9KrzjR7Yxz1qVeI00o0kiO3PmVdJ9w== "@types/ripemd160@^2.0.0": version "2.0.0" @@ -1170,9 +1170,9 @@ acorn@^7.1.1, acorn@^7.4.0: integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== acorn@^8.2.4, acorn@^8.4.1: - version "8.6.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.6.0.tgz#e3692ba0eb1a0c83eaa4f37f5fa7368dd7142895" - integrity sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw== + version "8.7.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" + integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== agent-base@6: version "6.0.2" @@ -1355,9 +1355,9 @@ astral-regex@^2.0.0: integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== async@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.2.tgz#2eb7671034bb2194d45d30e31e24ec7e7f9670cd" - integrity sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g== + version "3.2.3" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9" + integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g== asynckit@^0.4.0: version "0.4.0" @@ -1721,14 +1721,14 @@ camelcase@^5.0.0, camelcase@^5.3.1: integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== camelcase@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.1.tgz#250fd350cfd555d0d2160b1d51510eaf8326e86e" - integrity sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA== + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001286: - version "1.0.30001287" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001287.tgz#5fab6a46ab9e47146d5dd35abfe47beaf8073c71" - integrity sha512-4udbs9bc0hfNrcje++AxBuc6PfLNHwh3PO9kbwnfCQWyqtlzg3py0YgFu8jyRTTo85VAz4U+VLxSlID09vNtWA== + version "1.0.30001298" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001298.tgz#0e690039f62e91c3ea581673d716890512e7ec52" + integrity sha512-AcKqikjMLlvghZL/vfTHorlQsLDhGRalYf1+GmWCf5SCMziSGjRYQW/JEksj14NaYHIR6KIhrFAy0HV5C25UzQ== capture-exit@^2.0.0: version "2.0.0" @@ -1828,14 +1828,13 @@ cli-cursor@^3.1.0: restore-cursor "^3.1.0" cli-table3@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.0.tgz#b7b1bc65ca8e7b5cef9124e13dc2b21e2ce4faee" - integrity sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ== + version "0.6.1" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.1.tgz#36ce9b7af4847f288d3cdd081fbd09bf7bd237b8" + integrity sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA== dependencies: - object-assign "^4.1.0" string-width "^4.2.0" optionalDependencies: - colors "^1.1.2" + colors "1.4.0" cli-truncate@^2.1.0: version "2.1.0" @@ -1910,7 +1909,7 @@ colorette@^2.0.14, colorette@^2.0.16: resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== -colors@^1.1.2: +colors@1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== @@ -2323,9 +2322,9 @@ ecurve@1.0.5: bigi "^1.1.0" electron-to-chromium@^1.4.17: - version "1.4.20" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.20.tgz#8fbf9677ccac19b4249c0a6204e0943d9d66ce30" - integrity sha512-N7ZVNrdzX8NE90OXEFBMsBf3fp8P/vVDUER3WCUZjzC7OkNTXHVoF6W9qVhq8+dA8tGnbDajzUpj2ISNVVyj+Q== + version "1.4.41" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.41.tgz#0b2e126796e7fafb9fd71e29304468b9d0af5d65" + integrity sha512-VQEXEJc+8rJIva85H8EPtB5Ux9g8TzkNGBanqphM9ZWMZ34elueKJ+5g+BPhz3Lk8gkujfQRcIZ+fpA0btUIuw== elliptic@6.5.4, elliptic@^6.5.3: version "6.5.4" @@ -2757,10 +2756,10 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.1.1: - version "3.2.7" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" - integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== +fast-glob@^3.2.9: + version "3.2.10" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.10.tgz#2734f83baa7f43b7fd41e13bc34438f4ffe284ee" + integrity sha512-s9nFhFnvR63wls6/kM88kQqDhMu0AfdjqouE2l5GVQPbqLgyFjjU5ry/r2yKsJxpb9Py1EYNqieFrmMaX4v++A== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -3040,15 +3039,15 @@ globals@^13.6.0, globals@^13.9.0: type-fest "^0.20.2" globby@^11.0.3: - version "11.0.4" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" - integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: array-union "^2.1.0" dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" slash "^3.0.0" globby@^6.1.0: @@ -3063,9 +3062,9 @@ globby@^6.1.0: pinkie-promise "^2.0.0" graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: - version "4.2.8" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" - integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== + version "4.2.9" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" + integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== growly@^1.3.0: version "1.3.0" @@ -3224,10 +3223,10 @@ ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.1.4, ignore@^5.1.8: - version "5.1.9" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.9.tgz#9ec1a5cbe8e1446ec60d4420060d43aa6e7382fb" - integrity sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ== +ignore@^5.1.8, ignore@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" + integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.3.0" @@ -3238,9 +3237,9 @@ import-fresh@^3.0.0, import-fresh@^3.2.1: resolve-from "^4.0.0" import-local@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.3.tgz#4d51c2c495ca9393da259ec66b62e022920211e0" - integrity sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA== + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== dependencies: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" @@ -3316,10 +3315,10 @@ is-ci@^3.0.0: dependencies: ci-info "^3.2.0" -is-core-module@^2.2.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" - integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== +is-core-module@^2.8.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" + integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== dependencies: has "^1.0.3" @@ -3579,9 +3578,9 @@ istanbul-lib-source-maps@^4.0.0: source-map "^0.6.1" istanbul-reports@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.1.tgz#7085857f17d2441053c6ce5c3b8fdf6882289397" - integrity sha512-q1kvhAXWSsXfMjCdNHNPKZZv94OlspKnoGv+R9RGbnqOOQ0VbNfLFgQDVgi7hHenKsndGq3/o0OBdzDXthWcNw== + version "3.1.3" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.3.tgz#4bcae3103b94518117930d51283690960b50d3c2" + integrity sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" @@ -4025,10 +4024,10 @@ jest-worker@^26.6.2: merge-stream "^2.0.0" supports-color "^7.0.0" -jest-worker@^27.0.6: - version "27.4.5" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.4.5.tgz#d696e3e46ae0f24cff3fa7195ffba22889262242" - integrity sha512-f2s8kEdy15cv9r7q4KkzGXvlY0JTcmCbMHZBfSQDwW77REr45IDWwd0lksDFeVHH2jJ5pqb90T77XscrjeGzzg== +jest-worker@^27.4.1: + version "27.4.6" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.4.6.tgz#5d2d93db419566cb680752ca0792780e71b3273e" + integrity sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw== dependencies: "@types/node" "*" merge-stream "^2.0.0" @@ -4231,16 +4230,16 @@ lines-and-columns@^1.1.6: integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== listr2@^3.8.3: - version "3.13.5" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.13.5.tgz#105a813f2eb2329c4aae27373a281d610ee4985f" - integrity sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA== + version "3.14.0" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.14.0.tgz#23101cc62e1375fd5836b248276d1d2b51fdbe9e" + integrity sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g== dependencies: cli-truncate "^2.1.0" colorette "^2.0.16" log-update "^4.0.0" p-map "^4.0.0" rfdc "^1.3.0" - rxjs "^7.4.0" + rxjs "^7.5.1" through "^2.3.8" wrap-ansi "^7.0.0" @@ -4356,7 +4355,7 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.3.0: +merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== @@ -4603,7 +4602,7 @@ nyc@^15.1.0: test-exclude "^6.0.0" yargs "^15.0.2" -object-assign@^4.0.1, object-assign@^4.1.0: +object-assign@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -4800,7 +4799,7 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6: +path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -4837,9 +4836,9 @@ picocolors@^1.0.0: integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== picomatch@^2.0.4, picomatch@^2.2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pify@^2.0.0, pify@^2.2.0: version "2.3.0" @@ -4984,9 +4983,9 @@ punycode@^2.1.0, punycode@^2.1.1: integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + version "6.5.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== querystring@0.2.0: version "0.2.0" @@ -4999,9 +4998,9 @@ queue-microtask@^1.2.2: integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== ramda@~0.27.1: - version "0.27.1" - resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.27.1.tgz#66fc2df3ef873874ffc2da6aa8984658abacf5c9" - integrity sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw== + version "0.27.2" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.27.2.tgz#84463226f7f36dc33592f6f4ed6374c48306c3f1" + integrity sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA== randombytes@2.0.5: version "2.0.5" @@ -5160,12 +5159,13 @@ resolve-url@^0.2.1: integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= resolve@^1.10.0, resolve@^1.18.1, resolve@^1.9.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + version "1.21.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.21.0.tgz#b51adc97f3472e6a5cf4444d34bc9d6b9037591f" + integrity sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA== dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" + is-core-module "^2.8.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" restore-cursor@^3.1.0: version "3.1.0" @@ -5224,12 +5224,12 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rxjs@^7.4.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.4.0.tgz#a12a44d7eebf016f5ff2441b87f28c9a51cebc68" - integrity sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w== +rxjs@^7.5.1: + version "7.5.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.2.tgz#11e4a3a1dfad85dbf7fb6e33cbba17668497490b" + integrity sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w== dependencies: - tslib "~2.1.0" + tslib "^2.1.0" safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" @@ -5523,9 +5523,9 @@ sprintf-js@~1.0.2: integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= sshpk@^1.14.1: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + version "1.17.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" + integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -5639,15 +5639,20 @@ supports-hyperlinks@^2.0.0: has-flag "^4.0.0" supports-color "^7.0.0" +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + symbol-tree@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== table@^6.0.9: - version "6.7.5" - resolved "https://registry.yarnpkg.com/table/-/table-6.7.5.tgz#f04478c351ef3d8c7904f0e8be90a1b62417d238" - integrity sha512-LFNeryOqiQHqCVKzhkymKwt6ozeRhlm8IL1mE8rNUurkir4heF6PzMyRgaTa4tlyPTGGgXuvVOF/OLWiH09Lqw== + version "6.8.0" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" + integrity sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA== dependencies: ajv "^8.0.1" lodash.truncate "^4.4.2" @@ -5669,11 +5674,11 @@ terminal-link@^2.0.0: supports-hyperlinks "^2.0.0" terser-webpack-plugin@^5.1.3: - version "5.2.5" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.2.5.tgz#ce65b9880a0c36872555c4874f45bbdb02ee32c9" - integrity sha512-3luOVHku5l0QBeYS8r4CdHYWEGMmIj3H1U64jgkdZzECcSOJAyJ9TjuqcQZvw1Y+4AOBN9SeYJPJmFn2cM4/2g== + version "5.3.0" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.0.tgz#21641326486ecf91d8054161c816e464435bae9f" + integrity sha512-LPIisi3Ol4chwAaPP8toUJ3L4qCM1G0wao7L3qNv57Drezxj6+VEyySpPw4B1HSO2Eg/hDY/MNF5XihCAoqnsQ== dependencies: - jest-worker "^27.0.6" + jest-worker "^27.4.1" schema-utils "^3.1.1" serialize-javascript "^6.0.0" source-map "^0.6.1" @@ -5821,10 +5826,10 @@ tslib@^1.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" - integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== +tslib@^2.1.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" + integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== tsutils@^3.21.0: version "3.21.0" @@ -6066,9 +6071,9 @@ webpack-merge@^5.7.3: wildcard "^2.0.0" webpack-sources@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.2.tgz#d88e3741833efec57c4c789b6010db9977545260" - integrity sha512-cp5qdmHnu5T8wRg2G3vZZHoJPN14aqQ89SyQ11NpGH5zEMDCclt49rzo+MaRazk7/UeILhAI+/sEtcM+7Fr0nw== + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== webpack@^5.65.0: version "5.65.0"