From 7f0a6b0ce9e5a8b0954854d826b7cccd7b01b9ed Mon Sep 17 00:00:00 2001 From: Jaco Date: Wed, 7 Jul 2021 13:30:55 +0300 Subject: [PATCH] Split index into bundle & detect (#1051) --- package.json | 3 + packages/hw-ledger/src/bundle.ts | 103 +++++++++++++++ packages/hw-ledger/src/index.ts | 101 +-------------- packages/keyring/src/bundle.ts | 10 ++ packages/keyring/src/index.ts | 8 +- packages/util-crypto/package.json | 2 + packages/util-crypto/src/bundle.ts | 30 +++++ packages/util-crypto/src/index.ts | 27 +--- packages/util/src/bundle.ts | 25 ++++ packages/util/src/index.ts | 23 +--- yarn.lock | 199 ++++++++++++++++++++++++++++- 11 files changed, 372 insertions(+), 159 deletions(-) create mode 100644 packages/hw-ledger/src/bundle.ts create mode 100644 packages/keyring/src/bundle.ts create mode 100644 packages/util-crypto/src/bundle.ts create mode 100644 packages/util/src/bundle.ts diff --git a/package.json b/package.json index 0b837fdee..969525e63 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,9 @@ "test:mnemonicCmp": "polkadot-dev-run-test packages/util-crypto/src/mnemonic/toMiniSecretCmp.spec.ts", "test:one": "polkadot-dev-run-test --runInBand" }, + "dependencies": { + "empty": "^0.10.1" + }, "devDependencies": { "@babel/core": "^7.14.6", "@polkadot/dev": "^0.62.52", diff --git a/packages/hw-ledger/src/bundle.ts b/packages/hw-ledger/src/bundle.ts new file mode 100644 index 000000000..4f32cd6db --- /dev/null +++ b/packages/hw-ledger/src/bundle.ts @@ -0,0 +1,103 @@ +// Copyright 2017-2021 @polkadot/hw-ledger authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ResponseBase, SubstrateApp } from '@zondax/ledger-substrate'; +import type { AccountOptions, LedgerAddress, LedgerSignature, LedgerTypes, LedgerVersion } from './types'; + +import { transports } from '@polkadot/hw-ledger-transports'; +import { assert, u8aToBuffer } from '@polkadot/util'; + +import { LEDGER_DEFAULT_ACCOUNT, LEDGER_DEFAULT_CHANGE, LEDGER_DEFAULT_INDEX, LEDGER_SUCCESS_CODE } from './constants'; +import { ledgerApps } from './defaults'; + +export { packageInfo } from './packageInfo'; + +type Chain = keyof typeof ledgerApps; + +// A very basic wrapper for a ledger app - +// - it connects automatically, creating an app as required +// - Promises return errors (instead of wrapper errors) +export class Ledger { + #app: SubstrateApp | null = null; + + #chain: Chain; + + #transport: LedgerTypes; + + constructor (transport: LedgerTypes, chain: Chain) { + // u2f is deprecated + assert(['hid', 'webusb'].includes(transport), () => `Unsupported transport ${transport}`); + assert(Object.keys(ledgerApps).includes(chain), () => `Unsupported chain ${chain}`); + + this.#chain = chain; + this.#transport = transport; + } + + public async getAddress (confirm = false, accountOffset = 0, addressOffset = 0, { account = LEDGER_DEFAULT_ACCOUNT, addressIndex = LEDGER_DEFAULT_INDEX, change = LEDGER_DEFAULT_CHANGE }: Partial = {}): Promise { + return this.#withApp(async (app: SubstrateApp): Promise => { + const { address, pubKey } = await this.#wrapError(app.getAddress(account + accountOffset, change, addressIndex + addressOffset, confirm)); + + return { + address, + publicKey: `0x${pubKey}` + }; + }); + } + + public async getVersion (): Promise { + return this.#withApp(async (app: SubstrateApp): Promise => { + const { device_locked: isLocked, major, minor, patch, test_mode: isTestMode } = await this.#wrapError(app.getVersion()); + + return { + isLocked, + isTestMode, + version: [major, minor, patch] + }; + }); + } + + public async sign (message: Uint8Array, accountOffset = 0, addressOffset = 0, { account = LEDGER_DEFAULT_ACCOUNT, addressIndex = LEDGER_DEFAULT_INDEX, change = LEDGER_DEFAULT_CHANGE }: Partial = {}): Promise { + return this.#withApp(async (app: SubstrateApp): Promise => { + const buffer = u8aToBuffer(message); + const { signature } = await this.#wrapError(app.sign(account + accountOffset, change, addressIndex + addressOffset, buffer)); + + return { + signature: `0x${signature.toString('hex')}` + }; + }); + } + + #getApp = async (): Promise => { + if (!this.#app) { + const def = transports.find(({ type }) => type === this.#transport); + + assert(def, () => `Unable to find a transport for ${this.#transport}`); + + const transport = await def.create(); + + this.#app = ledgerApps[this.#chain](transport); + } + + return this.#app; + }; + + #withApp = async (fn: (app: SubstrateApp) => Promise): Promise => { + try { + const app = await this.#getApp(); + + return await fn(app); + } catch (error) { + this.#app = null; + + throw error; + } + }; + + #wrapError = async (promise: Promise): Promise => { + const result = await promise; + + assert(result.return_code === LEDGER_SUCCESS_CODE, () => result.error_message); + + return result; + }; +} diff --git a/packages/hw-ledger/src/index.ts b/packages/hw-ledger/src/index.ts index fd5a8edef..58c2fa4e9 100644 --- a/packages/hw-ledger/src/index.ts +++ b/packages/hw-ledger/src/index.ts @@ -3,103 +3,4 @@ import './detectPackage'; -import type { ResponseBase, SubstrateApp } from '@zondax/ledger-substrate'; -import type { AccountOptions, LedgerAddress, LedgerSignature, LedgerTypes, LedgerVersion } from './types'; - -import { transports } from '@polkadot/hw-ledger-transports'; -import { assert, u8aToBuffer } from '@polkadot/util'; - -import { LEDGER_DEFAULT_ACCOUNT, LEDGER_DEFAULT_CHANGE, LEDGER_DEFAULT_INDEX, LEDGER_SUCCESS_CODE } from './constants'; -import { ledgerApps } from './defaults'; - -export { packageInfo } from './packageInfo'; - -type Chain = keyof typeof ledgerApps; - -// A very basic wrapper for a ledger app - -// - it connects automatically, creating an app as required -// - Promises return errors (instead of wrapper errors) -export class Ledger { - #app: SubstrateApp | null = null; - - #chain: Chain; - - #transport: LedgerTypes; - - constructor (transport: LedgerTypes, chain: Chain) { - // u2f is deprecated - assert(['hid', 'webusb'].includes(transport), () => `Unsupported transport ${transport}`); - assert(Object.keys(ledgerApps).includes(chain), () => `Unsupported chain ${chain}`); - - this.#chain = chain; - this.#transport = transport; - } - - public async getAddress (confirm = false, accountOffset = 0, addressOffset = 0, { account = LEDGER_DEFAULT_ACCOUNT, addressIndex = LEDGER_DEFAULT_INDEX, change = LEDGER_DEFAULT_CHANGE }: Partial = {}): Promise { - return this.#withApp(async (app: SubstrateApp): Promise => { - const { address, pubKey } = await this.#wrapError(app.getAddress(account + accountOffset, change, addressIndex + addressOffset, confirm)); - - return { - address, - publicKey: `0x${pubKey}` - }; - }); - } - - public async getVersion (): Promise { - return this.#withApp(async (app: SubstrateApp): Promise => { - const { device_locked: isLocked, major, minor, patch, test_mode: isTestMode } = await this.#wrapError(app.getVersion()); - - return { - isLocked, - isTestMode, - version: [major, minor, patch] - }; - }); - } - - public async sign (message: Uint8Array, accountOffset = 0, addressOffset = 0, { account = LEDGER_DEFAULT_ACCOUNT, addressIndex = LEDGER_DEFAULT_INDEX, change = LEDGER_DEFAULT_CHANGE }: Partial = {}): Promise { - return this.#withApp(async (app: SubstrateApp): Promise => { - const buffer = u8aToBuffer(message); - const { signature } = await this.#wrapError(app.sign(account + accountOffset, change, addressIndex + addressOffset, buffer)); - - return { - signature: `0x${signature.toString('hex')}` - }; - }); - } - - #getApp = async (): Promise => { - if (!this.#app) { - const def = transports.find(({ type }) => type === this.#transport); - - assert(def, () => `Unable to find a transport for ${this.#transport}`); - - const transport = await def.create(); - - this.#app = ledgerApps[this.#chain](transport); - } - - return this.#app; - }; - - #withApp = async (fn: (app: SubstrateApp) => Promise): Promise => { - try { - const app = await this.#getApp(); - - return await fn(app); - } catch (error) { - this.#app = null; - - throw error; - } - }; - - #wrapError = async (promise: Promise): Promise => { - const result = await promise; - - assert(result.return_code === LEDGER_SUCCESS_CODE, () => result.error_message); - - return result; - }; -} +export * from './bundle'; diff --git a/packages/keyring/src/bundle.ts b/packages/keyring/src/bundle.ts new file mode 100644 index 000000000..a46d76ea1 --- /dev/null +++ b/packages/keyring/src/bundle.ts @@ -0,0 +1,10 @@ +// Copyright 2017-2021 @polkadot/keyring authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { Keyring } from './keyring'; + +export { decodeAddress, encodeAddress, setSS58Format } from '@polkadot/util-crypto'; + +export { packageInfo } from './packageInfo'; + +export { Keyring }; diff --git a/packages/keyring/src/index.ts b/packages/keyring/src/index.ts index 195095c85..ddef755aa 100644 --- a/packages/keyring/src/index.ts +++ b/packages/keyring/src/index.ts @@ -3,12 +3,8 @@ import './detectPackage'; -import { Keyring } from './keyring'; +import { Keyring } from './bundle'; -export { decodeAddress, encodeAddress, setSS58Format } from '@polkadot/util-crypto'; - -export { packageInfo } from './packageInfo'; +export * from './bundle'; export default Keyring; - -export { Keyring }; diff --git a/packages/util-crypto/package.json b/packages/util-crypto/package.json index 10539447e..3084e41c3 100644 --- a/packages/util-crypto/package.json +++ b/packages/util-crypto/package.json @@ -5,6 +5,8 @@ "description": "A collection of useful crypto utilities for @polkadot", "main": "index.js", "sideEffects": [ + "./cryptoInit.js", + "./cryptoInit.cjs", "./detectPackage.js", "./detectPackage.cjs" ], diff --git a/packages/util-crypto/src/bundle.ts b/packages/util-crypto/src/bundle.ts new file mode 100644 index 000000000..dea8bd031 --- /dev/null +++ b/packages/util-crypto/src/bundle.ts @@ -0,0 +1,30 @@ +// Copyright 2017-2021 @polkadot/util-crypto authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import './cryptoInit'; + +export { packageInfo } from './packageInfo'; + +// all internal exports +export * from './address'; +export * from './base32'; +export * from './base58'; +export * from './base64'; +export * from './blake2'; +export * from './crypto'; +export * from './ethereum'; +export * from './hd'; +export * from './hmac'; +export * from './json'; +export * from './keccak'; +export * from './key'; +export * from './mnemonic'; +export * from './nacl'; +export * from './pbkdf2'; +export * from './random'; +export * from './schnorrkel'; +export * from './scrypt'; +export * from './secp256k1'; +export * from './sha512'; +export * from './signature'; +export * from './xxhash'; diff --git a/packages/util-crypto/src/index.ts b/packages/util-crypto/src/index.ts index 27b762898..877ed3e24 100644 --- a/packages/util-crypto/src/index.ts +++ b/packages/util-crypto/src/index.ts @@ -1,31 +1,6 @@ // Copyright 2017-2021 @polkadot/util-crypto authors & contributors // SPDX-License-Identifier: Apache-2.0 -import './cryptoInit'; import './detectPackage'; -export { packageInfo } from './packageInfo'; - -// all internal exports -export * from './address'; -export * from './base32'; -export * from './base58'; -export * from './base64'; -export * from './blake2'; -export * from './crypto'; -export * from './ethereum'; -export * from './hd'; -export * from './hmac'; -export * from './json'; -export * from './keccak'; -export * from './key'; -export * from './mnemonic'; -export * from './nacl'; -export * from './pbkdf2'; -export * from './random'; -export * from './schnorrkel'; -export * from './scrypt'; -export * from './secp256k1'; -export * from './sha512'; -export * from './signature'; -export * from './xxhash'; +export * from './bundle'; diff --git a/packages/util/src/bundle.ts b/packages/util/src/bundle.ts new file mode 100644 index 000000000..e75f693ac --- /dev/null +++ b/packages/util/src/bundle.ts @@ -0,0 +1,25 @@ +// Copyright 2017-2021 @polkadot/util authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/** + * @summary Utility methods for this package are split into groups + */ +export { packageInfo } from './packageInfo'; + +export * from './array'; +export * from './assert'; +export * from './bn'; +export * from './buffer'; +export * from './compact'; +export * from './extractTime'; +export * from './format'; +export * from './hex'; +export * from './is'; +export * from './logger'; +export * from './memoize'; +export * from './number'; +export * from './promisify'; +export * from './string'; +export * from './stringify'; +export * from './u8a'; +export * from './versionDetect'; diff --git a/packages/util/src/index.ts b/packages/util/src/index.ts index 8b419ccd7..2560d94c7 100644 --- a/packages/util/src/index.ts +++ b/packages/util/src/index.ts @@ -3,25 +3,4 @@ import './detectPackage'; -/** - * @summary Utility methods for this package are split into groups - */ -export { packageInfo } from './packageInfo'; - -export * from './array'; -export * from './assert'; -export * from './bn'; -export * from './buffer'; -export * from './compact'; -export * from './extractTime'; -export * from './format'; -export * from './hex'; -export * from './is'; -export * from './logger'; -export * from './memoize'; -export * from './number'; -export * from './promisify'; -export * from './string'; -export * from './stringify'; -export * from './u8a'; -export * from './versionDetect'; +export * from './bundle'; diff --git a/yarn.lock b/yarn.lock index 7dad36c0d..2e9e9a053 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2864,6 +2864,15 @@ __metadata: languageName: node linkType: hard +"acorn@npm:^5.2.1": + version: 5.7.4 + resolution: "acorn@npm:5.7.4" + bin: + acorn: bin/acorn + checksum: f51392a4d25c7705fadb890f784c59cde4ac1c5452ccd569fa59bd2191b7951b4a6398348ab7ea08a54f0bc0a56c13776710f4e1bae9de441e4d33e2015ad1e0 + languageName: node + linkType: hard + "acorn@npm:^7.1.1, acorn@npm:^7.4.0": version: 7.4.1 resolution: "acorn@npm:7.4.1" @@ -2915,6 +2924,13 @@ __metadata: languageName: node linkType: hard +"amdefine@npm:>=0.0.4": + version: 1.0.1 + resolution: "amdefine@npm:1.0.1" + checksum: 9d4e15b94641643a9385b2841b4cb2bcf4e8e2f741ea4bd475c93ad7bab261ad4ed827a32e9c549b38b98759c4526c173ae4e6dde8caeb75ee5cebedc9863762 + languageName: node + linkType: hard + "ansi-align@npm:^3.0.0": version: 3.0.0 resolution: "ansi-align@npm:3.0.0" @@ -3181,6 +3197,13 @@ __metadata: languageName: node linkType: hard +"ast-types@npm:0.9.6": + version: 0.9.6 + resolution: "ast-types@npm:0.9.6" + checksum: 6b75831c192963453eaeaedaa9db41823cd964bfb9c40ad8da6e978393dd66611f8cc4f778ecabce6a4a9b44a04c83b2571d98fcb561b87596d7b2ea796447db + languageName: node + linkType: hard + "astral-regex@npm:^2.0.0": version: 2.0.0 resolution: "astral-regex@npm:2.0.0" @@ -3420,6 +3443,13 @@ __metadata: languageName: node linkType: hard +"base62@npm:^1.1.0": + version: 1.2.8 + resolution: "base62@npm:1.2.8" + checksum: bfad0f60d300f8166c2c392f28273449aed451d4e7d99ce28f14605833a3220d6a7943366474b2dc1d5a9ff579846e60bb22d56b88358c2ac1a9a04f388760ed + languageName: node + linkType: hard + "base64-js@npm:^1.3.1, base64-js@npm:^1.5.1": version: 1.5.1 resolution: "base64-js@npm:1.5.1" @@ -4060,7 +4090,7 @@ __metadata: languageName: node linkType: hard -"commander@npm:^2.16.0, commander@npm:^2.18.0, commander@npm:^2.20.3, commander@npm:^2.8.1": +"commander@npm:^2.16.0, commander@npm:^2.18.0, commander@npm:^2.20.3, commander@npm:^2.5.0, commander@npm:^2.8.1": version: 2.20.3 resolution: "commander@npm:2.20.3" checksum: ab8c07884e42c3a8dbc5dd9592c606176c7eb5c1ca5ff274bcf907039b2c41de3626f684ea75ccf4d361ba004bbaff1f577d5384c155f3871e456bdf27becf9e @@ -4088,6 +4118,25 @@ __metadata: languageName: node linkType: hard +"commoner@npm:^0.10.1": + version: 0.10.8 + resolution: "commoner@npm:0.10.8" + dependencies: + commander: ^2.5.0 + detective: ^4.3.1 + glob: ^5.0.15 + graceful-fs: ^4.1.2 + iconv-lite: ^0.4.5 + mkdirp: ^0.5.0 + private: ^0.1.6 + q: ^1.1.2 + recast: ^0.11.17 + bin: + commonize: ./bin/commonize + checksum: 26104e3028a2f799421a59508b50d267f2eda580d1021d24a69acfe4d2a276e881c81991959c580f87330425fa38a7c205cddacacbb1826690d17d211f53f449 + languageName: node + linkType: hard + "component-emitter@npm:^1.2.1": version: 1.3.0 resolution: "component-emitter@npm:1.3.0" @@ -4462,6 +4511,13 @@ __metadata: languageName: node linkType: hard +"defined@npm:^1.0.0": + version: 1.0.0 + resolution: "defined@npm:1.0.0" + checksum: 77672997c5001773371c4dbcce98da0b3dc43089d6da2ad87c4b800adb727633cea8723ea3889fe0c2112a2404e2fd07e3bfd0e55f7426aa6441d8992045dbd5 + languageName: node + linkType: hard + "delayed-stream@npm:~1.0.0": version: 1.0.0 resolution: "delayed-stream@npm:1.0.0" @@ -4630,6 +4686,16 @@ __metadata: languageName: node linkType: hard +"detective@npm:^4.3.1": + version: 4.7.1 + resolution: "detective@npm:4.7.1" + dependencies: + acorn: ^5.2.1 + defined: ^1.0.0 + checksum: 87531cb2f2f07feed75b68aa4d6f08ff46adef4e3b332cbff81a13256a298ab83cec7ff9b84f4c1cf532d4def58472cb3e75a31e2c0e19c3915582437bc29b86 + languageName: node + linkType: hard + "diff-sequences@npm:^26.6.2": version: 26.6.2 resolution: "diff-sequences@npm:26.6.2" @@ -4768,6 +4834,15 @@ __metadata: languageName: node linkType: hard +"empty@npm:^0.10.1": + version: 0.10.1 + resolution: "empty@npm:0.10.1" + dependencies: + envify: ^3.4.0 + checksum: add4304ed25c87e92fe750c171a4f4e0c9b063bd8b577bdefd9e1ee6241ec23b776c8e0a18d97eb558ed820dc38d9a71158a3d7375564b810489761942e83ef1 + languageName: node + linkType: hard + "end-of-stream@npm:^1.1.0, end-of-stream@npm:^1.4.1": version: 1.4.4 resolution: "end-of-stream@npm:1.4.4" @@ -4803,6 +4878,18 @@ __metadata: languageName: node linkType: hard +"envify@npm:^3.4.0": + version: 3.4.1 + resolution: "envify@npm:3.4.1" + dependencies: + jstransform: ^11.0.3 + through: ~2.3.4 + bin: + envify: bin/envify + checksum: a4fb63291b1cca6c5b161ffd7f0d294a97d3de7150031ab79e45e57f958c031753a963063cc9bc9177f5604b1adc217297fe455b0cfada7673ec82fecb5f803f + languageName: node + linkType: hard + "error-ex@npm:^1.3.1": version: 1.3.2 resolution: "error-ex@npm:1.3.2" @@ -5211,6 +5298,16 @@ __metadata: languageName: node linkType: hard +"esprima-fb@npm:^15001.1.0-dev-harmony-fb": + version: 15001.1.0-dev-harmony-fb + resolution: "esprima-fb@npm:15001.1.0-dev-harmony-fb" + bin: + esparse: ./bin/esparse.js + esvalidate: ./bin/esvalidate.js + checksum: dc5ffe9af81632df7383164a9dccddb5d86cf8732527f87b3caf964ed568168c0d747133cdda1926badbb2c92b9ad8c7c9113e75ab04f3a5fc3ab15a78db0960 + languageName: node + linkType: hard + "esprima@npm:4.0.1, esprima@npm:^4.0.0, esprima@npm:^4.0.1": version: 4.0.1 resolution: "esprima@npm:4.0.1" @@ -5221,6 +5318,16 @@ __metadata: languageName: node linkType: hard +"esprima@npm:~3.1.0": + version: 3.1.3 + resolution: "esprima@npm:3.1.3" + bin: + esparse: ./bin/esparse.js + esvalidate: ./bin/esvalidate.js + checksum: 2771c059aa61f2b2fe9d898f11c737c45c26eae6052908f1e2b8bd91c6a440607420f2679cbfd6cbb79f2fa502b37a3053048d287bcd30ea582d46c969fcf67e + languageName: node + linkType: hard + "esquery@npm:^1.4.0": version: 1.4.0 resolution: "esquery@npm:1.4.0" @@ -6008,6 +6115,19 @@ fsevents@~2.1.2: languageName: node linkType: hard +"glob@npm:^5.0.15": + version: 5.0.15 + resolution: "glob@npm:5.0.15" + dependencies: + inflight: ^1.0.4 + inherits: 2 + minimatch: 2 || 3 + once: ^1.3.0 + path-is-absolute: ^1.0.0 + checksum: f9742448303460672607e569457f1b57e486a79a985e269b69465834d2075b243378225f65dc54c09fcd4b75e4fb34442aec88f33f8c65fa4abccc8ee2dc2f5d + languageName: node + linkType: hard + "glob@npm:^7.0.0, glob@npm:^7.0.3, glob@npm:^7.1.1, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6, glob@npm:^7.1.7": version: 7.1.7 resolution: "glob@npm:7.1.7" @@ -6335,7 +6455,7 @@ fsevents@~2.1.2: languageName: node linkType: hard -"iconv-lite@npm:0.4.24, iconv-lite@npm:^0.4.24": +"iconv-lite@npm:0.4.24, iconv-lite@npm:^0.4.24, iconv-lite@npm:^0.4.5": version: 0.4.24 resolution: "iconv-lite@npm:0.4.24" dependencies: @@ -7709,6 +7829,21 @@ fsevents@~2.1.2: languageName: node linkType: hard +"jstransform@npm:^11.0.3": + version: 11.0.3 + resolution: "jstransform@npm:11.0.3" + dependencies: + base62: ^1.1.0 + commoner: ^0.10.1 + esprima-fb: ^15001.1.0-dev-harmony-fb + object-assign: ^2.0.0 + source-map: ^0.4.2 + bin: + jstransform: bin/jstransform + checksum: 90c3c3e7100a542c83bc4542337c2e6b5da72e450510551bfb4bdf93c20d9bbafa350cf3fe99205af0caa1a85d9bdb1ec284bee8018d06fe4ff129a467010e8c + languageName: node + linkType: hard + "jsx-ast-utils@npm:^2.4.1 || ^3.0.0": version: 3.2.0 resolution: "jsx-ast-utils@npm:3.2.0" @@ -8200,7 +8335,7 @@ fsevents@~2.1.2: languageName: node linkType: hard -"minimatch@npm:^3.0.4": +"minimatch@npm:2 || 3, minimatch@npm:^3.0.4": version: 3.0.4 resolution: "minimatch@npm:3.0.4" dependencies: @@ -8252,6 +8387,17 @@ fsevents@~2.1.2: languageName: node linkType: hard +"mkdirp@npm:^0.5.0": + version: 0.5.5 + resolution: "mkdirp@npm:0.5.5" + dependencies: + minimist: ^1.2.5 + bin: + mkdirp: bin/cmd.js + checksum: 3bce20ea525f9477befe458ab85284b0b66c8dc3812f94155af07c827175948cdd8114852ac6c6d82009b13c1048c37f6d98743eb019651ee25c39acc8aabe7d + languageName: node + linkType: hard + "mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": version: 1.0.4 resolution: "mkdirp@npm:1.0.4" @@ -8576,6 +8722,13 @@ fsevents@~2.1.2: languageName: node linkType: hard +"object-assign@npm:^2.0.0": + version: 2.1.1 + resolution: "object-assign@npm:2.1.1" + checksum: d37a7d7173408e07ee225116437592d92b584b2a5f38cafe608400b43efd9b78878dbd545b524aff5b4118d88e39466b9038b2d3de8885e212adad497d656c46 + languageName: node + linkType: hard + "object-assign@npm:^4.0.1, object-assign@npm:^4.1.0, object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" @@ -9267,6 +9420,13 @@ fsevents@~2.1.2: languageName: node linkType: hard +"private@npm:^0.1.6, private@npm:~0.1.5": + version: 0.1.8 + resolution: "private@npm:0.1.8" + checksum: a00abd713d25389f6de7294f0e7879b8a5d09a9ec5fd81cc2f21b29d4f9a80ec53bc4222927d3a281d4aadd4cd373d9a28726fca3935921950dc75fd71d1fdbb + languageName: node + linkType: hard + "process-nextick-args@npm:~2.0.0": version: 2.0.1 resolution: "process-nextick-args@npm:2.0.1" @@ -9363,6 +9523,13 @@ fsevents@~2.1.2: languageName: node linkType: hard +"q@npm:^1.1.2": + version: 1.5.1 + resolution: "q@npm:1.5.1" + checksum: 147baa93c805bc1200ed698bdf9c72e9e42c05f96d007e33a558b5fdfd63e5ea130e99313f28efc1783e90e6bdb4e48b67a36fcc026b7b09202437ae88a1fb12 + languageName: node + linkType: hard + "qs@npm:~6.5.2": version: 6.5.2 resolution: "qs@npm:6.5.2" @@ -9483,6 +9650,18 @@ fsevents@~2.1.2: languageName: node linkType: hard +"recast@npm:^0.11.17": + version: 0.11.23 + resolution: "recast@npm:0.11.23" + dependencies: + ast-types: 0.9.6 + esprima: ~3.1.0 + private: ~0.1.5 + source-map: ~0.5.0 + checksum: e2a6f973fa8e7f4aac6fdebd27706d67570c71d127632f15fad350a430c63b0dcdd9d7ceffad547b07114b5d28895e6fe078a287c1f8e5410c90aaa7289787ac + languageName: node + linkType: hard + "rechoir@npm:^0.6.2": version: 0.6.2 resolution: "rechoir@npm:0.6.2" @@ -9860,6 +10039,7 @@ resolve@^2.0.0-next.3: "@polkadot/dev": ^0.62.52 "@polkadot/ts": ^0.4.3 "@types/jest": ^26.0.23 + empty: ^0.10.1 languageName: unknown linkType: soft @@ -10213,7 +10393,16 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard -"source-map@npm:^0.5.0, source-map@npm:^0.5.6": +"source-map@npm:^0.4.2": + version: 0.4.4 + resolution: "source-map@npm:0.4.4" + dependencies: + amdefine: ">=0.0.4" + checksum: b31992fcb4a2a6c335617f187bd36f392896dfcc111830ebdb8b716923cf6554b665833b975fc998bdf3a63881b2c8b4c5c34fda0280357b8c18fe6aa5d148ea + languageName: node + linkType: hard + +"source-map@npm:^0.5.0, source-map@npm:^0.5.6, source-map@npm:~0.5.0": version: 0.5.7 resolution: "source-map@npm:0.5.7" checksum: 5dc2043b93d2f194142c7f38f74a24670cd7a0063acdaf4bf01d2964b402257ae843c2a8fa822ad5b71013b5fcafa55af7421383da919752f22ff488bc553f4d @@ -10727,7 +10916,7 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard -"through@npm:^2.3.6": +"through@npm:^2.3.6, through@npm:~2.3.4": version: 2.3.8 resolution: "through@npm:2.3.8" checksum: a38c3e059853c494af95d50c072b83f8b676a9ba2818dcc5b108ef252230735c54e0185437618596c790bbba8fcdaef5b290405981ffa09dce67b1f1bf190cbd