From 081bc4e77efd313e7df88368cb29f0f0d70316f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Powaga?= Date: Thu, 31 Oct 2019 15:45:35 +0000 Subject: [PATCH 01/51] Release/6.0.2 (#741) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update @aeternity/aepp-sdk in group default to the latest version πŸš€ (#702) * fix(package): update @aeternity/aepp-sdk to version 5.0.0 * fix(package): update @aeternity/aepp-sdk to version 5.0.0 * chore(package): update lockfile examples/browser/vuejs/connect-two-ae/identity/yarn.lock * chore(package): update lockfile examples/browser/vuejs/connect-two-ae/aepp/yarn.lock * Realign 5.0.0 (#701) * chrome(Release): Bump version 5.0.0. Regenerate docs * chrome(Release): Prepare CHANGELOG. Regenerate lock file * Update README.md (#704) fix typo * Feat(AENS): auction name fee calculation (#706) * chrome(Release): Bump version 5.0.0. Regenerate docs * chrome(Release): Prepare CHANGELOG. Regenerate lock file * feat(AENS): Add auction name fee helpers and schema * feat(AENS): Add nameFee calculation and validation to name `claim` function * feat(AENS): Fix name length * feat(AENS): Add `bid` function. Add test for name auction * feat(AENS): Clear logs * refactor(AENS): refactor claim (#709) * chrome(Release): Bump version 5.0.0. Regenerate docs * chrome(Release): Prepare CHANGELOG. Regenerate lock file * refactor(constants): Move const to shema. Improve isAddressValid. * refactor(constants): Move const to shema. Improve isAddressValid. * refactor(AENS): Remove `prelimaCommitmentId`. Add function for generating `nameId` * refactor(AE): Generate nameId in spend by name function instead of calling node * Fix(Example): FIx example app (#712) * chrome(Release): Bump version 5.0.0. Regenerate docs * chrome(Release): Prepare CHANGELOG. Regenerate lock file * fix(examples): Fix contract in example AEPP * fix(examples): Add compilerVersion to AEPP example app * fix(Compiler): Add cross compiler compatibility for old compiler * fix(Compiler): Revert cross compiler options check * chore(Jenkins): Force * fix(AENS): Change tld for Lima from `aet` to `chain` (#714) * fix(AENS): Change tld for Lima from `aet` to `chain` Point docker to the rc-5 node and 4.0.0 compiler Move `classify` method from AENS to transaction builder helpers * fix(AENS): Fix claim command with new tld * feat(SPEND): Add additional validation for recipient (#715) * feat(state channels): make state channels compatible with node v5.0.0… (#688) * feat(Lima): Create Lima branch * feat(Compiler): Compiler 4.0.0 compatibility (#632) * feat(newCompiler): Increase compiler version. Add `backend` option to compiler API * fix(TX): Add fate vm version * feat(Contract): Make Contract works with node 5.0.0 rc1 (lima hard-fork) and compiler 4.0.0 rc2 * chore(test): Debug channel test * fix(channel): fix contract in channel test * chore(test): Remove logs * feat(ACI): Add `payable` to contract call * feat(ACI): Add test for payable * fix(Linter): Fix linter error * feat(Compiler): Point to compiler 3.2.0. Improve `payble` to support old compiler * feat(Compiler): disable payable test * feat(Lima): Point compiler to 4.0.0. Enable tests for `payable` * feat(Lima): Make contact for channel test payable * chore(test): Enable tests * feat(Contract/ACI): Add ability to use contract with external deps(`include "someLib"`) (#653) * docs(Contract): Adjust contract docs (#658) * Release 4.7.0-next.1 (#660) * chore(release): Generate CHANGELOG. Bump version * chore(test): Test backward compatibility * chore(test): revert * feat(SCHEMA): Add fate constants * chore(release): bump version to 5.0.0-next.1 * feat(Lima): add check for compiler <-> consensus protocol version check * feat(Lima): add check for abi/vm <-> backend(FATE/AEVM) (#680) * feat(Lima): add check for abi/vm <-> backend(FATE/AEVM) * feat(Lima): add check for abi/vm <-> backend(FATE/AEVM) * feat(Contract): Add fate tests * feat(Contract): enable all tests * feat(Node): Add check in dry-run endpoint(node cross compatibility) * feat(Contract): enable all tests * feat(Contract): enable all tests * feat(Contract): fix docker file run command * feat(Swagger): Resolve refs * feat(tests): Skip Channel and AENS * feat(Node): Change compatibility range from 4.x.x to 5.x.x * feat(Node): Change compatibility range from 4.x.x to 6.0.0 * fix(Oracle): fix abi field resolving * chrome(build): Regenerate lock * feat(state channels): make state channels compatible with node v5.0.0-rc.2 * feat(Compiler): make FATE by default (#693) * feat(Contract): Use FATE by default * Fix lint error * feat(AENS): Lima compatibility (#687) * Aens lima compatibility * Make aens cross compatible with pre-lima releases * Remove .only * Fix native build of claim tx test * feat(GA): Make GA compatible with Lima. Add cross compiler compatibility * fix(Test): Fix test for cross compatibility. Add test for AEVM * fix(AE): Add pointers verification for spend by name. Improve AENS cross node tests * build(Node): Point node to 5.0.0-rc3 * Change node version to v5.0.0-rc.3 * Fix test * Fix channel contracts tests * Update @aeternity/aepp-sdk in group default to the latest version πŸš€ (#720) * fix(package): update @aeternity/aepp-sdk to version 6.0.0 * fix(package): update @aeternity/aepp-sdk to version 6.0.0 * chore(package): update lockfile examples/browser/vuejs/connect-two-ae/identity/yarn.lock * chore(package): update lockfile examples/browser/vuejs/connect-two-ae/aepp/yarn.lock * Realign 6.0.0 (#719) * chrome(Release): Bump version 5.0.0. Regenerate docs * chrome(Release): Prepare CHANGELOG. Regenerate lock file * Release 6.0.0 (#716) * Update @aeternity/aepp-sdk in group default to the latest version πŸš€ (#702) * fix(package): update @aeternity/aepp-sdk to version 5.0.0 * fix(package): update @aeternity/aepp-sdk to version 5.0.0 * chore(package): update lockfile examples/browser/vuejs/connect-two-ae/identity/yarn.lock * chore(package): update lockfile examples/browser/vuejs/connect-two-ae/aepp/yarn.lock * Realign 5.0.0 (#701) * chrome(Release): Bump version 5.0.0. Regenerate docs * chrome(Release): Prepare CHANGELOG. Regenerate lock file * Update README.md (#704) fix typo * Feat(AENS): auction name fee calculation (#706) * chrome(Release): Bump version 5.0.0. Regenerate docs * chrome(Release): Prepare CHANGELOG. Regenerate lock file * feat(AENS): Add auction name fee helpers and schema * feat(AENS): Add nameFee calculation and validation to name `claim` function * feat(AENS): Fix name length * feat(AENS): Add `bid` function. Add test for name auction * feat(AENS): Clear logs * refactor(AENS): refactor claim (#709) * chrome(Release): Bump version 5.0.0. Regenerate docs * chrome(Release): Prepare CHANGELOG. Regenerate lock file * refactor(constants): Move const to shema. Improve isAddressValid. * refactor(constants): Move const to shema. Improve isAddressValid. * refactor(AENS): Remove `prelimaCommitmentId`. Add function for generating `nameId` * refactor(AE): Generate nameId in spend by name function instead of calling node * Fix(Example): FIx example app (#712) * chrome(Release): Bump version 5.0.0. Regenerate docs * chrome(Release): Prepare CHANGELOG. Regenerate lock file * fix(examples): Fix contract in example AEPP * fix(examples): Add compilerVersion to AEPP example app * fix(Compiler): Add cross compiler compatibility for old compiler * fix(Compiler): Revert cross compiler options check * chore(Jenkins): Force * fix(AENS): Change tld for Lima from `aet` to `chain` (#714) * fix(AENS): Change tld for Lima from `aet` to `chain` Point docker to the rc-5 node and 4.0.0 compiler Move `classify` method from AENS to transaction builder helpers * fix(AENS): Fix claim command with new tld * feat(SPEND): Add additional validation for recipient (#715) * feat(state channels): make state channels compatible with node v5.0.0… (#688) * feat(Lima): Create Lima branch * feat(Compiler): Compiler 4.0.0 compatibility (#632) * feat(newCompiler): Increase compiler version. Add `backend` option to compiler API * fix(TX): Add fate vm version * feat(Contract): Make Contract works with node 5.0.0 rc1 (lima hard-fork) and compiler 4.0.0 rc2 * chore(test): Debug channel test * fix(channel): fix contract in channel test * chore(test): Remove logs * feat(ACI): Add `payable` to contract call * feat(ACI): Add test for payable * fix(Linter): Fix linter error * feat(Compiler): Point to compiler 3.2.0. Improve `payble` to support old compiler * feat(Compiler): disable payable test * feat(Lima): Point compiler to 4.0.0. Enable tests for `payable` * feat(Lima): Make contact for channel test payable * chore(test): Enable tests * feat(Contract/ACI): Add ability to use contract with external deps(`include "someLib"`) (#653) * docs(Contract): Adjust contract docs (#658) * Release 4.7.0-next.1 (#660) * chore(release): Generate CHANGELOG. Bump version * chore(test): Test backward compatibility * chore(test): revert * feat(SCHEMA): Add fate constants * chore(release): bump version to 5.0.0-next.1 * feat(Lima): add check for compiler <-> consensus protocol version check * feat(Lima): add check for abi/vm <-> backend(FATE/AEVM) (#680) * feat(Lima): add check for abi/vm <-> backend(FATE/AEVM) * feat(Lima): add check for abi/vm <-> backend(FATE/AEVM) * feat(Contract): Add fate tests * feat(Contract): enable all tests * feat(Node): Add check in dry-run endpoint(node cross compatibility) * feat(Contract): enable all tests * feat(Contract): enable all tests * feat(Contract): fix docker file run command * feat(Swagger): Resolve refs * feat(tests): Skip Channel and AENS * feat(Node): Change compatibility range from 4.x.x to 5.x.x * feat(Node): Change compatibility range from 4.x.x to 6.0.0 * fix(Oracle): fix abi field resolving * chrome(build): Regenerate lock * feat(state channels): make state channels compatible with node v5.0.0-rc.2 * feat(Compiler): make FATE by default (#693) * feat(Contract): Use FATE by default * Fix lint error * feat(AENS): Lima compatibility (#687) * Aens lima compatibility * Make aens cross compatible with pre-lima releases * Remove .only * Fix native build of claim tx test * feat(GA): Make GA compatible with Lima. Add cross compiler compatibility * fix(Test): Fix test for cross compatibility. Add test for AEVM * fix(AE): Add pointers verification for spend by name. Improve AENS cross node tests * build(Node): Point node to 5.0.0-rc3 * Change node version to v5.0.0-rc.3 * Fix test * Fix channel contracts tests * chore(release): Bump version to 6.0.0 * chore(release): Adjust CHANGELOG. Regenerate lock file. Regenerate docs * chore(release): Force Jenkins * chore(Test): Adjust timeout for pollQuery test * chrome(test): enable State chanel tests * chrome(test): fix oracle pollQuery * Update libsodium-wrappers-sumo to the latest version πŸš€ (#721) * fix(package): update libsodium-wrappers-sumo to version 0.7.6 * chore(package): update lockfile package-lock.json * Keystore: Make usable in nodejs@10 and below (#726) * keystore: Fix name in example * Add missed Keystore module export * keystore: Add example for versions of nodejs that don't supports esm * fix(aens): added lower case transformation for aens names (#730) * fix(aens): added lower case transformation for aens names commitment Id has been generated incorrectly because names have not been transformed to a lower case * fix(aens): removed unnecessary lower case transformation during the name encoding process * fix(aens): disable test for spend by name #728 * fix(aens): fixed namespace for claim transactions #728 * removed empty lines * style(changelog): added whitespaces to separate changelog sections * name claim: Revert ignoring waitMined from user passed options (#727) Reverts changes in https://github.com/aeternity/aepp-sdk-js/commit/885090073e93616809aec89046b859ec511715c6#diff-bd3d95ffcb66b185645d812b7d5ba656L179-R176 * Bump version to 6.0.2 * Regenerate lock file. Regenerate docs --- CHANGELOG.md | 12 ++++++++++++ docs/api/ae.md | 1 - docs/api/ae/aens.md | 19 ------------------- docs/api/ae/oracle.md | 17 +---------------- docs/api/chain.md | 20 +++----------------- docs/api/contract.md | 19 ++----------------- docs/api/contract/ga.md | 27 --------------------------- es/ae/aens.js | 2 +- package-lock.json | 6 +++--- package.json | 2 +- 10 files changed, 23 insertions(+), 102 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index efbe54e1df..193373dcd9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +## [6.0.2](https://github.com/aeternity/aepp-sdk-js/compare/6.0.1...6.0.2) (2019-10-31) + + +### Bug Fixes + +* **name claim:** Revert ignoring waitMined from user passed options (#727) + + + ## [6.0.1](https://github.com/aeternity/aepp-sdk-js/compare/6.0.0...6.0.1) (2019-10-29) @@ -8,6 +17,9 @@ + + + # [6.0.0](https://github.com/aeternity/aepp-sdk-js/compare/4.7.0...6.0.0) (2019-10-16) diff --git a/docs/api/ae.md b/docs/api/ae.md index 691907d43f..b2b92c1faf 100644 --- a/docs/api/ae.md +++ b/docs/api/ae.md @@ -13,7 +13,6 @@ import Ae from '@aeternity/aepp-sdk/es/ae' * _instance_ * [.destroyInstance()](#module_@aeternity/aepp-sdk/es/ae--Ae+destroyInstance) β‡’ `void` * _async_ - * [.send(tx, [options])](#module_@aeternity/aepp-sdk/es/ae--Ae+send) β‡’ `String` \| `String` * [.spend(amount, recipientId, options)](#module_@aeternity/aepp-sdk/es/ae--Ae+spend) β‡’ `String` \| `String` * [.transferFunds(percentage, recipientId, options)](#module_@aeternity/aepp-sdk/es/ae--Ae+transferFunds) β‡’ `String` \| `String` * _inner_ diff --git a/docs/api/ae/aens.md b/docs/api/ae/aens.md index 3e4d65f561..e48608bc66 100644 --- a/docs/api/ae/aens.md +++ b/docs/api/ae/aens.md @@ -14,8 +14,6 @@ import Aens from '@aeternity/aepp-sdk/es/ae/aens' * [@aeternity/aepp-sdk/es/ae/aens](#module_@aeternity/aepp-sdk/es/ae/aens) * [Aens([options])](#exp_module_@aeternity/aepp-sdk/es/ae/aens--Aens) β‡’ `Object` ⏏ - * _global_ - * [exports.isNameValid(name, [throwError])](#exp_module_@aeternity/aepp-sdk/es/ae/aens--exports.isNameValid) β‡’ ⏏ * _instance_ * _async_ * [.update(nameId, target, options)](#exp_module_@aeternity/aepp-sdk/es/ae/aens--update) β‡’ `Object` ⏏ @@ -41,23 +39,6 @@ Aens provides name-system related methods atop | --- | --- | --- | --- | | [options] | `Object` | {} | Initializer object | - - -### exports.isNameValid(name, [throwError]) β‡’ ⏏ -Is name valid - -**Kind**: global method of [`@aeternity/aepp-sdk/es/ae/aens`](#module_@aeternity/aepp-sdk/es/ae/aens) -**Returns**: Boolean -**Throws**: - -- Error - - -| Param | Type | Default | Description | -| --- | --- | --- | --- | -| name | `string` | | | -| [throwError] | `boolean` | true | Throw error on invalid | - ### .update(nameId, target, options) β‡’ `Object` ⏏ diff --git a/docs/api/ae/oracle.md b/docs/api/ae/oracle.md index 63bc96a3c3..c8e45a528f 100644 --- a/docs/api/ae/oracle.md +++ b/docs/api/ae/oracle.md @@ -16,8 +16,7 @@ import Oracle from '@aeternity/aepp-sdk/es/ae/oracle' * [Oracle([options])](#exp_module_@aeternity/aepp-sdk/es/ae/oracle--Oracle) β‡’ `Object` ⏏ * _instance_ * _async_ - * [.getOracleObject(oracleId)](#exp_module_@aeternity/aepp-sdk/es/ae/oracle--getOracleObject) β‡’ `Promise.<Object>` ⏏ - * [.exports.pollForQueries(oracleId, onQuery, [options])](#exp_module_@aeternity/aepp-sdk/es/ae/oracle--exports.pollForQueries) β‡’ `function` ⏏ + * [.pollForQueries(oracleId, onQuery, [options])](#exp_module_@aeternity/aepp-sdk/es/ae/oracle--pollForQueries) β‡’ `function` ⏏ * [.getQueryObject(oracleId, queryId)](#exp_module_@aeternity/aepp-sdk/es/ae/oracle--getQueryObject) β‡’ `Promise.<Object>` ⏏ * [.exports.pollForQueryResponse(oracleId, queryId, [options])](#exp_module_@aeternity/aepp-sdk/es/ae/oracle--exports.pollForQueryResponse) β‡’ `Promise.<Object>` ⏏ * [.registerOracle(queryFormat, responseFormat, [options])](#exp_module_@aeternity/aepp-sdk/es/ae/oracle--registerOracle) β‡’ `Promise.<Object>` ⏏ @@ -57,20 +56,6 @@ Poll for oracle queries | [options] | `Object` | Options object | | [options.interval] | `Object` | Poll interval(default: 5000) | -### .pollForQueries(oracleId, onQuery, [options]) β‡’ `function` ⏏ -Poll for oracle queries - -**Kind**: instance method of [`@aeternity/aepp-sdk/es/ae/oracle`](#module_@aeternity/aepp-sdk/es/ae/oracle) -**Returns**: `function` - stopPolling - Stop polling function -**Category**: async - -| Param | Type | Description | -| --- | --- | --- | -| oracleId | `String` | Oracle public key | -| onQuery | `function` | OnQuery callback | -| [options] | `Object` | Options object | -| [options.interval] | `Object` | Poll interval(default: 5000) | - ### .getQueryObject(oracleId, queryId) β‡’ `Promise.<Object>` ⏏ diff --git a/docs/api/chain.md b/docs/api/chain.md index 28ec9f6689..6f7aa6159e 100644 --- a/docs/api/chain.md +++ b/docs/api/chain.md @@ -30,26 +30,12 @@ import Chain from '@aeternity/aepp-sdk/es/chain' * _static_ * [.waitMined(bool)](#module_@aeternity/aepp-sdk/es/chain.waitMined) β‡’ `Stamp` -### Chain([options]) β‡’ `Object` ⏏ -Basic Chain Stamp + -Attempting to create instances from the Stamp without overwriting all -abstract methods using composition will result in an exception. - -**Kind**: Exported function -**Returns**: `Object` - Chain instance -**rtype**: `Stamp` - -| Param | Type | Default | Description | -| --- | --- | --- | --- | -| [options] | `Object` | {} | Initializer object | - - - -#### *chain.sendTransaction(tx, [options]) β‡’ `Object` \| `String`* +### *@aeternity/aepp-sdk/es/chain.sendTransaction(tx, [options]) β‡’ `Object` \| `String`* Submit a signed transaction for mining -**Kind**: instance abstract method of [`Chain`](#exp_module_@aeternity/aepp-sdk/es/chain--Chain) +**Kind**: instance abstract method of [`@aeternity/aepp-sdk/es/chain`](#module_@aeternity/aepp-sdk/es/chain) **Returns**: `Object` \| `String` - Transaction or transaction hash **Category**: async **rtype**: `(tx: String, options?: Object) => tx: Promise[Object]|txHash: Promise[String]` diff --git a/docs/api/contract.md b/docs/api/contract.md index 769294890b..283981ec3c 100644 --- a/docs/api/contract.md +++ b/docs/api/contract.md @@ -19,24 +19,9 @@ import ContractBase from '@aeternity/aepp-sdk/es/contract' * *[.setCompilerUrl(url)](#module_@aeternity/aepp-sdk/es/contract+setCompilerUrl) β‡’ `void`* * *[.getCompilerVersion()](#module_@aeternity/aepp-sdk/es/contract+getCompilerVersion) β‡’ `String`* -### ContractBase([options]) β‡’ `Object` ⏏ -Basic Contract Stamp + -This stamp include api call's related to contract functionality. -Attempting to create instances from the Stamp without overwriting all -abstract methods using composition will result in an exception. - -**Kind**: Exported function -**Returns**: `Object` - Contract instance -**rtype**: `Stamp` - -| Param | Type | Default | Description | -| --- | --- | --- | --- | -| [options] | `Object` | {} | Initializer object | - - - -#### *contractBase.contractGetACI(source, [options]) β‡’ `Object`* +### *@aeternity/aepp-sdk/es/contract.contractGetACI(source, [options]) β‡’ `Object`* Get contract ACI **Kind**: instance abstract method of [`@aeternity/aepp-sdk/es/contract`](#module_@aeternity/aepp-sdk/es/contract) diff --git a/docs/api/contract/ga.md b/docs/api/contract/ga.md index 74fae2afb3..b35a5c0d4f 100644 --- a/docs/api/contract/ga.md +++ b/docs/api/contract/ga.md @@ -13,36 +13,9 @@ import { GeneralizeAccount } from '@aeternity/aepp-sdk' (Using bundle) ``` * [@aeternity/aepp-sdk/es/contract/ga](#module_@aeternity/aepp-sdk/es/contract/ga) - * [exports.GeneralizeAccount([options])](#exp_module_@aeternity/aepp-sdk/es/contract/ga--exports.GeneralizeAccount) β‡’ `Object` ⏏ * [createGeneralizeAccount(authFnName, source, args, options)](#exp_module_@aeternity/aepp-sdk/es/contract/ga--createGeneralizeAccount) β‡’ `Promise.<Readonly.<{result: \*, owner: \*, createdAt: Date, address, rawTx: \*, transaction: \*}>>` ⏏ * [createMetaTx(rawTransaction, authData, authFnName, options)](#exp_module_@aeternity/aepp-sdk/es/contract/ga--createMetaTx) β‡’ `String` ⏏ - - -### exports.GeneralizeAccount([options]) β‡’ `Object` ⏏ -GeneralizeAccount Stamp - -Provide Generalize Account implementation -[@aeternity/aepp-sdk/es/contract/ga](#module_@aeternity/aepp-sdk/es/contract/ga) clients. - -**Kind**: Exported function -**Returns**: `Object` - GeneralizeAccount instance -**rtype**: `Stamp` - -| Param | Type | Default | Description | -| --- | --- | --- | --- | -| [options] | `Object` | {} | Initializer object | - -**Example** -```js -const authContract = `` -await client.createGeneralizeAccount(authFnName, authContract, [...authFnArguments] -// Make spend using GA -const callData = 'cb_...' // encoded call data for auth contract -await client.spend(10000, receiverPub, { authData: { callData } }) -// or -await client.spend(10000, receiverPub, { authData: { source: authContract, args: [...authContractArgs] } }) // sdk will prepare callData itself -``` ### createGeneralizeAccount(authFnName, source, args, options) β‡’ `Promise.<Readonly.<{result: \*, owner: \*, createdAt: Date, address, rawTx: \*, transaction: \*}>>` ⏏ diff --git a/es/ae/aens.js b/es/ae/aens.js index 0942704be0..3de35431d8 100644 --- a/es/ae/aens.js +++ b/es/ae/aens.js @@ -171,7 +171,7 @@ async function claim (name, salt, options = {}) { const result = await this.send(claimTx, opt) if (opt.vsn === 1 || name.split('.')[0].length > 12) { delete opt.vsn - const nameInter = this.Chain.defaults.waitMined ? await this.aensQuery(name, opt) : {} + const nameInter = opt.waitMined ? await this.aensQuery(name, opt) : {} return Object.assign(result, nameInter) } return result diff --git a/package-lock.json b/package-lock.json index 7b225c7651..2d9599a4f6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@aeternity/aepp-sdk", - "version": "6.0.1", + "version": "6.0.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -8626,7 +8626,7 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true } @@ -9943,7 +9943,7 @@ }, "strip-eof": { "version": "1.0.0", - "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, diff --git a/package.json b/package.json index 3336e85cf2..f2cbce1657 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@aeternity/aepp-sdk", - "version": "6.0.1", + "version": "6.0.2", "description": "SDK for the Γ¦ternity blockchain", "main": "dist/aepp-sdk.js", "browser": "dist/aepp-sdk.browser.js", From 66cef36983b3e2ea9fe05cd88eb9a7c101e8da92 Mon Sep 17 00:00:00 2001 From: Taras Herasymchuk Date: Thu, 31 Oct 2019 13:47:24 +0200 Subject: [PATCH 02/51] removed empty lines --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 193373dcd9..c16ce4a778 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,7 +19,6 @@ - # [6.0.0](https://github.com/aeternity/aepp-sdk-js/compare/4.7.0...6.0.0) (2019-10-16) From 1f801ab6ba465ccb321c53c7542fa99e850c8aa7 Mon Sep 17 00:00:00 2001 From: Taras Herasymchuk Date: Thu, 31 Oct 2019 13:50:47 +0200 Subject: [PATCH 03/51] style(changelog): added whitespaces to separate changelog sections --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c16ce4a778..127e6c88bf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,9 @@ + + + # [6.0.0](https://github.com/aeternity/aepp-sdk-js/compare/4.7.0...6.0.0) (2019-10-16) From 1128bbd4ccc534999d9357dcb556532898c77f6c Mon Sep 17 00:00:00 2001 From: naz_dou <41945483+nduchak@users.noreply.github.com> Date: Tue, 8 Oct 2019 18:51:11 +0300 Subject: [PATCH 04/51] Feat(AENS): auction name fee calculation (#706) * chrome(Release): Bump version 5.0.0. Regenerate docs * chrome(Release): Prepare CHANGELOG. Regenerate lock file * feat(AENS): Add auction name fee helpers and schema * feat(AENS): Add nameFee calculation and validation to name `claim` function * feat(AENS): Fix name length * feat(AENS): Add `bid` function. Add test for name auction * feat(AENS): Clear logs --- es/ae/aens.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/es/ae/aens.js b/es/ae/aens.js index 3de35431d8..aaf3c729b1 100644 --- a/es/ae/aens.js +++ b/es/ae/aens.js @@ -32,6 +32,29 @@ import { commitmentHash, isNameValid, getMinimumNameFee, classify } from '../tx/ import Ae from './' import { CLIENT_TTL, NAME_FEE, NAME_TTL } from '../tx/builder/schema' +/** + * Transfer a domain to another account + * @instance + * @function + * @alias module:@aeternity/aepp-sdk/es/ae/aens + * @category async + * @param {String} nameId + * @param {String} account + * @param {Object} [options={}] + * @return {Promise} + */ +async function transfer (nameId, account, options = {}) { + const opt = R.merge(this.Ae.defaults, options) + + const nameTransferTx = await this.nameTransferTx(R.merge(opt, { + nameId, + accountId: await this.address(opt), + recipientId: account + })) + + return this.send(nameTransferTx, opt) +} + /** * Revoke a domain * @instance @@ -210,6 +233,10 @@ async function preclaim (name, options = {}) { }) } +async function bid (name, nameFee = NAME_FEE, options = {}) { + return this.aensClaim(name, 0, { ...options, nameFee, vsn: 2 }) +} + /** * Bid to name auction * @instance From 6d4078e6ff0a2d3290072a1ff1528c935c4b5fee Mon Sep 17 00:00:00 2001 From: naz_dou <41945483+nduchak@users.noreply.github.com> Date: Thu, 10 Oct 2019 16:12:02 +0300 Subject: [PATCH 05/51] refactor(AENS): refactor claim (#709) * chrome(Release): Bump version 5.0.0. Regenerate docs * chrome(Release): Prepare CHANGELOG. Regenerate lock file * refactor(constants): Move const to shema. Improve isAddressValid. * refactor(constants): Move const to shema. Improve isAddressValid. * refactor(AENS): Remove `prelimaCommitmentId`. Add function for generating `nameId` * refactor(AE): Generate nameId in spend by name function instead of calling node --- es/ae/aens.js | 27 --------------------------- es/utils/crypto.js | 2 +- 2 files changed, 1 insertion(+), 28 deletions(-) diff --git a/es/ae/aens.js b/es/ae/aens.js index aaf3c729b1..3de35431d8 100644 --- a/es/ae/aens.js +++ b/es/ae/aens.js @@ -32,29 +32,6 @@ import { commitmentHash, isNameValid, getMinimumNameFee, classify } from '../tx/ import Ae from './' import { CLIENT_TTL, NAME_FEE, NAME_TTL } from '../tx/builder/schema' -/** - * Transfer a domain to another account - * @instance - * @function - * @alias module:@aeternity/aepp-sdk/es/ae/aens - * @category async - * @param {String} nameId - * @param {String} account - * @param {Object} [options={}] - * @return {Promise} - */ -async function transfer (nameId, account, options = {}) { - const opt = R.merge(this.Ae.defaults, options) - - const nameTransferTx = await this.nameTransferTx(R.merge(opt, { - nameId, - accountId: await this.address(opt), - recipientId: account - })) - - return this.send(nameTransferTx, opt) -} - /** * Revoke a domain * @instance @@ -233,10 +210,6 @@ async function preclaim (name, options = {}) { }) } -async function bid (name, nameFee = NAME_FEE, options = {}) { - return this.aensClaim(name, 0, { ...options, nameFee, vsn: 2 }) -} - /** * Bid to name auction * @instance diff --git a/es/utils/crypto.js b/es/utils/crypto.js index c17559413d..7b9fd99a9c 100644 --- a/es/utils/crypto.js +++ b/es/utils/crypto.js @@ -195,7 +195,7 @@ export function decodeBase64Check (str) { /** * Base58 encode given `input` * @rtype (input: String) => String - * @param {String} input - Data to encode + * @param {String|Buffer} input - Data to encode * @return {String} Base58 encoded data */ export function encodeBase58Check (input) { From deed7fcbd6eae6cd444b647dc46019034f290d31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Powaga?= Date: Wed, 16 Oct 2019 15:20:43 +0100 Subject: [PATCH 06/51] =?UTF-8?q?feat(state=20channels):=20make=20state=20?= =?UTF-8?q?channels=20compatible=20with=20node=20v5.0.0=E2=80=A6=20(#688)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(Lima): Create Lima branch * feat(Compiler): Compiler 4.0.0 compatibility (#632) * feat(newCompiler): Increase compiler version. Add `backend` option to compiler API * fix(TX): Add fate vm version * feat(Contract): Make Contract works with node 5.0.0 rc1 (lima hard-fork) and compiler 4.0.0 rc2 * chore(test): Debug channel test * fix(channel): fix contract in channel test * chore(test): Remove logs * feat(ACI): Add `payable` to contract call * feat(ACI): Add test for payable * fix(Linter): Fix linter error * feat(Compiler): Point to compiler 3.2.0. Improve `payble` to support old compiler * feat(Compiler): disable payable test * feat(Lima): Point compiler to 4.0.0. Enable tests for `payable` * feat(Lima): Make contact for channel test payable * chore(test): Enable tests * feat(Contract/ACI): Add ability to use contract with external deps(`include "someLib"`) (#653) * docs(Contract): Adjust contract docs (#658) * Release 4.7.0-next.1 (#660) * chore(release): Generate CHANGELOG. Bump version * chore(test): Test backward compatibility * chore(test): revert * feat(SCHEMA): Add fate constants * chore(release): bump version to 5.0.0-next.1 * feat(Lima): add check for compiler <-> consensus protocol version check * feat(Lima): add check for abi/vm <-> backend(FATE/AEVM) (#680) * feat(Lima): add check for abi/vm <-> backend(FATE/AEVM) * feat(Lima): add check for abi/vm <-> backend(FATE/AEVM) * feat(Contract): Add fate tests * feat(Contract): enable all tests * feat(Node): Add check in dry-run endpoint(node cross compatibility) * feat(Contract): enable all tests * feat(Contract): enable all tests * feat(Contract): fix docker file run command * feat(Swagger): Resolve refs * feat(tests): Skip Channel and AENS * feat(Node): Change compatibility range from 4.x.x to 5.x.x * feat(Node): Change compatibility range from 4.x.x to 6.0.0 * fix(Oracle): fix abi field resolving * chrome(build): Regenerate lock * feat(state channels): make state channels compatible with node v5.0.0-rc.2 * feat(Compiler): make FATE by default (#693) * feat(Contract): Use FATE by default * Fix lint error * feat(AENS): Lima compatibility (#687) * Aens lima compatibility * Make aens cross compatible with pre-lima releases * Remove .only * Fix native build of claim tx test * feat(GA): Make GA compatible with Lima. Add cross compiler compatibility * fix(Test): Fix test for cross compatibility. Add test for AEVM * fix(AE): Add pointers verification for spend by name. Improve AENS cross node tests * build(Node): Point node to 5.0.0-rc3 * Change node version to v5.0.0-rc.3 * Fix test * Fix channel contracts tests --- CHANGELOG.md | 2 +- docs/api/ae/contract.md | 3 +++ package-lock.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 127e6c88bf..c22973539d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1128,4 +1128,4 @@ fix(AEP exampe): Fix contract in AEPP example ### Bug Fixes -* **Chore** More consistent code examples +* **Chore** More consistent code examples \ No newline at end of file diff --git a/docs/api/ae/contract.md b/docs/api/ae/contract.md index 8292ecb9e7..fd8874c53c 100644 --- a/docs/api/ae/contract.md +++ b/docs/api/ae/contract.md @@ -215,7 +215,10 @@ Compile contract source code | source | `String` | | Contract sourece code | | [options] | `Object` | {} | Transaction options (fee, ttl, gas, amount, deposit) | | [options.filesystem] | `Object` | {} | Contract external namespaces map* @return {Promise} Result object | +<<<<<<< HEAD +======= | [options.backend] | `Object` | 'aevm' | Contract backend version (aevm|fate) | +>>>>>>> develop **Example** ```js diff --git a/package-lock.json b/package-lock.json index 2d9599a4f6..de940579da 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11146,4 +11146,4 @@ } } } -} +} \ No newline at end of file From 9725b0898107684afbe7f4c8aceb80d201577843 Mon Sep 17 00:00:00 2001 From: naz_dou <41945483+nduchak@users.noreply.github.com> Date: Thu, 17 Oct 2019 16:21:15 +0300 Subject: [PATCH 07/51] Realign 6.0.0 (#719) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chrome(Release): Bump version 5.0.0. Regenerate docs * chrome(Release): Prepare CHANGELOG. Regenerate lock file * Release 6.0.0 (#716) * Update @aeternity/aepp-sdk in group default to the latest version πŸš€ (#702) * fix(package): update @aeternity/aepp-sdk to version 5.0.0 * fix(package): update @aeternity/aepp-sdk to version 5.0.0 * chore(package): update lockfile examples/browser/vuejs/connect-two-ae/identity/yarn.lock * chore(package): update lockfile examples/browser/vuejs/connect-two-ae/aepp/yarn.lock * Realign 5.0.0 (#701) * chrome(Release): Bump version 5.0.0. Regenerate docs * chrome(Release): Prepare CHANGELOG. Regenerate lock file * Update README.md (#704) fix typo * Feat(AENS): auction name fee calculation (#706) * chrome(Release): Bump version 5.0.0. Regenerate docs * chrome(Release): Prepare CHANGELOG. Regenerate lock file * feat(AENS): Add auction name fee helpers and schema * feat(AENS): Add nameFee calculation and validation to name `claim` function * feat(AENS): Fix name length * feat(AENS): Add `bid` function. Add test for name auction * feat(AENS): Clear logs * refactor(AENS): refactor claim (#709) * chrome(Release): Bump version 5.0.0. Regenerate docs * chrome(Release): Prepare CHANGELOG. Regenerate lock file * refactor(constants): Move const to shema. Improve isAddressValid. * refactor(constants): Move const to shema. Improve isAddressValid. * refactor(AENS): Remove `prelimaCommitmentId`. Add function for generating `nameId` * refactor(AE): Generate nameId in spend by name function instead of calling node * Fix(Example): FIx example app (#712) * chrome(Release): Bump version 5.0.0. Regenerate docs * chrome(Release): Prepare CHANGELOG. Regenerate lock file * fix(examples): Fix contract in example AEPP * fix(examples): Add compilerVersion to AEPP example app * fix(Compiler): Add cross compiler compatibility for old compiler * fix(Compiler): Revert cross compiler options check * chore(Jenkins): Force * fix(AENS): Change tld for Lima from `aet` to `chain` (#714) * fix(AENS): Change tld for Lima from `aet` to `chain` Point docker to the rc-5 node and 4.0.0 compiler Move `classify` method from AENS to transaction builder helpers * fix(AENS): Fix claim command with new tld * feat(SPEND): Add additional validation for recipient (#715) * feat(state channels): make state channels compatible with node v5.0.0… (#688) * feat(Lima): Create Lima branch * feat(Compiler): Compiler 4.0.0 compatibility (#632) * feat(newCompiler): Increase compiler version. Add `backend` option to compiler API * fix(TX): Add fate vm version * feat(Contract): Make Contract works with node 5.0.0 rc1 (lima hard-fork) and compiler 4.0.0 rc2 * chore(test): Debug channel test * fix(channel): fix contract in channel test * chore(test): Remove logs * feat(ACI): Add `payable` to contract call * feat(ACI): Add test for payable * fix(Linter): Fix linter error * feat(Compiler): Point to compiler 3.2.0. Improve `payble` to support old compiler * feat(Compiler): disable payable test * feat(Lima): Point compiler to 4.0.0. Enable tests for `payable` * feat(Lima): Make contact for channel test payable * chore(test): Enable tests * feat(Contract/ACI): Add ability to use contract with external deps(`include "someLib"`) (#653) * docs(Contract): Adjust contract docs (#658) * Release 4.7.0-next.1 (#660) * chore(release): Generate CHANGELOG. Bump version * chore(test): Test backward compatibility * chore(test): revert * feat(SCHEMA): Add fate constants * chore(release): bump version to 5.0.0-next.1 * feat(Lima): add check for compiler <-> consensus protocol version check * feat(Lima): add check for abi/vm <-> backend(FATE/AEVM) (#680) * feat(Lima): add check for abi/vm <-> backend(FATE/AEVM) * feat(Lima): add check for abi/vm <-> backend(FATE/AEVM) * feat(Contract): Add fate tests * feat(Contract): enable all tests * feat(Node): Add check in dry-run endpoint(node cross compatibility) * feat(Contract): enable all tests * feat(Contract): enable all tests * feat(Contract): fix docker file run command * feat(Swagger): Resolve refs * feat(tests): Skip Channel and AENS * feat(Node): Change compatibility range from 4.x.x to 5.x.x * feat(Node): Change compatibility range from 4.x.x to 6.0.0 * fix(Oracle): fix abi field resolving * chrome(build): Regenerate lock * feat(state channels): make state channels compatible with node v5.0.0-rc.2 * feat(Compiler): make FATE by default (#693) * feat(Contract): Use FATE by default * Fix lint error * feat(AENS): Lima compatibility (#687) * Aens lima compatibility * Make aens cross compatible with pre-lima releases * Remove .only * Fix native build of claim tx test * feat(GA): Make GA compatible with Lima. Add cross compiler compatibility * fix(Test): Fix test for cross compatibility. Add test for AEVM * fix(AE): Add pointers verification for spend by name. Improve AENS cross node tests * build(Node): Point node to 5.0.0-rc3 * Change node version to v5.0.0-rc.3 * Fix test * Fix channel contracts tests * chore(release): Bump version to 6.0.0 * chore(release): Adjust CHANGELOG. Regenerate lock file. Regenerate docs * chore(release): Force Jenkins * chore(Test): Adjust timeout for pollQuery test * chrome(test): enable State chanel tests * chrome(test): fix oracle pollQuery --- CHANGELOG.md | 2 +- docs/api/ae/contract.md | 4 +--- package-lock.json | 10 +++++++++- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c22973539d..127e6c88bf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1128,4 +1128,4 @@ fix(AEP exampe): Fix contract in AEPP example ### Bug Fixes -* **Chore** More consistent code examples \ No newline at end of file +* **Chore** More consistent code examples diff --git a/docs/api/ae/contract.md b/docs/api/ae/contract.md index fd8874c53c..789aee7513 100644 --- a/docs/api/ae/contract.md +++ b/docs/api/ae/contract.md @@ -6,6 +6,7 @@ Contract module - routines to interact with the Γ¦ternity contract High level documentation of the contracts are available at https://github.com/aeternity/protocol/tree/master/contracts and +**Export**: Contract **Example** ```js import Contract from '@aeternity/aepp-sdk/es/ae/contract' (Using tree-shaking) @@ -215,10 +216,7 @@ Compile contract source code | source | `String` | | Contract sourece code | | [options] | `Object` | {} | Transaction options (fee, ttl, gas, amount, deposit) | | [options.filesystem] | `Object` | {} | Contract external namespaces map* @return {Promise} Result object | -<<<<<<< HEAD -======= | [options.backend] | `Object` | 'aevm' | Contract backend version (aevm|fate) | ->>>>>>> develop **Example** ```js diff --git a/package-lock.json b/package-lock.json index de940579da..fb41592979 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6884,11 +6884,19 @@ "integrity": "sha512-1XM2w00YkufeLVhFbw9aV+NTftzqECkEU1Amw2MxCbYuyy4L6MH5y8MWOg3shN6X/9R3e1pp6RCSXPnbFRTVCA==" }, "libsodium-wrappers-sumo": { +<<<<<<< HEAD "version": "0.7.6", "resolved": "https://registry.npmjs.org/libsodium-wrappers-sumo/-/libsodium-wrappers-sumo-0.7.6.tgz", "integrity": "sha512-pwYQ1ZR/UwXBMY4tFDcjYZrBFgexkhRykzcE9Jv0l/J41Tp7PqHYfHA17YpOxIXrAIRBPVSlPo2VxHoGZZKwXA==", "requires": { "libsodium-sumo": "0.7.6" +======= + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/libsodium-wrappers-sumo/-/libsodium-wrappers-sumo-0.7.5.tgz", + "integrity": "sha512-iKnBoRI6TagVZeD9lThftKRYYruwhNQY1g9AuM04OwA+kEy5LXTQPdy93clpnHp7AhMJ1V09mu57gmKYmgpSFA==", + "requires": { + "libsodium-sumo": "0.7.5" +>>>>>>> Realign 6.0.0 (#719) } }, "linkify-it": { @@ -11146,4 +11154,4 @@ } } } -} \ No newline at end of file +} From c8ebb762ca814b486d01cb1a9236abcdc5239766 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" <23040076+greenkeeper[bot]@users.noreply.github.com> Date: Tue, 22 Oct 2019 12:03:28 +0700 Subject: [PATCH 08/51] =?UTF-8?q?Update=20libsodium-wrappers-sumo=20to=20t?= =?UTF-8?q?he=20latest=20version=20=F0=9F=9A=80=20(#721)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(package): update libsodium-wrappers-sumo to version 0.7.6 * chore(package): update lockfile package-lock.json --- package-lock.json | 8 -------- 1 file changed, 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index fb41592979..2d9599a4f6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6884,19 +6884,11 @@ "integrity": "sha512-1XM2w00YkufeLVhFbw9aV+NTftzqECkEU1Amw2MxCbYuyy4L6MH5y8MWOg3shN6X/9R3e1pp6RCSXPnbFRTVCA==" }, "libsodium-wrappers-sumo": { -<<<<<<< HEAD "version": "0.7.6", "resolved": "https://registry.npmjs.org/libsodium-wrappers-sumo/-/libsodium-wrappers-sumo-0.7.6.tgz", "integrity": "sha512-pwYQ1ZR/UwXBMY4tFDcjYZrBFgexkhRykzcE9Jv0l/J41Tp7PqHYfHA17YpOxIXrAIRBPVSlPo2VxHoGZZKwXA==", "requires": { "libsodium-sumo": "0.7.6" -======= - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/libsodium-wrappers-sumo/-/libsodium-wrappers-sumo-0.7.5.tgz", - "integrity": "sha512-iKnBoRI6TagVZeD9lThftKRYYruwhNQY1g9AuM04OwA+kEy5LXTQPdy93clpnHp7AhMJ1V09mu57gmKYmgpSFA==", - "requires": { - "libsodium-sumo": "0.7.5" ->>>>>>> Realign 6.0.0 (#719) } }, "linkify-it": { From 4ff3345136543686c51a91d701004ef1f69cf200 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" <23040076+greenkeeper[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2019 13:17:25 +0200 Subject: [PATCH 09/51] =?UTF-8?q?Update=20commander=20to=20the=20latest=20?= =?UTF-8?q?version=20=F0=9F=9A=80=20(#743)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(package): update commander to version 4.0.0 * chore(package): update lockfile package-lock.json --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2d9599a4f6..94f1d54c08 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2822,9 +2822,9 @@ } }, "commander": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", - "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.0.0.tgz", + "integrity": "sha512-SEa2abMBTZuEjLVYpNrAFoRgxPwG4rXP3+SGY6CM/HZGeDzIA7Pzp+7H3AHDukKEpyy2SoSGGPShKqqfH9T9AQ==" }, "commitizen": { "version": "4.0.3", diff --git a/package.json b/package.json index f2cbce1657..66ad0d6f3c 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "bip32-path": "^0.4.2", "blakejs": "^1.1.0", "bs58check": "^2.1.1", - "commander": "^3.0.0", + "commander": "^4.0.0", "joi-browser": "^13.4.0", "libsodium-wrappers-sumo": "0.7.6", "ramda": "^0.26.1", From b5800573878e4e3aee91499a49e9579148753b88 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" <23040076+greenkeeper[bot]@users.noreply.github.com> Date: Mon, 4 Nov 2019 11:28:26 +0200 Subject: [PATCH 10/51] =?UTF-8?q?Update=20vue-loader=20in=20group=20defaul?= =?UTF-8?q?t=20to=20the=20latest=20version=20=F0=9F=9A=80=20(#745)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(package): update vue-loader to version 15.7.2 * chore(package): update vue-loader to version 15.7.2 --- examples/browser/vuejs/connect-two-ae/aepp/package.json | 2 +- examples/browser/vuejs/connect-two-ae/identity/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/browser/vuejs/connect-two-ae/aepp/package.json b/examples/browser/vuejs/connect-two-ae/aepp/package.json index 0a72e34dac..9d9e679d27 100644 --- a/examples/browser/vuejs/connect-two-ae/aepp/package.json +++ b/examples/browser/vuejs/connect-two-ae/aepp/package.json @@ -48,7 +48,7 @@ "standard-loader": "^7.0.0", "style-loader": "^1.0.0", "tailwindcss": "^0.5.3", - "vue-loader": "15.7.1", + "vue-loader": "15.7.2", "vue-style-loader": "^4.1.0", "webpack": "^4.36.1", "webpack-bundle-analyzer": "^3.3.2", diff --git a/examples/browser/vuejs/connect-two-ae/identity/package.json b/examples/browser/vuejs/connect-two-ae/identity/package.json index 0a72e34dac..9d9e679d27 100644 --- a/examples/browser/vuejs/connect-two-ae/identity/package.json +++ b/examples/browser/vuejs/connect-two-ae/identity/package.json @@ -48,7 +48,7 @@ "standard-loader": "^7.0.0", "style-loader": "^1.0.0", "tailwindcss": "^0.5.3", - "vue-loader": "15.7.1", + "vue-loader": "15.7.2", "vue-style-loader": "^4.1.0", "webpack": "^4.36.1", "webpack-bundle-analyzer": "^3.3.2", From 13cdd077338c690a273addcbd5eea5b9306a3351 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" <23040076+greenkeeper[bot]@users.noreply.github.com> Date: Mon, 4 Nov 2019 12:28:04 +0200 Subject: [PATCH 11/51] =?UTF-8?q?Update=20rlp=20to=20the=20latest=20versio?= =?UTF-8?q?n=20=F0=9F=9A=80=20(#744)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(package): update rlp to version 2.2.4 * chore(package): update lockfile package-lock.json --- package-lock.json | 9 ++++----- package.json | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 94f1d54c08..cad0584ecf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8983,12 +8983,11 @@ } }, "rlp": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.3.tgz", - "integrity": "sha512-l6YVrI7+d2vpW6D6rS05x2Xrmq8oW7v3pieZOJKBEdjuTF4Kz/iwk55Zyh1Zaz+KOB2kC8+2jZlp2u9L4tTzCQ==", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.4.tgz", + "integrity": "sha512-fdq2yYCWpAQBhwkZv+Z8o/Z4sPmYm1CUq6P7n6lVTOdb949CnqA0sndXal5C1NleSVSZm6q5F3iEbauyVln/iw==", "requires": { - "bn.js": "^4.11.1", - "safe-buffer": "^5.1.1" + "bn.js": "^4.11.1" } }, "run-async": { diff --git a/package.json b/package.json index 66ad0d6f3c..a99ad1f0cc 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "joi-browser": "^13.4.0", "libsodium-wrappers-sumo": "0.7.6", "ramda": "^0.26.1", - "rlp": "2.2.3", + "rlp": "2.2.4", "serialize-javascript": "^2.0.0", "sha.js": "^2.4.11", "tweetnacl": "^1.0.0", From 4c1f5e44862fd8df3fb4ac711f7b1fa5b5c90ff8 Mon Sep 17 00:00:00 2001 From: naz_dou <41945483+nduchak@users.noreply.github.com> Date: Mon, 4 Nov 2019 19:59:47 +0700 Subject: [PATCH 12/51] fix(AENS): auction end block calculation (#746) * fix(AENS): auction end block calculation * chore(build): Update node to 5.0.2 --- .env | 2 +- es/ae/index.js | 1 - es/tx/builder/helpers.js | 6 +++--- es/tx/builder/schema.js | 6 +++--- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/.env b/.env index d51a806139..df58cdbdce 100644 --- a/.env +++ b/.env @@ -1,2 +1,2 @@ -TAG=v5.0.0-rc.5 +TAG=v5.0.2 COMPILER_TAG=v4.0.0 diff --git a/es/ae/index.js b/es/ae/index.js index 5152116bcb..c688b64af3 100644 --- a/es/ae/index.js +++ b/es/ae/index.js @@ -76,7 +76,6 @@ async function spend (amount, recipientId, options = {}) { /** * Resolve AENS name and return name hash - * * @param {String} nameOrAddress * @param verify * @return {String} Address or AENS name hash diff --git a/es/tx/builder/helpers.js b/es/tx/builder/helpers.js index a6402ab21c..56f54621c7 100644 --- a/es/tx/builder/helpers.js +++ b/es/tx/builder/helpers.js @@ -297,9 +297,9 @@ export function computeBidFee (domain, startFee = NAME_FEE, increment = NAME_FEE export function computeAuctionEndBlock (domain, claimHeight) { return R.cond([ - [R.lt(4), R.always(NAME_BID_TIMEOUTS[1] + claimHeight)], - [R.lt(8), R.always(NAME_BID_TIMEOUTS[4] + claimHeight)], - [R.lte(NAME_BID_MAX_LENGTH), R.always(NAME_BID_TIMEOUTS[8] + claimHeight)], + [R.lt(5), R.always(NAME_BID_TIMEOUTS[4] + claimHeight)], + [R.lt(9), R.always(NAME_BID_TIMEOUTS[8] + claimHeight)], + [R.lte(NAME_BID_MAX_LENGTH), R.always(NAME_BID_TIMEOUTS[12] + claimHeight)], [R.T, R.always(claimHeight)] ])(domain.replace('.chain', '').length) } diff --git a/es/tx/builder/schema.js b/es/tx/builder/schema.js index 92d1f76110..42354c9494 100644 --- a/es/tx/builder/schema.js +++ b/es/tx/builder/schema.js @@ -72,9 +72,9 @@ export const NAME_BID_RANGES = { // # name bid timeouts export const NAME_BID_TIMEOUTS = { 13: 0, - 8: NAME_BID_TIMEOUT_BLOCKS, // # 480 blocks - 4: 31 * NAME_BID_TIMEOUT_BLOCKS, // # 14880 blocks - 1: 62 * NAME_BID_TIMEOUT_BLOCKS // # 29760 blocks + 12: NAME_BID_TIMEOUT_BLOCKS, // # 480 blocks + 8: 31 * NAME_BID_TIMEOUT_BLOCKS, // # 14880 blocks + 4: 62 * NAME_BID_TIMEOUT_BLOCKS // # 29760 blocks } // # Tag constant for ids (type uint8) From fd1422546a1cd20bc9d455d3e4d2690ca88b0695 Mon Sep 17 00:00:00 2001 From: naz_dou <41945483+nduchak@users.noreply.github.com> Date: Mon, 4 Nov 2019 21:13:05 +0700 Subject: [PATCH 13/51] =?UTF-8?q?fix(AENS):=20Fix=20`produceNameId`=20func?= =?UTF-8?q?tion(Make=20name=20lowercase).=20Enable=20=E2=80=A6=20(#750)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(AENS): Fix `produceNameId` function(Make name lowercase). Enable spend by name test * chore(Test): Increase amount of tokens for AENS tests --- es/tx/builder/helpers.js | 2 +- test/integration/aens.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/es/tx/builder/helpers.js b/es/tx/builder/helpers.js index 56f54621c7..ca4e99b5c6 100644 --- a/es/tx/builder/helpers.js +++ b/es/tx/builder/helpers.js @@ -97,7 +97,7 @@ export function formatSalt (salt) { */ export function produceNameId (name) { const namespace = R.last(name.split('.')) - if (namespace === 'chain') return encode(hash(name), 'nm') + if (namespace === 'chain') return encode(hash(name.toLowerCase()), 'nm') return encode(nameHash(name), 'nm') } diff --git a/test/integration/aens.js b/test/integration/aens.js index 1b65aca831..3db4ec957c 100644 --- a/test/integration/aens.js +++ b/test/integration/aens.js @@ -35,7 +35,7 @@ function randomString (len, charSet) { return randomString } -plan('9000000000000000000000') +plan('99000000000000000000000') describe('Aens', function () { configure(this) @@ -109,7 +109,7 @@ describe('Aens', function () { }) }) - it.skip('Spend by name', async () => { + it('Spend by name', async () => { const current = await aens.address() const onAccount = aens.addresses().find(acc => acc !== current) await aens.spend(100, name, { onAccount, verify: true }) From bf11eb637e64be1ba806df764af1c24294dd59ad Mon Sep 17 00:00:00 2001 From: Denis Davidyuk Date: Tue, 5 Nov 2019 00:51:24 +1000 Subject: [PATCH 14/51] aensQuery: Fix default value of pointers field (#735) --- es/ae/aens.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/es/ae/aens.js b/es/ae/aens.js index 3de35431d8..eb669d3ae1 100644 --- a/es/ae/aens.js +++ b/es/ae/aens.js @@ -114,7 +114,7 @@ async function query (name, opt = {}) { const nameId = o.id return Object.freeze(Object.assign(o, { - pointers: o.pointers || {}, + pointers: o.pointers || [], update: async (target, options) => { return { ...(await this.aensUpdate(nameId, target, R.merge(opt, options))), From 11d805577100b8295245ed1d0572d0ca70d47e41 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" <23040076+greenkeeper[bot]@users.noreply.github.com> Date: Mon, 4 Nov 2019 17:22:24 +0200 Subject: [PATCH 15/51] =?UTF-8?q?Update=20@aeternity/aepp-sdk=20in=20group?= =?UTF-8?q?=20default=20to=20the=20latest=20version=20=F0=9F=9A=80=20(#733?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(package): update @aeternity/aepp-sdk to version 6.0.1 * fix(package): update @aeternity/aepp-sdk to version 6.0.1 * chore(package): update lockfile examples/browser/vuejs/connect-two-ae/identity/yarn.lock * chore(package): update lockfile examples/browser/vuejs/connect-two-ae/aepp/yarn.lock --- .../vuejs/connect-two-ae/aepp/package.json | 2 +- .../vuejs/connect-two-ae/aepp/yarn.lock | 28 +++++++++---------- .../connect-two-ae/identity/package.json | 2 +- .../vuejs/connect-two-ae/identity/yarn.lock | 28 +++++++++---------- 4 files changed, 30 insertions(+), 30 deletions(-) diff --git a/examples/browser/vuejs/connect-two-ae/aepp/package.json b/examples/browser/vuejs/connect-two-ae/aepp/package.json index 9d9e679d27..6088485088 100644 --- a/examples/browser/vuejs/connect-two-ae/aepp/package.json +++ b/examples/browser/vuejs/connect-two-ae/aepp/package.json @@ -13,7 +13,7 @@ "author": "Enrico Icardi ", "license": "ISC", "dependencies": { - "@aeternity/aepp-sdk": "6.0.0", + "@aeternity/aepp-sdk": "6.0.1", "purgecss-webpack-plugin": "^1.2.0", "vue": "^2.5.16", "vue-router": "^3.0.1", diff --git a/examples/browser/vuejs/connect-two-ae/aepp/yarn.lock b/examples/browser/vuejs/connect-two-ae/aepp/yarn.lock index ef4d440c8a..2b6ab78720 100644 --- a/examples/browser/vuejs/connect-two-ae/aepp/yarn.lock +++ b/examples/browser/vuejs/connect-two-ae/aepp/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@aeternity/aepp-sdk@6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@aeternity/aepp-sdk/-/aepp-sdk-6.0.0.tgz#ea03ebd4334b6380366c66cf428789bc36597007" - integrity sha512-lXedsDwCIFClE1tuumVq14EFwOuvQurI1FHVRcCI6nzFEZlYk5Yrsn72aJT0EqoQQp3aT9jRU30fEcQS+V/5PA== +"@aeternity/aepp-sdk@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@aeternity/aepp-sdk/-/aepp-sdk-6.0.1.tgz#593816e2abad8265ab133592632fed215488b250" + integrity sha512-ydon6Y0g8MxxKwJaXT1xlGiCRMlGu6Gos6Ab7+CFkOmOr0y7TeR2CunY/YVbpHBpHAOfq+fvyKxsn68F0k3Ubw== dependencies: "@aeternity/bip39" "^0.1.0" "@babel/runtime" "^7.6.2" @@ -20,7 +20,7 @@ bs58check "^2.1.1" commander "^3.0.0" joi-browser "^13.4.0" - libsodium-wrappers-sumo "0.7.5" + libsodium-wrappers-sumo "0.7.6" ramda "^0.26.1" rlp "2.2.3" serialize-javascript "^2.0.0" @@ -5262,17 +5262,17 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -libsodium-sumo@0.7.5: - version "0.7.5" - resolved "https://registry.yarnpkg.com/libsodium-sumo/-/libsodium-sumo-0.7.5.tgz#0cd02ff2f59444c98d4bf9c9688b6533e2e41a67" - integrity sha512-dMFGn0cPpvwyU8/tpI9xe/6U5U8D/rVcAuc908bpL9e8LH2dPO0n3jNatOLLdmhc2RxmEAQ+3ArkTZI/c9XdCQ== +libsodium-sumo@0.7.6: + version "0.7.6" + resolved "https://registry.yarnpkg.com/libsodium-sumo/-/libsodium-sumo-0.7.6.tgz#935a80f95165a2f7d33a77bc8f1cde62130d93dc" + integrity sha512-1XM2w00YkufeLVhFbw9aV+NTftzqECkEU1Amw2MxCbYuyy4L6MH5y8MWOg3shN6X/9R3e1pp6RCSXPnbFRTVCA== -libsodium-wrappers-sumo@0.7.5: - version "0.7.5" - resolved "https://registry.yarnpkg.com/libsodium-wrappers-sumo/-/libsodium-wrappers-sumo-0.7.5.tgz#f3e48e08ee287514a0f30af9c807120357fe50eb" - integrity sha512-iKnBoRI6TagVZeD9lThftKRYYruwhNQY1g9AuM04OwA+kEy5LXTQPdy93clpnHp7AhMJ1V09mu57gmKYmgpSFA== +libsodium-wrappers-sumo@0.7.6: + version "0.7.6" + resolved "https://registry.yarnpkg.com/libsodium-wrappers-sumo/-/libsodium-wrappers-sumo-0.7.6.tgz#0fc9f422470d192370c4213f3c46e41ebda35e77" + integrity sha512-pwYQ1ZR/UwXBMY4tFDcjYZrBFgexkhRykzcE9Jv0l/J41Tp7PqHYfHA17YpOxIXrAIRBPVSlPo2VxHoGZZKwXA== dependencies: - libsodium-sumo "0.7.5" + libsodium-sumo "0.7.6" liftoff@^3.1.0: version "3.1.0" diff --git a/examples/browser/vuejs/connect-two-ae/identity/package.json b/examples/browser/vuejs/connect-two-ae/identity/package.json index 9d9e679d27..6088485088 100644 --- a/examples/browser/vuejs/connect-two-ae/identity/package.json +++ b/examples/browser/vuejs/connect-two-ae/identity/package.json @@ -13,7 +13,7 @@ "author": "Enrico Icardi ", "license": "ISC", "dependencies": { - "@aeternity/aepp-sdk": "6.0.0", + "@aeternity/aepp-sdk": "6.0.1", "purgecss-webpack-plugin": "^1.2.0", "vue": "^2.5.16", "vue-router": "^3.0.1", diff --git a/examples/browser/vuejs/connect-two-ae/identity/yarn.lock b/examples/browser/vuejs/connect-two-ae/identity/yarn.lock index ef4d440c8a..2b6ab78720 100644 --- a/examples/browser/vuejs/connect-two-ae/identity/yarn.lock +++ b/examples/browser/vuejs/connect-two-ae/identity/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@aeternity/aepp-sdk@6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@aeternity/aepp-sdk/-/aepp-sdk-6.0.0.tgz#ea03ebd4334b6380366c66cf428789bc36597007" - integrity sha512-lXedsDwCIFClE1tuumVq14EFwOuvQurI1FHVRcCI6nzFEZlYk5Yrsn72aJT0EqoQQp3aT9jRU30fEcQS+V/5PA== +"@aeternity/aepp-sdk@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@aeternity/aepp-sdk/-/aepp-sdk-6.0.1.tgz#593816e2abad8265ab133592632fed215488b250" + integrity sha512-ydon6Y0g8MxxKwJaXT1xlGiCRMlGu6Gos6Ab7+CFkOmOr0y7TeR2CunY/YVbpHBpHAOfq+fvyKxsn68F0k3Ubw== dependencies: "@aeternity/bip39" "^0.1.0" "@babel/runtime" "^7.6.2" @@ -20,7 +20,7 @@ bs58check "^2.1.1" commander "^3.0.0" joi-browser "^13.4.0" - libsodium-wrappers-sumo "0.7.5" + libsodium-wrappers-sumo "0.7.6" ramda "^0.26.1" rlp "2.2.3" serialize-javascript "^2.0.0" @@ -5262,17 +5262,17 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -libsodium-sumo@0.7.5: - version "0.7.5" - resolved "https://registry.yarnpkg.com/libsodium-sumo/-/libsodium-sumo-0.7.5.tgz#0cd02ff2f59444c98d4bf9c9688b6533e2e41a67" - integrity sha512-dMFGn0cPpvwyU8/tpI9xe/6U5U8D/rVcAuc908bpL9e8LH2dPO0n3jNatOLLdmhc2RxmEAQ+3ArkTZI/c9XdCQ== +libsodium-sumo@0.7.6: + version "0.7.6" + resolved "https://registry.yarnpkg.com/libsodium-sumo/-/libsodium-sumo-0.7.6.tgz#935a80f95165a2f7d33a77bc8f1cde62130d93dc" + integrity sha512-1XM2w00YkufeLVhFbw9aV+NTftzqECkEU1Amw2MxCbYuyy4L6MH5y8MWOg3shN6X/9R3e1pp6RCSXPnbFRTVCA== -libsodium-wrappers-sumo@0.7.5: - version "0.7.5" - resolved "https://registry.yarnpkg.com/libsodium-wrappers-sumo/-/libsodium-wrappers-sumo-0.7.5.tgz#f3e48e08ee287514a0f30af9c807120357fe50eb" - integrity sha512-iKnBoRI6TagVZeD9lThftKRYYruwhNQY1g9AuM04OwA+kEy5LXTQPdy93clpnHp7AhMJ1V09mu57gmKYmgpSFA== +libsodium-wrappers-sumo@0.7.6: + version "0.7.6" + resolved "https://registry.yarnpkg.com/libsodium-wrappers-sumo/-/libsodium-wrappers-sumo-0.7.6.tgz#0fc9f422470d192370c4213f3c46e41ebda35e77" + integrity sha512-pwYQ1ZR/UwXBMY4tFDcjYZrBFgexkhRykzcE9Jv0l/J41Tp7PqHYfHA17YpOxIXrAIRBPVSlPo2VxHoGZZKwXA== dependencies: - libsodium-sumo "0.7.5" + libsodium-sumo "0.7.6" liftoff@^3.1.0: version "3.1.0" From e0166c22d6244884e96480347d47579aadb28c64 Mon Sep 17 00:00:00 2001 From: Denis Davidyuk Date: Tue, 5 Nov 2019 02:17:51 +1000 Subject: [PATCH 16/51] Remove extra eslint exceptions (#729) --- es/ae/index.js | 1 - es/channel/handlers.js | 4 +--- es/channel/internal.js | 3 +-- es/contract/aci/transformation.js | 5 ++-- es/tx/builder/index.js | 24 ++++--------------- es/tx/builder/schema.js | 1 - es/tx/tx.js | 1 - es/utils/crypto.js | 3 +-- es/utils/swagger.js | 6 ++--- .../connect-two-ae/aepp/webpack.config.js | 3 +-- .../connect-two-ae/identity/webpack.config.js | 3 +-- examples/node/aecrypto.js | 3 +-- test/integration/txVerification.js | 1 - 13 files changed, 15 insertions(+), 43 deletions(-) diff --git a/es/ae/index.js b/es/ae/index.js index c688b64af3..eda9b6c647 100644 --- a/es/ae/index.js +++ b/es/ae/index.js @@ -51,7 +51,6 @@ async function send (tx, options = {}) { return this.sendTransaction(signed, opt) } -// eslint-disable-next-line no-unused-vars async function signUsingGA (tx, options = {}) { const { authData, authFun } = options return this.createMetaTx(tx, authData, authFun, options) diff --git a/es/channel/handlers.js b/es/channel/handlers.js index 953edfa65c..bd3058f70b 100644 --- a/es/channel/handlers.js +++ b/es/channel/handlers.js @@ -248,8 +248,7 @@ export function awaitingOffChainUpdate (channel, message, state) { } export async function awaitingTxSignRequest (channel, message, state) { - // eslint-disable-next-line no-useless-escape - const [, tag] = message.method.match(/^channels\.sign\.([^\.]+)$/) || [] + const [, tag] = message.method.match(/^channels\.sign\.([^.]+)$/) || [] if (tag) { if (message.params.data.tx) { const signedTx = await options.get(channel).sign(tag, message.params.data.tx, { @@ -441,7 +440,6 @@ export async function awaitingNewContractTx (channel, message, state) { export function awaitingNewContractCompletion (channel, message, state) { if (message.method === 'channels.update') { const { round } = unpackTx(message.params.data.state).tx.encodedTx.tx - // eslint-disable-next-line standard/computed-property-even-spacing const owner = options.get(channel)[{ initiator: 'initiatorId', responder: 'responderId' diff --git a/es/channel/internal.js b/es/channel/internal.js index bd3bf73bf7..081bfdd1a9 100644 --- a/es/channel/internal.js +++ b/es/channel/internal.js @@ -208,8 +208,7 @@ function WebSocket (url, callbacks) { return new Promise((resolve, reject) => { const ws = new W3CWebSocket(url) - // eslint-disable-next-line no-return-assign - Object.entries(callbacks).forEach(([key, callback]) => ws[key] = callback) + Object.entries(callbacks).forEach(([key, callback]) => { ws[key] = callback }) fireOnce(ws, 'onopen', () => resolve(ws)) fireOnce(ws, 'onerror', (err) => reject(err)) }) diff --git a/es/contract/aci/transformation.js b/es/contract/aci/transformation.js index 59c9b7899a..5f21d23bfc 100644 --- a/es/contract/aci/transformation.js +++ b/es/contract/aci/transformation.js @@ -1,4 +1,3 @@ -/* eslint-disable no-unused-vars */ import Joi from 'joi-browser' export const SOPHIA_TYPES = [ @@ -21,7 +20,7 @@ export const SOPHIA_TYPES = [ export function injectVars (t, aciType) { const [[baseType, generic]] = Object.entries(aciType.typedef) - const [[_, varianValue]] = Object.entries(t) + const [[, varianValue]] = Object.entries(t) switch (baseType) { case SOPHIA_TYPES.variant: return { @@ -47,7 +46,7 @@ export function injectVars (t, aciType) { * @return {Object} */ export function linkTypeDefs (t, bindings) { - const [_, typeDef] = typeof t === 'object' ? Object.keys(t)[0].split('.') : t.split('.') + const [, typeDef] = typeof t === 'object' ? Object.keys(t)[0].split('.') : t.split('.') const aciType = [ ...bindings.typedef, { name: 'state', typedef: bindings.state, vars: [] } diff --git a/es/tx/builder/index.js b/es/tx/builder/index.js index be1b3b1d9e..3eb1da6448 100644 --- a/es/tx/builder/index.js +++ b/es/tx/builder/index.js @@ -1,4 +1,3 @@ -/* eslint-disable curly */ import { BigNumber } from 'bignumber.js' import { assertedType, rlp } from '../../utils/crypto' @@ -35,8 +34,7 @@ function deserializeField (value, type, prefix) { if (!value) return '' switch (type) { case FIELD_TYPES.ctVersion: { - // eslint-disable-next-line no-unused-vars - const [vm, _, abi] = value + const [vm, , abi] = value return { vmVersion: readInt(Buffer.from([vm])), abiVersion: readInt(Buffer.from([abi])) } } case FIELD_TYPES.int: @@ -165,20 +163,9 @@ function transformParams (params) { .reduce( (acc, [key, value]) => { acc[key] = value - if (key === 'oracleTtl') acc = { - ...acc, - oracleTtlType: value.type === ORACLE_TTL_TYPES.delta ? 0 : 1, - oracleTtlValue: value.value - } - if (key === 'queryTtl') acc = { - ...acc, - queryTtlType: value.type === ORACLE_TTL_TYPES.delta ? 0 : 1, - queryTtlValue: value.value - } - if (key === 'responseTtl') acc = { - ...acc, - responseTtlType: value.type === ORACLE_TTL_TYPES.delta ? 0 : 1, - responseTtlValue: value.value + if (['oracleTtl', 'queryTtl', 'responseTtl'].includes(key)) { + acc[`${key}Type`] = value.type === ORACLE_TTL_TYPES.delta ? 0 : 1 + acc[`${key}Value`] = value.value } return acc }, @@ -189,8 +176,7 @@ function transformParams (params) { // INTERFACE function getOracleRelativeTtl (params) { - // eslint-disable-next-line no-unused-vars - const [_, { value = 500 }] = Object.entries(params).find(([key]) => ['oracleTtl', 'queryTtl', 'responseTtl'].includes(key)) || ['', {}] + const [, { value = 500 }] = Object.entries(params).find(([key]) => ['oracleTtl', 'queryTtl', 'responseTtl'].includes(key)) || ['', {}] return value // TODO investigate this } diff --git a/es/tx/builder/schema.js b/es/tx/builder/schema.js index 42354c9494..57b46f2244 100644 --- a/es/tx/builder/schema.js +++ b/es/tx/builder/schema.js @@ -4,7 +4,6 @@ * @export TxSchema * @example import TxSchema from '@aeternity/aepp-sdk/es/tx/builder/schema' */ -/* eslint-disable no-unused-vars */ // # RLP version number // # https://github.com/aeternity/protocol/blob/master/serializations.md#binary-serialization diff --git a/es/tx/tx.js b/es/tx/tx.js index 1e4d2a702b..66037c2f17 100644 --- a/es/tx/tx.js +++ b/es/tx/tx.js @@ -338,7 +338,6 @@ async function channelSnapshotSoloTx ({ channelId, fromId, payload }) { return tx } -// eslint-disable-next-line no-unused-vars async function gaAttachTx ({ ownerId, code, vmVersion, abiVersion, authFun, gas, gasPrice = MIN_GAS_PRICE, callData, backend }) { // Get VM_ABI version const ctVersion = this.getVmVersion(TX_TYPE.contractCreate, R.head(arguments)) diff --git a/es/utils/crypto.js b/es/utils/crypto.js index 7b9fd99a9c..1d984e28bc 100644 --- a/es/utils/crypto.js +++ b/es/utils/crypto.js @@ -38,8 +38,7 @@ const Ecb = aesjs.ModeOfOperation.ecb * @return {boolean} True if the string is valid base-64, false otherwise. */ export function isBase64 (str) { - // eslint-disable-next-line no-useless-escape - if (str.length % 4 > 0 || str.match(/[^0-9a-z+\/=]/i)) return false + if (str.length % 4 > 0 || str.match(/[^0-9a-z+/=]/i)) return false const index = str.indexOf('=') return !!(index === -1 || str.slice(index).match(/={1,2}/)) } diff --git a/es/utils/swagger.js b/es/utils/swagger.js index c46f3ad2d3..ef7c4d7526 100644 --- a/es/utils/swagger.js +++ b/es/utils/swagger.js @@ -51,8 +51,7 @@ function expandPath (path, replacements) { function lookupType (path, spec, types) { const type = (() => { const match = R.path(path, spec).match(/^#\/definitions\/(.+)/) - // eslint-disable-next-line no-void - if (match !== void 0) { + if (match !== undefined) { return match[1] } else { throw Error(`Reference path does not meet specification: ${path}`) @@ -342,8 +341,7 @@ function destructureClientError (error) { */ function resolveRef (ref, swag) { const match = ref.match(/^#\/(.+)$/) - // eslint-disable-next-line no-void - if (match !== void 0) { + if (match !== undefined) { const value = R.path(match[1].split('/'), swag) if (value != null) { return value diff --git a/examples/browser/vuejs/connect-two-ae/aepp/webpack.config.js b/examples/browser/vuejs/connect-two-ae/aepp/webpack.config.js index 5e95cfa5f7..d430679a17 100644 --- a/examples/browser/vuejs/connect-two-ae/aepp/webpack.config.js +++ b/examples/browser/vuejs/connect-two-ae/aepp/webpack.config.js @@ -17,8 +17,7 @@ const jsLoader = 'babel-loader!standard-loader?error=true' // https://github.com/FullHuman/purgecss#extractor class TailwindExtractor { static extract (content) { - // eslint-disable-next-line no-useless-escape - return content.match(/[A-z0-9-:\/]+/g) || [] + return content.match(/[A-z0-9-:/]+/g) || [] } } diff --git a/examples/browser/vuejs/connect-two-ae/identity/webpack.config.js b/examples/browser/vuejs/connect-two-ae/identity/webpack.config.js index 13b1b3a3e3..9cdd9e88ca 100644 --- a/examples/browser/vuejs/connect-two-ae/identity/webpack.config.js +++ b/examples/browser/vuejs/connect-two-ae/identity/webpack.config.js @@ -17,8 +17,7 @@ const jsLoader = 'babel-loader!standard-loader?error=true' // https://github.com/FullHuman/purgecss#extractor class TailwindExtractor { static extract (content) { - // eslint-disable-next-line no-useless-escape - return content.match(/[A-z0-9-:\/]+/g) || [] + return content.match(/[A-z0-9-:/]+/g) || [] } } diff --git a/examples/node/aecrypto.js b/examples/node/aecrypto.js index bd755862d2..75b3b7ba7e 100755 --- a/examples/node/aecrypto.js +++ b/examples/node/aecrypto.js @@ -85,8 +85,7 @@ function generateKeyPair (name, { output }) { // This function shows how to use a compliant private key to sign an Γ¦ternity // transaction and turn it into an RLP-encoded tuple ready for mining function signTx (tx, privKey) { - // eslint-disable-next-line no-useless-escape - if (!tx.match(/^tx\_.+/)) { + if (!tx.match(/^tx_.+/)) { throw Error('Not a valid transaction') } diff --git a/test/integration/txVerification.js b/test/integration/txVerification.js index 0c39b08a58..4dcab23fd7 100644 --- a/test/integration/txVerification.js +++ b/test/integration/txVerification.js @@ -1,4 +1,3 @@ -/* eslint-disable */ import { before, describe } from 'mocha' import { configure, ready } from '.' import { generateKeyPair } from '../../es/utils/crypto' From 232e0ab1c6151cf7512eb91423f78c77c746d849 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" <23040076+greenkeeper[bot]@users.noreply.github.com> Date: Wed, 6 Nov 2019 11:21:22 +0200 Subject: [PATCH 17/51] =?UTF-8?q?Update=20babel7=20in=20group=20default=20?= =?UTF-8?q?to=20the=20latest=20version=20=F0=9F=9A=80=20(#754)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(package): update @babel/cli to version 7.7.0 * chore(package): update @babel/cli to version 7.7.0 * chore(package): update @babel/cli to version 7.7.0 * chore(package): update @babel/core to version 7.7.0 * chore(package): update @babel/core to version 7.7.0 * chore(package): update @babel/core to version 7.7.0 * chore(package): update @babel/node to version 7.7.0 * chore(package): update @babel/node to version 7.7.0 * chore(package): update @babel/node to version 7.7.0 * chore(package): update @babel/preset-env to version 7.7.0 * chore(package): update @babel/preset-env to version 7.7.0 * chore(package): update @babel/preset-env to version 7.7.0 * chore(package): update @babel/register to version 7.7.0 * chore(package): update @babel/register to version 7.7.0 * chore(package): update @babel/register to version 7.7.0 * chore(package): update @babel/runtime to version 7.7.0 * chore(package): update @babel/runtime to version 7.7.0 * chore(package): update @babel/runtime to version 7.7.0 * chore(package): update lockfile package-lock.json * chore(package): update lockfile examples/browser/vuejs/connect-two-ae/identity/yarn.lock * chore(package): update lockfile examples/browser/vuejs/connect-two-ae/aepp/yarn.lock --- .../vuejs/connect-two-ae/aepp/package.json | 12 +- .../vuejs/connect-two-ae/aepp/yarn.lock | 506 ++++++---- .../connect-two-ae/identity/package.json | 12 +- .../vuejs/connect-two-ae/identity/yarn.lock | 506 ++++++---- package-lock.json | 871 ++++++++++++------ package.json | 12 +- 6 files changed, 1242 insertions(+), 677 deletions(-) diff --git a/examples/browser/vuejs/connect-two-ae/aepp/package.json b/examples/browser/vuejs/connect-two-ae/aepp/package.json index 6088485088..bce7697c8e 100644 --- a/examples/browser/vuejs/connect-two-ae/aepp/package.json +++ b/examples/browser/vuejs/connect-two-ae/aepp/package.json @@ -21,15 +21,15 @@ "vuex": "^3.0.1" }, "devDependencies": { - "@babel/cli": "7.6.2", - "@babel/core": "7.6.2", - "@babel/node": "7.6.2", + "@babel/cli": "7.7.0", + "@babel/core": "7.7.0", + "@babel/node": "7.7.0", "@babel/plugin-proposal-export-default-from": "7.5.2", "@babel/plugin-proposal-object-rest-spread": "7.6.2", "@babel/plugin-transform-runtime": "7.6.2", - "@babel/preset-env": "7.6.2", - "@babel/register": "7.6.2", - "@babel/runtime": "7.6.2", + "@babel/preset-env": "7.7.0", + "@babel/register": "7.7.0", + "@babel/runtime": "7.7.0", "autoprefixer": "^9.0.2", "babel-core": "^7.0.0-beta.3", "babel-loader": "^8.0.0-beta.3", diff --git a/examples/browser/vuejs/connect-two-ae/aepp/yarn.lock b/examples/browser/vuejs/connect-two-ae/aepp/yarn.lock index 2b6ab78720..73e10a3366 100644 --- a/examples/browser/vuejs/connect-two-ae/aepp/yarn.lock +++ b/examples/browser/vuejs/connect-two-ae/aepp/yarn.lock @@ -40,18 +40,17 @@ randombytes "^2.0.1" safe-buffer "^5.0.1" -"@babel/cli@7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.6.2.tgz#4ce8b5b4b2e4b4c1b7bd841cec62085e2dfc4465" - integrity sha512-JDZ+T/br9pPfT2lmAMJypJDTTTHM9ePD/ED10TRjRzJVdEVy+JB3iRlhzYmTt5YkNgHvxWGlUVnLtdv6ruiDrQ== +"@babel/cli@7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.7.0.tgz#8d10c9acb2acb362d7614a9493e1791c69100d89" + integrity sha512-jECEqAq6Ngf3pOhLSg7od9WKyrIacyh1oNNYtRXNn+ummSHCTXBamGywOAtiae34Vk7zKuQNnLvo2BKTMCoV4A== dependencies: commander "^2.8.1" convert-source-map "^1.1.0" fs-readdir-recursive "^1.1.0" glob "^7.0.0" lodash "^4.17.13" - mkdirp "^0.5.1" - output-file-sync "^2.0.0" + make-dir "^2.1.0" slash "^2.0.0" source-map "^0.5.0" optionalDependencies: @@ -64,18 +63,18 @@ dependencies: "@babel/highlight" "^7.0.0" -"@babel/core@7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.6.2.tgz#069a776e8d5e9eefff76236bc8845566bd31dd91" - integrity sha512-l8zto/fuoZIbncm+01p8zPSDZu/VuuJhAfA7d/AbzM09WR7iVhavvfNDYCNpo1VvLk6E6xgAoP9P+/EMJHuRkQ== +"@babel/core@7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.0.tgz#461d2948b1a7113088baf999499bcbd39a7faa3b" + integrity sha512-Bb1NjZCaiwTQC/ARL+MwDpgocdnwWDCaugvkGt6cxfBzQa8Whv1JybBoUEiBDKl8Ni3H3c7Fykwk7QChUsHRlg== dependencies: "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.6.2" - "@babel/helpers" "^7.6.2" - "@babel/parser" "^7.6.2" - "@babel/template" "^7.6.0" - "@babel/traverse" "^7.6.2" - "@babel/types" "^7.6.0" + "@babel/generator" "^7.7.0" + "@babel/helpers" "^7.7.0" + "@babel/parser" "^7.7.0" + "@babel/template" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" convert-source-map "^1.1.0" debug "^4.1.0" json5 "^2.1.0" @@ -95,12 +94,12 @@ source-map "^0.5.0" trim-right "^1.0.1" -"@babel/generator@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.2.tgz#dac8a3c2df118334c2a29ff3446da1636a8f8c03" - integrity sha512-j8iHaIW4gGPnViaIHI7e9t/Hl8qLjERI6DcV9kEpAIDJsAOrcnXqRS7t+QbhL76pwbtqP+QCQLL0z1CyVmtjjQ== +"@babel/generator@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.0.tgz#c6d4d1f7a0d6e139cbd01aca73170b0bff5425b4" + integrity sha512-1wdJ6UxHyL1XoJQ119JmvuRX27LRih7iYStMPZOWAjQqeAabFg3dYXKMpgihma+to+0ADsTVVt6oRyUxWZw6Mw== dependencies: - "@babel/types" "^7.6.0" + "@babel/types" "^7.7.0" jsesc "^2.5.1" lodash "^4.17.13" source-map "^0.5.0" @@ -112,6 +111,13 @@ dependencies: "@babel/types" "^7.0.0" +"@babel/helper-annotate-as-pure@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.0.tgz#efc54032d43891fe267679e63f6860aa7dbf4a5e" + integrity sha512-k50CQxMlYTYo+GGyUGFwpxKVtxVJi9yh61sXZji3zYHccK9RYliZGSTOgci85T+r+0VFN2nWbGM04PIqwfrpMg== + dependencies: + "@babel/types" "^7.7.0" + "@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" @@ -129,13 +135,21 @@ "@babel/traverse" "^7.4.4" "@babel/types" "^7.4.4" -"@babel/helper-define-map@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz#3dec32c2046f37e09b28c93eb0b103fd2a25d369" - integrity sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg== +"@babel/helper-create-regexp-features-plugin@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.0.tgz#2e8badfe201cfafb5d930f46cf1e0b6f1cdcab23" + integrity sha512-ZhagAAVGD3L6MPM9/zZi7RRteonfBFLVUz3kjsnYsMAtr9hOJCKI9BAKIMpqn3NyWicPieoX779UL+7/3BEAOA== dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/types" "^7.5.5" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.6.0" + +"@babel/helper-define-map@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.7.0.tgz#60b0e9fd60def9de5054c38afde8c8ee409c7529" + integrity sha512-kPKWPb0dMpZi+ov1hJiwse9dWweZsz3V9rP4KdytnX1E7z3cTNmFGglwklzFPuqIcHLIY3bgKSs4vkwXXdflQA== + dependencies: + "@babel/helper-function-name" "^7.7.0" + "@babel/types" "^7.7.0" lodash "^4.17.13" "@babel/helper-explode-assignable-expression@^7.1.0": @@ -155,6 +169,15 @@ "@babel/template" "^7.1.0" "@babel/types" "^7.0.0" +"@babel/helper-function-name@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz#44a5ad151cfff8ed2599c91682dda2ec2c8430a3" + integrity sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q== + dependencies: + "@babel/helper-get-function-arity" "^7.7.0" + "@babel/template" "^7.7.0" + "@babel/types" "^7.7.0" + "@babel/helper-get-function-arity@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" @@ -162,6 +185,13 @@ dependencies: "@babel/types" "^7.0.0" +"@babel/helper-get-function-arity@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz#c604886bc97287a1d1398092bc666bc3d7d7aa2d" + integrity sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw== + dependencies: + "@babel/types" "^7.7.0" + "@babel/helper-hoist-variables@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a" @@ -169,6 +199,13 @@ dependencies: "@babel/types" "^7.4.4" +"@babel/helper-hoist-variables@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.0.tgz#b4552e4cfe5577d7de7b183e193e84e4ec538c81" + integrity sha512-LUe/92NqsDAkJjjCEWkNe+/PcpnisvnqdlRe19FahVapa4jndeuJ+FBiTX1rcAKWKcJGE+C3Q3tuEuxkSmCEiQ== + dependencies: + "@babel/types" "^7.7.0" + "@babel/helper-member-expression-to-functions@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590" @@ -176,6 +213,13 @@ dependencies: "@babel/types" "^7.5.5" +"@babel/helper-member-expression-to-functions@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.0.tgz#472b93003a57071f95a541ea6c2b098398bcad8a" + integrity sha512-QaCZLO2RtBcmvO/ekOLp8p7R5X2JriKRizeDpm5ChATAFWrrYDcDxPuCIBXKyBjY+i1vYSdcUTMIb8psfxHDPA== + dependencies: + "@babel/types" "^7.7.0" + "@babel/helper-module-imports@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" @@ -183,7 +227,14 @@ dependencies: "@babel/types" "^7.0.0" -"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4": +"@babel/helper-module-imports@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.7.0.tgz#99c095889466e5f7b6d66d98dffc58baaf42654d" + integrity sha512-Dv3hLKIC1jyfTkClvyEkYP2OlkzNvWs5+Q8WgPbxM5LMeorons7iPP91JM+DU7tRbhqA1ZeooPaMFvQrn23RHw== + dependencies: + "@babel/types" "^7.7.0" + +"@babel/helper-module-transforms@^7.1.0": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a" integrity sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw== @@ -195,6 +246,18 @@ "@babel/types" "^7.5.5" lodash "^4.17.13" +"@babel/helper-module-transforms@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.7.0.tgz#154a69f0c5b8fd4d39e49750ff7ac4faa3f36786" + integrity sha512-rXEefBuheUYQyX4WjV19tuknrJFwyKw0HgzRwbkyTbB+Dshlq7eqkWbyjzToLrMZk/5wKVKdWFluiAsVkHXvuQ== + dependencies: + "@babel/helper-module-imports" "^7.7.0" + "@babel/helper-simple-access" "^7.7.0" + "@babel/helper-split-export-declaration" "^7.7.0" + "@babel/template" "^7.7.0" + "@babel/types" "^7.7.0" + lodash "^4.17.13" + "@babel/helper-optimise-call-expression@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" @@ -202,6 +265,13 @@ dependencies: "@babel/types" "^7.0.0" +"@babel/helper-optimise-call-expression@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.0.tgz#4f66a216116a66164135dc618c5d8b7a959f9365" + integrity sha512-48TeqmbazjNU/65niiiJIJRc5JozB8acui1OS7bSd6PgxfuovWsvjfWSzlgx+gPFdVveNzUdpdIg5l56Pl5jqg== + dependencies: + "@babel/types" "^7.7.0" + "@babel/helper-plugin-utils@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" @@ -214,16 +284,16 @@ dependencies: lodash "^4.17.13" -"@babel/helper-remap-async-to-generator@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" - integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg== +"@babel/helper-remap-async-to-generator@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.0.tgz#4d69ec653e8bff5bce62f5d33fc1508f223c75a7" + integrity sha512-pHx7RN8X0UNHPB/fnuDnRXVZ316ZigkO8y8D835JlZ2SSdFKb6yH9MIYRU4fy/KPe5sPHDFOPvf8QLdbAGGiyw== dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-wrap-function" "^7.1.0" - "@babel/template" "^7.1.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/helper-annotate-as-pure" "^7.7.0" + "@babel/helper-wrap-function" "^7.7.0" + "@babel/template" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" "@babel/helper-replace-supers@^7.5.5": version "7.5.5" @@ -235,6 +305,16 @@ "@babel/traverse" "^7.5.5" "@babel/types" "^7.5.5" +"@babel/helper-replace-supers@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.7.0.tgz#d5365c8667fe7cbd13b8ddddceb9bd7f2b387512" + integrity sha512-5ALYEul5V8xNdxEeWvRsBzLMxQksT7MaStpxjJf9KsnLxpAKBtfw5NeMKZJSYDa0lKdOcy0g+JT/f5mPSulUgg== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.7.0" + "@babel/helper-optimise-call-expression" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" + "@babel/helper-simple-access@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" @@ -243,6 +323,14 @@ "@babel/template" "^7.1.0" "@babel/types" "^7.0.0" +"@babel/helper-simple-access@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.7.0.tgz#97a8b6c52105d76031b86237dc1852b44837243d" + integrity sha512-AJ7IZD7Eem3zZRuj5JtzFAptBw7pMlS3y8Qv09vaBWoFsle0d1kAn5Wq6Q9MyBXITPOKnxwkZKoAm4bopmv26g== + dependencies: + "@babel/template" "^7.7.0" + "@babel/types" "^7.7.0" + "@babel/helper-split-export-declaration@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" @@ -250,24 +338,31 @@ dependencies: "@babel/types" "^7.4.4" -"@babel/helper-wrap-function@^7.1.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" - integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ== +"@babel/helper-split-export-declaration@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.0.tgz#1365e74ea6c614deeb56ebffabd71006a0eb2300" + integrity sha512-HgYSI8rH08neWlAH3CcdkFg9qX9YsZysZI5GD8LjhQib/mM0jGOZOVkoUiiV2Hu978fRtjtsGsW6w0pKHUWtqA== dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/template" "^7.1.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.2.0" + "@babel/types" "^7.7.0" -"@babel/helpers@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.6.2.tgz#681ffe489ea4dcc55f23ce469e58e59c1c045153" - integrity sha512-3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA== +"@babel/helper-wrap-function@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.7.0.tgz#15af3d3e98f8417a60554acbb6c14e75e0b33b74" + integrity sha512-sd4QjeMgQqzshSjecZjOp8uKfUtnpmCyQhKQrVJBBgeHAB/0FPi33h3AbVlVp07qQtMD4QgYSzaMI7VwncNK/w== dependencies: - "@babel/template" "^7.6.0" - "@babel/traverse" "^7.6.2" - "@babel/types" "^7.6.0" + "@babel/helper-function-name" "^7.7.0" + "@babel/template" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" + +"@babel/helpers@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.7.0.tgz#359bb5ac3b4726f7c1fde0ec75f64b3f4275d60b" + integrity sha512-VnNwL4YOhbejHb7x/b5F39Zdg5vIQpUUNzJwx0ww1EcVRt41bbGRZWhAURrfY32T5zTT3qwNOQFWpn+P0i0a2g== + dependencies: + "@babel/template" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" "@babel/highlight@^7.0.0": version "7.5.0" @@ -278,12 +373,12 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/node@7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/node/-/node-7.6.2.tgz#a94479f95ee2008342f4847346c8bb8ff2770f44" - integrity sha512-59UxvVtRpVpL5i0KTcw41FqLNPT/Jc9k/48Rq00wfN49lAIQeRKGwZ6xX1FWlCfcIGP+5l4rfZajORvmYkhfGg== +"@babel/node@7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/node/-/node-7.7.0.tgz#fba73fdaf75ab1a0eaf03923f5f4ce7fa41c9974" + integrity sha512-CZFTjfCGysChOJ90ksndqct5bXkByzV5Ef8YgYS3A513MhyFQgsXJMRu2QyGOlfoP3hBZ3AmDd37ARyv/L1Zvw== dependencies: - "@babel/register" "^7.6.2" + "@babel/register" "^7.7.0" commander "^2.8.1" core-js "^3.2.1" lodash "^4.17.13" @@ -296,24 +391,24 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.5.tgz#02f077ac8817d3df4a832ef59de67565e71cca4b" integrity sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g== -"@babel/parser@^7.6.0", "@babel/parser@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.2.tgz#205e9c95e16ba3b8b96090677a67c9d6075b70a1" - integrity sha512-mdFqWrSPCmikBoaBYMuBulzTIKuXVPtEISFbRRVNwMWpCms/hmE2kRq0bblUHaNRKrjRlmVbx1sDHmjmRgD2Xg== +"@babel/parser@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.0.tgz#232618f6e8947bc54b407fa1f1c91a22758e7159" + integrity sha512-GqL+Z0d7B7ADlQBMXlJgvXEbtt5qlqd1YQ5fr12hTSfh7O/vgrEIvJxU2e7aSVrEUn75zTZ6Nd0s8tthrlZnrQ== -"@babel/plugin-proposal-async-generator-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" - integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ== +"@babel/plugin-proposal-async-generator-functions@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.0.tgz#83ef2d6044496b4c15d8b4904e2219e6dccc6971" + integrity sha512-ot/EZVvf3mXtZq0Pd0+tSOfGWMizqmOohXmNZg6LNFjHOV+wOPv7BvVYh8oPR8LhpIP3ye8nNooKL50YRWxpYA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.1.0" + "@babel/helper-remap-async-to-generator" "^7.7.0" "@babel/plugin-syntax-async-generators" "^7.2.0" -"@babel/plugin-proposal-dynamic-import@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz#e532202db4838723691b10a67b8ce509e397c506" - integrity sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw== +"@babel/plugin-proposal-dynamic-import@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.0.tgz#dc02a8bad8d653fb59daf085516fa416edd2aa7f" + integrity sha512-7poL3Xi+QFPC7sGAzEIbXUyYzGJwbc2+gSD0AkiC5k52kH2cqHdqxm5hNFfLW3cRSTcx9bN0Fl7/6zWcLLnKAQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-dynamic-import" "^7.2.0" @@ -350,14 +445,13 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" -"@babel/plugin-proposal-unicode-property-regex@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.6.2.tgz#05413762894f41bfe42b9a5e80919bd575dcc802" - integrity sha512-NxHETdmpeSCtiatMRYWVJo7266rrvAC3DTeG5exQBIH/fMIUK7ejDNznBbn3HQl/o9peymRRg7Yqkx6PdUXmMw== +"@babel/plugin-proposal-unicode-property-regex@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.0.tgz#549fe1717a1bd0a2a7e63163841cb37e78179d5d" + integrity sha512-mk34H+hp7kRBWJOOAR0ZMGCydgKMD4iN9TpDRp3IIcbunltxEY89XSimc6WbtSLCDrwcdy/EEw7h5CFCzxTchw== dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.7.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.6.0" "@babel/plugin-syntax-async-generators@^7.2.0": version "7.2.0" @@ -401,6 +495,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-syntax-top-level-await@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.0.tgz#f5699549f50bbe8d12b1843a4e82f0a37bb65f4d" + integrity sha512-hi8FUNiFIY1fnUI2n1ViB1DR0R4QeK4iHcTlW6aJkrPoTdb8Rf1EMQ6GT3f67DDkYyWgew9DFoOZ6gOoEsdzTA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-arrow-functions@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" @@ -408,14 +509,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-async-to-generator@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz#89a3848a0166623b5bc481164b5936ab947e887e" - integrity sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg== +"@babel/plugin-transform-async-to-generator@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.0.tgz#e2b84f11952cf5913fe3438b7d2585042772f492" + integrity sha512-vLI2EFLVvRBL3d8roAMqtVY0Bm9C1QzLkdS57hiKrjUBSqsQYrBsMCeOg/0KK7B0eK9V71J5mWcha9yyoI2tZw== dependencies: - "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-module-imports" "^7.7.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.1.0" + "@babel/helper-remap-async-to-generator" "^7.7.0" "@babel/plugin-transform-block-scoped-functions@^7.2.0": version "7.2.0" @@ -424,26 +525,26 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-block-scoping@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.2.tgz#96c33ab97a9ae500cc6f5b19e04a7e6553360a79" - integrity sha512-zZT8ivau9LOQQaOGC7bQLQOT4XPkPXgN2ERfUgk1X8ql+mVkLc4E8eKk+FO3o0154kxzqenWCorfmEXpEZcrSQ== +"@babel/plugin-transform-block-scoping@^7.6.3": + version "7.6.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.3.tgz#6e854e51fbbaa84351b15d4ddafe342f3a5d542a" + integrity sha512-7hvrg75dubcO3ZI2rjYTzUrEuh1E9IyDEhhB6qfcooxhDA33xx2MasuLVgdxzcP6R/lipAC6n9ub9maNW6RKdw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" lodash "^4.17.13" -"@babel/plugin-transform-classes@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz#d094299d9bd680a14a2a0edae38305ad60fb4de9" - integrity sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg== +"@babel/plugin-transform-classes@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.0.tgz#b411ecc1b8822d24b81e5d184f24149136eddd4a" + integrity sha512-/b3cKIZwGeUesZheU9jNYcwrEA7f/Bo4IdPmvp7oHgvks2majB5BoT5byAql44fiNQYOPzhk2w8DbgfuafkMoA== dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-define-map" "^7.5.5" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-annotate-as-pure" "^7.7.0" + "@babel/helper-define-map" "^7.7.0" + "@babel/helper-function-name" "^7.7.0" + "@babel/helper-optimise-call-expression" "^7.7.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.5.5" - "@babel/helper-split-export-declaration" "^7.4.4" + "@babel/helper-replace-supers" "^7.7.0" + "@babel/helper-split-export-declaration" "^7.7.0" globals "^11.1.0" "@babel/plugin-transform-computed-properties@^7.2.0": @@ -460,14 +561,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-dotall-regex@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.6.2.tgz#44abb948b88f0199a627024e1508acaf8dc9b2f9" - integrity sha512-KGKT9aqKV+9YMZSkowzYoYEiHqgaDhGmPNZlZxX6UeHC4z30nC1J9IrZuGqbYFB1jaIGdv91ujpze0exiVK8bA== +"@babel/plugin-transform-dotall-regex@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.0.tgz#c5c9ecacab3a5e0c11db6981610f0c32fd698b3b" + integrity sha512-3QQlF7hSBnSuM1hQ0pS3pmAbWLax/uGNCbPBND9y+oJ4Y776jsyujG2k0Sn2Aj2a0QwVOiOFL5QVPA7spjvzSA== dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.7.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.6.0" "@babel/plugin-transform-duplicate-keys@^7.5.0": version "7.5.0" @@ -491,12 +591,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-function-name@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad" - integrity sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA== +"@babel/plugin-transform-function-name@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.0.tgz#0fa786f1eef52e3b7d4fc02e54b2129de8a04c2a" + integrity sha512-P5HKu0d9+CzZxP5jcrWdpe7ZlFDe24bmqP6a6X8BHEBl/eizAsY8K6LX8LASZL0Jxdjm5eEfzp+FIrxCm/p8bA== dependencies: - "@babel/helper-function-name" "^7.1.0" + "@babel/helper-function-name" "^7.7.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-literals@^7.2.0": @@ -522,39 +622,39 @@ "@babel/helper-plugin-utils" "^7.0.0" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-commonjs@^7.6.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz#39dfe957de4420445f1fcf88b68a2e4aa4515486" - integrity sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g== +"@babel/plugin-transform-modules-commonjs@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.0.tgz#3e5ffb4fd8c947feede69cbe24c9554ab4113fe3" + integrity sha512-KEMyWNNWnjOom8vR/1+d+Ocz/mILZG/eyHHO06OuBQ2aNhxT62fr4y6fGOplRx+CxCSp3IFwesL8WdINfY/3kg== dependencies: - "@babel/helper-module-transforms" "^7.4.4" + "@babel/helper-module-transforms" "^7.7.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-simple-access" "^7.1.0" + "@babel/helper-simple-access" "^7.7.0" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-systemjs@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz#e75266a13ef94202db2a0620977756f51d52d249" - integrity sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg== +"@babel/plugin-transform-modules-systemjs@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.0.tgz#9baf471213af9761c1617bb12fd278e629041417" + integrity sha512-ZAuFgYjJzDNv77AjXRqzQGlQl4HdUM6j296ee4fwKVZfhDR9LAGxfvXjBkb06gNETPnN0sLqRm9Gxg4wZH6dXg== dependencies: - "@babel/helper-hoist-variables" "^7.4.4" + "@babel/helper-hoist-variables" "^7.7.0" "@babel/helper-plugin-utils" "^7.0.0" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-umd@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae" - integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw== +"@babel/plugin-transform-modules-umd@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.0.tgz#d62c7da16670908e1d8c68ca0b5d4c0097b69966" + integrity sha512-u7eBA03zmUswQ9LQ7Qw0/ieC1pcAkbp5OQatbWUzY1PaBccvuJXUkYzoN1g7cqp7dbTu6Dp9bXyalBvD04AANA== dependencies: - "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-module-transforms" "^7.7.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-named-capturing-groups-regex@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.2.tgz#c1ca0bb84b94f385ca302c3932e870b0fb0e522b" - integrity sha512-xBdB+XOs+lgbZc2/4F5BVDVcDNS4tcSKQc96KmlqLEAwz6tpYPEvPdmDfvVG0Ssn8lAhronaRs6Z6KSexIpK5g== +"@babel/plugin-transform-named-capturing-groups-regex@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.0.tgz#358e6fd869b9a4d8f5cbc79e4ed4fc340e60dcaf" + integrity sha512-+SicSJoKouPctL+j1pqktRVCgy+xAch1hWWTMy13j0IflnyNjaoskj+DwRQFimHbLqO3sq2oN2CXMvXq3Bgapg== dependencies: - regexpu-core "^4.6.0" + "@babel/helper-create-regexp-features-plugin" "^7.7.0" "@babel/plugin-transform-new-target@^7.4.4": version "7.4.4" @@ -587,10 +687,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-regenerator@^7.4.5": - version "7.4.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz#629dc82512c55cee01341fb27bdfcb210354680f" - integrity sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA== +"@babel/plugin-transform-regenerator@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.0.tgz#f1b20b535e7716b622c99e989259d7dd942dd9cc" + integrity sha512-AXmvnC+0wuj/cFkkS/HFHIojxH3ffSXE+ttulrqWjZZRaUOonfJc60e1wSNT4rV8tIunvu/R3wCp71/tLAa9xg== dependencies: regenerator-transform "^0.14.0" @@ -648,83 +748,90 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-unicode-regex@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.6.2.tgz#b692aad888a7e8d8b1b214be6b9dc03d5031f698" - integrity sha512-orZI6cWlR3nk2YmYdb0gImrgCUwb5cBUwjf6Ks6dvNVvXERkwtJWOQaEOjPiu0Gu1Tq6Yq/hruCZZOOi9F34Dw== +"@babel/plugin-transform-unicode-regex@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.0.tgz#743d9bcc44080e3cc7d49259a066efa30f9187a3" + integrity sha512-RrThb0gdrNwFAqEAAx9OWgtx6ICK69x7i9tCnMdVrxQwSDp/Abu9DXFU5Hh16VP33Rmxh04+NGW28NsIkFvFKA== dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.7.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.6.0" -"@babel/preset-env@7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.6.2.tgz#abbb3ed785c7fe4220d4c82a53621d71fc0c75d3" - integrity sha512-Ru7+mfzy9M1/YTEtlDS8CD45jd22ngb9tXnn64DvQK3ooyqSw9K4K9DUWmYknTTVk4TqygL9dqCrZgm1HMea/Q== +"@babel/preset-env@7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.0.tgz#46dccc1df6b6a195044421b3f61a029866d92eef" + integrity sha512-AgvG8VJDehjK0Ky86xvaqKpx0ASKQk63dfghqqFt6yf9gqmcvc5TodM0ZT0XZvw9fxfrG1PqJ1Xt+8bDnHv9xw== dependencies: - "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-module-imports" "^7.7.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-async-generator-functions" "^7.2.0" - "@babel/plugin-proposal-dynamic-import" "^7.5.0" + "@babel/plugin-proposal-async-generator-functions" "^7.7.0" + "@babel/plugin-proposal-dynamic-import" "^7.7.0" "@babel/plugin-proposal-json-strings" "^7.2.0" "@babel/plugin-proposal-object-rest-spread" "^7.6.2" "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.6.2" + "@babel/plugin-proposal-unicode-property-regex" "^7.7.0" "@babel/plugin-syntax-async-generators" "^7.2.0" "@babel/plugin-syntax-dynamic-import" "^7.2.0" "@babel/plugin-syntax-json-strings" "^7.2.0" "@babel/plugin-syntax-object-rest-spread" "^7.2.0" "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + "@babel/plugin-syntax-top-level-await" "^7.7.0" "@babel/plugin-transform-arrow-functions" "^7.2.0" - "@babel/plugin-transform-async-to-generator" "^7.5.0" + "@babel/plugin-transform-async-to-generator" "^7.7.0" "@babel/plugin-transform-block-scoped-functions" "^7.2.0" - "@babel/plugin-transform-block-scoping" "^7.6.2" - "@babel/plugin-transform-classes" "^7.5.5" + "@babel/plugin-transform-block-scoping" "^7.6.3" + "@babel/plugin-transform-classes" "^7.7.0" "@babel/plugin-transform-computed-properties" "^7.2.0" "@babel/plugin-transform-destructuring" "^7.6.0" - "@babel/plugin-transform-dotall-regex" "^7.6.2" + "@babel/plugin-transform-dotall-regex" "^7.7.0" "@babel/plugin-transform-duplicate-keys" "^7.5.0" "@babel/plugin-transform-exponentiation-operator" "^7.2.0" "@babel/plugin-transform-for-of" "^7.4.4" - "@babel/plugin-transform-function-name" "^7.4.4" + "@babel/plugin-transform-function-name" "^7.7.0" "@babel/plugin-transform-literals" "^7.2.0" "@babel/plugin-transform-member-expression-literals" "^7.2.0" "@babel/plugin-transform-modules-amd" "^7.5.0" - "@babel/plugin-transform-modules-commonjs" "^7.6.0" - "@babel/plugin-transform-modules-systemjs" "^7.5.0" - "@babel/plugin-transform-modules-umd" "^7.2.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.6.2" + "@babel/plugin-transform-modules-commonjs" "^7.7.0" + "@babel/plugin-transform-modules-systemjs" "^7.7.0" + "@babel/plugin-transform-modules-umd" "^7.7.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.7.0" "@babel/plugin-transform-new-target" "^7.4.4" "@babel/plugin-transform-object-super" "^7.5.5" "@babel/plugin-transform-parameters" "^7.4.4" "@babel/plugin-transform-property-literals" "^7.2.0" - "@babel/plugin-transform-regenerator" "^7.4.5" + "@babel/plugin-transform-regenerator" "^7.7.0" "@babel/plugin-transform-reserved-words" "^7.2.0" "@babel/plugin-transform-shorthand-properties" "^7.2.0" "@babel/plugin-transform-spread" "^7.6.2" "@babel/plugin-transform-sticky-regex" "^7.2.0" "@babel/plugin-transform-template-literals" "^7.4.4" "@babel/plugin-transform-typeof-symbol" "^7.2.0" - "@babel/plugin-transform-unicode-regex" "^7.6.2" - "@babel/types" "^7.6.0" + "@babel/plugin-transform-unicode-regex" "^7.7.0" + "@babel/types" "^7.7.0" browserslist "^4.6.0" core-js-compat "^3.1.1" invariant "^2.2.2" js-levenshtein "^1.1.3" semver "^5.5.0" -"@babel/register@7.6.2", "@babel/register@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.6.2.tgz#25765a922202cb06f8bdac5a3b1e70cd6bf3dd45" - integrity sha512-xgZk2LRZvt6i2SAUWxc7ellk4+OYRgS3Zpsnr13nMS1Qo25w21Uu8o6vTOAqNaxiqrnv30KTYzh9YWY2k21CeQ== +"@babel/register@7.7.0", "@babel/register@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.7.0.tgz#4e23ecf840296ef79c605baaa5c89e1a2426314b" + integrity sha512-HV3GJzTvSoyOMWGYn2TAh6uL6g+gqKTgEZ99Q3+X9UURT1VPT/WcU46R61XftIc5rXytcOHZ4Z0doDlsjPomIg== dependencies: find-cache-dir "^2.0.0" lodash "^4.17.13" - mkdirp "^0.5.1" + make-dir "^2.1.0" pirates "^4.0.0" - source-map-support "^0.5.9" + source-map-support "^0.5.16" -"@babel/runtime@7.6.2", "@babel/runtime@^7.6.2": +"@babel/runtime@7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.0.tgz#9b309d493864d69e0b9ec093e1426535a76b4b94" + integrity sha512-xdf3hZAzoqL9q7ItTe/KyUGw214oXdHmq2XhW8ANRuo2KMX+s17RK+z4DsQiPkdOqCjep14eNTneRoiTs9T1AQ== + dependencies: + regenerator-runtime "^0.13.2" + +"@babel/runtime@^7.6.2": version "7.6.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.6.2.tgz#c3d6e41b304ef10dcf13777a33e7694ec4a9a6dd" integrity sha512-EXxN64agfUqqIGeEjI5dL5z0Sw0ZwWo1mLTi4mQowCZ42O59b7DRpZAnTC6OqdF28wMBMFKNb/4uFGrVaigSpg== @@ -740,14 +847,14 @@ "@babel/parser" "^7.4.4" "@babel/types" "^7.4.4" -"@babel/template@^7.6.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.6.0.tgz#7f0159c7f5012230dad64cca42ec9bdb5c9536e6" - integrity sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ== +"@babel/template@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.7.0.tgz#4fadc1b8e734d97f56de39c77de76f2562e597d0" + integrity sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.6.0" - "@babel/types" "^7.6.0" + "@babel/parser" "^7.7.0" + "@babel/types" "^7.7.0" "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5": version "7.5.5" @@ -764,22 +871,22 @@ globals "^11.1.0" lodash "^4.17.13" -"@babel/traverse@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.2.tgz#b0e2bfd401d339ce0e6c05690206d1e11502ce2c" - integrity sha512-8fRE76xNwNttVEF2TwxJDGBLWthUkHWSldmfuBzVRmEDWOtu4XdINTgN7TDWzuLg4bbeIMLvfMFD9we5YcWkRQ== +"@babel/traverse@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.7.0.tgz#9f5744346b8d10097fd2ec2eeffcaf19813cbfaf" + integrity sha512-ea/3wRZc//e/uwCpuBX2itrhI0U9l7+FsrKWyKGNyvWbuMcCG7ATKY2VI4wlg2b2TA39HHwIxnvmXvtiKsyn7w== dependencies: "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.6.2" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/parser" "^7.6.2" - "@babel/types" "^7.6.0" + "@babel/generator" "^7.7.0" + "@babel/helper-function-name" "^7.7.0" + "@babel/helper-split-export-declaration" "^7.7.0" + "@babel/parser" "^7.7.0" + "@babel/types" "^7.7.0" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.13" -"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5": +"@babel/types@^7.0.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.5.tgz#97b9f728e182785909aa4ab56264f090a028d18a" integrity sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw== @@ -788,10 +895,10 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" -"@babel/types@^7.6.0": - version "7.6.1" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.1.tgz#53abf3308add3ac2a2884d539151c57c4b3ac648" - integrity sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g== +"@babel/types@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.7.0.tgz#bdf5967277ced7590da452c31d60853d0beb5d4f" + integrity sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ== dependencies: esutils "^2.0.2" lodash "^4.17.13" @@ -5472,7 +5579,7 @@ make-dir@^1.0.0: dependencies: pify "^3.0.0" -make-dir@^2.0.0: +make-dir@^2.0.0, make-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== @@ -6306,15 +6413,6 @@ osenv@^0.1.4: os-homedir "^1.0.0" os-tmpdir "^1.0.0" -output-file-sync@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-2.0.1.tgz#f53118282f5f553c2799541792b723a4c71430c0" - integrity sha512-mDho4qm7WgIXIGf4eYU1RHN2UU5tPfVYVSRwDJw0uTmj35DQUt/eNp19N7v6T3SrR0ESTEf2up2CGO73qI35zQ== - dependencies: - graceful-fs "^4.1.11" - is-plain-obj "^1.1.0" - mkdirp "^0.5.1" - p-defer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" @@ -8299,7 +8397,15 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.5.9, source-map-support@~0.5.12: +source-map-support@^0.5.16: + version "0.5.16" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" + integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-support@~0.5.12: version "0.5.13" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== @@ -9322,10 +9428,10 @@ vue-hot-reload-api@^2.3.0: resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.3.tgz#2756f46cb3258054c5f4723de8ae7e87302a1ccf" integrity sha512-KmvZVtmM26BQOMK1rwUZsrqxEGeKiYSZGA7SNWE6uExx8UX/cj9hq2MRV/wWC3Cq6AoeDGk57rL9YMFRel/q+g== -vue-loader@15.7.1: - version "15.7.1" - resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.7.1.tgz#6ccacd4122aa80f69baaac08ff295a62e3aefcfd" - integrity sha512-fwIKtA23Pl/rqfYP5TSGK7gkEuLhoTvRYW+TU7ER3q9GpNLt/PjG5NLv3XHRDiTg7OPM1JcckBgds+VnAc+HbA== +vue-loader@15.7.2: + version "15.7.2" + resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.7.2.tgz#cc89e2716df87f70fe656c9da9d7f8bec06c73d6" + integrity sha512-H/P9xt/nkocyu4hZKg5TzPqyCT1oKOaCSk9zs0JCbJuy0Q8KtR0bjJpnT/5R5x/Ckd1GFkkLQnQ1C4x6xXeLZg== dependencies: "@vue/component-compiler-utils" "^3.0.0" hash-sum "^1.0.2" diff --git a/examples/browser/vuejs/connect-two-ae/identity/package.json b/examples/browser/vuejs/connect-two-ae/identity/package.json index 6088485088..bce7697c8e 100644 --- a/examples/browser/vuejs/connect-two-ae/identity/package.json +++ b/examples/browser/vuejs/connect-two-ae/identity/package.json @@ -21,15 +21,15 @@ "vuex": "^3.0.1" }, "devDependencies": { - "@babel/cli": "7.6.2", - "@babel/core": "7.6.2", - "@babel/node": "7.6.2", + "@babel/cli": "7.7.0", + "@babel/core": "7.7.0", + "@babel/node": "7.7.0", "@babel/plugin-proposal-export-default-from": "7.5.2", "@babel/plugin-proposal-object-rest-spread": "7.6.2", "@babel/plugin-transform-runtime": "7.6.2", - "@babel/preset-env": "7.6.2", - "@babel/register": "7.6.2", - "@babel/runtime": "7.6.2", + "@babel/preset-env": "7.7.0", + "@babel/register": "7.7.0", + "@babel/runtime": "7.7.0", "autoprefixer": "^9.0.2", "babel-core": "^7.0.0-beta.3", "babel-loader": "^8.0.0-beta.3", diff --git a/examples/browser/vuejs/connect-two-ae/identity/yarn.lock b/examples/browser/vuejs/connect-two-ae/identity/yarn.lock index 2b6ab78720..73e10a3366 100644 --- a/examples/browser/vuejs/connect-two-ae/identity/yarn.lock +++ b/examples/browser/vuejs/connect-two-ae/identity/yarn.lock @@ -40,18 +40,17 @@ randombytes "^2.0.1" safe-buffer "^5.0.1" -"@babel/cli@7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.6.2.tgz#4ce8b5b4b2e4b4c1b7bd841cec62085e2dfc4465" - integrity sha512-JDZ+T/br9pPfT2lmAMJypJDTTTHM9ePD/ED10TRjRzJVdEVy+JB3iRlhzYmTt5YkNgHvxWGlUVnLtdv6ruiDrQ== +"@babel/cli@7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.7.0.tgz#8d10c9acb2acb362d7614a9493e1791c69100d89" + integrity sha512-jECEqAq6Ngf3pOhLSg7od9WKyrIacyh1oNNYtRXNn+ummSHCTXBamGywOAtiae34Vk7zKuQNnLvo2BKTMCoV4A== dependencies: commander "^2.8.1" convert-source-map "^1.1.0" fs-readdir-recursive "^1.1.0" glob "^7.0.0" lodash "^4.17.13" - mkdirp "^0.5.1" - output-file-sync "^2.0.0" + make-dir "^2.1.0" slash "^2.0.0" source-map "^0.5.0" optionalDependencies: @@ -64,18 +63,18 @@ dependencies: "@babel/highlight" "^7.0.0" -"@babel/core@7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.6.2.tgz#069a776e8d5e9eefff76236bc8845566bd31dd91" - integrity sha512-l8zto/fuoZIbncm+01p8zPSDZu/VuuJhAfA7d/AbzM09WR7iVhavvfNDYCNpo1VvLk6E6xgAoP9P+/EMJHuRkQ== +"@babel/core@7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.0.tgz#461d2948b1a7113088baf999499bcbd39a7faa3b" + integrity sha512-Bb1NjZCaiwTQC/ARL+MwDpgocdnwWDCaugvkGt6cxfBzQa8Whv1JybBoUEiBDKl8Ni3H3c7Fykwk7QChUsHRlg== dependencies: "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.6.2" - "@babel/helpers" "^7.6.2" - "@babel/parser" "^7.6.2" - "@babel/template" "^7.6.0" - "@babel/traverse" "^7.6.2" - "@babel/types" "^7.6.0" + "@babel/generator" "^7.7.0" + "@babel/helpers" "^7.7.0" + "@babel/parser" "^7.7.0" + "@babel/template" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" convert-source-map "^1.1.0" debug "^4.1.0" json5 "^2.1.0" @@ -95,12 +94,12 @@ source-map "^0.5.0" trim-right "^1.0.1" -"@babel/generator@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.2.tgz#dac8a3c2df118334c2a29ff3446da1636a8f8c03" - integrity sha512-j8iHaIW4gGPnViaIHI7e9t/Hl8qLjERI6DcV9kEpAIDJsAOrcnXqRS7t+QbhL76pwbtqP+QCQLL0z1CyVmtjjQ== +"@babel/generator@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.0.tgz#c6d4d1f7a0d6e139cbd01aca73170b0bff5425b4" + integrity sha512-1wdJ6UxHyL1XoJQ119JmvuRX27LRih7iYStMPZOWAjQqeAabFg3dYXKMpgihma+to+0ADsTVVt6oRyUxWZw6Mw== dependencies: - "@babel/types" "^7.6.0" + "@babel/types" "^7.7.0" jsesc "^2.5.1" lodash "^4.17.13" source-map "^0.5.0" @@ -112,6 +111,13 @@ dependencies: "@babel/types" "^7.0.0" +"@babel/helper-annotate-as-pure@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.0.tgz#efc54032d43891fe267679e63f6860aa7dbf4a5e" + integrity sha512-k50CQxMlYTYo+GGyUGFwpxKVtxVJi9yh61sXZji3zYHccK9RYliZGSTOgci85T+r+0VFN2nWbGM04PIqwfrpMg== + dependencies: + "@babel/types" "^7.7.0" + "@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" @@ -129,13 +135,21 @@ "@babel/traverse" "^7.4.4" "@babel/types" "^7.4.4" -"@babel/helper-define-map@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz#3dec32c2046f37e09b28c93eb0b103fd2a25d369" - integrity sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg== +"@babel/helper-create-regexp-features-plugin@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.0.tgz#2e8badfe201cfafb5d930f46cf1e0b6f1cdcab23" + integrity sha512-ZhagAAVGD3L6MPM9/zZi7RRteonfBFLVUz3kjsnYsMAtr9hOJCKI9BAKIMpqn3NyWicPieoX779UL+7/3BEAOA== dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/types" "^7.5.5" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.6.0" + +"@babel/helper-define-map@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.7.0.tgz#60b0e9fd60def9de5054c38afde8c8ee409c7529" + integrity sha512-kPKWPb0dMpZi+ov1hJiwse9dWweZsz3V9rP4KdytnX1E7z3cTNmFGglwklzFPuqIcHLIY3bgKSs4vkwXXdflQA== + dependencies: + "@babel/helper-function-name" "^7.7.0" + "@babel/types" "^7.7.0" lodash "^4.17.13" "@babel/helper-explode-assignable-expression@^7.1.0": @@ -155,6 +169,15 @@ "@babel/template" "^7.1.0" "@babel/types" "^7.0.0" +"@babel/helper-function-name@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz#44a5ad151cfff8ed2599c91682dda2ec2c8430a3" + integrity sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q== + dependencies: + "@babel/helper-get-function-arity" "^7.7.0" + "@babel/template" "^7.7.0" + "@babel/types" "^7.7.0" + "@babel/helper-get-function-arity@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" @@ -162,6 +185,13 @@ dependencies: "@babel/types" "^7.0.0" +"@babel/helper-get-function-arity@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz#c604886bc97287a1d1398092bc666bc3d7d7aa2d" + integrity sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw== + dependencies: + "@babel/types" "^7.7.0" + "@babel/helper-hoist-variables@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a" @@ -169,6 +199,13 @@ dependencies: "@babel/types" "^7.4.4" +"@babel/helper-hoist-variables@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.0.tgz#b4552e4cfe5577d7de7b183e193e84e4ec538c81" + integrity sha512-LUe/92NqsDAkJjjCEWkNe+/PcpnisvnqdlRe19FahVapa4jndeuJ+FBiTX1rcAKWKcJGE+C3Q3tuEuxkSmCEiQ== + dependencies: + "@babel/types" "^7.7.0" + "@babel/helper-member-expression-to-functions@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590" @@ -176,6 +213,13 @@ dependencies: "@babel/types" "^7.5.5" +"@babel/helper-member-expression-to-functions@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.0.tgz#472b93003a57071f95a541ea6c2b098398bcad8a" + integrity sha512-QaCZLO2RtBcmvO/ekOLp8p7R5X2JriKRizeDpm5ChATAFWrrYDcDxPuCIBXKyBjY+i1vYSdcUTMIb8psfxHDPA== + dependencies: + "@babel/types" "^7.7.0" + "@babel/helper-module-imports@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" @@ -183,7 +227,14 @@ dependencies: "@babel/types" "^7.0.0" -"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4": +"@babel/helper-module-imports@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.7.0.tgz#99c095889466e5f7b6d66d98dffc58baaf42654d" + integrity sha512-Dv3hLKIC1jyfTkClvyEkYP2OlkzNvWs5+Q8WgPbxM5LMeorons7iPP91JM+DU7tRbhqA1ZeooPaMFvQrn23RHw== + dependencies: + "@babel/types" "^7.7.0" + +"@babel/helper-module-transforms@^7.1.0": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a" integrity sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw== @@ -195,6 +246,18 @@ "@babel/types" "^7.5.5" lodash "^4.17.13" +"@babel/helper-module-transforms@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.7.0.tgz#154a69f0c5b8fd4d39e49750ff7ac4faa3f36786" + integrity sha512-rXEefBuheUYQyX4WjV19tuknrJFwyKw0HgzRwbkyTbB+Dshlq7eqkWbyjzToLrMZk/5wKVKdWFluiAsVkHXvuQ== + dependencies: + "@babel/helper-module-imports" "^7.7.0" + "@babel/helper-simple-access" "^7.7.0" + "@babel/helper-split-export-declaration" "^7.7.0" + "@babel/template" "^7.7.0" + "@babel/types" "^7.7.0" + lodash "^4.17.13" + "@babel/helper-optimise-call-expression@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" @@ -202,6 +265,13 @@ dependencies: "@babel/types" "^7.0.0" +"@babel/helper-optimise-call-expression@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.0.tgz#4f66a216116a66164135dc618c5d8b7a959f9365" + integrity sha512-48TeqmbazjNU/65niiiJIJRc5JozB8acui1OS7bSd6PgxfuovWsvjfWSzlgx+gPFdVveNzUdpdIg5l56Pl5jqg== + dependencies: + "@babel/types" "^7.7.0" + "@babel/helper-plugin-utils@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" @@ -214,16 +284,16 @@ dependencies: lodash "^4.17.13" -"@babel/helper-remap-async-to-generator@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" - integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg== +"@babel/helper-remap-async-to-generator@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.0.tgz#4d69ec653e8bff5bce62f5d33fc1508f223c75a7" + integrity sha512-pHx7RN8X0UNHPB/fnuDnRXVZ316ZigkO8y8D835JlZ2SSdFKb6yH9MIYRU4fy/KPe5sPHDFOPvf8QLdbAGGiyw== dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-wrap-function" "^7.1.0" - "@babel/template" "^7.1.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/helper-annotate-as-pure" "^7.7.0" + "@babel/helper-wrap-function" "^7.7.0" + "@babel/template" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" "@babel/helper-replace-supers@^7.5.5": version "7.5.5" @@ -235,6 +305,16 @@ "@babel/traverse" "^7.5.5" "@babel/types" "^7.5.5" +"@babel/helper-replace-supers@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.7.0.tgz#d5365c8667fe7cbd13b8ddddceb9bd7f2b387512" + integrity sha512-5ALYEul5V8xNdxEeWvRsBzLMxQksT7MaStpxjJf9KsnLxpAKBtfw5NeMKZJSYDa0lKdOcy0g+JT/f5mPSulUgg== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.7.0" + "@babel/helper-optimise-call-expression" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" + "@babel/helper-simple-access@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" @@ -243,6 +323,14 @@ "@babel/template" "^7.1.0" "@babel/types" "^7.0.0" +"@babel/helper-simple-access@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.7.0.tgz#97a8b6c52105d76031b86237dc1852b44837243d" + integrity sha512-AJ7IZD7Eem3zZRuj5JtzFAptBw7pMlS3y8Qv09vaBWoFsle0d1kAn5Wq6Q9MyBXITPOKnxwkZKoAm4bopmv26g== + dependencies: + "@babel/template" "^7.7.0" + "@babel/types" "^7.7.0" + "@babel/helper-split-export-declaration@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" @@ -250,24 +338,31 @@ dependencies: "@babel/types" "^7.4.4" -"@babel/helper-wrap-function@^7.1.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" - integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ== +"@babel/helper-split-export-declaration@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.0.tgz#1365e74ea6c614deeb56ebffabd71006a0eb2300" + integrity sha512-HgYSI8rH08neWlAH3CcdkFg9qX9YsZysZI5GD8LjhQib/mM0jGOZOVkoUiiV2Hu978fRtjtsGsW6w0pKHUWtqA== dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/template" "^7.1.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.2.0" + "@babel/types" "^7.7.0" -"@babel/helpers@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.6.2.tgz#681ffe489ea4dcc55f23ce469e58e59c1c045153" - integrity sha512-3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA== +"@babel/helper-wrap-function@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.7.0.tgz#15af3d3e98f8417a60554acbb6c14e75e0b33b74" + integrity sha512-sd4QjeMgQqzshSjecZjOp8uKfUtnpmCyQhKQrVJBBgeHAB/0FPi33h3AbVlVp07qQtMD4QgYSzaMI7VwncNK/w== dependencies: - "@babel/template" "^7.6.0" - "@babel/traverse" "^7.6.2" - "@babel/types" "^7.6.0" + "@babel/helper-function-name" "^7.7.0" + "@babel/template" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" + +"@babel/helpers@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.7.0.tgz#359bb5ac3b4726f7c1fde0ec75f64b3f4275d60b" + integrity sha512-VnNwL4YOhbejHb7x/b5F39Zdg5vIQpUUNzJwx0ww1EcVRt41bbGRZWhAURrfY32T5zTT3qwNOQFWpn+P0i0a2g== + dependencies: + "@babel/template" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" "@babel/highlight@^7.0.0": version "7.5.0" @@ -278,12 +373,12 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/node@7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/node/-/node-7.6.2.tgz#a94479f95ee2008342f4847346c8bb8ff2770f44" - integrity sha512-59UxvVtRpVpL5i0KTcw41FqLNPT/Jc9k/48Rq00wfN49lAIQeRKGwZ6xX1FWlCfcIGP+5l4rfZajORvmYkhfGg== +"@babel/node@7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/node/-/node-7.7.0.tgz#fba73fdaf75ab1a0eaf03923f5f4ce7fa41c9974" + integrity sha512-CZFTjfCGysChOJ90ksndqct5bXkByzV5Ef8YgYS3A513MhyFQgsXJMRu2QyGOlfoP3hBZ3AmDd37ARyv/L1Zvw== dependencies: - "@babel/register" "^7.6.2" + "@babel/register" "^7.7.0" commander "^2.8.1" core-js "^3.2.1" lodash "^4.17.13" @@ -296,24 +391,24 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.5.tgz#02f077ac8817d3df4a832ef59de67565e71cca4b" integrity sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g== -"@babel/parser@^7.6.0", "@babel/parser@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.2.tgz#205e9c95e16ba3b8b96090677a67c9d6075b70a1" - integrity sha512-mdFqWrSPCmikBoaBYMuBulzTIKuXVPtEISFbRRVNwMWpCms/hmE2kRq0bblUHaNRKrjRlmVbx1sDHmjmRgD2Xg== +"@babel/parser@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.0.tgz#232618f6e8947bc54b407fa1f1c91a22758e7159" + integrity sha512-GqL+Z0d7B7ADlQBMXlJgvXEbtt5qlqd1YQ5fr12hTSfh7O/vgrEIvJxU2e7aSVrEUn75zTZ6Nd0s8tthrlZnrQ== -"@babel/plugin-proposal-async-generator-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" - integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ== +"@babel/plugin-proposal-async-generator-functions@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.0.tgz#83ef2d6044496b4c15d8b4904e2219e6dccc6971" + integrity sha512-ot/EZVvf3mXtZq0Pd0+tSOfGWMizqmOohXmNZg6LNFjHOV+wOPv7BvVYh8oPR8LhpIP3ye8nNooKL50YRWxpYA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.1.0" + "@babel/helper-remap-async-to-generator" "^7.7.0" "@babel/plugin-syntax-async-generators" "^7.2.0" -"@babel/plugin-proposal-dynamic-import@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz#e532202db4838723691b10a67b8ce509e397c506" - integrity sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw== +"@babel/plugin-proposal-dynamic-import@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.0.tgz#dc02a8bad8d653fb59daf085516fa416edd2aa7f" + integrity sha512-7poL3Xi+QFPC7sGAzEIbXUyYzGJwbc2+gSD0AkiC5k52kH2cqHdqxm5hNFfLW3cRSTcx9bN0Fl7/6zWcLLnKAQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-dynamic-import" "^7.2.0" @@ -350,14 +445,13 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" -"@babel/plugin-proposal-unicode-property-regex@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.6.2.tgz#05413762894f41bfe42b9a5e80919bd575dcc802" - integrity sha512-NxHETdmpeSCtiatMRYWVJo7266rrvAC3DTeG5exQBIH/fMIUK7ejDNznBbn3HQl/o9peymRRg7Yqkx6PdUXmMw== +"@babel/plugin-proposal-unicode-property-regex@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.0.tgz#549fe1717a1bd0a2a7e63163841cb37e78179d5d" + integrity sha512-mk34H+hp7kRBWJOOAR0ZMGCydgKMD4iN9TpDRp3IIcbunltxEY89XSimc6WbtSLCDrwcdy/EEw7h5CFCzxTchw== dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.7.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.6.0" "@babel/plugin-syntax-async-generators@^7.2.0": version "7.2.0" @@ -401,6 +495,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-syntax-top-level-await@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.0.tgz#f5699549f50bbe8d12b1843a4e82f0a37bb65f4d" + integrity sha512-hi8FUNiFIY1fnUI2n1ViB1DR0R4QeK4iHcTlW6aJkrPoTdb8Rf1EMQ6GT3f67DDkYyWgew9DFoOZ6gOoEsdzTA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-arrow-functions@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" @@ -408,14 +509,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-async-to-generator@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz#89a3848a0166623b5bc481164b5936ab947e887e" - integrity sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg== +"@babel/plugin-transform-async-to-generator@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.0.tgz#e2b84f11952cf5913fe3438b7d2585042772f492" + integrity sha512-vLI2EFLVvRBL3d8roAMqtVY0Bm9C1QzLkdS57hiKrjUBSqsQYrBsMCeOg/0KK7B0eK9V71J5mWcha9yyoI2tZw== dependencies: - "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-module-imports" "^7.7.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.1.0" + "@babel/helper-remap-async-to-generator" "^7.7.0" "@babel/plugin-transform-block-scoped-functions@^7.2.0": version "7.2.0" @@ -424,26 +525,26 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-block-scoping@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.2.tgz#96c33ab97a9ae500cc6f5b19e04a7e6553360a79" - integrity sha512-zZT8ivau9LOQQaOGC7bQLQOT4XPkPXgN2ERfUgk1X8ql+mVkLc4E8eKk+FO3o0154kxzqenWCorfmEXpEZcrSQ== +"@babel/plugin-transform-block-scoping@^7.6.3": + version "7.6.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.3.tgz#6e854e51fbbaa84351b15d4ddafe342f3a5d542a" + integrity sha512-7hvrg75dubcO3ZI2rjYTzUrEuh1E9IyDEhhB6qfcooxhDA33xx2MasuLVgdxzcP6R/lipAC6n9ub9maNW6RKdw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" lodash "^4.17.13" -"@babel/plugin-transform-classes@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz#d094299d9bd680a14a2a0edae38305ad60fb4de9" - integrity sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg== +"@babel/plugin-transform-classes@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.0.tgz#b411ecc1b8822d24b81e5d184f24149136eddd4a" + integrity sha512-/b3cKIZwGeUesZheU9jNYcwrEA7f/Bo4IdPmvp7oHgvks2majB5BoT5byAql44fiNQYOPzhk2w8DbgfuafkMoA== dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-define-map" "^7.5.5" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-annotate-as-pure" "^7.7.0" + "@babel/helper-define-map" "^7.7.0" + "@babel/helper-function-name" "^7.7.0" + "@babel/helper-optimise-call-expression" "^7.7.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.5.5" - "@babel/helper-split-export-declaration" "^7.4.4" + "@babel/helper-replace-supers" "^7.7.0" + "@babel/helper-split-export-declaration" "^7.7.0" globals "^11.1.0" "@babel/plugin-transform-computed-properties@^7.2.0": @@ -460,14 +561,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-dotall-regex@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.6.2.tgz#44abb948b88f0199a627024e1508acaf8dc9b2f9" - integrity sha512-KGKT9aqKV+9YMZSkowzYoYEiHqgaDhGmPNZlZxX6UeHC4z30nC1J9IrZuGqbYFB1jaIGdv91ujpze0exiVK8bA== +"@babel/plugin-transform-dotall-regex@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.0.tgz#c5c9ecacab3a5e0c11db6981610f0c32fd698b3b" + integrity sha512-3QQlF7hSBnSuM1hQ0pS3pmAbWLax/uGNCbPBND9y+oJ4Y776jsyujG2k0Sn2Aj2a0QwVOiOFL5QVPA7spjvzSA== dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.7.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.6.0" "@babel/plugin-transform-duplicate-keys@^7.5.0": version "7.5.0" @@ -491,12 +591,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-function-name@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad" - integrity sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA== +"@babel/plugin-transform-function-name@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.0.tgz#0fa786f1eef52e3b7d4fc02e54b2129de8a04c2a" + integrity sha512-P5HKu0d9+CzZxP5jcrWdpe7ZlFDe24bmqP6a6X8BHEBl/eizAsY8K6LX8LASZL0Jxdjm5eEfzp+FIrxCm/p8bA== dependencies: - "@babel/helper-function-name" "^7.1.0" + "@babel/helper-function-name" "^7.7.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-literals@^7.2.0": @@ -522,39 +622,39 @@ "@babel/helper-plugin-utils" "^7.0.0" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-commonjs@^7.6.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz#39dfe957de4420445f1fcf88b68a2e4aa4515486" - integrity sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g== +"@babel/plugin-transform-modules-commonjs@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.0.tgz#3e5ffb4fd8c947feede69cbe24c9554ab4113fe3" + integrity sha512-KEMyWNNWnjOom8vR/1+d+Ocz/mILZG/eyHHO06OuBQ2aNhxT62fr4y6fGOplRx+CxCSp3IFwesL8WdINfY/3kg== dependencies: - "@babel/helper-module-transforms" "^7.4.4" + "@babel/helper-module-transforms" "^7.7.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-simple-access" "^7.1.0" + "@babel/helper-simple-access" "^7.7.0" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-systemjs@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz#e75266a13ef94202db2a0620977756f51d52d249" - integrity sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg== +"@babel/plugin-transform-modules-systemjs@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.0.tgz#9baf471213af9761c1617bb12fd278e629041417" + integrity sha512-ZAuFgYjJzDNv77AjXRqzQGlQl4HdUM6j296ee4fwKVZfhDR9LAGxfvXjBkb06gNETPnN0sLqRm9Gxg4wZH6dXg== dependencies: - "@babel/helper-hoist-variables" "^7.4.4" + "@babel/helper-hoist-variables" "^7.7.0" "@babel/helper-plugin-utils" "^7.0.0" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-umd@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae" - integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw== +"@babel/plugin-transform-modules-umd@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.0.tgz#d62c7da16670908e1d8c68ca0b5d4c0097b69966" + integrity sha512-u7eBA03zmUswQ9LQ7Qw0/ieC1pcAkbp5OQatbWUzY1PaBccvuJXUkYzoN1g7cqp7dbTu6Dp9bXyalBvD04AANA== dependencies: - "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-module-transforms" "^7.7.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-named-capturing-groups-regex@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.2.tgz#c1ca0bb84b94f385ca302c3932e870b0fb0e522b" - integrity sha512-xBdB+XOs+lgbZc2/4F5BVDVcDNS4tcSKQc96KmlqLEAwz6tpYPEvPdmDfvVG0Ssn8lAhronaRs6Z6KSexIpK5g== +"@babel/plugin-transform-named-capturing-groups-regex@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.0.tgz#358e6fd869b9a4d8f5cbc79e4ed4fc340e60dcaf" + integrity sha512-+SicSJoKouPctL+j1pqktRVCgy+xAch1hWWTMy13j0IflnyNjaoskj+DwRQFimHbLqO3sq2oN2CXMvXq3Bgapg== dependencies: - regexpu-core "^4.6.0" + "@babel/helper-create-regexp-features-plugin" "^7.7.0" "@babel/plugin-transform-new-target@^7.4.4": version "7.4.4" @@ -587,10 +687,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-regenerator@^7.4.5": - version "7.4.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz#629dc82512c55cee01341fb27bdfcb210354680f" - integrity sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA== +"@babel/plugin-transform-regenerator@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.0.tgz#f1b20b535e7716b622c99e989259d7dd942dd9cc" + integrity sha512-AXmvnC+0wuj/cFkkS/HFHIojxH3ffSXE+ttulrqWjZZRaUOonfJc60e1wSNT4rV8tIunvu/R3wCp71/tLAa9xg== dependencies: regenerator-transform "^0.14.0" @@ -648,83 +748,90 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-unicode-regex@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.6.2.tgz#b692aad888a7e8d8b1b214be6b9dc03d5031f698" - integrity sha512-orZI6cWlR3nk2YmYdb0gImrgCUwb5cBUwjf6Ks6dvNVvXERkwtJWOQaEOjPiu0Gu1Tq6Yq/hruCZZOOi9F34Dw== +"@babel/plugin-transform-unicode-regex@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.0.tgz#743d9bcc44080e3cc7d49259a066efa30f9187a3" + integrity sha512-RrThb0gdrNwFAqEAAx9OWgtx6ICK69x7i9tCnMdVrxQwSDp/Abu9DXFU5Hh16VP33Rmxh04+NGW28NsIkFvFKA== dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.7.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.6.0" -"@babel/preset-env@7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.6.2.tgz#abbb3ed785c7fe4220d4c82a53621d71fc0c75d3" - integrity sha512-Ru7+mfzy9M1/YTEtlDS8CD45jd22ngb9tXnn64DvQK3ooyqSw9K4K9DUWmYknTTVk4TqygL9dqCrZgm1HMea/Q== +"@babel/preset-env@7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.0.tgz#46dccc1df6b6a195044421b3f61a029866d92eef" + integrity sha512-AgvG8VJDehjK0Ky86xvaqKpx0ASKQk63dfghqqFt6yf9gqmcvc5TodM0ZT0XZvw9fxfrG1PqJ1Xt+8bDnHv9xw== dependencies: - "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-module-imports" "^7.7.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-async-generator-functions" "^7.2.0" - "@babel/plugin-proposal-dynamic-import" "^7.5.0" + "@babel/plugin-proposal-async-generator-functions" "^7.7.0" + "@babel/plugin-proposal-dynamic-import" "^7.7.0" "@babel/plugin-proposal-json-strings" "^7.2.0" "@babel/plugin-proposal-object-rest-spread" "^7.6.2" "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.6.2" + "@babel/plugin-proposal-unicode-property-regex" "^7.7.0" "@babel/plugin-syntax-async-generators" "^7.2.0" "@babel/plugin-syntax-dynamic-import" "^7.2.0" "@babel/plugin-syntax-json-strings" "^7.2.0" "@babel/plugin-syntax-object-rest-spread" "^7.2.0" "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + "@babel/plugin-syntax-top-level-await" "^7.7.0" "@babel/plugin-transform-arrow-functions" "^7.2.0" - "@babel/plugin-transform-async-to-generator" "^7.5.0" + "@babel/plugin-transform-async-to-generator" "^7.7.0" "@babel/plugin-transform-block-scoped-functions" "^7.2.0" - "@babel/plugin-transform-block-scoping" "^7.6.2" - "@babel/plugin-transform-classes" "^7.5.5" + "@babel/plugin-transform-block-scoping" "^7.6.3" + "@babel/plugin-transform-classes" "^7.7.0" "@babel/plugin-transform-computed-properties" "^7.2.0" "@babel/plugin-transform-destructuring" "^7.6.0" - "@babel/plugin-transform-dotall-regex" "^7.6.2" + "@babel/plugin-transform-dotall-regex" "^7.7.0" "@babel/plugin-transform-duplicate-keys" "^7.5.0" "@babel/plugin-transform-exponentiation-operator" "^7.2.0" "@babel/plugin-transform-for-of" "^7.4.4" - "@babel/plugin-transform-function-name" "^7.4.4" + "@babel/plugin-transform-function-name" "^7.7.0" "@babel/plugin-transform-literals" "^7.2.0" "@babel/plugin-transform-member-expression-literals" "^7.2.0" "@babel/plugin-transform-modules-amd" "^7.5.0" - "@babel/plugin-transform-modules-commonjs" "^7.6.0" - "@babel/plugin-transform-modules-systemjs" "^7.5.0" - "@babel/plugin-transform-modules-umd" "^7.2.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.6.2" + "@babel/plugin-transform-modules-commonjs" "^7.7.0" + "@babel/plugin-transform-modules-systemjs" "^7.7.0" + "@babel/plugin-transform-modules-umd" "^7.7.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.7.0" "@babel/plugin-transform-new-target" "^7.4.4" "@babel/plugin-transform-object-super" "^7.5.5" "@babel/plugin-transform-parameters" "^7.4.4" "@babel/plugin-transform-property-literals" "^7.2.0" - "@babel/plugin-transform-regenerator" "^7.4.5" + "@babel/plugin-transform-regenerator" "^7.7.0" "@babel/plugin-transform-reserved-words" "^7.2.0" "@babel/plugin-transform-shorthand-properties" "^7.2.0" "@babel/plugin-transform-spread" "^7.6.2" "@babel/plugin-transform-sticky-regex" "^7.2.0" "@babel/plugin-transform-template-literals" "^7.4.4" "@babel/plugin-transform-typeof-symbol" "^7.2.0" - "@babel/plugin-transform-unicode-regex" "^7.6.2" - "@babel/types" "^7.6.0" + "@babel/plugin-transform-unicode-regex" "^7.7.0" + "@babel/types" "^7.7.0" browserslist "^4.6.0" core-js-compat "^3.1.1" invariant "^2.2.2" js-levenshtein "^1.1.3" semver "^5.5.0" -"@babel/register@7.6.2", "@babel/register@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.6.2.tgz#25765a922202cb06f8bdac5a3b1e70cd6bf3dd45" - integrity sha512-xgZk2LRZvt6i2SAUWxc7ellk4+OYRgS3Zpsnr13nMS1Qo25w21Uu8o6vTOAqNaxiqrnv30KTYzh9YWY2k21CeQ== +"@babel/register@7.7.0", "@babel/register@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.7.0.tgz#4e23ecf840296ef79c605baaa5c89e1a2426314b" + integrity sha512-HV3GJzTvSoyOMWGYn2TAh6uL6g+gqKTgEZ99Q3+X9UURT1VPT/WcU46R61XftIc5rXytcOHZ4Z0doDlsjPomIg== dependencies: find-cache-dir "^2.0.0" lodash "^4.17.13" - mkdirp "^0.5.1" + make-dir "^2.1.0" pirates "^4.0.0" - source-map-support "^0.5.9" + source-map-support "^0.5.16" -"@babel/runtime@7.6.2", "@babel/runtime@^7.6.2": +"@babel/runtime@7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.0.tgz#9b309d493864d69e0b9ec093e1426535a76b4b94" + integrity sha512-xdf3hZAzoqL9q7ItTe/KyUGw214oXdHmq2XhW8ANRuo2KMX+s17RK+z4DsQiPkdOqCjep14eNTneRoiTs9T1AQ== + dependencies: + regenerator-runtime "^0.13.2" + +"@babel/runtime@^7.6.2": version "7.6.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.6.2.tgz#c3d6e41b304ef10dcf13777a33e7694ec4a9a6dd" integrity sha512-EXxN64agfUqqIGeEjI5dL5z0Sw0ZwWo1mLTi4mQowCZ42O59b7DRpZAnTC6OqdF28wMBMFKNb/4uFGrVaigSpg== @@ -740,14 +847,14 @@ "@babel/parser" "^7.4.4" "@babel/types" "^7.4.4" -"@babel/template@^7.6.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.6.0.tgz#7f0159c7f5012230dad64cca42ec9bdb5c9536e6" - integrity sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ== +"@babel/template@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.7.0.tgz#4fadc1b8e734d97f56de39c77de76f2562e597d0" + integrity sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.6.0" - "@babel/types" "^7.6.0" + "@babel/parser" "^7.7.0" + "@babel/types" "^7.7.0" "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5": version "7.5.5" @@ -764,22 +871,22 @@ globals "^11.1.0" lodash "^4.17.13" -"@babel/traverse@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.2.tgz#b0e2bfd401d339ce0e6c05690206d1e11502ce2c" - integrity sha512-8fRE76xNwNttVEF2TwxJDGBLWthUkHWSldmfuBzVRmEDWOtu4XdINTgN7TDWzuLg4bbeIMLvfMFD9we5YcWkRQ== +"@babel/traverse@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.7.0.tgz#9f5744346b8d10097fd2ec2eeffcaf19813cbfaf" + integrity sha512-ea/3wRZc//e/uwCpuBX2itrhI0U9l7+FsrKWyKGNyvWbuMcCG7ATKY2VI4wlg2b2TA39HHwIxnvmXvtiKsyn7w== dependencies: "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.6.2" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/parser" "^7.6.2" - "@babel/types" "^7.6.0" + "@babel/generator" "^7.7.0" + "@babel/helper-function-name" "^7.7.0" + "@babel/helper-split-export-declaration" "^7.7.0" + "@babel/parser" "^7.7.0" + "@babel/types" "^7.7.0" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.13" -"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5": +"@babel/types@^7.0.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.5.tgz#97b9f728e182785909aa4ab56264f090a028d18a" integrity sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw== @@ -788,10 +895,10 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" -"@babel/types@^7.6.0": - version "7.6.1" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.1.tgz#53abf3308add3ac2a2884d539151c57c4b3ac648" - integrity sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g== +"@babel/types@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.7.0.tgz#bdf5967277ced7590da452c31d60853d0beb5d4f" + integrity sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ== dependencies: esutils "^2.0.2" lodash "^4.17.13" @@ -5472,7 +5579,7 @@ make-dir@^1.0.0: dependencies: pify "^3.0.0" -make-dir@^2.0.0: +make-dir@^2.0.0, make-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== @@ -6306,15 +6413,6 @@ osenv@^0.1.4: os-homedir "^1.0.0" os-tmpdir "^1.0.0" -output-file-sync@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-2.0.1.tgz#f53118282f5f553c2799541792b723a4c71430c0" - integrity sha512-mDho4qm7WgIXIGf4eYU1RHN2UU5tPfVYVSRwDJw0uTmj35DQUt/eNp19N7v6T3SrR0ESTEf2up2CGO73qI35zQ== - dependencies: - graceful-fs "^4.1.11" - is-plain-obj "^1.1.0" - mkdirp "^0.5.1" - p-defer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" @@ -8299,7 +8397,15 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.5.9, source-map-support@~0.5.12: +source-map-support@^0.5.16: + version "0.5.16" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" + integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-support@~0.5.12: version "0.5.13" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== @@ -9322,10 +9428,10 @@ vue-hot-reload-api@^2.3.0: resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.3.tgz#2756f46cb3258054c5f4723de8ae7e87302a1ccf" integrity sha512-KmvZVtmM26BQOMK1rwUZsrqxEGeKiYSZGA7SNWE6uExx8UX/cj9hq2MRV/wWC3Cq6AoeDGk57rL9YMFRel/q+g== -vue-loader@15.7.1: - version "15.7.1" - resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.7.1.tgz#6ccacd4122aa80f69baaac08ff295a62e3aefcfd" - integrity sha512-fwIKtA23Pl/rqfYP5TSGK7gkEuLhoTvRYW+TU7ER3q9GpNLt/PjG5NLv3XHRDiTg7OPM1JcckBgds+VnAc+HbA== +vue-loader@15.7.2: + version "15.7.2" + resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.7.2.tgz#cc89e2716df87f70fe656c9da9d7f8bec06c73d6" + integrity sha512-H/P9xt/nkocyu4hZKg5TzPqyCT1oKOaCSk9zs0JCbJuy0Q8KtR0bjJpnT/5R5x/Ckd1GFkkLQnQ1C4x6xXeLZg== dependencies: "@vue/component-compiler-utils" "^3.0.0" hash-sum "^1.0.2" diff --git a/package-lock.json b/package-lock.json index cad0584ecf..368698d36a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,9 +16,9 @@ } }, "@babel/cli": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.6.2.tgz", - "integrity": "sha512-JDZ+T/br9pPfT2lmAMJypJDTTTHM9ePD/ED10TRjRzJVdEVy+JB3iRlhzYmTt5YkNgHvxWGlUVnLtdv6ruiDrQ==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.7.0.tgz", + "integrity": "sha512-jECEqAq6Ngf3pOhLSg7od9WKyrIacyh1oNNYtRXNn+ummSHCTXBamGywOAtiae34Vk7zKuQNnLvo2BKTMCoV4A==", "dev": true, "requires": { "chokidar": "^2.1.8", @@ -27,8 +27,7 @@ "fs-readdir-recursive": "^1.1.0", "glob": "^7.0.0", "lodash": "^4.17.13", - "mkdirp": "^0.5.1", - "output-file-sync": "^2.0.0", + "make-dir": "^2.1.0", "slash": "^2.0.0", "source-map": "^0.5.0" }, @@ -57,18 +56,18 @@ } }, "@babel/core": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.6.2.tgz", - "integrity": "sha512-l8zto/fuoZIbncm+01p8zPSDZu/VuuJhAfA7d/AbzM09WR7iVhavvfNDYCNpo1VvLk6E6xgAoP9P+/EMJHuRkQ==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.0.tgz", + "integrity": "sha512-Bb1NjZCaiwTQC/ARL+MwDpgocdnwWDCaugvkGt6cxfBzQa8Whv1JybBoUEiBDKl8Ni3H3c7Fykwk7QChUsHRlg==", "dev": true, "requires": { "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.6.2", - "@babel/helpers": "^7.6.2", - "@babel/parser": "^7.6.2", - "@babel/template": "^7.6.0", - "@babel/traverse": "^7.6.2", - "@babel/types": "^7.6.0", + "@babel/generator": "^7.7.0", + "@babel/helpers": "^7.7.0", + "@babel/parser": "^7.7.0", + "@babel/template": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0", "convert-source-map": "^1.1.0", "debug": "^4.1.0", "json5": "^2.1.0", @@ -78,6 +77,23 @@ "source-map": "^0.5.0" }, "dependencies": { + "@babel/parser": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.0.tgz", + "integrity": "sha512-GqL+Z0d7B7ADlQBMXlJgvXEbtt5qlqd1YQ5fr12hTSfh7O/vgrEIvJxU2e7aSVrEUn75zTZ6Nd0s8tthrlZnrQ==", + "dev": true + }, + "@babel/types": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", + "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -102,17 +118,28 @@ } }, "@babel/generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.4.tgz", - "integrity": "sha512-jsBuXkFoZxk0yWLyGI9llT9oiQ2FeTASmRFE32U+aaDTfoE92t78eroO7PTpU/OrYq38hlcDM6vbfLDaOLy+7w==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.0.tgz", + "integrity": "sha512-1wdJ6UxHyL1XoJQ119JmvuRX27LRih7iYStMPZOWAjQqeAabFg3dYXKMpgihma+to+0ADsTVVt6oRyUxWZw6Mw==", "dev": true, "requires": { - "@babel/types": "^7.6.3", + "@babel/types": "^7.7.0", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" }, "dependencies": { + "@babel/types": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", + "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -122,92 +149,219 @@ } }, "@babel/helper-annotate-as-pure": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz", - "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.0.tgz", + "integrity": "sha512-k50CQxMlYTYo+GGyUGFwpxKVtxVJi9yh61sXZji3zYHccK9RYliZGSTOgci85T+r+0VFN2nWbGM04PIqwfrpMg==", "dev": true, "requires": { - "@babel/types": "^7.0.0" + "@babel/types": "^7.7.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", + "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", - "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.7.0.tgz", + "integrity": "sha512-Cd8r8zs4RKDwMG/92lpZcnn5WPQ3LAMQbCw42oqUh4s7vsSN5ANUZjMel0OOnxDLq57hoDDbai+ryygYfCTOsw==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.1.0", - "@babel/types": "^7.0.0" + "@babel/helper-explode-assignable-expression": "^7.7.0", + "@babel/types": "^7.7.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", + "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-call-delegate": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz", - "integrity": "sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.7.0.tgz", + "integrity": "sha512-Su0Mdq7uSSWGZayGMMQ+z6lnL00mMCnGAbO/R0ZO9odIdB/WNU/VfQKqMQU0fdIsxQYbRjDM4BixIa93SQIpvw==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.4.4", - "@babel/traverse": "^7.4.4", - "@babel/types": "^7.4.4" + "@babel/helper-hoist-variables": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", + "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.0.tgz", + "integrity": "sha512-ZhagAAVGD3L6MPM9/zZi7RRteonfBFLVUz3kjsnYsMAtr9hOJCKI9BAKIMpqn3NyWicPieoX779UL+7/3BEAOA==", + "dev": true, + "requires": { + "@babel/helper-regex": "^7.4.4", + "regexpu-core": "^4.6.0" } }, "@babel/helper-define-map": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz", - "integrity": "sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.7.0.tgz", + "integrity": "sha512-kPKWPb0dMpZi+ov1hJiwse9dWweZsz3V9rP4KdytnX1E7z3cTNmFGglwklzFPuqIcHLIY3bgKSs4vkwXXdflQA==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.1.0", - "@babel/types": "^7.5.5", + "@babel/helper-function-name": "^7.7.0", + "@babel/types": "^7.7.0", "lodash": "^4.17.13" + }, + "dependencies": { + "@babel/types": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", + "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-explode-assignable-expression": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz", - "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.7.0.tgz", + "integrity": "sha512-CDs26w2shdD1urNUAji2RJXyBFCaR+iBEGnFz3l7maizMkQe3saVw9WtjG1tz8CwbjvlFnaSLVhgnu1SWaherg==", "dev": true, "requires": { - "@babel/traverse": "^7.1.0", - "@babel/types": "^7.0.0" + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", + "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-function-name": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", - "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz", + "integrity": "sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.0.0", - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" + "@babel/helper-get-function-arity": "^7.7.0", + "@babel/template": "^7.7.0", + "@babel/types": "^7.7.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", + "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-get-function-arity": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", - "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz", + "integrity": "sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw==", "dev": true, "requires": { - "@babel/types": "^7.0.0" + "@babel/types": "^7.7.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", + "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-hoist-variables": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz", - "integrity": "sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.0.tgz", + "integrity": "sha512-LUe/92NqsDAkJjjCEWkNe+/PcpnisvnqdlRe19FahVapa4jndeuJ+FBiTX1rcAKWKcJGE+C3Q3tuEuxkSmCEiQ==", "dev": true, "requires": { - "@babel/types": "^7.4.4" + "@babel/types": "^7.7.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", + "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-member-expression-to-functions": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz", - "integrity": "sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.0.tgz", + "integrity": "sha512-QaCZLO2RtBcmvO/ekOLp8p7R5X2JriKRizeDpm5ChATAFWrrYDcDxPuCIBXKyBjY+i1vYSdcUTMIb8psfxHDPA==", "dev": true, "requires": { - "@babel/types": "^7.5.5" + "@babel/types": "^7.7.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", + "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-module-imports": { @@ -220,26 +374,61 @@ } }, "@babel/helper-module-transforms": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz", - "integrity": "sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.7.0.tgz", + "integrity": "sha512-rXEefBuheUYQyX4WjV19tuknrJFwyKw0HgzRwbkyTbB+Dshlq7eqkWbyjzToLrMZk/5wKVKdWFluiAsVkHXvuQ==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/helper-simple-access": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/template": "^7.4.4", - "@babel/types": "^7.5.5", + "@babel/helper-module-imports": "^7.7.0", + "@babel/helper-simple-access": "^7.7.0", + "@babel/helper-split-export-declaration": "^7.7.0", + "@babel/template": "^7.7.0", + "@babel/types": "^7.7.0", "lodash": "^4.17.13" + }, + "dependencies": { + "@babel/helper-module-imports": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.0.tgz", + "integrity": "sha512-Dv3hLKIC1jyfTkClvyEkYP2OlkzNvWs5+Q8WgPbxM5LMeorons7iPP91JM+DU7tRbhqA1ZeooPaMFvQrn23RHw==", + "dev": true, + "requires": { + "@babel/types": "^7.7.0" + } + }, + "@babel/types": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", + "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-optimise-call-expression": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", - "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.0.tgz", + "integrity": "sha512-48TeqmbazjNU/65niiiJIJRc5JozB8acui1OS7bSd6PgxfuovWsvjfWSzlgx+gPFdVveNzUdpdIg5l56Pl5jqg==", "dev": true, "requires": { - "@babel/types": "^7.0.0" + "@babel/types": "^7.7.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", + "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-plugin-utils": { @@ -258,70 +447,148 @@ } }, "@babel/helper-remap-async-to-generator": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", - "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.0.tgz", + "integrity": "sha512-pHx7RN8X0UNHPB/fnuDnRXVZ316ZigkO8y8D835JlZ2SSdFKb6yH9MIYRU4fy/KPe5sPHDFOPvf8QLdbAGGiyw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.0.0", - "@babel/helper-wrap-function": "^7.1.0", - "@babel/template": "^7.1.0", - "@babel/traverse": "^7.1.0", - "@babel/types": "^7.0.0" + "@babel/helper-annotate-as-pure": "^7.7.0", + "@babel/helper-wrap-function": "^7.7.0", + "@babel/template": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", + "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-replace-supers": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz", - "integrity": "sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.7.0.tgz", + "integrity": "sha512-5ALYEul5V8xNdxEeWvRsBzLMxQksT7MaStpxjJf9KsnLxpAKBtfw5NeMKZJSYDa0lKdOcy0g+JT/f5mPSulUgg==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.5.5", - "@babel/helper-optimise-call-expression": "^7.0.0", - "@babel/traverse": "^7.5.5", - "@babel/types": "^7.5.5" + "@babel/helper-member-expression-to-functions": "^7.7.0", + "@babel/helper-optimise-call-expression": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", + "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-simple-access": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz", - "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.7.0.tgz", + "integrity": "sha512-AJ7IZD7Eem3zZRuj5JtzFAptBw7pMlS3y8Qv09vaBWoFsle0d1kAn5Wq6Q9MyBXITPOKnxwkZKoAm4bopmv26g==", "dev": true, "requires": { - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" + "@babel/template": "^7.7.0", + "@babel/types": "^7.7.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", + "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-split-export-declaration": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", - "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.0.tgz", + "integrity": "sha512-HgYSI8rH08neWlAH3CcdkFg9qX9YsZysZI5GD8LjhQib/mM0jGOZOVkoUiiV2Hu978fRtjtsGsW6w0pKHUWtqA==", "dev": true, "requires": { - "@babel/types": "^7.4.4" + "@babel/types": "^7.7.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", + "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-wrap-function": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz", - "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.7.0.tgz", + "integrity": "sha512-sd4QjeMgQqzshSjecZjOp8uKfUtnpmCyQhKQrVJBBgeHAB/0FPi33h3AbVlVp07qQtMD4QgYSzaMI7VwncNK/w==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.1.0", - "@babel/template": "^7.1.0", - "@babel/traverse": "^7.1.0", - "@babel/types": "^7.2.0" + "@babel/helper-function-name": "^7.7.0", + "@babel/template": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", + "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helpers": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.6.2.tgz", - "integrity": "sha512-3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.7.0.tgz", + "integrity": "sha512-VnNwL4YOhbejHb7x/b5F39Zdg5vIQpUUNzJwx0ww1EcVRt41bbGRZWhAURrfY32T5zTT3qwNOQFWpn+P0i0a2g==", "dev": true, "requires": { - "@babel/template": "^7.6.0", - "@babel/traverse": "^7.6.2", - "@babel/types": "^7.6.0" + "@babel/template": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", + "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/highlight": { @@ -336,12 +603,12 @@ } }, "@babel/node": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/node/-/node-7.6.2.tgz", - "integrity": "sha512-59UxvVtRpVpL5i0KTcw41FqLNPT/Jc9k/48Rq00wfN49lAIQeRKGwZ6xX1FWlCfcIGP+5l4rfZajORvmYkhfGg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/node/-/node-7.7.0.tgz", + "integrity": "sha512-CZFTjfCGysChOJ90ksndqct5bXkByzV5Ef8YgYS3A513MhyFQgsXJMRu2QyGOlfoP3hBZ3AmDd37ARyv/L1Zvw==", "dev": true, "requires": { - "@babel/register": "^7.6.2", + "@babel/register": "^7.7.0", "commander": "^2.8.1", "core-js": "^3.2.1", "lodash": "^4.17.13", @@ -365,20 +632,20 @@ "dev": true }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz", - "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.0.tgz", + "integrity": "sha512-ot/EZVvf3mXtZq0Pd0+tSOfGWMizqmOohXmNZg6LNFjHOV+wOPv7BvVYh8oPR8LhpIP3ye8nNooKL50YRWxpYA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.1.0", + "@babel/helper-remap-async-to-generator": "^7.7.0", "@babel/plugin-syntax-async-generators": "^7.2.0" } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz", - "integrity": "sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.0.tgz", + "integrity": "sha512-7poL3Xi+QFPC7sGAzEIbXUyYzGJwbc2+gSD0AkiC5k52kH2cqHdqxm5hNFfLW3cRSTcx9bN0Fl7/6zWcLLnKAQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", @@ -426,14 +693,13 @@ } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.6.2.tgz", - "integrity": "sha512-NxHETdmpeSCtiatMRYWVJo7266rrvAC3DTeG5exQBIH/fMIUK7ejDNznBbn3HQl/o9peymRRg7Yqkx6PdUXmMw==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.0.tgz", + "integrity": "sha512-mk34H+hp7kRBWJOOAR0ZMGCydgKMD4iN9TpDRp3IIcbunltxEY89XSimc6WbtSLCDrwcdy/EEw7h5CFCzxTchw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.4.4", - "regexpu-core": "^4.6.0" + "@babel/helper-create-regexp-features-plugin": "^7.7.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-async-generators": { @@ -490,6 +756,15 @@ "@babel/helper-plugin-utils": "^7.0.0" } }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.0.tgz", + "integrity": "sha512-hi8FUNiFIY1fnUI2n1ViB1DR0R4QeK4iHcTlW6aJkrPoTdb8Rf1EMQ6GT3f67DDkYyWgew9DFoOZ6gOoEsdzTA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, "@babel/plugin-transform-arrow-functions": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", @@ -500,14 +775,36 @@ } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz", - "integrity": "sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.0.tgz", + "integrity": "sha512-vLI2EFLVvRBL3d8roAMqtVY0Bm9C1QzLkdS57hiKrjUBSqsQYrBsMCeOg/0KK7B0eK9V71J5mWcha9yyoI2tZw==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-module-imports": "^7.7.0", "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.1.0" + "@babel/helper-remap-async-to-generator": "^7.7.0" + }, + "dependencies": { + "@babel/helper-module-imports": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.0.tgz", + "integrity": "sha512-Dv3hLKIC1jyfTkClvyEkYP2OlkzNvWs5+Q8WgPbxM5LMeorons7iPP91JM+DU7tRbhqA1ZeooPaMFvQrn23RHw==", + "dev": true, + "requires": { + "@babel/types": "^7.7.0" + } + }, + "@babel/types": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", + "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/plugin-transform-block-scoped-functions": { @@ -530,18 +827,18 @@ } }, "@babel/plugin-transform-classes": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz", - "integrity": "sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.0.tgz", + "integrity": "sha512-/b3cKIZwGeUesZheU9jNYcwrEA7f/Bo4IdPmvp7oHgvks2majB5BoT5byAql44fiNQYOPzhk2w8DbgfuafkMoA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.0.0", - "@babel/helper-define-map": "^7.5.5", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-annotate-as-pure": "^7.7.0", + "@babel/helper-define-map": "^7.7.0", + "@babel/helper-function-name": "^7.7.0", + "@babel/helper-optimise-call-expression": "^7.7.0", "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.5.5", - "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/helper-replace-supers": "^7.7.0", + "@babel/helper-split-export-declaration": "^7.7.0", "globals": "^11.1.0" } }, @@ -564,14 +861,13 @@ } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.6.2.tgz", - "integrity": "sha512-KGKT9aqKV+9YMZSkowzYoYEiHqgaDhGmPNZlZxX6UeHC4z30nC1J9IrZuGqbYFB1jaIGdv91ujpze0exiVK8bA==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.0.tgz", + "integrity": "sha512-3QQlF7hSBnSuM1hQ0pS3pmAbWLax/uGNCbPBND9y+oJ4Y776jsyujG2k0Sn2Aj2a0QwVOiOFL5QVPA7spjvzSA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.4.4", - "regexpu-core": "^4.6.0" + "@babel/helper-create-regexp-features-plugin": "^7.7.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-duplicate-keys": { @@ -603,12 +899,12 @@ } }, "@babel/plugin-transform-function-name": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz", - "integrity": "sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.0.tgz", + "integrity": "sha512-P5HKu0d9+CzZxP5jcrWdpe7ZlFDe24bmqP6a6X8BHEBl/eizAsY8K6LX8LASZL0Jxdjm5eEfzp+FIrxCm/p8bA==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.1.0", + "@babel/helper-function-name": "^7.7.0", "@babel/helper-plugin-utils": "^7.0.0" } }, @@ -642,45 +938,45 @@ } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz", - "integrity": "sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.0.tgz", + "integrity": "sha512-KEMyWNNWnjOom8vR/1+d+Ocz/mILZG/eyHHO06OuBQ2aNhxT62fr4y6fGOplRx+CxCSp3IFwesL8WdINfY/3kg==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.4.4", + "@babel/helper-module-transforms": "^7.7.0", "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-simple-access": "^7.1.0", + "@babel/helper-simple-access": "^7.7.0", "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz", - "integrity": "sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.0.tgz", + "integrity": "sha512-ZAuFgYjJzDNv77AjXRqzQGlQl4HdUM6j296ee4fwKVZfhDR9LAGxfvXjBkb06gNETPnN0sLqRm9Gxg4wZH6dXg==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.4.4", + "@babel/helper-hoist-variables": "^7.7.0", "@babel/helper-plugin-utils": "^7.0.0", "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz", - "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.0.tgz", + "integrity": "sha512-u7eBA03zmUswQ9LQ7Qw0/ieC1pcAkbp5OQatbWUzY1PaBccvuJXUkYzoN1g7cqp7dbTu6Dp9bXyalBvD04AANA==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-module-transforms": "^7.7.0", "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.3.tgz", - "integrity": "sha512-jTkk7/uE6H2s5w6VlMHeWuH+Pcy2lmdwFoeWCVnvIrDUnB5gQqTVI8WfmEAhF2CDEarGrknZcmSFg1+bkfCoSw==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.0.tgz", + "integrity": "sha512-+SicSJoKouPctL+j1pqktRVCgy+xAch1hWWTMy13j0IflnyNjaoskj+DwRQFimHbLqO3sq2oN2CXMvXq3Bgapg==", "dev": true, "requires": { - "regexpu-core": "^4.6.0" + "@babel/helper-create-regexp-features-plugin": "^7.7.0" } }, "@babel/plugin-transform-new-target": { @@ -723,9 +1019,9 @@ } }, "@babel/plugin-transform-regenerator": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz", - "integrity": "sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.0.tgz", + "integrity": "sha512-AXmvnC+0wuj/cFkkS/HFHIojxH3ffSXE+ttulrqWjZZRaUOonfJc60e1wSNT4rV8tIunvu/R3wCp71/tLAa9xg==", "dev": true, "requires": { "regenerator-transform": "^0.14.0" @@ -800,85 +1096,107 @@ } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.6.2.tgz", - "integrity": "sha512-orZI6cWlR3nk2YmYdb0gImrgCUwb5cBUwjf6Ks6dvNVvXERkwtJWOQaEOjPiu0Gu1Tq6Yq/hruCZZOOi9F34Dw==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.0.tgz", + "integrity": "sha512-RrThb0gdrNwFAqEAAx9OWgtx6ICK69x7i9tCnMdVrxQwSDp/Abu9DXFU5Hh16VP33Rmxh04+NGW28NsIkFvFKA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.4.4", - "regexpu-core": "^4.6.0" + "@babel/helper-create-regexp-features-plugin": "^7.7.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/preset-env": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.6.2.tgz", - "integrity": "sha512-Ru7+mfzy9M1/YTEtlDS8CD45jd22ngb9tXnn64DvQK3ooyqSw9K4K9DUWmYknTTVk4TqygL9dqCrZgm1HMea/Q==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.0.tgz", + "integrity": "sha512-AgvG8VJDehjK0Ky86xvaqKpx0ASKQk63dfghqqFt6yf9gqmcvc5TodM0ZT0XZvw9fxfrG1PqJ1Xt+8bDnHv9xw==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-module-imports": "^7.7.0", "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-async-generator-functions": "^7.2.0", - "@babel/plugin-proposal-dynamic-import": "^7.5.0", + "@babel/plugin-proposal-async-generator-functions": "^7.7.0", + "@babel/plugin-proposal-dynamic-import": "^7.7.0", "@babel/plugin-proposal-json-strings": "^7.2.0", "@babel/plugin-proposal-object-rest-spread": "^7.6.2", "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.6.2", + "@babel/plugin-proposal-unicode-property-regex": "^7.7.0", "@babel/plugin-syntax-async-generators": "^7.2.0", "@babel/plugin-syntax-dynamic-import": "^7.2.0", "@babel/plugin-syntax-json-strings": "^7.2.0", "@babel/plugin-syntax-object-rest-spread": "^7.2.0", "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-syntax-top-level-await": "^7.7.0", "@babel/plugin-transform-arrow-functions": "^7.2.0", - "@babel/plugin-transform-async-to-generator": "^7.5.0", + "@babel/plugin-transform-async-to-generator": "^7.7.0", "@babel/plugin-transform-block-scoped-functions": "^7.2.0", - "@babel/plugin-transform-block-scoping": "^7.6.2", - "@babel/plugin-transform-classes": "^7.5.5", + "@babel/plugin-transform-block-scoping": "^7.6.3", + "@babel/plugin-transform-classes": "^7.7.0", "@babel/plugin-transform-computed-properties": "^7.2.0", "@babel/plugin-transform-destructuring": "^7.6.0", - "@babel/plugin-transform-dotall-regex": "^7.6.2", + "@babel/plugin-transform-dotall-regex": "^7.7.0", "@babel/plugin-transform-duplicate-keys": "^7.5.0", "@babel/plugin-transform-exponentiation-operator": "^7.2.0", "@babel/plugin-transform-for-of": "^7.4.4", - "@babel/plugin-transform-function-name": "^7.4.4", + "@babel/plugin-transform-function-name": "^7.7.0", "@babel/plugin-transform-literals": "^7.2.0", "@babel/plugin-transform-member-expression-literals": "^7.2.0", "@babel/plugin-transform-modules-amd": "^7.5.0", - "@babel/plugin-transform-modules-commonjs": "^7.6.0", - "@babel/plugin-transform-modules-systemjs": "^7.5.0", - "@babel/plugin-transform-modules-umd": "^7.2.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.6.2", + "@babel/plugin-transform-modules-commonjs": "^7.7.0", + "@babel/plugin-transform-modules-systemjs": "^7.7.0", + "@babel/plugin-transform-modules-umd": "^7.7.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.7.0", "@babel/plugin-transform-new-target": "^7.4.4", "@babel/plugin-transform-object-super": "^7.5.5", "@babel/plugin-transform-parameters": "^7.4.4", "@babel/plugin-transform-property-literals": "^7.2.0", - "@babel/plugin-transform-regenerator": "^7.4.5", + "@babel/plugin-transform-regenerator": "^7.7.0", "@babel/plugin-transform-reserved-words": "^7.2.0", "@babel/plugin-transform-shorthand-properties": "^7.2.0", "@babel/plugin-transform-spread": "^7.6.2", "@babel/plugin-transform-sticky-regex": "^7.2.0", "@babel/plugin-transform-template-literals": "^7.4.4", "@babel/plugin-transform-typeof-symbol": "^7.2.0", - "@babel/plugin-transform-unicode-regex": "^7.6.2", - "@babel/types": "^7.6.0", + "@babel/plugin-transform-unicode-regex": "^7.7.0", + "@babel/types": "^7.7.0", "browserslist": "^4.6.0", "core-js-compat": "^3.1.1", "invariant": "^2.2.2", "js-levenshtein": "^1.1.3", "semver": "^5.5.0" + }, + "dependencies": { + "@babel/helper-module-imports": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.0.tgz", + "integrity": "sha512-Dv3hLKIC1jyfTkClvyEkYP2OlkzNvWs5+Q8WgPbxM5LMeorons7iPP91JM+DU7tRbhqA1ZeooPaMFvQrn23RHw==", + "dev": true, + "requires": { + "@babel/types": "^7.7.0" + } + }, + "@babel/types": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", + "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/register": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.6.2.tgz", - "integrity": "sha512-xgZk2LRZvt6i2SAUWxc7ellk4+OYRgS3Zpsnr13nMS1Qo25w21Uu8o6vTOAqNaxiqrnv30KTYzh9YWY2k21CeQ==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.7.0.tgz", + "integrity": "sha512-HV3GJzTvSoyOMWGYn2TAh6uL6g+gqKTgEZ99Q3+X9UURT1VPT/WcU46R61XftIc5rXytcOHZ4Z0doDlsjPomIg==", "dev": true, "requires": { "find-cache-dir": "^2.0.0", "lodash": "^4.17.13", - "mkdirp": "^0.5.1", + "make-dir": "^2.1.0", "pirates": "^4.0.0", - "source-map-support": "^0.5.9" + "source-map-support": "^0.5.16" }, "dependencies": { "find-cache-dir": { @@ -891,45 +1209,97 @@ "make-dir": "^2.0.0", "pkg-dir": "^3.0.0" } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } } } }, "@babel/runtime": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.6.3.tgz", - "integrity": "sha512-kq6anf9JGjW8Nt5rYfEuGRaEAaH1mkv3Bbu6rYvLOpPh/RusSJXuKPEAoZ7L7gybZkchE8+NV5g9vKF4AGAtsA==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.0.tgz", + "integrity": "sha512-xdf3hZAzoqL9q7ItTe/KyUGw214oXdHmq2XhW8ANRuo2KMX+s17RK+z4DsQiPkdOqCjep14eNTneRoiTs9T1AQ==", "requires": { "regenerator-runtime": "^0.13.2" } }, "@babel/template": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.6.0.tgz", - "integrity": "sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.0.tgz", + "integrity": "sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.6.0", - "@babel/types": "^7.6.0" + "@babel/parser": "^7.7.0", + "@babel/types": "^7.7.0" + }, + "dependencies": { + "@babel/parser": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.0.tgz", + "integrity": "sha512-GqL+Z0d7B7ADlQBMXlJgvXEbtt5qlqd1YQ5fr12hTSfh7O/vgrEIvJxU2e7aSVrEUn75zTZ6Nd0s8tthrlZnrQ==", + "dev": true + }, + "@babel/types": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", + "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/traverse": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.3.tgz", - "integrity": "sha512-unn7P4LGsijIxaAJo/wpoU11zN+2IaClkQAxcJWBNCMS6cmVh802IyLHNkAjQ0iYnRS3nnxk5O3fuXW28IMxTw==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.0.tgz", + "integrity": "sha512-ea/3wRZc//e/uwCpuBX2itrhI0U9l7+FsrKWyKGNyvWbuMcCG7ATKY2VI4wlg2b2TA39HHwIxnvmXvtiKsyn7w==", "dev": true, "requires": { "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.6.3", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/parser": "^7.6.3", - "@babel/types": "^7.6.3", + "@babel/generator": "^7.7.0", + "@babel/helper-function-name": "^7.7.0", + "@babel/helper-split-export-declaration": "^7.7.0", + "@babel/parser": "^7.7.0", + "@babel/types": "^7.7.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" }, "dependencies": { + "@babel/parser": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.0.tgz", + "integrity": "sha512-GqL+Z0d7B7ADlQBMXlJgvXEbtt5qlqd1YQ5fr12hTSfh7O/vgrEIvJxU2e7aSVrEUn75zTZ6Nd0s8tthrlZnrQ==", + "dev": true + }, + "@babel/types": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", + "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -2276,14 +2646,14 @@ } }, "browserslist": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz", - "integrity": "sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.2.tgz", + "integrity": "sha512-uZavT/gZXJd2UTi9Ov7/Z340WOSQ3+m1iBVRUknf+okKxonL9P83S3ctiBDtuRmRu8PiCHjqyueqQ9HYlJhxiw==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30000989", - "electron-to-chromium": "^1.3.247", - "node-releases": "^1.1.29" + "caniuse-lite": "^1.0.30001004", + "electron-to-chromium": "^1.3.295", + "node-releases": "^1.1.38" } }, "bs58": { @@ -2466,9 +2836,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30000999", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000999.tgz", - "integrity": "sha512-1CUyKyecPeksKwXZvYw0tEoaMCo/RwBlXmEtN5vVnabvO0KPd9RQLcaAuR9/1F+KDMv6esmOFWlsXuzDk+8rxg==", + "version": "1.0.30001008", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001008.tgz", + "integrity": "sha512-b8DJyb+VVXZGRgJUa30cbk8gKHZ3LOZTBLaUEEVr2P4xpmFigOCc62CO4uzquW641Ouq1Rm9N+rWLWdSYDaDIw==", "dev": true }, "caseless": { @@ -3044,18 +3414,18 @@ "dev": true }, "core-js": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.3.2.tgz", - "integrity": "sha512-S1FfZpeBchkhyoY76YAdFzKS4zz9aOK7EeFaNA2aJlyXyA+sgqz6xdxmLPGXEAf0nF44MVN1kSjrA9Kt3ATDQg==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.3.6.tgz", + "integrity": "sha512-u4oM8SHwmDuh5mWZdDg9UwNVq5s1uqq6ZDLLIs07VY+VJU91i3h4f3K/pgFvtUQPGdeStrZ+odKyfyt4EnKHfA==", "dev": true }, "core-js-compat": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.3.2.tgz", - "integrity": "sha512-gfiK4QnNXhnnHVOIZst2XHdFfdMTPxtR0EGs0TdILMlGIft+087oH6/Sw2xTTIjpWXC9vEwsJA8VG3XTGcmO5g==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.3.6.tgz", + "integrity": "sha512-YnwZG/+0/f7Pf6Lr3jxtVAFjtGBW9lsLYcqrxhYJai1GfvrP8DEyEpnNzj/FRQfIkOOfk1j5tTBvPBLWVVJm4A==", "dev": true, "requires": { - "browserslist": "^4.7.0", + "browserslist": "^4.7.2", "semver": "^6.3.0" }, "dependencies": { @@ -3577,9 +3947,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.282", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.282.tgz", - "integrity": "sha512-irSaDeCGgfMu1OA30bhqIBr+dx+pDJjRbwCpob7YWqVZbzXblybNzPGklVnWqv4EXxbkEAzQYqiNCqNTgu00lQ==", + "version": "1.3.302", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.302.tgz", + "integrity": "sha512-1qConyiVEbj4xZRBXqtGR003+9tV0rJF0PS6aeO0Ln/UL637js9hdwweCl07meh/kJoI2N4W8q3R3g3F5z46ww==", "dev": true }, "elliptic": { @@ -6478,12 +6848,6 @@ } } }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -7707,9 +8071,9 @@ "dev": true }, "node-releases": { - "version": "1.1.36", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.36.tgz", - "integrity": "sha512-ggXhX6QGyJSjj3r+6ml2LqqC28XOWmKtpb+a15/Zpr9V3yoNazxJNlcQDS9bYaid5FReEWHEgToH1mwoUceWwg==", + "version": "1.1.39", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.39.tgz", + "integrity": "sha512-8MRC/ErwNCHOlAFycy9OPca46fQYUjbJRDcZTHVWIGXIjYLM73k70vv3WkYutVnM4cCo4hE0MqBVVZjP6vjISA==", "dev": true, "requires": { "semver": "^6.3.0" @@ -8016,17 +8380,6 @@ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, - "output-file-sync": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-2.0.1.tgz", - "integrity": "sha512-mDho4qm7WgIXIGf4eYU1RHN2UU5tPfVYVSRwDJw0uTmj35DQUt/eNp19N7v6T3SrR0ESTEf2up2CGO73qI35zQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "is-plain-obj": "^1.1.0", - "mkdirp": "^0.5.1" - } - }, "p-defer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", @@ -8764,9 +9117,9 @@ } }, "regjsgen": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", - "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", + "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", "dev": true }, "regjsparser": { diff --git a/package.json b/package.json index a99ad1f0cc..a50fc3b7d9 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ ], "dependencies": { "@aeternity/bip39": "^0.1.0", - "@babel/runtime": "^7.6.2", + "@babel/runtime": "^7.7.0", "@stamp/it": "^1.0.3", "@stamp/required": "^1.0.1", "aes-js": "^3.1.1", @@ -54,14 +54,14 @@ "url": "https://github.com/aeternity/aepp-sdk-js" }, "devDependencies": { - "@babel/cli": "7.6.2", - "@babel/core": "7.6.2", - "@babel/node": "7.6.2", + "@babel/cli": "7.7.0", + "@babel/core": "7.7.0", + "@babel/node": "7.7.0", "@babel/plugin-proposal-export-default-from": "7.5.2", "@babel/plugin-proposal-object-rest-spread": "7.6.2", "@babel/plugin-transform-runtime": "7.6.2", - "@babel/preset-env": "7.6.2", - "@babel/register": "7.6.2", + "@babel/preset-env": "7.7.0", + "@babel/register": "7.7.0", "babel-core": "6", "babel-loader": "^8.0.0-beta.2", "babel-plugin-ramda": "^2.0.0", From ddc66119d1cf55aaff4e0b62750d8b518fbfb9eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Powaga?= Date: Wed, 6 Nov 2019 12:08:57 +0000 Subject: [PATCH 18/51] feat(state channels): allow to pass metadata to transfer update (#755) --- es/channel/index.js | 5 +++-- test/integration/channel.js | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/es/channel/index.js b/es/channel/index.js index f7adda7696..a7ba249be6 100644 --- a/es/channel/index.js +++ b/es/channel/index.js @@ -112,6 +112,7 @@ function id () { * @param {String} to - Receiver's public address * @param {Number} amount - Transaction amount * @param {Function} sign - Function which verifies and signs offchain transaction + * @param {Array} metadata * @return {Promise} * @example channel.update( * 'ak_Y1NRjHuoc3CGMYMvCmdHSBpJsMDR6Ra2t5zjhRcbtMeXXLpLH', @@ -124,7 +125,7 @@ function id () { * } * ) */ -function update (from, to, amount, sign) { +function update (from, to, amount, sign, metadata) { return new Promise((resolve, reject) => { enqueueAction( this, @@ -133,7 +134,7 @@ function update (from, to, amount, sign) { send(channel, { jsonrpc: '2.0', method: 'channels.update.new', - params: { from, to, amount } + params: { from, to, amount, meta: metadata } }) return { handler: handlers.awaitingOffChainTx, diff --git a/test/integration/channel.js b/test/integration/channel.js index f91851bd34..4c92840463 100644 --- a/test/integration/channel.js +++ b/test/integration/channel.js @@ -295,6 +295,27 @@ describe('Channel', function () { }) }) + it('can post update with metadata', async () => { + responderShouldRejectUpdate = true + const meta = 'meta 1' + const sign = sinon.spy(initiator.signTransaction.bind(initiator)) + await initiatorCh.update( + await initiator.address(), + await responder.address(), + 100, + sign, + [meta] + ) + sign.firstCall.args[1].updates.should.eql([ + sign.firstCall.args[1].updates[0], + { data: meta, op: 'OffChainMeta'} + ]) + responderSign.firstCall.args[2].updates.should.eql([ + responderSign.firstCall.args[2].updates[0], + { data: meta, op: 'OffChainMeta'} + ]) + }) + it('can get proof of inclusion', async () => { const initiatorAddr = await initiator.address() const responderAddr = await responder.address() From ae4426ef22a54cedeaf4d2ed74a580971a9fa5cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Powaga?= Date: Wed, 6 Nov 2019 13:04:18 +0000 Subject: [PATCH 19/51] feat(state channels): allow off chain updates to be cancelled with custom error code (#753) --- es/channel/handlers.js | 97 ++++++++++++++++++++----- test/integration/channel.js | 139 ++++++++++++++++++++++++++++++++++-- 2 files changed, 215 insertions(+), 21 deletions(-) diff --git a/es/channel/handlers.js b/es/channel/handlers.js index bd3058f70b..e132a2113d 100644 --- a/es/channel/handlers.js +++ b/es/channel/handlers.js @@ -34,13 +34,14 @@ function encodeRlpTx (rlpBinary) { async function appendSignature (tx, signFn) { const { signatures, encodedTx } = unpackTx(tx).tx const result = await signFn(encodeRlpTx(encodedTx.rlpEncoded)) - if (result) { + if (typeof result === 'string') { const { tx: signedTx, txType } = unpackTx(result) return encodeRlpTx(buildTx({ signatures: signatures.concat(signedTx.signatures), encodedTx: signedTx.encodedTx.rlpEncoded }, txType).rlpEncoded) } + return result } function handleUnexpectedMessage (channel, message, state) { @@ -209,8 +210,14 @@ export async function awaitingOffChainTx (channel, message, state) { const signedTx = await appendSignature(message.params.data.signed_tx, tx => sign(tx, { updates: message.params.data.updates }) ) - send(channel, { jsonrpc: '2.0', method: 'channels.update', params: { signed_tx: signedTx } }) - return { handler: awaitingOffChainUpdate, state } + if (typeof signedTx === 'string') { + send(channel, { jsonrpc: '2.0', method: 'channels.update', params: { signed_tx: signedTx } }) + return { handler: awaitingOffChainUpdate, state } + } + if (typeof signedTx === 'number') { + send(channel, { jsonrpc: '2.0', method: 'channels.update', params: { error: signedTx } }) + return { handler: awaitingOffChainTx, state } + } } if (message.method === 'channels.error') { state.reject(new Error(message.data.message)) @@ -227,6 +234,14 @@ export async function awaitingOffChainTx (channel, message, state) { } return { handler: channelOpen } } + if (message.method === 'channels.conflict') { + state.resolve({ + accepted: false, + errorCode: message.params.data.error_code, + errorMessage: message.params.data.error_msg + }) + return { handler: channelOpen } + } return handleUnexpectedMessage(channel, message, state) } @@ -237,7 +252,11 @@ export function awaitingOffChainUpdate (channel, message, state) { return { handler: channelOpen } } if (message.method === 'channels.conflict') { - state.resolve({ accepted: false }) + state.resolve({ + accepted: false, + errorCode: message.params.data.error_code, + errorMessage: message.params.data.error_msg + }) return { handler: channelOpen } } if (message.error) { @@ -262,10 +281,14 @@ export async function awaitingTxSignRequest (channel, message, state) { const signedTx = await appendSignature(message.params.data.signed_tx, tx => options.get(channel).sign(tag, tx, { updates: message.params.data.updates }) ) - if (signedTx) { + if (typeof signedTx === 'string') { send(channel, { jsonrpc: '2.0', method: `channels.${tag}`, params: { signed_tx: signedTx } }) return { handler: channelOpen } } + if (typeof signedTx === 'number') { + send(channel, { jsonrpc: '2.0', method: `channels.${tag}`, params: { error: signedTx } }) + return { handler: awaitingUpdateConflict } + } } // soft-reject via competing update send(channel, { @@ -338,8 +361,14 @@ export async function awaitingWithdrawTx (channel, message, state) { const signedTx = await appendSignature(message.params.data.signed_tx, tx => sign(tx, { updates: message.params.data.updates }) ) - send(channel, { jsonrpc: '2.0', method: 'channels.withdraw_tx', params: { signed_tx: signedTx } }) - return { handler: awaitingWithdrawCompletion, state } + if (typeof signedTx === 'string') { + send(channel, { jsonrpc: '2.0', method: 'channels.withdraw_tx', params: { signed_tx: signedTx } }) + return { handler: awaitingWithdrawCompletion, state } + } + if (typeof signedTx === 'number') { + send(channel, { jsonrpc: '2.0', method: 'channels.withdraw_tx', params: { error: signedTx } }) + return { handler: awaitingWithdrawCompletion, state } + } } return handleUnexpectedMessage(channel, message, state) } @@ -369,7 +398,11 @@ export function awaitingWithdrawCompletion (channel, message, state) { return { handler: channelOpen } } if (message.method === 'channels.conflict') { - state.resolve({ accepted: false }) + state.resolve({ + accepted: false, + errorCode: message.params.data.error_code, + errorMessage: message.params.data.error_msg + }) return { handler: channelOpen } } return handleUnexpectedMessage(channel, message, state) @@ -386,8 +419,14 @@ export async function awaitingDepositTx (channel, message, state) { const signedTx = await appendSignature(message.params.data.signed_tx, tx => sign(tx, { updates: message.params.data.updates }) ) - send(channel, { jsonrpc: '2.0', method: 'channels.deposit_tx', params: { signed_tx: signedTx } }) - return { handler: awaitingDepositCompletion, state } + if (typeof signedTx === 'string') { + send(channel, { jsonrpc: '2.0', method: 'channels.deposit_tx', params: { signed_tx: signedTx } }) + return { handler: awaitingDepositCompletion, state } + } + if (typeof signedTx === 'number') { + send(channel, { jsonrpc: '2.0', method: 'channels.deposit_tx', params: { error: signedTx } }) + return { handler: awaitingDepositCompletion, state } + } } return handleUnexpectedMessage(channel, message, state) } @@ -417,7 +456,11 @@ export function awaitingDepositCompletion (channel, message, state) { return { handler: channelOpen } } if (message.method === 'channels.conflict') { - state.resolve({ accepted: false }) + state.resolve({ + accepted: false, + errorCode: message.params.data.error_code, + errorMessage: message.params.data.error_msg + }) return { handler: channelOpen } } return handleUnexpectedMessage(channel, message, state) @@ -431,8 +474,14 @@ export async function awaitingNewContractTx (channel, message, state) { return { handler: awaitingNewContractCompletion, state } } const signedTx = await appendSignature(message.params.data.signed_tx, tx => state.sign(tx)) - send(channel, { jsonrpc: '2.0', method: 'channels.update', params: { signed_tx: signedTx } }) - return { handler: awaitingNewContractCompletion, state } + if (typeof signedTx === 'string') { + send(channel, { jsonrpc: '2.0', method: 'channels.update', params: { signed_tx: signedTx } }) + return { handler: awaitingNewContractCompletion, state } + } + if (typeof signedTx === 'number') { + send(channel, { jsonrpc: '2.0', method: 'channels.update', params: { error: signedTx } }) + return { handler: awaitingNewContractCompletion, state } + } } return handleUnexpectedMessage(channel, message, state) } @@ -453,7 +502,11 @@ export function awaitingNewContractCompletion (channel, message, state) { return { handler: channelOpen } } if (message.method === 'channels.conflict') { - state.resolve({ accepted: false }) + state.resolve({ + accepted: false, + errorCode: message.params.data.error_code, + errorMessage: message.params.data.error_msg + }) return { handler: channelOpen } } return handleUnexpectedMessage(channel, message, state) @@ -467,8 +520,14 @@ export async function awaitingCallContractUpdateTx (channel, message, state) { return { handler: awaitingCallContractCompletion, state } } const signedTx = await appendSignature(message.params.data.signed_tx, tx => state.sign(tx)) - send(channel, { jsonrpc: '2.0', method: 'channels.update', params: { signed_tx: signedTx } }) - return { handler: awaitingCallContractCompletion, state } + if (typeof signedTx === 'string') { + send(channel, { jsonrpc: '2.0', method: 'channels.update', params: { signed_tx: signedTx } }) + return { handler: awaitingCallContractCompletion, state } + } + if (typeof signedTx === 'number') { + send(channel, { jsonrpc: '2.0', method: 'channels.update', params: { error: signedTx } }) + return { handler: awaitingCallContractCompletion, state } + } } return handleUnexpectedMessage(channel, message, state) } @@ -480,7 +539,11 @@ export function awaitingCallContractCompletion (channel, message, state) { return { handler: channelOpen } } if (message.method === 'channels.conflict') { - state.resolve({ accepted: false }) + state.resolve({ + accepted: false, + errorCode: message.params.data.error_code, + errorMessage: message.params.data.error_msg + }) return { handler: channelOpen } } return handleUnexpectedMessage(channel, message, state) diff --git a/test/integration/channel.js b/test/integration/channel.js index 4c92840463..a630598d18 100644 --- a/test/integration/channel.js +++ b/test/integration/channel.js @@ -59,6 +59,9 @@ describe('Channel', function () { let callerNonce const initiatorSign = sinon.spy((tag, tx) => initiator.signTransaction(tx)) const responderSign = sinon.spy((tag, tx) => { + if (typeof responderShouldRejectUpdate === 'number') { + return responderShouldRejectUpdate + } if (responderShouldRejectUpdate) { return null } @@ -241,6 +244,32 @@ describe('Channel', function () { }) }) + it('can abort update sign request', async () => { + const errorCode = 12345 + const result = await initiatorCh.update( + await initiator.address(), + await responder.address(), + 100, + () => errorCode + ) + result.should.eql({ accepted: false, errorCode, errorMessage: 'user-defined' }) + }) + + it('can abort update with custom error code', async () => { + responderShouldRejectUpdate = 1234 + const result = await initiatorCh.update( + await initiator.address(), + await responder.address(), + 100, + tx => initiator.signTransaction(tx) + ) + result.should.eql({ + accepted: false, + errorCode: responderShouldRejectUpdate, + errorMessage: 'user-defined' + }) + }) + it('can post bignumber update and accept', async () => { responderShouldRejectUpdate = false const sign = sinon.spy(initiator.signTransaction.bind(initiator)) @@ -423,7 +452,7 @@ describe('Channel', function () { sign, { onOnChainTx, onOwnWithdrawLocked, onWithdrawLocked } ) - result.should.eql({ accepted: false }) + result.should.eql({ ...result, accepted: false }) sinon.assert.notCalled(onOnChainTx) sinon.assert.notCalled(onOwnWithdrawLocked) sinon.assert.notCalled(onWithdrawLocked) @@ -462,6 +491,28 @@ describe('Channel', function () { }) }) + it('can abort withdraw sign request', async () => { + const errorCode = 12345 + const result = await initiatorCh.withdraw( + 100, + () => errorCode + ) + result.should.eql({ accepted: false, errorCode, errorMessage: 'user-defined' }) + }) + + it('can abort withdraw with custom error code', async () => { + responderShouldRejectUpdate = 12345 + const result = await initiatorCh.withdraw( + 100, + tx => initiator.signTransaction(tx) + ) + result.should.eql({ + accepted: false, + errorCode: responderShouldRejectUpdate, + errorMessage: 'user-defined' + }) + }) + it('can request a deposit and accept', async () => { const sign = sinon.spy(initiator.signTransaction.bind(initiator)) const amount = BigNumber('2e18') @@ -526,7 +577,7 @@ describe('Channel', function () { sign, { onOnChainTx, onOwnDepositLocked, onDepositLocked } ) - result.should.eql({ accepted: false }) + result.should.eql({ ...result, accepted: false }) sinon.assert.notCalled(onOnChainTx) sinon.assert.notCalled(onOwnDepositLocked) sinon.assert.notCalled(onDepositLocked) @@ -553,6 +604,28 @@ describe('Channel', function () { }) }) + it('can abort deposit sign request', async () => { + const errorCode = 12345 + const result = await initiatorCh.deposit( + 100, + () => errorCode + ) + result.should.eql({ accepted: false, errorCode, errorMessage: 'user-defined' }) + }) + + it('can abort deposit with custom error code', async () => { + responderShouldRejectUpdate = 12345 + const result = await initiatorCh.deposit( + 100, + tx => initiator.signTransaction(tx) + ) + result.should.eql({ + accepted: false, + errorCode: responderShouldRejectUpdate, + errorMessage: 'user-defined' + }) + }) + it('can close a channel', async () => { const sign = sinon.spy(initiator.signTransaction.bind(initiator)) const result = await initiatorCh.shutdown(sign) @@ -782,7 +855,39 @@ describe('Channel', function () { vmVersion: 4, abiVersion: 1 }, async (tx) => initiator.signTransaction(tx)) - result.should.eql({ accepted: false }) + result.should.eql({ ...result, accepted: false }) + }) + + it('can abort contract sign request', async () => { + const errorCode = 12345 + const code = await initiator.compileContractAPI(identityContract, { backend: 'aevm' }) + const callData = await initiator.contractEncodeCallDataAPI(identityContract, 'init', [], { backend: 'aevm' }) + const result = await initiatorCh.createContract({ + code, + callData, + deposit: BigNumber('10e18'), + vmVersion: 4, + abiVersion: 1 + }, () => errorCode) + result.should.eql({ accepted: false, errorCode, errorMessage: 'user-defined' }) + }) + + it('can abort contract with custom error code', async () => { + responderShouldRejectUpdate = 12345 + const code = await initiator.compileContractAPI(identityContract, { backend: 'aevm' }) + const callData = await initiator.contractEncodeCallDataAPI(identityContract, 'init', [], { backend: 'aevm' }) + const result = await initiatorCh.createContract({ + code, + callData, + deposit: BigNumber('10e18'), + vmVersion: 4, + abiVersion: 1 + }, async (tx) => initiator.signTransaction(tx)) + result.should.eql({ + accepted: false, + errorCode: responderShouldRejectUpdate, + errorMessage: 'user-defined' + }) }) it('can call a contract and accept', async () => { @@ -804,7 +909,33 @@ describe('Channel', function () { contract: contractAddress, abiVersion: 1 }, async (tx) => initiator.signTransaction(tx)) - result.should.eql({ accepted: false }) + result.should.eql({ ...result, accepted: false }) + }) + + it('can abort contract call sign request', async () => { + const errorCode = 12345 + const result = await initiatorCh.callContract({ + amount: 0, + callData: await contractEncodeCall('main', ['42']), + contract: contractAddress, + abiVersion: 1 + }, () => errorCode) + result.should.eql({ accepted: false, errorCode, errorMessage: 'user-defined' }) + }) + + it('can abort contract call with custom error code', async () => { + responderShouldRejectUpdate = 12345 + const result = await initiatorCh.callContract({ + amount: 0, + callData: await contractEncodeCall('main', ['42']), + contract: contractAddress, + abiVersion: 1 + }, async (tx) => initiator.signTransaction(tx)) + result.should.eql({ + accepted: false, + errorCode: responderShouldRejectUpdate, + errorMessage: 'user-defined' + }) }) it('can get contract call', async () => { From c5f35d1f2403fc2e3877803ca1f532476f41af0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Powaga?= Date: Wed, 6 Nov 2019 13:46:40 +0000 Subject: [PATCH 20/51] fix(state channels): wait for connection to be established before sending generic message (#723) * feat(state channels): add .off method * fix(state channels): wait for connection to be established before sending generic message --- es/channel/index.js | 30 +++++++++++++++++++++++++++++- es/channel/internal.js | 1 + 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/es/channel/index.js b/es/channel/index.js index a7ba249be6..e2298c694a 100644 --- a/es/channel/index.js +++ b/es/channel/index.js @@ -65,6 +65,16 @@ function on (event, callback) { eventEmitters.get(this).on(event, callback) } +/** + * Remove event listener function + * + * @param {String} event - Event name + * @param {Function} callback - Callback function + */ +function off (event, callback) { + eventEmitters.get(this).removeListener(event, callback) +} + /** * Close the connection */ @@ -659,7 +669,24 @@ function sendMessage (message, recipient) { if (typeof message === 'object') { info = JSON.stringify(message) } - send(this, { jsonrpc: '2.0', method: 'channels.message', params: { info, to: recipient } }) + const doSend = (channel) => send(channel, { + jsonrpc: '2.0', + method: 'channels.message', + params: { info, to: recipient } + }) + if (this.status() === 'connecting') { + const onStatusChanged = (status) => { + if (status !== 'connecting') { + // For some reason we can't immediately send a message when connection is + // established established. Thus we wait 500ms which seems to work. + setTimeout(() => doSend(this), 500) + this.off('statusChanged', onStatusChanged) + } + } + this.on('statusChanged', onStatusChanged) + } else { + doSend(this) + } } async function reconnect (options, txParams) { @@ -724,6 +751,7 @@ const Channel = AsyncInit.compose({ }, methods: { on, + off, status, state, id, diff --git a/es/channel/internal.js b/es/channel/internal.js index 081bfdd1a9..69bc8868d9 100644 --- a/es/channel/internal.js +++ b/es/channel/internal.js @@ -225,6 +225,7 @@ async function initialize (channel, channelOptions) { eventEmitters.set(channel, new EventEmitter()) sequence.set(channel, 0) rpcCallbacks.set(channel, new Map()) + changeStatus(channel, 'connecting') const ws = await WebSocket(wsUrl, { onopen: () => { changeStatus(channel, 'connected') From c950937018a3fcb94f0b0955ee193e9620112dcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Powaga?= Date: Wed, 6 Nov 2019 14:51:31 +0000 Subject: [PATCH 21/51] feat(state channels): add round method (#763) --- es/channel/index.js | 30 +++++++++++++++++++- es/channel/internal.js | 3 ++ test/integration/channel.js | 55 ++++++++++++++++++++++++++++++++++--- 3 files changed, 83 insertions(+), 5 deletions(-) diff --git a/es/channel/index.js b/es/channel/index.js index e2298c694a..bc4b1de97b 100644 --- a/es/channel/index.js +++ b/es/channel/index.js @@ -24,12 +24,13 @@ import AsyncInit from '../utils/async-init' import { snakeToPascal } from '../utils/string' -import { buildTx } from '../tx/builder' +import { buildTx, unpackTx } from '../tx/builder' import { TX_TYPE } from '../tx/builder/schema' import * as handlers from './handlers' import { eventEmitters, status as channelStatus, + state as channelState, initialize, enqueueAction, send, @@ -100,6 +101,32 @@ async function state () { return snakeToPascalObjKeys(await call(this, 'channels.get.offchain_state', {})) } +/** + * Get current round + * + * If round cannot be determined (for example when channel has not been opened) + * it will return `null`. + * + * @return {Number} + */ +function round () { + const state = channelState.get(this) + if (!state) { + return null + } + const { txType, tx } = unpackTx(channelState.get(this)).tx.encodedTx + switch (txType) { + case TX_TYPE.channelCreate: + return 1 + case TX_TYPE.channelOffChain: + case TX_TYPE.channelWithdraw: + case TX_TYPE.channelDeposit: + return parseInt(tx.round, 10) + default: + return null + } +} + /** * Get channel id * @@ -754,6 +781,7 @@ const Channel = AsyncInit.compose({ off, status, state, + round, id, update, poi, diff --git a/es/channel/internal.js b/es/channel/internal.js index 69bc8868d9..ed44cc95b1 100644 --- a/es/channel/internal.js +++ b/es/channel/internal.js @@ -231,6 +231,9 @@ async function initialize (channel, channelOptions) { changeStatus(channel, 'connected') if (params.reconnectTx) { enterState(channel, { handler: channelOpen }) + setTimeout(async () => + changeState(channel, (await call(channel, 'channels.get.offchain_state', {})).signed_tx) + , 0) } ping(channel) }, diff --git a/test/integration/channel.js b/test/integration/channel.js index a630598d18..95fbfab144 100644 --- a/test/integration/channel.js +++ b/test/integration/channel.js @@ -43,7 +43,7 @@ function waitForChannel (channel) { ) } -describe('Channel', function () { +describe.only('Channel', function () { configure(this) this.timeout(120000) @@ -52,6 +52,7 @@ describe('Channel', function () { let initiatorCh let responderCh let responderShouldRejectUpdate + let existingChannelRound let existingChannelId let offchainTx let contractAddress @@ -115,6 +116,8 @@ describe('Channel', function () { sign: responderSign }) await Promise.all([waitForChannel(initiatorCh), waitForChannel(responderCh)]) + initiatorCh.round().should.equal(1) + responderCh.round().should.equal(1) sinon.assert.calledOnce(initiatorSign) sinon.assert.calledWithExactly(initiatorSign, sinon.match('initiator_sign'), sinon.match.string) sinon.assert.calledOnce(responderSign) @@ -139,6 +142,7 @@ describe('Channel', function () { it('can post update and accept', async () => { responderShouldRejectUpdate = false + const roundBefore = initiatorCh.round() const sign = sinon.spy(initiator.signTransaction.bind(initiator)) const amount = 1 const result = await initiatorCh.update( @@ -147,6 +151,7 @@ describe('Channel', function () { amount, sign ) + initiatorCh.round().should.equal(roundBefore + 1) result.accepted.should.equal(true) result.signedTx.should.be.a('string') sinon.assert.notCalled(initiatorSign) @@ -195,6 +200,7 @@ describe('Channel', function () { responderShouldRejectUpdate = true const sign = sinon.spy(initiator.signTransaction.bind(initiator)) const amount = 1 + const roundBefore = initiatorCh.round() const result = await initiatorCh.update( await responder.address(), await initiator.address(), @@ -202,6 +208,7 @@ describe('Channel', function () { sign ) result.accepted.should.equal(false) + initiatorCh.round().should.equal(roundBefore) sinon.assert.notCalled(initiatorSign) sinon.assert.calledOnce(responderSign) sinon.assert.calledWithExactly( @@ -395,12 +402,14 @@ describe('Channel', function () { const onOwnWithdrawLocked = sinon.spy() const onWithdrawLocked = sinon.spy() responderShouldRejectUpdate = false + const roundBefore = initiatorCh.round() const result = await initiatorCh.withdraw( amount, sign, { onOnChainTx, onOwnWithdrawLocked, onWithdrawLocked } ) result.should.eql({ accepted: true, signedTx: (await initiatorCh.state()).signedTx }) + initiatorCh.round().should.equal(roundBefore + 1) sinon.assert.called(onOnChainTx) sinon.assert.calledWithExactly(onOnChainTx, sinon.match.string) sinon.assert.calledOnce(onOwnWithdrawLocked) @@ -447,11 +456,13 @@ describe('Channel', function () { const onOwnWithdrawLocked = sinon.spy() const onWithdrawLocked = sinon.spy() responderShouldRejectUpdate = true + const roundBefore = initiatorCh.round() const result = await initiatorCh.withdraw( amount, sign, { onOnChainTx, onOwnWithdrawLocked, onWithdrawLocked } ) + initiatorCh.round().should.equal(roundBefore) result.should.eql({ ...result, accepted: false }) sinon.assert.notCalled(onOnChainTx) sinon.assert.notCalled(onOwnWithdrawLocked) @@ -520,12 +531,14 @@ describe('Channel', function () { const onOwnDepositLocked = sinon.spy() const onDepositLocked = sinon.spy() responderShouldRejectUpdate = false + const roundBefore = initiatorCh.round() const result = await initiatorCh.deposit( amount, sign, { onOnChainTx, onOwnDepositLocked, onDepositLocked } ) result.should.eql({ accepted: true, signedTx: (await initiatorCh.state()).signedTx }) + initiatorCh.round().should.equal(roundBefore + 1) sinon.assert.called(onOnChainTx) sinon.assert.calledWithExactly(onOnChainTx, sinon.match.string) sinon.assert.calledOnce(onOwnDepositLocked) @@ -572,11 +585,13 @@ describe('Channel', function () { const onOwnDepositLocked = sinon.spy() const onDepositLocked = sinon.spy() responderShouldRejectUpdate = true + const roundBefore = initiatorCh.round() const result = await initiatorCh.deposit( amount, sign, { onOnChainTx, onOwnDepositLocked, onDepositLocked } ) + initiatorCh.round().should.equal(roundBefore) result.should.eql({ ...result, accepted: false }) sinon.assert.notCalled(onOnChainTx) sinon.assert.notCalled(onOwnDepositLocked) @@ -663,6 +678,14 @@ describe('Channel', function () { sign: responderSign }) await Promise.all([waitForChannel(initiatorCh), waitForChannel(responderCh)]) + const { accepted } = await initiatorCh.update( + await initiator.address(), + await responder.address(), + 100, + tx => initiator.signTransaction(tx) + ) + accepted.should.be.true + existingChannelRound = initiatorCh.round() const result = await initiatorCh.leave() result.channelId.should.be.a('string') result.signedTx.should.be.a('string') @@ -688,6 +711,7 @@ describe('Channel', function () { sign: responderSign }) await Promise.all([waitForChannel(initiatorCh), waitForChannel(responderCh)]) + initiatorCh.round().should.equal(existingChannelRound) sinon.assert.notCalled(initiatorSign) sinon.assert.notCalled(responderSign) }) @@ -832,6 +856,7 @@ describe('Channel', function () { await Promise.all([waitForChannel(initiatorCh), waitForChannel(responderCh)]) const code = await initiator.compileContractAPI(identityContract, { backend: 'aevm' }) const callData = await initiator.contractEncodeCallDataAPI(identityContract, 'init', [], { backend: 'aevm' }) + const roundBefore = initiatorCh.round() const result = await initiatorCh.createContract({ code, callData, @@ -840,6 +865,7 @@ describe('Channel', function () { abiVersion: 1 }, async (tx) => initiator.signTransaction(tx)) result.should.eql({ accepted: true, address: result.address, signedTx: (await initiatorCh.state()).signedTx }) + initiatorCh.round().should.equal(roundBefore + 1) contractAddress = result.address contractEncodeCall = (method, args) => initiator.contractEncodeCallDataAPI(identityContract, method, args, { backend: 'aevm' }) }) @@ -848,6 +874,7 @@ describe('Channel', function () { responderShouldRejectUpdate = true const code = await initiator.compileContractAPI(identityContract, { backend: 'aevm' }) const callData = await initiator.contractEncodeCallDataAPI(identityContract, 'init', [], { backend: 'aevm' }) + const roundBefore = initiatorCh.round() const result = await initiatorCh.createContract({ code, callData, @@ -855,6 +882,7 @@ describe('Channel', function () { vmVersion: 4, abiVersion: 1 }, async (tx) => initiator.signTransaction(tx)) + initiatorCh.round().should.equal(roundBefore) result.should.eql({ ...result, accepted: false }) }) @@ -891,6 +919,7 @@ describe('Channel', function () { }) it('can call a contract and accept', async () => { + const roundBefore = initiatorCh.round() const result = await initiatorCh.callContract({ amount: 0, callData: await contractEncodeCall('main', ['42']), @@ -898,17 +927,20 @@ describe('Channel', function () { abiVersion: 1 }, async (tx) => initiator.signTransaction(tx)) result.should.eql({ accepted: true, signedTx: (await initiatorCh.state()).signedTx }) - callerNonce = Number(unpackTx((await initiatorCh.state()).signedTx).tx.encodedTx.tx.round) + initiatorCh.round().should.equal(roundBefore + 1) + callerNonce = initiatorCh.round() }) it('can call a contract and reject', async () => { responderShouldRejectUpdate = true + const roundBefore = initiatorCh.round() const result = await initiatorCh.callContract({ amount: 0, callData: await contractEncodeCall('main', ['42']), contract: contractAddress, abiVersion: 1 }, async (tx) => initiator.signTransaction(tx)) + initiatorCh.round().should.equal(roundBefore) result.should.eql({ ...result, accepted: false }) }) @@ -1032,8 +1064,15 @@ describe('Channel', function () { sign: responderSign }) await Promise.all([waitForChannel(initiatorCh), waitForChannel(responderCh)]) + const result = await initiatorCh.update( + await initiator.address(), + await responder.address(), + 100, + tx => initiator.signTransaction(tx) + ) + result.accepted.should.be.true const channelId = await initiatorCh.id() - const round = Number(unpackTx((await initiatorCh.state()).signedTx).tx.encodedTx.tx.nonce) + const round = initiatorCh.round() initiatorCh.disconnect() const ch = await Channel.reconnect({ ...sharedParams, @@ -1046,7 +1085,15 @@ describe('Channel', function () { role: 'initiator', pubkey: await initiator.address() }) - await waitForChannel(ch) + await new Promise((resolve) => { + const checkRound = () => { + ch.round().should.equal(round) + // TODO: enable line below + // ch.off('stateChanged', checkRound) + resolve() + } + ch.on('stateChanged', checkRound) + }) ch.state().should.eventually.be.fulfilled }) From 07cb0e7da1b33e006109311a4724c82a92c7cefa Mon Sep 17 00:00:00 2001 From: naz_dou <41945483+nduchak@users.noreply.github.com> Date: Thu, 7 Nov 2019 04:03:16 +0700 Subject: [PATCH 22/51] feat(ACI): Add validation for contractAddress (#764) * feat(ACI): Add validation for contractAddress and provided bytecode with corresponding one on-chain * feat(ACI): Add tests --- es/chain/index.js | 2 +- es/chain/node.js | 5 +++++ es/contract/aci/index.js | 19 ++++++++++++++++--- test/integration/contract.js | 28 ++++++++++++++++++++++++++++ 4 files changed, 50 insertions(+), 4 deletions(-) diff --git a/es/chain/index.js b/es/chain/index.js index 3fa9da34be..9866233b25 100644 --- a/es/chain/index.js +++ b/es/chain/index.js @@ -43,7 +43,7 @@ const Chain = Oracle.compose({ Ae: { methods: [ 'sendTransaction', 'height', 'awaitHeight', 'poll', 'balance', 'getBalance', 'tx', - 'mempool', 'topBlock', 'getTxInfo', 'txDryRun', 'getName', 'getNodeInfo', 'getAccount' + 'mempool', 'topBlock', 'getTxInfo', 'txDryRun', 'getName', 'getNodeInfo', 'getAccount', 'getContractByteCode', 'getContract' ] } } diff --git a/es/chain/node.js b/es/chain/node.js index 661753a502..8b79976fae 100644 --- a/es/chain/node.js +++ b/es/chain/node.js @@ -188,6 +188,10 @@ async function getContractByteCode (contractId) { return this.api.getContractCode(contractId) } +async function getContract (contractId) { + return this.api.getContract(contractId) +} + async function getName (name) { return this.api.getNameEntryByName(name) } @@ -227,6 +231,7 @@ const ChainNode = Chain.compose(Oracle, TransactionValidator, NodePool, { getKeyBlock, txDryRun, getContractByteCode, + getContract, getName } }) diff --git a/es/contract/aci/index.js b/es/contract/aci/index.js index d2b1217432..bc90519ab1 100644 --- a/es/contract/aci/index.js +++ b/es/contract/aci/index.js @@ -29,6 +29,7 @@ import { validateArguments, transform, transformDecodedData } from './transforma import { buildContractMethods, getFunctionACI } from './helpers' import AsyncInit from '../../utils/async-init' import { BigNumber } from 'bignumber.js' +import { isAddressValid } from '../../utils/crypto' /** * Validated contract call arguments using contract ACI @@ -58,9 +59,10 @@ async function prepareArgsForEncode (aci, params) { * @alias module:@aeternity/aepp-sdk/es/contract/aci * @param {String} source Contract source code * @param {Object} [options={}] Options object - * @param {Object} [options.aci] Contract ACI - * @param {Object} [options.contractAddress] Contract address + * @param {String} [options.aci] Contract ACI + * @param {String} [options.contractAddress] Contract address * @param {Object} [options.filesystem] Contact source external namespaces map + * @param {Boolean} [options.forceCodeCheck = false] Flag to force validation of corresponding on chain bytecode * @param {Object} [options.opt] Contract options * @return {ContractInstance} JS Contract API * @example @@ -71,7 +73,7 @@ async function prepareArgsForEncode (aci, params) { * Also you can call contract like: await contractIns.methods.setState(123, options) * Then sdk decide to make on-chain or static call(dry-run API) transaction based on function is stateful or not */ -async function getContractInstance (source, { aci, contractAddress, filesystem = {}, opt } = {}) { +async function getContractInstance (source, { aci, contractAddress, filesystem = {}, forceCodeCheck = false, opt } = {}) { aci = aci || await this.contractGetACI(source, { filesystem }) const defaultOptions = { skipArgsConvert: false, @@ -98,6 +100,17 @@ async function getContractInstance (source, { aci, contractAddress, filesystem = this.options = R.merge(this.options, opt) } } + // Check for valid contract address and contract code + if (contractAddress) { + if (!isAddressValid(contractAddress, 'ct')) throw new Error('Invalid contract address') + const contract = await this.getContract(contractAddress).catch(e => null) + if (!contract) throw new Error(`Contract with address ${contractAddress} not found on-chain`) + if (!forceCodeCheck) { + const onChanByteCode = (await this.getContractByteCode(contractAddress)).bytecode + instance.compiled = (await this.contractCompile(source, instance.options)).bytecode + if (instance.compile !== onChanByteCode) throw new Error('Contract source do not correspond to the contract source deploying on the chain') + } + } /** * Compile contract diff --git a/test/integration/contract.js b/test/integration/contract.js index be701cc4b0..554ad957ca 100644 --- a/test/integration/contract.js +++ b/test/integration/contract.js @@ -313,6 +313,34 @@ describe('Contract', function () { const isCompiled = contractObject.compiled.length && contractObject.compiled.slice(0, 3) === 'cb_' isCompiled.should.be.equal(true) }) + it('Throw error on creating contract instance with invalid contractAddress', async () => { + try { + await contract.getContractInstance(testContract, { filesystem, contractAddress: 'ct_asdasdasd', opt: { ttl: 0 } }) + } catch (e) { + e.message.should.be.equal('Invalid contract address') + } + }) + it('Throw error on creating contract instance with contract address which is not found on-chain', async () => { + const contractAddress = 'ct_ptREMvyDbSh1d38t4WgYgac5oLsa2v9xwYFnG7eUWR8Er5cmT' + try { + await contract.getContractInstance(testContract, { filesystem, contractAddress, opt: { ttl: 0 } }) + } catch (e) { + e.message.should.be.equal(`Contract with address ${contractAddress} not found on-chain`) + } + }) + it('Throw error on creating contract instance with using a bytecode which is different from one deployed on-chain', async () => { + try { + await contract.getContractInstance(identityContract, { contractAddress: contractObject.deployInfo.address, opt: { ttl: 0 } }) + } catch (e) { + e.message.should.be.equal('Contract source do not correspond to the contract source deploying on the chain') + } + }) + it('Force throwing error on creating contract instance with using a bytecode which is different from one deployed on-chain', async () => { + const cInstance = await contract.getContractInstance(identityContract, { forceCodeCheck: true, contractAddress: contractObject.deployInfo.address, opt: { ttl: 0 } }) + cInstance.should.have.property('interface') + cInstance.should.have.property('aci') + cInstance.should.have.property('source') + }) it('Fail on paying to not payable function', async () => { const amount = 100 try { From 5250e7533fac4c3fc640ba65bff631d6ea3aafd9 Mon Sep 17 00:00:00 2001 From: naz_dou <41945483+nduchak@users.noreply.github.com> Date: Thu, 7 Nov 2019 17:04:41 +0700 Subject: [PATCH 23/51] feat(AENS): Add nameFee validation to TxValidator (#765) --- es/tx/builder/schema.js | 13 +++++++++++-- es/tx/validator.js | 17 ++++++++++++++--- test/integration/channel.js | 2 +- test/integration/txVerification.js | 12 ++++++++++-- 4 files changed, 36 insertions(+), 8 deletions(-) diff --git a/es/tx/builder/schema.js b/es/tx/builder/schema.js index 57b46f2244..0722bd502c 100644 --- a/es/tx/builder/schema.js +++ b/es/tx/builder/schema.js @@ -1212,7 +1212,8 @@ const VALIDATORS = { nonceUsed: 'nonceUsed', nonceHigh: 'nonceHigh', minGasPrice: 'minGasPrice', - vmAndAbiVersion: 'vmAndAbiVersion' + vmAndAbiVersion: 'vmAndAbiVersion', + insufficientBalanceForFeeNameFee: 'insufficientBalanceForFeeNameFee' } const ERRORS = { @@ -1224,7 +1225,8 @@ const ERRORS = { nonceUsed: { key: 'NonceUsed', type: ERROR_TYPE.ERROR, txKey: 'nonce' }, nonceHigh: { key: 'NonceHigh', type: ERROR_TYPE.WARNING, txKey: 'nonce' }, minGasPrice: { key: 'minGasPrice', type: ERROR_TYPE.ERROR, txKey: 'gasPrice' }, - vmAndAbiVersion: { key: 'vmAndAbiVersion', type: ERROR_TYPE.ERROR, txKey: 'ctVersion' } + vmAndAbiVersion: { key: 'vmAndAbiVersion', type: ERROR_TYPE.ERROR, txKey: 'ctVersion' }, + insufficientBalanceForFeeNameFee: { key: 'insufficientBalanceForFeeNameFee', type: ERROR_TYPE.ERROR, txKey: 'nameFee' } } export const SIGNATURE_VERIFICATION_SCHEMA = [ @@ -1246,6 +1248,13 @@ export const CONTRACT_VERIFICATION_SCHEMA = [ ERRORS.minGasPrice ) ] +export const NAME_CLAIM_VERIFICATION_SCHEMA = [ + VERIFICATION_FIELD( + ({ balance }) => `The account balance ${balance} is not enough to execute the transaction`, + VALIDATORS.insufficientBalanceForFeeNameFee, + ERRORS.insufficientBalanceForFeeNameFee + ) +] export const BASE_VERIFICATION_SCHEMA = [ VERIFICATION_FIELD( ({ minFee }) => `The fee for the transaction is too low, the minimum fee for this transaction is ${minFee}`, diff --git a/es/tx/validator.js b/es/tx/validator.js index d9b7ed8268..419f4be847 100644 --- a/es/tx/validator.js +++ b/es/tx/validator.js @@ -7,9 +7,15 @@ import { encode } from '../tx/builder/helpers' import { BigNumber } from 'bignumber.js' import { - BASE_VERIFICATION_SCHEMA, CONTRACT_VERIFICATION_SCHEMA, MIN_GAS_PRICE, OBJECT_ID_TX_TYPE, - OBJECT_TAG_SIGNED_TRANSACTION, PROTOCOL_VM_ABI, - SIGNATURE_VERIFICATION_SCHEMA, TX_TYPE + BASE_VERIFICATION_SCHEMA, + CONTRACT_VERIFICATION_SCHEMA, + MIN_GAS_PRICE, + NAME_CLAIM_VERIFICATION_SCHEMA, + OBJECT_ID_TX_TYPE, + OBJECT_TAG_SIGNED_TRANSACTION, + PROTOCOL_VM_ABI, + SIGNATURE_VERIFICATION_SCHEMA, + TX_TYPE } from './builder/schema' import { calculateFee, unpackTx } from './builder' import { NodePool } from '../node-pool' @@ -68,6 +74,9 @@ const VALIDATORS = { .reduce((acc, [key, value]) => [...acc, value === undefined ? true : txProtocol[key].includes(parseInt(value))], []).includes(false) + }, + insufficientBalanceForFeeNameFee ({ nameFee, fee, balance, VSN }) { + return VSN === 1 || BigNumber(balance).gt(BigNumber(nameFee).plus(fee)) } } @@ -188,6 +197,8 @@ function customVerification (txType, data) { case TX_TYPE.contractCall: case TX_TYPE.oracleRegister: return verifySchema(CONTRACT_VERIFICATION_SCHEMA, data) + case TX_TYPE.nameClaim: + return verifySchema(NAME_CLAIM_VERIFICATION_SCHEMA, data) default: return [] } diff --git a/test/integration/channel.js b/test/integration/channel.js index 95fbfab144..b8735610fc 100644 --- a/test/integration/channel.js +++ b/test/integration/channel.js @@ -43,7 +43,7 @@ function waitForChannel (channel) { ) } -describe.only('Channel', function () { +describe('Channel', function () { configure(this) this.timeout(120000) diff --git a/test/integration/txVerification.js b/test/integration/txVerification.js index 4dcab23fd7..57403e0c9c 100644 --- a/test/integration/txVerification.js +++ b/test/integration/txVerification.js @@ -1,10 +1,10 @@ -import { before, describe } from 'mocha' +import { before, describe, it } from 'mocha' import { configure, ready } from '.' import { generateKeyPair } from '../../es/utils/crypto' import { BASE_VERIFICATION_SCHEMA, SIGNATURE_VERIFICATION_SCHEMA } from '../../es/tx/builder/schema' const WARNINGS = [...SIGNATURE_VERIFICATION_SCHEMA, ...BASE_VERIFICATION_SCHEMA].reduce((acc, [msg, v, error]) => error.type === 'warning' ? [...acc, error.txKey] : acc, []) -const ERRORS = [...BASE_VERIFICATION_SCHEMA, ...SIGNATURE_VERIFICATION_SCHEMA,].reduce((acc, [msg, v, error]) => error.type === 'error' ? [...acc, error.txKey] : acc, []) +const ERRORS = [...BASE_VERIFICATION_SCHEMA, ...SIGNATURE_VERIFICATION_SCHEMA].reduce((acc, [msg, v, error]) => error.type === 'error' ? [...acc, error.txKey] : acc, []) const channelCreate = 'tx_+NkLAfhCuECIIeWttRUiZ32uriBdmM1t+dCg90KuG2ABxOiuXqzpAul6uTWvsyfx3EFJDah6trudrityh+6XSX3mkPEimhgGuJH4jzIBoQELtO15J/l7UeG8teE0DRIzWyorEsi8UiHWPEvLOdQeYYgbwW1nTsgAAKEB6bv2BOYRtUYKOzmZ6Xcbb2BBfXPOfFUZ4S9+EnoSJcqIG8FtZ07IAACIAWNFeF2KAAAKAIYSMJzlQADAoDBrIcoop8JfZ4HOD9p3nDTiNthj7jjl+ArdHwEMUrvQgitwOr/v3Q==' describe('Verify Transaction', function () { @@ -88,4 +88,12 @@ describe('Verify Transaction', function () { const res = await client.unpackAndVerify(channelCreate) Array.isArray(res.validation).should.be.equal(true) }) + it('Verify nameFee for nameClaim transaction', async () => { + const tx = 'tx_+KILAfhCuEAtbc38n/FH8jZHO0DkEkiLZZm8ypEzZEhbjyHtaoEYkENOE9tD+Xp6smFMou9X521oI4gkFBQGwSQaQk6Z7XMNuFr4WCACoQHkWpoidhJW2EZEega88I1P9Ktw1DFBUWwrzkr5jC5zUAORc29tZUF1Y3Rpb24uY2hhaW6HDwTrMteR15AJQ0VVyE5TcqKSstgfbGV6hg9HjghAAAAGpIPS' + const res = await client.unpackAndVerify(tx) + const nameFeeError = res.validation.find(err => err.txKey === 'nameFee') + nameFeeError.should.be.an('object') + nameFeeError.type.should.be.equal('error') + nameFeeError.msg.indexOf('The account balance').should.not.be.equal(-1) + }) }) From de83204a0218b970e8c0c15d6bbc88772afdcd94 Mon Sep 17 00:00:00 2001 From: naz_dou <41945483+nduchak@users.noreply.github.com> Date: Thu, 7 Nov 2019 19:09:27 +0700 Subject: [PATCH 24/51] feat(Crypto): Implement asymmetric encoding/decoding using `tweennacl` and `Ed25519` keypair (#466) * feat(Add nacl box implementtation): ] * feat(Crypto): Implement asymetric encoding/decoding using tweennacl and Ed25519 keypair Converts a 32-byte Ed25519 public key into a 32-byte Curve25519 public key.Converts a 64-byte Ed25519 secret key (or just the first 32-byte part of it, which is the secret value) into a 32-byte Curve25519 secret key #465 * chore(merge): Fix conflict --- es/utils/crypto.js | 54 ++++++++++++++++++++++++++++++++++++++++++++- package-lock.json | 16 ++++++++++++++ package.json | 1 + test/unit/crypto.js | 26 ++++++++++++++++++++++ 4 files changed, 96 insertions(+), 1 deletion(-) diff --git a/es/utils/crypto.js b/es/utils/crypto.js index 1d984e28bc..732d60346c 100644 --- a/es/utils/crypto.js +++ b/es/utils/crypto.js @@ -24,10 +24,12 @@ import bs58check from 'bs58check' import * as RLP from 'rlp' import { blake2b } from 'blakejs' +import ed2curve from 'ed2curve' import nacl from 'tweetnacl' import aesjs from 'aes-js' -import { leftPad, rightPad, toBytes } from './bytes' import shajs from 'sha.js' + +import { leftPad, rightPad, toBytes } from './bytes' import { decode as decodeNode } from '../tx/builder/helpers' const Ecb = aesjs.ModeOfOperation.ecb @@ -659,3 +661,53 @@ export function deserialize (binary, opts = { prettyTags: false }) { }) } } + +/** + * This function encrypts a message using base58check encoded and 'ak' prefixed + * publicKey such that only the corresponding secretKey will + * be able to decrypt + * @rtype (msg: String, publicKey: String) => Object + * @param {Buffer} msg - Data to encode + * @param {String} publicKey - Public key + * @return {Object} + */ +export function encryptData (msg, publicKey) { + const ephemeralKeyPair = nacl.box.keyPair() + const pubKeyUInt8Array = decodeBase58Check(assertedType(publicKey, 'ak')) + const nonce = nacl.randomBytes(nacl.box.nonceLength) + + const encryptedMessage = nacl.box( + Buffer.from(msg), + nonce, + ed2curve.convertPublicKey(pubKeyUInt8Array), + ephemeralKeyPair.secretKey + ) + + return { + ciphertext: Buffer.from(encryptedMessage).toString('hex'), + ephemPubKey: Buffer.from(ephemeralKeyPair.publicKey).toString('hex'), + nonce: Buffer.from(nonce).toString('hex'), + version: 'x25519-xsalsa20-poly1305' + } +} + +/** + * This function decrypt a message using secret key + * @rtype (secretKey: String, encryptedData: Object) => Buffer|null + * @param {String} secretKey - Secret key + * @param {Object} encryptedData - Encrypted data + * @return {Buffer|null} + */ +export function decryptData (secretKey, encryptedData) { + const receiverSecretKeyUint8Array = ed2curve.convertSecretKey(Buffer.from(secretKey, 'hex')) + const nonce = Buffer.from(encryptedData.nonce, 'hex') + const ciphertext = Buffer.from(encryptedData.ciphertext, 'hex') + const ephemPubKey = Buffer.from(encryptedData.ephemPubKey, 'hex') + const decrypted = nacl.box.open( + ciphertext, + nonce, + ephemPubKey, + receiverSecretKeyUint8Array + ) + return decrypted ? Buffer.from(decrypted) : decrypted +} diff --git a/package-lock.json b/package-lock.json index 368698d36a..cead1a201b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3934,6 +3934,21 @@ "safer-buffer": "^2.1.0" } }, + "ed2curve": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ed2curve/-/ed2curve-0.2.1.tgz", + "integrity": "sha1-Iuaqo1aePE2/Tu+ilhLsMp5YGQw=", + "requires": { + "tweetnacl": "0.x.x" + }, + "dependencies": { + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + } + } + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -7679,6 +7694,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", "dev": true, + "optional": true, "requires": { "mime-db": "1.40.0" } diff --git a/package.json b/package.json index a50fc3b7d9..f5eef245d5 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "blakejs": "^1.1.0", "bs58check": "^2.1.1", "commander": "^4.0.0", + "ed2curve": "^0.2.1", "joi-browser": "^13.4.0", "libsodium-wrappers-sumo": "0.7.6", "ramda": "^0.26.1", diff --git a/test/unit/crypto.js b/test/unit/crypto.js index 7e5fcf77df..2e2b5ca25a 100644 --- a/test/unit/crypto.js +++ b/test/unit/crypto.js @@ -159,4 +159,30 @@ describe('crypto', () => { buildTxHash(txRaw).should.be.equal(expectedHash) buildTxHash(rlpEncodedTx).should.be.equal(expectedHash) }) + describe('Encrypt data using nacl box asymmetric encryption', async () => { + const { publicKey, secretKey } = Crypto.generateKeyPair() + const msgString = 'Test string' + const msgBuffer = Buffer.from(msgString) + + it('Encrypt String/Buffer and decrypt', () => { + const encryptedString = Crypto.encryptData(msgString, publicKey) + const encryptedBuffer = Crypto.encryptData(msgBuffer, publicKey) + + const decryptedString = Crypto.decryptData(secretKey, encryptedString) + const decryptedBuffer = Crypto.decryptData(secretKey, encryptedBuffer) + Buffer.from(decryptedString).toString().should.be.equal(msgString) + decryptedBuffer.equals(msgBuffer).should.be.equal(true) + }) + it('Decrypt with wrong secret', () => { + const keyPair = Crypto.generateKeyPair() + + const encryptedString = Crypto.encryptData(msgString, keyPair.publicKey) + const encryptedBuffer = Crypto.encryptData(msgBuffer, keyPair.publicKey) + + const decryptedString = Crypto.decryptData(secretKey, encryptedString) + const decryptedBuffer = Crypto.decryptData(secretKey, encryptedBuffer) + const isNull = decryptedBuffer === null && decryptedString === null + isNull.should.be.equal(true) + }) + }) }) From 12aaca34b554a4b8c1b426544018726b200094e8 Mon Sep 17 00:00:00 2001 From: naz_dou <41945483+nduchak@users.noreply.github.com> Date: Thu, 7 Nov 2019 20:16:31 +0700 Subject: [PATCH 25/51] feat(Contract): Add ability to pass arguments or callData for contract `deploy/call/callStatic` API (#768) --- es/ae/contract.js | 59 +++++++++++++++++++----------------- es/ae/oracle.js | 2 +- test/integration/contract.js | 28 +++++++++++++++++ 3 files changed, 61 insertions(+), 28 deletions(-) diff --git a/es/ae/contract.js b/es/ae/contract.js index 9911f56d19..f8dc45b51d 100644 --- a/es/ae/contract.js +++ b/es/ae/contract.js @@ -36,6 +36,18 @@ import ContractACI from '../contract/aci' import BigNumber from 'bignumber.js' import NodePool from '../node-pool' +function sendAndProcess (tx, options) { + return async function (onSuccess, onError) { + // Send transaction and get transaction info + const { hash, rawTx } = await this.send(tx, options) + const result = await this.getTxInfo(hash) + + return result.returnType === 'ok' + ? onSuccess({ hash, rawTx, result }) + : typeof onError === 'function' ? onError(result) : this.handleCallError(result) + } +} + /** * Handle contract call error * @function @@ -99,11 +111,11 @@ async function contractDecodeData (source, fn, callValue, callResult, options) { * @param {String} source Contract source code * @param {String} address Contract address * @param {String} name Name of function to call - * @param {Array} args Argument's for call function + * @param {Array|String} args Argument's or callData for call/deploy transaction * @param {Object} [options={}] Options * @param {String} [options.top] Block hash on which you want to call contract - * @param bytecode - * @param {String} options [options.options] Transaction options (fee, ttl, gas, amount, deposit) + * @param {String} [options.bytecode] Block hash on which you want to call contract + * @param {Object} options [options.options] Transaction options (fee, ttl, gas, amount, deposit) * @param {Object} filesystem [options.options.filesystem] Contract external namespaces map * @return {Promise} Result object * @example @@ -120,7 +132,7 @@ async function contractCallStatic (source, address, name, args = [], { top, opti : await this.address().catch(e => opt.dryRunAccount.pub) // Prepare call-data - const callData = await this.contractEncodeCall(source, name, args, opt) + const callData = Array.isArray(args) ? await this.contractEncodeCall(source, name, args, opt) : args // Get block hash by height if (top && !isNaN(top)) { @@ -151,15 +163,16 @@ async function contractCallStatic (source, address, name, args = [], { top, opti async function dryRunContractTx (tx, callerId, source, name, opt = {}) { const { top } = opt - // Dry-run + // Resolve Account for Dry-run const dryRunAmount = BigNumber(opt.dryRunAccount.amount).gt(BigNumber(opt.amount || 0)) ? opt.dryRunAccount.amount : opt.amount const dryRunAccount = { amount: dryRunAmount, pubKey: callerId } + // Dry-run const [{ result: status, callObj, reason }] = (await this.txDryRun([tx], [dryRunAccount], top)).results - // check response + // Process response if (status !== 'ok') throw new Error('Dry run error, ' + reason) const { returnType, returnValue } = callObj if (returnType !== 'ok') { @@ -179,7 +192,7 @@ async function dryRunContractTx (tx, callerId, source, name, opt = {}) { * @param {String} source Contract source code * @param {String} address Contract address * @param {String} name Name of function to call - * @param {Array} args Argument's for call function + * @param {Array|String} args Argument's or callData for call function * @param {Object} [options={}] Transaction options (fee, ttl, gas, amount, deposit) * @param {Object} [options.filesystem={}] Contract external namespaces map* @return {Promise} Result object * @example @@ -196,22 +209,18 @@ async function contractCall (source, address, name, args = [], options = {}) { const tx = await this.contractCallTx(R.merge(opt, { callerId: await this.address(opt), contractId: address, - callData: await this.contractEncodeCall(source, name, args, opt) + callData: Array.isArray(args) ? await this.contractEncodeCall(source, name, args, opt) : args })) - const { hash, rawTx } = await this.send(tx, opt) - const result = await this.getTxInfo(hash) - - if (result.returnType === 'ok') { - return { + return sendAndProcess(tx, opt).call( + this, + ({ hash, rawTx, result }) => ({ hash, rawTx, result, decode: () => this.contractDecodeData(source, name, result.returnValue, result.returnType, opt) - } - } else { - await this.handleCallError(result) - } + }) + ) } /** @@ -221,7 +230,7 @@ async function contractCall (source, address, name, args = [], options = {}) { * @category async * @param {String} code Compiled contract * @param {String} source Contract source code - * @param {Array} initState Arguments of contract constructor(init) function + * @param {Array|String} initState Arguments of contract constructor(init) function. Can be array of arguments or callData string * @param {Object} [options={}] Transaction options (fee, ttl, gas, amount, deposit) * @param {Object} [options.filesystem={}] Contract external namespaces map* @return {Promise} Result object * @return {Promise} Result object @@ -239,7 +248,7 @@ async function contractCall (source, address, name, args = [], options = {}) { */ async function contractDeploy (code, source, initState = [], options = {}) { const opt = R.merge(this.Ae.defaults, options) - const callData = await this.contractEncodeCall(source, 'init', initState, opt) + const callData = Array.isArray(initState) ? await this.contractEncodeCall(source, 'init', initState, opt) : initState const ownerId = await this.address(opt) const { tx, contractId } = await this.contractCreateTx(R.merge(opt, { @@ -248,11 +257,9 @@ async function contractDeploy (code, source, initState = [], options = {}) { ownerId })) - const { hash, rawTx } = await this.send(tx, opt) - const result = await this.getTxInfo(hash) - - if (result.returnType === 'ok') { - return Object.freeze({ + return sendAndProcess(tx, opt).call( + this, + ({ hash, rawTx, result }) => Object.freeze({ result, owner: ownerId, transaction: hash, @@ -262,9 +269,7 @@ async function contractDeploy (code, source, initState = [], options = {}) { callStatic: async (name, args = [], options = {}) => this.contractCallStatic(source, contractId, name, args, { ...options, options: { onAccount: opt.onAccount, ...R.merge(opt, options.options) } }), createdAt: new Date() }) - } else { - await this.handleCallError(result) - } + ) } /** diff --git a/es/ae/oracle.js b/es/ae/oracle.js index 4a090bb92f..e843c30569 100644 --- a/es/ae/oracle.js +++ b/es/ae/oracle.js @@ -64,7 +64,7 @@ async function getOracleObject (oracleId) { * @param {String} oracleId Oracle public key * @param {Function} onQuery OnQuery callback * @param {Object} [options] Options object - * @param {Object} [options.interval] Poll interval(default: 5000) + * @param {Number} [options.interval] Poll interval(default: 5000) * @return {Function} stopPolling - Stop polling function */ async function pollForQueries (oracleId, onQuery, { interval = 5000 } = {}) { diff --git a/test/integration/contract.js b/test/integration/contract.js index 554ad957ca..95068353aa 100644 --- a/test/integration/contract.js +++ b/test/integration/contract.js @@ -134,6 +134,34 @@ describe('Contract', function () { return deployed.should.have.property('address') }) + it('Deploy/Call/Dry-run contract using callData', async () => { + const callArg = 1 + const { bytecode } = await contract.contractCompile(identityContract) + const callDataDeploy = await contract.contractEncodeCall(identityContract, 'init', []) + const callDataCall = await contract.contractEncodeCall(identityContract, 'main', [callArg.toString()]) + + const deployStatic = await contract.contractCallStatic(identityContract, null, 'init', callDataDeploy, { bytecode }) + deployStatic.result.should.have.property('gasUsed') + deployStatic.result.should.have.property('returnType') + + const deployed = await contract.contractDeploy(bytecode, identityContract, callDataDeploy) + deployed.result.should.have.property('gasUsed') + deployed.result.should.have.property('returnType') + deployed.should.have.property('address') + + const callStaticRes = await contract.contractCallStatic(identityContract, deployed.address, 'main', callDataCall) + callStaticRes.result.should.have.property('gasUsed') + callStaticRes.result.should.have.property('returnType') + const decodedCallStaticResult = await callStaticRes.decode() + decodedCallStaticResult.should.be.equal(callArg) + + const callRes = await contract.contractCall(identityContract, deployed.address, 'main', callDataCall) + callRes.result.should.have.property('gasUsed') + callRes.result.should.have.property('returnType') + const decodedCallResult = await callRes.decode() + decodedCallResult.should.be.equal(callArg) + }) + it('Deploy and call contract on specific account', async () => { const current = await contract.address() const onAccount = contract.addresses().find(acc => acc !== current) From ca8b46724c3deeafeba1518e3b44011ea0663eeb Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" <23040076+greenkeeper[bot]@users.noreply.github.com> Date: Mon, 11 Nov 2019 12:22:45 +0200 Subject: [PATCH 26/51] =?UTF-8?q?Update=20babel7=20in=20group=20default=20?= =?UTF-8?q?to=20the=20latest=20version=20=F0=9F=9A=80=20(#771)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(package): update @babel/core to version 7.7.2 * chore(package): update @babel/core to version 7.7.2 * chore(package): update @babel/core to version 7.7.2 * chore(package): update @babel/preset-env to version 7.7.1 * chore(package): update @babel/preset-env to version 7.7.1 * chore(package): update @babel/preset-env to version 7.7.1 * chore(package): update @babel/runtime to version 7.7.2 * chore(package): update @babel/runtime to version 7.7.2 * chore(package): update @babel/runtime to version 7.7.2 * chore(package): update lockfile package-lock.json * chore(package): update lockfile examples/browser/vuejs/connect-two-ae/identity/yarn.lock * chore(package): update lockfile examples/browser/vuejs/connect-two-ae/aepp/yarn.lock --- .../vuejs/connect-two-ae/aepp/package.json | 6 +- .../vuejs/connect-two-ae/aepp/yarn.lock | 82 ++++-- .../connect-two-ae/identity/package.json | 6 +- .../vuejs/connect-two-ae/identity/yarn.lock | 82 ++++-- package-lock.json | 242 ++++++++++-------- package.json | 6 +- 6 files changed, 266 insertions(+), 158 deletions(-) diff --git a/examples/browser/vuejs/connect-two-ae/aepp/package.json b/examples/browser/vuejs/connect-two-ae/aepp/package.json index bce7697c8e..7bbdcb6867 100644 --- a/examples/browser/vuejs/connect-two-ae/aepp/package.json +++ b/examples/browser/vuejs/connect-two-ae/aepp/package.json @@ -22,14 +22,14 @@ }, "devDependencies": { "@babel/cli": "7.7.0", - "@babel/core": "7.7.0", + "@babel/core": "7.7.2", "@babel/node": "7.7.0", "@babel/plugin-proposal-export-default-from": "7.5.2", "@babel/plugin-proposal-object-rest-spread": "7.6.2", "@babel/plugin-transform-runtime": "7.6.2", - "@babel/preset-env": "7.7.0", + "@babel/preset-env": "7.7.1", "@babel/register": "7.7.0", - "@babel/runtime": "7.7.0", + "@babel/runtime": "7.7.2", "autoprefixer": "^9.0.2", "babel-core": "^7.0.0-beta.3", "babel-loader": "^8.0.0-beta.3", diff --git a/examples/browser/vuejs/connect-two-ae/aepp/yarn.lock b/examples/browser/vuejs/connect-two-ae/aepp/yarn.lock index 73e10a3366..126e6d9549 100644 --- a/examples/browser/vuejs/connect-two-ae/aepp/yarn.lock +++ b/examples/browser/vuejs/connect-two-ae/aepp/yarn.lock @@ -63,19 +63,19 @@ dependencies: "@babel/highlight" "^7.0.0" -"@babel/core@7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.0.tgz#461d2948b1a7113088baf999499bcbd39a7faa3b" - integrity sha512-Bb1NjZCaiwTQC/ARL+MwDpgocdnwWDCaugvkGt6cxfBzQa8Whv1JybBoUEiBDKl8Ni3H3c7Fykwk7QChUsHRlg== +"@babel/core@7.7.2": + version "7.7.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.2.tgz#ea5b99693bcfc058116f42fa1dd54da412b29d91" + integrity sha512-eeD7VEZKfhK1KUXGiyPFettgF3m513f8FoBSWiQ1xTvl1RAopLs42Wp9+Ze911I6H0N9lNqJMDgoZT7gHsipeQ== dependencies: "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.7.0" + "@babel/generator" "^7.7.2" "@babel/helpers" "^7.7.0" - "@babel/parser" "^7.7.0" + "@babel/parser" "^7.7.2" "@babel/template" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - convert-source-map "^1.1.0" + "@babel/traverse" "^7.7.2" + "@babel/types" "^7.7.2" + convert-source-map "^1.7.0" debug "^4.1.0" json5 "^2.1.0" lodash "^4.17.13" @@ -104,6 +104,16 @@ lodash "^4.17.13" source-map "^0.5.0" +"@babel/generator@^7.7.2": + version "7.7.2" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.2.tgz#2f4852d04131a5e17ea4f6645488b5da66ebf3af" + integrity sha512-WthSArvAjYLz4TcbKOi88me+KmDJdKSlfwwN8CnUYn9jBkzhq0ZEPuBfkAWIvjJ3AdEV1Cf/+eSQTnp3IDJKlQ== + dependencies: + "@babel/types" "^7.7.2" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + "@babel/helper-annotate-as-pure@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" @@ -396,6 +406,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.0.tgz#232618f6e8947bc54b407fa1f1c91a22758e7159" integrity sha512-GqL+Z0d7B7ADlQBMXlJgvXEbtt5qlqd1YQ5fr12hTSfh7O/vgrEIvJxU2e7aSVrEUn75zTZ6Nd0s8tthrlZnrQ== +"@babel/parser@^7.7.2": + version "7.7.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.3.tgz#5fad457c2529de476a248f75b0f090b3060af043" + integrity sha512-bqv+iCo9i+uLVbI0ILzKkvMorqxouI+GbV13ivcARXn9NNEabi2IEz912IgNpT/60BNXac5dgcfjb94NjsF33A== + "@babel/plugin-proposal-async-generator-functions@^7.7.0": version "7.7.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.0.tgz#83ef2d6044496b4c15d8b4904e2219e6dccc6971" @@ -756,10 +771,10 @@ "@babel/helper-create-regexp-features-plugin" "^7.7.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/preset-env@7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.0.tgz#46dccc1df6b6a195044421b3f61a029866d92eef" - integrity sha512-AgvG8VJDehjK0Ky86xvaqKpx0ASKQk63dfghqqFt6yf9gqmcvc5TodM0ZT0XZvw9fxfrG1PqJ1Xt+8bDnHv9xw== +"@babel/preset-env@7.7.1": + version "7.7.1" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.1.tgz#04a2ff53552c5885cf1083e291c8dd5490f744bb" + integrity sha512-/93SWhi3PxcVTDpSqC+Dp4YxUu3qZ4m7I76k0w73wYfn7bGVuRIO4QUz95aJksbS+AD1/mT1Ie7rbkT0wSplaA== dependencies: "@babel/helper-module-imports" "^7.7.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -806,7 +821,7 @@ "@babel/plugin-transform-template-literals" "^7.4.4" "@babel/plugin-transform-typeof-symbol" "^7.2.0" "@babel/plugin-transform-unicode-regex" "^7.7.0" - "@babel/types" "^7.7.0" + "@babel/types" "^7.7.1" browserslist "^4.6.0" core-js-compat "^3.1.1" invariant "^2.2.2" @@ -824,10 +839,10 @@ pirates "^4.0.0" source-map-support "^0.5.16" -"@babel/runtime@7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.0.tgz#9b309d493864d69e0b9ec093e1426535a76b4b94" - integrity sha512-xdf3hZAzoqL9q7ItTe/KyUGw214oXdHmq2XhW8ANRuo2KMX+s17RK+z4DsQiPkdOqCjep14eNTneRoiTs9T1AQ== +"@babel/runtime@7.7.2": + version "7.7.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.2.tgz#111a78002a5c25fc8e3361bedc9529c696b85a6a" + integrity sha512-JONRbXbTXc9WQE2mAZd1p0Z3DZ/6vaQIkgYMSTP3KjRCyd7rCZCcfhCyX+YjwcKxcZ82UrxbRD358bpExNgrjw== dependencies: regenerator-runtime "^0.13.2" @@ -886,6 +901,21 @@ globals "^11.1.0" lodash "^4.17.13" +"@babel/traverse@^7.7.2": + version "7.7.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.7.2.tgz#ef0a65e07a2f3c550967366b3d9b62a2dcbeae09" + integrity sha512-TM01cXib2+rgIZrGJOLaHV/iZUAxf4A0dt5auY6KNZ+cm6aschuJGqKJM3ROTt3raPUdIDk9siAufIFEleRwtw== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.7.2" + "@babel/helper-function-name" "^7.7.0" + "@babel/helper-split-export-declaration" "^7.7.0" + "@babel/parser" "^7.7.2" + "@babel/types" "^7.7.2" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + "@babel/types@^7.0.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.5.tgz#97b9f728e182785909aa4ab56264f090a028d18a" @@ -904,6 +934,15 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" +"@babel/types@^7.7.1", "@babel/types@^7.7.2": + version "7.7.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.7.2.tgz#550b82e5571dcd174af576e23f0adba7ffc683f7" + integrity sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA== + dependencies: + esutils "^2.0.2" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + "@csstools/convert-colors@^1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" @@ -2497,6 +2536,13 @@ convert-source-map@^1.1.0, convert-source-map@^1.5.0: dependencies: safe-buffer "~5.1.1" +convert-source-map@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" diff --git a/examples/browser/vuejs/connect-two-ae/identity/package.json b/examples/browser/vuejs/connect-two-ae/identity/package.json index bce7697c8e..7bbdcb6867 100644 --- a/examples/browser/vuejs/connect-two-ae/identity/package.json +++ b/examples/browser/vuejs/connect-two-ae/identity/package.json @@ -22,14 +22,14 @@ }, "devDependencies": { "@babel/cli": "7.7.0", - "@babel/core": "7.7.0", + "@babel/core": "7.7.2", "@babel/node": "7.7.0", "@babel/plugin-proposal-export-default-from": "7.5.2", "@babel/plugin-proposal-object-rest-spread": "7.6.2", "@babel/plugin-transform-runtime": "7.6.2", - "@babel/preset-env": "7.7.0", + "@babel/preset-env": "7.7.1", "@babel/register": "7.7.0", - "@babel/runtime": "7.7.0", + "@babel/runtime": "7.7.2", "autoprefixer": "^9.0.2", "babel-core": "^7.0.0-beta.3", "babel-loader": "^8.0.0-beta.3", diff --git a/examples/browser/vuejs/connect-two-ae/identity/yarn.lock b/examples/browser/vuejs/connect-two-ae/identity/yarn.lock index 73e10a3366..126e6d9549 100644 --- a/examples/browser/vuejs/connect-two-ae/identity/yarn.lock +++ b/examples/browser/vuejs/connect-two-ae/identity/yarn.lock @@ -63,19 +63,19 @@ dependencies: "@babel/highlight" "^7.0.0" -"@babel/core@7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.0.tgz#461d2948b1a7113088baf999499bcbd39a7faa3b" - integrity sha512-Bb1NjZCaiwTQC/ARL+MwDpgocdnwWDCaugvkGt6cxfBzQa8Whv1JybBoUEiBDKl8Ni3H3c7Fykwk7QChUsHRlg== +"@babel/core@7.7.2": + version "7.7.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.2.tgz#ea5b99693bcfc058116f42fa1dd54da412b29d91" + integrity sha512-eeD7VEZKfhK1KUXGiyPFettgF3m513f8FoBSWiQ1xTvl1RAopLs42Wp9+Ze911I6H0N9lNqJMDgoZT7gHsipeQ== dependencies: "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.7.0" + "@babel/generator" "^7.7.2" "@babel/helpers" "^7.7.0" - "@babel/parser" "^7.7.0" + "@babel/parser" "^7.7.2" "@babel/template" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - convert-source-map "^1.1.0" + "@babel/traverse" "^7.7.2" + "@babel/types" "^7.7.2" + convert-source-map "^1.7.0" debug "^4.1.0" json5 "^2.1.0" lodash "^4.17.13" @@ -104,6 +104,16 @@ lodash "^4.17.13" source-map "^0.5.0" +"@babel/generator@^7.7.2": + version "7.7.2" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.2.tgz#2f4852d04131a5e17ea4f6645488b5da66ebf3af" + integrity sha512-WthSArvAjYLz4TcbKOi88me+KmDJdKSlfwwN8CnUYn9jBkzhq0ZEPuBfkAWIvjJ3AdEV1Cf/+eSQTnp3IDJKlQ== + dependencies: + "@babel/types" "^7.7.2" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + "@babel/helper-annotate-as-pure@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" @@ -396,6 +406,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.0.tgz#232618f6e8947bc54b407fa1f1c91a22758e7159" integrity sha512-GqL+Z0d7B7ADlQBMXlJgvXEbtt5qlqd1YQ5fr12hTSfh7O/vgrEIvJxU2e7aSVrEUn75zTZ6Nd0s8tthrlZnrQ== +"@babel/parser@^7.7.2": + version "7.7.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.3.tgz#5fad457c2529de476a248f75b0f090b3060af043" + integrity sha512-bqv+iCo9i+uLVbI0ILzKkvMorqxouI+GbV13ivcARXn9NNEabi2IEz912IgNpT/60BNXac5dgcfjb94NjsF33A== + "@babel/plugin-proposal-async-generator-functions@^7.7.0": version "7.7.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.0.tgz#83ef2d6044496b4c15d8b4904e2219e6dccc6971" @@ -756,10 +771,10 @@ "@babel/helper-create-regexp-features-plugin" "^7.7.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/preset-env@7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.0.tgz#46dccc1df6b6a195044421b3f61a029866d92eef" - integrity sha512-AgvG8VJDehjK0Ky86xvaqKpx0ASKQk63dfghqqFt6yf9gqmcvc5TodM0ZT0XZvw9fxfrG1PqJ1Xt+8bDnHv9xw== +"@babel/preset-env@7.7.1": + version "7.7.1" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.1.tgz#04a2ff53552c5885cf1083e291c8dd5490f744bb" + integrity sha512-/93SWhi3PxcVTDpSqC+Dp4YxUu3qZ4m7I76k0w73wYfn7bGVuRIO4QUz95aJksbS+AD1/mT1Ie7rbkT0wSplaA== dependencies: "@babel/helper-module-imports" "^7.7.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -806,7 +821,7 @@ "@babel/plugin-transform-template-literals" "^7.4.4" "@babel/plugin-transform-typeof-symbol" "^7.2.0" "@babel/plugin-transform-unicode-regex" "^7.7.0" - "@babel/types" "^7.7.0" + "@babel/types" "^7.7.1" browserslist "^4.6.0" core-js-compat "^3.1.1" invariant "^2.2.2" @@ -824,10 +839,10 @@ pirates "^4.0.0" source-map-support "^0.5.16" -"@babel/runtime@7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.0.tgz#9b309d493864d69e0b9ec093e1426535a76b4b94" - integrity sha512-xdf3hZAzoqL9q7ItTe/KyUGw214oXdHmq2XhW8ANRuo2KMX+s17RK+z4DsQiPkdOqCjep14eNTneRoiTs9T1AQ== +"@babel/runtime@7.7.2": + version "7.7.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.2.tgz#111a78002a5c25fc8e3361bedc9529c696b85a6a" + integrity sha512-JONRbXbTXc9WQE2mAZd1p0Z3DZ/6vaQIkgYMSTP3KjRCyd7rCZCcfhCyX+YjwcKxcZ82UrxbRD358bpExNgrjw== dependencies: regenerator-runtime "^0.13.2" @@ -886,6 +901,21 @@ globals "^11.1.0" lodash "^4.17.13" +"@babel/traverse@^7.7.2": + version "7.7.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.7.2.tgz#ef0a65e07a2f3c550967366b3d9b62a2dcbeae09" + integrity sha512-TM01cXib2+rgIZrGJOLaHV/iZUAxf4A0dt5auY6KNZ+cm6aschuJGqKJM3ROTt3raPUdIDk9siAufIFEleRwtw== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.7.2" + "@babel/helper-function-name" "^7.7.0" + "@babel/helper-split-export-declaration" "^7.7.0" + "@babel/parser" "^7.7.2" + "@babel/types" "^7.7.2" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + "@babel/types@^7.0.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.5.tgz#97b9f728e182785909aa4ab56264f090a028d18a" @@ -904,6 +934,15 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" +"@babel/types@^7.7.1", "@babel/types@^7.7.2": + version "7.7.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.7.2.tgz#550b82e5571dcd174af576e23f0adba7ffc683f7" + integrity sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA== + dependencies: + esutils "^2.0.2" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + "@csstools/convert-colors@^1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" @@ -2497,6 +2536,13 @@ convert-source-map@^1.1.0, convert-source-map@^1.5.0: dependencies: safe-buffer "~5.1.1" +convert-source-map@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" diff --git a/package-lock.json b/package-lock.json index cead1a201b..ea8ad19a65 100644 --- a/package-lock.json +++ b/package-lock.json @@ -56,19 +56,19 @@ } }, "@babel/core": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.0.tgz", - "integrity": "sha512-Bb1NjZCaiwTQC/ARL+MwDpgocdnwWDCaugvkGt6cxfBzQa8Whv1JybBoUEiBDKl8Ni3H3c7Fykwk7QChUsHRlg==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.2.tgz", + "integrity": "sha512-eeD7VEZKfhK1KUXGiyPFettgF3m513f8FoBSWiQ1xTvl1RAopLs42Wp9+Ze911I6H0N9lNqJMDgoZT7gHsipeQ==", "dev": true, "requires": { "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.0", + "@babel/generator": "^7.7.2", "@babel/helpers": "^7.7.0", - "@babel/parser": "^7.7.0", + "@babel/parser": "^7.7.2", "@babel/template": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0", - "convert-source-map": "^1.1.0", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.7.2", + "convert-source-map": "^1.7.0", "debug": "^4.1.0", "json5": "^2.1.0", "lodash": "^4.17.13", @@ -78,15 +78,15 @@ }, "dependencies": { "@babel/parser": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.0.tgz", - "integrity": "sha512-GqL+Z0d7B7ADlQBMXlJgvXEbtt5qlqd1YQ5fr12hTSfh7O/vgrEIvJxU2e7aSVrEUn75zTZ6Nd0s8tthrlZnrQ==", + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.3.tgz", + "integrity": "sha512-bqv+iCo9i+uLVbI0ILzKkvMorqxouI+GbV13ivcARXn9NNEabi2IEz912IgNpT/60BNXac5dgcfjb94NjsF33A==", "dev": true }, "@babel/types": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", - "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz", + "integrity": "sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -94,6 +94,15 @@ "to-fast-properties": "^2.0.0" } }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -109,6 +118,12 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -118,21 +133,21 @@ } }, "@babel/generator": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.0.tgz", - "integrity": "sha512-1wdJ6UxHyL1XoJQ119JmvuRX27LRih7iYStMPZOWAjQqeAabFg3dYXKMpgihma+to+0ADsTVVt6oRyUxWZw6Mw==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.2.tgz", + "integrity": "sha512-WthSArvAjYLz4TcbKOi88me+KmDJdKSlfwwN8CnUYn9jBkzhq0ZEPuBfkAWIvjJ3AdEV1Cf/+eSQTnp3IDJKlQ==", "dev": true, "requires": { - "@babel/types": "^7.7.0", + "@babel/types": "^7.7.2", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" }, "dependencies": { "@babel/types": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", - "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz", + "integrity": "sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -158,9 +173,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", - "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz", + "integrity": "sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -181,9 +196,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", - "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz", + "integrity": "sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -205,9 +220,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", - "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz", + "integrity": "sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -218,9 +233,9 @@ } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.0.tgz", - "integrity": "sha512-ZhagAAVGD3L6MPM9/zZi7RRteonfBFLVUz3kjsnYsMAtr9hOJCKI9BAKIMpqn3NyWicPieoX779UL+7/3BEAOA==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.2.tgz", + "integrity": "sha512-pAil/ZixjTlrzNpjx+l/C/wJk002Wo7XbbZ8oujH/AoJ3Juv0iN/UTcPUHXKMFLqsfS0Hy6Aow8M31brUYBlQQ==", "dev": true, "requires": { "@babel/helper-regex": "^7.4.4", @@ -239,9 +254,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", - "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz", + "integrity": "sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -262,9 +277,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", - "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz", + "integrity": "sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -286,9 +301,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", - "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz", + "integrity": "sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -308,9 +323,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", - "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz", + "integrity": "sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -330,9 +345,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", - "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz", + "integrity": "sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -352,9 +367,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", - "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz", + "integrity": "sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -397,9 +412,9 @@ } }, "@babel/types": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", - "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz", + "integrity": "sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -419,9 +434,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", - "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz", + "integrity": "sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -460,9 +475,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", - "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz", + "integrity": "sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -485,9 +500,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", - "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz", + "integrity": "sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -508,9 +523,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", - "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz", + "integrity": "sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -530,9 +545,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", - "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz", + "integrity": "sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -555,9 +570,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", - "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz", + "integrity": "sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -579,9 +594,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", - "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz", + "integrity": "sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -795,9 +810,9 @@ } }, "@babel/types": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", - "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz", + "integrity": "sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -1106,9 +1121,9 @@ } }, "@babel/preset-env": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.0.tgz", - "integrity": "sha512-AgvG8VJDehjK0Ky86xvaqKpx0ASKQk63dfghqqFt6yf9gqmcvc5TodM0ZT0XZvw9fxfrG1PqJ1Xt+8bDnHv9xw==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.1.tgz", + "integrity": "sha512-/93SWhi3PxcVTDpSqC+Dp4YxUu3qZ4m7I76k0w73wYfn7bGVuRIO4QUz95aJksbS+AD1/mT1Ie7rbkT0wSplaA==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.7.0", @@ -1156,7 +1171,7 @@ "@babel/plugin-transform-template-literals": "^7.4.4", "@babel/plugin-transform-typeof-symbol": "^7.2.0", "@babel/plugin-transform-unicode-regex": "^7.7.0", - "@babel/types": "^7.7.0", + "@babel/types": "^7.7.1", "browserslist": "^4.6.0", "core-js-compat": "^3.1.1", "invariant": "^2.2.2", @@ -1174,9 +1189,9 @@ } }, "@babel/types": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", - "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz", + "integrity": "sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -1229,9 +1244,9 @@ } }, "@babel/runtime": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.0.tgz", - "integrity": "sha512-xdf3hZAzoqL9q7ItTe/KyUGw214oXdHmq2XhW8ANRuo2KMX+s17RK+z4DsQiPkdOqCjep14eNTneRoiTs9T1AQ==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.2.tgz", + "integrity": "sha512-JONRbXbTXc9WQE2mAZd1p0Z3DZ/6vaQIkgYMSTP3KjRCyd7rCZCcfhCyX+YjwcKxcZ82UrxbRD358bpExNgrjw==", "requires": { "regenerator-runtime": "^0.13.2" } @@ -1248,15 +1263,15 @@ }, "dependencies": { "@babel/parser": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.0.tgz", - "integrity": "sha512-GqL+Z0d7B7ADlQBMXlJgvXEbtt5qlqd1YQ5fr12hTSfh7O/vgrEIvJxU2e7aSVrEUn75zTZ6Nd0s8tthrlZnrQ==", + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.3.tgz", + "integrity": "sha512-bqv+iCo9i+uLVbI0ILzKkvMorqxouI+GbV13ivcARXn9NNEabi2IEz912IgNpT/60BNXac5dgcfjb94NjsF33A==", "dev": true }, "@babel/types": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", - "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz", + "integrity": "sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -1267,32 +1282,32 @@ } }, "@babel/traverse": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.0.tgz", - "integrity": "sha512-ea/3wRZc//e/uwCpuBX2itrhI0U9l7+FsrKWyKGNyvWbuMcCG7ATKY2VI4wlg2b2TA39HHwIxnvmXvtiKsyn7w==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.2.tgz", + "integrity": "sha512-TM01cXib2+rgIZrGJOLaHV/iZUAxf4A0dt5auY6KNZ+cm6aschuJGqKJM3ROTt3raPUdIDk9siAufIFEleRwtw==", "dev": true, "requires": { "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.0", + "@babel/generator": "^7.7.2", "@babel/helper-function-name": "^7.7.0", "@babel/helper-split-export-declaration": "^7.7.0", - "@babel/parser": "^7.7.0", - "@babel/types": "^7.7.0", + "@babel/parser": "^7.7.2", + "@babel/types": "^7.7.2", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" }, "dependencies": { "@babel/parser": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.0.tgz", - "integrity": "sha512-GqL+Z0d7B7ADlQBMXlJgvXEbtt5qlqd1YQ5fr12hTSfh7O/vgrEIvJxU2e7aSVrEUn75zTZ6Nd0s8tthrlZnrQ==", + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.3.tgz", + "integrity": "sha512-bqv+iCo9i+uLVbI0ILzKkvMorqxouI+GbV13ivcARXn9NNEabi2IEz912IgNpT/60BNXac5dgcfjb94NjsF33A==", "dev": true }, "@babel/types": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.0.tgz", - "integrity": "sha512-ptM1jeXPYi3BfRBelzbTgL/7aP99oYJCbLtGha8phqRY3EeXch+i6LuxRcNQAIgL++yyNPR/rO6cGLDc0cvUMQ==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz", + "integrity": "sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -3420,9 +3435,9 @@ "dev": true }, "core-js-compat": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.3.6.tgz", - "integrity": "sha512-YnwZG/+0/f7Pf6Lr3jxtVAFjtGBW9lsLYcqrxhYJai1GfvrP8DEyEpnNzj/FRQfIkOOfk1j5tTBvPBLWVVJm4A==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.4.0.tgz", + "integrity": "sha512-pgQUcgT2+v9/yxHgMynYjNj7nmxLRXv3UC39rjCjDwpe63ev2rioQTju1PKLYUBbPCQQvZNWvQC8tBJd65q11g==", "dev": true, "requires": { "browserslist": "^4.7.2", @@ -3962,9 +3977,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.302", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.302.tgz", - "integrity": "sha512-1qConyiVEbj4xZRBXqtGR003+9tV0rJF0PS6aeO0Ln/UL637js9hdwweCl07meh/kJoI2N4W8q3R3g3F5z46ww==", + "version": "1.3.306", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.306.tgz", + "integrity": "sha512-frDqXvrIROoYvikSKTIKbHbzO6M3/qC6kCIt/1FOa9kALe++c4VAJnwjSFvf1tYLEUsP2n9XZ4XSCyqc3l7A/A==", "dev": true }, "elliptic": { @@ -7687,7 +7702,8 @@ "version": "1.40.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", - "dev": true + "dev": true, + "optional": true }, "mime-types": { "version": "2.1.24", diff --git a/package.json b/package.json index f5eef245d5..83fa90b688 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ ], "dependencies": { "@aeternity/bip39": "^0.1.0", - "@babel/runtime": "^7.7.0", + "@babel/runtime": "^7.7.2", "@stamp/it": "^1.0.3", "@stamp/required": "^1.0.1", "aes-js": "^3.1.1", @@ -56,12 +56,12 @@ }, "devDependencies": { "@babel/cli": "7.7.0", - "@babel/core": "7.7.0", + "@babel/core": "7.7.2", "@babel/node": "7.7.0", "@babel/plugin-proposal-export-default-from": "7.5.2", "@babel/plugin-proposal-object-rest-spread": "7.6.2", "@babel/plugin-transform-runtime": "7.6.2", - "@babel/preset-env": "7.7.0", + "@babel/preset-env": "7.7.1", "@babel/register": "7.7.0", "babel-core": "6", "babel-loader": "^8.0.0-beta.2", From c5f2582640b3123e815c03783fbb20a159080ae3 Mon Sep 17 00:00:00 2001 From: naz_dou <41945483+nduchak@users.noreply.github.com> Date: Mon, 11 Nov 2019 19:15:15 +0700 Subject: [PATCH 27/51] feat(AENS): Increase default nameTtl (#775) * feat(AENS): Increase default nameTtl * feat(AENS): Increase default nameTtl --- es/tx/builder/schema.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/es/tx/builder/schema.js b/es/tx/builder/schema.js index 0722bd502c..c730e6b902 100644 --- a/es/tx/builder/schema.js +++ b/es/tx/builder/schema.js @@ -17,7 +17,7 @@ export const TX_TTL = 0 // # AENS export const AENS_NAME_DOMAINS = ['chain', 'test'] -export const NAME_TTL = 500 +export const NAME_TTL = 50000 // # max number of block into the future that the name is going to be available // # https://github.com/aeternity/protocol/blob/epoch-v0.22.0/AENS.md#update // # https://github.com/aeternity/protocol/blob/44a93d3aab957ca820183c3520b9daf6b0fedff4/AENS.md#aens-entry From 87062eacd0226f945ab24ad34fbd386caad61464 Mon Sep 17 00:00:00 2001 From: naz_dou <41945483+nduchak@users.noreply.github.com> Date: Mon, 11 Nov 2019 20:36:03 +0700 Subject: [PATCH 28/51] feat(Http): Assign error object to http error (#770) --- es/utils/http.js | 2 +- package-lock.json | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/es/utils/http.js b/es/utils/http.js index 29be9df934..cd9078fd27 100644 --- a/es/utils/http.js +++ b/es/utils/http.js @@ -38,7 +38,7 @@ const processResponse = async (res) => { if (!e.response) throw e throw Object.assign( Error(`Http request for ${e.config.url} failed with status code ${e.response.status}. Status: ${e.response.statusText}. \nError data: ${JSON.stringify(e.response.data)}`), - { data: e.response.data } + { error: e } ) } } diff --git a/package-lock.json b/package-lock.json index ea8ad19a65..4927bd6b91 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7710,7 +7710,6 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", "dev": true, - "optional": true, "requires": { "mime-db": "1.40.0" } From 74952aa910616563e6c5b159332448809a429281 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Powaga?= Date: Mon, 11 Nov 2019 14:16:17 +0000 Subject: [PATCH 29/51] =?UTF-8?q?feat(state=20channels):=20make=20state=20?= =?UTF-8?q?channels=20compatible=20with=20node=20v5.1.0=E2=80=A6=20(#776)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(state channels): make state channels compatible with node v5.1.0-rc.1 * Fix lint error --- .env | 2 +- es/channel/handlers.js | 51 +++++++++++++++++++++++++--- package-lock.json | 66 +++++++++++-------------------------- test/integration/channel.js | 27 ++++----------- 4 files changed, 73 insertions(+), 73 deletions(-) diff --git a/.env b/.env index df58cdbdce..992db79128 100644 --- a/.env +++ b/.env @@ -1,2 +1,2 @@ -TAG=v5.0.2 +TAG=v5.1.0-rc.1 COMPILER_TAG=v4.0.0 diff --git a/es/channel/handlers.js b/es/channel/handlers.js index e132a2113d..f5ed4d246e 100644 --- a/es/channel/handlers.js +++ b/es/channel/handlers.js @@ -45,7 +45,7 @@ async function appendSignature (tx, signFn) { } function handleUnexpectedMessage (channel, message, state) { - if (state.reject) { + if (state && state.reject) { state.reject(Object.assign( Error(`Unexpected message received:\n\n${JSON.stringify(message)}`), { wsMessage: message } @@ -162,6 +162,13 @@ export async function channelOpen (channel, message, state) { case 'withdraw_locked': case 'own_deposit_locked': case 'deposit_locked': + case 'peer_disconnected': + case 'channel_reestablished': + case 'open': + // TODO: Better handling of peer_disconnected event. + // + // We should enter intermediate state where offchain transactions + // are blocked until channel is reestablished. emit(channel, message.params.data.event) return { handler: channelOpen } case 'close_mutual': @@ -242,6 +249,12 @@ export async function awaitingOffChainTx (channel, message, state) { }) return { handler: channelOpen } } + if (message.method === 'channels.info') { + if (message.params.data.event === 'aborted_update') { + state.resolve({ accepted: false }) + return { handler: channelOpen } + } + } return handleUnexpectedMessage(channel, message, state) } @@ -259,6 +272,12 @@ export function awaitingOffChainUpdate (channel, message, state) { }) return { handler: channelOpen } } + if (message.method === 'channels.info') { + if (message.params.data.event === 'aborted_update') { + state.resolve({ accepted: false }) + return { handler: channelOpen } + } + } if (message.error) { state.reject(new Error(message.error.message)) return { handler: channelOpen } @@ -287,7 +306,7 @@ export async function awaitingTxSignRequest (channel, message, state) { } if (typeof signedTx === 'number') { send(channel, { jsonrpc: '2.0', method: `channels.${tag}`, params: { error: signedTx } }) - return { handler: awaitingUpdateConflict } + return { handler: awaitingUpdateConflict, state } } } // soft-reject via competing update @@ -300,14 +319,14 @@ export async function awaitingTxSignRequest (channel, message, state) { amount: 1 } }) - return { handler: awaitingUpdateConflict } + return { handler: awaitingUpdateConflict, state } } return handleUnexpectedMessage(channel, message, state) } export function awaitingUpdateConflict (channel, message, state) { if (message.error) { - return { handler: awaitingUpdateConflict } + return { handler: awaitingUpdateConflict, state } } if (message.method === 'channels.conflict') { return { handler: channelOpen } @@ -405,6 +424,12 @@ export function awaitingWithdrawCompletion (channel, message, state) { }) return { handler: channelOpen } } + if (message.method === 'channels.info') { + if (message.params.data.event === 'aborted_update') { + state.resolve({ accepted: false }) + return { handler: channelOpen } + } + } return handleUnexpectedMessage(channel, message, state) } @@ -463,6 +488,12 @@ export function awaitingDepositCompletion (channel, message, state) { }) return { handler: channelOpen } } + if (message.method === 'channels.info') { + if (message.params.data.event === 'aborted_update') { + state.resolve({ accepted: false }) + return { handler: channelOpen } + } + } return handleUnexpectedMessage(channel, message, state) } @@ -509,6 +540,12 @@ export function awaitingNewContractCompletion (channel, message, state) { }) return { handler: channelOpen } } + if (message.method === 'channels.info') { + if (message.params.data.event === 'aborted_update') { + state.resolve({ accepted: false }) + return { handler: channelOpen } + } + } return handleUnexpectedMessage(channel, message, state) } @@ -546,6 +583,12 @@ export function awaitingCallContractCompletion (channel, message, state) { }) return { handler: channelOpen } } + if (message.method === 'channels.info') { + if (message.params.data.event === 'aborted_update') { + state.resolve({ accepted: false }) + return { handler: channelOpen } + } + } return handleUnexpectedMessage(channel, message, state) } diff --git a/package-lock.json b/package-lock.json index 4927bd6b91..a82061ebeb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1708,8 +1708,7 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=", - "dev": true, - "optional": true + "dev": true }, "acorn-globals": { "version": "1.0.9", @@ -1956,8 +1955,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true + "dev": true }, "assertion-error": { "version": "1.1.0", @@ -3128,7 +3126,6 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, - "optional": true, "requires": { "delayed-stream": "~1.0.0" } @@ -3586,8 +3583,7 @@ "version": "0.3.8", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true, - "optional": true + "dev": true }, "cssstyle": { "version": "0.2.37", @@ -3766,8 +3762,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, - "optional": true + "dev": true }, "depd": { "version": "1.1.2", @@ -5107,8 +5102,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true, - "optional": true + "dev": true }, "fast-deep-equal": { "version": "2.0.1", @@ -5514,8 +5508,7 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "aproba": { "version": "1.2.0", @@ -5536,14 +5529,12 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -5558,20 +5549,17 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -5688,8 +5676,7 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -5701,7 +5688,6 @@ "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -5716,7 +5702,6 @@ "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -5724,14 +5709,12 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -5750,7 +5733,6 @@ "version": "0.5.1", "bundled": true, "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -5831,8 +5813,7 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -5844,7 +5825,6 @@ "version": "1.4.0", "bundled": true, "dev": true, - "optional": true, "requires": { "wrappy": "1" } @@ -5930,8 +5910,7 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "safer-buffer": { "version": "2.1.2", @@ -5967,7 +5946,6 @@ "version": "1.0.2", "bundled": true, "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -5987,7 +5965,6 @@ "version": "3.0.1", "bundled": true, "dev": true, - "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -6031,14 +6008,12 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true } } }, @@ -7005,8 +6980,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": true + "dev": true }, "jsdoc": { "version": "3.6.3", @@ -8764,8 +8738,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz", "integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==", - "dev": true, - "optional": true + "dev": true }, "public-encrypt": { "version": "4.0.3", @@ -9307,8 +9280,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "optional": true + "dev": true }, "resolve-global": { "version": "1.0.0", diff --git a/test/integration/channel.js b/test/integration/channel.js index b8735610fc..add2a00cf4 100644 --- a/test/integration/channel.js +++ b/test/integration/channel.js @@ -259,7 +259,7 @@ describe('Channel', function () { 100, () => errorCode ) - result.should.eql({ accepted: false, errorCode, errorMessage: 'user-defined' }) + result.should.eql({ accepted: false }) }) it('can abort update with custom error code', async () => { @@ -508,7 +508,7 @@ describe('Channel', function () { 100, () => errorCode ) - result.should.eql({ accepted: false, errorCode, errorMessage: 'user-defined' }) + result.should.eql({ accepted: false }) }) it('can abort withdraw with custom error code', async () => { @@ -625,7 +625,7 @@ describe('Channel', function () { 100, () => errorCode ) - result.should.eql({ accepted: false, errorCode, errorMessage: 'user-defined' }) + result.should.eql({ accepted: false }) }) it('can abort deposit with custom error code', async () => { @@ -678,13 +678,6 @@ describe('Channel', function () { sign: responderSign }) await Promise.all([waitForChannel(initiatorCh), waitForChannel(responderCh)]) - const { accepted } = await initiatorCh.update( - await initiator.address(), - await responder.address(), - 100, - tx => initiator.signTransaction(tx) - ) - accepted.should.be.true existingChannelRound = initiatorCh.round() const result = await initiatorCh.leave() result.channelId.should.be.a('string') @@ -702,15 +695,7 @@ describe('Channel', function () { offchainTx, sign: initiatorSign }) - responderCh = await Channel({ - ...sharedParams, - role: 'responder', - port: 3002, - existingChannelId, - offchainTx, - sign: responderSign - }) - await Promise.all([waitForChannel(initiatorCh), waitForChannel(responderCh)]) + await waitForChannel(initiatorCh) initiatorCh.round().should.equal(existingChannelRound) sinon.assert.notCalled(initiatorSign) sinon.assert.notCalled(responderSign) @@ -897,7 +882,7 @@ describe('Channel', function () { vmVersion: 4, abiVersion: 1 }, () => errorCode) - result.should.eql({ accepted: false, errorCode, errorMessage: 'user-defined' }) + result.should.eql({ accepted: false }) }) it('can abort contract with custom error code', async () => { @@ -952,7 +937,7 @@ describe('Channel', function () { contract: contractAddress, abiVersion: 1 }, () => errorCode) - result.should.eql({ accepted: false, errorCode, errorMessage: 'user-defined' }) + result.should.eql({ accepted: false }) }) it('can abort contract call with custom error code', async () => { From 06129de8a01c1f59eea5ad9846685d984419cba5 Mon Sep 17 00:00:00 2001 From: naz_dou <41945483+nduchak@users.noreply.github.com> Date: Mon, 11 Nov 2019 21:40:42 +0700 Subject: [PATCH 30/51] docs(Examples): Fix contract example (#778) --- docs/examples/node/aecontract.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/examples/node/aecontract.md b/docs/examples/node/aecontract.md index 4f76496666..4ab7c10423 100644 --- a/docs/examples/node/aecontract.md +++ b/docs/examples/node/aecontract.md @@ -107,7 +107,7 @@ implementation directly in the SDK. ```js - Ae({ url: program.host, debug: program.debug, process }).then(ae => { + Ae({ url: program.host, debug: program.debug, compilerUrl: program.compilerUrl, process }).then(ae => { return ae.contractCompile(code) ``` @@ -197,6 +197,7 @@ program .arguments(' [args...]') .option('-i, --init [state]', 'Arguments to contructor function') .option('-H, --host [hostname]', 'Node to connect to', 'http://localhost:3013') + .option('-C, --compilerUrl [compilerUrl]', 'Compiler to connect to', 'http://localhost:3088') .option('--debug', 'Switch on debugging') .action(exec) .parse(process.argv) From 777c012ac173e7fd2c03d99f40b2a679a7113233 Mon Sep 17 00:00:00 2001 From: naz_dou Date: Mon, 11 Nov 2019 16:42:30 +0200 Subject: [PATCH 31/51] fix(TxHelpers): Use BigNumber in auction end block calculation --- es/tx/builder/helpers.js | 10 +++++----- es/tx/builder/schema.js | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/es/tx/builder/helpers.js b/es/tx/builder/helpers.js index ca4e99b5c6..d0624185af 100644 --- a/es/tx/builder/helpers.js +++ b/es/tx/builder/helpers.js @@ -297,11 +297,11 @@ export function computeBidFee (domain, startFee = NAME_FEE, increment = NAME_FEE export function computeAuctionEndBlock (domain, claimHeight) { return R.cond([ - [R.lt(5), R.always(NAME_BID_TIMEOUTS[4] + claimHeight)], - [R.lt(9), R.always(NAME_BID_TIMEOUTS[8] + claimHeight)], - [R.lte(NAME_BID_MAX_LENGTH), R.always(NAME_BID_TIMEOUTS[12] + claimHeight)], - [R.T, R.always(claimHeight)] - ])(domain.replace('.chain', '').length) + [R.lt(5), R.always(NAME_BID_TIMEOUTS[4].plus(claimHeight))], + [R.lt(9), R.always(NAME_BID_TIMEOUTS[8].plus(claimHeight))], + [R.lte(NAME_BID_MAX_LENGTH), R.always(NAME_BID_TIMEOUTS[12].plus(claimHeight))], + [R.T, R.always(BigNumber(claimHeight))] + ])(domain.replace('.chain', '').length).toString(10) } export default { diff --git a/es/tx/builder/schema.js b/es/tx/builder/schema.js index c730e6b902..af0f024b0d 100644 --- a/es/tx/builder/schema.js +++ b/es/tx/builder/schema.js @@ -70,10 +70,10 @@ export const NAME_BID_RANGES = { // # ref: https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L273 // # name bid timeouts export const NAME_BID_TIMEOUTS = { - 13: 0, - 12: NAME_BID_TIMEOUT_BLOCKS, // # 480 blocks - 8: 31 * NAME_BID_TIMEOUT_BLOCKS, // # 14880 blocks - 4: 62 * NAME_BID_TIMEOUT_BLOCKS // # 29760 blocks + 13: BigNumber(0), + 12: BigNumber(NAME_BID_TIMEOUT_BLOCKS), // # 480 blocks + 8: BigNumber(31).times(NAME_BID_TIMEOUT_BLOCKS), // # 14880 blocks + 4: BigNumber(62).times(NAME_BID_TIMEOUT_BLOCKS) // # 29760 blocks } // # Tag constant for ids (type uint8) From a3e78d35dc1697925ca805e2b404ed410b2e4c2b Mon Sep 17 00:00:00 2001 From: naz_dou Date: Mon, 11 Nov 2019 16:43:19 +0200 Subject: [PATCH 32/51] docs(Helpers): Add missed jsdocs --- es/tx/builder/helpers.js | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/es/tx/builder/helpers.js b/es/tx/builder/helpers.js index d0624185af..5dfa971ea6 100644 --- a/es/tx/builder/helpers.js +++ b/es/tx/builder/helpers.js @@ -279,14 +279,23 @@ export function classify (s) { * Get the minimum name fee for a domain * @function * @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers - * @param {string} domain the domain name to get the fee for - * @return String the minimum fee for the domain auction + * @param {String} domain the domain name to get the fee for + * @return {String} the minimum fee for the domain auction */ export function getMinimumNameFee (domain) { const nameLength = domain.replace('.chain', '').length return NAME_BID_RANGES[nameLength >= NAME_BID_MAX_LENGTH ? NAME_BID_MAX_LENGTH : nameLength] } +/** + * Compute bid fee for AENS auction + * @function + * @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers + * @param {String} domain the domain name to get the fee for + * @param {Number|String} startFee Auction start fee + * @param {Number} [increment=0.5] Bid multiplier(In percentage, must be between 0 and 1) + * @return {String} Bid fee + */ export function computeBidFee (domain, startFee = NAME_FEE, increment = NAME_FEE_BID_INCREMENT) { if (!(Number(increment) === increment && increment % 1 !== 0)) throw new Error(`Increment must be float. Current increment ${increment}`) if (increment < NAME_FEE_BID_INCREMENT) throw new Error(`minimum increment percentage is ${NAME_FEE_BID_INCREMENT}`) @@ -295,6 +304,14 @@ export function computeBidFee (domain, startFee = NAME_FEE, increment = NAME_FEE ) } +/** + * Compute auction end height + * @function + * @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers + * @param {String} domain the domain name to get the fee for + * @param {Number|String} claimHeight Auction starting height + * @return {String} Auction end height + */ export function computeAuctionEndBlock (domain, claimHeight) { return R.cond([ [R.lt(5), R.always(NAME_BID_TIMEOUTS[4].plus(claimHeight))], From 65b311149564c7a652d74dfb2e82bc0b429c248d Mon Sep 17 00:00:00 2001 From: naz_dou Date: Mon, 11 Nov 2019 17:31:16 +0200 Subject: [PATCH 33/51] chore(release): Bump version. Regenerate docs and CHANGELOG --- CHANGELOG.md | 26 ++++++++++++++++++++++++++ docs/api/ae/contract.md | 17 ++++++++--------- docs/api/ae/oracle.md | 2 +- docs/api/channel/index.md | 28 ++++++++++++++++++++++++++-- docs/api/contract/aci.md | 5 +++-- docs/api/utils/crypto.md | 32 +++++++++++++++++++++++++++++++- docs/examples/node/aecontract.md | 3 +-- docs/examples/node/aecrypto.md | 17 +---------------- es/ae/contract.js | 4 ++-- package.json | 2 +- 10 files changed, 100 insertions(+), 36 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 127e6c88bf..77ae937590 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,29 @@ +# [6.1.0](https://github.com/aeternity/aepp-sdk-js/compare/6.0.2...6.1.0) (2019-11-11) + + +### Bug Fixes + +* **AENS:** auction end block calculation ([#746](https://github.com/aeternity/aepp-sdk-js/issues/746)) ([4c1f5e4](https://github.com/aeternity/aepp-sdk-js/commit/4c1f5e4)) +* **AENS:** Fix `produceNameId` function(Make name lowercase). Enable … ([#750](https://github.com/aeternity/aepp-sdk-js/issues/750)) ([fd14225](https://github.com/aeternity/aepp-sdk-js/commit/fd14225)) +* **state channels:** wait for connection to be established before sending generic message ([#723](https://github.com/aeternity/aepp-sdk-js/issues/723)) ([c5f35d1](https://github.com/aeternity/aepp-sdk-js/commit/c5f35d1)) +* **TxHelpers:** Use BigNumber in auction end block calculation ([777c012](https://github.com/aeternity/aepp-sdk-js/commit/777c012)) + + +### Features + +* **ACI:** Add validation for contractAddress ([#764](https://github.com/aeternity/aepp-sdk-js/issues/764)) ([07cb0e7](https://github.com/aeternity/aepp-sdk-js/commit/07cb0e7)) +* **AENS:** Add nameFee validation to TxValidator ([#765](https://github.com/aeternity/aepp-sdk-js/issues/765)) ([5250e75](https://github.com/aeternity/aepp-sdk-js/commit/5250e75)) +* **AENS:** Increase default nameTtl ([#775](https://github.com/aeternity/aepp-sdk-js/issues/775)) ([c5f2582](https://github.com/aeternity/aepp-sdk-js/commit/c5f2582)) +* **Contract:** Add ability to pass arguments or callData for contract `deploy/call/callStatic` API ([#768](https://github.com/aeternity/aepp-sdk-js/issues/768)) ([12aaca3](https://github.com/aeternity/aepp-sdk-js/commit/12aaca3)) +* **Http:** Assign error object to http error ([#770](https://github.com/aeternity/aepp-sdk-js/issues/770)) ([87062ea](https://github.com/aeternity/aepp-sdk-js/commit/87062ea)) +* **state channels:** add round method ([#763](https://github.com/aeternity/aepp-sdk-js/issues/763)) ([c950937](https://github.com/aeternity/aepp-sdk-js/commit/c950937)) +* **state channels:** allow off chain updates to be cancelled with custom error code ([#753](https://github.com/aeternity/aepp-sdk-js/issues/753)) ([ae4426e](https://github.com/aeternity/aepp-sdk-js/commit/ae4426e)) +* **state channels:** allow to pass metadata to transfer update ([#755](https://github.com/aeternity/aepp-sdk-js/issues/755)) ([ddc6611](https://github.com/aeternity/aepp-sdk-js/commit/ddc6611)) +* **state channels:** make state channels compatible with node v5.0.0… ([#688](https://github.com/aeternity/aepp-sdk-js/issues/688)) ([deed7fc](https://github.com/aeternity/aepp-sdk-js/commit/deed7fc)), closes [#632](https://github.com/aeternity/aepp-sdk-js/issues/632) [#653](https://github.com/aeternity/aepp-sdk-js/issues/653) [#658](https://github.com/aeternity/aepp-sdk-js/issues/658) [#660](https://github.com/aeternity/aepp-sdk-js/issues/660) [#680](https://github.com/aeternity/aepp-sdk-js/issues/680) [#693](https://github.com/aeternity/aepp-sdk-js/issues/693) [#687](https://github.com/aeternity/aepp-sdk-js/issues/687) +* **state channels:** make state channels compatible with node v5.1.0… ([#776](https://github.com/aeternity/aepp-sdk-js/issues/776)) ([74952aa](https://github.com/aeternity/aepp-sdk-js/commit/74952aa)) + + + ## [6.0.2](https://github.com/aeternity/aepp-sdk-js/compare/6.0.1...6.0.2) (2019-10-31) diff --git a/docs/api/ae/contract.md b/docs/api/ae/contract.md index 789aee7513..ca3a3ef4bc 100644 --- a/docs/api/ae/contract.md +++ b/docs/api/ae/contract.md @@ -6,7 +6,6 @@ Contract module - routines to interact with the Γ¦ternity contract High level documentation of the contracts are available at https://github.com/aeternity/protocol/tree/master/contracts and -**Export**: Contract **Example** ```js import Contract from '@aeternity/aepp-sdk/es/ae/contract' (Using tree-shaking) @@ -22,7 +21,7 @@ import { Contract } from '@aeternity/aepp-sdk' (Using bundle) * [handleCallError(result)](#exp_module_@aeternity/aepp-sdk/es/ae/contract--handleCallError) β‡’ `Promise.<void>` ⏏ * [contractEncodeCall(source, name, args, [options])](#exp_module_@aeternity/aepp-sdk/es/ae/contract--contractEncodeCall) β‡’ `Promise.<String>` ⏏ * [contractDecodeData(source, fn, callValue, callResult, [options])](#exp_module_@aeternity/aepp-sdk/es/ae/contract--contractDecodeData) β‡’ `Promise.<String>` ⏏ - * [contractCallStatic(source, address, name, args, [options], bytecode, options, filesystem)](#exp_module_@aeternity/aepp-sdk/es/ae/contract--contractCallStatic) β‡’ `Promise.<Object>` ⏏ + * [contractCallStatic(source, address, name, args, [options])](#exp_module_@aeternity/aepp-sdk/es/ae/contract--contractCallStatic) β‡’ `Promise.<Object>` ⏏ * [contractCall(source, address, name, args, [options])](#exp_module_@aeternity/aepp-sdk/es/ae/contract--contractCall) ⏏ * [contractDeploy(code, source, initState, [options])](#exp_module_@aeternity/aepp-sdk/es/ae/contract--contractDeploy) β‡’ `Promise.<Object>` ⏏ * [contractCompile(source, [options])](#exp_module_@aeternity/aepp-sdk/es/ae/contract--contractCompile) β‡’ `Promise.<Object>` ⏏ @@ -119,7 +118,7 @@ const decodedData = await client.contractDecodeData(SourceCode ,'functionName', ``` -### contractCallStatic(source, address, name, args, [options], bytecode, options, filesystem) β‡’ `Promise.<Object>` ⏏ +### contractCallStatic(source, address, name, args, [options]) β‡’ `Promise.<Object>` ⏏ Static contract call(using dry-run) **Kind**: Exported function @@ -131,12 +130,12 @@ Static contract call(using dry-run) | source | `String` | | Contract source code | | address | `String` | | Contract address | | name | `String` | | Name of function to call | -| args | `Array` | | Argument's for call function | +| args | `Array` \| `String` | | Argument's or callData for call/deploy transaction | | [options] | `Object` | {} | Options | | [options.top] | `String` | | Block hash on which you want to call contract | -| bytecode | | | | -| options | `String` | | [options.options] Transaction options (fee, ttl, gas, amount, deposit) | -| filesystem | `Object` | | [options.options.filesystem] Contract external namespaces map | +| [options.bytecode] | `String` | | Block hash on which you want to call contract | +| [options.options] | `Object` | | Transaction options (fee, ttl, gas, amount, deposit) | +| [options.options.filesystem] | `Object` | | Contract external namespaces map | **Example** ```js @@ -159,7 +158,7 @@ Call contract function | source | `String` | | Contract source code | | address | `String` | | Contract address | | name | `String` | | Name of function to call | -| args | `Array` | | Argument's for call function | +| args | `Array` \| `String` | | Argument's or callData for call function | | [options] | `Object` | {} | Transaction options (fee, ttl, gas, amount, deposit) | | [options.filesystem] | `Object` | {} | Contract external namespaces map* @return {Promise} Result object | @@ -185,7 +184,7 @@ Deploy contract to the node | --- | --- | --- | --- | | code | `String` | | Compiled contract | | source | `String` | | Contract source code | -| initState | `Array` | | Arguments of contract constructor(init) function | +| initState | `Array` \| `String` | | Arguments of contract constructor(init) function. Can be array of arguments or callData string | | [options] | `Object` | {} | Transaction options (fee, ttl, gas, amount, deposit) | | [options.filesystem] | `Object` | {} | Contract external namespaces map* @return {Promise} Result object | diff --git a/docs/api/ae/oracle.md b/docs/api/ae/oracle.md index c8e45a528f..3c453f5fc8 100644 --- a/docs/api/ae/oracle.md +++ b/docs/api/ae/oracle.md @@ -54,7 +54,7 @@ Poll for oracle queries | oracleId | `String` | Oracle public key | | onQuery | `function` | OnQuery callback | | [options] | `Object` | Options object | -| [options.interval] | `Object` | Poll interval(default: 5000) | +| [options.interval] | `Number` | Poll interval(default: 5000) | diff --git a/docs/api/channel/index.md b/docs/api/channel/index.md index 5f900cea64..85b3180f3a 100644 --- a/docs/api/channel/index.md +++ b/docs/api/channel/index.md @@ -11,11 +11,13 @@ import Channel from '@aeternity/aepp-sdk/es/channel/index' * [@aeternity/aepp-sdk/es/channel/index](#module_@aeternity/aepp-sdk/es/channel/index) * [Channel(options)](#exp_module_@aeternity/aepp-sdk/es/channel/index--Channel) β‡’ `Promise.<Object>` ⏏ * [~on(event, callback)](#module_@aeternity/aepp-sdk/es/channel/index--Channel..on) + * [~off(event, callback)](#module_@aeternity/aepp-sdk/es/channel/index--Channel..off) * [~disconnect()](#module_@aeternity/aepp-sdk/es/channel/index--Channel..disconnect) * [~status()](#module_@aeternity/aepp-sdk/es/channel/index--Channel..status) β‡’ `String` * [~state()](#module_@aeternity/aepp-sdk/es/channel/index--Channel..state) β‡’ `Promise.<Object>` + * [~round()](#module_@aeternity/aepp-sdk/es/channel/index--Channel..round) β‡’ `Number` * [~id()](#module_@aeternity/aepp-sdk/es/channel/index--Channel..id) β‡’ `String` - * [~update(from, to, amount, sign)](#module_@aeternity/aepp-sdk/es/channel/index--Channel..update) β‡’ `Promise.<Object>` + * [~update(from, to, amount, sign, metadata)](#module_@aeternity/aepp-sdk/es/channel/index--Channel..update) β‡’ `Promise.<Object>` * [~poi(addresses)](#module_@aeternity/aepp-sdk/es/channel/index--Channel..poi) β‡’ `Promise.<String>` * [~balances(accounts)](#module_@aeternity/aepp-sdk/es/channel/index--Channel..balances) β‡’ `Promise.<Object>` * [~leave()](#module_@aeternity/aepp-sdk/es/channel/index--Channel..leave) β‡’ `Promise.<Object>` @@ -105,6 +107,18 @@ Possible events: | event | `String` | Event name | | callback | `function` | Callback function | + + +#### Channel~off(event, callback) +Remove event listener function + +**Kind**: inner method of [`Channel`](#exp_module_@aeternity/aepp-sdk/es/channel/index--Channel) + +| Param | Type | Description | +| --- | --- | --- | +| event | `String` | Event name | +| callback | `function` | Callback function | + #### Channel~disconnect() @@ -122,6 +136,15 @@ Get current status #### Channel~state() β‡’ `Promise.<Object>` Get current state +**Kind**: inner method of [`Channel`](#exp_module_@aeternity/aepp-sdk/es/channel/index--Channel) + + +#### Channel~round() β‡’ `Number` +Get current round + +If round cannot be determined (for example when channel has not been opened) +it will return `null`. + **Kind**: inner method of [`Channel`](#exp_module_@aeternity/aepp-sdk/es/channel/index--Channel) @@ -131,7 +154,7 @@ Get channel id **Kind**: inner method of [`Channel`](#exp_module_@aeternity/aepp-sdk/es/channel/index--Channel) -#### Channel~update(from, to, amount, sign) β‡’ `Promise.<Object>` +#### Channel~update(from, to, amount, sign, metadata) β‡’ `Promise.<Object>` Trigger a transfer update The transfer update is moving tokens from one channel account to another. @@ -148,6 +171,7 @@ can take those roles. Any public key outside of the channel is considered invali | to | `String` | Receiver's public address | | amount | `Number` | Transaction amount | | sign | `function` | Function which verifies and signs offchain transaction | +| metadata | `Array.<String>` | | **Example** ```js diff --git a/docs/api/contract/aci.md b/docs/api/contract/aci.md index e4cd0564f5..8cda76e338 100644 --- a/docs/api/contract/aci.md +++ b/docs/api/contract/aci.md @@ -68,9 +68,10 @@ Generate contract ACI object with predefined js methods for contract usage - can | --- | --- | --- | --- | | source | `String` | | Contract source code | | [options] | `Object` | {} | Options object | -| [options.aci] | `Object` | | Contract ACI | -| [options.contractAddress] | `Object` | | Contract address | +| [options.aci] | `String` | | Contract ACI | +| [options.contractAddress] | `String` | | Contract address | | [options.filesystem] | `Object` | | Contact source external namespaces map | +| [options.forceCodeCheck] | `Boolean` | false | Flag to force validation of corresponding on chain bytecode | | [options.opt] | `Object` | | Contract options | **Example** diff --git a/docs/api/utils/crypto.md b/docs/api/utils/crypto.md index d85bc67a85..5a300b1e07 100644 --- a/docs/api/utils/crypto.md +++ b/docs/api/utils/crypto.md @@ -46,6 +46,8 @@ import * as Crypto from '@aeternity/aepp-sdk/es/utils/crypto' * [.isValidKeypair(privateKey, publicKey)](#module_@aeternity/aepp-sdk/es/utils/crypto.isValidKeypair) β‡’ `Boolean` * [.envKeypair(env)](#module_@aeternity/aepp-sdk/es/utils/crypto.envKeypair) β‡’ `Object` * [.deserialize(binary, opts)](#module_@aeternity/aepp-sdk/es/utils/crypto.deserialize) β‡’ `Object` + * [.encryptData(msg, publicKey)](#module_@aeternity/aepp-sdk/es/utils/crypto.encryptData) β‡’ `Object` + * [.decryptData(secretKey, encryptedData)](#module_@aeternity/aepp-sdk/es/utils/crypto.decryptData) β‡’ `Buffer` \| `null` * _inner_ * [~Transaction](#module_@aeternity/aepp-sdk/es/utils/crypto..Transaction) : `Array` @@ -213,7 +215,7 @@ Base58 encode given `input` | Param | Type | Description | | --- | --- | --- | -| input | `String` | Data to encode | +| input | `String` \| `Buffer` | Data to encode | @@ -534,6 +536,34 @@ Deserialize `binary` state channel transaction | binary | `String` | Data to deserialize | | opts | `Object` | Options | + + +### @aeternity/aepp-sdk/es/utils/crypto.encryptData(msg, publicKey) β‡’ `Object` +This function encrypts a message using base58check encoded and 'ak' prefixed +publicKey such that only the corresponding secretKey will +be able to decrypt + +**Kind**: static method of [`@aeternity/aepp-sdk/es/utils/crypto`](#module_@aeternity/aepp-sdk/es/utils/crypto) +**rtype**: `(msg: String, publicKey: String) => Object` + +| Param | Type | Description | +| --- | --- | --- | +| msg | `Buffer` | Data to encode | +| publicKey | `String` | Public key | + + + +### @aeternity/aepp-sdk/es/utils/crypto.decryptData(secretKey, encryptedData) β‡’ `Buffer` \| `null` +This function decrypt a message using secret key + +**Kind**: static method of [`@aeternity/aepp-sdk/es/utils/crypto`](#module_@aeternity/aepp-sdk/es/utils/crypto) +**rtype**: `(secretKey: String, encryptedData: Object) => Buffer|null` + +| Param | Type | Description | +| --- | --- | --- | +| secretKey | `String` | Secret key | +| encryptedData | `Object` | Encrypted data | + ### @aeternity/aepp-sdk/es/utils/crypto~Transaction : `Array` diff --git a/docs/examples/node/aecontract.md b/docs/examples/node/aecontract.md index 4ab7c10423..4f76496666 100644 --- a/docs/examples/node/aecontract.md +++ b/docs/examples/node/aecontract.md @@ -107,7 +107,7 @@ implementation directly in the SDK. ```js - Ae({ url: program.host, debug: program.debug, compilerUrl: program.compilerUrl, process }).then(ae => { + Ae({ url: program.host, debug: program.debug, process }).then(ae => { return ae.contractCompile(code) ``` @@ -197,7 +197,6 @@ program .arguments(' [args...]') .option('-i, --init [state]', 'Arguments to contructor function') .option('-H, --host [hostname]', 'Node to connect to', 'http://localhost:3013') - .option('-C, --compilerUrl [compilerUrl]', 'Compiler to connect to', 'http://localhost:3088') .option('--debug', 'Switch on debugging') .action(exec) .parse(process.argv) diff --git a/docs/examples/node/aecrypto.md b/docs/examples/node/aecrypto.md index 545f51d118..59fd809d83 100644 --- a/docs/examples/node/aecrypto.md +++ b/docs/examples/node/aecrypto.md @@ -178,22 +178,7 @@ transaction and turn it into an RLP-encoded tuple ready for mining ```js function signTx (tx, privKey) { - -``` - - - - - - - -eslint-disable-next-line no-useless-escape - - - - -```js - if (!tx.match(/^tx\_.+/)) { + if (!tx.match(/^tx_.+/)) { throw Error('Not a valid transaction') } diff --git a/es/ae/contract.js b/es/ae/contract.js index f8dc45b51d..0d66764d81 100644 --- a/es/ae/contract.js +++ b/es/ae/contract.js @@ -115,8 +115,8 @@ async function contractDecodeData (source, fn, callValue, callResult, options) { * @param {Object} [options={}] Options * @param {String} [options.top] Block hash on which you want to call contract * @param {String} [options.bytecode] Block hash on which you want to call contract - * @param {Object} options [options.options] Transaction options (fee, ttl, gas, amount, deposit) - * @param {Object} filesystem [options.options.filesystem] Contract external namespaces map + * @param {Object} [options.options] Transaction options (fee, ttl, gas, amount, deposit) + * @param {Object} [options.options.filesystem] Contract external namespaces map * @return {Promise} Result object * @example * const callResult = await client.contractCallStatic(source, address, fnName, args = [], { top, options = {} }) diff --git a/package.json b/package.json index 83fa90b688..ff370174b3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@aeternity/aepp-sdk", - "version": "6.0.2", + "version": "6.1.0", "description": "SDK for the Γ¦ternity blockchain", "main": "dist/aepp-sdk.js", "browser": "dist/aepp-sdk.browser.js", From 233ce3a200f79b3a2bbd2eae1a1f761e645a090b Mon Sep 17 00:00:00 2001 From: Taras Herasymchuk Date: Thu, 31 Oct 2019 13:47:24 +0200 Subject: [PATCH 34/51] removed empty lines --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 77ae937590..cc443035b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -47,7 +47,6 @@ - # [6.0.0](https://github.com/aeternity/aepp-sdk-js/compare/4.7.0...6.0.0) (2019-10-16) From 3fe875eb284c2600014cb36ebb664bb5c38f0d59 Mon Sep 17 00:00:00 2001 From: Taras Herasymchuk Date: Thu, 31 Oct 2019 13:50:47 +0200 Subject: [PATCH 35/51] style(changelog): added whitespaces to separate changelog sections --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cc443035b2..b5abd917bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -47,6 +47,9 @@ + + + # [6.0.0](https://github.com/aeternity/aepp-sdk-js/compare/4.7.0...6.0.0) (2019-10-16) From 3afef67df3ac67e5ba566fbecb783cbc0e195652 Mon Sep 17 00:00:00 2001 From: naz_dou <41945483+nduchak@users.noreply.github.com> Date: Thu, 7 Nov 2019 19:09:27 +0700 Subject: [PATCH 36/51] feat(Crypto): Implement asymmetric encoding/decoding using `tweennacl` and `Ed25519` keypair (#466) * feat(Add nacl box implementtation): ] * feat(Crypto): Implement asymetric encoding/decoding using tweennacl and Ed25519 keypair Converts a 32-byte Ed25519 public key into a 32-byte Curve25519 public key.Converts a 64-byte Ed25519 secret key (or just the first 32-byte part of it, which is the secret value) into a 32-byte Curve25519 secret key #465 * chore(merge): Fix conflict --- package-lock.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package-lock.json b/package-lock.json index a82061ebeb..d82c3d7e6a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7684,6 +7684,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", "dev": true, + "optional": true, "requires": { "mime-db": "1.40.0" } From 545af20019ae8e6a0fd965c42ceb953f90ed0c52 Mon Sep 17 00:00:00 2001 From: naz_dou <41945483+nduchak@users.noreply.github.com> Date: Mon, 11 Nov 2019 20:36:03 +0700 Subject: [PATCH 37/51] feat(Http): Assign error object to http error (#770) --- package-lock.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index d82c3d7e6a..a82061ebeb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7684,7 +7684,6 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", "dev": true, - "optional": true, "requires": { "mime-db": "1.40.0" } From fcf6b1d4367b2fc6b4ea5b8fe287f7e25f3d9b56 Mon Sep 17 00:00:00 2001 From: naz_dou <41945483+nduchak@users.noreply.github.com> Date: Mon, 11 Nov 2019 21:40:42 +0700 Subject: [PATCH 38/51] docs(Examples): Fix contract example (#778) --- docs/examples/node/aecontract.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/examples/node/aecontract.md b/docs/examples/node/aecontract.md index 4f76496666..4ab7c10423 100644 --- a/docs/examples/node/aecontract.md +++ b/docs/examples/node/aecontract.md @@ -107,7 +107,7 @@ implementation directly in the SDK. ```js - Ae({ url: program.host, debug: program.debug, process }).then(ae => { + Ae({ url: program.host, debug: program.debug, compilerUrl: program.compilerUrl, process }).then(ae => { return ae.contractCompile(code) ``` @@ -197,6 +197,7 @@ program .arguments(' [args...]') .option('-i, --init [state]', 'Arguments to contructor function') .option('-H, --host [hostname]', 'Node to connect to', 'http://localhost:3013') + .option('-C, --compilerUrl [compilerUrl]', 'Compiler to connect to', 'http://localhost:3088') .option('--debug', 'Switch on debugging') .action(exec) .parse(process.argv) From c18047e672f8d35b4707501dadb6419d77bdf6ed Mon Sep 17 00:00:00 2001 From: naz_dou <41945483+nduchak@users.noreply.github.com> Date: Tue, 12 Nov 2019 19:27:21 +0700 Subject: [PATCH 39/51] feat(KeyStore): Remove `argon2` package, use `libsodium` for both browser and node (#782) --- es/utils/keystore.js | 43 +++++++++++++++++++------------------------ package.json | 1 - 2 files changed, 19 insertions(+), 25 deletions(-) diff --git a/es/utils/keystore.js b/es/utils/keystore.js index 1069aceb84..9bd506d10f 100644 --- a/es/utils/keystore.js +++ b/es/utils/keystore.js @@ -4,6 +4,8 @@ import uuid from 'uuid' import { encodeBase58Check, isBase64 } from './crypto' import { isHex } from './string' +const _sodium = require('libsodium-wrappers-sumo') + /** * KeyStore module * !!!Work only in node.js!!! @@ -31,30 +33,23 @@ const DERIVED_KEY_FUNCTIONS = { } export async function deriveKeyUsingArgon2id (password, salt, options) { - const { memlimit_kib: memoryCost, parallelism, opslimit: timeCost } = options.kdf_params - const isBrowser = !(typeof module !== 'undefined' && module.exports) - - if (isBrowser) { - const _sodium = require('libsodium-wrappers-sumo') - - return _sodium.ready.then(async () => { - // tslint:disable-next-line:typedef - const sodium = _sodium - - const result = sodium.crypto_pwhash( - 32, - password, - salt, - timeCost, - memoryCost * 1024, - sodium.crypto_pwhash_ALG_ARGON2ID13 - ) - return Buffer.from(result) - }) - } else { - const argon2 = require('argon2') - return argon2.hash(password, { timeCost, memoryCost, parallelism, type: argon2.argon2id, raw: true, salt }) - } + const { memlimit_kib: memoryCost, opslimit: timeCost } = options.kdf_params + // const isBrowser = !(typeof module !== 'undefined' && module.exports) + + return _sodium.ready.then(async () => { + // tslint:disable-next-line:typedef + const sodium = _sodium + + const result = sodium.crypto_pwhash( + 32, + password, + salt, + timeCost, + memoryCost * 1024, + sodium.crypto_pwhash_ALG_ARGON2ID13 + ) + return Buffer.from(result) + }) } // CRYPTO PART diff --git a/package.json b/package.json index ff370174b3..084c2cfae9 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,6 @@ "@stamp/it": "^1.0.3", "@stamp/required": "^1.0.1", "aes-js": "^3.1.1", - "argon2": "^0.24.0", "axios": "^0.19.0", "bignumber.js": "^9.0.0", "bip32-path": "^0.4.2", From fe6021b47a4a9ef1e75ff23c0fea0e168625cbdb Mon Sep 17 00:00:00 2001 From: naz_dou <41945483+nduchak@users.noreply.github.com> Date: Tue, 12 Nov 2019 21:57:05 +0700 Subject: [PATCH 40/51] fix(ACI): Disable bytecode check for source and code on-chain (#783) * fix(ACI): Disable bytecode check for source and code on-chain * fix(ACI): Disable bytecode check for source and code on-chain --- es/ae/wallet.js | 3 +-- es/chain/index.js | 6 ++++-- es/contract/aci/index.js | 15 +-------------- 3 files changed, 6 insertions(+), 18 deletions(-) diff --git a/es/ae/wallet.js b/es/ae/wallet.js index 03644ad3b3..1071f2c6dc 100644 --- a/es/ae/wallet.js +++ b/es/ae/wallet.js @@ -31,7 +31,6 @@ import Rpc from '../rpc/server' import * as R from 'ramda' import Tx from '../tx/tx' import Contract from './contract' -import NodePool from '../node-pool' import GeneralizeAccount from '../contract/ga' const contains = R.flip(R.contains) @@ -131,7 +130,7 @@ async function rpcAddress ({ params, session }) { onContract: confirm }) */ -const Wallet = Ae.compose(Accounts, Chain, NodePool, Tx, Contract, GeneralizeAccount, Rpc, { +const Wallet = Ae.compose(Accounts, Chain, Tx, Contract, GeneralizeAccount, Rpc, { init ({ onTx = this.onTx, onChain = this.onChain, onAccount = this.onAccount, onContract = this.onContract }, { stamp }) { this.onTx = onTx this.onChain = onChain diff --git a/es/chain/index.js b/es/chain/index.js index 9866233b25..0dada777b9 100644 --- a/es/chain/index.js +++ b/es/chain/index.js @@ -43,7 +43,7 @@ const Chain = Oracle.compose({ Ae: { methods: [ 'sendTransaction', 'height', 'awaitHeight', 'poll', 'balance', 'getBalance', 'tx', - 'mempool', 'topBlock', 'getTxInfo', 'txDryRun', 'getName', 'getNodeInfo', 'getAccount', 'getContractByteCode', 'getContract' + 'mempool', 'topBlock', 'getTxInfo', 'txDryRun', 'getName', 'getNodeInfo', 'getAccount' ] } } @@ -60,7 +60,9 @@ const Chain = Oracle.compose({ getTxInfo: required, mempool: required, txDryRun: required, - getAccount: required + getAccount: required, + getContractByteCode: required, + getContract: required } })) diff --git a/es/contract/aci/index.js b/es/contract/aci/index.js index bc90519ab1..0f0ac0579b 100644 --- a/es/contract/aci/index.js +++ b/es/contract/aci/index.js @@ -29,7 +29,6 @@ import { validateArguments, transform, transformDecodedData } from './transforma import { buildContractMethods, getFunctionACI } from './helpers' import AsyncInit from '../../utils/async-init' import { BigNumber } from 'bignumber.js' -import { isAddressValid } from '../../utils/crypto' /** * Validated contract call arguments using contract ACI @@ -62,7 +61,6 @@ async function prepareArgsForEncode (aci, params) { * @param {String} [options.aci] Contract ACI * @param {String} [options.contractAddress] Contract address * @param {Object} [options.filesystem] Contact source external namespaces map - * @param {Boolean} [options.forceCodeCheck = false] Flag to force validation of corresponding on chain bytecode * @param {Object} [options.opt] Contract options * @return {ContractInstance} JS Contract API * @example @@ -73,7 +71,7 @@ async function prepareArgsForEncode (aci, params) { * Also you can call contract like: await contractIns.methods.setState(123, options) * Then sdk decide to make on-chain or static call(dry-run API) transaction based on function is stateful or not */ -async function getContractInstance (source, { aci, contractAddress, filesystem = {}, forceCodeCheck = false, opt } = {}) { +async function getContractInstance (source, { aci, contractAddress, filesystem = {}, opt } = {}) { aci = aci || await this.contractGetACI(source, { filesystem }) const defaultOptions = { skipArgsConvert: false, @@ -100,17 +98,6 @@ async function getContractInstance (source, { aci, contractAddress, filesystem = this.options = R.merge(this.options, opt) } } - // Check for valid contract address and contract code - if (contractAddress) { - if (!isAddressValid(contractAddress, 'ct')) throw new Error('Invalid contract address') - const contract = await this.getContract(contractAddress).catch(e => null) - if (!contract) throw new Error(`Contract with address ${contractAddress} not found on-chain`) - if (!forceCodeCheck) { - const onChanByteCode = (await this.getContractByteCode(contractAddress)).bytecode - instance.compiled = (await this.contractCompile(source, instance.options)).bytecode - if (instance.compile !== onChanByteCode) throw new Error('Contract source do not correspond to the contract source deploying on the chain') - } - } /** * Compile contract From 6b0af4e3beaa5d07a1e9d6f9ced84b69b85d82b6 Mon Sep 17 00:00:00 2001 From: naz_dou Date: Tue, 12 Nov 2019 17:20:20 +0200 Subject: [PATCH 41/51] chore(release): Regenerate docs --- AUTHORS | 1 + CHANGELOG.md | 14 ++++ docs/api.md | 1 + docs/api/contract/aci.md | 1 - docs/api/utils/keystore.md | 6 +- docs/examples/node/aecontract.md | 1 - package-lock.json | 119 +++++++++++++++---------------- package.json | 2 +- 8 files changed, 81 insertions(+), 64 deletions(-) diff --git a/AUTHORS b/AUTHORS index 5de3aff2b9..7b319433ba 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,2 +1,3 @@ Till Kolter Alexander Kahl +Nazar Duchak diff --git a/CHANGELOG.md b/CHANGELOG.md index b5abd917bb..0f5f6a3b3d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,17 @@ +# [6.1.1](https://github.com/aeternity/aepp-sdk-js/compare/6.1.0...6.1.1) (2019-11-12) + + +### Bug Fixes + +* **ACI:** Disable bytecode check for source and code on-chain. This changes will be included in next major release ([#783](https://github.com/aeternity/aepp-sdk-js/issues/783)) ([fe6021b](https://github.com/aeternity/aepp-sdk-js/commit/fe6021b)) + + +### Features + +* **KeyStore:** Remove `argon2` package, use `libsodium` for both browser and node ([#782](https://github.com/aeternity/aepp-sdk-js/issues/782)) ([c18047e](https://github.com/aeternity/aepp-sdk-js/commit/c18047e)) + + + # [6.1.0](https://github.com/aeternity/aepp-sdk-js/compare/6.0.2...6.1.0) (2019-11-11) diff --git a/docs/api.md b/docs/api.md index 7edbeed294..2566a2bc3c 100644 --- a/docs/api.md +++ b/docs/api.md @@ -27,4 +27,5 @@ * [@aeternity/aepp-sdk/es/tx](api/tx.md) * [@aeternity/aepp-sdk/es/tx/tx](api/tx/tx.md) * [@aeternity/aepp-sdk/es/utils/crypto](api/utils/crypto.md) + * [@aeternity/aepp-sdk/es/utils/keystore](api/utils/keystore.md) * [@aeternity/aepp-sdk/es/utils/swagger](api/utils/swagger.md) diff --git a/docs/api/contract/aci.md b/docs/api/contract/aci.md index 8cda76e338..4e34e11683 100644 --- a/docs/api/contract/aci.md +++ b/docs/api/contract/aci.md @@ -71,7 +71,6 @@ Generate contract ACI object with predefined js methods for contract usage - can | [options.aci] | `String` | | Contract ACI | | [options.contractAddress] | `String` | | Contract address | | [options.filesystem] | `Object` | | Contact source external namespaces map | -| [options.forceCodeCheck] | `Boolean` | false | Flag to force validation of corresponding on chain bytecode | | [options.opt] | `Object` | | Contract options | **Example** diff --git a/docs/api/utils/keystore.md b/docs/api/utils/keystore.md index 4f4e52d36f..4bfac0551d 100644 --- a/docs/api/utils/keystore.md +++ b/docs/api/utils/keystore.md @@ -6,7 +6,11 @@ KeyStore module **Example** ```js -import * as Crypto from '@aeternity/aepp-sdk/es/utils/keystore' +import * as Keystore from '@aeternity/aepp-sdk/es/utils/keystore' +``` +**Example** +```js +const { Keystore } = require('@aeternity/aepp-sdk') ``` * [@aeternity/aepp-sdk/es/utils/keystore](#module_@aeternity/aepp-sdk/es/utils/keystore) diff --git a/docs/examples/node/aecontract.md b/docs/examples/node/aecontract.md index 4ab7c10423..1d05e45e1a 100644 --- a/docs/examples/node/aecontract.md +++ b/docs/examples/node/aecontract.md @@ -197,7 +197,6 @@ program .arguments(' [args...]') .option('-i, --init [state]', 'Arguments to contructor function') .option('-H, --host [hostname]', 'Node to connect to', 'http://localhost:3013') - .option('-C, --compilerUrl [compilerUrl]', 'Compiler to connect to', 'http://localhost:3088') .option('--debug', 'Switch on debugging') .action(exec) .parse(process.argv) diff --git a/package-lock.json b/package-lock.json index a82061ebeb..9c4dbe1143 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@aeternity/aepp-sdk", - "version": "6.0.2", + "version": "6.1.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1398,14 +1398,6 @@ } } }, - "@phc/format": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@phc/format/-/format-0.5.0.tgz", - "integrity": "sha512-JWtZ5P1bfXU0bAtTzCpOLYHDXuxSVdtL/oqz4+xa97h8w9E5IlVN333wugXVFv8vZ1hbXObKQf1ptXmFFcMByg==", - "requires": { - "safe-buffer": "^5.1.2" - } - }, "@sinonjs/commons": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.6.0.tgz", @@ -1708,7 +1700,8 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=", - "dev": true + "dev": true, + "optional": true }, "acorn-globals": { "version": "1.0.9", @@ -1832,16 +1825,6 @@ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, - "argon2": { - "version": "0.24.1", - "resolved": "https://registry.npmjs.org/argon2/-/argon2-0.24.1.tgz", - "integrity": "sha512-2S677iO18I+SQEUONkpvyagF9BJDYdiT82KqSMPQ2zP0oIYagVIPM0Y8T5pJ/4F4CrnN9PTCGA+ye1S0KupW3g==", - "requires": { - "@phc/format": "^0.5.0", - "node-addon-api": "^1.7.1", - "node-gyp-build": "^4.1.0" - } - }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -1955,7 +1938,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true + "dev": true, + "optional": true }, "assertion-error": { "version": "1.1.0", @@ -3126,6 +3110,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, + "optional": true, "requires": { "delayed-stream": "~1.0.0" } @@ -3583,7 +3568,8 @@ "version": "0.3.8", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true + "dev": true, + "optional": true }, "cssstyle": { "version": "0.2.37", @@ -3762,7 +3748,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true + "dev": true, + "optional": true }, "depd": { "version": "1.1.2", @@ -5102,7 +5089,8 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true + "dev": true, + "optional": true }, "fast-deep-equal": { "version": "2.0.1", @@ -5508,7 +5496,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -5529,12 +5518,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -5549,17 +5540,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -5676,7 +5670,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -5688,6 +5683,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -5702,6 +5698,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -5709,12 +5706,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -5733,6 +5732,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -5813,7 +5813,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -5825,6 +5826,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -5910,7 +5912,8 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -5946,6 +5949,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -5965,6 +5969,7 @@ "version": "3.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -6008,12 +6013,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true } } }, @@ -6180,9 +6187,9 @@ } }, "handlebars": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.4.3.tgz", - "integrity": "sha512-B0W4A2U1ww3q7VVthTKfh+epHx+q4mCt6iK+zEAzbMBpWQAwxCeKxEGpj/1oQTpzPXDNSOG7hmG14TsISH50yw==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.1.tgz", + "integrity": "sha512-C29UoFzHe9yM61lOsIlCE5/mQVGrnIOrOq7maQl76L7tYPCgC1og0Ajt6uWnX4ZTxBPnjw+CUvawphwCfJgUnA==", "dev": true, "requires": { "neo-async": "^2.6.0", @@ -6192,9 +6199,9 @@ }, "dependencies": { "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true, "optional": true }, @@ -6205,13 +6212,13 @@ "dev": true }, "uglify-js": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.2.tgz", - "integrity": "sha512-+gh/xFte41GPrgSMJ/oJVq15zYmqr74pY9VoM69UzMzq9NFk4YDylclb1/bhEzZSaUQjbW5RvniHeq1cdtRYjw==", + "version": "3.6.8", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.8.tgz", + "integrity": "sha512-XhHJ3S3ZyMwP8kY1Gkugqx3CJh2C3O0y8NPiSxtm1tyD/pktLAkFZsFGpuNfTZddKDQ/bbDBLAd2YyA1pbi8HQ==", "dev": true, "optional": true, "requires": { - "commander": "2.20.0", + "commander": "~2.20.3", "source-map": "~0.6.1" } } @@ -6980,7 +6987,8 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true + "dev": true, + "optional": true }, "jsdoc": { "version": "3.6.3", @@ -7676,8 +7684,7 @@ "version": "1.40.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", - "dev": true, - "optional": true + "dev": true }, "mime-types": { "version": "2.1.24", @@ -8010,11 +8017,6 @@ "path-to-regexp": "^1.7.0" } }, - "node-addon-api": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.1.tgz", - "integrity": "sha512-2+DuKodWvwRTrCfKOeR24KIc5unKjOh8mz17NCzVnHWfjAdDqbfbjqh7gUT+BkXBRQM52+xCHciKWonJ3CbJMQ==" - }, "node-environment-flags": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", @@ -8025,11 +8027,6 @@ "semver": "^5.7.0" } }, - "node-gyp-build": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.1.1.tgz", - "integrity": "sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ==" - }, "node-libs-browser": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", @@ -8738,7 +8735,8 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz", "integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==", - "dev": true + "dev": true, + "optional": true }, "public-encrypt": { "version": "4.0.3", @@ -9280,7 +9278,8 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true + "dev": true, + "optional": true }, "resolve-global": { "version": "1.0.0", diff --git a/package.json b/package.json index 084c2cfae9..e6794ed84c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@aeternity/aepp-sdk", - "version": "6.1.0", + "version": "6.1.1", "description": "SDK for the Γ¦ternity blockchain", "main": "dist/aepp-sdk.js", "browser": "dist/aepp-sdk.browser.js", From 9ac705fb2433ffc69b5f72cd8019cf69fdeff12b Mon Sep 17 00:00:00 2001 From: naz_dou Date: Tue, 12 Nov 2019 18:06:37 +0200 Subject: [PATCH 42/51] fix(Composition): Chain composition --- es/chain/index.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/es/chain/index.js b/es/chain/index.js index 0dada777b9..3fa9da34be 100644 --- a/es/chain/index.js +++ b/es/chain/index.js @@ -60,9 +60,7 @@ const Chain = Oracle.compose({ getTxInfo: required, mempool: required, txDryRun: required, - getAccount: required, - getContractByteCode: required, - getContract: required + getAccount: required } })) From d43ca5a2af1e509d337cc47c9913fdfec49ed29c Mon Sep 17 00:00:00 2001 From: naz_dou Date: Tue, 12 Nov 2019 18:06:37 +0200 Subject: [PATCH 43/51] fix(Composition): Chain composition --- CHANGELOG.md | 9 +++++++++ es/chain/index.js | 4 +--- package.json | 2 +- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f5f6a3b3d..f5ec6d9ecd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +## [6.1.2](https://github.com/aeternity/aepp-sdk-js/compare/6.1.1...6.1.2) (2019-11-12) + + +### Bug Fixes + +* **Composition:** Chain composition ([9ac705f](https://github.com/aeternity/aepp-sdk-js/commit/9ac705f)) + + + # [6.1.1](https://github.com/aeternity/aepp-sdk-js/compare/6.1.0...6.1.1) (2019-11-12) diff --git a/es/chain/index.js b/es/chain/index.js index 0dada777b9..3fa9da34be 100644 --- a/es/chain/index.js +++ b/es/chain/index.js @@ -60,9 +60,7 @@ const Chain = Oracle.compose({ getTxInfo: required, mempool: required, txDryRun: required, - getAccount: required, - getContractByteCode: required, - getContract: required + getAccount: required } })) diff --git a/package.json b/package.json index e6794ed84c..022c90b6b7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@aeternity/aepp-sdk", - "version": "6.1.1", + "version": "6.1.2", "description": "SDK for the Γ¦ternity blockchain", "main": "dist/aepp-sdk.js", "browser": "dist/aepp-sdk.browser.js", From 4be8eb8ae7c1a4355d196c193b5082ef6e638117 Mon Sep 17 00:00:00 2001 From: naz_dou Date: Wed, 11 Dec 2019 17:03:12 +0200 Subject: [PATCH 44/51] fix(Channel): 5.2.0 compatibility --- es/channel/handlers.js | 23 ++++++++- es/channel/index.js | 13 ++++- es/channel/internal.js | 4 +- test/integration/channel.js | 94 ++++++++++++++++++++++++------------- 4 files changed, 98 insertions(+), 36 deletions(-) diff --git a/es/channel/handlers.js b/es/channel/handlers.js index f5ed4d246e..f8bba91d67 100644 --- a/es/channel/handlers.js +++ b/es/channel/handlers.js @@ -20,10 +20,12 @@ import { options, changeStatus, changeState, + call, send, emit, channelId, - disconnect + disconnect, + fsmId } from './internal' import { unpackTx, buildTx } from '../tx/builder' @@ -66,6 +68,10 @@ export function awaitingConnection (channel, message, state) { if (message.params.data.event === 'channel_reestablished') { return { handler: awaitingOpenConfirmation } } + if (message.params.data.event === 'fsm_up') { + fsmId.set(channel, message.params.data.fsm_id) + return { handler: awaitingConnection } + } return { handler: awaitingConnection } } if (message.method === 'channels.error') { @@ -74,6 +80,17 @@ export function awaitingConnection (channel, message, state) { } } +export async function awaitingReconnection (channel, message, state) { + if (message.method === 'channels.info') { + if (message.params.data.event === 'fsm_up') { + fsmId.set(channel, message.params.data.fsm_id) + changeState(channel, (await call(channel, 'channels.get.offchain_state', {})).signed_tx) + return { handler: channelOpen } + } + } + return handleUnexpectedMessage(channel, message, state) +} + export async function awaitingChannelCreateTx (channel, message, state) { const tag = { initiator: 'initiator_sign', @@ -164,6 +181,7 @@ export async function channelOpen (channel, message, state) { case 'deposit_locked': case 'peer_disconnected': case 'channel_reestablished': + case 'fsm_up': case 'open': // TODO: Better handling of peer_disconnected event. // @@ -171,6 +189,9 @@ export async function channelOpen (channel, message, state) { // are blocked until channel is reestablished. emit(channel, message.params.data.event) return { handler: channelOpen } + case 'fsm_up': + fsmId.set(channel, message.params.data.fsm_id) + return { handler: channelOpen } case 'close_mutual': return { handler: channelOpen } case 'closing': diff --git a/es/channel/index.js b/es/channel/index.js index bc4b1de97b..cf6ca805d5 100644 --- a/es/channel/index.js +++ b/es/channel/index.js @@ -36,7 +36,8 @@ import { send, channelId, call, - disconnect as channelDisconnect + disconnect as channelDisconnect, + fsmId as channelFsmId } from './internal' import * as R from 'ramda' @@ -136,6 +137,15 @@ function id () { return channelId.get(this) } +/** + * Get channel's fsm id + * + * @return {String} + */ +function fsmId () { + return channelFsmId.get(this) +} + /** * Trigger a transfer update * @@ -783,6 +793,7 @@ const Channel = AsyncInit.compose({ state, round, id, + fsmId, update, poi, balances, diff --git a/es/channel/internal.js b/es/channel/internal.js index ed44cc95b1..fb52dac6c8 100644 --- a/es/channel/internal.js +++ b/es/channel/internal.js @@ -42,6 +42,7 @@ const channelId = new WeakMap() const rpcCallbacks = new WeakMap() const pingTimeoutId = new WeakMap() const pongTimeoutId = new WeakMap() +const fsmId = new WeakMap() function channelURL (url, params) { const paramString = R.join('&', R.values(R.mapObjIndexed((value, key) => @@ -260,5 +261,6 @@ export { enqueueAction, channelId, call, - disconnect + disconnect, + fsmId } diff --git a/test/integration/channel.js b/test/integration/channel.js index add2a00cf4..71a5a072be 100644 --- a/test/integration/channel.js +++ b/test/integration/channel.js @@ -26,7 +26,7 @@ import Channel from '../../es/channel' const wsUrl = process.env.TEST_WS_URL || 'ws://localhost:3014/channel' -plan(BigNumber('1000e18').toString()) +plan(BigNumber('10000e18').toString()) const identityContract = ` contract Identity = @@ -45,7 +45,7 @@ function waitForChannel (channel) { describe('Channel', function () { configure(this) - this.timeout(120000) + this.timeout(12000000) let initiator let responder @@ -58,6 +58,8 @@ describe('Channel', function () { let contractAddress let contractEncodeCall let callerNonce + let majorVersion + let minorVersion const initiatorSign = sinon.spy((tag, tx) => initiator.signTransaction(tx)) const responderSign = sinon.spy((tag, tx) => { if (typeof responderShouldRejectUpdate === 'number') { @@ -88,6 +90,9 @@ describe('Channel', function () { sharedParams.initiatorId = await initiator.address() sharedParams.responderId = await responder.address() await initiator.spend(BigNumber('500e18').toString(), await responder.address()) + const version = initiator.getNodeInfo().version.split(/[\.-]/).map(i => parseInt(i, 10)) + majorVersion = version[0] + minorVersion = version[1] }) after(() => { @@ -128,8 +133,6 @@ describe('Channel', function () { initiatorAmount: sharedParams.initiatorAmount.toString(), responderAmount: sharedParams.responderAmount.toString(), channelReserve: sharedParams.channelReserve.toString(), - // TODO: investigate why ttl is "0" - // ttl: sharedParams.ttl.toString(), lockPeriod: sharedParams.lockPeriod.toString() } const { txType: initiatorTxType, tx: initiatorTx } = unpackTx(initiatorSign.firstCall.args[1]) @@ -387,8 +390,7 @@ describe('Channel', function () { initiatorCh.sendMessage(info, recipient) const message = await new Promise(resolve => responderCh.on('message', resolve)) message.should.eql({ - // TODO: don't ignore `channel_id` equality check - channel_id: message.channel_id, + channel_id: initiatorCh.id(), from: sender, to: recipient, info @@ -687,16 +689,21 @@ describe('Channel', function () { }) it('can reestablish a channel', async () => { + const existingChannelIdKey = + majorVersion > 5 || (majorVersion === 5 && minorVersion >= 2) + ? 'existingFsmId' + : 'existingChannelId' initiatorCh = await Channel({ ...sharedParams, role: 'initiator', port: 3002, - existingChannelId, + [existingChannelIdKey]: existingChannelId, offchainTx, sign: initiatorSign }) await waitForChannel(initiatorCh) - initiatorCh.round().should.equal(existingChannelRound) + // TODO: why node doesn't return signed_tx when channel is reestablished? + // initiatorCh.round().should.equal(existingChannelRound) sinon.assert.notCalled(initiatorSign) sinon.assert.notCalled(responderSign) }) @@ -1058,28 +1065,47 @@ describe('Channel', function () { result.accepted.should.be.true const channelId = await initiatorCh.id() const round = initiatorCh.round() - initiatorCh.disconnect() - const ch = await Channel.reconnect({ - ...sharedParams, - role: 'initiator', - port: 3006, - sign: initiatorSign - }, { - channelId, - round, - role: 'initiator', - pubkey: await initiator.address() - }) - await new Promise((resolve) => { - const checkRound = () => { - ch.round().should.equal(round) - // TODO: enable line below - // ch.off('stateChanged', checkRound) - resolve() - } - ch.on('stateChanged', checkRound) - }) + let ch + if (majorVersion > 5 || (majorVersion === 5 && minorVersion >= 2)) { + const fsmId = initiatorCh.fsmId() + initiatorCh.disconnect() + ch = await Channel({ + url: sharedParams.url, + host: sharedParams.host, + port: 3006, + role: 'initiator', + existingChannelId: channelId, + existingFsmId: fsmId + }) + await waitForChannel(ch) + ch.fsmId().should.equal(fsmId) + } else { + initiatorCh.disconnect() + ch = await Channel.reconnect({ + ...sharedParams, + role: 'initiator', + port: 3006, + sign: initiatorSign + }, { + channelId, + round, + role: 'initiator', + pubkey: await initiator.address() + }) + await waitForChannel(ch) + } + // TODO: why node doesn't return signed_tx when channel is reestablished? + // await new Promise((resolve) => { + // const checkRound = () => { + // ch.round().should.equal(round) + // // TODO: enable line below + // // ch.off('stateChanged', checkRound) + // resolve() + // } + // ch.on('stateChanged', checkRound) + // }) ch.state().should.eventually.be.fulfilled + await new Promise(resolve => setTimeout(resolve, 10 * 1000)) }) it('can post backchannel update', async () => { @@ -1097,13 +1123,13 @@ describe('Channel', function () { initiatorCh = await Channel({ ...sharedParams, role: 'initiator', - port: 3006, + port: 3007, sign: initiatorSign }) responderCh = await Channel({ ...sharedParams, role: 'responder', - port: 3006, + port: 3007, sign: responderSign }) await Promise.all([waitForChannel(initiatorCh), waitForChannel(responderCh)]) @@ -1126,6 +1152,8 @@ describe('Channel', function () { ) result.accepted.should.equal(true) result.signedTx.should.be.a('string') + initiatorCh.disconnect() + initiatorCh.disconnect() }) describe('throws errors', function () { @@ -1135,13 +1163,13 @@ describe('Channel', function () { initiatorCh = await Channel({ ...sharedParams, role: 'initiator', - port: 3006, + port: 3008, sign: initiatorSign }) responderCh = await Channel({ ...sharedParams, role: 'responder', - port: 3006, + port: 3008, sign: responderSign }) await Promise.all([waitForChannel(initiatorCh), waitForChannel(responderCh)]) From 5dd2fc171b04745756eb2b584c4dce601c8dc7e8 Mon Sep 17 00:00:00 2001 From: Michal Powaga Date: Wed, 11 Dec 2019 15:11:52 +0000 Subject: [PATCH 45/51] Fix lint error --- es/channel/handlers.js | 1 - 1 file changed, 1 deletion(-) diff --git a/es/channel/handlers.js b/es/channel/handlers.js index f8bba91d67..38e3aaf542 100644 --- a/es/channel/handlers.js +++ b/es/channel/handlers.js @@ -181,7 +181,6 @@ export async function channelOpen (channel, message, state) { case 'deposit_locked': case 'peer_disconnected': case 'channel_reestablished': - case 'fsm_up': case 'open': // TODO: Better handling of peer_disconnected event. // From d4d8767a10e57fcc2c928f40701d0774a29a7324 Mon Sep 17 00:00:00 2001 From: naz_dou Date: Wed, 11 Dec 2019 17:25:45 +0200 Subject: [PATCH 46/51] chore(release): Bump version. Generate CHANGELOG --- CHANGELOG.md | 9 +++++++++ docs/api/channel/index.md | 7 +++++++ docs/examples/node/aecontract.md | 2 +- package-lock.json | 34 +++++++++++++------------------- package.json | 4 ++-- 5 files changed, 33 insertions(+), 23 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f5ec6d9ecd..f171d3209d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +## [6.1.3](https://github.com/aeternity/aepp-sdk-js/compare/6.1.2...6.1.3) (2019-12-11) + + +### Bug Fixes + +* **Channel:** 5.2.0 compatibility ([4be8eb8](https://github.com/aeternity/aepp-sdk-js/commit/4be8eb8)) + + + ## [6.1.2](https://github.com/aeternity/aepp-sdk-js/compare/6.1.1...6.1.2) (2019-11-12) diff --git a/docs/api/channel/index.md b/docs/api/channel/index.md index 85b3180f3a..1650871fff 100644 --- a/docs/api/channel/index.md +++ b/docs/api/channel/index.md @@ -17,6 +17,7 @@ import Channel from '@aeternity/aepp-sdk/es/channel/index' * [~state()](#module_@aeternity/aepp-sdk/es/channel/index--Channel..state) β‡’ `Promise.<Object>` * [~round()](#module_@aeternity/aepp-sdk/es/channel/index--Channel..round) β‡’ `Number` * [~id()](#module_@aeternity/aepp-sdk/es/channel/index--Channel..id) β‡’ `String` + * [~fsmId()](#module_@aeternity/aepp-sdk/es/channel/index--Channel..fsmId) β‡’ `String` * [~update(from, to, amount, sign, metadata)](#module_@aeternity/aepp-sdk/es/channel/index--Channel..update) β‡’ `Promise.<Object>` * [~poi(addresses)](#module_@aeternity/aepp-sdk/es/channel/index--Channel..poi) β‡’ `Promise.<String>` * [~balances(accounts)](#module_@aeternity/aepp-sdk/es/channel/index--Channel..balances) β‡’ `Promise.<Object>` @@ -151,6 +152,12 @@ it will return `null`. #### Channel~id() β‡’ `String` Get channel id +**Kind**: inner method of [`Channel`](#exp_module_@aeternity/aepp-sdk/es/channel/index--Channel) + + +#### Channel~fsmId() β‡’ `String` +Get channel's fsm id + **Kind**: inner method of [`Channel`](#exp_module_@aeternity/aepp-sdk/es/channel/index--Channel) diff --git a/docs/examples/node/aecontract.md b/docs/examples/node/aecontract.md index 1d05e45e1a..4f76496666 100644 --- a/docs/examples/node/aecontract.md +++ b/docs/examples/node/aecontract.md @@ -107,7 +107,7 @@ implementation directly in the SDK. ```js - Ae({ url: program.host, debug: program.debug, compilerUrl: program.compilerUrl, process }).then(ae => { + Ae({ url: program.host, debug: program.debug, process }).then(ae => { return ae.contractCompile(code) ``` diff --git a/package-lock.json b/package-lock.json index 9c4dbe1143..0ae82bcd76 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@aeternity/aepp-sdk", - "version": "6.1.1", + "version": "6.1.3", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -6187,9 +6187,9 @@ } }, "handlebars": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.1.tgz", - "integrity": "sha512-C29UoFzHe9yM61lOsIlCE5/mQVGrnIOrOq7maQl76L7tYPCgC1og0Ajt6uWnX4ZTxBPnjw+CUvawphwCfJgUnA==", + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.3.tgz", + "integrity": "sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==", "dev": true, "requires": { "neo-async": "^2.6.0", @@ -6212,9 +6212,9 @@ "dev": true }, "uglify-js": { - "version": "3.6.8", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.8.tgz", - "integrity": "sha512-XhHJ3S3ZyMwP8kY1Gkugqx3CJh2C3O0y8NPiSxtm1tyD/pktLAkFZsFGpuNfTZddKDQ/bbDBLAd2YyA1pbi8HQ==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.2.tgz", + "integrity": "sha512-uhRwZcANNWVLrxLfNFEdltoPNhECUR3lc+UdJoG9CBpMcSnKyWA94tc3eAujB1GcMY5Uwq8ZMp4qWpxWYDQmaA==", "dev": true, "optional": true, "requires": { @@ -9469,9 +9469,9 @@ } }, "serialize-javascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.0.tgz", - "integrity": "sha512-a/mxFfU00QT88umAJQsNWOnUKckhNCqOl028N48e7wFmo2/EHpTo9Wso+iJJCMrQnmFvcjto5RJdAHEvVhcyUQ==" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", + "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==" }, "serve-static": { "version": "1.14.1", @@ -10439,16 +10439,16 @@ } }, "terser-webpack-plugin": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz", - "integrity": "sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz", + "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==", "dev": true, "requires": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", "is-wsl": "^1.1.0", "schema-utils": "^1.0.0", - "serialize-javascript": "^1.7.0", + "serialize-javascript": "^2.1.2", "source-map": "^0.6.1", "terser": "^4.1.2", "webpack-sources": "^1.4.0", @@ -10466,12 +10466,6 @@ "pkg-dir": "^3.0.0" } }, - "serialize-javascript": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", - "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==", - "dev": true - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", diff --git a/package.json b/package.json index 022c90b6b7..5860565ebd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@aeternity/aepp-sdk", - "version": "6.1.2", + "version": "6.1.3", "description": "SDK for the Γ¦ternity blockchain", "main": "dist/aepp-sdk.js", "browser": "dist/aepp-sdk.browser.js", @@ -42,7 +42,7 @@ "libsodium-wrappers-sumo": "0.7.6", "ramda": "^0.26.1", "rlp": "2.2.4", - "serialize-javascript": "^2.0.0", + "serialize-javascript": "^2.1.2", "sha.js": "^2.4.11", "tweetnacl": "^1.0.0", "tweetnacl-auth": "^1.0.1", From da747c02be4253805c1b3c9965aaf45023ad4de1 Mon Sep 17 00:00:00 2001 From: Michal Powaga Date: Wed, 11 Dec 2019 15:28:52 +0000 Subject: [PATCH 47/51] Fix internal.js --- es/channel/internal.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/es/channel/internal.js b/es/channel/internal.js index fb52dac6c8..4d7062dadb 100644 --- a/es/channel/internal.js +++ b/es/channel/internal.js @@ -20,7 +20,7 @@ import { EventEmitter } from 'events' import * as R from 'ramda' import JSONBig from '../utils/json-big' import { pascalToSnake } from '../utils/string' -import { awaitingConnection, channelClosed, channelOpen } from './handlers' +import { awaitingConnection, awaitingReconnection, channelOpen } from './handlers' // Send ping message every 10 seconds const PING_TIMEOUT_MS = 10000 @@ -222,7 +222,11 @@ async function initialize (channel, channelOptions) { const wsUrl = channelURL(url, { ...params, protocol: 'json-rpc' }) options.set(channel, channelOptions) - fsm.set(channel, { handler: params.reconnectTx ? channelClosed : awaitingConnection }) + if (params.existingFsmId) { + fsm.set(channel, { handler: awaitingReconnection }) + } else { + fsm.set(channel, { handler: awaitingConnection }) + } eventEmitters.set(channel, new EventEmitter()) sequence.set(channel, 0) rpcCallbacks.set(channel, new Map()) From d738d9fff9643bed3853e46eed0fe56f6dd0c206 Mon Sep 17 00:00:00 2001 From: naz_dou Date: Wed, 11 Dec 2019 17:52:52 +0200 Subject: [PATCH 48/51] chore(release): Point docker to node 5.2.0 --- .env | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.env b/.env index 992db79128..1a34b30b6a 100644 --- a/.env +++ b/.env @@ -1,2 +1,2 @@ -TAG=v5.1.0-rc.1 -COMPILER_TAG=v4.0.0 +TAG=v5.2.0 +COMPILER_TAG=v4.1.0 From d614c8fd2908adcae59a62edecb535d511d4f759 Mon Sep 17 00:00:00 2001 From: naz_dou Date: Wed, 18 Dec 2019 16:49:09 +0200 Subject: [PATCH 49/51] chore(release): Bump package, regenerate lock and CHANGELOG --- CHANGELOG.md | 67 +++++++++++++++++++++++++++++++++++++++++++++++ package-lock.json | 9 ++++--- package.json | 2 +- 3 files changed, 73 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 589f17b80c..44c32dcc59 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,70 @@ +# [7.0.0-next.1](https://github.com/aeternity/aepp-sdk-js/compare/6.0.1...7.0.0-next.1) (2019-12-18) + + +### Bug Fixes + +* **ACI:** Disable bytecode check for source and code on-chain ([#783](https://github.com/aeternity/aepp-sdk-js/issues/783)) ([2b878a6](https://github.com/aeternity/aepp-sdk-js/commit/2b878a6)) +* **aens:** added lower case transformation for aens names ([#730](https://github.com/aeternity/aepp-sdk-js/issues/730)) ([f7f9f17](https://github.com/aeternity/aepp-sdk-js/commit/f7f9f17)), closes [#728](https://github.com/aeternity/aepp-sdk-js/issues/728) [#728](https://github.com/aeternity/aepp-sdk-js/issues/728) +* **AENS:** auction end block calculation ([#746](https://github.com/aeternity/aepp-sdk-js/issues/746)) ([5709e40](https://github.com/aeternity/aepp-sdk-js/commit/5709e40)) +* **AENS:** Change tld for Lima from `aet` to `chain` ([#714](https://github.com/aeternity/aepp-sdk-js/issues/714)) ([323ef6a](https://github.com/aeternity/aepp-sdk-js/commit/323ef6a)) +* **AENS:** Fix `produceNameId` function(Make name lowercase). Enable … ([#750](https://github.com/aeternity/aepp-sdk-js/issues/750)) ([77d54c3](https://github.com/aeternity/aepp-sdk-js/commit/77d54c3)) +* **Contract/Chain:** Using { waitMined: false } with Contract high lvl API ([#828](https://github.com/aeternity/aepp-sdk-js/issues/828)) ([475c2aa](https://github.com/aeternity/aepp-sdk-js/commit/475c2aa)) +* **HdWallet:** Fix derive function ([#801](https://github.com/aeternity/aepp-sdk-js/issues/801)) ([6c6177d](https://github.com/aeternity/aepp-sdk-js/commit/6c6177d)) +* **state channels:** wait for connection to be established before sending generic message ([#723](https://github.com/aeternity/aepp-sdk-js/issues/723)) ([e2bf8dd](https://github.com/aeternity/aepp-sdk-js/commit/e2bf8dd)) + + +### Code Refactoring + +* **Cross-Node:** Remove cross-node compatibility code ([#829](https://github.com/aeternity/aepp-sdk-js/issues/829)) ([b29a162](https://github.com/aeternity/aepp-sdk-js/commit/b29a162)) + + +### Features + +* **aci:** add check for contract address validity and existence ([#788](https://github.com/aeternity/aepp-sdk-js/issues/788)) ([c0cccc9](https://github.com/aeternity/aepp-sdk-js/commit/c0cccc9)) +* **ACI:** Add validation for contractAddress ([#764](https://github.com/aeternity/aepp-sdk-js/issues/764)) ([68b03ef](https://github.com/aeternity/aepp-sdk-js/commit/68b03ef)) +* **AENS:** Add nameFee validation to TxValidator ([#765](https://github.com/aeternity/aepp-sdk-js/issues/765)) ([1994e9d](https://github.com/aeternity/aepp-sdk-js/commit/1994e9d)) +* **AENS:** Increase default nameTtl ([#775](https://github.com/aeternity/aepp-sdk-js/issues/775)) ([b46982c](https://github.com/aeternity/aepp-sdk-js/commit/b46982c)) +* **ci:** enable daily builds on latest node and compiler and enable codecov ([#820](https://github.com/aeternity/aepp-sdk-js/issues/820)) ([3c52a1e](https://github.com/aeternity/aepp-sdk-js/commit/3c52a1e)) +* **CI:** Move to Travis CI ([#809](https://github.com/aeternity/aepp-sdk-js/issues/809)) ([2d77f20](https://github.com/aeternity/aepp-sdk-js/commit/2d77f20)) +* **Contract:** Add ability to pass arguments or callData for contract `deploy/call/callStatic` API ([#768](https://github.com/aeternity/aepp-sdk-js/issues/768)) ([a828076](https://github.com/aeternity/aepp-sdk-js/commit/a828076)) +* **Contract:** Adjust `fee` calculation for `contractCall` tx using `FATE` backend ([#793](https://github.com/aeternity/aepp-sdk-js/issues/793)) ([7254ac1](https://github.com/aeternity/aepp-sdk-js/commit/7254ac1)) +* **Http:** Assign error object to http error ([#770](https://github.com/aeternity/aepp-sdk-js/issues/770)) ([6872948](https://github.com/aeternity/aepp-sdk-js/commit/6872948)) +* **KeyStore:** Remove `argon2` package, use `libsodium` for both browser and node ([#782](https://github.com/aeternity/aepp-sdk-js/issues/782)) ([28edc8d](https://github.com/aeternity/aepp-sdk-js/commit/28edc8d)) +* **SPEND:** Add additional validation for recipient ([#715](https://github.com/aeternity/aepp-sdk-js/issues/715)) ([c1854bf](https://github.com/aeternity/aepp-sdk-js/commit/c1854bf)) +* **state channels:** add .off method ([#722](https://github.com/aeternity/aepp-sdk-js/issues/722)) ([18ec371](https://github.com/aeternity/aepp-sdk-js/commit/18ec371)) +* **state channels:** add round method ([#763](https://github.com/aeternity/aepp-sdk-js/issues/763)) ([d31a51e](https://github.com/aeternity/aepp-sdk-js/commit/d31a51e)) +* **state channels:** allow off chain updates to be cancelled with custom error code ([#753](https://github.com/aeternity/aepp-sdk-js/issues/753)) ([c78afca](https://github.com/aeternity/aepp-sdk-js/commit/c78afca)) +* **state channels:** allow to pass metadata to transfer update ([#755](https://github.com/aeternity/aepp-sdk-js/issues/755)) ([d7c2ef1](https://github.com/aeternity/aepp-sdk-js/commit/d7c2ef1)) +* **state channels:** make state channels compatible with node v5.0.0… ([#688](https://github.com/aeternity/aepp-sdk-js/issues/688)) ([23936f5](https://github.com/aeternity/aepp-sdk-js/commit/23936f5)), closes [#632](https://github.com/aeternity/aepp-sdk-js/issues/632) [#653](https://github.com/aeternity/aepp-sdk-js/issues/653) [#658](https://github.com/aeternity/aepp-sdk-js/issues/658) [#660](https://github.com/aeternity/aepp-sdk-js/issues/660) [#680](https://github.com/aeternity/aepp-sdk-js/issues/680) [#693](https://github.com/aeternity/aepp-sdk-js/issues/693) [#687](https://github.com/aeternity/aepp-sdk-js/issues/687) +* **state channels:** make state channels compatible with node v5.1.0… ([#776](https://github.com/aeternity/aepp-sdk-js/issues/776)) ([4bff514](https://github.com/aeternity/aepp-sdk-js/commit/4bff514)) +* **Test:** Increase code covarage ([#830](https://github.com/aeternity/aepp-sdk-js/issues/830)) ([6f760fb](https://github.com/aeternity/aepp-sdk-js/commit/6f760fb)) +* **Tx:** Always verify transaction before send it to the node ([#798](https://github.com/aeternity/aepp-sdk-js/issues/798)) ([170f479](https://github.com/aeternity/aepp-sdk-js/commit/170f479)) +* **Wallet:** Use `postMessage` for communication with extension wall… ([#815](https://github.com/aeternity/aepp-sdk-js/issues/815)) ([dc7b4c2](https://github.com/aeternity/aepp-sdk-js/commit/dc7b4c2)) + + +### BREAKING CHANGES + +* **Cross-Node:** Change node compatibility range + +* fix(Aens): fix isNameAuction helper + +* refactor(Compiler): Drop compiler version to version >= 4.0.0 and version < 5.0.0 +* **aci:** Add additional method to RPC communication. Required sdk update on wallet side + +* feat(Contract): Add bytecode validation + +* feat(ACI): Update compiler version. Add new API for comparing bytecode(works only with FATE). Add check for contract bytecode in ACI + +* feat(ACI): Check for bytecoded validity only if compiler version gte 4.1.0 + +* test(Contract): remove unused test + +* feat(Compiler): filter compiler options + +* fix(Rpc): Add `validateByteCodeAPI` to rpc + + + ## [6.1.3](https://github.com/aeternity/aepp-sdk-js/compare/6.1.2...6.1.3) (2019-12-11) diff --git a/package-lock.json b/package-lock.json index fae316cf4c..91a05f91f6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@aeternity/aepp-sdk", - "version": "6.1.2", + "version": "7.0.0-next.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -3262,7 +3262,8 @@ "commander": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/commander/-/commander-4.0.0.tgz", - "integrity": "sha512-SEa2abMBTZuEjLVYpNrAFoRgxPwG4rXP3+SGY6CM/HZGeDzIA7Pzp+7H3AHDukKEpyy2SoSGGPShKqqfH9T9AQ==" + "integrity": "sha512-SEa2abMBTZuEjLVYpNrAFoRgxPwG4rXP3+SGY6CM/HZGeDzIA7Pzp+7H3AHDukKEpyy2SoSGGPShKqqfH9T9AQ==", + "dev": true }, "commitizen": { "version": "4.0.3", @@ -9315,7 +9316,7 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true } @@ -10654,7 +10655,7 @@ }, "strip-eof": { "version": "1.0.0", - "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, diff --git a/package.json b/package.json index e9356e18c8..1baa6d58a9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@aeternity/aepp-sdk", - "version": "6.1.2", + "version": "7.0.0-next.1", "description": "SDK for the Γ¦ternity blockchain", "main": "dist/aepp-sdk.js", "browser": "dist/aepp-sdk.browser.js", From cfabc7757bf71c842445a163276cda9e91e00cfc Mon Sep 17 00:00:00 2001 From: naz_dou Date: Wed, 18 Dec 2019 17:07:23 +0200 Subject: [PATCH 50/51] chore(release): Update CHANGELOG --- CHANGELOG.md | 58 +++++++++++++++------------------------------------- 1 file changed, 17 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 44c32dcc59..2b39520cae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,66 +3,42 @@ ### Bug Fixes -* **ACI:** Disable bytecode check for source and code on-chain ([#783](https://github.com/aeternity/aepp-sdk-js/issues/783)) ([2b878a6](https://github.com/aeternity/aepp-sdk-js/commit/2b878a6)) -* **aens:** added lower case transformation for aens names ([#730](https://github.com/aeternity/aepp-sdk-js/issues/730)) ([f7f9f17](https://github.com/aeternity/aepp-sdk-js/commit/f7f9f17)), closes [#728](https://github.com/aeternity/aepp-sdk-js/issues/728) [#728](https://github.com/aeternity/aepp-sdk-js/issues/728) -* **AENS:** auction end block calculation ([#746](https://github.com/aeternity/aepp-sdk-js/issues/746)) ([5709e40](https://github.com/aeternity/aepp-sdk-js/commit/5709e40)) -* **AENS:** Change tld for Lima from `aet` to `chain` ([#714](https://github.com/aeternity/aepp-sdk-js/issues/714)) ([323ef6a](https://github.com/aeternity/aepp-sdk-js/commit/323ef6a)) -* **AENS:** Fix `produceNameId` function(Make name lowercase). Enable … ([#750](https://github.com/aeternity/aepp-sdk-js/issues/750)) ([77d54c3](https://github.com/aeternity/aepp-sdk-js/commit/77d54c3)) * **Contract/Chain:** Using { waitMined: false } with Contract high lvl API ([#828](https://github.com/aeternity/aepp-sdk-js/issues/828)) ([475c2aa](https://github.com/aeternity/aepp-sdk-js/commit/475c2aa)) * **HdWallet:** Fix derive function ([#801](https://github.com/aeternity/aepp-sdk-js/issues/801)) ([6c6177d](https://github.com/aeternity/aepp-sdk-js/commit/6c6177d)) -* **state channels:** wait for connection to be established before sending generic message ([#723](https://github.com/aeternity/aepp-sdk-js/issues/723)) ([e2bf8dd](https://github.com/aeternity/aepp-sdk-js/commit/e2bf8dd)) +* **Compiler:** Filter compiler options ### Code Refactoring * **Cross-Node:** Remove cross-node compatibility code ([#829](https://github.com/aeternity/aepp-sdk-js/issues/829)) ([b29a162](https://github.com/aeternity/aepp-sdk-js/commit/b29a162)) - +* **Chain:** Handle time until tx is not added to mempool ([#816](https://github.com/aeternity/aepp-sdk-js/pull/816)) +* **Git:** Update issue template([#806](https://github.com/aeternity/aepp-sdk-js/pull/806)) +* **Flavors:** Remove deprecated code ([#697](https://github.com/aeternity/aepp-sdk-js/pull/697)) ### Features -* **aci:** add check for contract address validity and existence ([#788](https://github.com/aeternity/aepp-sdk-js/issues/788)) ([c0cccc9](https://github.com/aeternity/aepp-sdk-js/commit/c0cccc9)) -* **ACI:** Add validation for contractAddress ([#764](https://github.com/aeternity/aepp-sdk-js/issues/764)) ([68b03ef](https://github.com/aeternity/aepp-sdk-js/commit/68b03ef)) -* **AENS:** Add nameFee validation to TxValidator ([#765](https://github.com/aeternity/aepp-sdk-js/issues/765)) ([1994e9d](https://github.com/aeternity/aepp-sdk-js/commit/1994e9d)) -* **AENS:** Increase default nameTtl ([#775](https://github.com/aeternity/aepp-sdk-js/issues/775)) ([b46982c](https://github.com/aeternity/aepp-sdk-js/commit/b46982c)) -* **ci:** enable daily builds on latest node and compiler and enable codecov ([#820](https://github.com/aeternity/aepp-sdk-js/issues/820)) ([3c52a1e](https://github.com/aeternity/aepp-sdk-js/commit/3c52a1e)) +* **Wallet<->AEPP:** Add new Wallet<->Aepp communication API * **CI:** Move to Travis CI ([#809](https://github.com/aeternity/aepp-sdk-js/issues/809)) ([2d77f20](https://github.com/aeternity/aepp-sdk-js/commit/2d77f20)) +* **ACI:** Add check for contract address validity and existence ([#788](https://github.com/aeternity/aepp-sdk-js/issues/788)) ([c0cccc9](https://github.com/aeternity/aepp-sdk-js/commit/c0cccc9)) +* **Tx:** Always verify transaction before send it to the node ([#798](https://github.com/aeternity/aepp-sdk-js/issues/798)) ([170f479](https://github.com/aeternity/aepp-sdk-js/commit/170f479)) +* **CI:** enable daily builds on latest node and compiler and enable codecov ([#820](https://github.com/aeternity/aepp-sdk-js/issues/820)) ([3c52a1e](https://github.com/aeternity/aepp-sdk-js/commit/3c52a1e)) + * **Contract:** Add ability to pass arguments or callData for contract `deploy/call/callStatic` API ([#768](https://github.com/aeternity/aepp-sdk-js/issues/768)) ([a828076](https://github.com/aeternity/aepp-sdk-js/commit/a828076)) * **Contract:** Adjust `fee` calculation for `contractCall` tx using `FATE` backend ([#793](https://github.com/aeternity/aepp-sdk-js/issues/793)) ([7254ac1](https://github.com/aeternity/aepp-sdk-js/commit/7254ac1)) -* **Http:** Assign error object to http error ([#770](https://github.com/aeternity/aepp-sdk-js/issues/770)) ([6872948](https://github.com/aeternity/aepp-sdk-js/commit/6872948)) -* **KeyStore:** Remove `argon2` package, use `libsodium` for both browser and node ([#782](https://github.com/aeternity/aepp-sdk-js/issues/782)) ([28edc8d](https://github.com/aeternity/aepp-sdk-js/commit/28edc8d)) -* **SPEND:** Add additional validation for recipient ([#715](https://github.com/aeternity/aepp-sdk-js/issues/715)) ([c1854bf](https://github.com/aeternity/aepp-sdk-js/commit/c1854bf)) -* **state channels:** add .off method ([#722](https://github.com/aeternity/aepp-sdk-js/issues/722)) ([18ec371](https://github.com/aeternity/aepp-sdk-js/commit/18ec371)) -* **state channels:** add round method ([#763](https://github.com/aeternity/aepp-sdk-js/issues/763)) ([d31a51e](https://github.com/aeternity/aepp-sdk-js/commit/d31a51e)) -* **state channels:** allow off chain updates to be cancelled with custom error code ([#753](https://github.com/aeternity/aepp-sdk-js/issues/753)) ([c78afca](https://github.com/aeternity/aepp-sdk-js/commit/c78afca)) -* **state channels:** allow to pass metadata to transfer update ([#755](https://github.com/aeternity/aepp-sdk-js/issues/755)) ([d7c2ef1](https://github.com/aeternity/aepp-sdk-js/commit/d7c2ef1)) -* **state channels:** make state channels compatible with node v5.0.0… ([#688](https://github.com/aeternity/aepp-sdk-js/issues/688)) ([23936f5](https://github.com/aeternity/aepp-sdk-js/commit/23936f5)), closes [#632](https://github.com/aeternity/aepp-sdk-js/issues/632) [#653](https://github.com/aeternity/aepp-sdk-js/issues/653) [#658](https://github.com/aeternity/aepp-sdk-js/issues/658) [#660](https://github.com/aeternity/aepp-sdk-js/issues/660) [#680](https://github.com/aeternity/aepp-sdk-js/issues/680) [#693](https://github.com/aeternity/aepp-sdk-js/issues/693) [#687](https://github.com/aeternity/aepp-sdk-js/issues/687) -* **state channels:** make state channels compatible with node v5.1.0… ([#776](https://github.com/aeternity/aepp-sdk-js/issues/776)) ([4bff514](https://github.com/aeternity/aepp-sdk-js/commit/4bff514)) * **Test:** Increase code covarage ([#830](https://github.com/aeternity/aepp-sdk-js/issues/830)) ([6f760fb](https://github.com/aeternity/aepp-sdk-js/commit/6f760fb)) -* **Tx:** Always verify transaction before send it to the node ([#798](https://github.com/aeternity/aepp-sdk-js/issues/798)) ([170f479](https://github.com/aeternity/aepp-sdk-js/commit/170f479)) * **Wallet:** Use `postMessage` for communication with extension wall… ([#815](https://github.com/aeternity/aepp-sdk-js/issues/815)) ([dc7b4c2](https://github.com/aeternity/aepp-sdk-js/commit/dc7b4c2)) ### BREAKING CHANGES -* **Cross-Node:** Change node compatibility range - -* fix(Aens): fix isNameAuction helper - -* refactor(Compiler): Drop compiler version to version >= 4.0.0 and version < 5.0.0 -* **aci:** Add additional method to RPC communication. Required sdk update on wallet side - -* feat(Contract): Add bytecode validation - -* feat(ACI): Update compiler version. Add new API for comparing bytecode(works only with FATE). Add check for contract bytecode in ACI - -* feat(ACI): Check for bytecoded validity only if compiler version gte 4.1.0 - -* test(Contract): remove unused test - -* feat(Compiler): filter compiler options - -* fix(Rpc): Add `validateByteCodeAPI` to rpc - +* **Node:** Change node compatibility range to `node >= 5.0.0 && node < 6.0.0` +* **Compiler:** Drop compiler version to `version >= 4.0.0 && version < 5.0.0` +* **ACI:** Add additional method to RPC communication. Required sdk update on wallet side +Add `getContractByteCode` API +* **Flavor:** Remove deprecated params: +- remove `url` and `internalUrl` instead use `nodes: [ { name: 'NODE_NAME', instance: await Node({ url, internalUrl }) } ]` +- remove `keypair` params instead use `accounts: [MemmoryAccount({ keypair })]` +- remove `setKeypair` function from `Account` stamps ## [6.1.3](https://github.com/aeternity/aepp-sdk-js/compare/6.1.2...6.1.3) (2019-12-11) From f0d0f4f6971c06871c17000ece17b8dcbe6c8541 Mon Sep 17 00:00:00 2001 From: naz_dou Date: Wed, 18 Dec 2019 17:42:55 +0200 Subject: [PATCH 51/51] chore(release): Update CHANGELOG --- CHANGELOG.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b39520cae..817c716608 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,23 +14,27 @@ * **Chain:** Handle time until tx is not added to mempool ([#816](https://github.com/aeternity/aepp-sdk-js/pull/816)) * **Git:** Update issue template([#806](https://github.com/aeternity/aepp-sdk-js/pull/806)) * **Flavors:** Remove deprecated code ([#697](https://github.com/aeternity/aepp-sdk-js/pull/697)) +* **Test:** Increase code covarage ([#830](https://github.com/aeternity/aepp-sdk-js/issues/830)) ([6f760fb](https://github.com/aeternity/aepp-sdk-js/commit/6f760fb)) ### Features * **Wallet<->AEPP:** Add new Wallet<->Aepp communication API +>Add two new stamps `RpcWallet` and `RpcAepp` +>Example of usage you can find heere: [Aepp example](https://github.com/aeternity/aepp-sdk-js/blob/develop/docs/guides/how-to-build-aepp-using-new-wallet-api.md) and [Wallet example](https://github.com/aeternity/aepp-sdk-js/blob/develop/docs/guides/how-to-build-an-wallet-app-or-extension.md) + +* **Wallet:** Use `postMessage` for communication with extension wall… ([#815](https://github.com/aeternity/aepp-sdk-js/issues/815)) ([dc7b4c2](https://github.com/aeternity/aepp-sdk-js/commit/dc7b4c2)) * **CI:** Move to Travis CI ([#809](https://github.com/aeternity/aepp-sdk-js/issues/809)) ([2d77f20](https://github.com/aeternity/aepp-sdk-js/commit/2d77f20)) -* **ACI:** Add check for contract address validity and existence ([#788](https://github.com/aeternity/aepp-sdk-js/issues/788)) ([c0cccc9](https://github.com/aeternity/aepp-sdk-js/commit/c0cccc9)) -* **Tx:** Always verify transaction before send it to the node ([#798](https://github.com/aeternity/aepp-sdk-js/issues/798)) ([170f479](https://github.com/aeternity/aepp-sdk-js/commit/170f479)) * **CI:** enable daily builds on latest node and compiler and enable codecov ([#820](https://github.com/aeternity/aepp-sdk-js/issues/820)) ([3c52a1e](https://github.com/aeternity/aepp-sdk-js/commit/3c52a1e)) - +* **ACI:** Add check for contract address validity and existence. Add `forceCodeCheck` option for bytecode verification skip ([#788](https://github.com/aeternity/aepp-sdk-js/issues/788)) ([c0cccc9](https://github.com/aeternity/aepp-sdk-js/commit/c0cccc9)) * **Contract:** Add ability to pass arguments or callData for contract `deploy/call/callStatic` API ([#768](https://github.com/aeternity/aepp-sdk-js/issues/768)) ([a828076](https://github.com/aeternity/aepp-sdk-js/commit/a828076)) * **Contract:** Adjust `fee` calculation for `contractCall` tx using `FATE` backend ([#793](https://github.com/aeternity/aepp-sdk-js/issues/793)) ([7254ac1](https://github.com/aeternity/aepp-sdk-js/commit/7254ac1)) -* **Test:** Increase code covarage ([#830](https://github.com/aeternity/aepp-sdk-js/issues/830)) ([6f760fb](https://github.com/aeternity/aepp-sdk-js/commit/6f760fb)) -* **Wallet:** Use `postMessage` for communication with extension wall… ([#815](https://github.com/aeternity/aepp-sdk-js/issues/815)) ([dc7b4c2](https://github.com/aeternity/aepp-sdk-js/commit/dc7b4c2)) +* **Compiler:** Add new API `validateByteCodeAPI` available on compiler >= 4.1.0 ([#788](https://github.com/aeternity/aepp-sdk-js/issues/788)) ([c0cccc9](https://github.com/aeternity/aepp-sdk-js/commit/c0cccc9)) +* **Tx:** Always verify transaction before send it to the node ([#798](https://github.com/aeternity/aepp-sdk-js/issues/798)) ([170f479](https://github.com/aeternity/aepp-sdk-js/commit/170f479)) ### BREAKING CHANGES +* **Tx:** By default `sdk` make a transaction `verification` * **Node:** Change node compatibility range to `node >= 5.0.0 && node < 6.0.0` * **Compiler:** Drop compiler version to `version >= 4.0.0 && version < 5.0.0` * **ACI:** Add additional method to RPC communication. Required sdk update on wallet side