Remove usage of {describe, it}.each (#1746)
* Remove usage of {describe, it}.each
* Bump dev
* Reference test types once per module
This commit is contained in:
+3
-4
@@ -21,7 +21,7 @@
|
||||
],
|
||||
"scripts": {
|
||||
"build": "polkadot-dev-build-ts",
|
||||
"build:networks": "yarn test:one packages/networks/src",
|
||||
"build:networks": "polkadot-dev-run-test --env browser packages/networks/src",
|
||||
"build:release": "polkadot-ci-ghact-build",
|
||||
"build:rollup": "polkadot-exec-rollup --config",
|
||||
"clean": "polkadot-dev-clean-build",
|
||||
@@ -31,12 +31,11 @@
|
||||
"test": "polkadot-dev-run-test --env browser ^mnemonic/toMiniSecretCmp",
|
||||
"test:mnemonicCmp": "polkadot-dev-run-test --env browser mnemonic/toMiniSecretCmp",
|
||||
"test:node": "polkadot-dev-run-test --env browser ^mnemonic/toMiniSecretCmp",
|
||||
"test:one": "polkadot-dev-run-test --env browser -- --runInBand"
|
||||
"test:one": "polkadot-dev-run-test --env browser"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.21.0",
|
||||
"@polkadot/dev": "^0.69.5",
|
||||
"@types/jest": "^29.4.0"
|
||||
"@polkadot/dev": "^0.69.7"
|
||||
},
|
||||
"resolutions": {
|
||||
"typescript": "^4.9.5"
|
||||
|
||||
@@ -1,16 +1,21 @@
|
||||
// Copyright 2017-2023 @polkadot/hw-ledger authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
// eslint-disable-next-line spaced-comment
|
||||
/// <reference types="@polkadot/dev/node/test/node" />
|
||||
|
||||
import { supportedApps } from '@zondax/ledger-substrate';
|
||||
|
||||
import { ledgerApps } from './defaults';
|
||||
|
||||
describe('ledgerApps', (): void => {
|
||||
it.each(Object.keys(ledgerApps))('%s is available in @zondax/ledger-substrate', (k): void => {
|
||||
expect(
|
||||
supportedApps.find(({ name }) =>
|
||||
name === ledgerApps[k]
|
||||
)
|
||||
).toBeDefined();
|
||||
});
|
||||
for (const k of Object.keys(ledgerApps)) {
|
||||
it(`${k} is available in @zondax/ledger-substrate`, (): void => {
|
||||
expect(
|
||||
supportedApps.find(({ name }) =>
|
||||
name === ledgerApps[k]
|
||||
)
|
||||
).toBeDefined();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
// eslint-disable-next-line spaced-comment
|
||||
/// <reference types="@polkadot/dev/node/test/node" />
|
||||
|
||||
import type { KeyringPair$Json } from './types';
|
||||
|
||||
import { hexToU8a, stringToU8a } from '@polkadot/util';
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.21.0",
|
||||
"@polkadot/util": "10.4.3-3-x",
|
||||
"@substrate/ss58-registry": "^1.38.0"
|
||||
"@substrate/ss58-registry": "^1.39.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@polkadot/hw-ledger": "10.4.3-3-x"
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
// Copyright 2017-2023 @polkadot/networks authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
// eslint-disable-next-line spaced-comment
|
||||
/// <reference types="@polkadot/dev/node/test/node" />
|
||||
|
||||
import type { SubstrateNetwork } from './types';
|
||||
|
||||
import { knownGenesis, knownIcon, knownLedger, knownTestnet } from './defaults';
|
||||
|
||||
@@ -20,7 +20,7 @@ describe('@substrate/ss58-registry', (): void => {
|
||||
throw error;
|
||||
}
|
||||
|
||||
fs.writeFileSync(path.join(__dirname, './test/ss58registry.test.json'), json, { flag: 'w' });
|
||||
fs.writeFileSync(path.join(process.cwd(), 'packages/networks/src/test/ss58registry.test.json'), json, { flag: 'w' });
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1285,6 +1285,19 @@
|
||||
"standardAccount": "*25519",
|
||||
"website": "https://ajuna.io"
|
||||
},
|
||||
{
|
||||
"prefix": 1516,
|
||||
"network": "societal",
|
||||
"displayName": "Societal",
|
||||
"symbols": [
|
||||
"SCTL"
|
||||
],
|
||||
"decimals": [
|
||||
12
|
||||
],
|
||||
"standardAccount": "*25519",
|
||||
"website": "https://www.sctl.xyz"
|
||||
},
|
||||
{
|
||||
"prefix": 1985,
|
||||
"network": "seals",
|
||||
@@ -1377,11 +1390,11 @@
|
||||
"website": "https://chainflip.io/"
|
||||
},
|
||||
{
|
||||
"prefix": 2207,
|
||||
"network": "SNOW",
|
||||
"displayName": "SNOW: ICE Canary Network",
|
||||
"prefix": 2206,
|
||||
"network": "ICE",
|
||||
"displayName": "ICE Network",
|
||||
"symbols": [
|
||||
"ICZ"
|
||||
"ICY"
|
||||
],
|
||||
"decimals": [
|
||||
18
|
||||
@@ -1390,11 +1403,11 @@
|
||||
"website": "https://icenetwork.io"
|
||||
},
|
||||
{
|
||||
"prefix": 2208,
|
||||
"network": "ICE",
|
||||
"displayName": "ICE Network",
|
||||
"prefix": 2207,
|
||||
"network": "SNOW",
|
||||
"displayName": "SNOW: ICE Canary Network",
|
||||
"symbols": [
|
||||
"ICY"
|
||||
"ICZ"
|
||||
],
|
||||
"decimals": [
|
||||
18
|
||||
|
||||
@@ -11,43 +11,45 @@ describe('blake2AsHex', (): void => {
|
||||
await waitReady();
|
||||
});
|
||||
|
||||
describe.each([false, true])('onlyJs=%p', (onlyJs): void => {
|
||||
it('returns a 64-bit value (specified)', (): void => {
|
||||
expect(
|
||||
blake2AsHex('abc', 64, null, onlyJs)
|
||||
).toEqual('0xd8bb14d833d59559');
|
||||
});
|
||||
for (const onlyJs of [false, true]) {
|
||||
describe(`onlyJs=${(onlyJs && 'true') || 'false'}`, (): void => {
|
||||
it('returns a 64-bit value (specified)', (): void => {
|
||||
expect(
|
||||
blake2AsHex('abc', 64, null, onlyJs)
|
||||
).toEqual('0xd8bb14d833d59559');
|
||||
});
|
||||
|
||||
it('returns a 128-bit value (as specified)', (): void => {
|
||||
expect(
|
||||
blake2AsHex('abc', 128, null, onlyJs)
|
||||
).toEqual('0xcf4ab791c62b8d2b2109c90275287816');
|
||||
});
|
||||
it('returns a 128-bit value (as specified)', (): void => {
|
||||
expect(
|
||||
blake2AsHex('abc', 128, null, onlyJs)
|
||||
).toEqual('0xcf4ab791c62b8d2b2109c90275287816');
|
||||
});
|
||||
|
||||
it('returns a 128-bit value (as specified, with key)', (): void => {
|
||||
expect(
|
||||
blake2AsHex('abc', 128, new Uint8Array([1, 2]), onlyJs)
|
||||
).toEqual('0x36f3d08cda72a00ddf2be103eb5770d9');
|
||||
});
|
||||
it('returns a 128-bit value (as specified, with key)', (): void => {
|
||||
expect(
|
||||
blake2AsHex('abc', 128, new Uint8Array([1, 2]), onlyJs)
|
||||
).toEqual('0x36f3d08cda72a00ddf2be103eb5770d9');
|
||||
});
|
||||
|
||||
it('returns a 256-bit value (default)', (): void => {
|
||||
expect(
|
||||
blake2AsHex('abc', undefined, null, onlyJs)
|
||||
).toEqual('0xbddd813c634239723171ef3fee98579b94964e3bb1cb3e427262c8c068d52319');
|
||||
});
|
||||
it('returns a 256-bit value (default)', (): void => {
|
||||
expect(
|
||||
blake2AsHex('abc', undefined, null, onlyJs)
|
||||
).toEqual('0xbddd813c634239723171ef3fee98579b94964e3bb1cb3e427262c8c068d52319');
|
||||
});
|
||||
|
||||
it('returns a 512-bit value (as specified)', (): void => {
|
||||
expect(
|
||||
blake2AsHex('abc', 512, null, onlyJs)
|
||||
).toEqual('0xba80a53f981c4d0d6a2797b69f12f6e94c212f14685ac4b74b12bb6fdbffa2d17d87c5392aab792dc252d5de4533cc9518d38aa8dbf1925ab92386edd4009923');
|
||||
});
|
||||
it('returns a 512-bit value (as specified)', (): void => {
|
||||
expect(
|
||||
blake2AsHex('abc', 512, null, onlyJs)
|
||||
).toEqual('0xba80a53f981c4d0d6a2797b69f12f6e94c212f14685ac4b74b12bb6fdbffa2d17d87c5392aab792dc252d5de4533cc9518d38aa8dbf1925ab92386edd4009923');
|
||||
});
|
||||
|
||||
it('matches with the Rust implementation', (): void => {
|
||||
expect(
|
||||
blake2AsHex(
|
||||
hexToU8a('0x454545454545454545454545454545454545454545454545454545454545454501000000000000002481853da20b9f4322f34650fea5f240dcbfb266d02db94bfa0153c31f4a29dbdbf025dd4a69a6f4ee6e1577b251b655097e298b692cb34c18d3182cac3de0dc00000000'), 256, undefined, onlyJs
|
||||
)
|
||||
).toEqual('0x1025e5db74fdaf4d2818822dccf0e1604ae9ccc62f26cecfde23448ff0248abf');
|
||||
it('matches with the Rust implementation', (): void => {
|
||||
expect(
|
||||
blake2AsHex(
|
||||
hexToU8a('0x454545454545454545454545454545454545454545454545454545454545454501000000000000002481853da20b9f4322f34650fea5f240dcbfb266d02db94bfa0153c31f4a29dbdbf025dd4a69a6f4ee6e1577b251b655097e298b692cb34c18d3182cac3de0dc00000000'), 256, undefined, onlyJs
|
||||
)
|
||||
).toEqual('0x1025e5db74fdaf4d2818822dccf0e1604ae9ccc62f26cecfde23448ff0248abf');
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -12,39 +12,41 @@ describe('blake2AsU8a', (): void => {
|
||||
await waitReady();
|
||||
});
|
||||
|
||||
describe.each([false, true])('onlyJs=%p', (onlyJs): void => {
|
||||
it('returns a 64-bit value by default', (): void => {
|
||||
expect(
|
||||
blake2AsU8a('abc', undefined, undefined, onlyJs)
|
||||
).toEqual(
|
||||
new Uint8Array([189, 221, 129, 60, 99, 66, 57, 114, 49, 113, 239, 63, 238, 152, 87, 155, 148, 150, 78, 59, 177, 203, 62, 66, 114, 98, 200, 192, 104, 213, 35, 25])
|
||||
);
|
||||
});
|
||||
for (const onlyJs of [false, true]) {
|
||||
describe(`onlyJs=${(onlyJs && 'true') || 'false'}`, (): void => {
|
||||
it('returns a 64-bit value by default', (): void => {
|
||||
expect(
|
||||
blake2AsU8a('abc', undefined, undefined, onlyJs)
|
||||
).toEqual(
|
||||
new Uint8Array([189, 221, 129, 60, 99, 66, 57, 114, 49, 113, 239, 63, 238, 152, 87, 155, 148, 150, 78, 59, 177, 203, 62, 66, 114, 98, 200, 192, 104, 213, 35, 25])
|
||||
);
|
||||
});
|
||||
|
||||
it('returns a 128-bit value (as specified,)', (): void => {
|
||||
expect(
|
||||
blake2AsU8a('abc', 128, undefined, onlyJs)
|
||||
).toEqual(
|
||||
new Uint8Array([207, 74, 183, 145, 198, 43, 141, 43, 33, 9, 201, 2, 117, 40, 120, 22])
|
||||
);
|
||||
});
|
||||
it('returns a 128-bit value (as specified,)', (): void => {
|
||||
expect(
|
||||
blake2AsU8a('abc', 128, undefined, onlyJs)
|
||||
).toEqual(
|
||||
new Uint8Array([207, 74, 183, 145, 198, 43, 141, 43, 33, 9, 201, 2, 117, 40, 120, 22])
|
||||
);
|
||||
});
|
||||
|
||||
it('returns a 256-bit value (as specified)', (): void => {
|
||||
expect(
|
||||
blake2AsU8a('abc', 256, undefined, onlyJs)
|
||||
).toEqual(
|
||||
new Uint8Array([189, 221, 129, 60, 99, 66, 57, 114, 49, 113, 239, 63, 238, 152, 87, 155, 148, 150, 78, 59, 177, 203, 62, 66, 114, 98, 200, 192, 104, 213, 35, 25])
|
||||
);
|
||||
});
|
||||
it('returns a 256-bit value (as specified)', (): void => {
|
||||
expect(
|
||||
blake2AsU8a('abc', 256, undefined, onlyJs)
|
||||
).toEqual(
|
||||
new Uint8Array([189, 221, 129, 60, 99, 66, 57, 114, 49, 113, 239, 63, 238, 152, 87, 155, 148, 150, 78, 59, 177, 203, 62, 66, 114, 98, 200, 192, 104, 213, 35, 25])
|
||||
);
|
||||
});
|
||||
|
||||
it('returns a 512-bit value (as specified)', (): void => {
|
||||
expect(
|
||||
blake2AsU8a('abc', 512, undefined, onlyJs)
|
||||
).toEqual(
|
||||
hexToU8a('0xba80a53f981c4d0d6a2797b69f12f6e94c212f14685ac4b74b12bb6fdbffa2d17d87c5392aab792dc252d5de4533cc9518d38aa8dbf1925ab92386edd4009923')
|
||||
);
|
||||
it('returns a 512-bit value (as specified)', (): void => {
|
||||
expect(
|
||||
blake2AsU8a('abc', 512, undefined, onlyJs)
|
||||
).toEqual(
|
||||
hexToU8a('0xba80a53f981c4d0d6a2797b69f12f6e94c212f14685ac4b74b12bb6fdbffa2d17d87c5392aab792dc252d5de4533cc9518d38aa8dbf1925ab92386edd4009923')
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
it('has equivalent Wasm/Js outputs on hex inputs', (): void => {
|
||||
const a = blake2AsU8a('0x123456', 256, null, false);
|
||||
@@ -60,9 +62,11 @@ describe('blake2AsU8a', (): void => {
|
||||
expect(a).toEqual(b);
|
||||
});
|
||||
|
||||
describe.each([256, 512] as (256 | 512)[])('bitLength=$p', (bitLength): void => {
|
||||
perfWasm(`blake2AsU8a, bitLength=${bitLength}`, 64000, (input, onlyJs) =>
|
||||
blake2AsU8a(input, bitLength, null, onlyJs)
|
||||
);
|
||||
});
|
||||
for (const bitLength of <const> [256, 512]) {
|
||||
describe(`bitLength=${bitLength}`, (): void => {
|
||||
perfWasm(`blake2AsU8a, bitLength=${bitLength}`, 64000, (input, onlyJs) =>
|
||||
blake2AsU8a(input, bitLength, null, onlyJs)
|
||||
);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
// Copyright 2017-2023 @polkadot/util authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
// eslint-disable-next-line spaced-comment
|
||||
/// <reference types="@polkadot/dev/node/test/node" />
|
||||
|
||||
// no TS, this is not meant to be a global...
|
||||
export {};
|
||||
|
||||
describe('cryptoWaitReady', (): void => {
|
||||
|
||||
@@ -16,19 +16,21 @@ describe('ed25519Sign', (): void => {
|
||||
await waitReady();
|
||||
});
|
||||
|
||||
describe.each([false, true])('onlyJs=%p', (onlyJs): void => {
|
||||
it('returns a valid signature for the message', (): void => {
|
||||
expect(
|
||||
ed25519Sign(
|
||||
new Uint8Array([0x61, 0x62, 0x63, 0x64]),
|
||||
PAIR,
|
||||
onlyJs
|
||||
)
|
||||
).toEqual(
|
||||
new Uint8Array([28, 58, 206, 239, 249, 70, 59, 191, 166, 40, 219, 218, 235, 170, 25, 79, 10, 94, 9, 197, 34, 126, 1, 150, 246, 68, 28, 238, 36, 26, 172, 163, 168, 90, 202, 211, 126, 246, 57, 212, 43, 24, 88, 197, 240, 113, 118, 76, 37, 81, 91, 110, 236, 50, 144, 134, 100, 223, 220, 238, 34, 185, 211, 7])
|
||||
);
|
||||
for (const onlyJs of [false, true]) {
|
||||
describe(`onlyJs=${(onlyJs && 'true') || 'false'}`, (): void => {
|
||||
it('returns a valid signature for the message', (): void => {
|
||||
expect(
|
||||
ed25519Sign(
|
||||
new Uint8Array([0x61, 0x62, 0x63, 0x64]),
|
||||
PAIR,
|
||||
onlyJs
|
||||
)
|
||||
).toEqual(
|
||||
new Uint8Array([28, 58, 206, 239, 249, 70, 59, 191, 166, 40, 219, 218, 235, 170, 25, 79, 10, 94, 9, 197, 34, 126, 1, 150, 246, 68, 28, 238, 36, 26, 172, 163, 168, 90, 202, 211, 126, 246, 57, 212, 43, 24, 88, 197, 240, 113, 118, 76, 37, 81, 91, 110, 236, 50, 144, 134, 100, 223, 220, 238, 34, 185, 211, 7])
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
perfWasm('ed25519Sign', 250, (input, onlyJs) =>
|
||||
ed25519Sign(input, PAIR, onlyJs)
|
||||
|
||||
@@ -19,62 +19,64 @@ describe('ed25519Verify', (): void => {
|
||||
signature = new Uint8Array([28, 58, 206, 239, 249, 70, 59, 191, 166, 40, 219, 218, 235, 170, 25, 79, 10, 94, 9, 197, 34, 126, 1, 150, 246, 68, 28, 238, 36, 26, 172, 163, 168, 90, 202, 211, 126, 246, 57, 212, 43, 24, 88, 197, 240, 113, 118, 76, 37, 81, 91, 110, 236, 50, 144, 134, 100, 223, 220, 238, 34, 185, 211, 7]);
|
||||
});
|
||||
|
||||
describe.each([false, true])('onlyJs=%p', (onlyJs): void => {
|
||||
it('validates a correctly signed message', (): void => {
|
||||
expect(
|
||||
ed25519Verify(
|
||||
new Uint8Array([0x61, 0x62, 0x63, 0x64]),
|
||||
signature,
|
||||
publicKey,
|
||||
onlyJs
|
||||
)
|
||||
).toEqual(true);
|
||||
});
|
||||
for (const onlyJs of [false, true]) {
|
||||
describe(`onlyJs=${(onlyJs && 'true') || 'false'}`, (): void => {
|
||||
it('validates a correctly signed message', (): void => {
|
||||
expect(
|
||||
ed25519Verify(
|
||||
new Uint8Array([0x61, 0x62, 0x63, 0x64]),
|
||||
signature,
|
||||
publicKey,
|
||||
onlyJs
|
||||
)
|
||||
).toEqual(true);
|
||||
});
|
||||
|
||||
it('fails a correctly signed message (message changed)', (): void => {
|
||||
expect(
|
||||
ed25519Verify(
|
||||
new Uint8Array([0x61, 0x62, 0x63, 0x64, 0x65]),
|
||||
signature,
|
||||
publicKey,
|
||||
onlyJs
|
||||
)
|
||||
).toEqual(false);
|
||||
});
|
||||
it('fails a correctly signed message (message changed)', (): void => {
|
||||
expect(
|
||||
ed25519Verify(
|
||||
new Uint8Array([0x61, 0x62, 0x63, 0x64, 0x65]),
|
||||
signature,
|
||||
publicKey,
|
||||
onlyJs
|
||||
)
|
||||
).toEqual(false);
|
||||
});
|
||||
|
||||
it('fails a correctly signed message (signature changed)', (): void => {
|
||||
signature[0] = 0xff;
|
||||
it('fails a correctly signed message (signature changed)', (): void => {
|
||||
signature[0] = 0xff;
|
||||
|
||||
expect(
|
||||
ed25519Verify(
|
||||
new Uint8Array([0x61, 0x62, 0x63, 0x64]),
|
||||
signature,
|
||||
publicKey,
|
||||
onlyJs
|
||||
)
|
||||
).toEqual(false);
|
||||
});
|
||||
expect(
|
||||
ed25519Verify(
|
||||
new Uint8Array([0x61, 0x62, 0x63, 0x64]),
|
||||
signature,
|
||||
publicKey,
|
||||
onlyJs
|
||||
)
|
||||
).toEqual(false);
|
||||
});
|
||||
|
||||
it('throws error when publicKey lengths do not match', (): void => {
|
||||
expect(
|
||||
() => ed25519Verify(
|
||||
new Uint8Array([0x61, 0x62, 0x63, 0x64]),
|
||||
signature,
|
||||
new Uint8Array([1, 2]),
|
||||
onlyJs
|
||||
)
|
||||
).toThrow(/Invalid publicKey/);
|
||||
});
|
||||
it('throws error when publicKey lengths do not match', (): void => {
|
||||
expect(
|
||||
() => ed25519Verify(
|
||||
new Uint8Array([0x61, 0x62, 0x63, 0x64]),
|
||||
signature,
|
||||
new Uint8Array([1, 2]),
|
||||
onlyJs
|
||||
)
|
||||
).toThrow(/Invalid publicKey/);
|
||||
});
|
||||
|
||||
it('throws error when signature lengths do not match', (): void => {
|
||||
expect(
|
||||
() => ed25519Verify(
|
||||
new Uint8Array([0x61, 0x62, 0x63, 0x64]),
|
||||
new Uint8Array([1, 2]),
|
||||
publicKey,
|
||||
onlyJs
|
||||
)
|
||||
).toThrow(/Invalid signature/);
|
||||
it('throws error when signature lengths do not match', (): void => {
|
||||
expect(
|
||||
() => ed25519Verify(
|
||||
new Uint8Array([0x61, 0x62, 0x63, 0x64]),
|
||||
new Uint8Array([1, 2]),
|
||||
publicKey,
|
||||
onlyJs
|
||||
)
|
||||
).toThrow(/Invalid signature/);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -23,17 +23,21 @@ describe('hmacShaAsU8a', (): void => {
|
||||
)
|
||||
};
|
||||
|
||||
describe.each([256, 512] as (256 | 512)[])('bitLength=%p', (bitLength): void => {
|
||||
describe.each([false, true])('onlyJs=%p', (onlyJs): void => {
|
||||
it('returns an hex representation (string)', (): void => {
|
||||
expect(
|
||||
hmacShaAsU8a(key, data, bitLength, onlyJs)
|
||||
).toEqual(output[bitLength]);
|
||||
});
|
||||
for (const bitLength of <const> [256, 512]) {
|
||||
describe(`bitLength=${bitLength}`, (): void => {
|
||||
for (const onlyJs of [false, true]) {
|
||||
describe(`onlyJs=${(onlyJs && 'true') || 'false'}`, (): void => {
|
||||
it('returns an hex representation (string)', (): void => {
|
||||
expect(
|
||||
hmacShaAsU8a(key, data, bitLength, onlyJs)
|
||||
).toEqual(output[bitLength]);
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
perfWasm(`hmacShaAsU8a, bitLength=${bitLength}`, 16000, (input, onlyJs) =>
|
||||
hmacShaAsU8a(input, input, bitLength, onlyJs)
|
||||
);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -22,29 +22,33 @@ describe('keccakAsU8a', (): void => {
|
||||
)
|
||||
};
|
||||
|
||||
describe.each([256, 512] as (256 | 512)[])('bitLength=$p', (bitLength): void => {
|
||||
describe.each([false, true])('onlyJs=%p', (onlyJs): void => {
|
||||
it('returns an hex representation (string)', (): void => {
|
||||
expect(
|
||||
keccakAsU8a(input, bitLength, onlyJs)
|
||||
).toEqual(output[bitLength]);
|
||||
});
|
||||
for (const bitLength of <const> [256, 512]) {
|
||||
describe(`bitLength=${bitLength}`, (): void => {
|
||||
for (const onlyJs of [false, true]) {
|
||||
describe(`onlyJs=${(onlyJs && 'true') || 'false'}`, (): void => {
|
||||
it('returns an hex representation (string)', (): void => {
|
||||
expect(
|
||||
keccakAsU8a(input, bitLength, onlyJs)
|
||||
).toEqual(output[bitLength]);
|
||||
});
|
||||
|
||||
it('returns an hex representation (Buffer)', (): void => {
|
||||
expect(
|
||||
keccakAsU8a(Buffer.from(input), bitLength, onlyJs)
|
||||
).toEqual(output[bitLength]);
|
||||
});
|
||||
it('returns an hex representation (Buffer)', (): void => {
|
||||
expect(
|
||||
keccakAsU8a(Buffer.from(input), bitLength, onlyJs)
|
||||
).toEqual(output[bitLength]);
|
||||
});
|
||||
|
||||
it('returns an hex representation (Uint8Array)', (): void => {
|
||||
expect(
|
||||
keccakAsU8a(stringToU8a(input), bitLength, onlyJs)
|
||||
).toEqual(output[bitLength]);
|
||||
});
|
||||
it('returns an hex representation (Uint8Array)', (): void => {
|
||||
expect(
|
||||
keccakAsU8a(stringToU8a(input), bitLength, onlyJs)
|
||||
).toEqual(output[bitLength]);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
perfWasm(`keccakAsU8a, bitLength=${bitLength}`, 128000, (input, onlyJs) =>
|
||||
keccakAsU8a(input, bitLength, onlyJs)
|
||||
);
|
||||
});
|
||||
|
||||
perfWasm(`keccakAsU8a, bitLength=${bitLength}`, 128000, (input, onlyJs) =>
|
||||
keccakAsU8a(input, bitLength, onlyJs)
|
||||
);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -16,22 +16,26 @@ describe('mnemonicGenerate', (): void => {
|
||||
).toEqual(true);
|
||||
});
|
||||
|
||||
describe.each([false, true])('onlyJs=%p', (onlyJs): void => {
|
||||
it.each([12, 15, 18, 21, 24] as 12[])('generates a valid mnemonic (%p words)', (num): void => {
|
||||
const mnemonic = mnemonicGenerate(num, onlyJs);
|
||||
const isValid = mnemonicValidate(mnemonic);
|
||||
for (const onlyJs of [false, true]) {
|
||||
describe(`onlyJs=${(onlyJs && 'true') || 'false'}`, (): void => {
|
||||
for (const num of <const> [12, 15, 18, 21, 24]) {
|
||||
it(`generates a valid mnemonic (${num} words)`, (): void => {
|
||||
const mnemonic = mnemonicGenerate(num, onlyJs);
|
||||
const isValid = mnemonicValidate(mnemonic);
|
||||
|
||||
expect(mnemonic.split(' ')).toHaveLength(num);
|
||||
expect(isValid).toEqual(true);
|
||||
expect(mnemonic.split(' ')).toHaveLength(num);
|
||||
expect(isValid).toEqual(true);
|
||||
});
|
||||
}
|
||||
|
||||
it('generates non-deterministic', (): void => {
|
||||
const m1 = mnemonicGenerate(24, onlyJs);
|
||||
const m2 = mnemonicGenerate(24, onlyJs);
|
||||
|
||||
expect(m1 === m2).toEqual(false);
|
||||
expect(mnemonicValidate(m1)).toEqual(true);
|
||||
expect(mnemonicValidate(m2)).toEqual(true);
|
||||
});
|
||||
});
|
||||
|
||||
it('generates not deterministic', (): void => {
|
||||
const m1 = mnemonicGenerate(24, onlyJs);
|
||||
const m2 = mnemonicGenerate(24, onlyJs);
|
||||
|
||||
expect(m1 === m2).toEqual(false);
|
||||
expect(mnemonicValidate(m1)).toEqual(true);
|
||||
expect(mnemonicValidate(m2)).toEqual(true);
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -12,11 +12,13 @@ describe('mnemonicToEntropy', (): void => {
|
||||
await cryptoWaitReady();
|
||||
});
|
||||
|
||||
describe.each([false, true])('onlyJs=%p', (onlyJs): void => {
|
||||
tests.forEach(([mnemonic, entropy], index): void => {
|
||||
it(`Created correct entropy for ${index}`, (): void => {
|
||||
expect(u8aToHex(mnemonicToEntropy(mnemonic, onlyJs))).toEqual(entropy);
|
||||
for (const onlyJs of [false, true]) {
|
||||
describe(`onlyJs=${(onlyJs && 'true') || 'false'}`, (): void => {
|
||||
tests.forEach(([mnemonic, entropy], index): void => {
|
||||
it(`Created correct entropy for ${index}`, (): void => {
|
||||
expect(u8aToHex(mnemonicToEntropy(mnemonic, onlyJs))).toEqual(entropy);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -15,32 +15,36 @@ describe('mnemonicToLegacySeed', (): void => {
|
||||
await waitReady();
|
||||
});
|
||||
|
||||
it.each([undefined, 'foo', 'bar'])('generates Wasm & Js equivalents (password = %p', (password): void => {
|
||||
expect(
|
||||
u8aEq(
|
||||
mnemonicToLegacySeed(MNEMONIC, password, true),
|
||||
mnemonicToLegacySeed(MNEMONIC, password, false)
|
||||
)
|
||||
).toEqual(true);
|
||||
});
|
||||
|
||||
describe.each([false, true])('onlyJs=%p', (onlyJs): void => {
|
||||
it('generates a valid 64bytes seed', (): void => {
|
||||
for (const password of [undefined, 'foo', 'bar']) {
|
||||
it(`generates Wasm & Js equivalents for password=${password || 'undefined'}`, (): void => {
|
||||
expect(
|
||||
u8aToHex(mnemonicToLegacySeed(MNEMONIC, undefined, onlyJs, 64))
|
||||
).toEqual(SEED_64);
|
||||
u8aEq(
|
||||
mnemonicToLegacySeed(MNEMONIC, password, true),
|
||||
mnemonicToLegacySeed(MNEMONIC, password, false)
|
||||
)
|
||||
).toEqual(true);
|
||||
});
|
||||
}
|
||||
|
||||
it('generates a valid 32bytes seed', (): void => {
|
||||
expect(
|
||||
u8aToHex(mnemonicToLegacySeed(MNEMONIC, undefined, onlyJs))
|
||||
).toEqual(SEED_32);
|
||||
});
|
||||
for (const onlyJs of [false, true]) {
|
||||
describe(`onlyJs=${(onlyJs && 'true') || 'false'}`, (): void => {
|
||||
it('generates a valid 64bytes seed', (): void => {
|
||||
expect(
|
||||
u8aToHex(mnemonicToLegacySeed(MNEMONIC, undefined, onlyJs, 64))
|
||||
).toEqual(SEED_64);
|
||||
});
|
||||
|
||||
it('fails with non-mnemonics', (): void => {
|
||||
expect(
|
||||
() => mnemonicToLegacySeed('foo bar baz', undefined, onlyJs)
|
||||
).toThrow(/mnemonic specified/);
|
||||
it('generates a valid 32bytes seed', (): void => {
|
||||
expect(
|
||||
u8aToHex(mnemonicToLegacySeed(MNEMONIC, undefined, onlyJs))
|
||||
).toEqual(SEED_32);
|
||||
});
|
||||
|
||||
it('fails with non-mnemonics', (): void => {
|
||||
expect(
|
||||
() => mnemonicToLegacySeed('foo bar baz', undefined, onlyJs)
|
||||
).toThrow(/mnemonic specified/);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -15,37 +15,41 @@ describe('mnemonicToMiniSecret', (): void => {
|
||||
await cryptoWaitReady();
|
||||
});
|
||||
|
||||
it.each([undefined, 'foo', 'bar'])('generates Wasm & Js equivalents for password = %p', (password): void => {
|
||||
expect(
|
||||
u8aEq(
|
||||
mnemonicToMiniSecret(MNEMONIC, password, true),
|
||||
mnemonicToMiniSecret(MNEMONIC, password, false)
|
||||
)
|
||||
).toEqual(true);
|
||||
});
|
||||
|
||||
describe.each([false, true])('onlyJs=%p', (onlyJs): void => {
|
||||
it('generates a valid seed', (): void => {
|
||||
for (const password of [undefined, 'foo', 'bar']) {
|
||||
it(`generates Wasm & Js equivalents for password=${password || 'undefined'}`, (): void => {
|
||||
expect(
|
||||
u8aToHex(mnemonicToMiniSecret(MNEMONIC, undefined, onlyJs))
|
||||
).toEqual(SEED);
|
||||
u8aEq(
|
||||
mnemonicToMiniSecret(MNEMONIC, password, true),
|
||||
mnemonicToMiniSecret(MNEMONIC, password, false)
|
||||
)
|
||||
).toEqual(true);
|
||||
});
|
||||
}
|
||||
|
||||
it('fails with non-mnemonics', (): void => {
|
||||
expect(
|
||||
() => mnemonicToMiniSecret('foo bar baz', undefined, onlyJs)
|
||||
).toThrow(/mnemonic specified/);
|
||||
});
|
||||
|
||||
tests.forEach(([mnemonic, , seed], index): void => {
|
||||
it(`Created correct seed for ${index}`, (): void => {
|
||||
for (const onlyJs of [false, true]) {
|
||||
describe(`onlyJs=${(onlyJs && 'true') || 'false'}`, (): void => {
|
||||
it('generates a valid seed', (): void => {
|
||||
expect(
|
||||
u8aToHex(mnemonicToMiniSecret(mnemonic, 'Substrate', onlyJs))
|
||||
).toEqual(
|
||||
// mini returned here, only check first 32-bytes (64 hex + 2 prefix)
|
||||
seed.substring(0, 66)
|
||||
);
|
||||
u8aToHex(mnemonicToMiniSecret(MNEMONIC, undefined, onlyJs))
|
||||
).toEqual(SEED);
|
||||
});
|
||||
|
||||
it('fails with non-mnemonics', (): void => {
|
||||
expect(
|
||||
() => mnemonicToMiniSecret('foo bar baz', undefined, onlyJs)
|
||||
).toThrow(/mnemonic specified/);
|
||||
});
|
||||
|
||||
tests.forEach(([mnemonic, , seed], index): void => {
|
||||
it(`Created correct seed for ${index}`, (): void => {
|
||||
expect(
|
||||
u8aToHex(mnemonicToMiniSecret(mnemonic, 'Substrate', onlyJs))
|
||||
).toEqual(
|
||||
// mini returned here, only check first 32-bytes (64 hex + 2 prefix)
|
||||
seed.substring(0, 66)
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -13,42 +13,52 @@ const NUM_RUNS = 100;
|
||||
const NUM_CHECKS = 5;
|
||||
|
||||
// generate either a JS or WASM mnemonic
|
||||
describe.each([true, false])('mnemonicToMiniSecret (compare), onlyJsMnemonic=%p', (onlyJsMnemonic): void => {
|
||||
// loop through lots of mnemonics
|
||||
describe.each(arrayRange(NUM_RUNS))('run=%p', (): void => {
|
||||
// compare both JS and WASM outputs against original
|
||||
describe.each([true, false])('onlyJsMini=%p', async (onlyJsMini): Promise<void> => {
|
||||
await cryptoWaitReady();
|
||||
for (const onlyJsMnemonic of [false, true]) {
|
||||
describe(`mnemonicToMiniSecret (conpare), onlyJs${(onlyJsMnemonic && 'true') || 'false'}`, (): void => {
|
||||
for (const i of arrayRange(NUM_RUNS)) {
|
||||
// loop through lots of mnemonics
|
||||
describe(`run=${i + 1}`, (): void => {
|
||||
// compare both JS and WASM outputs against original
|
||||
for (const onlyJsMini of [false, true]) {
|
||||
describe(`onlyJsMini=${(onlyJsMini && 'true') || 'false'}`, (): void => {
|
||||
beforeAll(async () => {
|
||||
await cryptoWaitReady();
|
||||
});
|
||||
|
||||
// NOTE we cannot actually use the onlyJsMnemonic flag here
|
||||
const mnemonic = mnemonicGenerate(12);
|
||||
// NOTE we cannot actually use the onlyJsMnemonic flag here
|
||||
const mnemonic = mnemonicGenerate(12);
|
||||
|
||||
describe(mnemonic, (): void => {
|
||||
// do iterations to check and re-check that all matches
|
||||
it.each(arrayRange(NUM_CHECKS))('check=%p', (count): void => {
|
||||
const minisecret = mnemonicToMiniSecret(mnemonic, count ? `${count}` : '', onlyJsMnemonic);
|
||||
const edpub = ed25519PairFromSeed(minisecret).publicKey;
|
||||
const srpub = sr25519PairFromSeed(minisecret).publicKey;
|
||||
const testmini = mnemonicToMiniSecret(mnemonic, count ? `${count}` : '', onlyJsMini);
|
||||
describe(mnemonic, (): void => {
|
||||
// do iterations to check and re-check that all matches
|
||||
for (const count of arrayRange(NUM_CHECKS)) {
|
||||
it(`check=${count + 1}`, (): void => {
|
||||
const minisecret = mnemonicToMiniSecret(mnemonic, count ? `${count}` : '', onlyJsMnemonic);
|
||||
const edpub = ed25519PairFromSeed(minisecret).publicKey;
|
||||
const srpub = sr25519PairFromSeed(minisecret).publicKey;
|
||||
const testmini = mnemonicToMiniSecret(mnemonic, count ? `${count}` : '', onlyJsMini);
|
||||
|
||||
// explicit minisecret compare
|
||||
expect(
|
||||
u8aEq(minisecret, testmini)
|
||||
).toEqual(true);
|
||||
// explicit minisecret compare
|
||||
expect(
|
||||
u8aEq(minisecret, testmini)
|
||||
).toEqual(true);
|
||||
|
||||
// compare the sr25519 keypair generated
|
||||
expect(
|
||||
u8aEq(srpub, sr25519PairFromSeed(testmini).publicKey)
|
||||
).toEqual(true);
|
||||
// compare the sr25519 keypair generated
|
||||
expect(
|
||||
u8aEq(srpub, sr25519PairFromSeed(testmini).publicKey)
|
||||
).toEqual(true);
|
||||
|
||||
// compare ed both in WASM and JS
|
||||
[true, false].forEach((onlyJsEd): void => {
|
||||
expect(
|
||||
u8aEq(edpub, ed25519PairFromSeed(testmini, onlyJsEd).publicKey)
|
||||
).toEqual(true);
|
||||
// compare ed both in WASM and JS
|
||||
[true, false].forEach((onlyJsEd): void => {
|
||||
expect(
|
||||
u8aEq(edpub, ed25519PairFromSeed(testmini, onlyJsEd).publicKey)
|
||||
).toEqual(true);
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@@ -21,26 +21,30 @@ describe('pbkdf2Encode', (): void => {
|
||||
await waitReady();
|
||||
});
|
||||
|
||||
it.each([256, 1024, 2048])('has equivalent Wasm & JS results (%p rounds)', (rounds): void => {
|
||||
const salt = randomAsU8a();
|
||||
for (const rounds of <const> [256, 1024, 2048]) {
|
||||
it(`has equivalent Wasm & JS results (${rounds} rounds)`, (): void => {
|
||||
const salt = randomAsU8a();
|
||||
|
||||
expect(
|
||||
u8aEq(
|
||||
pbkdf2Encode(TEST_PASSWORD, salt, rounds, false).password,
|
||||
pbkdf2Encode(TEST_PASSWORD, salt, rounds, true).password
|
||||
)
|
||||
).toBe(true);
|
||||
});
|
||||
|
||||
describe.each([false, true])('onlyJs=%p', (onlyJs): void => {
|
||||
it('creates known iterations', (): void => {
|
||||
expect(
|
||||
u8aToHex(pbkdf2Encode(TEST_PASSWORD, KNOWN_SALT, 2048, onlyJs).password)
|
||||
).toEqual(
|
||||
'0x600ba9ad65e4294d112e028fdad5dd8fce0a6a6e6b89fb36ed006785ccc3b3aec46831b3105c24237293e6cfa1a0ef6717c113f87ff9237a3f73d210adfa6634'
|
||||
);
|
||||
u8aEq(
|
||||
pbkdf2Encode(TEST_PASSWORD, salt, rounds, false).password,
|
||||
pbkdf2Encode(TEST_PASSWORD, salt, rounds, true).password
|
||||
)
|
||||
).toBe(true);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
for (const onlyJs of [false, true]) {
|
||||
describe(`onlyJs=${(onlyJs && 'true') || 'false'}`, (): void => {
|
||||
it('creates known iterations', (): void => {
|
||||
expect(
|
||||
u8aToHex(pbkdf2Encode(TEST_PASSWORD, KNOWN_SALT, 2048, onlyJs).password)
|
||||
).toEqual(
|
||||
'0x600ba9ad65e4294d112e028fdad5dd8fce0a6a6e6b89fb36ed006785ccc3b3aec46831b3105c24237293e6cfa1a0ef6717c113f87ff9237a3f73d210adfa6634'
|
||||
);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
perfWasm('pbkdf2Encode', 8, (input, onlyJs) =>
|
||||
pbkdf2Encode(input, input, undefined, onlyJs)
|
||||
|
||||
@@ -18,17 +18,19 @@ describe('scryptEncode', (): void => {
|
||||
await waitReady();
|
||||
});
|
||||
|
||||
describe.each([false, true])('onlyJs=%p', (onlyJs): void => {
|
||||
it('generates a known output', (): void => {
|
||||
expect(
|
||||
scryptEncode(KNOWN_TEST, KNOWN_SALT, undefined, onlyJs)
|
||||
).toEqual({
|
||||
params: DEFAULT_PARAMS,
|
||||
password: KNOWN_PASS,
|
||||
salt: KNOWN_SALT
|
||||
for (const onlyJs of [false, true]) {
|
||||
describe(`onlyJs=${(onlyJs && 'true') || 'false'}`, (): void => {
|
||||
it('generates a known output', (): void => {
|
||||
expect(
|
||||
scryptEncode(KNOWN_TEST, KNOWN_SALT, undefined, onlyJs)
|
||||
).toEqual({
|
||||
params: DEFAULT_PARAMS,
|
||||
password: KNOWN_PASS,
|
||||
salt: KNOWN_SALT
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
perfWasm('scryptEncode', 4, (input, onlyJs) =>
|
||||
scryptEncode(input, input, undefined, onlyJs)
|
||||
|
||||
@@ -12,29 +12,31 @@ describe('secp256k1Compress', (): void => {
|
||||
await waitReady();
|
||||
});
|
||||
|
||||
describe.each([false, true])('onlyJs=%p', (onlyJs): void => {
|
||||
it('returns a compressed key as-is', (): void => {
|
||||
expect(
|
||||
secp256k1Compress(
|
||||
hexToU8a('0x03b9dc646dd71118e5f7fda681ad9eca36eb3ee96f344f582fbe7b5bcdebb13077'),
|
||||
onlyJs
|
||||
)
|
||||
).toEqual(
|
||||
hexToU8a('0x03b9dc646dd71118e5f7fda681ad9eca36eb3ee96f344f582fbe7b5bcdebb13077')
|
||||
);
|
||||
});
|
||||
for (const onlyJs of [false, true]) {
|
||||
describe(`onlyJs=${(onlyJs && 'true') || 'false'}`, (): void => {
|
||||
it('returns a compressed key as-is', (): void => {
|
||||
expect(
|
||||
secp256k1Compress(
|
||||
hexToU8a('0x03b9dc646dd71118e5f7fda681ad9eca36eb3ee96f344f582fbe7b5bcdebb13077'),
|
||||
onlyJs
|
||||
)
|
||||
).toEqual(
|
||||
hexToU8a('0x03b9dc646dd71118e5f7fda681ad9eca36eb3ee96f344f582fbe7b5bcdebb13077')
|
||||
);
|
||||
});
|
||||
|
||||
it('compresses a known key', (): void => {
|
||||
expect(
|
||||
secp256k1Compress(
|
||||
hexToU8a('0x04b9dc646dd71118e5f7fda681ad9eca36eb3ee96f344f582fbe7b5bcdebb1307763fe926c273235fd979a134076d00fd1683cbd35868cb485d4a3a640e52184af'),
|
||||
onlyJs
|
||||
)
|
||||
).toEqual(
|
||||
hexToU8a('0x03b9dc646dd71118e5f7fda681ad9eca36eb3ee96f344f582fbe7b5bcdebb13077')
|
||||
);
|
||||
it('compresses a known key', (): void => {
|
||||
expect(
|
||||
secp256k1Compress(
|
||||
hexToU8a('0x04b9dc646dd71118e5f7fda681ad9eca36eb3ee96f344f582fbe7b5bcdebb1307763fe926c273235fd979a134076d00fd1683cbd35868cb485d4a3a640e52184af'),
|
||||
onlyJs
|
||||
)
|
||||
).toEqual(
|
||||
hexToU8a('0x03b9dc646dd71118e5f7fda681ad9eca36eb3ee96f344f582fbe7b5bcdebb13077')
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
perfWasm('secp256k1Compress', 100000, (input, onlyJs) => secp256k1Compress(input, onlyJs),
|
||||
[[
|
||||
|
||||
@@ -12,29 +12,31 @@ describe('secp256k1Expand', (): void => {
|
||||
await waitReady();
|
||||
});
|
||||
|
||||
describe.each([false, true])('onlyJs=%p', (onlyJs): void => {
|
||||
it('expands a known key', (): void => {
|
||||
expect(
|
||||
secp256k1Expand(
|
||||
hexToU8a('0x03b9dc646dd71118e5f7fda681ad9eca36eb3ee96f344f582fbe7b5bcdebb13077'),
|
||||
onlyJs
|
||||
)
|
||||
).toEqual(
|
||||
hexToU8a('0xb9dc646dd71118e5f7fda681ad9eca36eb3ee96f344f582fbe7b5bcdebb1307763fe926c273235fd979a134076d00fd1683cbd35868cb485d4a3a640e52184af')
|
||||
);
|
||||
});
|
||||
for (const onlyJs of [false, true]) {
|
||||
describe(`onlyJs=${(onlyJs && 'true') || 'false'}`, (): void => {
|
||||
it('expands a known key', (): void => {
|
||||
expect(
|
||||
secp256k1Expand(
|
||||
hexToU8a('0x03b9dc646dd71118e5f7fda681ad9eca36eb3ee96f344f582fbe7b5bcdebb13077'),
|
||||
onlyJs
|
||||
)
|
||||
).toEqual(
|
||||
hexToU8a('0xb9dc646dd71118e5f7fda681ad9eca36eb3ee96f344f582fbe7b5bcdebb1307763fe926c273235fd979a134076d00fd1683cbd35868cb485d4a3a640e52184af')
|
||||
);
|
||||
});
|
||||
|
||||
it('expands a known full key', (): void => {
|
||||
expect(
|
||||
secp256k1Expand(
|
||||
hexToU8a('0x04b9dc646dd71118e5f7fda681ad9eca36eb3ee96f344f582fbe7b5bcdebb1307763fe926c273235fd979a134076d00fd1683cbd35868cb485d4a3a640e52184af'),
|
||||
onlyJs
|
||||
)
|
||||
).toEqual(
|
||||
hexToU8a('0xb9dc646dd71118e5f7fda681ad9eca36eb3ee96f344f582fbe7b5bcdebb1307763fe926c273235fd979a134076d00fd1683cbd35868cb485d4a3a640e52184af')
|
||||
);
|
||||
it('expands a known full key', (): void => {
|
||||
expect(
|
||||
secp256k1Expand(
|
||||
hexToU8a('0x04b9dc646dd71118e5f7fda681ad9eca36eb3ee96f344f582fbe7b5bcdebb1307763fe926c273235fd979a134076d00fd1683cbd35868cb485d4a3a640e52184af'),
|
||||
onlyJs
|
||||
)
|
||||
).toEqual(
|
||||
hexToU8a('0xb9dc646dd71118e5f7fda681ad9eca36eb3ee96f344f582fbe7b5bcdebb1307763fe926c273235fd979a134076d00fd1683cbd35868cb485d4a3a640e52184af')
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
perfWasm('secp256k1Expand', 2000, (input, onlyJs) => secp256k1Expand(input, onlyJs),
|
||||
[[
|
||||
|
||||
@@ -49,21 +49,23 @@ describe('secp256k1PairFromSeed', (): void => {
|
||||
secretKey: hexToU8a('0x4380de832af797688026ce24f85204d508243f201650c1a134929e5458b7fbae')
|
||||
};
|
||||
|
||||
describe.each([false, true])('onlyJs=%p', (onlyJs): void => {
|
||||
it('generates a valid publicKey/secretKey pair (u8a)', (): void => {
|
||||
expect(secp256k1PairFromSeed(TEST, onlyJs)).toEqual(RESULT);
|
||||
});
|
||||
for (const onlyJs of [false, true]) {
|
||||
describe(`onlyJs=${(onlyJs && 'true') || 'false'}`, (): void => {
|
||||
it('generates a valid publicKey/secretKey pair (u8a)', (): void => {
|
||||
expect(secp256k1PairFromSeed(TEST, onlyJs)).toEqual(RESULT);
|
||||
});
|
||||
|
||||
tests.forEach(([mnemonic, secretKey, publicKey], index): void => {
|
||||
it(`creates valid against known (${index})`, (): void => {
|
||||
const seed = mnemonicToMiniSecret(mnemonic);
|
||||
const pair = secp256k1PairFromSeed(seed, onlyJs);
|
||||
tests.forEach(([mnemonic, secretKey, publicKey], index): void => {
|
||||
it(`creates valid against known (${index})`, (): void => {
|
||||
const seed = mnemonicToMiniSecret(mnemonic);
|
||||
const pair = secp256k1PairFromSeed(seed, onlyJs);
|
||||
|
||||
expect(u8aToHex(pair.secretKey)).toEqual(secretKey);
|
||||
expect(u8aToHex(pair.publicKey)).toEqual(publicKey);
|
||||
expect(u8aToHex(pair.secretKey)).toEqual(secretKey);
|
||||
expect(u8aToHex(pair.publicKey)).toEqual(publicKey);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
perfWasm('secp256k1PairFromSeed', 500, (input, onlyJs) =>
|
||||
secp256k1PairFromSeed(input, onlyJs)
|
||||
|
||||
@@ -16,14 +16,16 @@ describe('secp256k1Recover', (): void => {
|
||||
await waitReady();
|
||||
});
|
||||
|
||||
describe.each([false, true])('onlyJs=%p', (onlyJs): void => {
|
||||
it('recovers a publicKey', (): void => {
|
||||
const pubKey = '0x93a9fc7154c6da3c826415df01eb0e37fb4da4b0';
|
||||
const res = keccakAsU8a(secp256k1Recover(msg, sig, 0, undefined, onlyJs));
|
||||
for (const onlyJs of [false, true]) {
|
||||
describe(`onlyJs=${(onlyJs && 'true') || 'false'}`, (): void => {
|
||||
it('recovers a publicKey', (): void => {
|
||||
const pubKey = '0x93a9fc7154c6da3c826415df01eb0e37fb4da4b0';
|
||||
const res = keccakAsU8a(secp256k1Recover(msg, sig, 0, undefined, onlyJs));
|
||||
|
||||
expect(u8aToHex(res.subarray(-20))).toEqual(pubKey);
|
||||
expect(u8aToHex(res.subarray(-20))).toEqual(pubKey);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
perfWasm('secp256k1Recover', 200, (_, onlyJs) =>
|
||||
secp256k1Recover(msg, sig, 0, undefined, onlyJs)
|
||||
|
||||
@@ -15,17 +15,19 @@ describe('sign', (): void => {
|
||||
await waitReady();
|
||||
});
|
||||
|
||||
describe.each([false, true])('onlyJs=%p', (onlyJs): void => {
|
||||
it('generates a known signature', (): void => {
|
||||
expect(
|
||||
secp256k1Sign(msg, pair, undefined, onlyJs)
|
||||
).toEqual(hexToU8a(
|
||||
// from elliptic, this is - 0xdf92f73d9f060cefacf187b5414491cb992998ace017fa48839b5cda3e264ba8c4efa521361678d9b8582744d77aa4b8d886d7380b7808a683174afad9c4700300
|
||||
// libsecp256k1 & @noble/hashes do agree here...
|
||||
'0xdf92f73d9f060cefacf187b5414491cb992998ace017fa48839b5cda3e264ba83b105adec9e9872647a7d8bb28855b45e22805aea3d097953cbb1391f671d13e01'
|
||||
));
|
||||
for (const onlyJs of [false, true]) {
|
||||
describe(`onlyJs=${(onlyJs && 'true') || 'false'}`, (): void => {
|
||||
it('generates a known signature', (): void => {
|
||||
expect(
|
||||
secp256k1Sign(msg, pair, undefined, onlyJs)
|
||||
).toEqual(hexToU8a(
|
||||
// from elliptic, this is - 0xdf92f73d9f060cefacf187b5414491cb992998ace017fa48839b5cda3e264ba8c4efa521361678d9b8582744d77aa4b8d886d7380b7808a683174afad9c4700300
|
||||
// libsecp256k1 & @noble/hashes do agree here...
|
||||
'0xdf92f73d9f060cefacf187b5414491cb992998ace017fa48839b5cda3e264ba83b105adec9e9872647a7d8bb28855b45e22805aea3d097953cbb1391f671d13e01'
|
||||
));
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// since the libsecp256k1 signatures don't match (but can be verified), we
|
||||
// do both signing and verification here (checking the extracted key)
|
||||
|
||||
@@ -13,19 +13,21 @@ describe('TweakAdd', (): void => {
|
||||
).toThrow(/Expected tweak to be an Uint8Array/);
|
||||
});
|
||||
|
||||
describe.each([false, true])('onlyBn=%p', (onlyBn): void => {
|
||||
it('succeeds for a simple case', (): void => {
|
||||
const A = new Uint8Array([0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1]);
|
||||
const B = new Uint8Array([3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]);
|
||||
for (const onlyBn of [false, true]) {
|
||||
describe(`onlyBn=${(onlyBn && 'true') || 'false'}`, (): void => {
|
||||
it('succeeds for a simple case', (): void => {
|
||||
const A = new Uint8Array([0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1]);
|
||||
const B = new Uint8Array([3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]);
|
||||
|
||||
expect(
|
||||
secp256k1PrivateKeyTweakAdd(A, B, onlyBn)
|
||||
).toEqual(new Uint8Array([
|
||||
3, 4, 3, 4, 3, 4, 3, 4, 3,
|
||||
4, 3, 4, 3, 4, 3, 4, 3, 4,
|
||||
3, 4, 3, 4, 3, 4, 3, 4, 3,
|
||||
4, 3, 4, 3, 4
|
||||
]));
|
||||
expect(
|
||||
secp256k1PrivateKeyTweakAdd(A, B, onlyBn)
|
||||
).toEqual(new Uint8Array([
|
||||
3, 4, 3, 4, 3, 4, 3, 4, 3,
|
||||
4, 3, 4, 3, 4, 3, 4, 3, 4,
|
||||
3, 4, 3, 4, 3, 4, 3, 4, 3,
|
||||
4, 3, 4, 3, 4
|
||||
]));
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -17,51 +17,55 @@ describe('secp256k1Verify', (): void => {
|
||||
await waitReady();
|
||||
});
|
||||
|
||||
describe.each([false, true])('onlyJs=%p', (onlyJs): void => {
|
||||
it('validates known ETH against address', (): void => {
|
||||
expect(
|
||||
secp256k1Verify(
|
||||
`\x19Ethereum Signed Message:\n${message.length.toString()}${message}`,
|
||||
'0x55bd020bdbbdc02de34e915effc9b18a99002f4c29f64e22e8dcbb69e722ea6c28e1bb53b9484063fbbfd205e49dcc1f620929f520c9c4c3695150f05a28f52a01',
|
||||
'0x002309df96687e44280bb72c3818358faeeb699c',
|
||||
'keccak',
|
||||
onlyJs
|
||||
)
|
||||
).toEqual(true);
|
||||
});
|
||||
|
||||
describe.each([false, true])('validation against known, publicKey=%p', (isPublic): void => {
|
||||
const pair = secp256k1PairFromSeed(hexToU8a('0x4380de832af797688026ce24f85204d508243f201650c1a134929e5458b7fbae'));
|
||||
const msg = hexToU8a('0xa30b64ce1eedf409c8afb801d72c05234e64849ea538c15dd3c8cf4ffcf166c9');
|
||||
const addr = isPublic
|
||||
? pair.publicKey
|
||||
: hasher('blake2', pair.publicKey, onlyJs);
|
||||
|
||||
it('signature from JS', (): void => {
|
||||
for (const onlyJs of [false, true]) {
|
||||
describe(`onlyJs=${(onlyJs && 'true') || 'false'}`, (): void => {
|
||||
it('validates known ETH against address', (): void => {
|
||||
expect(
|
||||
secp256k1Verify(
|
||||
msg,
|
||||
'0xdf92f73d9f060cefacf187b5414491cb992998ace017fa48839b5cda3e264ba8c4efa521361678d9b8582744d77aa4b8d886d7380b7808a683174afad9c4700300',
|
||||
addr,
|
||||
'blake2',
|
||||
`\x19Ethereum Signed Message:\n${message.length.toString()}${message}`,
|
||||
'0x55bd020bdbbdc02de34e915effc9b18a99002f4c29f64e22e8dcbb69e722ea6c28e1bb53b9484063fbbfd205e49dcc1f620929f520c9c4c3695150f05a28f52a01',
|
||||
'0x002309df96687e44280bb72c3818358faeeb699c',
|
||||
'keccak',
|
||||
onlyJs
|
||||
)
|
||||
).toEqual(true);
|
||||
});
|
||||
|
||||
it('signature from wasm', (): void => {
|
||||
expect(
|
||||
secp256k1Verify(
|
||||
msg,
|
||||
'0xdf92f73d9f060cefacf187b5414491cb992998ace017fa48839b5cda3e264ba83b105adec9e9872647a7d8bb28855b45e22805aea3d097953cbb1391f671d13e01',
|
||||
addr,
|
||||
'blake2',
|
||||
onlyJs
|
||||
)
|
||||
).toEqual(true);
|
||||
});
|
||||
for (const isPublic of [false, true]) {
|
||||
describe(`validation against known, isPublic=${(isPublic && 'true') || 'false'}`, (): void => {
|
||||
const pair = secp256k1PairFromSeed(hexToU8a('0x4380de832af797688026ce24f85204d508243f201650c1a134929e5458b7fbae'));
|
||||
const msg = hexToU8a('0xa30b64ce1eedf409c8afb801d72c05234e64849ea538c15dd3c8cf4ffcf166c9');
|
||||
const addr = isPublic
|
||||
? pair.publicKey
|
||||
: hasher('blake2', pair.publicKey, onlyJs);
|
||||
|
||||
it('signature from JS', (): void => {
|
||||
expect(
|
||||
secp256k1Verify(
|
||||
msg,
|
||||
'0xdf92f73d9f060cefacf187b5414491cb992998ace017fa48839b5cda3e264ba8c4efa521361678d9b8582744d77aa4b8d886d7380b7808a683174afad9c4700300',
|
||||
addr,
|
||||
'blake2',
|
||||
onlyJs
|
||||
)
|
||||
).toEqual(true);
|
||||
});
|
||||
|
||||
it('signature from wasm', (): void => {
|
||||
expect(
|
||||
secp256k1Verify(
|
||||
msg,
|
||||
'0xdf92f73d9f060cefacf187b5414491cb992998ace017fa48839b5cda3e264ba83b105adec9e9872647a7d8bb28855b45e22805aea3d097953cbb1391f671d13e01',
|
||||
addr,
|
||||
'blake2',
|
||||
onlyJs
|
||||
)
|
||||
).toEqual(true);
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
perfWasm('secp256k1Verify', 100, (_, onlyJs) =>
|
||||
secp256k1Verify(
|
||||
|
||||
@@ -35,13 +35,17 @@ describe('sha256AsU8a', (): void => {
|
||||
await waitReady();
|
||||
});
|
||||
|
||||
describe.each([false, true])('onlyJs=%p', (onlyJs): void => {
|
||||
it.each(TESTS)('creates known sha-256 hash', ({ input, output }): void => {
|
||||
expect(
|
||||
sha256AsU8a(hexToU8a(input), onlyJs)
|
||||
).toEqual(hexToU8a(output));
|
||||
for (const onlyJs of [false, true]) {
|
||||
describe(`onlyJs=${(onlyJs && 'true') || 'false'}`, (): void => {
|
||||
for (const { input, output } of TESTS) {
|
||||
it(`creates known sha-256 hash, ${output}`, (): void => {
|
||||
expect(
|
||||
sha256AsU8a(hexToU8a(input), onlyJs)
|
||||
).toEqual(hexToU8a(output));
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
perfWasm('sha256AsU8a', 128000, (input, onlyJs) =>
|
||||
sha256AsU8a(input, onlyJs)
|
||||
|
||||
@@ -11,17 +11,19 @@ describe('sha512AsU8a', (): void => {
|
||||
await waitReady();
|
||||
});
|
||||
|
||||
describe.each([false, true])('onlyJs=%p', (onlyJs): void => {
|
||||
it('creates a sha-512 hash', (): void => {
|
||||
expect(
|
||||
sha512AsU8a(Uint8Array.from([0x61, 0x62, 0x63, 0x64]), onlyJs)
|
||||
).toEqual(
|
||||
Uint8Array.from([
|
||||
216, 2, 47, 32, 96, 173, 110, 253, 41, 122, 183, 61, 204, 83, 85, 201, 178, 20, 5, 75, 13, 23, 118, 161, 54, 166, 105, 210, 106, 125, 59, 20, 247, 58, 160, 208, 235, 255, 25, 238, 51, 51, 104, 240, 22, 75, 100, 25, 169, 109, 164, 158, 62, 72, 23, 83, 231, 233, 107, 113, 107, 220, 203, 111
|
||||
])
|
||||
);
|
||||
for (const onlyJs of [false, true]) {
|
||||
describe(`onlyJs=${(onlyJs && 'true') || 'false'}`, (): void => {
|
||||
it('creates a sha-512 hash', (): void => {
|
||||
expect(
|
||||
sha512AsU8a(Uint8Array.from([0x61, 0x62, 0x63, 0x64]), onlyJs)
|
||||
).toEqual(
|
||||
Uint8Array.from([
|
||||
216, 2, 47, 32, 96, 173, 110, 253, 41, 122, 183, 61, 204, 83, 85, 201, 178, 20, 5, 75, 13, 23, 118, 161, 54, 166, 105, 210, 106, 125, 59, 20, 247, 58, 160, 208, 235, 255, 25, 238, 51, 51, 104, 240, 22, 75, 100, 25, 169, 109, 164, 158, 62, 72, 23, 83, 231, 233, 107, 113, 107, 220, 203, 111
|
||||
])
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
perfWasm('sha512AsU8a', 64000, (input, onlyJs) =>
|
||||
sha512AsU8a(input, onlyJs)
|
||||
|
||||
@@ -10,23 +10,25 @@ describe('xxhashAsHex', (): void => {
|
||||
await waitReady();
|
||||
});
|
||||
|
||||
describe.each([false, true])('onlyJs=%p', (onlyJs): void => {
|
||||
it('returns a 64-bit value by default', (): void => {
|
||||
expect(
|
||||
xxhashAsHex('abc', undefined, onlyJs)
|
||||
).toEqual('0x990977adf52cbc44');
|
||||
});
|
||||
for (const onlyJs of [false, true]) {
|
||||
describe(`onlyJs=${(onlyJs && 'true') || 'false'}`, (): void => {
|
||||
it('returns a 64-bit value by default', (): void => {
|
||||
expect(
|
||||
xxhashAsHex('abc', undefined, onlyJs)
|
||||
).toEqual('0x990977adf52cbc44');
|
||||
});
|
||||
|
||||
it('returns a 128-bit value (as specified)', (): void => {
|
||||
expect(
|
||||
xxhashAsHex('abc', 128, onlyJs)
|
||||
).toEqual('0x990977adf52cbc440889329981caa9be');
|
||||
});
|
||||
it('returns a 128-bit value (as specified)', (): void => {
|
||||
expect(
|
||||
xxhashAsHex('abc', 128, onlyJs)
|
||||
).toEqual('0x990977adf52cbc440889329981caa9be');
|
||||
});
|
||||
|
||||
it('returns a 256-bit value (as specified)', (): void => {
|
||||
expect(
|
||||
xxhashAsHex('abc', 256, onlyJs)
|
||||
).toEqual('0x990977adf52cbc440889329981caa9bef7da5770b2b8a05303b75d95360dd62b');
|
||||
it('returns a 256-bit value (as specified)', (): void => {
|
||||
expect(
|
||||
xxhashAsHex('abc', 256, onlyJs)
|
||||
).toEqual('0x990977adf52cbc440889329981caa9bef7da5770b2b8a05303b75d95360dd62b');
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -12,31 +12,33 @@ describe('xxhashAsU8a', (): void => {
|
||||
await waitReady();
|
||||
});
|
||||
|
||||
describe.each([false, true])('onlyJs=%p', (onlyJs): void => {
|
||||
it('returns a 64-bit value by default', (): void => {
|
||||
expect(
|
||||
xxhashAsU8a('abc', undefined, onlyJs)
|
||||
).toEqual(
|
||||
hexToU8a('0x990977adf52cbc44')
|
||||
);
|
||||
});
|
||||
for (const onlyJs of [false, true]) {
|
||||
describe(`onlyJs=${(onlyJs && 'true') || 'false'}`, (): void => {
|
||||
it('returns a 64-bit value by default', (): void => {
|
||||
expect(
|
||||
xxhashAsU8a('abc', undefined, onlyJs)
|
||||
).toEqual(
|
||||
hexToU8a('0x990977adf52cbc44')
|
||||
);
|
||||
});
|
||||
|
||||
it('returns a 128-bit value (as specified', (): void => {
|
||||
expect(
|
||||
xxhashAsU8a('abc', 128, onlyJs)
|
||||
).toEqual(
|
||||
hexToU8a('0x990977adf52cbc440889329981caa9be')
|
||||
);
|
||||
});
|
||||
it('returns a 128-bit value (as specified', (): void => {
|
||||
expect(
|
||||
xxhashAsU8a('abc', 128, onlyJs)
|
||||
).toEqual(
|
||||
hexToU8a('0x990977adf52cbc440889329981caa9be')
|
||||
);
|
||||
});
|
||||
|
||||
it('returns a 256-bit value (as specified)', (): void => {
|
||||
expect(
|
||||
xxhashAsU8a('abc', 256, onlyJs)
|
||||
).toEqual(
|
||||
hexToU8a('0x990977adf52cbc440889329981caa9bef7da5770b2b8a05303b75d95360dd62b')
|
||||
);
|
||||
it('returns a 256-bit value (as specified)', (): void => {
|
||||
expect(
|
||||
xxhashAsU8a('abc', 256, onlyJs)
|
||||
).toEqual(
|
||||
hexToU8a('0x990977adf52cbc440889329981caa9bef7da5770b2b8a05303b75d95360dd62b')
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
perfWasm('xxhashAsU8a', 8000, (input, onlyJs) =>
|
||||
xxhashAsU8a(input, 128, onlyJs)
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
// Copyright 2017-2023 @polkadot/util authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
// eslint-disable-next-line spaced-comment
|
||||
/// <reference types="@polkadot/dev/node/test/node" />
|
||||
|
||||
import { assert } from '.';
|
||||
|
||||
describe('index', (): void => {
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
// Copyright 2017-2023 @polkadot/util-crypto authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
// eslint-disable-next-line spaced-comment
|
||||
/// <reference types="@polkadot/dev/node/test/node" />
|
||||
|
||||
import { perf } from '@polkadot/util/test';
|
||||
|
||||
import { base64Decode } from './base64';
|
||||
@@ -38,11 +41,13 @@ const TESTS = [
|
||||
];
|
||||
|
||||
describe('base64Decode', (): void => {
|
||||
it.each(TESTS)('%p', (test): void => {
|
||||
expect(
|
||||
base64Decode(test.base64)
|
||||
).toEqual(test.expect);
|
||||
});
|
||||
for (const test of TESTS) {
|
||||
it(test.base64, (): void => {
|
||||
expect(
|
||||
base64Decode(test.base64)
|
||||
).toEqual(test.expect);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
perf('base64Decode (hello, dual)', 100_000, [[HELLO_DUAL]], base64Decode);
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
// Copyright 2017-2023 @polkadot/x-textencoder authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
// eslint-disable-next-line spaced-comment
|
||||
/// <reference types="@polkadot/dev/node/test/node" />
|
||||
|
||||
import { TextDecoder } from './fallback';
|
||||
|
||||
describe('TextDecoder (fallback)', (): void => {
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
// Copyright 2017-2023 @polkadot/x-textencoder authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
// eslint-disable-next-line spaced-comment
|
||||
/// <reference types="@polkadot/dev/node/test/node" />
|
||||
|
||||
import { TextEncoder } from './fallback';
|
||||
|
||||
describe('TextEncoder (fallback)', (): void => {
|
||||
|
||||
@@ -5,13 +5,6 @@ __metadata:
|
||||
version: 6
|
||||
cacheKey: 8
|
||||
|
||||
"@adobe/css-tools@npm:^4.0.1":
|
||||
version: 4.1.0
|
||||
resolution: "@adobe/css-tools@npm:4.1.0"
|
||||
checksum: 50d0098461af146e112bdc700959fac473cce31ad25f5077b11c87bc66529c4aeb5a1e6f30f4a9646efe003c242f52f181f042e21f9cc137703ffde54a9d1fb5
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@ampproject/remapping@npm:^2.2.0":
|
||||
version: 2.2.0
|
||||
resolution: "@ampproject/remapping@npm:2.2.0"
|
||||
@@ -49,7 +42,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.18.6":
|
||||
"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.18.6":
|
||||
version: 7.18.6
|
||||
resolution: "@babel/code-frame@npm:7.18.6"
|
||||
dependencies:
|
||||
@@ -1406,7 +1399,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.9, @babel/runtime@npm:^7.20.6, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2":
|
||||
"@babel/runtime@npm:^7.18.9, @babel/runtime@npm:^7.20.6, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.8.4":
|
||||
version: 7.21.0
|
||||
resolution: "@babel/runtime@npm:7.21.0"
|
||||
dependencies:
|
||||
@@ -1504,38 +1497,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@jest/expect-utils@npm:^29.4.3":
|
||||
version: 29.4.3
|
||||
resolution: "@jest/expect-utils@npm:29.4.3"
|
||||
dependencies:
|
||||
jest-get-type: ^29.4.3
|
||||
checksum: 2bbed39ff2fb59f5acac465a1ce7303e3b4b62b479e4f386261986c9827f7f799ea912761e22629c5daf10addf8513f16733c14a29c2647bb66d4ee625e9ff92
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@jest/schemas@npm:^29.4.3":
|
||||
version: 29.4.3
|
||||
resolution: "@jest/schemas@npm:29.4.3"
|
||||
dependencies:
|
||||
"@sinclair/typebox": ^0.25.16
|
||||
checksum: ac754e245c19dc39e10ebd41dce09040214c96a4cd8efa143b82148e383e45128f24599195ab4f01433adae4ccfbe2db6574c90db2862ccd8551a86704b5bebd
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@jest/types@npm:^29.4.3":
|
||||
version: 29.4.3
|
||||
resolution: "@jest/types@npm:29.4.3"
|
||||
dependencies:
|
||||
"@jest/schemas": ^29.4.3
|
||||
"@types/istanbul-lib-coverage": ^2.0.0
|
||||
"@types/istanbul-reports": ^3.0.0
|
||||
"@types/node": "*"
|
||||
"@types/yargs": ^17.0.8
|
||||
chalk: ^4.0.0
|
||||
checksum: 1756f4149d360f98567f56f434144f7af23ed49a2c42889261a314df6b6654c2de70af618fb2ee0ee39cadaf10835b885845557184509503646c9cb9dcc02bac
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@jridgewell/gen-mapping@npm:^0.1.0":
|
||||
version: 0.1.1
|
||||
resolution: "@jridgewell/gen-mapping@npm:0.1.1"
|
||||
@@ -1913,9 +1874,9 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@polkadot/dev@npm:^0.69.5":
|
||||
version: 0.69.5
|
||||
resolution: "@polkadot/dev@npm:0.69.5"
|
||||
"@polkadot/dev@npm:^0.69.7":
|
||||
version: 0.69.7
|
||||
resolution: "@polkadot/dev@npm:0.69.7"
|
||||
dependencies:
|
||||
"@babel/cli": ^7.21.0
|
||||
"@babel/core": ^7.21.0
|
||||
@@ -1944,8 +1905,6 @@ __metadata:
|
||||
"@swc/cli": ^0.1.62
|
||||
"@swc/core": ^1.3.36
|
||||
"@swc/helpers": ^0.4.14
|
||||
"@testing-library/jest-dom": ^5.16.5
|
||||
"@testing-library/react": ^14.0.0
|
||||
"@typescript-eslint/eslint-plugin": ^5.53.0
|
||||
"@typescript-eslint/parser": ^5.53.0
|
||||
"@vue/component-compiler-utils": ^3.3.0
|
||||
@@ -2012,7 +1971,7 @@ __metadata:
|
||||
polkadot-exec-swc: scripts/polkadot-exec-swc.mjs
|
||||
polkadot-exec-tsc: scripts/polkadot-exec-tsc.mjs
|
||||
polkadot-exec-webpack: scripts/polkadot-exec-webpack.mjs
|
||||
checksum: 5af46b8269d3cd2e2b2edc52fbb45808d210d01d501f5a279f5870cfc0f85627906604155cf00142571b47136945572c5d4047cc8e0fadc4c57f3fb2ea67ace6
|
||||
checksum: 0e60762d866aefa2bae47a20fae4738d7b11fd1e9c83c7a384adbf71b07bda6685be0fa56a1013d68623699f02eb5c5d83c7282518297a54ae312248a11a262e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -2064,7 +2023,7 @@ __metadata:
|
||||
"@babel/runtime": ^7.21.0
|
||||
"@polkadot/hw-ledger": 10.4.3-3-x
|
||||
"@polkadot/util": 10.4.3-3-x
|
||||
"@substrate/ss58-registry": ^1.38.0
|
||||
"@substrate/ss58-registry": ^1.39.0
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
@@ -2389,13 +2348,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@sinclair/typebox@npm:^0.25.16":
|
||||
version: 0.25.21
|
||||
resolution: "@sinclair/typebox@npm:0.25.21"
|
||||
checksum: 763af1163fe4eabee9b914d4e4548a39fbba3287d2b3b1ff043c1da3c5a321e99d50a3ca94eb182988131e00b006a6f019799cde8da2f61e2f118b30b0276a00
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@sindresorhus/is@npm:^0.14.0":
|
||||
version: 0.14.0
|
||||
resolution: "@sindresorhus/is@npm:0.14.0"
|
||||
@@ -2410,10 +2362,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@substrate/ss58-registry@npm:^1.38.0":
|
||||
version: 1.38.0
|
||||
resolution: "@substrate/ss58-registry@npm:1.38.0"
|
||||
checksum: 3c653b67b59f7c2d1653e64a5e04fd75f17ab442236d6638abd7ae2850717318a7c7840c6c1263f474f1a95e9c9e7f87131171513cd2ce42afeac68179978720
|
||||
"@substrate/ss58-registry@npm:^1.39.0":
|
||||
version: 1.39.0
|
||||
resolution: "@substrate/ss58-registry@npm:1.39.0"
|
||||
checksum: 1a16d1f637ea8c9a0cd2cabedb8731b81cafa1e979912a2183c2c670d680dc759136ad5f4183bef48359bd9f0a005f676e7ab78a4f076c19a2cf32974049a1f8
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -2577,53 +2529,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@testing-library/dom@npm:^9.0.0":
|
||||
version: 9.0.0
|
||||
resolution: "@testing-library/dom@npm:9.0.0"
|
||||
dependencies:
|
||||
"@babel/code-frame": ^7.10.4
|
||||
"@babel/runtime": ^7.12.5
|
||||
"@types/aria-query": ^5.0.1
|
||||
aria-query: ^5.0.0
|
||||
chalk: ^4.1.0
|
||||
dom-accessibility-api: ^0.5.9
|
||||
lz-string: ^1.4.4
|
||||
pretty-format: ^27.0.2
|
||||
checksum: 5381bf9438f0ee35f795e7f9b203564aa455e7cd838b6677084c82dd56396779c38cc49ddffed4e57a8bcc3c62b4bc96ea684bb4b24d13655152db745327b2cd
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@testing-library/jest-dom@npm:^5.16.5":
|
||||
version: 5.16.5
|
||||
resolution: "@testing-library/jest-dom@npm:5.16.5"
|
||||
dependencies:
|
||||
"@adobe/css-tools": ^4.0.1
|
||||
"@babel/runtime": ^7.9.2
|
||||
"@types/testing-library__jest-dom": ^5.9.1
|
||||
aria-query: ^5.0.0
|
||||
chalk: ^3.0.0
|
||||
css.escape: ^1.5.1
|
||||
dom-accessibility-api: ^0.5.6
|
||||
lodash: ^4.17.15
|
||||
redent: ^3.0.0
|
||||
checksum: 94911f901a8031f3e489d04ac057cb5373621230f5d92bed80e514e24b069fb58a3166d1dd86963e55f078a1bd999da595e2ab96ed95f452d477e272937d792a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@testing-library/react@npm:^14.0.0":
|
||||
version: 14.0.0
|
||||
resolution: "@testing-library/react@npm:14.0.0"
|
||||
dependencies:
|
||||
"@babel/runtime": ^7.12.5
|
||||
"@testing-library/dom": ^9.0.0
|
||||
"@types/react-dom": ^18.0.0
|
||||
peerDependencies:
|
||||
react: ^18.0.0
|
||||
react-dom: ^18.0.0
|
||||
checksum: 4a54c8f56cc4a39b50803205f84f06280bb76521d6d5d4b3b36651d760c7c7752ef142d857d52aaf4fad4848ed7a8be49afc793a5dda105955d2f8bef24901ac
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@tokenizer/token@npm:^0.3.0":
|
||||
version: 0.3.0
|
||||
resolution: "@tokenizer/token@npm:0.3.0"
|
||||
@@ -2638,13 +2543,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/aria-query@npm:^5.0.1":
|
||||
version: 5.0.1
|
||||
resolution: "@types/aria-query@npm:5.0.1"
|
||||
checksum: 69fd7cceb6113ed370591aef04b3fd0742e9a1b06dd045c43531448847b85de181495e4566f98e776b37c422a12fd71866e0a1dfd904c5ec3f84d271682901de
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/bn.js@npm:^5.1.1":
|
||||
version: 5.1.1
|
||||
resolution: "@types/bn.js@npm:5.1.1"
|
||||
@@ -2786,41 +2684,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0":
|
||||
version: 2.0.3
|
||||
resolution: "@types/istanbul-lib-coverage@npm:2.0.3"
|
||||
checksum: 0650cba4be8f464bee89b9de0b71a5ea3b5cc676ce24e1196b5d6a51542ce9e613ae4549bf19756bb33dbbbb32b47931040266100062bfb197c597d73e341eb0
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/istanbul-lib-report@npm:*":
|
||||
version: 3.0.0
|
||||
resolution: "@types/istanbul-lib-report@npm:3.0.0"
|
||||
dependencies:
|
||||
"@types/istanbul-lib-coverage": "*"
|
||||
checksum: 656398b62dc288e1b5226f8880af98087233cdb90100655c989a09f3052b5775bf98ba58a16c5ae642fb66c61aba402e07a9f2bff1d1569e3b306026c59f3f36
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/istanbul-reports@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "@types/istanbul-reports@npm:3.0.0"
|
||||
dependencies:
|
||||
"@types/istanbul-lib-report": "*"
|
||||
checksum: 286a18cff19c4dac4321b9ea406a3560faf577fb2a4df5abf9d577fa81ba831c9baa7d40d03f1daf7fe613d468546b731c00b844b72fad9834c583311a35bb7b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/jest@npm:*, @types/jest@npm:^29.4.0":
|
||||
version: 29.4.0
|
||||
resolution: "@types/jest@npm:29.4.0"
|
||||
dependencies:
|
||||
expect: ^29.0.0
|
||||
pretty-format: ^29.0.0
|
||||
checksum: 23760282362a252e6690314584d83a47512d4cd61663e957ed3398ecf98195fe931c45606ee2f9def12f8ed7d8aa102d492ec42d26facdaf8b78094a31e6568e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9":
|
||||
version: 7.0.11
|
||||
resolution: "@types/json-schema@npm:7.0.11"
|
||||
@@ -2903,15 +2766,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/react-dom@npm:^18.0.0":
|
||||
version: 18.0.10
|
||||
resolution: "@types/react-dom@npm:18.0.10"
|
||||
dependencies:
|
||||
"@types/react": "*"
|
||||
checksum: ff8282d5005a0b1cd95fb65bf79d3d8485e4cfe2aaf052129033a178684b940014a3f4536bc20d573f8a01cf4c6f4770c74988cef7c2b5cac3041d9f172647e3
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/react-native@npm:^0.71.3":
|
||||
version: 0.71.3
|
||||
resolution: "@types/react-native@npm:0.71.3"
|
||||
@@ -2989,22 +2843,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/stack-utils@npm:^2.0.0":
|
||||
version: 2.0.0
|
||||
resolution: "@types/stack-utils@npm:2.0.0"
|
||||
checksum: b3fbae25b073116977ecb5c67d22f14567b51a7792403b0bf46e5de8f29bde3bd4ec1626afb22065495ca7f1c699c8bd66720050c94b8f8f9bcefbee79d161fd
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/testing-library__jest-dom@npm:^5.9.1":
|
||||
version: 5.14.5
|
||||
resolution: "@types/testing-library__jest-dom@npm:5.14.5"
|
||||
dependencies:
|
||||
"@types/jest": "*"
|
||||
checksum: dcb05416758fe88c1f4f3aa97b4699fcb46a5ed8f53c6b81721e66155452a48caf12ecb97dfdfd4130678e65efd66b9fca0ac434b3d63affec84842a84a6bf38
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/w3c-web-usb@npm:1.0.6":
|
||||
version: 1.0.6
|
||||
resolution: "@types/w3c-web-usb@npm:1.0.6"
|
||||
@@ -3030,22 +2868,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/yargs-parser@npm:*":
|
||||
version: 20.2.0
|
||||
resolution: "@types/yargs-parser@npm:20.2.0"
|
||||
checksum: 54cf3f8d2c7db47e200e8c96e05b3b33ee554e78d29f3db55f04ca4b86dc6b8ff6b1349f5772268ce2d365cde0a0f4fdd92bf5933c2be2c1ea3f19f0b4599e1f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/yargs@npm:^17.0.8":
|
||||
version: 17.0.10
|
||||
resolution: "@types/yargs@npm:17.0.10"
|
||||
dependencies:
|
||||
"@types/yargs-parser": "*"
|
||||
checksum: f0673cbfc08e17239dc58952a88350d6c4db04a027a28a06fbad27d87b670e909f9cd9e66f9c64cebdd5071d1096261e33454a55868395f125297e5c50992ca8
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/eslint-plugin@npm:^5.53.0":
|
||||
version: 5.53.0
|
||||
resolution: "@typescript-eslint/eslint-plugin@npm:5.53.0"
|
||||
@@ -3714,13 +3536,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ansi-styles@npm:^5.0.0":
|
||||
version: 5.2.0
|
||||
resolution: "ansi-styles@npm:5.2.0"
|
||||
checksum: d7f4e97ce0623aea6bc0d90dcd28881ee04cba06c570b97fd3391bd7a268eedfd9d5e2dd4fdcbdd82b8105df5faf6f24aaedc08eaf3da898e702db5948f63469
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"any-promise@npm:^1.1.0":
|
||||
version: 1.3.0
|
||||
resolution: "any-promise@npm:1.3.0"
|
||||
@@ -3801,15 +3616,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"aria-query@npm:^5.0.0":
|
||||
version: 5.1.3
|
||||
resolution: "aria-query@npm:5.1.3"
|
||||
dependencies:
|
||||
deep-equal: ^2.0.5
|
||||
checksum: 929ff95f02857b650fb4cbcd2f41072eee2f46159a6605ea03bf63aa572e35ffdff43d69e815ddc462e16e07de8faba3978afc2813650b4448ee18c9895d982b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"array-flatten@npm:1.1.1":
|
||||
version: 1.1.1
|
||||
resolution: "array-flatten@npm:1.1.1"
|
||||
@@ -3941,13 +3747,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"available-typed-arrays@npm:^1.0.5":
|
||||
version: 1.0.5
|
||||
resolution: "available-typed-arrays@npm:1.0.5"
|
||||
checksum: 20eb47b3cefd7db027b9bbb993c658abd36d4edd3fe1060e83699a03ee275b0c9b216cc076ff3f2db29073225fb70e7613987af14269ac1fe2a19803ccc97f1a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"aws-sign2@npm:~0.7.0":
|
||||
version: 0.7.0
|
||||
resolution: "aws-sign2@npm:0.7.0"
|
||||
@@ -4578,13 +4377,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ci-info@npm:^3.2.0":
|
||||
version: 3.2.0
|
||||
resolution: "ci-info@npm:3.2.0"
|
||||
checksum: c68995a94e95ce3f233ff845e62dfc56f2e8ff1e3f5c1361bcdd520cbbc9726d8a54cbc1a685cb9ee19c3c5e71a1dade6dda23eb364b59b8e6c32508a9b761bc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"cipher-base@npm:^1.0.1, cipher-base@npm:^1.0.3":
|
||||
version: 1.0.4
|
||||
resolution: "cipher-base@npm:1.0.4"
|
||||
@@ -4941,13 +4733,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"css.escape@npm:^1.5.1":
|
||||
version: 1.5.1
|
||||
resolution: "css.escape@npm:1.5.1"
|
||||
checksum: f6d38088d870a961794a2580b2b2af1027731bb43261cfdce14f19238a88664b351cc8978abc20f06cc6bbde725699dec8deb6fe9816b139fc3f2af28719e774
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"cssesc@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "cssesc@npm:3.0.0"
|
||||
@@ -5079,31 +4864,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"deep-equal@npm:^2.0.5":
|
||||
version: 2.2.0
|
||||
resolution: "deep-equal@npm:2.2.0"
|
||||
dependencies:
|
||||
call-bind: ^1.0.2
|
||||
es-get-iterator: ^1.1.2
|
||||
get-intrinsic: ^1.1.3
|
||||
is-arguments: ^1.1.1
|
||||
is-array-buffer: ^3.0.1
|
||||
is-date-object: ^1.0.5
|
||||
is-regex: ^1.1.4
|
||||
is-shared-array-buffer: ^1.0.2
|
||||
isarray: ^2.0.5
|
||||
object-is: ^1.1.5
|
||||
object-keys: ^1.1.1
|
||||
object.assign: ^4.1.4
|
||||
regexp.prototype.flags: ^1.4.3
|
||||
side-channel: ^1.0.4
|
||||
which-boxed-primitive: ^1.0.2
|
||||
which-collection: ^1.0.1
|
||||
which-typed-array: ^1.1.9
|
||||
checksum: 46a34509d2766d6c6dc5aec4756089cf0cc137e46787e91f08f1ee0bb570d874f19f0493146907df0cf18aed4a7b4b50f6f62c899240a76c323f057528b122e3
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"deep-extend@npm:^0.6.0":
|
||||
version: 0.6.0
|
||||
resolution: "deep-extend@npm:0.6.0"
|
||||
@@ -5432,13 +5192,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"diff-sequences@npm:^29.4.3":
|
||||
version: 29.4.3
|
||||
resolution: "diff-sequences@npm:29.4.3"
|
||||
checksum: 28b265e04fdddcf7f9f814effe102cc95a9dec0564a579b5aed140edb24fc345c611ca52d76d725a3cab55d3888b915b5e8a4702e0f6058968a90fa5f41fcde7
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"dir-glob@npm:^3.0.1":
|
||||
version: 3.0.1
|
||||
resolution: "dir-glob@npm:3.0.1"
|
||||
@@ -5482,13 +5235,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"dom-accessibility-api@npm:^0.5.6, dom-accessibility-api@npm:^0.5.9":
|
||||
version: 0.5.16
|
||||
resolution: "dom-accessibility-api@npm:0.5.16"
|
||||
checksum: 005eb283caef57fc1adec4d5df4dd49189b628f2f575af45decb210e04d634459e3f1ee64f18b41e2dcf200c844bc1d9279d80807e686a30d69a4756151ad248
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"domexception@npm:^4.0.0":
|
||||
version: 4.0.0
|
||||
resolution: "domexception@npm:4.0.0"
|
||||
@@ -5685,23 +5431,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"es-get-iterator@npm:^1.1.2":
|
||||
version: 1.1.3
|
||||
resolution: "es-get-iterator@npm:1.1.3"
|
||||
dependencies:
|
||||
call-bind: ^1.0.2
|
||||
get-intrinsic: ^1.1.3
|
||||
has-symbols: ^1.0.3
|
||||
is-arguments: ^1.1.1
|
||||
is-map: ^2.0.2
|
||||
is-set: ^2.0.2
|
||||
is-string: ^1.0.7
|
||||
isarray: ^2.0.5
|
||||
stop-iteration-iterator: ^1.0.0
|
||||
checksum: 8fa118da42667a01a7c7529f8a8cca514feeff243feec1ce0bb73baaa3514560bd09d2b3438873cf8a5aaec5d52da248131de153b28e2638a061b6e4df13267d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"es-module-lexer@npm:^0.9.0":
|
||||
version: 0.9.3
|
||||
resolution: "es-module-lexer@npm:0.9.3"
|
||||
@@ -5789,13 +5518,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"escape-string-regexp@npm:^2.0.0":
|
||||
version: 2.0.0
|
||||
resolution: "escape-string-regexp@npm:2.0.0"
|
||||
checksum: 9f8a2d5743677c16e85c810e3024d54f0c8dea6424fad3c79ef6666e81dd0846f7437f5e729dfcdac8981bc9e5294c39b4580814d114076b8d36318f46ae4395
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"escape-string-regexp@npm:^4.0.0":
|
||||
version: 4.0.0
|
||||
resolution: "escape-string-regexp@npm:4.0.0"
|
||||
@@ -6293,19 +6015,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"expect@npm:^29.0.0":
|
||||
version: 29.4.3
|
||||
resolution: "expect@npm:29.4.3"
|
||||
dependencies:
|
||||
"@jest/expect-utils": ^29.4.3
|
||||
jest-get-type: ^29.4.3
|
||||
jest-matcher-utils: ^29.4.3
|
||||
jest-message-util: ^29.4.3
|
||||
jest-util: ^29.4.3
|
||||
checksum: ff9dd8c50c0c6fd4b2b00f6dbd7ab0e2063fe1953be81a8c10ae1c005c7f5667ba452918e2efb055504b72b701a4f82575a081a0a7158efb16d87991b0366feb
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"express@npm:^4.17.3":
|
||||
version: 4.18.1
|
||||
resolution: "express@npm:4.18.1"
|
||||
@@ -6697,15 +6406,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"for-each@npm:^0.3.3":
|
||||
version: 0.3.3
|
||||
resolution: "for-each@npm:0.3.3"
|
||||
dependencies:
|
||||
is-callable: ^1.1.3
|
||||
checksum: 6c48ff2bc63362319c65e2edca4a8e1e3483a2fabc72fbe7feaf8c73db94fc7861bd53bc02c8a66a0c1dd709da6b04eec42e0abdd6b40ce47305ae92a25e5d28
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"forever-agent@npm:~0.6.1":
|
||||
version: 0.6.1
|
||||
resolution: "forever-agent@npm:0.6.1"
|
||||
@@ -7193,15 +6893,6 @@ fsevents@~2.3.2:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"gopd@npm:^1.0.1":
|
||||
version: 1.0.1
|
||||
resolution: "gopd@npm:1.0.1"
|
||||
dependencies:
|
||||
get-intrinsic: ^1.1.3
|
||||
checksum: a5ccfb8806e0917a94e0b3de2af2ea4979c1da920bc381667c260e00e7cafdbe844e2cb9c5bcfef4e5412e8bf73bab837285bc35c7ba73aaaf0134d4583393a6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"got@npm:^11.8.5":
|
||||
version: 11.8.6
|
||||
resolution: "got@npm:11.8.6"
|
||||
@@ -7606,13 +7297,6 @@ fsevents@~2.3.2:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"indent-string@npm:^4.0.0":
|
||||
version: 4.0.0
|
||||
resolution: "indent-string@npm:4.0.0"
|
||||
checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"indexes-of@npm:^1.0.1":
|
||||
version: 1.0.1
|
||||
resolution: "indexes-of@npm:1.0.1"
|
||||
@@ -7679,7 +7363,7 @@ fsevents@~2.3.2:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"internal-slot@npm:^1.0.3, internal-slot@npm:^1.0.4":
|
||||
"internal-slot@npm:^1.0.3":
|
||||
version: 1.0.4
|
||||
resolution: "internal-slot@npm:1.0.4"
|
||||
dependencies:
|
||||
@@ -7718,27 +7402,6 @@ fsevents@~2.3.2:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-arguments@npm:^1.1.1":
|
||||
version: 1.1.1
|
||||
resolution: "is-arguments@npm:1.1.1"
|
||||
dependencies:
|
||||
call-bind: ^1.0.2
|
||||
has-tostringtag: ^1.0.0
|
||||
checksum: 7f02700ec2171b691ef3e4d0e3e6c0ba408e8434368504bb593d0d7c891c0dbfda6d19d30808b904a6cb1929bca648c061ba438c39f296c2a8ca083229c49f27
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-array-buffer@npm:^3.0.1":
|
||||
version: 3.0.1
|
||||
resolution: "is-array-buffer@npm:3.0.1"
|
||||
dependencies:
|
||||
call-bind: ^1.0.2
|
||||
get-intrinsic: ^1.1.3
|
||||
is-typed-array: ^1.1.10
|
||||
checksum: f26ab87448e698285daf707e52a533920449f7abf63714140ffab9d5571aa5a71ac2fa2677e8b793ad0d5d3e40078d4d2c8a0ab39c957e3cfc6513bb6c9dfdc9
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-arrayish@npm:^0.2.1":
|
||||
version: 0.2.1
|
||||
resolution: "is-arrayish@npm:0.2.1"
|
||||
@@ -7780,7 +7443,7 @@ fsevents@~2.3.2:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7":
|
||||
"is-callable@npm:^1.1.4, is-callable@npm:^1.2.7":
|
||||
version: 1.2.7
|
||||
resolution: "is-callable@npm:1.2.7"
|
||||
checksum: 61fd57d03b0d984e2ed3720fb1c7a897827ea174bd44402878e059542ea8c4aeedee0ea0985998aa5cc2736b2fa6e271c08587addb5b3959ac52cf665173d1ac
|
||||
@@ -7807,7 +7470,7 @@ fsevents@~2.3.2:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-date-object@npm:^1.0.1, is-date-object@npm:^1.0.5":
|
||||
"is-date-object@npm:^1.0.1":
|
||||
version: 1.0.5
|
||||
resolution: "is-date-object@npm:1.0.5"
|
||||
dependencies:
|
||||
@@ -7881,13 +7544,6 @@ fsevents@~2.3.2:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-map@npm:^2.0.1, is-map@npm:^2.0.2":
|
||||
version: 2.0.2
|
||||
resolution: "is-map@npm:2.0.2"
|
||||
checksum: ace3d0ecd667bbdefdb1852de601268f67f2db725624b1958f279316e13fecb8fa7df91fd60f690d7417b4ec180712f5a7ee967008e27c65cfd475cc84337728
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-module@npm:^1.0.0":
|
||||
version: 1.0.0
|
||||
resolution: "is-module@npm:1.0.0"
|
||||
@@ -8021,13 +7677,6 @@ fsevents@~2.3.2:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-set@npm:^2.0.1, is-set@npm:^2.0.2":
|
||||
version: 2.0.2
|
||||
resolution: "is-set@npm:2.0.2"
|
||||
checksum: b64343faf45e9387b97a6fd32be632ee7b269bd8183701f3b3f5b71a7cf00d04450ed8669d0bd08753e08b968beda96fca73a10fd0ff56a32603f64deba55a57
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-shared-array-buffer@npm:^1.0.2":
|
||||
version: 1.0.2
|
||||
resolution: "is-shared-array-buffer@npm:1.0.2"
|
||||
@@ -8069,19 +7718,6 @@ fsevents@~2.3.2:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-typed-array@npm:^1.1.10":
|
||||
version: 1.1.10
|
||||
resolution: "is-typed-array@npm:1.1.10"
|
||||
dependencies:
|
||||
available-typed-arrays: ^1.0.5
|
||||
call-bind: ^1.0.2
|
||||
for-each: ^0.3.3
|
||||
gopd: ^1.0.1
|
||||
has-tostringtag: ^1.0.0
|
||||
checksum: aac6ecb59d4c56a1cdeb69b1f129154ef462bbffe434cb8a8235ca89b42f258b7ae94073c41b3cb7bce37f6a1733ad4499f07882d5d5093a7ba84dfc4ebb8017
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-typedarray@npm:^1.0.0, is-typedarray@npm:~1.0.0":
|
||||
version: 1.0.0
|
||||
resolution: "is-typedarray@npm:1.0.0"
|
||||
@@ -8110,13 +7746,6 @@ fsevents@~2.3.2:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-weakmap@npm:^2.0.1":
|
||||
version: 2.0.1
|
||||
resolution: "is-weakmap@npm:2.0.1"
|
||||
checksum: 1222bb7e90c32bdb949226e66d26cb7bce12e1e28e3e1b40bfa6b390ba3e08192a8664a703dff2a00a84825f4e022f9cd58c4599ff9981ab72b1d69479f4f7f6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-weakref@npm:^1.0.2":
|
||||
version: 1.0.2
|
||||
resolution: "is-weakref@npm:1.0.2"
|
||||
@@ -8126,16 +7755,6 @@ fsevents@~2.3.2:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-weakset@npm:^2.0.1":
|
||||
version: 2.0.2
|
||||
resolution: "is-weakset@npm:2.0.2"
|
||||
dependencies:
|
||||
call-bind: ^1.0.2
|
||||
get-intrinsic: ^1.1.1
|
||||
checksum: 5d8698d1fa599a0635d7ca85be9c26d547b317ed8fd83fc75f03efbe75d50001b5eececb1e9971de85fcde84f69ae6f8346bc92d20d55d46201d328e4c74a367
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-wsl@npm:^2.2.0":
|
||||
version: 2.2.0
|
||||
resolution: "is-wsl@npm:2.2.0"
|
||||
@@ -8152,13 +7771,6 @@ fsevents@~2.3.2:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"isarray@npm:^2.0.5":
|
||||
version: 2.0.5
|
||||
resolution: "isarray@npm:2.0.5"
|
||||
checksum: bd5bbe4104438c4196ba58a54650116007fa0262eccef13a4c55b2e09a5b36b59f1e75b9fcc49883dd9d4953892e6fc007eef9e9155648ceea036e184b0f930a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"isarray@npm:~1.0.0":
|
||||
version: 1.0.0
|
||||
resolution: "isarray@npm:1.0.0"
|
||||
@@ -8187,68 +7799,6 @@ fsevents@~2.3.2:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"jest-diff@npm:^29.4.3":
|
||||
version: 29.4.3
|
||||
resolution: "jest-diff@npm:29.4.3"
|
||||
dependencies:
|
||||
chalk: ^4.0.0
|
||||
diff-sequences: ^29.4.3
|
||||
jest-get-type: ^29.4.3
|
||||
pretty-format: ^29.4.3
|
||||
checksum: 877fd1edffef6b319688c27b152e5b28e2bc4bcda5ce0ca90d7e137f9fafda4280bae25403d4c0bfd9806c2c0b15d966aa2dfaf5f9928ec8f1ccea7fa1d08ed6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"jest-get-type@npm:^29.4.3":
|
||||
version: 29.4.3
|
||||
resolution: "jest-get-type@npm:29.4.3"
|
||||
checksum: 6ac7f2dde1c65e292e4355b6c63b3a4897d7e92cb4c8afcf6d397f2682f8080e094c8b0b68205a74d269882ec06bf696a9de6cd3e1b7333531e5ed7b112605ce
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"jest-matcher-utils@npm:^29.4.3":
|
||||
version: 29.4.3
|
||||
resolution: "jest-matcher-utils@npm:29.4.3"
|
||||
dependencies:
|
||||
chalk: ^4.0.0
|
||||
jest-diff: ^29.4.3
|
||||
jest-get-type: ^29.4.3
|
||||
pretty-format: ^29.4.3
|
||||
checksum: 9e13cbe42d2113bab2691110c7c3ba5cec3b94abad2727e1de90929d0f67da444e9b2066da3b476b5bf788df53a8ede0e0a950cfb06a04e4d6d566d115ee4f1d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"jest-message-util@npm:^29.4.3":
|
||||
version: 29.4.3
|
||||
resolution: "jest-message-util@npm:29.4.3"
|
||||
dependencies:
|
||||
"@babel/code-frame": ^7.12.13
|
||||
"@jest/types": ^29.4.3
|
||||
"@types/stack-utils": ^2.0.0
|
||||
chalk: ^4.0.0
|
||||
graceful-fs: ^4.2.9
|
||||
micromatch: ^4.0.4
|
||||
pretty-format: ^29.4.3
|
||||
slash: ^3.0.0
|
||||
stack-utils: ^2.0.3
|
||||
checksum: 64f06b9550021e68da0059020bea8691283cf818918810bb67192d7b7fb9b691c7eadf55c2ca3cd04df5394918f2327245077095cdc0d6b04be3532d2c7d0ced
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"jest-util@npm:^29.4.3":
|
||||
version: 29.4.3
|
||||
resolution: "jest-util@npm:29.4.3"
|
||||
dependencies:
|
||||
"@jest/types": ^29.4.3
|
||||
"@types/node": "*"
|
||||
chalk: ^4.0.0
|
||||
ci-info: ^3.2.0
|
||||
graceful-fs: ^4.2.9
|
||||
picomatch: ^2.2.3
|
||||
checksum: 606b3e6077895baf8fb4ad4d08c134f37a6b81d5ba77ae654c942b1ae4b7294ab3b5a0eb93db34f129407b367970cf3b76bf5c80897b30f215f2bc8bf20a5f3f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"jest-worker@npm:^27.4.5":
|
||||
version: 27.5.1
|
||||
resolution: "jest-worker@npm:27.5.1"
|
||||
@@ -8599,7 +8149,7 @@ fsevents@~2.3.2:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"lodash@npm:^4.17.11, lodash@npm:^4.17.15, lodash@npm:^4.17.21":
|
||||
"lodash@npm:^4.17.11, lodash@npm:^4.17.21":
|
||||
version: 4.17.21
|
||||
resolution: "lodash@npm:4.17.21"
|
||||
checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7
|
||||
@@ -8678,15 +8228,6 @@ fsevents@~2.3.2:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"lz-string@npm:^1.4.4":
|
||||
version: 1.4.4
|
||||
resolution: "lz-string@npm:1.4.4"
|
||||
bin:
|
||||
lz-string: bin/bin.js
|
||||
checksum: 54e31238a61a84d8f664d9860a9fba7310c5b97a52c444f80543069bc084815eff40b8d4474ae1d93992fdf6c252dca37cf27f6adbeb4dbc3df2f3ac773d0e61
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"madge@npm:^6.0.0":
|
||||
version: 6.0.0
|
||||
resolution: "madge@npm:6.0.0"
|
||||
@@ -8886,13 +8427,6 @@ fsevents@~2.3.2:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"min-indent@npm:^1.0.0":
|
||||
version: 1.0.1
|
||||
resolution: "min-indent@npm:1.0.1"
|
||||
checksum: bfc6dd03c5eaf623a4963ebd94d087f6f4bbbfd8c41329a7f09706b0cb66969c4ddd336abeb587bc44bc6f08e13bf90f0b374f9d71f9f01e04adc2cd6f083ef1
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"minimalistic-assert@npm:^1.0.0, minimalistic-assert@npm:^1.0.1":
|
||||
version: 1.0.1
|
||||
resolution: "minimalistic-assert@npm:1.0.1"
|
||||
@@ -9330,16 +8864,6 @@ fsevents@~2.3.2:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"object-is@npm:^1.1.5":
|
||||
version: 1.1.5
|
||||
resolution: "object-is@npm:1.1.5"
|
||||
dependencies:
|
||||
call-bind: ^1.0.2
|
||||
define-properties: ^1.1.3
|
||||
checksum: 989b18c4cba258a6b74dc1d74a41805c1a1425bce29f6cabb50dcb1a6a651ea9104a1b07046739a49a5bb1bc49727bcb00efd5c55f932f6ea04ec8927a7901fe
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"object-keys@npm:^1.1.1":
|
||||
version: 1.1.1
|
||||
resolution: "object-keys@npm:1.1.1"
|
||||
@@ -9767,7 +9291,7 @@ fsevents@~2.3.2:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3, picomatch@npm:^2.3.0, picomatch@npm:^2.3.1":
|
||||
"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.0, picomatch@npm:^2.3.1":
|
||||
version: 2.3.1
|
||||
resolution: "picomatch@npm:2.3.1"
|
||||
checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf
|
||||
@@ -10000,28 +9524,6 @@ fsevents@~2.3.2:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"pretty-format@npm:^27.0.2":
|
||||
version: 27.5.1
|
||||
resolution: "pretty-format@npm:27.5.1"
|
||||
dependencies:
|
||||
ansi-regex: ^5.0.1
|
||||
ansi-styles: ^5.0.0
|
||||
react-is: ^17.0.1
|
||||
checksum: cf610cffcb793885d16f184a62162f2dd0df31642d9a18edf4ca298e909a8fe80bdbf556d5c9573992c102ce8bf948691da91bf9739bee0ffb6e79c8a8a6e088
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"pretty-format@npm:^29.0.0, pretty-format@npm:^29.4.3":
|
||||
version: 29.4.3
|
||||
resolution: "pretty-format@npm:29.4.3"
|
||||
dependencies:
|
||||
"@jest/schemas": ^29.4.3
|
||||
ansi-styles: ^5.0.0
|
||||
react-is: ^18.0.0
|
||||
checksum: 3258b9a010bd79b3cf73783ad1e4592b6326fc981b6e31b742f316f14e7fbac09b48a9dbf274d092d9bde404db9fe16f518370e121837dc078a597392e6e5cc5
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"pretty-ms@npm:^7.0.1":
|
||||
version: 7.0.1
|
||||
resolution: "pretty-ms@npm:7.0.1"
|
||||
@@ -10206,20 +9708,6 @@ fsevents@~2.3.2:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"react-is@npm:^17.0.1":
|
||||
version: 17.0.2
|
||||
resolution: "react-is@npm:17.0.2"
|
||||
checksum: 9d6d111d8990dc98bc5402c1266a808b0459b5d54830bbea24c12d908b536df7883f268a7868cfaedde3dd9d4e0d574db456f84d2e6df9c4526f99bb4b5344d8
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"react-is@npm:^18.0.0":
|
||||
version: 18.1.0
|
||||
resolution: "react-is@npm:18.1.0"
|
||||
checksum: d206a0fe6790851bff168727bfb896de02c5591695afb0c441163e8630136a3e13ee1a7ddd59fdccddcc93968b4721ae112c10f790b194b03b35a3dc13a355ef
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"read@npm:^1.0.7":
|
||||
version: 1.0.7
|
||||
resolution: "read@npm:1.0.7"
|
||||
@@ -10291,16 +9779,6 @@ fsevents@~2.3.2:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"redent@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "redent@npm:3.0.0"
|
||||
dependencies:
|
||||
indent-string: ^4.0.0
|
||||
strip-indent: ^3.0.0
|
||||
checksum: fa1ef20404a2d399235e83cc80bd55a956642e37dd197b4b612ba7327bf87fa32745aeb4a1634b2bab25467164ab4ed9c15be2c307923dd08b0fe7c52431ae6b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"regenerate-unicode-properties@npm:^10.0.1":
|
||||
version: 10.0.1
|
||||
resolution: "regenerate-unicode-properties@npm:10.0.1"
|
||||
@@ -10676,8 +10154,7 @@ fsevents@~2.3.2:
|
||||
resolution: "root-workspace-0b6124@workspace:."
|
||||
dependencies:
|
||||
"@babel/core": ^7.21.0
|
||||
"@polkadot/dev": ^0.69.5
|
||||
"@types/jest": ^29.4.0
|
||||
"@polkadot/dev": ^0.69.7
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
@@ -11188,15 +10665,6 @@ fsevents@~2.3.2:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"stack-utils@npm:^2.0.3":
|
||||
version: 2.0.3
|
||||
resolution: "stack-utils@npm:2.0.3"
|
||||
dependencies:
|
||||
escape-string-regexp: ^2.0.0
|
||||
checksum: c86ac08f58d1a9bce3f17946cb2f18268f55f8180f5396ae147deecb4d23cd54f3d27e4a8d3227d525b0f0c89b7f7e839e223851a577136a763ccd7e488440be
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"statuses@npm:2.0.1":
|
||||
version: 2.0.1
|
||||
resolution: "statuses@npm:2.0.1"
|
||||
@@ -11211,15 +10679,6 @@ fsevents@~2.3.2:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"stop-iteration-iterator@npm:^1.0.0":
|
||||
version: 1.0.0
|
||||
resolution: "stop-iteration-iterator@npm:1.0.0"
|
||||
dependencies:
|
||||
internal-slot: ^1.0.4
|
||||
checksum: d04173690b2efa40e24ab70e5e51a3ff31d56d699550cfad084104ab3381390daccb36652b25755e420245f3b0737de66c1879eaa2a8d4fc0a78f9bf892fcb42
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"stream-shift@npm:^1.0.0":
|
||||
version: 1.0.1
|
||||
resolution: "stream-shift@npm:1.0.1"
|
||||
@@ -11391,15 +10850,6 @@ fsevents@~2.3.2:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"strip-indent@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "strip-indent@npm:3.0.0"
|
||||
dependencies:
|
||||
min-indent: ^1.0.0
|
||||
checksum: 18f045d57d9d0d90cd16f72b2313d6364fd2cb4bf85b9f593523ad431c8720011a4d5f08b6591c9d580f446e78855c5334a30fb91aa1560f5d9f95ed1b4a0530
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1":
|
||||
version: 3.1.1
|
||||
resolution: "strip-json-comments@npm:3.1.1"
|
||||
@@ -12471,32 +11921,6 @@ fsevents@~2.3.2:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"which-collection@npm:^1.0.1":
|
||||
version: 1.0.1
|
||||
resolution: "which-collection@npm:1.0.1"
|
||||
dependencies:
|
||||
is-map: ^2.0.1
|
||||
is-set: ^2.0.1
|
||||
is-weakmap: ^2.0.1
|
||||
is-weakset: ^2.0.1
|
||||
checksum: c815bbd163107ef9cb84f135e6f34453eaf4cca994e7ba85ddb0d27cea724c623fae2a473ceccfd5549c53cc65a5d82692de418166df3f858e1e5dc60818581c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"which-typed-array@npm:^1.1.9":
|
||||
version: 1.1.9
|
||||
resolution: "which-typed-array@npm:1.1.9"
|
||||
dependencies:
|
||||
available-typed-arrays: ^1.0.5
|
||||
call-bind: ^1.0.2
|
||||
for-each: ^0.3.3
|
||||
gopd: ^1.0.1
|
||||
has-tostringtag: ^1.0.0
|
||||
is-typed-array: ^1.1.10
|
||||
checksum: fe0178ca44c57699ca2c0e657b64eaa8d2db2372a4e2851184f568f98c478ae3dc3fdb5f7e46c384487046b0cf9e23241423242b277e03e8ba3dabc7c84c98ef
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"which@npm:^1.2.9":
|
||||
version: 1.3.1
|
||||
resolution: "which@npm:1.3.1"
|
||||
|
||||
Reference in New Issue
Block a user