From f4a550dd226846dfc2ade1ccc35a286dc3be2fed Mon Sep 17 00:00:00 2001 From: Akim <59872966+akim-bow@users.noreply.github.com> Date: Sun, 19 Nov 2023 09:04:10 +0700 Subject: [PATCH] feat(js-client)!: Segregation of responsibility between js-client packages [fixes DXJ-525] (#378) Schema validation in js-client --- .github/workflows/e2e.yml | 2 +- .github/workflows/tests.yml | 2 +- .prettierignore | 12 +- ci.cjs | 2 +- packages/@tests/aqua/compile-aqua.ts | 51 + packages/@tests/aqua/package.json | 12 +- .../aqua/src/_aqua/finalize_particle.ts | 107 +- packages/@tests/aqua/src/_aqua/smoke_test.ts | 1791 ++--- packages/@tests/aqua/src/index.ts | 4 +- packages/@tests/smoke/web/package.json | 2 +- packages/@tests/smoke/web/public/index.js | 1 - packages/@tests/test-utils/src/index.ts | 13 +- packages/core/aqua-to-js/.eslintrc.json | 2 +- packages/core/aqua-to-js/package.json | 6 +- packages/core/aqua-to-js/src/common.ts | 17 +- .../__test__/__snapshots__/generate.snap.d.ts | 20 + .../__test__/__snapshots__/generate.snap.js | 20 + .../__test__/__snapshots__/generate.snap.ts | 20 + .../__snapshots__/generate.spec.ts.snap | 1697 ----- .../src/generate/__test__/generate.spec.ts | 39 +- .../core/aqua-to-js/src/generate/function.ts | 9 +- .../core/aqua-to-js/src/generate/header.ts | 5 +- .../aqua-to-js/src/generate/interfaces.ts | 46 +- .../core/aqua-to-js/src/generate/service.ts | 3 +- packages/core/aqua-to-js/src/index.ts | 6 +- packages/core/aqua-to-js/src/utils.ts | 26 +- packages/core/interfaces/src/commonTypes.ts | 49 - .../compilerSupport/aquaTypeDefinitions.ts | 60 +- .../compilerSupportInterface.ts | 103 - packages/core/interfaces/src/index.ts | 1 - .../core/js-client-isomorphic/package.json | 2 +- .../src/fetchers/browser.ts | 10 +- .../js-client-isomorphic/src/fetchers/node.ts | 15 +- .../core/js-client-isomorphic/src/types.ts | 8 +- .../src/worker-resolvers/browser.ts | 4 +- .../src/worker-resolvers/node.ts | 4 +- packages/core/js-client/package.json | 4 - packages/core/js-client/src/api.ts | 303 +- .../src/clientPeer/__test__/client.spec.ts | 85 +- .../src/clientPeer/checkConnection.ts | 1 + .../core/js-client/src/clientPeer/types.ts | 150 +- .../{v3.spec.ts => conversion.spec.ts} | 14 +- .../src/compilerSupport/callFunction.ts | 96 +- .../src/compilerSupport/conversions.ts | 419 +- .../src/compilerSupport/registerService.ts | 71 +- .../js-client/src/compilerSupport/services.ts | 102 +- .../types.ts} | 22 +- .../src/connection/RelayConnection.ts | 2 +- .../src/ephemeral/__test__/ephemeral.spec.ts | 6 +- .../core/js-client/src/ephemeral/client.ts | 67 +- .../core/js-client/src/ephemeral/network.ts | 75 +- packages/core/js-client/src/index.ts | 45 +- .../core/js-client/src/jsPeer/FluencePeer.ts | 73 +- .../js-client/src/jsPeer/__test__/avm.spec.ts | 24 +- .../js-client/src/jsPeer/__test__/par.spec.ts | 6 +- .../src/jsPeer/__test__/peer.spec.ts | 47 +- packages/core/js-client/src/jsPeer/errors.ts | 21 + .../js-client/src/jsServiceHost/interfaces.ts | 9 +- .../src/jsServiceHost/serviceUtils.ts | 11 +- .../js-client/src/marine/deps-loader/node.ts | 98 - .../core/js-client/src/marine/interfaces.ts | 50 - .../core/js-client/src/particle/Particle.ts | 9 +- .../core/js-client/src/services/NodeUtils.ts | 34 +- packages/core/js-client/src/services/Sig.ts | 30 +- .../js-client/src/services/SingleModuleSrv.ts | 27 +- .../core/js-client/src/services/Tracing.ts | 4 +- .../services/__test__/builtInHandler.spec.ts | 50 +- .../src/services/__test__/jsonBuiltin.spec.ts | 8 +- .../src/services/__test__/sigService.spec.ts | 34 +- .../src/services/_aqua/node-utils.ts | 75 +- .../js-client/src/services/_aqua/services.ts | 125 +- .../src/services/_aqua/single-module-srv.ts | 134 +- .../js-client/src/services/_aqua/tracing.ts | 39 +- .../core/js-client/src/services/builtins.ts | 801 +- .../js-client/src/services/securityGuard.ts | 36 +- packages/core/js-client/src/util/testUtils.ts | 148 +- packages/core/marine-worker/package.json | 2 +- packages/core/marine-worker/src/index.ts | 5 +- pnpm-lock.yaml | 6765 +---------------- tsconfig.eslint.json | 3 +- 80 files changed, 2998 insertions(+), 11303 deletions(-) create mode 100644 packages/@tests/aqua/compile-aqua.ts create mode 100644 packages/core/aqua-to-js/src/generate/__test__/__snapshots__/generate.snap.d.ts create mode 100644 packages/core/aqua-to-js/src/generate/__test__/__snapshots__/generate.snap.js create mode 100644 packages/core/aqua-to-js/src/generate/__test__/__snapshots__/generate.snap.ts delete mode 100644 packages/core/aqua-to-js/src/generate/__test__/__snapshots__/generate.spec.ts.snap delete mode 100644 packages/core/interfaces/src/compilerSupport/compilerSupportInterface.ts rename packages/core/js-client/src/compilerSupport/__test__/{v3.spec.ts => conversion.spec.ts} (92%) rename packages/core/js-client/src/{marine/worker-script/workerLoader.ts => compilerSupport/types.ts} (62%) create mode 100644 packages/core/js-client/src/jsPeer/errors.ts delete mode 100644 packages/core/js-client/src/marine/deps-loader/node.ts diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 601fe7e8..72147d00 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -43,7 +43,7 @@ jobs: uses: fluencelabs/aqua/.github/workflows/tests.yml@main with: js-client-snapshots: "${{ needs.js-client.outputs.js-client-snapshots }}" - nox-image: "fluencelabs/nox:unstable_minimal" + nox-image: "fluencelabs/nox:0.4.2" flox: needs: - js-client diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 53957f32..014d321d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -6,7 +6,7 @@ on: nox-image: description: "nox image tag" type: string - default: "fluencelabs/nox:0.4.0" + default: "fluencelabs/nox:0.4.2" avm-version: description: "@fluencelabs/avm version" type: string diff --git a/.prettierignore b/.prettierignore index 8e7e7fd7..be214940 100644 --- a/.prettierignore +++ b/.prettierignore @@ -2,11 +2,13 @@ .eslintcache pnpm-lock.yaml -**/node_modules -**/dist -**/build -**/public +node_modules +dist +build +public **/CHANGELOG.md -packages/core/js-client-isomorphic/src/versions.ts \ No newline at end of file +packages/core/js-client-isomorphic/src/versions.ts +__snapshots__ +packages/@tests/aqua/src/_aqua/** \ No newline at end of file diff --git a/ci.cjs b/ci.cjs index b0b5758a..7e892076 100644 --- a/ci.cjs +++ b/ci.cjs @@ -95,7 +95,7 @@ async function checkConsistency(file, versionsMap) { for (const [name, versionInDep] of versionsMap) { const check = (x, version) => { - if (version.includes("*")) { + if (version.includes("*") || version.includes("^")) { return; } diff --git a/packages/@tests/aqua/compile-aqua.ts b/packages/@tests/aqua/compile-aqua.ts new file mode 100644 index 00000000..804dab2f --- /dev/null +++ b/packages/@tests/aqua/compile-aqua.ts @@ -0,0 +1,51 @@ +/** + * Copyright 2023 Fluence Labs Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { writeFile } from "fs/promises"; +import { join, dirname } from "path"; +import { fileURLToPath } from "url"; + +import { compileFromPath } from "@fluencelabs/aqua-api"; +import aquaToJs from "@fluencelabs/aqua-to-js"; + +const files = ["smoke_test", "finalize_particle"]; + +for (const file of files) { + const cr = await compileFromPath({ + filePath: join( + dirname(fileURLToPath(import.meta.url)), + "_aqua", + file + ".aqua", + ), + targetType: "air", + imports: [fileURLToPath(new URL("./node_modules", import.meta.url))], + }); + + if (cr.errors.length > 0) { + throw new Error(cr.errors.join("\n")); + } + + const res = await aquaToJs(cr, "ts"); + + if (res == null) { + throw new Error("AquaToJs gave null value after compilation"); + } + + await writeFile( + fileURLToPath(new URL(join("src", "_aqua", file + ".ts"), import.meta.url)), + res.sources, + ); +} diff --git a/packages/@tests/aqua/package.json b/packages/@tests/aqua/package.json index 91bebb3a..3d1e174d 100644 --- a/packages/@tests/aqua/package.json +++ b/packages/@tests/aqua/package.json @@ -11,7 +11,7 @@ "type": "module", "scripts": { "build": "tsc", - "compile-aqua": "fluence aqua -i ./_aqua -o ./src/_aqua" + "compile-aqua": "node --loader ts-node/esm compile-aqua.ts" }, "repository": "https://github.com/fluencelabs/fluence-js", "author": "Fluence Labs", @@ -20,10 +20,12 @@ "base64-js": "1.5.1" }, "devDependencies": { + "@fluencelabs/aqua-api": "0.12.4-main-cee4448-2196-1", "@fluencelabs/aqua-lib": "0.6.0", - "@fluencelabs/cli": "0.7.2", - "@fluencelabs/js-client": "workspace:^", - "@fluencelabs/registry": "0.8.2", - "@fluencelabs/trust-graph": "3.1.2" + "@fluencelabs/aqua-to-js": "workspace:*", + "@fluencelabs/js-client": "workspace:*", + "@fluencelabs/registry": "0.8.8-1", + "@fluencelabs/trust-graph": "3.1.2", + "ts-node": "10.9.1" } } diff --git a/packages/@tests/aqua/src/_aqua/finalize_particle.ts b/packages/@tests/aqua/src/_aqua/finalize_particle.ts index 99f035f0..5966fc9f 100644 --- a/packages/@tests/aqua/src/_aqua/finalize_particle.ts +++ b/packages/@tests/aqua/src/_aqua/finalize_particle.ts @@ -2,71 +2,68 @@ // @ts-nocheck /** * - * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. - * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues - * Aqua version: 0.12.0 + * This file is generated using: + * @fluencelabs/aqua-api version: 0.12.4-main-cee4448-2196-1 + * @fluencelabs/aqua-to-js version: 0.2.0 + * If you find any bugs in generated AIR, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues + * If you find any bugs in generated JS/TS, please write an issue on GitHub: https://github.com/fluencelabs/js-client/issues * */ -import type { - IFluenceClient as IFluenceClient$$, - CallParams as CallParams$$, -} from "@fluencelabs/js-client"; -import { - v5_callFunction as callFunction$$, - v5_registerService as registerService$$, -} from "@fluencelabs/js-client"; +import type { IFluenceClient as IFluenceClient$$, ParticleContext as ParticleContext$$ } from '@fluencelabs/js-client'; + +// Making aliases to reduce chance of accidental name collision +import { + v5_callFunction as callFunction$$, + v5_registerService as registerService$$ +} from '@fluencelabs/js-client'; -// Services // Functions export const test_script = ` - (seq - (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) - (xor - (xor - (call -relay- ("op" "noop") []) - (fail %last_error%) - ) - (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 0]) - ) - ) - `; +(xor + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (xor + (call -relay- ("op" "noop") []) + (fail :error:) + ) + ) + (call %init_peer_id% ("callbackSrv" "response") []) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [:error: 0]) +) +`; -export function test(config?: { ttl?: number }): Promise; +export type TestParams = [config?: {ttl?: number}] | [peer: IFluenceClient$$, config?: {ttl?: number}]; -export function test( - peer: IFluenceClient$$, - config?: { ttl?: number }, -): Promise; +export type TestResult = Promise; -export function test(...args: any) { - return callFunction$$( - args, - { - functionName: "test", - arrow: { - tag: "arrow", - domain: { - tag: "labeledProduct", - fields: {}, +export function test(...args: TestParams): TestResult { + return callFunction$$( + args, + { + "functionName": "test", + "arrow": { + "domain": { + "fields": {}, + "tag": "labeledProduct" }, - codomain: { - tag: "nil", + "codomain": { + "tag": "nil" }, - }, - names: { - relay: "-relay-", - getDataSrv: "getDataSrv", - callbackSrv: "callbackSrv", - responseSrv: "callbackSrv", - responseFnName: "response", - errorHandlingSrv: "errorHandlingSrv", - errorFnName: "error", - }, + "tag": "arrow" }, - test_script, - ); + "names": { + "relay": "-relay-", + "getDataSrv": "getDataSrv", + "callbackSrv": "callbackSrv", + "responseSrv": "callbackSrv", + "responseFnName": "response", + "errorHandlingSrv": "errorHandlingSrv", + "errorFnName": "error" + } +}, + test_script + ); } - -/* eslint-enable */ diff --git a/packages/@tests/aqua/src/_aqua/smoke_test.ts b/packages/@tests/aqua/src/_aqua/smoke_test.ts index 9ca2479c..13af5f82 100644 --- a/packages/@tests/aqua/src/_aqua/smoke_test.ts +++ b/packages/@tests/aqua/src/_aqua/smoke_test.ts @@ -2,986 +2,1035 @@ // @ts-nocheck /** * - * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. - * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues - * Aqua version: 0.12.0 + * This file is generated using: + * @fluencelabs/aqua-api version: 0.12.4-main-cee4448-2196-1 + * @fluencelabs/aqua-to-js version: 0.2.0 + * If you find any bugs in generated AIR, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues + * If you find any bugs in generated JS/TS, please write an issue on GitHub: https://github.com/fluencelabs/js-client/issues * */ -import type { - IFluenceClient as IFluenceClient$$, - CallParams as CallParams$$, -} from "@fluencelabs/js-client"; +import type { IFluenceClient as IFluenceClient$$, ParticleContext as ParticleContext$$ } from '@fluencelabs/js-client'; + +// Making aliases to reduce chance of accidental name collision import { - v5_callFunction as callFunction$$, - v5_registerService as registerService$$, -} from "@fluencelabs/js-client"; + v5_callFunction as callFunction$$, + v5_registerService as registerService$$ +} from '@fluencelabs/js-client'; // Services - export interface SrvDef { - create: ( - wasm_b64_content: string, - callParams: CallParams$$<"wasm_b64_content">, - ) => - | { error: string | null; service_id: string | null; success: boolean } - | Promise<{ - error: string | null; - service_id: string | null; - success: boolean; - }>; - list: (callParams: CallParams$$) => string[] | Promise; - remove: ( - service_id: string, - callParams: CallParams$$<"service_id">, - ) => - | { error: string | null; success: boolean } - | Promise<{ error: string | null; success: boolean }>; + create: (wasm_b64_content: string, callParams: ParticleContext$$) => { error: string | null; service_id: string | null; success: boolean; } | Promise<{ error: string | null; service_id: string | null; success: boolean; }>; + list: (callParams: ParticleContext$$) => string[] | Promise; + remove: (service_id: string, callParams: ParticleContext$$) => { error: string | null; success: boolean; } | Promise<{ error: string | null; success: boolean; }>; } export function registerSrv(service: SrvDef): void; export function registerSrv(serviceId: string, service: SrvDef): void; export function registerSrv(peer: IFluenceClient$$, service: SrvDef): void; -export function registerSrv( - peer: IFluenceClient$$, - serviceId: string, - service: SrvDef, -): void; - -export function registerSrv(...args: any) { - registerService$$(args, { - defaultServiceId: "single_module_srv", - functions: { - tag: "labeledProduct", - fields: { - create: { - tag: "arrow", - domain: { - tag: "labeledProduct", - fields: { - wasm_b64_content: { - tag: "scalar", - name: "string", - }, +export function registerSrv(peer: IFluenceClient$$, serviceId: string, service: SrvDef): void; +export function registerSrv(...args: any[]) { + registerService$$( + args, + { + "defaultServiceId": "single_module_srv", + "functions": { + "fields": { + "create": { + "domain": { + "fields": { + "wasm_b64_content": { + "name": "string", + "tag": "scalar" + } + }, + "tag": "labeledProduct" + }, + "codomain": { + "items": [ + { + "name": "ServiceCreationResult", + "fields": { + "error": { + "type": { + "name": "string", + "tag": "scalar" + }, + "tag": "option" + }, + "service_id": { + "type": { + "name": "string", + "tag": "scalar" + }, + "tag": "option" + }, + "success": { + "name": "bool", + "tag": "scalar" + } + }, + "tag": "struct" + } + ], + "tag": "unlabeledProduct" + }, + "tag": "arrow" }, - }, - codomain: { - tag: "unlabeledProduct", - items: [ - { - tag: "struct", - name: "ServiceCreationResult", - fields: { - error: { - tag: "option", - type: { - tag: "scalar", - name: "string", - }, - }, - service_id: { - tag: "option", - type: { - tag: "scalar", - name: "string", - }, - }, - success: { - tag: "scalar", - name: "bool", - }, + "list": { + "domain": { + "tag": "nil" }, - }, - ], - }, - }, - list: { - tag: "arrow", - domain: { - tag: "nil", - }, - codomain: { - tag: "unlabeledProduct", - items: [ - { - tag: "array", - type: { - tag: "scalar", - name: "string", + "codomain": { + "items": [ + { + "type": { + "name": "string", + "tag": "scalar" + }, + "tag": "array" + } + ], + "tag": "unlabeledProduct" }, - }, - ], - }, - }, - remove: { - tag: "arrow", - domain: { - tag: "labeledProduct", - fields: { - service_id: { - tag: "scalar", - name: "string", - }, + "tag": "arrow" }, - }, - codomain: { - tag: "unlabeledProduct", - items: [ - { - tag: "struct", - name: "RemoveResult", - fields: { - error: { - tag: "option", - type: { - tag: "scalar", - name: "string", + "remove": { + "domain": { + "fields": { + "service_id": { + "name": "string", + "tag": "scalar" + } }, - }, - success: { - tag: "scalar", - name: "bool", - }, + "tag": "labeledProduct" }, - }, - ], - }, + "codomain": { + "items": [ + { + "name": "RemoveResult", + "fields": { + "error": { + "type": { + "name": "string", + "tag": "scalar" + }, + "tag": "option" + }, + "success": { + "name": "bool", + "tag": "scalar" + } + }, + "tag": "struct" + } + ], + "tag": "unlabeledProduct" + }, + "tag": "arrow" + } }, - }, - }, - }); + "tag": "labeledProduct" + } +} + ); } export interface CalcServiceDef { - add: ( - num: number, - callParams: CallParams$$<"num">, - ) => number | Promise; - clear_state: (callParams: CallParams$$) => void | Promise; - divide: ( - num: number, - callParams: CallParams$$<"num">, - ) => number | Promise; - multiply: ( - num: number, - callParams: CallParams$$<"num">, - ) => number | Promise; - state: (callParams: CallParams$$) => number | Promise; - subtract: ( - num: number, - callParams: CallParams$$<"num">, - ) => number | Promise; - test_logs: (callParams: CallParams$$) => void | Promise; + divide: (num: number, callParams: ParticleContext$$) => number | Promise; + clear_state: (callParams: ParticleContext$$) => void | Promise; + test_logs: (callParams: ParticleContext$$) => void | Promise; + multiply: (num: number, callParams: ParticleContext$$) => number | Promise; + add: (num: number, callParams: ParticleContext$$) => number | Promise; + state: (callParams: ParticleContext$$) => number | Promise; + subtract: (num: number, callParams: ParticleContext$$) => number | Promise; } -export function registerCalcService( - serviceId: string, - service: CalcServiceDef, -): void; -export function registerCalcService( - peer: IFluenceClient$$, - serviceId: string, - service: CalcServiceDef, -): void; - -export function registerCalcService(...args: any) { - registerService$$(args, { - functions: { - tag: "labeledProduct", - fields: { - add: { - tag: "arrow", - domain: { - tag: "labeledProduct", - fields: { - num: { - tag: "scalar", - name: "f64", - }, +export function registerCalcService(serviceId: string, service: CalcServiceDef): void; +export function registerCalcService(peer: IFluenceClient$$, serviceId: string, service: CalcServiceDef): void; +export function registerCalcService(...args: any[]) { + registerService$$( + args, + { + "functions": { + "fields": { + "divide": { + "domain": { + "fields": { + "num": { + "name": "f64", + "tag": "scalar" + } + }, + "tag": "labeledProduct" + }, + "codomain": { + "items": [ + { + "name": "f64", + "tag": "scalar" + } + ], + "tag": "unlabeledProduct" + }, + "tag": "arrow" }, - }, - codomain: { - tag: "unlabeledProduct", - items: [ - { - tag: "scalar", - name: "f64", - }, - ], - }, - }, - clear_state: { - tag: "arrow", - domain: { - tag: "nil", - }, - codomain: { - tag: "nil", - }, - }, - divide: { - tag: "arrow", - domain: { - tag: "labeledProduct", - fields: { - num: { - tag: "scalar", - name: "f64", - }, + "clear_state": { + "domain": { + "tag": "nil" + }, + "codomain": { + "tag": "nil" + }, + "tag": "arrow" }, - }, - codomain: { - tag: "unlabeledProduct", - items: [ - { - tag: "scalar", - name: "f64", - }, - ], - }, - }, - multiply: { - tag: "arrow", - domain: { - tag: "labeledProduct", - fields: { - num: { - tag: "scalar", - name: "f64", - }, + "test_logs": { + "domain": { + "tag": "nil" + }, + "codomain": { + "tag": "nil" + }, + "tag": "arrow" }, - }, - codomain: { - tag: "unlabeledProduct", - items: [ - { - tag: "scalar", - name: "f64", - }, - ], - }, - }, - state: { - tag: "arrow", - domain: { - tag: "nil", - }, - codomain: { - tag: "unlabeledProduct", - items: [ - { - tag: "scalar", - name: "f64", - }, - ], - }, - }, - subtract: { - tag: "arrow", - domain: { - tag: "labeledProduct", - fields: { - num: { - tag: "scalar", - name: "f64", - }, + "multiply": { + "domain": { + "fields": { + "num": { + "name": "f64", + "tag": "scalar" + } + }, + "tag": "labeledProduct" + }, + "codomain": { + "items": [ + { + "name": "f64", + "tag": "scalar" + } + ], + "tag": "unlabeledProduct" + }, + "tag": "arrow" }, - }, - codomain: { - tag: "unlabeledProduct", - items: [ - { - tag: "scalar", - name: "f64", - }, - ], - }, + "add": { + "domain": { + "fields": { + "num": { + "name": "f64", + "tag": "scalar" + } + }, + "tag": "labeledProduct" + }, + "codomain": { + "items": [ + { + "name": "f64", + "tag": "scalar" + } + ], + "tag": "unlabeledProduct" + }, + "tag": "arrow" + }, + "state": { + "domain": { + "tag": "nil" + }, + "codomain": { + "items": [ + { + "name": "f64", + "tag": "scalar" + } + ], + "tag": "unlabeledProduct" + }, + "tag": "arrow" + }, + "subtract": { + "domain": { + "fields": { + "num": { + "name": "f64", + "tag": "scalar" + } + }, + "tag": "labeledProduct" + }, + "codomain": { + "items": [ + { + "name": "f64", + "tag": "scalar" + } + ], + "tag": "unlabeledProduct" + }, + "tag": "arrow" + } }, - test_logs: { - tag: "arrow", - domain: { - tag: "nil", - }, - codomain: { - tag: "nil", - }, - }, - }, - }, - }); + "tag": "labeledProduct" + } +} + ); } export interface HelloWorldDef { - hello: ( - str: string, - callParams: CallParams$$<"str">, - ) => string | Promise; + hello: (str: string, callParams: ParticleContext$$) => string | Promise; } export function registerHelloWorld(service: HelloWorldDef): void; -export function registerHelloWorld( - serviceId: string, - service: HelloWorldDef, -): void; -export function registerHelloWorld( - peer: IFluenceClient$$, - service: HelloWorldDef, -): void; -export function registerHelloWorld( - peer: IFluenceClient$$, - serviceId: string, - service: HelloWorldDef, -): void; - -export function registerHelloWorld(...args: any) { - registerService$$(args, { - defaultServiceId: "hello-world", - functions: { - tag: "labeledProduct", - fields: { - hello: { - tag: "arrow", - domain: { - tag: "labeledProduct", - fields: { - str: { - tag: "scalar", - name: "string", - }, - }, - }, - codomain: { - tag: "unlabeledProduct", - items: [ - { - tag: "scalar", - name: "string", - }, - ], - }, +export function registerHelloWorld(serviceId: string, service: HelloWorldDef): void; +export function registerHelloWorld(peer: IFluenceClient$$, service: HelloWorldDef): void; +export function registerHelloWorld(peer: IFluenceClient$$, serviceId: string, service: HelloWorldDef): void; +export function registerHelloWorld(...args: any[]) { + registerService$$( + args, + { + "defaultServiceId": "hello-world", + "functions": { + "fields": { + "hello": { + "domain": { + "fields": { + "str": { + "name": "string", + "tag": "scalar" + } + }, + "tag": "labeledProduct" + }, + "codomain": { + "items": [ + { + "name": "string", + "tag": "scalar" + } + ], + "tag": "unlabeledProduct" + }, + "tag": "arrow" + } }, - }, - }, - }); + "tag": "labeledProduct" + } } + ); +} + // Functions export const resourceTest_script = ` +(xor + (seq + (seq + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (call %init_peer_id% ("getDataSrv" "label") [] -label-arg-) + ) + (new $resource_id + (seq + (seq + (seq + (call %init_peer_id% ("peer" "timestamp_sec") [] ret) + (xor + (seq + (seq + (call -relay- ("registry" "get_key_bytes") [-label-arg- [] ret [] ""] ret-0) + (xor + (call %init_peer_id% ("sig" "sign") [ret-0] ret-1) + (fail :error:) + ) + ) + (new -if-else-error- + (new -else-error- + (new -if-error- + (xor + (match ret-1.$.success false + (ap ret-1.$.error.[0] $error) + ) + (seq + (ap :error: -if-error-) + (xor + (match :error:.$.error_code 10001 + (new $successful + (seq + (seq (seq (seq (seq (seq - (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) - (call %init_peer_id% ("getDataSrv" "label") [] label) + (ap ret-1.$.signature ret-1_flat) + (call -relay- ("registry" "get_key_id") [-label-arg- %init_peer_id%] ret-2) ) - (xor - (new $resource_id - (seq + (call -relay- ("op" "string_to_b58") [ret-2] ret-3) + ) + (call -relay- ("kad" "neighborhood") [ret-3 [] []] ret-4) + ) + (par + (fold ret-4 n-0 + (par + (xor + (xor (seq (seq - (call %init_peer_id% ("peer" "timestamp_sec") [] t) - (xor - (seq - (seq - (call -relay- ("registry" "get_key_bytes") [label [] t [] ""] bytes) - (xor - (call %init_peer_id% ("sig" "sign") [bytes] result) - (fail %last_error%) - ) - ) + (seq + (call n-0 ("peer" "timestamp_sec") [] ret-5) + (call n-0 ("trust-graph" "get_weight") [%init_peer_id% ret-5] ret-6) + ) + (call n-0 ("registry" "register_key") [-label-arg- [] ret [] "" ret-1_flat.$.[0] ret-6 ret-5] ret-7) + ) + (new -if-else-error- + (new -else-error- + (new -if-error- (xor - (match result.$.success false - (ap result.$.error.[0] $error) + (seq + (match ret-7.$.success true + (ap true $successful) + ) + (new $-ephemeral-stream- + (new #-ephemeral-canon- + (canon -relay- $-ephemeral-stream- #-ephemeral-canon-) + ) + ) ) - (new $successful - (seq + (seq + (ap :error: -if-error-) + (xor (seq - (seq - (seq - (seq - (seq - (ap result.$.signature result_flat) - (call -relay- ("registry" "get_key_id") [label %init_peer_id%] id) - ) - (call -relay- ("op" "string_to_b58") [id] k) - ) - (call -relay- ("kad" "neighborhood") [k [] []] nodes) - ) - (par - (fold nodes n-0 - (par - (xor - (xor - (seq - (seq - (seq - (call n-0 ("peer" "timestamp_sec") [] t-0) - (call n-0 ("trust-graph" "get_weight") [%init_peer_id% t-0] weight) - ) - (call n-0 ("registry" "register_key") [label [] t [] "" result_flat.$.[0] weight t-0] result-0) - ) - (xor - (seq - (match result-0.$.success true - (ap true $successful) - ) - (new $-ephemeral-stream- - (new #-ephemeral-canon- - (canon -relay- $-ephemeral-stream- #-ephemeral-canon-) - ) - ) - ) - (seq - (ap result-0.$.error $error) - (new $-ephemeral-stream- - (new #-ephemeral-canon- - (canon -relay- $-ephemeral-stream- #-ephemeral-canon-) - ) - ) - ) - ) - ) - (null) - ) - (fail %last_error%) - ) - (next n-0) - ) - (never) - ) - (null) - ) + (match :error:.$.error_code 10001 + (ap ret-7.$.error $error) ) - (new $status - (new $result-1 - (seq - (seq - (seq - (par - (seq - (seq - (seq - (call -relay- ("math" "sub") [1 1] sub) - (new $successful_test - (seq - (seq - (seq - (call -relay- ("math" "add") [sub 1] successful_incr) - (fold $successful successful_fold_var - (seq - (seq - (ap successful_fold_var $successful_test) - (canon -relay- $successful_test #successful_iter_canon) - ) - (xor - (match #successful_iter_canon.length successful_incr - (null) - ) - (next successful_fold_var) - ) - ) - (never) - ) - ) - (canon -relay- $successful_test #successful_result_canon) - ) - (ap #successful_result_canon successful_gate) - ) - ) - ) - (call -relay- ("math" "sub") [1 1] sub-0) - ) - (ap "ok" $status) - ) - (call -relay- ("peer" "timeout") [6000 "timeout"] $status) - ) - (new $status_test - (seq - (seq - (seq - (call -relay- ("math" "add") [0 1] status_incr) - (fold $status status_fold_var - (seq - (seq - (ap status_fold_var $status_test) - (canon -relay- $status_test #status_iter_canon) - ) - (xor - (match #status_iter_canon.length status_incr - (null) - ) - (next status_fold_var) - ) - ) - (never) - ) - ) - (canon -relay- $status_test #status_result_canon) - ) - (ap #status_result_canon status_gate) - ) - ) - ) - (xor - (match status_gate.$.[0] "ok" - (ap true $result-1) - ) - (ap false $result-1) - ) - ) - (new $result-1_test - (seq - (seq - (seq - (call -relay- ("math" "add") [0 1] result-1_incr) - (fold $result-1 result-1_fold_var - (seq - (seq - (ap result-1_fold_var $result-1_test) - (canon -relay- $result-1_test #result-1_iter_canon) - ) - (xor - (match #result-1_iter_canon.length result-1_incr - (null) - ) - (next result-1_fold_var) - ) - ) - (never) - ) - ) - (canon -relay- $result-1_test #result-1_result_canon) - ) - (ap #result-1_result_canon result-1_gate) - ) - ) - ) + (new $-ephemeral-stream- + (new #-ephemeral-canon- + (canon -relay- $-ephemeral-stream- #-ephemeral-canon-) ) ) ) - (xor - (match result-1_gate.$.[0] false - (ap "resource wasn't created: timeout exceeded" $error) + (seq + (seq + (seq + (ap :error: -else-error-) + (xor + (seq + (match :error:.$.error_code 10001 + (ap -if-error- -if-else-error-) + ) + (new $-ephemeral-stream- + (new #-ephemeral-canon- + (canon -relay- $-ephemeral-stream- #-ephemeral-canon-) + ) + ) + ) + (seq + (ap -else-error- -if-else-error-) + (new $-ephemeral-stream- + (new #-ephemeral-canon- + (canon -relay- $-ephemeral-stream- #-ephemeral-canon-) + ) + ) + ) + ) + ) + (fail -if-else-error-) + ) + (new $-ephemeral-stream- + (new #-ephemeral-canon- + (canon -relay- $-ephemeral-stream- #-ephemeral-canon-) + ) ) - (ap id $resource_id) ) ) ) ) ) - (fail %last_error%) ) ) - (canon %init_peer_id% $resource_id #-resource_id-fix-0) ) - (ap #-resource_id-fix-0 -resource_id-flat-0) + (null) + ) + (fail :error:) + ) + (next n-0) + ) + (never) + ) + (null) + ) + ) + (new $status + (new $result-1 + (seq + (seq + (seq + (par + (seq + (new $successful_test + (seq + (seq + (fold $successful successful_fold_var + (seq + (seq + (ap successful_fold_var $successful_test) + (canon -relay- $successful_test #successful_iter_canon) + ) + (xor + (match #successful_iter_canon.length 1 + (null) + ) + (next successful_fold_var) + ) + ) + (never) + ) + (canon -relay- $successful_test #successful_result_canon) + ) + (ap #successful_result_canon successful_gate) + ) + ) + (ap "ok" $status) + ) + (seq + (call -relay- ("peer" "timeout") [6000 "timeout"] ret-8) + (ap ret-8 $status) + ) + ) + (new $status_test + (seq + (seq + (fold $status status_fold_var + (seq + (seq + (ap status_fold_var $status_test) + (canon -relay- $status_test #status_iter_canon) + ) + (xor + (match #status_iter_canon.length 1 + (null) + ) + (next status_fold_var) + ) + ) + (never) + ) + (canon -relay- $status_test #status_result_canon) + ) + (ap #status_result_canon status_gate) + ) ) ) - (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 0]) + (new -if-else-error- + (new -else-error- + (new -if-error- + (xor + (match status_gate.$.[0] "ok" + (ap true $result-1) + ) + (seq + (ap :error: -if-error-) + (xor + (match :error:.$.error_code 10001 + (ap false $result-1) + ) + (seq + (seq + (ap :error: -else-error-) + (xor + (match :error:.$.error_code 10001 + (ap -if-error- -if-else-error-) + ) + (ap -else-error- -if-else-error-) + ) + ) + (fail -if-else-error-) + ) + ) + ) + ) + ) + ) + ) + ) + (new $result-1_test + (seq + (seq + (fold $result-1 result-1_fold_var + (seq + (seq + (ap result-1_fold_var $result-1_test) + (canon -relay- $result-1_test #result-1_iter_canon) + ) + (xor + (match #result-1_iter_canon.length 1 + (null) + ) + (next result-1_fold_var) + ) + ) + (never) + ) + (canon -relay- $result-1_test #result-1_result_canon) + ) + (ap #result-1_result_canon result-1_gate) + ) ) ) - (canon %init_peer_id% $error #error_canon) ) - (call %init_peer_id% ("callbackSrv" "response") [-resource_id-flat-0 #error_canon]) ) - `; + ) + (new -if-else-error- + (new -else-error- + (new -if-error- + (xor + (match result-1_gate.$.[0] false + (ap "resource wasn't created: timeout exceeded" $error) + ) + (seq + (ap :error: -if-error-) + (xor + (match :error:.$.error_code 10001 + (ap ret-2 $resource_id) + ) + (seq + (seq + (ap :error: -else-error-) + (xor + (seq + (match :error:.$.error_code 10001 + (ap -if-error- -if-else-error-) + ) + (new $-ephemeral-stream- + (new #-ephemeral-canon- + (canon -relay- $-ephemeral-stream- #-ephemeral-canon-) + ) + ) + ) + (seq + (ap -else-error- -if-else-error-) + (new $-ephemeral-stream- + (new #-ephemeral-canon- + (canon -relay- $-ephemeral-stream- #-ephemeral-canon-) + ) + ) + ) + ) + ) + (fail -if-else-error-) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + (seq + (seq + (ap :error: -else-error-) + (xor + (seq + (match :error:.$.error_code 10001 + (ap -if-error- -if-else-error-) + ) + (new $-ephemeral-stream- + (new #-ephemeral-canon- + (canon -relay- $-ephemeral-stream- #-ephemeral-canon-) + ) + ) + ) + (seq + (ap -else-error- -if-else-error-) + (new $-ephemeral-stream- + (new #-ephemeral-canon- + (canon -relay- $-ephemeral-stream- #-ephemeral-canon-) + ) + ) + ) + ) + ) + (fail -if-else-error-) + ) + ) + ) + ) + ) + ) + ) + ) + (fail :error:) + ) + ) + (canon %init_peer_id% $resource_id #-resource_id-fix-0) + ) + (ap #-resource_id-fix-0 -resource_id-flat-0) + ) + ) + ) + (canon %init_peer_id% $error #error_canon) + ) + (call %init_peer_id% ("callbackSrv" "response") [-resource_id-flat-0 #error_canon]) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [:error: 0]) +) +`; -export type ResourceTestResult = [string | null, string[]]; -export function resourceTest( - label: string, - config?: { ttl?: number }, -): Promise; +export type ResourceTestResultType = [string | null, string[]] -export function resourceTest( - peer: IFluenceClient$$, - label: string, - config?: { ttl?: number }, -): Promise; +export type ResourceTestParams = [label: string, config?: {ttl?: number}] | [peer: IFluenceClient$$, label: string, config?: {ttl?: number}]; -export function resourceTest(...args: any) { - return callFunction$$( - args, - { - functionName: "resourceTest", - arrow: { - tag: "arrow", - domain: { - tag: "labeledProduct", - fields: { - label: { - tag: "scalar", - name: "string", +export type ResourceTestResult = Promise; + +export function resourceTest(...args: ResourceTestParams): ResourceTestResult { + return callFunction$$( + args, + { + "functionName": "resourceTest", + "arrow": { + "domain": { + "fields": { + "label": { + "name": "string", + "tag": "scalar" + } }, - }, + "tag": "labeledProduct" }, - codomain: { - tag: "unlabeledProduct", - items: [ - { - tag: "option", - type: { - tag: "scalar", - name: "string", - }, - }, - { - tag: "array", - type: { - tag: "scalar", - name: "string", - }, - }, - ], + "codomain": { + "items": [ + { + "type": { + "name": "string", + "tag": "scalar" + }, + "tag": "option" + }, + { + "type": { + "name": "string", + "tag": "scalar" + }, + "tag": "array" + } + ], + "tag": "unlabeledProduct" }, - }, - names: { - relay: "-relay-", - getDataSrv: "getDataSrv", - callbackSrv: "callbackSrv", - responseSrv: "callbackSrv", - responseFnName: "response", - errorHandlingSrv: "errorHandlingSrv", - errorFnName: "error", - }, + "tag": "arrow" }, - resourceTest_script, - ); + "names": { + "relay": "-relay-", + "getDataSrv": "getDataSrv", + "callbackSrv": "callbackSrv", + "responseSrv": "callbackSrv", + "responseFnName": "response", + "errorHandlingSrv": "errorHandlingSrv", + "errorFnName": "error" + } +}, + resourceTest_script + ); } export const helloTest_script = ` - (seq - (seq - (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) - (xor - (call %init_peer_id% ("hello-world" "hello") ["Fluence user"] hello) - (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 0]) - ) - ) - (call %init_peer_id% ("callbackSrv" "response") [hello]) - ) - `; +(xor + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (call %init_peer_id% ("hello-world" "hello") ["Fluence user"] ret) + ) + (call %init_peer_id% ("callbackSrv" "response") [ret]) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [:error: 0]) +) +`; -export function helloTest(config?: { ttl?: number }): Promise; +export type HelloTestParams = [config?: {ttl?: number}] | [peer: IFluenceClient$$, config?: {ttl?: number}]; -export function helloTest( - peer: IFluenceClient$$, - config?: { ttl?: number }, -): Promise; +export type HelloTestResult = Promise; -export function helloTest(...args: any) { - return callFunction$$( - args, - { - functionName: "helloTest", - arrow: { - tag: "arrow", - domain: { - tag: "labeledProduct", - fields: {}, +export function helloTest(...args: HelloTestParams): HelloTestResult { + return callFunction$$( + args, + { + "functionName": "helloTest", + "arrow": { + "domain": { + "fields": {}, + "tag": "labeledProduct" }, - codomain: { - tag: "unlabeledProduct", - items: [ - { - tag: "scalar", - name: "string", - }, - ], + "codomain": { + "items": [ + { + "name": "string", + "tag": "scalar" + } + ], + "tag": "unlabeledProduct" }, - }, - names: { - relay: "-relay-", - getDataSrv: "getDataSrv", - callbackSrv: "callbackSrv", - responseSrv: "callbackSrv", - responseFnName: "response", - errorHandlingSrv: "errorHandlingSrv", - errorFnName: "error", - }, + "tag": "arrow" }, - helloTest_script, - ); + "names": { + "relay": "-relay-", + "getDataSrv": "getDataSrv", + "callbackSrv": "callbackSrv", + "responseSrv": "callbackSrv", + "responseFnName": "response", + "errorHandlingSrv": "errorHandlingSrv", + "errorFnName": "error" + } +}, + helloTest_script + ); } export const callHappy_script = ` - (seq - (seq - (seq - (seq - (seq - (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) - (call %init_peer_id% ("getDataSrv" "a") [] a) - ) - (call %init_peer_id% ("getDataSrv" "b") [] b) - ) - (call %init_peer_id% ("getDataSrv" "c") [] c) - ) - (xor - (xor - (call %init_peer_id% ("callbackSrv" "d") ["abc"] init_call_res0) - (fail %last_error%) - ) - (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 0]) - ) - ) - (call %init_peer_id% ("callbackSrv" "response") [init_call_res0]) - ) - `; +(xor + (seq + (seq + (seq + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (call %init_peer_id% ("getDataSrv" "a") [] -a-arg-) + ) + (call %init_peer_id% ("getDataSrv" "b") [] -b-arg-) + ) + (call %init_peer_id% ("getDataSrv" "c") [] -c-arg-) + ) + (xor + (call %init_peer_id% ("callbackSrv" "d") ["abc"] init_call_res0) + (fail :error:) + ) + ) + (call %init_peer_id% ("callbackSrv" "response") [init_call_res0]) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [:error: 0]) +) +`; -export function callHappy( - a: string, - b: number, - c: number, - d: ( - arg0: string, - callParams: CallParams$$<"arg0">, - ) => number | Promise, - config?: { ttl?: number }, -): Promise; +export type CallHappyParams = [a: string, b: number, c: number, d: (arg0: string, callParams: ParticleContext$$) => number | Promise, config?: {ttl?: number}] | [peer: IFluenceClient$$, a: string, b: number, c: number, d: (arg0: string, callParams: ParticleContext$$) => number | Promise, config?: {ttl?: number}]; -export function callHappy( - peer: IFluenceClient$$, - a: string, - b: number, - c: number, - d: ( - arg0: string, - callParams: CallParams$$<"arg0">, - ) => number | Promise, - config?: { ttl?: number }, -): Promise; +export type CallHappyResult = Promise; -export function callHappy(...args: any) { - return callFunction$$( - args, - { - functionName: "callHappy", - arrow: { - tag: "arrow", - domain: { - tag: "labeledProduct", - fields: { - a: { - tag: "scalar", - name: "string", +export function callHappy(...args: CallHappyParams): CallHappyResult { + return callFunction$$( + args, + { + "functionName": "callHappy", + "arrow": { + "domain": { + "fields": { + "a": { + "name": "string", + "tag": "scalar" + }, + "b": { + "name": "f64", + "tag": "scalar" + }, + "c": { + "name": "f64", + "tag": "scalar" + }, + "d": { + "domain": { + "items": [ + { + "name": "string", + "tag": "scalar" + } + ], + "tag": "unlabeledProduct" + }, + "codomain": { + "items": [ + { + "name": "f64", + "tag": "scalar" + } + ], + "tag": "unlabeledProduct" + }, + "tag": "arrow" + } }, - b: { - tag: "scalar", - name: "f64", - }, - c: { - tag: "scalar", - name: "f64", - }, - d: { - tag: "arrow", - domain: { - tag: "unlabeledProduct", - items: [ - { - tag: "scalar", - name: "string", - }, - ], - }, - codomain: { - tag: "unlabeledProduct", - items: [ - { - tag: "scalar", - name: "f64", - }, - ], - }, - }, - }, + "tag": "labeledProduct" }, - codomain: { - tag: "unlabeledProduct", - items: [ - { - tag: "scalar", - name: "f64", - }, - ], + "codomain": { + "items": [ + { + "name": "f64", + "tag": "scalar" + } + ], + "tag": "unlabeledProduct" }, - }, - names: { - relay: "-relay-", - getDataSrv: "getDataSrv", - callbackSrv: "callbackSrv", - responseSrv: "callbackSrv", - responseFnName: "response", - errorHandlingSrv: "errorHandlingSrv", - errorFnName: "error", - }, + "tag": "arrow" }, - callHappy_script, - ); + "names": { + "relay": "-relay-", + "getDataSrv": "getDataSrv", + "callbackSrv": "callbackSrv", + "responseSrv": "callbackSrv", + "responseFnName": "response", + "errorHandlingSrv": "errorHandlingSrv", + "errorFnName": "error" + } +}, + callHappy_script + ); } export const demo_calculation_script = ` - (seq - (seq - (seq - (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) - (call %init_peer_id% ("getDataSrv" "service_id") [] service_id) - ) - (xor - (seq - (seq - (seq - (seq - (seq - (call %init_peer_id% (service_id "test_logs") []) - (call %init_peer_id% (service_id "add") [10]) - ) - (call %init_peer_id% (service_id "multiply") [5]) - ) - (call %init_peer_id% (service_id "subtract") [8]) - ) - (call %init_peer_id% (service_id "divide") [6]) - ) - (call %init_peer_id% (service_id "state") [] res) - ) - (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 0]) - ) - ) - (call %init_peer_id% ("callbackSrv" "response") [res]) - ) - `; +(xor + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (call %init_peer_id% ("getDataSrv" "service_id") [] -service_id-arg-) + ) + (call %init_peer_id% (-service_id-arg- "test_logs") []) + ) + (call %init_peer_id% (-service_id-arg- "add") [10] ret) + ) + (call %init_peer_id% (-service_id-arg- "multiply") [5] ret-0) + ) + (call %init_peer_id% (-service_id-arg- "subtract") [8] ret-1) + ) + (call %init_peer_id% (-service_id-arg- "divide") [6] ret-2) + ) + (call %init_peer_id% (-service_id-arg- "state") [] ret-3) + ) + (call %init_peer_id% ("callbackSrv" "response") [ret-3]) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [:error: 0]) +) +`; -export function demo_calculation( - service_id: string, - config?: { ttl?: number }, -): Promise; +export type Demo_calculationParams = [service_id: string, config?: {ttl?: number}] | [peer: IFluenceClient$$, service_id: string, config?: {ttl?: number}]; -export function demo_calculation( - peer: IFluenceClient$$, - service_id: string, - config?: { ttl?: number }, -): Promise; +export type Demo_calculationResult = Promise; -export function demo_calculation(...args: any) { - return callFunction$$( - args, - { - functionName: "demo_calculation", - arrow: { - tag: "arrow", - domain: { - tag: "labeledProduct", - fields: { - service_id: { - tag: "scalar", - name: "string", +export function demo_calculation(...args: Demo_calculationParams): Demo_calculationResult { + return callFunction$$( + args, + { + "functionName": "demo_calculation", + "arrow": { + "domain": { + "fields": { + "service_id": { + "name": "string", + "tag": "scalar" + } }, - }, + "tag": "labeledProduct" }, - codomain: { - tag: "unlabeledProduct", - items: [ - { - tag: "scalar", - name: "f64", - }, - ], + "codomain": { + "items": [ + { + "name": "f64", + "tag": "scalar" + } + ], + "tag": "unlabeledProduct" }, - }, - names: { - relay: "-relay-", - getDataSrv: "getDataSrv", - callbackSrv: "callbackSrv", - responseSrv: "callbackSrv", - responseFnName: "response", - errorHandlingSrv: "errorHandlingSrv", - errorFnName: "error", - }, + "tag": "arrow" }, - demo_calculation_script, - ); + "names": { + "relay": "-relay-", + "getDataSrv": "getDataSrv", + "callbackSrv": "callbackSrv", + "responseSrv": "callbackSrv", + "responseFnName": "response", + "errorHandlingSrv": "errorHandlingSrv", + "errorFnName": "error" + } +}, + demo_calculation_script + ); } export const marineTest_script = ` - (seq - (seq - (seq - (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) - (call %init_peer_id% ("getDataSrv" "wasm64") [] wasm64) - ) - (xor - (seq - (seq - (seq - (seq - (seq - (seq - (call %init_peer_id% ("single_module_srv" "create") [wasm64] serviceResult) - (call %init_peer_id% (serviceResult.$.service_id.[0] "test_logs") []) - ) - (call %init_peer_id% (serviceResult.$.service_id.[0] "add") [10]) - ) - (call %init_peer_id% (serviceResult.$.service_id.[0] "multiply") [5]) - ) - (call %init_peer_id% (serviceResult.$.service_id.[0] "subtract") [8]) - ) - (call %init_peer_id% (serviceResult.$.service_id.[0] "divide") [6]) - ) - (call %init_peer_id% (serviceResult.$.service_id.[0] "state") [] res) - ) - (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 0]) - ) - ) - (call %init_peer_id% ("callbackSrv" "response") [res]) - ) - `; +(xor + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (call %init_peer_id% ("getDataSrv" "wasm64") [] -wasm64-arg-) + ) + (call %init_peer_id% ("single_module_srv" "create") [-wasm64-arg-] ret) + ) + (call %init_peer_id% (ret.$.service_id.[0] "test_logs") []) + ) + (call %init_peer_id% (ret.$.service_id.[0] "add") [10] ret-0) + ) + (call %init_peer_id% (ret.$.service_id.[0] "multiply") [5] ret-1) + ) + (call %init_peer_id% (ret.$.service_id.[0] "subtract") [8] ret-2) + ) + (call %init_peer_id% (ret.$.service_id.[0] "divide") [6] ret-3) + ) + (call %init_peer_id% (ret.$.service_id.[0] "state") [] ret-4) + ) + (call %init_peer_id% ("callbackSrv" "response") [ret-4]) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [:error: 0]) +) +`; -export function marineTest( - wasm64: string, - config?: { ttl?: number }, -): Promise; +export type MarineTestParams = [wasm64: string, config?: {ttl?: number}] | [peer: IFluenceClient$$, wasm64: string, config?: {ttl?: number}]; -export function marineTest( - peer: IFluenceClient$$, - wasm64: string, - config?: { ttl?: number }, -): Promise; +export type MarineTestResult = Promise; -export function marineTest(...args: any) { - return callFunction$$( - args, - { - functionName: "marineTest", - arrow: { - tag: "arrow", - domain: { - tag: "labeledProduct", - fields: { - wasm64: { - tag: "scalar", - name: "string", +export function marineTest(...args: MarineTestParams): MarineTestResult { + return callFunction$$( + args, + { + "functionName": "marineTest", + "arrow": { + "domain": { + "fields": { + "wasm64": { + "name": "string", + "tag": "scalar" + } }, - }, + "tag": "labeledProduct" }, - codomain: { - tag: "unlabeledProduct", - items: [ - { - tag: "scalar", - name: "f64", - }, - ], + "codomain": { + "items": [ + { + "name": "f64", + "tag": "scalar" + } + ], + "tag": "unlabeledProduct" }, - }, - names: { - relay: "-relay-", - getDataSrv: "getDataSrv", - callbackSrv: "callbackSrv", - responseSrv: "callbackSrv", - responseFnName: "response", - errorHandlingSrv: "errorHandlingSrv", - errorFnName: "error", - }, + "tag": "arrow" }, - marineTest_script, - ); + "names": { + "relay": "-relay-", + "getDataSrv": "getDataSrv", + "callbackSrv": "callbackSrv", + "responseSrv": "callbackSrv", + "responseFnName": "response", + "errorHandlingSrv": "errorHandlingSrv", + "errorFnName": "error" + } +}, + marineTest_script + ); } - -/* eslint-enable */ diff --git a/packages/@tests/aqua/src/index.ts b/packages/@tests/aqua/src/index.ts index 031d2a2e..3cecd6ba 100644 --- a/packages/@tests/aqua/src/index.ts +++ b/packages/@tests/aqua/src/index.ts @@ -90,11 +90,11 @@ export const runTest = async (): Promise => { console.log("running marine test..."); const marine = await marineTest(wasm); + console.log("marine test finished, result: ", marine); console.log("running particle test..."); - await particleTest(); - console.log("marine test finished, result: ", marine); + await particleTest(); const returnVal = { hello, diff --git a/packages/@tests/smoke/web/package.json b/packages/@tests/smoke/web/package.json index 3bacec7a..fb1783c8 100644 --- a/packages/@tests/smoke/web/package.json +++ b/packages/@tests/smoke/web/package.json @@ -19,7 +19,7 @@ "author": "Fluence Labs", "license": "Apache-2.0", "dependencies": { - "@fluencelabs/js-client": "workspace:*", + "@fluencelabs/js-client-isomorphic": "workspace:*", "@test/test-utils": "workspace:*" }, "devDependencies": { diff --git a/packages/@tests/smoke/web/public/index.js b/packages/@tests/smoke/web/public/index.js index c7db44cd..f7ee6372 100644 --- a/packages/@tests/smoke/web/public/index.js +++ b/packages/@tests/smoke/web/public/index.js @@ -77,7 +77,6 @@ const getRelayTime = () => { return callAquaFunction({ args, - def, script, config, peer: Fluence.defaultClient, diff --git a/packages/@tests/test-utils/src/index.ts b/packages/@tests/test-utils/src/index.ts index 4dfef918..d640ad28 100644 --- a/packages/@tests/test-utils/src/index.ts +++ b/packages/@tests/test-utils/src/index.ts @@ -61,21 +61,16 @@ export const startContentServer = ( source: "/js-client.min.js", destination: "/source/index.min.js", }, - // TODO: - // something like this - // { - // source: "/@fluencelabs/:name(\\w+)@:version([\\d.]+)/:path*", - // destination: "/deps/@fluencelabs/:name/:path", - // } - // not supported for some reason. Need to manually iterate over all possible paths { source: "/@fluencelabs/:name([\\w-]+)@:version([\\d.]+)/dist/:asset", - destination: "/node_modules/@fluencelabs/:name/dist/:asset", + destination: + "/node_modules/@fluencelabs/js-client-isomorphic/node_modules/@fluencelabs/:name/dist/:asset", }, { source: "/@fluencelabs/:name([\\w-]+)@:version([\\d.]+)/dist/:prefix/:asset", - destination: "/node_modules/@fluencelabs/:name/dist/:prefix/:asset", + destination: + "/node_modules/@fluencelabs/js-client-isomorphic/node_modules/@fluencelabs/:name/dist/:prefix/:asset", }, ], headers: [ diff --git a/packages/core/aqua-to-js/.eslintrc.json b/packages/core/aqua-to-js/.eslintrc.json index 0e1b20d4..82a44b23 100644 --- a/packages/core/aqua-to-js/.eslintrc.json +++ b/packages/core/aqua-to-js/.eslintrc.json @@ -1,3 +1,3 @@ { - "ignorePatterns": ["src/**/__snapshots__/**/*"] + "ignorePatterns": ["src/**/__snapshots__/**/*", "src/**/*.js"] } diff --git a/packages/core/aqua-to-js/package.json b/packages/core/aqua-to-js/package.json index ab6c4a4b..c949ee9f 100644 --- a/packages/core/aqua-to-js/package.json +++ b/packages/core/aqua-to-js/package.json @@ -18,12 +18,14 @@ "ts-pattern": "5.0.5" }, "devDependencies": { - "@fluencelabs/aqua-api": "0.12.0", + "@fluencelabs/aqua-api": "0.12.4-main-cee4448-2196-1", "@fluencelabs/aqua-lib": "0.7.3", "@fluencelabs/interfaces": "workspace:*", + "@fluencelabs/js-client": "workspace:^", "@fluencelabs/registry": "0.8.7", "@fluencelabs/spell": "0.5.20", "@fluencelabs/trust-graph": "0.4.7", - "vitest": "0.34.6" + "vitest": "0.34.6", + "zod": "3.22.4" } } diff --git a/packages/core/aqua-to-js/src/common.ts b/packages/core/aqua-to-js/src/common.ts index 27d98974..5a125a88 100644 --- a/packages/core/aqua-to-js/src/common.ts +++ b/packages/core/aqua-to-js/src/common.ts @@ -14,13 +14,13 @@ * limitations under the License. */ -import { ArrowWithoutCallbacks, NonArrowType } from "@fluencelabs/interfaces"; +import { ArrowType, NonArrowType } from "@fluencelabs/interfaces"; import { match, P } from "ts-pattern"; import { getFuncArgs } from "./utils.js"; export function genTypeName( - t: NonArrowType | ArrowWithoutCallbacks, + t: NonArrowType | ArrowType, name: string, ): readonly [string | undefined, string] { const genType = typeToTs(t); @@ -46,7 +46,7 @@ export function genTypeName( }); } -export function typeToTs(t: NonArrowType | ArrowWithoutCallbacks): string { +export function typeToTs(t: NonArrowType | ArrowType): string { return match(t) .with({ tag: "nil" }, () => { return "null"; @@ -120,16 +120,7 @@ export function typeToTs(t: NonArrowType | ArrowWithoutCallbacks): string { return [name, typeToTs(type)]; }); - const generic = - args.length === 0 - ? "null" - : args - .map(([name]) => { - return `'${name}'`; - }) - .join(" | "); - - args.push(["callParams", `CallParams$$<${generic}>`]); + args.push(["callParams", `ParticleContext$$`]); const funcArgs = args .map(([name, type]) => { diff --git a/packages/core/aqua-to-js/src/generate/__test__/__snapshots__/generate.snap.d.ts b/packages/core/aqua-to-js/src/generate/__test__/__snapshots__/generate.snap.d.ts new file mode 100644 index 00000000..e3e51fda --- /dev/null +++ b/packages/core/aqua-to-js/src/generate/__test__/__snapshots__/generate.snap.d.ts @@ -0,0 +1,20 @@ +/* eslint-disable */ +// @ts-nocheck +/** + * + * This file is generated using: + * @fluencelabs/aqua-api version: 0.0.0 + * @fluencelabs/aqua-to-js version: 0.0.0 + * If you find any bugs in generated AIR, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues + * If you find any bugs in generated JS/TS, please write an issue on GitHub: https://github.com/fluencelabs/js-client/issues + * + */ +import type { IFluenceClient as IFluenceClient$$, ParticleContext as ParticleContext$$ } from '@fluencelabs/js-client'; + +// Making aliases to reduce chance of accidental name collision +import { + v5_callFunction as callFunction$$, + v5_registerService as registerService$$ +} from '@fluencelabs/js-client'; + + diff --git a/packages/core/aqua-to-js/src/generate/__test__/__snapshots__/generate.snap.js b/packages/core/aqua-to-js/src/generate/__test__/__snapshots__/generate.snap.js new file mode 100644 index 00000000..2fd03f35 --- /dev/null +++ b/packages/core/aqua-to-js/src/generate/__test__/__snapshots__/generate.snap.js @@ -0,0 +1,20 @@ +/* eslint-disable */ +// @ts-nocheck +/** + * + * This file is generated using: + * @fluencelabs/aqua-api version: 0.0.0 + * @fluencelabs/aqua-to-js version: 0.0.0 + * If you find any bugs in generated AIR, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues + * If you find any bugs in generated JS/TS, please write an issue on GitHub: https://github.com/fluencelabs/js-client/issues + * + */ + + +// Making aliases to reduce chance of accidental name collision +import { + v5_callFunction as callFunction$$, + v5_registerService as registerService$$ +} from '@fluencelabs/js-client'; + + diff --git a/packages/core/aqua-to-js/src/generate/__test__/__snapshots__/generate.snap.ts b/packages/core/aqua-to-js/src/generate/__test__/__snapshots__/generate.snap.ts new file mode 100644 index 00000000..e3e51fda --- /dev/null +++ b/packages/core/aqua-to-js/src/generate/__test__/__snapshots__/generate.snap.ts @@ -0,0 +1,20 @@ +/* eslint-disable */ +// @ts-nocheck +/** + * + * This file is generated using: + * @fluencelabs/aqua-api version: 0.0.0 + * @fluencelabs/aqua-to-js version: 0.0.0 + * If you find any bugs in generated AIR, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues + * If you find any bugs in generated JS/TS, please write an issue on GitHub: https://github.com/fluencelabs/js-client/issues + * + */ +import type { IFluenceClient as IFluenceClient$$, ParticleContext as ParticleContext$$ } from '@fluencelabs/js-client'; + +// Making aliases to reduce chance of accidental name collision +import { + v5_callFunction as callFunction$$, + v5_registerService as registerService$$ +} from '@fluencelabs/js-client'; + + diff --git a/packages/core/aqua-to-js/src/generate/__test__/__snapshots__/generate.spec.ts.snap b/packages/core/aqua-to-js/src/generate/__test__/__snapshots__/generate.spec.ts.snap deleted file mode 100644 index 2d36ff08..00000000 --- a/packages/core/aqua-to-js/src/generate/__test__/__snapshots__/generate.spec.ts.snap +++ /dev/null @@ -1,1697 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`Aqua to js/ts compiler > compiles smoke tests successfully 1`] = ` -"/* eslint-disable */ -// @ts-nocheck -/** - * - * This file is generated using: - * @fluencelabs/aqua-api version: 0.0.0 - * @fluencelabs/aqua-to-js version: 0.0.0 - * If you find any bugs in generated AIR, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues - * If you find any bugs in generated JS/TS, please write an issue on GitHub: https://github.com/fluencelabs/js-client/issues - * - */ - - -import { - v5_callFunction as callFunction$$, - v5_registerService as registerService$$, -} from '@fluencelabs/js-client'; - -// Services - -export function registerSrv(...args) { - registerService$$( - args, - { - \\"defaultServiceId\\": \\"single_module_srv\\", - \\"functions\\": { - \\"fields\\": { - \\"create\\": { - \\"domain\\": { - \\"fields\\": { - \\"wasm_b64_content\\": { - \\"name\\": \\"string\\", - \\"tag\\": \\"scalar\\" - } - }, - \\"tag\\": \\"labeledProduct\\" - }, - \\"codomain\\": { - \\"items\\": [ - { - \\"name\\": \\"ServiceCreationResult\\", - \\"fields\\": { - \\"error\\": { - \\"type\\": { - \\"name\\": \\"string\\", - \\"tag\\": \\"scalar\\" - }, - \\"tag\\": \\"option\\" - }, - \\"service_id\\": { - \\"type\\": { - \\"name\\": \\"string\\", - \\"tag\\": \\"scalar\\" - }, - \\"tag\\": \\"option\\" - }, - \\"success\\": { - \\"name\\": \\"bool\\", - \\"tag\\": \\"scalar\\" - } - }, - \\"tag\\": \\"struct\\" - } - ], - \\"tag\\": \\"unlabeledProduct\\" - }, - \\"tag\\": \\"arrow\\" - }, - \\"list\\": { - \\"domain\\": { - \\"tag\\": \\"nil\\" - }, - \\"codomain\\": { - \\"items\\": [ - { - \\"type\\": { - \\"name\\": \\"string\\", - \\"tag\\": \\"scalar\\" - }, - \\"tag\\": \\"array\\" - } - ], - \\"tag\\": \\"unlabeledProduct\\" - }, - \\"tag\\": \\"arrow\\" - }, - \\"remove\\": { - \\"domain\\": { - \\"fields\\": { - \\"service_id\\": { - \\"name\\": \\"string\\", - \\"tag\\": \\"scalar\\" - } - }, - \\"tag\\": \\"labeledProduct\\" - }, - \\"codomain\\": { - \\"items\\": [ - { - \\"name\\": \\"RemoveResult\\", - \\"fields\\": { - \\"error\\": { - \\"type\\": { - \\"name\\": \\"string\\", - \\"tag\\": \\"scalar\\" - }, - \\"tag\\": \\"option\\" - }, - \\"success\\": { - \\"name\\": \\"bool\\", - \\"tag\\": \\"scalar\\" - } - }, - \\"tag\\": \\"struct\\" - } - ], - \\"tag\\": \\"unlabeledProduct\\" - }, - \\"tag\\": \\"arrow\\" - } - }, - \\"tag\\": \\"labeledProduct\\" - } -} - ); -} - - -export function registerCalcService(...args) { - registerService$$( - args, - { - \\"functions\\": { - \\"fields\\": { - \\"add\\": { - \\"domain\\": { - \\"fields\\": { - \\"num\\": { - \\"name\\": \\"f64\\", - \\"tag\\": \\"scalar\\" - } - }, - \\"tag\\": \\"labeledProduct\\" - }, - \\"codomain\\": { - \\"items\\": [ - { - \\"name\\": \\"f64\\", - \\"tag\\": \\"scalar\\" - } - ], - \\"tag\\": \\"unlabeledProduct\\" - }, - \\"tag\\": \\"arrow\\" - }, - \\"clear_state\\": { - \\"domain\\": { - \\"tag\\": \\"nil\\" - }, - \\"codomain\\": { - \\"tag\\": \\"nil\\" - }, - \\"tag\\": \\"arrow\\" - }, - \\"divide\\": { - \\"domain\\": { - \\"fields\\": { - \\"num\\": { - \\"name\\": \\"f64\\", - \\"tag\\": \\"scalar\\" - } - }, - \\"tag\\": \\"labeledProduct\\" - }, - \\"codomain\\": { - \\"items\\": [ - { - \\"name\\": \\"f64\\", - \\"tag\\": \\"scalar\\" - } - ], - \\"tag\\": \\"unlabeledProduct\\" - }, - \\"tag\\": \\"arrow\\" - }, - \\"multiply\\": { - \\"domain\\": { - \\"fields\\": { - \\"num\\": { - \\"name\\": \\"f64\\", - \\"tag\\": \\"scalar\\" - } - }, - \\"tag\\": \\"labeledProduct\\" - }, - \\"codomain\\": { - \\"items\\": [ - { - \\"name\\": \\"f64\\", - \\"tag\\": \\"scalar\\" - } - ], - \\"tag\\": \\"unlabeledProduct\\" - }, - \\"tag\\": \\"arrow\\" - }, - \\"state\\": { - \\"domain\\": { - \\"tag\\": \\"nil\\" - }, - \\"codomain\\": { - \\"items\\": [ - { - \\"name\\": \\"f64\\", - \\"tag\\": \\"scalar\\" - } - ], - \\"tag\\": \\"unlabeledProduct\\" - }, - \\"tag\\": \\"arrow\\" - }, - \\"subtract\\": { - \\"domain\\": { - \\"fields\\": { - \\"num\\": { - \\"name\\": \\"f64\\", - \\"tag\\": \\"scalar\\" - } - }, - \\"tag\\": \\"labeledProduct\\" - }, - \\"codomain\\": { - \\"items\\": [ - { - \\"name\\": \\"f64\\", - \\"tag\\": \\"scalar\\" - } - ], - \\"tag\\": \\"unlabeledProduct\\" - }, - \\"tag\\": \\"arrow\\" - }, - \\"test_logs\\": { - \\"domain\\": { - \\"tag\\": \\"nil\\" - }, - \\"codomain\\": { - \\"tag\\": \\"nil\\" - }, - \\"tag\\": \\"arrow\\" - } - }, - \\"tag\\": \\"labeledProduct\\" - } -} - ); -} - - -export function registerHelloWorld(...args) { - registerService$$( - args, - { - \\"defaultServiceId\\": \\"hello-world\\", - \\"functions\\": { - \\"fields\\": { - \\"hello\\": { - \\"domain\\": { - \\"fields\\": { - \\"str\\": { - \\"name\\": \\"string\\", - \\"tag\\": \\"scalar\\" - } - }, - \\"tag\\": \\"labeledProduct\\" - }, - \\"codomain\\": { - \\"items\\": [ - { - \\"name\\": \\"string\\", - \\"tag\\": \\"scalar\\" - } - ], - \\"tag\\": \\"unlabeledProduct\\" - }, - \\"tag\\": \\"arrow\\" - } - }, - \\"tag\\": \\"labeledProduct\\" - } -} - ); -} - - -// Functions -export const resourceTest_script = \` -(seq - (seq - (seq - (seq - (call %init_peer_id% (\\"getDataSrv\\" \\"-relay-\\") [] -relay-) - (call %init_peer_id% (\\"getDataSrv\\" \\"label\\") [] label) - ) - (xor - (new $resource_id - (seq - (seq - (seq - (call %init_peer_id% (\\"peer\\" \\"timestamp_sec\\") [] t) - (xor - (seq - (seq - (call -relay- (\\"registry\\" \\"get_key_bytes\\") [label [] t [] \\"\\"] bytes) - (xor - (call %init_peer_id% (\\"sig\\" \\"sign\\") [bytes] result) - (fail %last_error%) - ) - ) - (xor - (match result.$.success false - (ap result.$.error.[0] $error) - ) - (new $successful - (seq - (seq - (seq - (seq - (seq - (seq - (ap result.$.signature result_flat) - (call -relay- (\\"registry\\" \\"get_key_id\\") [label %init_peer_id%] id) - ) - (call -relay- (\\"op\\" \\"string_to_b58\\") [id] k) - ) - (call -relay- (\\"kad\\" \\"neighborhood\\") [k [] []] nodes) - ) - (par - (fold nodes n-0 - (par - (xor - (xor - (seq - (seq - (seq - (call n-0 (\\"peer\\" \\"timestamp_sec\\") [] t-0) - (call n-0 (\\"trust-graph\\" \\"get_weight\\") [%init_peer_id% t-0] weight) - ) - (call n-0 (\\"registry\\" \\"register_key\\") [label [] t [] \\"\\" result_flat.$.[0] weight t-0] result-0) - ) - (xor - (seq - (match result-0.$.success true - (ap true $successful) - ) - (new $-ephemeral-stream- - (new #-ephemeral-canon- - (canon -relay- $-ephemeral-stream- #-ephemeral-canon-) - ) - ) - ) - (seq - (ap result-0.$.error $error) - (new $-ephemeral-stream- - (new #-ephemeral-canon- - (canon -relay- $-ephemeral-stream- #-ephemeral-canon-) - ) - ) - ) - ) - ) - (null) - ) - (fail %last_error%) - ) - (next n-0) - ) - (never) - ) - (null) - ) - ) - (new $status - (new $result-1 - (seq - (seq - (seq - (par - (seq - (seq - (seq - (call -relay- (\\"math\\" \\"sub\\") [1 1] sub) - (new $successful_test - (seq - (seq - (seq - (call -relay- (\\"math\\" \\"add\\") [sub 1] successful_incr) - (fold $successful successful_fold_var - (seq - (seq - (ap successful_fold_var $successful_test) - (canon -relay- $successful_test #successful_iter_canon) - ) - (xor - (match #successful_iter_canon.length successful_incr - (null) - ) - (next successful_fold_var) - ) - ) - (never) - ) - ) - (canon -relay- $successful_test #successful_result_canon) - ) - (ap #successful_result_canon successful_gate) - ) - ) - ) - (call -relay- (\\"math\\" \\"sub\\") [1 1] sub-0) - ) - (ap \\"ok\\" $status) - ) - (call -relay- (\\"peer\\" \\"timeout\\") [6000 \\"timeout\\"] $status) - ) - (new $status_test - (seq - (seq - (seq - (call -relay- (\\"math\\" \\"add\\") [0 1] status_incr) - (fold $status status_fold_var - (seq - (seq - (ap status_fold_var $status_test) - (canon -relay- $status_test #status_iter_canon) - ) - (xor - (match #status_iter_canon.length status_incr - (null) - ) - (next status_fold_var) - ) - ) - (never) - ) - ) - (canon -relay- $status_test #status_result_canon) - ) - (ap #status_result_canon status_gate) - ) - ) - ) - (xor - (match status_gate.$.[0] \\"ok\\" - (ap true $result-1) - ) - (ap false $result-1) - ) - ) - (new $result-1_test - (seq - (seq - (seq - (call -relay- (\\"math\\" \\"add\\") [0 1] result-1_incr) - (fold $result-1 result-1_fold_var - (seq - (seq - (ap result-1_fold_var $result-1_test) - (canon -relay- $result-1_test #result-1_iter_canon) - ) - (xor - (match #result-1_iter_canon.length result-1_incr - (null) - ) - (next result-1_fold_var) - ) - ) - (never) - ) - ) - (canon -relay- $result-1_test #result-1_result_canon) - ) - (ap #result-1_result_canon result-1_gate) - ) - ) - ) - ) - ) - ) - (xor - (match result-1_gate.$.[0] false - (ap \\"resource wasn't created: timeout exceeded\\" $error) - ) - (ap id $resource_id) - ) - ) - ) - ) - ) - (fail %last_error%) - ) - ) - (canon %init_peer_id% $resource_id #-resource_id-fix-0) - ) - (ap #-resource_id-fix-0 -resource_id-flat-0) - ) - ) - (call %init_peer_id% (\\"errorHandlingSrv\\" \\"error\\") [%last_error% 0]) - ) - ) - (canon %init_peer_id% $error #error_canon) - ) - (call %init_peer_id% (\\"callbackSrv\\" \\"response\\") [-resource_id-flat-0 #error_canon]) -) -\`; - - -export function resourceTest(...args) { - return callFunction$$( - args, - { - \\"functionName\\": \\"resourceTest\\", - \\"arrow\\": { - \\"domain\\": { - \\"fields\\": { - \\"label\\": { - \\"name\\": \\"string\\", - \\"tag\\": \\"scalar\\" - } - }, - \\"tag\\": \\"labeledProduct\\" - }, - \\"codomain\\": { - \\"items\\": [ - { - \\"type\\": { - \\"name\\": \\"string\\", - \\"tag\\": \\"scalar\\" - }, - \\"tag\\": \\"option\\" - }, - { - \\"type\\": { - \\"name\\": \\"string\\", - \\"tag\\": \\"scalar\\" - }, - \\"tag\\": \\"array\\" - } - ], - \\"tag\\": \\"unlabeledProduct\\" - }, - \\"tag\\": \\"arrow\\" - }, - \\"names\\": { - \\"relay\\": \\"-relay-\\", - \\"getDataSrv\\": \\"getDataSrv\\", - \\"callbackSrv\\": \\"callbackSrv\\", - \\"responseSrv\\": \\"callbackSrv\\", - \\"responseFnName\\": \\"response\\", - \\"errorHandlingSrv\\": \\"errorHandlingSrv\\", - \\"errorFnName\\": \\"error\\" - } -}, - resourceTest_script - ); -} - -export const helloTest_script = \` -(seq - (seq - (call %init_peer_id% (\\"getDataSrv\\" \\"-relay-\\") [] -relay-) - (xor - (call %init_peer_id% (\\"hello-world\\" \\"hello\\") [\\"Fluence user\\"] hello) - (call %init_peer_id% (\\"errorHandlingSrv\\" \\"error\\") [%last_error% 0]) - ) - ) - (call %init_peer_id% (\\"callbackSrv\\" \\"response\\") [hello]) -) -\`; - - -export function helloTest(...args) { - return callFunction$$( - args, - { - \\"functionName\\": \\"helloTest\\", - \\"arrow\\": { - \\"domain\\": { - \\"fields\\": {}, - \\"tag\\": \\"labeledProduct\\" - }, - \\"codomain\\": { - \\"items\\": [ - { - \\"name\\": \\"string\\", - \\"tag\\": \\"scalar\\" - } - ], - \\"tag\\": \\"unlabeledProduct\\" - }, - \\"tag\\": \\"arrow\\" - }, - \\"names\\": { - \\"relay\\": \\"-relay-\\", - \\"getDataSrv\\": \\"getDataSrv\\", - \\"callbackSrv\\": \\"callbackSrv\\", - \\"responseSrv\\": \\"callbackSrv\\", - \\"responseFnName\\": \\"response\\", - \\"errorHandlingSrv\\": \\"errorHandlingSrv\\", - \\"errorFnName\\": \\"error\\" - } -}, - helloTest_script - ); -} - -export const demo_calculation_script = \` -(seq - (seq - (seq - (call %init_peer_id% (\\"getDataSrv\\" \\"-relay-\\") [] -relay-) - (call %init_peer_id% (\\"getDataSrv\\" \\"service_id\\") [] service_id) - ) - (xor - (seq - (seq - (seq - (seq - (seq - (call %init_peer_id% (service_id \\"test_logs\\") []) - (call %init_peer_id% (service_id \\"add\\") [10]) - ) - (call %init_peer_id% (service_id \\"multiply\\") [5]) - ) - (call %init_peer_id% (service_id \\"subtract\\") [8]) - ) - (call %init_peer_id% (service_id \\"divide\\") [6]) - ) - (call %init_peer_id% (service_id \\"state\\") [] res) - ) - (call %init_peer_id% (\\"errorHandlingSrv\\" \\"error\\") [%last_error% 0]) - ) - ) - (call %init_peer_id% (\\"callbackSrv\\" \\"response\\") [res]) -) -\`; - - -export function demo_calculation(...args) { - return callFunction$$( - args, - { - \\"functionName\\": \\"demo_calculation\\", - \\"arrow\\": { - \\"domain\\": { - \\"fields\\": { - \\"service_id\\": { - \\"name\\": \\"string\\", - \\"tag\\": \\"scalar\\" - } - }, - \\"tag\\": \\"labeledProduct\\" - }, - \\"codomain\\": { - \\"items\\": [ - { - \\"name\\": \\"f64\\", - \\"tag\\": \\"scalar\\" - } - ], - \\"tag\\": \\"unlabeledProduct\\" - }, - \\"tag\\": \\"arrow\\" - }, - \\"names\\": { - \\"relay\\": \\"-relay-\\", - \\"getDataSrv\\": \\"getDataSrv\\", - \\"callbackSrv\\": \\"callbackSrv\\", - \\"responseSrv\\": \\"callbackSrv\\", - \\"responseFnName\\": \\"response\\", - \\"errorHandlingSrv\\": \\"errorHandlingSrv\\", - \\"errorFnName\\": \\"error\\" - } -}, - demo_calculation_script - ); -} - -export const marineTest_script = \` -(seq - (seq - (seq - (call %init_peer_id% (\\"getDataSrv\\" \\"-relay-\\") [] -relay-) - (call %init_peer_id% (\\"getDataSrv\\" \\"wasm64\\") [] wasm64) - ) - (xor - (seq - (seq - (seq - (seq - (seq - (seq - (call %init_peer_id% (\\"single_module_srv\\" \\"create\\") [wasm64] serviceResult) - (call %init_peer_id% (serviceResult.$.service_id.[0] \\"test_logs\\") []) - ) - (call %init_peer_id% (serviceResult.$.service_id.[0] \\"add\\") [10]) - ) - (call %init_peer_id% (serviceResult.$.service_id.[0] \\"multiply\\") [5]) - ) - (call %init_peer_id% (serviceResult.$.service_id.[0] \\"subtract\\") [8]) - ) - (call %init_peer_id% (serviceResult.$.service_id.[0] \\"divide\\") [6]) - ) - (call %init_peer_id% (serviceResult.$.service_id.[0] \\"state\\") [] res) - ) - (call %init_peer_id% (\\"errorHandlingSrv\\" \\"error\\") [%last_error% 0]) - ) - ) - (call %init_peer_id% (\\"callbackSrv\\" \\"response\\") [res]) -) -\`; - - -export function marineTest(...args) { - return callFunction$$( - args, - { - \\"functionName\\": \\"marineTest\\", - \\"arrow\\": { - \\"domain\\": { - \\"fields\\": { - \\"wasm64\\": { - \\"name\\": \\"string\\", - \\"tag\\": \\"scalar\\" - } - }, - \\"tag\\": \\"labeledProduct\\" - }, - \\"codomain\\": { - \\"items\\": [ - { - \\"name\\": \\"f64\\", - \\"tag\\": \\"scalar\\" - } - ], - \\"tag\\": \\"unlabeledProduct\\" - }, - \\"tag\\": \\"arrow\\" - }, - \\"names\\": { - \\"relay\\": \\"-relay-\\", - \\"getDataSrv\\": \\"getDataSrv\\", - \\"callbackSrv\\": \\"callbackSrv\\", - \\"responseSrv\\": \\"callbackSrv\\", - \\"responseFnName\\": \\"response\\", - \\"errorHandlingSrv\\": \\"errorHandlingSrv\\", - \\"errorFnName\\": \\"error\\" - } -}, - marineTest_script - ); -} -" -`; - -exports[`Aqua to js/ts compiler > compiles smoke tests successfully 2`] = ` -"/* eslint-disable */ -// @ts-nocheck -/** - * - * This file is generated using: - * @fluencelabs/aqua-api version: 0.0.0 - * @fluencelabs/aqua-to-js version: 0.0.0 - * If you find any bugs in generated AIR, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues - * If you find any bugs in generated JS/TS, please write an issue on GitHub: https://github.com/fluencelabs/js-client/issues - * - */ -import type { IFluenceClient as IFluenceClient$$, CallParams as CallParams$$ } from '@fluencelabs/js-client'; - -import { - v5_callFunction as callFunction$$, - v5_registerService as registerService$$, -} from '@fluencelabs/js-client'; - -// Services -export interface SrvDef { - create: (wasm_b64_content: string, callParams: CallParams$$<'wasm_b64_content'>) => { error: string | null; service_id: string | null; success: boolean; } | Promise<{ error: string | null; service_id: string | null; success: boolean; }>; - list: (callParams: CallParams$$) => string[] | Promise; - remove: (service_id: string, callParams: CallParams$$<'service_id'>) => { error: string | null; success: boolean; } | Promise<{ error: string | null; success: boolean; }>; -} -export function registerSrv(service: SrvDef): void; -export function registerSrv(serviceId: string, service: SrvDef): void; -export function registerSrv(peer: IFluenceClient$$, service: SrvDef): void; -export function registerSrv(peer: IFluenceClient$$, serviceId: string, service: SrvDef): void; -export interface CalcServiceDef { - add: (num: number, callParams: CallParams$$<'num'>) => number | Promise; - clear_state: (callParams: CallParams$$) => void | Promise; - divide: (num: number, callParams: CallParams$$<'num'>) => number | Promise; - multiply: (num: number, callParams: CallParams$$<'num'>) => number | Promise; - state: (callParams: CallParams$$) => number | Promise; - subtract: (num: number, callParams: CallParams$$<'num'>) => number | Promise; - test_logs: (callParams: CallParams$$) => void | Promise; -} -export function registerCalcService(service: CalcServiceDef): void; -export function registerCalcService(serviceId: string, service: CalcServiceDef): void; -export function registerCalcService(peer: IFluenceClient$$, service: CalcServiceDef): void; -export function registerCalcService(peer: IFluenceClient$$, serviceId: string, service: CalcServiceDef): void; -export interface HelloWorldDef { - hello: (str: string, callParams: CallParams$$<'str'>) => string | Promise; -} -export function registerHelloWorld(service: HelloWorldDef): void; -export function registerHelloWorld(serviceId: string, service: HelloWorldDef): void; -export function registerHelloWorld(peer: IFluenceClient$$, service: HelloWorldDef): void; -export function registerHelloWorld(peer: IFluenceClient$$, serviceId: string, service: HelloWorldDef): void; - -// Functions -export type ResourceTestResult = [string | null, string[]] - -export function resourceTest( - label: string, - config?: {ttl?: number} -): Promise; - -export function resourceTest( - peer: IFluenceClient$$, - label: string, - config?: {ttl?: number} -): Promise; - -export function helloTest( - config?: {ttl?: number} -): Promise; - -export function helloTest( - peer: IFluenceClient$$, - config?: {ttl?: number} -): Promise; - -export function demo_calculation( - service_id: string, - config?: {ttl?: number} -): Promise; - -export function demo_calculation( - peer: IFluenceClient$$, - service_id: string, - config?: {ttl?: number} -): Promise; - -export function marineTest( - wasm64: string, - config?: {ttl?: number} -): Promise; - -export function marineTest( - peer: IFluenceClient$$, - wasm64: string, - config?: {ttl?: number} -): Promise; - -" -`; - -exports[`Aqua to js/ts compiler > compiles smoke tests successfully 3`] = ` -"/* eslint-disable */ -// @ts-nocheck -/** - * - * This file is generated using: - * @fluencelabs/aqua-api version: 0.0.0 - * @fluencelabs/aqua-to-js version: 0.0.0 - * If you find any bugs in generated AIR, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues - * If you find any bugs in generated JS/TS, please write an issue on GitHub: https://github.com/fluencelabs/js-client/issues - * - */ -import type { IFluenceClient as IFluenceClient$$, CallParams as CallParams$$ } from '@fluencelabs/js-client'; - -import { - v5_callFunction as callFunction$$, - v5_registerService as registerService$$, -} from '@fluencelabs/js-client'; - -// Services -export interface SrvDef { - create: (wasm_b64_content: string, callParams: CallParams$$<'wasm_b64_content'>) => { error: string | null; service_id: string | null; success: boolean; } | Promise<{ error: string | null; service_id: string | null; success: boolean; }>; - list: (callParams: CallParams$$) => string[] | Promise; - remove: (service_id: string, callParams: CallParams$$<'service_id'>) => { error: string | null; success: boolean; } | Promise<{ error: string | null; success: boolean; }>; -} -export function registerSrv(service: SrvDef): void; -export function registerSrv(serviceId: string, service: SrvDef): void; -export function registerSrv(peer: IFluenceClient$$, service: SrvDef): void; -export function registerSrv(peer: IFluenceClient$$, serviceId: string, service: SrvDef): void; -export function registerSrv(...args: any[]) { - registerService$$( - args, - { - \\"defaultServiceId\\": \\"single_module_srv\\", - \\"functions\\": { - \\"fields\\": { - \\"create\\": { - \\"domain\\": { - \\"fields\\": { - \\"wasm_b64_content\\": { - \\"name\\": \\"string\\", - \\"tag\\": \\"scalar\\" - } - }, - \\"tag\\": \\"labeledProduct\\" - }, - \\"codomain\\": { - \\"items\\": [ - { - \\"name\\": \\"ServiceCreationResult\\", - \\"fields\\": { - \\"error\\": { - \\"type\\": { - \\"name\\": \\"string\\", - \\"tag\\": \\"scalar\\" - }, - \\"tag\\": \\"option\\" - }, - \\"service_id\\": { - \\"type\\": { - \\"name\\": \\"string\\", - \\"tag\\": \\"scalar\\" - }, - \\"tag\\": \\"option\\" - }, - \\"success\\": { - \\"name\\": \\"bool\\", - \\"tag\\": \\"scalar\\" - } - }, - \\"tag\\": \\"struct\\" - } - ], - \\"tag\\": \\"unlabeledProduct\\" - }, - \\"tag\\": \\"arrow\\" - }, - \\"list\\": { - \\"domain\\": { - \\"tag\\": \\"nil\\" - }, - \\"codomain\\": { - \\"items\\": [ - { - \\"type\\": { - \\"name\\": \\"string\\", - \\"tag\\": \\"scalar\\" - }, - \\"tag\\": \\"array\\" - } - ], - \\"tag\\": \\"unlabeledProduct\\" - }, - \\"tag\\": \\"arrow\\" - }, - \\"remove\\": { - \\"domain\\": { - \\"fields\\": { - \\"service_id\\": { - \\"name\\": \\"string\\", - \\"tag\\": \\"scalar\\" - } - }, - \\"tag\\": \\"labeledProduct\\" - }, - \\"codomain\\": { - \\"items\\": [ - { - \\"name\\": \\"RemoveResult\\", - \\"fields\\": { - \\"error\\": { - \\"type\\": { - \\"name\\": \\"string\\", - \\"tag\\": \\"scalar\\" - }, - \\"tag\\": \\"option\\" - }, - \\"success\\": { - \\"name\\": \\"bool\\", - \\"tag\\": \\"scalar\\" - } - }, - \\"tag\\": \\"struct\\" - } - ], - \\"tag\\": \\"unlabeledProduct\\" - }, - \\"tag\\": \\"arrow\\" - } - }, - \\"tag\\": \\"labeledProduct\\" - } -} - ); -} - -export interface CalcServiceDef { - add: (num: number, callParams: CallParams$$<'num'>) => number | Promise; - clear_state: (callParams: CallParams$$) => void | Promise; - divide: (num: number, callParams: CallParams$$<'num'>) => number | Promise; - multiply: (num: number, callParams: CallParams$$<'num'>) => number | Promise; - state: (callParams: CallParams$$) => number | Promise; - subtract: (num: number, callParams: CallParams$$<'num'>) => number | Promise; - test_logs: (callParams: CallParams$$) => void | Promise; -} -export function registerCalcService(service: CalcServiceDef): void; -export function registerCalcService(serviceId: string, service: CalcServiceDef): void; -export function registerCalcService(peer: IFluenceClient$$, service: CalcServiceDef): void; -export function registerCalcService(peer: IFluenceClient$$, serviceId: string, service: CalcServiceDef): void; -export function registerCalcService(...args: any[]) { - registerService$$( - args, - { - \\"functions\\": { - \\"fields\\": { - \\"add\\": { - \\"domain\\": { - \\"fields\\": { - \\"num\\": { - \\"name\\": \\"f64\\", - \\"tag\\": \\"scalar\\" - } - }, - \\"tag\\": \\"labeledProduct\\" - }, - \\"codomain\\": { - \\"items\\": [ - { - \\"name\\": \\"f64\\", - \\"tag\\": \\"scalar\\" - } - ], - \\"tag\\": \\"unlabeledProduct\\" - }, - \\"tag\\": \\"arrow\\" - }, - \\"clear_state\\": { - \\"domain\\": { - \\"tag\\": \\"nil\\" - }, - \\"codomain\\": { - \\"tag\\": \\"nil\\" - }, - \\"tag\\": \\"arrow\\" - }, - \\"divide\\": { - \\"domain\\": { - \\"fields\\": { - \\"num\\": { - \\"name\\": \\"f64\\", - \\"tag\\": \\"scalar\\" - } - }, - \\"tag\\": \\"labeledProduct\\" - }, - \\"codomain\\": { - \\"items\\": [ - { - \\"name\\": \\"f64\\", - \\"tag\\": \\"scalar\\" - } - ], - \\"tag\\": \\"unlabeledProduct\\" - }, - \\"tag\\": \\"arrow\\" - }, - \\"multiply\\": { - \\"domain\\": { - \\"fields\\": { - \\"num\\": { - \\"name\\": \\"f64\\", - \\"tag\\": \\"scalar\\" - } - }, - \\"tag\\": \\"labeledProduct\\" - }, - \\"codomain\\": { - \\"items\\": [ - { - \\"name\\": \\"f64\\", - \\"tag\\": \\"scalar\\" - } - ], - \\"tag\\": \\"unlabeledProduct\\" - }, - \\"tag\\": \\"arrow\\" - }, - \\"state\\": { - \\"domain\\": { - \\"tag\\": \\"nil\\" - }, - \\"codomain\\": { - \\"items\\": [ - { - \\"name\\": \\"f64\\", - \\"tag\\": \\"scalar\\" - } - ], - \\"tag\\": \\"unlabeledProduct\\" - }, - \\"tag\\": \\"arrow\\" - }, - \\"subtract\\": { - \\"domain\\": { - \\"fields\\": { - \\"num\\": { - \\"name\\": \\"f64\\", - \\"tag\\": \\"scalar\\" - } - }, - \\"tag\\": \\"labeledProduct\\" - }, - \\"codomain\\": { - \\"items\\": [ - { - \\"name\\": \\"f64\\", - \\"tag\\": \\"scalar\\" - } - ], - \\"tag\\": \\"unlabeledProduct\\" - }, - \\"tag\\": \\"arrow\\" - }, - \\"test_logs\\": { - \\"domain\\": { - \\"tag\\": \\"nil\\" - }, - \\"codomain\\": { - \\"tag\\": \\"nil\\" - }, - \\"tag\\": \\"arrow\\" - } - }, - \\"tag\\": \\"labeledProduct\\" - } -} - ); -} - -export interface HelloWorldDef { - hello: (str: string, callParams: CallParams$$<'str'>) => string | Promise; -} -export function registerHelloWorld(service: HelloWorldDef): void; -export function registerHelloWorld(serviceId: string, service: HelloWorldDef): void; -export function registerHelloWorld(peer: IFluenceClient$$, service: HelloWorldDef): void; -export function registerHelloWorld(peer: IFluenceClient$$, serviceId: string, service: HelloWorldDef): void; -export function registerHelloWorld(...args: any[]) { - registerService$$( - args, - { - \\"defaultServiceId\\": \\"hello-world\\", - \\"functions\\": { - \\"fields\\": { - \\"hello\\": { - \\"domain\\": { - \\"fields\\": { - \\"str\\": { - \\"name\\": \\"string\\", - \\"tag\\": \\"scalar\\" - } - }, - \\"tag\\": \\"labeledProduct\\" - }, - \\"codomain\\": { - \\"items\\": [ - { - \\"name\\": \\"string\\", - \\"tag\\": \\"scalar\\" - } - ], - \\"tag\\": \\"unlabeledProduct\\" - }, - \\"tag\\": \\"arrow\\" - } - }, - \\"tag\\": \\"labeledProduct\\" - } -} - ); -} - - -// Functions -export const resourceTest_script = \` -(seq - (seq - (seq - (seq - (call %init_peer_id% (\\"getDataSrv\\" \\"-relay-\\") [] -relay-) - (call %init_peer_id% (\\"getDataSrv\\" \\"label\\") [] label) - ) - (xor - (new $resource_id - (seq - (seq - (seq - (call %init_peer_id% (\\"peer\\" \\"timestamp_sec\\") [] t) - (xor - (seq - (seq - (call -relay- (\\"registry\\" \\"get_key_bytes\\") [label [] t [] \\"\\"] bytes) - (xor - (call %init_peer_id% (\\"sig\\" \\"sign\\") [bytes] result) - (fail %last_error%) - ) - ) - (xor - (match result.$.success false - (ap result.$.error.[0] $error) - ) - (new $successful - (seq - (seq - (seq - (seq - (seq - (seq - (ap result.$.signature result_flat) - (call -relay- (\\"registry\\" \\"get_key_id\\") [label %init_peer_id%] id) - ) - (call -relay- (\\"op\\" \\"string_to_b58\\") [id] k) - ) - (call -relay- (\\"kad\\" \\"neighborhood\\") [k [] []] nodes) - ) - (par - (fold nodes n-0 - (par - (xor - (xor - (seq - (seq - (seq - (call n-0 (\\"peer\\" \\"timestamp_sec\\") [] t-0) - (call n-0 (\\"trust-graph\\" \\"get_weight\\") [%init_peer_id% t-0] weight) - ) - (call n-0 (\\"registry\\" \\"register_key\\") [label [] t [] \\"\\" result_flat.$.[0] weight t-0] result-0) - ) - (xor - (seq - (match result-0.$.success true - (ap true $successful) - ) - (new $-ephemeral-stream- - (new #-ephemeral-canon- - (canon -relay- $-ephemeral-stream- #-ephemeral-canon-) - ) - ) - ) - (seq - (ap result-0.$.error $error) - (new $-ephemeral-stream- - (new #-ephemeral-canon- - (canon -relay- $-ephemeral-stream- #-ephemeral-canon-) - ) - ) - ) - ) - ) - (null) - ) - (fail %last_error%) - ) - (next n-0) - ) - (never) - ) - (null) - ) - ) - (new $status - (new $result-1 - (seq - (seq - (seq - (par - (seq - (seq - (seq - (call -relay- (\\"math\\" \\"sub\\") [1 1] sub) - (new $successful_test - (seq - (seq - (seq - (call -relay- (\\"math\\" \\"add\\") [sub 1] successful_incr) - (fold $successful successful_fold_var - (seq - (seq - (ap successful_fold_var $successful_test) - (canon -relay- $successful_test #successful_iter_canon) - ) - (xor - (match #successful_iter_canon.length successful_incr - (null) - ) - (next successful_fold_var) - ) - ) - (never) - ) - ) - (canon -relay- $successful_test #successful_result_canon) - ) - (ap #successful_result_canon successful_gate) - ) - ) - ) - (call -relay- (\\"math\\" \\"sub\\") [1 1] sub-0) - ) - (ap \\"ok\\" $status) - ) - (call -relay- (\\"peer\\" \\"timeout\\") [6000 \\"timeout\\"] $status) - ) - (new $status_test - (seq - (seq - (seq - (call -relay- (\\"math\\" \\"add\\") [0 1] status_incr) - (fold $status status_fold_var - (seq - (seq - (ap status_fold_var $status_test) - (canon -relay- $status_test #status_iter_canon) - ) - (xor - (match #status_iter_canon.length status_incr - (null) - ) - (next status_fold_var) - ) - ) - (never) - ) - ) - (canon -relay- $status_test #status_result_canon) - ) - (ap #status_result_canon status_gate) - ) - ) - ) - (xor - (match status_gate.$.[0] \\"ok\\" - (ap true $result-1) - ) - (ap false $result-1) - ) - ) - (new $result-1_test - (seq - (seq - (seq - (call -relay- (\\"math\\" \\"add\\") [0 1] result-1_incr) - (fold $result-1 result-1_fold_var - (seq - (seq - (ap result-1_fold_var $result-1_test) - (canon -relay- $result-1_test #result-1_iter_canon) - ) - (xor - (match #result-1_iter_canon.length result-1_incr - (null) - ) - (next result-1_fold_var) - ) - ) - (never) - ) - ) - (canon -relay- $result-1_test #result-1_result_canon) - ) - (ap #result-1_result_canon result-1_gate) - ) - ) - ) - ) - ) - ) - (xor - (match result-1_gate.$.[0] false - (ap \\"resource wasn't created: timeout exceeded\\" $error) - ) - (ap id $resource_id) - ) - ) - ) - ) - ) - (fail %last_error%) - ) - ) - (canon %init_peer_id% $resource_id #-resource_id-fix-0) - ) - (ap #-resource_id-fix-0 -resource_id-flat-0) - ) - ) - (call %init_peer_id% (\\"errorHandlingSrv\\" \\"error\\") [%last_error% 0]) - ) - ) - (canon %init_peer_id% $error #error_canon) - ) - (call %init_peer_id% (\\"callbackSrv\\" \\"response\\") [-resource_id-flat-0 #error_canon]) -) -\`; - -export type ResourceTestResult = [string | null, string[]] - -export function resourceTest( - label: string, - config?: {ttl?: number} -): Promise; - -export function resourceTest( - peer: IFluenceClient$$, - label: string, - config?: {ttl?: number} -): Promise; - -export function resourceTest(...args: any[]) { - return callFunction$$( - args, - { - \\"functionName\\": \\"resourceTest\\", - \\"arrow\\": { - \\"domain\\": { - \\"fields\\": { - \\"label\\": { - \\"name\\": \\"string\\", - \\"tag\\": \\"scalar\\" - } - }, - \\"tag\\": \\"labeledProduct\\" - }, - \\"codomain\\": { - \\"items\\": [ - { - \\"type\\": { - \\"name\\": \\"string\\", - \\"tag\\": \\"scalar\\" - }, - \\"tag\\": \\"option\\" - }, - { - \\"type\\": { - \\"name\\": \\"string\\", - \\"tag\\": \\"scalar\\" - }, - \\"tag\\": \\"array\\" - } - ], - \\"tag\\": \\"unlabeledProduct\\" - }, - \\"tag\\": \\"arrow\\" - }, - \\"names\\": { - \\"relay\\": \\"-relay-\\", - \\"getDataSrv\\": \\"getDataSrv\\", - \\"callbackSrv\\": \\"callbackSrv\\", - \\"responseSrv\\": \\"callbackSrv\\", - \\"responseFnName\\": \\"response\\", - \\"errorHandlingSrv\\": \\"errorHandlingSrv\\", - \\"errorFnName\\": \\"error\\" - } -}, - resourceTest_script - ); -} - -export const helloTest_script = \` -(seq - (seq - (call %init_peer_id% (\\"getDataSrv\\" \\"-relay-\\") [] -relay-) - (xor - (call %init_peer_id% (\\"hello-world\\" \\"hello\\") [\\"Fluence user\\"] hello) - (call %init_peer_id% (\\"errorHandlingSrv\\" \\"error\\") [%last_error% 0]) - ) - ) - (call %init_peer_id% (\\"callbackSrv\\" \\"response\\") [hello]) -) -\`; - -export function helloTest( - config?: {ttl?: number} -): Promise; - -export function helloTest( - peer: IFluenceClient$$, - config?: {ttl?: number} -): Promise; - -export function helloTest(...args: any[]) { - return callFunction$$( - args, - { - \\"functionName\\": \\"helloTest\\", - \\"arrow\\": { - \\"domain\\": { - \\"fields\\": {}, - \\"tag\\": \\"labeledProduct\\" - }, - \\"codomain\\": { - \\"items\\": [ - { - \\"name\\": \\"string\\", - \\"tag\\": \\"scalar\\" - } - ], - \\"tag\\": \\"unlabeledProduct\\" - }, - \\"tag\\": \\"arrow\\" - }, - \\"names\\": { - \\"relay\\": \\"-relay-\\", - \\"getDataSrv\\": \\"getDataSrv\\", - \\"callbackSrv\\": \\"callbackSrv\\", - \\"responseSrv\\": \\"callbackSrv\\", - \\"responseFnName\\": \\"response\\", - \\"errorHandlingSrv\\": \\"errorHandlingSrv\\", - \\"errorFnName\\": \\"error\\" - } -}, - helloTest_script - ); -} - -export const demo_calculation_script = \` -(seq - (seq - (seq - (call %init_peer_id% (\\"getDataSrv\\" \\"-relay-\\") [] -relay-) - (call %init_peer_id% (\\"getDataSrv\\" \\"service_id\\") [] service_id) - ) - (xor - (seq - (seq - (seq - (seq - (seq - (call %init_peer_id% (service_id \\"test_logs\\") []) - (call %init_peer_id% (service_id \\"add\\") [10]) - ) - (call %init_peer_id% (service_id \\"multiply\\") [5]) - ) - (call %init_peer_id% (service_id \\"subtract\\") [8]) - ) - (call %init_peer_id% (service_id \\"divide\\") [6]) - ) - (call %init_peer_id% (service_id \\"state\\") [] res) - ) - (call %init_peer_id% (\\"errorHandlingSrv\\" \\"error\\") [%last_error% 0]) - ) - ) - (call %init_peer_id% (\\"callbackSrv\\" \\"response\\") [res]) -) -\`; - -export function demo_calculation( - service_id: string, - config?: {ttl?: number} -): Promise; - -export function demo_calculation( - peer: IFluenceClient$$, - service_id: string, - config?: {ttl?: number} -): Promise; - -export function demo_calculation(...args: any[]) { - return callFunction$$( - args, - { - \\"functionName\\": \\"demo_calculation\\", - \\"arrow\\": { - \\"domain\\": { - \\"fields\\": { - \\"service_id\\": { - \\"name\\": \\"string\\", - \\"tag\\": \\"scalar\\" - } - }, - \\"tag\\": \\"labeledProduct\\" - }, - \\"codomain\\": { - \\"items\\": [ - { - \\"name\\": \\"f64\\", - \\"tag\\": \\"scalar\\" - } - ], - \\"tag\\": \\"unlabeledProduct\\" - }, - \\"tag\\": \\"arrow\\" - }, - \\"names\\": { - \\"relay\\": \\"-relay-\\", - \\"getDataSrv\\": \\"getDataSrv\\", - \\"callbackSrv\\": \\"callbackSrv\\", - \\"responseSrv\\": \\"callbackSrv\\", - \\"responseFnName\\": \\"response\\", - \\"errorHandlingSrv\\": \\"errorHandlingSrv\\", - \\"errorFnName\\": \\"error\\" - } -}, - demo_calculation_script - ); -} - -export const marineTest_script = \` -(seq - (seq - (seq - (call %init_peer_id% (\\"getDataSrv\\" \\"-relay-\\") [] -relay-) - (call %init_peer_id% (\\"getDataSrv\\" \\"wasm64\\") [] wasm64) - ) - (xor - (seq - (seq - (seq - (seq - (seq - (seq - (call %init_peer_id% (\\"single_module_srv\\" \\"create\\") [wasm64] serviceResult) - (call %init_peer_id% (serviceResult.$.service_id.[0] \\"test_logs\\") []) - ) - (call %init_peer_id% (serviceResult.$.service_id.[0] \\"add\\") [10]) - ) - (call %init_peer_id% (serviceResult.$.service_id.[0] \\"multiply\\") [5]) - ) - (call %init_peer_id% (serviceResult.$.service_id.[0] \\"subtract\\") [8]) - ) - (call %init_peer_id% (serviceResult.$.service_id.[0] \\"divide\\") [6]) - ) - (call %init_peer_id% (serviceResult.$.service_id.[0] \\"state\\") [] res) - ) - (call %init_peer_id% (\\"errorHandlingSrv\\" \\"error\\") [%last_error% 0]) - ) - ) - (call %init_peer_id% (\\"callbackSrv\\" \\"response\\") [res]) -) -\`; - -export function marineTest( - wasm64: string, - config?: {ttl?: number} -): Promise; - -export function marineTest( - peer: IFluenceClient$$, - wasm64: string, - config?: {ttl?: number} -): Promise; - -export function marineTest(...args: any[]) { - return callFunction$$( - args, - { - \\"functionName\\": \\"marineTest\\", - \\"arrow\\": { - \\"domain\\": { - \\"fields\\": { - \\"wasm64\\": { - \\"name\\": \\"string\\", - \\"tag\\": \\"scalar\\" - } - }, - \\"tag\\": \\"labeledProduct\\" - }, - \\"codomain\\": { - \\"items\\": [ - { - \\"name\\": \\"f64\\", - \\"tag\\": \\"scalar\\" - } - ], - \\"tag\\": \\"unlabeledProduct\\" - }, - \\"tag\\": \\"arrow\\" - }, - \\"names\\": { - \\"relay\\": \\"-relay-\\", - \\"getDataSrv\\": \\"getDataSrv\\", - \\"callbackSrv\\": \\"callbackSrv\\", - \\"responseSrv\\": \\"callbackSrv\\", - \\"responseFnName\\": \\"response\\", - \\"errorHandlingSrv\\": \\"errorHandlingSrv\\", - \\"errorFnName\\": \\"error\\" - } -}, - marineTest_script - ); -} -" -`; diff --git a/packages/core/aqua-to-js/src/generate/__test__/generate.spec.ts b/packages/core/aqua-to-js/src/generate/__test__/generate.spec.ts index 4457d334..5de31ffe 100644 --- a/packages/core/aqua-to-js/src/generate/__test__/generate.spec.ts +++ b/packages/core/aqua-to-js/src/generate/__test__/generate.spec.ts @@ -14,46 +14,55 @@ * limitations under the License. */ -import url from "url"; +import { fileURLToPath } from "url"; import { compileFromPath } from "@fluencelabs/aqua-api"; -import { describe, expect, it } from "vitest"; +import { beforeAll, describe, expect, it } from "vitest"; import { getPackageJsonContent, PackageJson } from "../../utils.js"; import { generateTypes, generateSources } from "../index.js"; +import { CompilationResult } from "../interfaces.js"; + +let res: Omit; +let pkg: PackageJson; describe("Aqua to js/ts compiler", () => { - it("compiles smoke tests successfully", async () => { - const res = await compileFromPath({ - filePath: url.fileURLToPath( + beforeAll(async () => { + res = await compileFromPath({ + filePath: fileURLToPath( new URL("./sources/smoke_test.aqua", import.meta.url), ), imports: ["./node_modules"], targetType: "air", }); - const pkg: PackageJson = { + pkg = { ...(await getPackageJsonContent()), version: "0.0.0", devDependencies: { "@fluencelabs/aqua-api": "0.0.0", }, }; + }); - // TODO: see https://github.com/fluencelabs/js-client/pull/366#discussion_r1370567711 - // @ts-expect-error don't use compileFromPath directly here + it("matches js snapshots", async () => { const jsResult = generateSources(res, "js", pkg); - // TODO: see https://github.com/fluencelabs/js-client/pull/366#discussion_r1370567711 - // @ts-expect-error don't use compileFromPath directly here const jsTypes = generateTypes(res, pkg); - expect(jsResult).toMatchSnapshot(); - expect(jsTypes).toMatchSnapshot(); + await expect(jsResult).toMatchFileSnapshot( + "./__snapshots__/generate.snap.js", + ); - // TODO: see https://github.com/fluencelabs/js-client/pull/366#discussion_r1370567711 - // @ts-expect-error don't use compileFromPath directly here + await expect(jsTypes).toMatchFileSnapshot( + "./__snapshots__/generate.snap.d.ts", + ); + }); + + it("matches ts snapshots", async () => { const tsResult = generateSources(res, "ts", pkg); - expect(tsResult).toMatchSnapshot(); + await expect(tsResult).toMatchFileSnapshot( + "./__snapshots__/generate.snap.ts", + ); }); }); diff --git a/packages/core/aqua-to-js/src/generate/function.ts b/packages/core/aqua-to-js/src/generate/function.ts index 0eca8ab6..3ff0642c 100644 --- a/packages/core/aqua-to-js/src/generate/function.ts +++ b/packages/core/aqua-to-js/src/generate/function.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { recursiveRenameLaquaProps } from "../utils.js"; +import { capitalize, recursiveRenameLaquaProps } from "../utils.js"; import { AquaFunction, TypeGenerator } from "./interfaces.js"; @@ -40,8 +40,11 @@ ${func.script}\`; ${typeGenerator.funcType(func)} export function ${func.funcDef.functionName}(${typeGenerator.type( "...args", - "any[]", - )}) { + `${capitalize(func.funcDef.functionName)}Params`, + )})${typeGenerator.type( + "", + `${capitalize(func.funcDef.functionName)}Result`, + )} { return callFunction$$( args, ${JSON.stringify(recursiveRenameLaquaProps(funcDef), null, 4)}, diff --git a/packages/core/aqua-to-js/src/generate/header.ts b/packages/core/aqua-to-js/src/generate/header.ts index 8a6d0794..32236e20 100644 --- a/packages/core/aqua-to-js/src/generate/header.ts +++ b/packages/core/aqua-to-js/src/generate/header.ts @@ -35,12 +35,13 @@ export default function generateHeader( */ ${ outputType === "ts" - ? "import type { IFluenceClient as IFluenceClient$$, CallParams as CallParams$$ } from '@fluencelabs/js-client';" + ? "import type { IFluenceClient as IFluenceClient$$, ParticleContext as ParticleContext$$ } from '@fluencelabs/js-client';" : "" } +// Making aliases to reduce chance of accidental name collision import { v5_callFunction as callFunction$$, - v5_registerService as registerService$$, + v5_registerService as registerService$$ } from '@fluencelabs/js-client';`; } diff --git a/packages/core/aqua-to-js/src/generate/interfaces.ts b/packages/core/aqua-to-js/src/generate/interfaces.ts index 97693fad..73f9910f 100644 --- a/packages/core/aqua-to-js/src/generate/interfaces.ts +++ b/packages/core/aqua-to-js/src/generate/interfaces.ts @@ -20,6 +20,8 @@ import { genTypeName, typeToTs } from "../common.js"; import { CLIENT } from "../constants.js"; import { capitalize, getFuncArgs } from "../utils.js"; +import { DefaultServiceId } from "./service.js"; + export interface TypeGenerator { type(field: string, type: string): string; generic(field: string, type: string): string; @@ -54,7 +56,7 @@ export class TSTypeGenerator implements TypeGenerator { args.push([undefined, `config?: {ttl?: number}`]); const argsDefs = args.map(([, def]) => { - return " " + def; + return def; }); const argsDesc = args @@ -66,28 +68,30 @@ export class TSTypeGenerator implements TypeGenerator { }); const functionOverloads = [ - argsDefs.join(",\n"), - [` peer: ${CLIENT}`, ...argsDefs].join(",\n"), + argsDefs.join(", "), + [`peer: ${CLIENT}`, ...argsDefs].join(", "), ]; const [resTypeDesc, resType] = genTypeName( funcDef.arrow.codomain, - capitalize(funcDef.functionName) + "Result", + capitalize(funcDef.functionName) + "ResultType", ); + const functionOverloadArgsType = functionOverloads + .map((overload) => { + return `[${overload}]`; + }) + .join(" | "); + return [ argsDesc.join("\n"), resTypeDesc ?? "", - functionOverloads - .flatMap((fo) => { - return [ - `export function ${funcDef.functionName}(`, - fo, - `): Promise<${resType}>;`, - "", - ]; - }) - .join("\n"), + `export type ${capitalize( + funcDef.functionName, + )}Params = ${functionOverloadArgsType};`, + `export type ${capitalize( + funcDef.functionName, + )}Result = Promise<${resType}>;\n`, ] .filter((s) => { return s !== ""; @@ -117,13 +121,25 @@ export class TSTypeGenerator implements TypeGenerator { const serviceDecl = `service: ${srvName}Def`; const serviceIdDecl = `serviceId: string`; - const registerServiceArgs = [ + const functionOverloadsWithDefaultServiceId = [ [serviceDecl], [serviceIdDecl, serviceDecl], [peerDecl, serviceDecl], [peerDecl, serviceIdDecl, serviceDecl], ]; + const functionOverloadsWithoutDefaultServiceId = [ + [serviceIdDecl, serviceDecl], + [peerDecl, serviceIdDecl, serviceDecl], + ]; + + const registerServiceArgs = + // This wrong type comes from aqua team. We need to discuss fix with them + // eslint-disable-next-line @typescript-eslint/consistent-type-assertions + (srvDef.defaultServiceId as DefaultServiceId).s_Some__f_value != null + ? functionOverloadsWithDefaultServiceId + : functionOverloadsWithoutDefaultServiceId; + return [ interfaces, ...registerServiceArgs.map((registerServiceArg) => { diff --git a/packages/core/aqua-to-js/src/generate/service.ts b/packages/core/aqua-to-js/src/generate/service.ts index 4c643bd6..c58d3fd1 100644 --- a/packages/core/aqua-to-js/src/generate/service.ts +++ b/packages/core/aqua-to-js/src/generate/service.ts @@ -20,7 +20,8 @@ import { recursiveRenameLaquaProps } from "../utils.js"; import { TypeGenerator } from "./interfaces.js"; -interface DefaultServiceId { +// Actual value of defaultServiceId which comes from aqua-api +export interface DefaultServiceId { s_Some__f_value?: string; } diff --git a/packages/core/aqua-to-js/src/index.ts b/packages/core/aqua-to-js/src/index.ts index 44c21160..fd14c282 100644 --- a/packages/core/aqua-to-js/src/index.ts +++ b/packages/core/aqua-to-js/src/index.ts @@ -15,7 +15,7 @@ */ import { generateSources, generateTypes } from "./generate/index.js"; -import { CompilationResult, OutputType } from "./generate/interfaces.js"; +import { CompilationResult } from "./generate/interfaces.js"; import { getPackageJsonContent } from "./utils.js"; interface JsOutput { @@ -33,6 +33,7 @@ type LanguageOutput = { }; type NothingToGenerate = null; +type OutputType = "js" | "ts"; export default async function aquaToJs( res: CompilationResult, @@ -52,8 +53,7 @@ export default async function aquaToJs( sources: generateSources(res, "js", packageJson), types: generateTypes(res, packageJson), } - : // TODO: probably there is a way to remove this type assert - // eslint-disable-next-line @typescript-eslint/consistent-type-assertions + : // eslint-disable-next-line @typescript-eslint/consistent-type-assertions ({ sources: generateSources(res, "ts", packageJson), } as LanguageOutput[T]); diff --git a/packages/core/aqua-to-js/src/utils.ts b/packages/core/aqua-to-js/src/utils.ts index cd2a5d1d..8ce2ebca 100644 --- a/packages/core/aqua-to-js/src/utils.ts +++ b/packages/core/aqua-to-js/src/utils.ts @@ -16,7 +16,7 @@ import assert from "assert"; import { readFile } from "fs/promises"; -import path from "path"; +import { join } from "path"; import { ArrowType, @@ -27,24 +27,26 @@ import { SimpleTypes, UnlabeledProductType, } from "@fluencelabs/interfaces"; +import { z } from "zod"; -export interface PackageJson { - name: string; - version: string; - devDependencies: { - ["@fluencelabs/aqua-api"]: string; - }; -} +const packageJsonSchema = z.object({ + name: z.string(), + version: z.string(), + devDependencies: z.object({ + // @fluencelabs/aqua-api version is included as part of the comment at the top of each js and ts file + ["@fluencelabs/aqua-api"]: z.string(), + }), +}); + +export type PackageJson = z.infer; export async function getPackageJsonContent(): Promise { const content = await readFile( - new URL(path.join("..", "package.json"), import.meta.url), + new URL(join("..", "package.json"), import.meta.url), "utf-8", ); - // TODO: Add validation here - // eslint-disable-next-line @typescript-eslint/consistent-type-assertions - return JSON.parse(content) as PackageJson; + return packageJsonSchema.parse(JSON.parse(content)); } export function getFuncArgs( diff --git a/packages/core/interfaces/src/commonTypes.ts b/packages/core/interfaces/src/commonTypes.ts index 34773820..3ff3722f 100644 --- a/packages/core/interfaces/src/commonTypes.ts +++ b/packages/core/interfaces/src/commonTypes.ts @@ -14,60 +14,11 @@ * limitations under the License. */ -import type { SecurityTetraplet } from "@fluencelabs/avm"; - -import { InterfaceToType, MaybePromise } from "./utils.js"; - /** * Peer ID's id as a base58 string (multihash/CIDv0). */ export type PeerIdB58 = string; -/** - * Additional information about a service call - * @typeparam ArgName - */ -export type CallParams = { - /** - * The identifier of particle which triggered the call - */ - particleId: string; - - /** - * The peer id which created the particle - */ - initPeerId: PeerIdB58; - - /** - * Particle's timestamp when it was created - */ - timestamp: number; - - /** - * Time to live in milliseconds. The time after the particle should be expired - */ - ttl: number; - - /** - * Particle's signature - */ - signature?: string; - - /** - * Security tetraplets - */ - tetraplets: ArgName extends string - ? Record[]> - : Record; -}; - -export type ServiceImpl = Record< - string, - ( - ...args: [...JSONArray, CallParams] - ) => MaybePromise ->; - export type JSONValue = | string | number diff --git a/packages/core/interfaces/src/compilerSupport/aquaTypeDefinitions.ts b/packages/core/interfaces/src/compilerSupport/aquaTypeDefinitions.ts index 4d34cc82..2ad90707 100644 --- a/packages/core/interfaces/src/compilerSupport/aquaTypeDefinitions.ts +++ b/packages/core/interfaces/src/compilerSupport/aquaTypeDefinitions.ts @@ -25,6 +25,11 @@ export type SimpleTypes = export type NonArrowType = SimpleTypes | ProductType; +export type NonArrowSimpleType = + | SimpleTypes + | UnlabeledProductType + | LabeledProductType; + export type TopType = { /** * Type descriptor. Used for pattern-matching @@ -154,7 +159,13 @@ export type ProductType = UnlabeledProductType | LabeledProductType; * ArrowType is a profunctor pointing its domain to codomain. * Profunctor means variance: Arrow is contravariant on domain, and variant on codomain. */ -export type ArrowType = { +export type ArrowType< + T extends + | LabeledProductType> + | UnlabeledProductType = + | LabeledProductType> + | UnlabeledProductType, +> = { /** * Type descriptor. Used for pattern-matching */ @@ -174,14 +185,14 @@ export type ArrowType = { /** * Arrow which domain contains only non-arrow types */ -export type ArrowWithoutCallbacks = ArrowType< - UnlabeledProductType | LabeledProductType ->; +export type ArrowWithoutCallbacks = ArrowType; /** * Arrow which domain does can contain both non-arrow types and arrows (which themselves cannot contain arrows) */ -export type ArrowWithCallbacks = ArrowType; +export type ArrowWithCallbacks = ArrowType< + LabeledProductType +>; export interface FunctionCallConstants { /** @@ -232,9 +243,7 @@ export interface FunctionCallDef { /** * Underlying arrow which represents function in aqua */ - arrow: ArrowType< - LabeledProductType> - >; + arrow: ArrowWithCallbacks; /** * Names of the different entities used in generated air script @@ -255,37 +264,8 @@ export interface ServiceDef { * List of functions which the service consists of */ functions: - | LabeledProductType>> + | LabeledProductType< + ArrowType | UnlabeledProductType> + > | NilType; } - -/** - * Options to configure Aqua function execution - */ -export interface FnConfig { - /** - * Sets the TTL (time to live) for particle responsible for the function execution - * If the option is not set the default TTL from FluencePeer config is used - */ - ttl?: number; -} - -export const getArgumentTypes = ( - def: FunctionCallDef, -): { - [key: string]: NonArrowType | ArrowWithoutCallbacks; -} => { - if (def.arrow.domain.tag !== "labeledProduct") { - throw new Error("Should be impossible"); - } - - return def.arrow.domain.fields; -}; - -export const isReturnTypeVoid = (def: FunctionCallDef): boolean => { - if (def.arrow.codomain.tag === "nil") { - return true; - } - - return def.arrow.codomain.items.length === 0; -}; diff --git a/packages/core/interfaces/src/compilerSupport/compilerSupportInterface.ts b/packages/core/interfaces/src/compilerSupport/compilerSupportInterface.ts deleted file mode 100644 index cf81138a..00000000 --- a/packages/core/interfaces/src/compilerSupport/compilerSupportInterface.ts +++ /dev/null @@ -1,103 +0,0 @@ -/** - * Copyright 2023 Fluence Labs Limited - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { JSONValue } from "../commonTypes.js"; - -import { - FnConfig, - FunctionCallDef, - ServiceDef, -} from "./aquaTypeDefinitions.js"; - -/** - * Type for callback passed as aqua function argument - */ -export type ArgCallbackFunction = ( - ...args: JSONValue[] -) => JSONValue | Promise; - -/** - * Arguments passed to Aqua function - */ -export type PassedArgs = { [key: string]: JSONValue | ArgCallbackFunction }; - -/** - * Arguments for callAquaFunction function - */ -// TODO: move to js-client side -export interface CallAquaFunctionArgs { - /** - * Peer to call the function on - */ - peer: unknown; - - /** - * Function definition - */ - def: FunctionCallDef; - - /** - * Air script used by the aqua function - */ - script: string; - - /** - * Function configuration - */ - config: FnConfig; - - /** - * Arguments to pass to the function - */ - args: PassedArgs; -} - -/** - * Call a function from Aqua script - */ -export type CallAquaFunctionType = ( - args: CallAquaFunctionArgs, -) => Promise; - -/** - * Arguments for registerService function - */ -export interface RegisterServiceArgs { - /** - * Peer to register the service on - */ - peer: unknown; - - /** - * Service definition - */ - def: ServiceDef; - - /** - * Service id - */ - serviceId: string | undefined; - - /** - * Service implementation - */ - service: unknown; -} - -/** - * Register a service defined in Aqua on a Fluence peer - */ -export type RegisterServiceType = (args: RegisterServiceArgs) => void; diff --git a/packages/core/interfaces/src/index.ts b/packages/core/interfaces/src/index.ts index e936cc23..54d8726d 100644 --- a/packages/core/interfaces/src/index.ts +++ b/packages/core/interfaces/src/index.ts @@ -15,6 +15,5 @@ */ export * from "./compilerSupport/aquaTypeDefinitions.js"; -export * from "./compilerSupport/compilerSupportInterface.js"; export * from "./commonTypes.js"; export * from "./future.js"; diff --git a/packages/core/js-client-isomorphic/package.json b/packages/core/js-client-isomorphic/package.json index def6c79c..68c913f1 100644 --- a/packages/core/js-client-isomorphic/package.json +++ b/packages/core/js-client-isomorphic/package.json @@ -24,7 +24,7 @@ }, "dependencies": { "@fluencelabs/avm": "0.54.0", - "@fluencelabs/marine-js": "0.7.2", + "@fluencelabs/marine-js": "0.8.0", "@fluencelabs/marine-worker": "0.4.2", "@fluencelabs/threads": "^2.0.0" }, diff --git a/packages/core/js-client-isomorphic/src/fetchers/browser.ts b/packages/core/js-client-isomorphic/src/fetchers/browser.ts index dc4f547b..939c5936 100644 --- a/packages/core/js-client-isomorphic/src/fetchers/browser.ts +++ b/packages/core/js-client-isomorphic/src/fetchers/browser.ts @@ -14,18 +14,14 @@ * limitations under the License. */ -import { FetchedPackages, getVersionedPackage } from "../types.js"; +import { FetchResourceFn, getVersionedPackage } from "../types.js"; /** * @param pkg name of package with version * @param assetPath path of required asset in given package * @param root CDN domain in browser or file system root in node */ -export async function fetchResource( - pkg: FetchedPackages, - assetPath: string, - root: string, -) { +export const fetchResource: FetchResourceFn = async (pkg, assetPath, root) => { const refinedAssetPath = assetPath.startsWith("/") ? assetPath.slice(1) : assetPath; @@ -36,4 +32,4 @@ export async function fetchResource( return fetch(url).catch(() => { throw new Error(`Cannot fetch from ${url.toString()}`); }); -} +}; diff --git a/packages/core/js-client-isomorphic/src/fetchers/node.ts b/packages/core/js-client-isomorphic/src/fetchers/node.ts index 114639b1..8b9ab6b9 100644 --- a/packages/core/js-client-isomorphic/src/fetchers/node.ts +++ b/packages/core/js-client-isomorphic/src/fetchers/node.ts @@ -18,21 +18,14 @@ import { readFile } from "fs/promises"; import { createRequire } from "module"; import { sep, posix, join } from "path"; -import { FetchedPackages, getVersionedPackage } from "../types.js"; +import { FetchResourceFn, getVersionedPackage } from "../types.js"; /** * @param pkg name of package with version * @param assetPath path of required asset in given package - * @param root CDN domain in browser or js-client itself in node */ -export async function fetchResource( - pkg: FetchedPackages, - assetPath: string, - root: string, -) { +export const fetchResource: FetchResourceFn = async (pkg, assetPath) => { const { name } = getVersionedPackage(pkg); - // TODO: `root` will be handled somehow in the future. For now, we use filesystem root where js-client is running; - root = "/"; const require = createRequire(import.meta.url); const packagePathIndex = require.resolve(name); @@ -47,7 +40,7 @@ export async function fetchResource( throw new Error(`Cannot find dependency ${name} in path ${posixPath}`); } - const pathToResource = join(root, packagePath, assetPath); + const pathToResource = join(packagePath, assetPath); const file = await readFile(pathToResource); @@ -60,4 +53,4 @@ export async function fetchResource( : "application/text", }, }); -} +}; diff --git a/packages/core/js-client-isomorphic/src/types.ts b/packages/core/js-client-isomorphic/src/types.ts index c9dab2e4..6e81bf27 100644 --- a/packages/core/js-client-isomorphic/src/types.ts +++ b/packages/core/js-client-isomorphic/src/types.ts @@ -20,7 +20,7 @@ import versions from "./versions.js"; export type FetchedPackages = keyof typeof versions; type VersionedPackage = { name: string; version: string }; -export type GetWorker = ( +export type GetWorkerFn = ( pkg: FetchedPackages, CDNUrl: string, ) => Promise; @@ -31,3 +31,9 @@ export const getVersionedPackage = (pkg: FetchedPackages): VersionedPackage => { version: versions[pkg], }; }; + +export type FetchResourceFn = ( + pkg: FetchedPackages, + assetPath: string, + root: string, +) => Promise; diff --git a/packages/core/js-client-isomorphic/src/worker-resolvers/browser.ts b/packages/core/js-client-isomorphic/src/worker-resolvers/browser.ts index 5d37014f..7e2b1e71 100644 --- a/packages/core/js-client-isomorphic/src/worker-resolvers/browser.ts +++ b/packages/core/js-client-isomorphic/src/worker-resolvers/browser.ts @@ -17,9 +17,9 @@ import { BlobWorker } from "@fluencelabs/threads/master"; import { fetchResource } from "../fetchers/browser.js"; -import type { FetchedPackages, GetWorker } from "../types.js"; +import type { FetchedPackages, GetWorkerFn } from "../types.js"; -export const getWorker: GetWorker = async ( +export const getWorker: GetWorkerFn = async ( pkg: FetchedPackages, CDNUrl: string, ) => { diff --git a/packages/core/js-client-isomorphic/src/worker-resolvers/node.ts b/packages/core/js-client-isomorphic/src/worker-resolvers/node.ts index 85b9aa6c..44c49d70 100644 --- a/packages/core/js-client-isomorphic/src/worker-resolvers/node.ts +++ b/packages/core/js-client-isomorphic/src/worker-resolvers/node.ts @@ -20,10 +20,10 @@ import { fileURLToPath } from "url"; import { Worker } from "@fluencelabs/threads/master"; -import type { FetchedPackages, GetWorker } from "../types.js"; +import type { FetchedPackages, GetWorkerFn } from "../types.js"; import { getVersionedPackage } from "../types.js"; -export const getWorker: GetWorker = (pkg: FetchedPackages) => { +export const getWorker: GetWorkerFn = (pkg: FetchedPackages) => { const require = createRequire(import.meta.url); const pathToThisFile = dirname(fileURLToPath(import.meta.url)); diff --git a/packages/core/js-client/package.json b/packages/core/js-client/package.json index bb5ee771..a4ad25b7 100644 --- a/packages/core/js-client/package.json +++ b/packages/core/js-client/package.json @@ -43,8 +43,6 @@ "@libp2p/peer-id-factory": "3.0.3", "@libp2p/websockets": "7.0.4", "@multiformats/multiaddr": "11.3.0", - "assert": "2.1.0", - "async": "3.2.4", "bs58": "5.0.0", "buffer": "6.0.3", "debug": "4.3.4", @@ -55,14 +53,12 @@ "libp2p": "0.46.6", "multiformats": "11.0.1", "rxjs": "7.5.5", - "ts-pattern": "3.3.3", "uint8arrays": "4.0.3", "uuid": "8.3.2", "zod": "3.22.4" }, "devDependencies": { "@fluencelabs/aqua-api": "0.9.3", - "@fluencelabs/marine-js": "0.7.2", "@rollup/plugin-inject": "5.0.3", "@types/bs58": "4.0.1", "@types/debug": "4.1.7", diff --git a/packages/core/js-client/src/api.ts b/packages/core/js-client/src/api.ts index 84213ed3..2b831f30 100644 --- a/packages/core/js-client/src/api.ts +++ b/packages/core/js-client/src/api.ts @@ -15,182 +15,201 @@ */ import type { - FnConfig, + ArrowWithoutCallbacks, FunctionCallDef, + JSONValue, ServiceDef, - PassedArgs, - ServiceImpl, + SimpleTypes, } from "@fluencelabs/interfaces"; -import { getArgumentTypes } from "@fluencelabs/interfaces"; +import { z } from "zod"; +import { CallAquaFunctionConfig } from "./compilerSupport/callFunction.js"; +import { + aqua2js, + SchemaValidationError, + js2aqua, + wrapJsFunction, +} from "./compilerSupport/conversions.js"; +import { ServiceImpl } from "./compilerSupport/types.js"; import { FluencePeer } from "./jsPeer/FluencePeer.js"; import { callAquaFunction, Fluence, registerService } from "./index.js"; -export const isFluencePeer = ( - fluencePeerCandidate: unknown, -): fluencePeerCandidate is FluencePeer => { - return fluencePeerCandidate instanceof FluencePeer; -}; +function validateAquaConfig( + config: unknown, +): asserts config is CallAquaFunctionConfig | undefined { + z.union([ + z.object({ + ttl: z.number().optional(), + }), + z.undefined(), + ]).parse(config); +} /** * Convenience function to support Aqua `func` generation backend * The compiler only need to generate a call the function and provide the corresponding definitions and the air script * - * @param rawFnArgs - raw arguments passed by user to the generated function + * @param args - raw arguments passed by user to the generated function * @param def - function definition generated by the Aqua compiler * @param script - air script with function execution logic generated by the Aqua compiler */ export const v5_callFunction = async ( - rawFnArgs: unknown[], + args: [ + client: FluencePeer | (JSONValue | ServiceImpl[string]), + ...args: (JSONValue | ServiceImpl[string])[], + ], def: FunctionCallDef, script: string, -): Promise => { - const { args, client: peer, config } = extractFunctionArgs(rawFnArgs, def); +): Promise => { + const [peerOrArg, ...rest] = args; - return callAquaFunction({ - args, - def, + if (!(peerOrArg instanceof FluencePeer)) { + return await v5_callFunction( + [getDefaultPeer(), peerOrArg, ...rest], + def, + script, + ); + } + + const argNames = Object.keys( + def.arrow.domain.tag === "nil" ? [] : def.arrow.domain.fields, + ); + + const schemaArgCount = argNames.length; + + type FunctionArg = SimpleTypes | ArrowWithoutCallbacks; + + const schemaFunctionArgs: Record = + def.arrow.domain.tag === "nil" ? {} : def.arrow.domain.fields; + + // if there are more args than expected in schema (schemaArgCount) then last arg is config + const config = schemaArgCount < rest.length ? rest.pop() : undefined; + + validateAquaConfig(config); + + const callArgs = Object.fromEntries( + rest.slice(0, schemaArgCount).map((arg, i) => { + const argName = argNames[i]; + const argSchema = schemaFunctionArgs[argName]; + + if (argSchema.tag === "arrow") { + if (typeof arg !== "function") { + throw new SchemaValidationError( + [argName], + argSchema, + "function", + arg, + ); + } + + return [argName, wrapJsFunction(arg, argSchema)]; + } + + if (typeof arg === "function") { + throw new SchemaValidationError( + [argName], + argSchema, + "non-function value", + arg, + ); + } + + return [argName, js2aqua(arg, argSchema, { path: [def.functionName] })]; + }), + ); + + const returnTypeVoid = + def.arrow.codomain.tag === "nil" || def.arrow.codomain.items.length === 0; + + const returnSchema = + def.arrow.codomain.tag === "unlabeledProduct" && + def.arrow.codomain.items.length === 1 + ? def.arrow.codomain.items[0] + : def.arrow.codomain; + + let result = await callAquaFunction({ script, + peer: peerOrArg, + args: callArgs, config, - peer, }); + + if (returnTypeVoid) { + result = null; + } + + return aqua2js(result, returnSchema); }; +const getDefaultPeer = (): FluencePeer => { + if (Fluence.defaultClient == null) { + throw new Error( + "Could not register Aqua service because the client is not initialized. Did you forget to call Fluence.connect()?", + ); + } + + return Fluence.defaultClient; +}; + +const getDefaultServiceId = (def: ServiceDef) => { + if (def.defaultServiceId == null) { + throw new Error("Service ID is not provided"); + } + + return def.defaultServiceId; +}; + +type RegisterServiceType = + | [ServiceImpl] + | [string, ServiceImpl] + | [FluencePeer, ServiceImpl] + | [FluencePeer, string, ServiceImpl]; + /** * Convenience function to support Aqua `service` generation backend * The compiler only need to generate a call the function and provide the corresponding definitions and the air script * @param args - raw arguments passed by user to the generated function - * TODO: dont forget to add jsdoc for new arg * @param def - service definition generated by the Aqua compiler */ -export const v5_registerService = (args: unknown[], def: ServiceDef): void => { - // TODO: Support this in aqua-to-js package - // eslint-disable-next-line @typescript-eslint/consistent-type-assertions - const service: ServiceImpl = args.pop() as ServiceImpl; +export const v5_registerService = ( + args: RegisterServiceType, + def: ServiceDef, +): void => { + if (args.length === 1) { + v5_registerService( + [getDefaultPeer(), getDefaultServiceId(def), args[0]], + def, + ); - const { peer, serviceId } = extractServiceArgs(args, def.defaultServiceId); + return; + } + + if (args.length === 2) { + if (args[0] instanceof FluencePeer) { + v5_registerService([args[0], getDefaultServiceId(def), args[1]], def); + return; + } + + v5_registerService([getDefaultPeer(), args[0], args[1]], def); + return; + } + + const [peer, serviceId, serviceImpl] = args; + + // Schema for every function in service + const serviceSchema = def.functions.tag === "nil" ? {} : def.functions.fields; + + // Wrapping service impl to convert their args ts -> aqua and backwards + const wrappedServiceImpl = Object.fromEntries( + Object.entries(serviceImpl).map(([name, func]) => { + return [name, wrapJsFunction(func, serviceSchema[name])]; + }), + ); registerService({ - def, - service, - serviceId, + service: wrappedServiceImpl, peer, + serviceId, }); }; - -function isConfig(arg: unknown): arg is FnConfig { - return typeof arg === "object" && arg !== null; -} - -/** - * Arguments could be passed in one these configurations: - * [...actualArgs] - * [peer, ...actualArgs] - * [...actualArgs, config] - * [peer, ...actualArgs, config] - * - * This function select the appropriate configuration and returns - * arguments in a structured way of: { peer, config, args } - */ -function extractFunctionArgs( - args: unknown[], - def: FunctionCallDef, -): { - client: FluencePeer; - config: FnConfig; - args: PassedArgs; -} { - const argumentTypes = getArgumentTypes(def); - const argumentNames = Object.keys(argumentTypes); - const numberOfExpectedArgs = argumentNames.length; - - let peer: FluencePeer; - let config: FnConfig; - - if (isFluencePeer(args[0])) { - peer = args[0]; - args = args.slice(1); - } else { - if (Fluence.defaultClient == null) { - throw new Error( - "Could not register Aqua service because the client is not initialized. Did you forget to call Fluence.connect()?", - ); - } - - peer = Fluence.defaultClient; - } - - const maybeConfig = args[numberOfExpectedArgs]; - - if (isConfig(maybeConfig)) { - config = maybeConfig; - } else { - config = {}; - } - - const structuredArgs = args.slice(0, numberOfExpectedArgs); - - if (structuredArgs.length !== numberOfExpectedArgs) { - throw new Error( - `Incorrect number of arguments. Expecting ${numberOfExpectedArgs}`, - ); - } - - const argsRes = argumentNames.reduce((acc, name, index) => { - return { ...acc, [name]: structuredArgs[index] }; - }, {}); - - return { - client: peer, - args: argsRes, - config: config, - }; -} - -/** - * Arguments could be passed in one these configurations: - * [serviceObject] - * [peer, serviceObject] - * [defaultId, serviceObject] - * [peer, defaultId, serviceObject] - * - * Where serviceObject is the raw object with function definitions passed by user - * - * This function select the appropriate configuration and returns - * arguments in a structured way of: { peer, serviceId, service } - */ -const extractServiceArgs = ( - args: unknown[], - defaultServiceId?: string, -): { - peer: FluencePeer; - serviceId: string | undefined; -} => { - let peer: FluencePeer; - let serviceId: string | undefined; - - if (isFluencePeer(args[0])) { - peer = args[0]; - args = args.slice(1); - } else { - if (Fluence.defaultClient == null) { - throw new Error( - "Could not register Aqua service because the client is not initialized. Did you forget to call Fluence.connect()?", - ); - } - - peer = Fluence.defaultClient; - } - - if (typeof args[0] === "string") { - serviceId = args[0]; - } else { - serviceId = defaultServiceId; - } - - return { - peer, - serviceId, - }; -}; diff --git a/packages/core/js-client/src/clientPeer/__test__/client.spec.ts b/packages/core/js-client/src/clientPeer/__test__/client.spec.ts index 41806e9a..006673ef 100644 --- a/packages/core/js-client/src/clientPeer/__test__/client.spec.ts +++ b/packages/core/js-client/src/clientPeer/__test__/client.spec.ts @@ -17,15 +17,56 @@ import { JSONValue } from "@fluencelabs/interfaces"; import { it, describe, expect } from "vitest"; +import { ExpirationError } from "../../jsPeer/errors.js"; import { CallServiceData } from "../../jsServiceHost/interfaces.js"; -import { doNothing } from "../../jsServiceHost/serviceUtils.js"; import { handleTimeout } from "../../particle/Particle.js"; import { registerHandlersHelper, withClient } from "../../util/testUtils.js"; import { checkConnection } from "../checkConnection.js"; import { nodes, RELAY } from "./connection.js"; +const ONE_SECOND = 1000; + describe("FluenceClient usage test suite", () => { + it("Should stop particle processing after TTL is reached", async () => { + await withClient(RELAY, { defaultTtlMs: 600 }, async (peer) => { + const script = ` + (seq + (call %init_peer_id% ("load" "relay") [] init_relay) + (call init_relay ("peer" "timeout") [60000 "Do you really want to wait for so long?"]) + )`; + + const particle = await peer.internals.createNewParticle(script); + + const start = Date.now(); + + const promise = new Promise((resolve, reject) => { + registerHandlersHelper(peer, particle, { + load: { + relay: () => { + return peer.getRelayPeerId(); + }, + }, + callbackSrv: { + response: () => { + resolve({}); + return ""; + }, + }, + }); + + peer.internals.initiateParticle(particle, resolve, reject); + }); + + await expect(promise).rejects.toThrow(ExpirationError); + + expect( + Date.now() - 500, + "Particle processing didn't stop after TTL is reached", + ).toBeGreaterThanOrEqual(start); + }); + }); + it("should make a call through network", async () => { await withClient(RELAY, {}, async (peer) => { // arrange @@ -71,7 +112,11 @@ describe("FluenceClient usage test suite", () => { }, }); - peer.internals.initiateParticle(particle, handleTimeout(reject)); + peer.internals.initiateParticle( + particle, + () => {}, + handleTimeout(reject), + ); }); expect(result).toBe("hello world!"); @@ -124,7 +169,11 @@ describe("FluenceClient usage test suite", () => { throw particle; } - peer1.internals.initiateParticle(particle, doNothing); + peer1.internals.initiateParticle( + particle, + () => {}, + () => {}, + ); expect(await res).toEqual("test"); }); @@ -172,13 +221,17 @@ describe("FluenceClient usage test suite", () => { ); }); - it("With connection options: defaultTTL", async () => { - await withClient(RELAY, { defaultTtlMs: 1 }, async (peer) => { - const isConnected = await checkConnection(peer); + it( + "With connection options: defaultTTL", + async () => { + await withClient(RELAY, { defaultTtlMs: 1 }, async (peer) => { + const isConnected = await checkConnection(peer); - expect(isConnected).toBeFalsy(); - }); - }); + expect(isConnected).toBeFalsy(); + }); + }, + ONE_SECOND, + ); }); it.skip("Should throw correct error when the client tries to send a particle not to the relay", async () => { @@ -206,15 +259,15 @@ describe("FluenceClient usage test suite", () => { }, }); - peer.internals.initiateParticle(particle, (stage) => { - if (stage.stage === "sendingError") { - reject(stage.errorMessage); - } - }); + peer.internals.initiateParticle( + particle, + () => {}, + (error: Error) => { + reject(error); + }, + ); }); - await promise; - await expect(promise).rejects.toMatch( "Particle is expected to be sent to only the single peer (relay which client is connected to)", ); diff --git a/packages/core/js-client/src/clientPeer/checkConnection.ts b/packages/core/js-client/src/clientPeer/checkConnection.ts index e2f39824..387dbc42 100644 --- a/packages/core/js-client/src/clientPeer/checkConnection.ts +++ b/packages/core/js-client/src/clientPeer/checkConnection.ts @@ -110,6 +110,7 @@ export const checkConnection = async ( peer.internals.initiateParticle( particle, + () => {}, handleTimeout(() => { reject("particle timed out"); }), diff --git a/packages/core/js-client/src/clientPeer/types.ts b/packages/core/js-client/src/clientPeer/types.ts index 8afc7565..9dbe2a86 100644 --- a/packages/core/js-client/src/clientPeer/types.ts +++ b/packages/core/js-client/src/clientPeer/types.ts @@ -14,6 +14,8 @@ * limitations under the License. */ +import { z } from "zod"; + /** * Peer ID's id as a base58 string (multihash/CIDv0). */ @@ -33,20 +35,30 @@ export type Node = { * - string: multiaddr in string format * - Node: node structure, @see Node */ -export type RelayOptions = string | Node; +export const relaySchema = z.union([ + z.string(), + z.object({ + peerId: z.string(), + multiaddr: z.string(), + }), +]); + +export type RelayOptions = z.infer; /** * Fluence Peer's key pair types */ export type KeyTypes = "RSA" | "Ed25519" | "secp256k1"; +const keyPairOptionsSchema = z.object({ + type: z.literal("Ed25519"), + source: z.union([z.literal("random"), z.instanceof(Uint8Array)]), +}); + /** * Options to specify key pair used in Fluence Peer */ -export type KeyPairOptions = { - type: "Ed25519"; - source: "random" | Uint8Array; -}; +export type KeyPairOptions = z.infer; /** * Fluence JS Client connection states as string literals @@ -63,17 +75,10 @@ export const ConnectionStates = [ */ export type ConnectionState = (typeof ConnectionStates)[number]; -export interface IFluenceInternalApi { - /** - * Internal API - */ - internals: unknown; -} - /** * Public API of Fluence JS Client */ -export interface IFluenceClient extends IFluenceInternalApi { +export interface IFluenceClient { /** * Connect to the Fluence network */ @@ -107,65 +112,66 @@ export interface IFluenceClient extends IFluenceInternalApi { getRelayPeerId(): string; } +export const configSchema = z + .object({ + /** + * Specify the KeyPair to be used to identify the Fluence Peer. + * Will be generated randomly if not specified + */ + keyPair: keyPairOptionsSchema, + /** + * Options to configure the connection to the Fluence network + */ + connectionOptions: z + .object({ + /** + * When the peer established the connection to the network it sends a ping-like message to check if it works correctly. + * The options allows to specify the timeout for that message in milliseconds. + * If not specified the default timeout will be used + */ + skipCheckConnection: z.boolean(), + /** + * The dialing timeout in milliseconds + */ + dialTimeoutMs: z.number(), + /** + * The maximum number of inbound streams for the libp2p node. + * Default: 1024 + */ + maxInboundStreams: z.number(), + /** + * The maximum number of outbound streams for the libp2p node. + * Default: 1024 + */ + maxOutboundStreams: z.number(), + }) + .partial(), + /** + * Sets the default TTL for all particles originating from the peer with no TTL specified. + * If the originating particle's TTL is defined then that value will be used + * If the option is not set default TTL will be 7000 + */ + defaultTtlMs: z.number(), + /** + * Property for passing custom CDN Url to load dependencies from browser. https://unpkg.com used by default + */ + CDNUrl: z.string(), + /** + * Enables\disabled various debugging features + */ + debug: z + .object({ + /** + * If set to true, newly initiated particle ids will be printed to console. + * Useful to see what particle id is responsible for aqua function + */ + printParticleId: z.boolean(), + }) + .partial(), + }) + .partial(); + /** * Configuration used when initiating Fluence Client */ -export interface ClientConfig { - /** - * Specify the KeyPair to be used to identify the Fluence Peer. - * Will be generated randomly if not specified - */ - keyPair?: KeyPairOptions; - - /** - * Options to configure the connection to the Fluence network - */ - connectionOptions?: { - /** - * When the peer established the connection to the network it sends a ping-like message to check if it works correctly. - * The options allows to specify the timeout for that message in milliseconds. - * If not specified the default timeout will be used - */ - skipCheckConnection?: boolean; - - /** - * The dialing timeout in milliseconds - */ - dialTimeoutMs?: number; - - /** - * The maximum number of inbound streams for the libp2p node. - * Default: 1024 - */ - maxInboundStreams?: number; - - /** - * The maximum number of outbound streams for the libp2p node. - * Default: 1024 - */ - maxOutboundStreams?: number; - }; - - /** - * Sets the default TTL for all particles originating from the peer with no TTL specified. - * If the originating particle's TTL is defined then that value will be used - * If the option is not set default TTL will be 7000 - */ - defaultTtlMs?: number; - - /** - * Property for passing custom CDN Url to load dependencies from browser. https://unpkg.com used by default - */ - CDNUrl?: string; - - /** - * Enables\disabled various debugging features - */ - debug?: { - /** - * If set to true, newly initiated particle ids will be printed to console. - * Useful to see what particle id is responsible for aqua function - */ - printParticleId?: boolean; - }; -} +export type ClientConfig = z.infer; diff --git a/packages/core/js-client/src/compilerSupport/__test__/v3.spec.ts b/packages/core/js-client/src/compilerSupport/__test__/conversion.spec.ts similarity index 92% rename from packages/core/js-client/src/compilerSupport/__test__/v3.spec.ts rename to packages/core/js-client/src/compilerSupport/__test__/conversion.spec.ts index 89207e8e..efd7eb61 100644 --- a/packages/core/js-client/src/compilerSupport/__test__/v3.spec.ts +++ b/packages/core/js-client/src/compilerSupport/__test__/conversion.spec.ts @@ -14,10 +14,10 @@ * limitations under the License. */ -import { JSONValue, NonArrowType } from "@fluencelabs/interfaces"; +import { JSONValue, NonArrowSimpleType } from "@fluencelabs/interfaces"; import { it, describe, expect, test } from "vitest"; -import { aqua2ts, ts2aqua } from "../conversions.js"; +import { aqua2js, js2aqua } from "../conversions.js"; const i32 = { tag: "scalar", name: "i32" } as const; @@ -172,7 +172,7 @@ const nestedStructs = [ interface ConversionTestArgs { aqua: JSONValue; ts: JSONValue; - type: NonArrowType; + type: NonArrowSimpleType; } describe("Conversion from aqua to typescript", () => { @@ -200,8 +200,8 @@ describe("Conversion from aqua to typescript", () => { // arrange // act - const tsFromAqua = aqua2ts(aqua, type); - const aquaFromTs = ts2aqua(ts, type); + const tsFromAqua = aqua2js(aqua, type); + const aquaFromTs = js2aqua(ts, type, { path: [] }); // assert expect(tsFromAqua).toStrictEqual(ts); @@ -231,8 +231,8 @@ describe("Conversion corner cases", () => { }; // act - const aqua = ts2aqua(valueInTs, type); - const ts = aqua2ts(valueInAqua, type); + const aqua = js2aqua(valueInTs, type, { path: [] }); + const ts = aqua2js(valueInAqua, type); // assert expect(aqua).toStrictEqual({ diff --git a/packages/core/js-client/src/compilerSupport/callFunction.ts b/packages/core/js-client/src/compilerSupport/callFunction.ts index 7786cee8..6d8f177e 100644 --- a/packages/core/js-client/src/compilerSupport/callFunction.ts +++ b/packages/core/js-client/src/compilerSupport/callFunction.ts @@ -14,18 +14,11 @@ * limitations under the License. */ -import assert from "assert"; - -import { - FnConfig, - FunctionCallDef, - getArgumentTypes, - isReturnTypeVoid, - PassedArgs, -} from "@fluencelabs/interfaces"; +import { JSONValue } from "@fluencelabs/interfaces"; import { FluencePeer } from "../jsPeer/FluencePeer.js"; import { logger } from "../util/logger.js"; +import { ArgCallbackFunction } from "../util/testUtils.js"; import { errorHandlingService, @@ -51,95 +44,48 @@ const log = logger("aqua"); * @returns */ -type CallAquaFunctionArgs = { - def: FunctionCallDef; +export type CallAquaFunctionArgs = { script: string; - config: FnConfig; + config: CallAquaFunctionConfig | undefined; peer: FluencePeer; - args: PassedArgs; + args: { [key: string]: JSONValue | ArgCallbackFunction }; + fireAndForget?: boolean | undefined; +}; + +export type CallAquaFunctionConfig = { + ttl?: number; }; export const callAquaFunction = async ({ - def, script, - config, + config = {}, peer, args, }: CallAquaFunctionArgs) => { - // TODO: this function should be rewritten. We can remove asserts if we wont check definition there - log.trace("calling aqua function %j", { def, script, config, args }); - const argumentTypes = getArgumentTypes(def); + log.trace("calling aqua function %j", { script, config, args }); const particle = await peer.internals.createNewParticle(script, config.ttl); - return new Promise((resolve, reject) => { + return new Promise((resolve, reject) => { + // Registering function args as a services for (const [name, argVal] of Object.entries(args)) { - const type = argumentTypes[name]; let service: ServiceDescription; - if (type.tag === "arrow") { - // TODO: Add validation here - assert( - typeof argVal === "function", - "Should not be possible, bad types", - ); - - service = userHandlerService( - def.names.callbackSrv, - [name, type], - argVal, - ); + if (typeof argVal === "function") { + service = userHandlerService("callbackSrv", name, argVal); } else { - // TODO: Add validation here - assert( - typeof argVal !== "function", - "Should not be possible, bad types", - ); - - service = injectValueService(def.names.getDataSrv, name, type, argVal); + service = injectValueService("getDataSrv", name, argVal); } registerParticleScopeService(peer, particle, service); } - registerParticleScopeService(peer, particle, responseService(def, resolve)); + registerParticleScopeService(peer, particle, responseService(resolve)); - registerParticleScopeService(peer, particle, injectRelayService(def, peer)); + registerParticleScopeService(peer, particle, injectRelayService(peer)); - registerParticleScopeService( - peer, - particle, - errorHandlingService(def, reject), - ); + registerParticleScopeService(peer, particle, errorHandlingService(reject)); - peer.internals.initiateParticle(particle, (stage) => { - // If function is void, then it's completed when one of the two conditions is met: - // 1. The particle is sent to the network (state 'sent') - // 2. All CallRequests are executed, e.g., all variable loading and local function calls are completed (state 'localWorkDone') - if ( - isReturnTypeVoid(def) && - (stage.stage === "sent" || stage.stage === "localWorkDone") - ) { - resolve(undefined); - } - - if (stage.stage === "sendingError") { - reject( - `Could not send particle for ${def.functionName}: not connected (particle id: ${particle.id})`, - ); - } - - if (stage.stage === "expired") { - reject( - `Particle expired after ttl of ${particle.ttl}ms for function ${def.functionName} (particle id: ${particle.id})`, - ); - } - - if (stage.stage === "interpreterError") { - reject( - `Script interpretation failed for ${def.functionName}: ${stage.errorMessage} (particle id: ${particle.id})`, - ); - } - }); + peer.internals.initiateParticle(particle, resolve, reject); }); }; diff --git a/packages/core/js-client/src/compilerSupport/conversions.ts b/packages/core/js-client/src/compilerSupport/conversions.ts index 9e93a252..348c8d06 100644 --- a/packages/core/js-client/src/compilerSupport/conversions.ts +++ b/packages/core/js-client/src/compilerSupport/conversions.ts @@ -14,222 +14,241 @@ * limitations under the License. */ -// TODO: This file is a mess. Need to refactor it later -/* eslint-disable */ -// @ts-nocheck - -import assert from "assert"; - -import type { +import { ArrowType, ArrowWithoutCallbacks, - JSONArray, JSONValue, - NonArrowType, + LabeledProductType, + NonArrowSimpleType, + ScalarType, + SimpleTypes, + UnlabeledProductType, } from "@fluencelabs/interfaces"; -import { match } from "ts-pattern"; -import { CallServiceData } from "../jsServiceHost/interfaces.js"; -import { jsonify } from "../util/utils.js"; +import { ParticleContext } from "../jsServiceHost/interfaces.js"; -/** - * Convert value from its representation in aqua language to representation in typescript - * @param value - value as represented in aqua - * @param type - definition of the aqua type - * @returns value represented in typescript - */ -export const aqua2ts = (value: JSONValue, type: NonArrowType): JSONValue => { - const res = match(type) - .with({ tag: "nil" }, () => { +import { ServiceImpl } from "./types.js"; + +export class SchemaValidationError extends Error { + constructor( + public path: string[], + schema: NonArrowSimpleType | ArrowWithoutCallbacks, + expected: string, + provided: JSONValue | ServiceImpl[string], + ) { + const given = + provided === null + ? "null" + : Array.isArray(provided) + ? "array" + : typeof provided; + + const message = `Aqua type mismatch. Path: ${path.join( + ".", + )}; Expected: ${expected}; Given: ${given}; \nSchema: ${JSON.stringify( + schema, + )}; \nTry recompiling rust services and aqua. Make sure you are using up-to-date versions of aqua libraries`; + + super(message); + } +} + +interface ValidationContext { + path: string[]; +} + +const numberTypes = [ + "u8", + "u16", + "u32", + "u64", + "i8", + "i16", + "i32", + "i64", + "f32", + "f64", +] as const; + +function isScalar( + schema: ScalarType, + arg: JSONValue, + { path }: ValidationContext, +) { + if (numberTypes.includes(schema.name)) { + if (typeof arg !== "number") { + throw new SchemaValidationError(path, schema, "number", arg); + } + } else if (schema.name === "bool") { + if (typeof arg !== "boolean") { + throw new SchemaValidationError(path, schema, "boolean", arg); + } + } else if (schema.name === "string") { + if (typeof arg !== "string") { + throw new SchemaValidationError(path, schema, "string", arg); + } + } else { + throw new SchemaValidationError(path, schema, schema.name, arg); + } + + return arg; +} + +export function aqua2js( + value: JSONValue, + schema: NonArrowSimpleType, +): JSONValue { + if (schema.tag === "nil") { + return null; + } else if (schema.tag === "option") { + if (!Array.isArray(value)) { + throw new SchemaValidationError([], schema, "array", value); + } + + if (value.length === 0) { return null; - }) - .with({ tag: "option" }, (opt) => { - assert(Array.isArray(value), "Should not be possible, bad types"); + } else { + return aqua2js(value[0], schema.type); + } + } else if ( + schema.tag === "scalar" || + schema.tag === "bottomType" || + schema.tag === "topType" + ) { + return value; + } else if (schema.tag === "array") { + if (!Array.isArray(value)) { + throw new SchemaValidationError([], schema, "array", value); + } - if (value.length === 0) { - return null; - } else { - return aqua2ts(value[0], opt.type); - } - }) - .with({ tag: "scalar" }, { tag: "bottomType" }, { tag: "topType" }, () => { - return value; - }) - .with({ tag: "array" }, (arr) => { - assert(Array.isArray(value), "Should not be possible, bad types"); - return value.map((y) => { - return aqua2ts(y, arr.type); - }); - }) - .with({ tag: "struct" }, (x) => { - return Object.entries(x.fields).reduce((agg, [key, type]) => { - const val = aqua2ts(value[key], type); - return { ...agg, [key]: val }; - }, {}); - }) - .with({ tag: "labeledProduct" }, (x) => { - return Object.entries(x.fields).reduce((agg, [key, type]) => { - const val = aqua2ts(value[key], type); - return { ...agg, [key]: val }; - }, {}); - }) - .with({ tag: "unlabeledProduct" }, (x) => { - return x.items.map((type, index) => { - return aqua2ts(value[index], type); - }); - }) - // uncomment to check that every pattern in matched - // .exhaustive(); - .otherwise(() => { - throw new Error("Unexpected tag: " + jsonify(type)); + return value.map((y) => { + return aqua2js(y, schema.type); }); + } else if (schema.tag === "unlabeledProduct") { + if (!Array.isArray(value)) { + throw new SchemaValidationError([], schema, "array", value); + } - return res; -}; - -/** - * Convert call service arguments list from their aqua representation to representation in typescript - * @param req - call service data - * @param arrow - aqua type definition - * @returns arguments in typescript representation - */ -export const aquaArgs2Ts = ( - req: CallServiceData, - arrow: ArrowWithoutCallbacks, -): JSONArray => { - const argTypes = match(arrow.domain) - .with({ tag: "labeledProduct" }, (x) => { - return Object.values(x.fields); - }) - .with({ tag: "unlabeledProduct" }, (x) => { - return x.items; - }) - .with({ tag: "nil" }, (x) => { - return []; - }) - // uncomment to check that every pattern in matched - // .exhaustive() - .otherwise(() => { - throw new Error("Unexpected tag: " + jsonify(arrow.domain)); + return value.map((y, i) => { + return aqua2js(y, schema.items[i]); }); + } else if (["labeledProduct", "struct"].includes(schema.tag)) { + if (typeof value !== "object" || value == null || Array.isArray(value)) { + throw new SchemaValidationError([], schema, "object", value); + } - if (req.args.length !== argTypes.length) { - throw new Error( - `incorrect number of arguments, expected: ${argTypes.length}, got: ${req.args.length}`, + return Object.fromEntries( + Object.entries(schema.fields).map(([key, type]) => { + const val = aqua2js(value[key], type); + return [key, val]; + }), ); + } else { + throw new SchemaValidationError([], schema, "never", value); } +} - return req.args.map((arg, index) => { - return aqua2ts(arg, argTypes[index]); - }); -}; +export function js2aqua( + value: JSONValue, + schema: NonArrowSimpleType, + { path }: ValidationContext, +): JSONValue { + if (schema.tag === "nil") { + if (value !== null) { + throw new SchemaValidationError(path, schema, "null", value); + } -/** - * Convert value from its typescript representation to representation in aqua - * @param value - the value as represented in typescript - * @param type - definition of the aqua type - * @returns value represented in aqua - */ -export const ts2aqua = (value: JSONValue, type: NonArrowType): JSONValue => { - const res = match(type) - .with({ tag: "nil" }, () => { - return null; - }) - .with({ tag: "option" }, (opt) => { - if (value === null || value === undefined) { - return []; - } else { - return [ts2aqua(value, opt.type)]; - } - }) - .with({ tag: "scalar" }, { tag: "bottomType" }, { tag: "topType" }, () => { - return value; - }) - .with({ tag: "array" }, (arr) => { - assert(Array.isArray(value), "Should not be possible, bad types"); - return value.map((y) => { - return ts2aqua(y, arr.type); - }); - }) - .with({ tag: "struct" }, (x) => { - return Object.entries(x.fields).reduce((agg, [key, type]) => { - const val = ts2aqua(value[key], type); - return { ...agg, [key]: val }; - }, {}); - }) - .with({ tag: "labeledProduct" }, (x) => { - return Object.entries(x.fields).reduce((agg, [key, type]) => { - const val = ts2aqua(value[key], type); - return { ...agg, [key]: val }; - }, {}); - }) - .with({ tag: "unlabeledProduct" }, (x) => { - return x.items.map((type, index) => { - return ts2aqua(value[index], type); - }); - }) - // uncomment to check that every pattern in matched - // .exhaustive() - .otherwise(() => { - throw new Error("Unexpected tag: " + jsonify(type)); + return value; + } else if (schema.tag === "option") { + // option means 'type | null' + return value == null ? [] : [js2aqua(value, schema.type, { path })]; + } else if (schema.tag === "topType") { + // topType equals to 'any' + return value; + } else if (schema.tag === "bottomType") { + // bottomType equals to 'never' + throw new SchemaValidationError(path, schema, "never", value); + } else if (schema.tag === "scalar") { + return isScalar(schema, value, { path }); + } else if (schema.tag === "array") { + if (!Array.isArray(value)) { + throw new SchemaValidationError(path, schema, "array", value); + } + + return value.map((y, i) => { + return js2aqua(y, schema.type, { path: [...path, `[${i}]`] }); + }); + } else if (schema.tag === "unlabeledProduct") { + if (!Array.isArray(value)) { + throw new SchemaValidationError(path, schema, "array", value); + } + + return value.map((y, i) => { + return js2aqua(y, schema.items[i], { path: [...path, `[${i}]`] }); + }); + } else if (["labeledProduct", "struct"].includes(schema.tag)) { + if (typeof value !== "object" || value === null || Array.isArray(value)) { + throw new SchemaValidationError(path, schema, "object", value); + } + + return Object.fromEntries( + Object.entries(schema.fields).map(([key, type]) => { + const val = js2aqua(value[key], type, { path: [...path, key] }); + return [key, val]; + }), + ); + } else { + throw new SchemaValidationError(path, schema, "never", value); + } +} + +// Wrapping function, converting its arguments to aqua before call and back to js after call. +// It makes callbacks and service functions defined by user operate on js types seamlessly +export const wrapJsFunction = ( + func: ServiceImpl[string], + schema: + | ArrowWithoutCallbacks + | ArrowType | UnlabeledProductType>, +): ServiceImpl[string] => { + return async (...args) => { + // These assertions used to correctly destructure tuple. It's impossible to do without asserts due to ts limitations. + // eslint-disable-next-line @typescript-eslint/consistent-type-assertions + const jsonArgs = args.slice(0, args.length - 1) as JSONValue[]; + // eslint-disable-next-line @typescript-eslint/consistent-type-assertions + const context = args[args.length - 1] as ParticleContext; + + const schemaArgs = + schema.domain.tag === "nil" + ? [] + : schema.domain.tag === "unlabeledProduct" + ? schema.domain.items + : Object.values(schema.domain.fields); + + if (schemaArgs.length !== jsonArgs.length) { + throw new Error( + `Schema and generated air doesn't match. Air has been called with ${jsonArgs.length} args and schema contains ${schemaArgs.length} args`, + ); + } + + const tsArgs = jsonArgs.map((arg, i) => { + return aqua2js(arg, schemaArgs[i]); }); - return res; -}; - -/** - * Convert return type of the service from it's typescript representation to representation in aqua - * @param returnValue - the value as represented in typescript - * @param arrowType - the arrow type which describes the service - * @returns - value represented in aqua - */ -export const returnType2Aqua = ( - returnValue: any, - arrowType: ArrowType, -) => { - if (arrowType.codomain.tag === "nil") { - return {}; - } - - if (arrowType.codomain.items.length === 0) { - return {}; - } - - if (arrowType.codomain.items.length === 1) { - return ts2aqua(returnValue, arrowType.codomain.items[0]); - } - - return arrowType.codomain.items.map((type, index) => { - return ts2aqua(returnValue[index], type); - }); -}; - -/** - * Converts response value from aqua its representation to representation in typescript - * @param req - call service data - * @param arrow - aqua type definition - * @returns response value in typescript representation - */ -export const responseServiceValue2ts = ( - req: CallServiceData, - arrow: ArrowType, -) => { - return match(arrow.codomain) - .with({ tag: "nil" }, () => { - return null; - }) - .with({ tag: "unlabeledProduct" }, (x) => { - if (x.items.length === 0) { - return null; - } - - if (x.items.length === 1) { - return aqua2ts(req.args[0], x.items[0]); - } - - return req.args.map((y, index) => { - return aqua2ts(y, x.items[index]); - }); - }) - .exhaustive(); + const returnTypeVoid = + schema.codomain.tag === "nil" || schema.codomain.items.length === 0; + + const resultSchema = + schema.codomain.tag === "unlabeledProduct" && + schema.codomain.items.length === 1 + ? schema.codomain.items[0] + : schema.codomain; + + let result = await func(...tsArgs, context); + + if (returnTypeVoid) { + result = null; + } + + return js2aqua(result, resultSchema, { path: [] }); + }; }; diff --git a/packages/core/js-client/src/compilerSupport/registerService.ts b/packages/core/js-client/src/compilerSupport/registerService.ts index 8f651e66..28b547fe 100644 --- a/packages/core/js-client/src/compilerSupport/registerService.ts +++ b/packages/core/js-client/src/compilerSupport/registerService.ts @@ -14,66 +14,59 @@ * limitations under the License. */ -import type { ServiceDef, ServiceImpl } from "@fluencelabs/interfaces"; - import { FluencePeer } from "../jsPeer/FluencePeer.js"; import { logger } from "../util/logger.js"; import { registerGlobalService, userHandlerService } from "./services.js"; +import { ServiceImpl } from "./types.js"; const log = logger("aqua"); interface RegisterServiceArgs { peer: FluencePeer; - def: ServiceDef; - serviceId: string | undefined; + serviceId: string; service: ServiceImpl; } +const findAllPossibleRegisteredServiceFunctions = ( + service: ServiceImpl, +): Set => { + let prototype: Record = service; + const serviceMethods = new Set(); + + do { + Object.getOwnPropertyNames(prototype) + .filter((prop) => { + return typeof prototype[prop] === "function" && prop !== "constructor"; + }) + .forEach((prop) => { + return serviceMethods.add(prop); + }); + + // coercing 'any' type to 'Record' bcs object prototype is actually an object + // eslint-disable-next-line @typescript-eslint/consistent-type-assertions + prototype = Object.getPrototypeOf(prototype) as Record; + } while (prototype.constructor !== Object); + + return serviceMethods; +}; + export const registerService = ({ peer, - def, - serviceId = def.defaultServiceId, + serviceId, service, }: RegisterServiceArgs) => { - // TODO: Need to refactor this. We can compute function types from service implementation, making func more type safe - log.trace("registering aqua service %o", { def, serviceId, service }); + log.trace("registering aqua service %o", { serviceId, service }); - // Checking for missing keys - const requiredKeys = - def.functions.tag === "nil" ? [] : Object.keys(def.functions.fields); + const serviceFunctions = findAllPossibleRegisteredServiceFunctions(service); - const incorrectServiceDefinitions = requiredKeys.filter((f) => { - return !(f in service); - }); - - if (serviceId == null) { - throw new Error("Service ID must be specified"); - } - - if (incorrectServiceDefinitions.length > 0) { - throw new Error( - `Error registering service ${serviceId}: missing functions: ` + - incorrectServiceDefinitions - .map((d) => { - return "'" + d + "'"; - }) - .join(", "), - ); - } - - const singleFunctions = - def.functions.tag === "nil" ? [] : Object.entries(def.functions.fields); - - for (const singleFunction of singleFunctions) { - const [name] = singleFunction; - // The function has type of (arg1, arg2, arg3, ... , callParams) => CallServiceResultType | void - // Account for the fact that user service might be defined as a class - .bind(...) - const userDefinedHandler = service[name].bind(service); + for (const serviceFunction of serviceFunctions) { + const handler = service[serviceFunction]; + const userDefinedHandler = handler.bind(service); const serviceDescription = userHandlerService( serviceId, - singleFunction, + serviceFunction, userDefinedHandler, ); diff --git a/packages/core/js-client/src/compilerSupport/services.ts b/packages/core/js-client/src/compilerSupport/services.ts index dd1b16e4..e9294eb1 100644 --- a/packages/core/js-client/src/compilerSupport/services.ts +++ b/packages/core/js-client/src/compilerSupport/services.ts @@ -14,32 +14,18 @@ * limitations under the License. */ -import { SecurityTetraplet } from "@fluencelabs/avm"; -import { - CallParams, - ArrowWithoutCallbacks, - FunctionCallDef, - NonArrowType, - ServiceImpl, - JSONValue, -} from "@fluencelabs/interfaces"; -import { fromUint8Array } from "js-base64"; -import { match } from "ts-pattern"; +import { JSONValue } from "@fluencelabs/interfaces"; import { FluencePeer } from "../jsPeer/FluencePeer.js"; import { CallServiceData, GenericCallServiceHandler, + ParticleContext, ResultCodes, } from "../jsServiceHost/interfaces.js"; import { Particle } from "../particle/Particle.js"; -import { - aquaArgs2Ts, - responseServiceValue2ts, - returnType2Aqua, - ts2aqua, -} from "./conversions.js"; +import { ServiceImpl } from "./types.js"; export interface ServiceDescription { serviceId: string; @@ -50,10 +36,10 @@ export interface ServiceDescription { /** * Creates a service which injects relay's peer id into aqua space */ -export const injectRelayService = (def: FunctionCallDef, peer: FluencePeer) => { +export const injectRelayService = (peer: FluencePeer) => { return { - serviceId: def.names.getDataSrv, - fnName: def.names.relay, + serviceId: "getDataSrv", + fnName: "-relay-", handler: () => { return { retCode: ResultCodes.success, @@ -69,7 +55,6 @@ export const injectRelayService = (def: FunctionCallDef, peer: FluencePeer) => { export const injectValueService = ( serviceId: string, fnName: string, - valueType: NonArrowType, value: JSONValue, ) => { return { @@ -78,7 +63,7 @@ export const injectValueService = ( handler: () => { return { retCode: ResultCodes.success, - result: ts2aqua(value, valueType), + result: value, }; }, }; @@ -87,15 +72,17 @@ export const injectValueService = ( /** * Creates a service which is used to return value from aqua function into typescript space */ -export const responseService = ( - def: FunctionCallDef, - resolveCallback: (val: JSONValue) => void, -) => { +export const responseService = (resolveCallback: (val: JSONValue) => void) => { return { - serviceId: def.names.responseSrv, - fnName: def.names.responseFnName, + serviceId: "callbackSrv", + fnName: "response", handler: (req: CallServiceData) => { - const userFunctionReturn = responseServiceValue2ts(req, def.arrow); + const userFunctionReturn = + req.args.length === 0 + ? null + : req.args.length === 1 + ? req.args[0] + : req.args; setTimeout(() => { resolveCallback(userFunctionReturn); @@ -113,12 +100,11 @@ export const responseService = ( * Creates a service which is used to return errors from aqua function into typescript space */ export const errorHandlingService = ( - def: FunctionCallDef, rejectCallback: (err: JSONValue) => void, ) => { return { - serviceId: def.names.errorHandlingSrv, - fnName: def.names.errorFnName, + serviceId: "errorHandlingSrv", + fnName: "error", handler: (req: CallServiceData) => { const [err] = req.args; @@ -139,21 +125,19 @@ export const errorHandlingService = ( */ export const userHandlerService = ( serviceId: string, - arrowType: [string, ArrowWithoutCallbacks], + fnName: string, userHandler: ServiceImpl[string], ) => { - const [fnName, type] = arrowType; return { serviceId, fnName, handler: async (req: CallServiceData) => { - const args: [...JSONValue[], CallParams] = [ - ...aquaArgs2Ts(req, type), - extractCallParams(req, type), + const args: [...JSONValue[], ParticleContext] = [ + ...req.args, + req.particleContext, ]; - const rawResult = await userHandler.bind(null)(...args); - const result = returnType2Aqua(rawResult, type); + const result = await userHandler.bind(null)(...args); return { retCode: ResultCodes.success, @@ -163,46 +147,6 @@ export const userHandlerService = ( }; }; -/** - * Extracts call params from from call service data according to aqua type definition - */ -const extractCallParams = ( - req: CallServiceData, - arrow: ArrowWithoutCallbacks, -): CallParams => { - const names: (string | undefined)[] = match(arrow.domain) - .with({ tag: "nil" }, () => { - return []; - }) - .with({ tag: "unlabeledProduct" }, (x) => { - return x.items.map((_, index) => { - return "arg" + index; - }); - }) - .with({ tag: "labeledProduct" }, (x) => { - return Object.keys(x.fields); - }) - .exhaustive(); - - const tetraplets: Record = {}; - - for (let i = 0; i < req.args.length; i++) { - const name = names[i]; - - if (name != null) { - tetraplets[name] = req.tetraplets[i]; - } - } - - const callParams = { - ...req.particleContext, - signature: fromUint8Array(req.particleContext.signature), - tetraplets, - }; - - return callParams; -}; - export const registerParticleScopeService = ( peer: FluencePeer, particle: Particle, diff --git a/packages/core/js-client/src/marine/worker-script/workerLoader.ts b/packages/core/js-client/src/compilerSupport/types.ts similarity index 62% rename from packages/core/js-client/src/marine/worker-script/workerLoader.ts rename to packages/core/js-client/src/compilerSupport/types.ts index d4fc8bd9..fd0361d5 100644 --- a/packages/core/js-client/src/marine/worker-script/workerLoader.ts +++ b/packages/core/js-client/src/compilerSupport/types.ts @@ -14,19 +14,13 @@ * limitations under the License. */ -import { - Worker, - type Worker as WorkerImplementation, -} from "@fluencelabs/threads/master"; +import { JSONArray, JSONValue } from "@fluencelabs/interfaces"; -import { LazyLoader } from "../interfaces.js"; +import { ParticleContext } from "../jsServiceHost/interfaces.js"; -export class WorkerLoader extends LazyLoader { - constructor() { - super(() => { - return new Worker( - "../../../node_modules/@fluencelabs/marine-worker/dist/index.js", - ); - }); - } -} +export type MaybePromise = T | Promise; + +export type ServiceImpl = Record< + string, + (...args: [...JSONArray, ParticleContext]) => MaybePromise +>; diff --git a/packages/core/js-client/src/connection/RelayConnection.ts b/packages/core/js-client/src/connection/RelayConnection.ts index aca20a10..580e6de3 100644 --- a/packages/core/js-client/src/connection/RelayConnection.ts +++ b/packages/core/js-client/src/connection/RelayConnection.ts @@ -17,7 +17,7 @@ import { noise } from "@chainsafe/libp2p-noise"; import { yamux } from "@chainsafe/libp2p-yamux"; import { PeerIdB58 } from "@fluencelabs/interfaces"; -import { Stream } from "@libp2p/interface/connection"; +import type { Stream } from "@libp2p/interface/connection"; import type { PeerId } from "@libp2p/interface/peer-id"; import { peerIdFromString } from "@libp2p/peer-id"; import { webSockets } from "@libp2p/websockets"; diff --git a/packages/core/js-client/src/ephemeral/__test__/ephemeral.spec.ts b/packages/core/js-client/src/ephemeral/__test__/ephemeral.spec.ts index 267861e0..f813dca9 100644 --- a/packages/core/js-client/src/ephemeral/__test__/ephemeral.spec.ts +++ b/packages/core/js-client/src/ephemeral/__test__/ephemeral.spec.ts @@ -91,7 +91,11 @@ describe.skip("Ephemeral networks tests", () => { }); // act - client.internals.initiateParticle(particle, () => {}); + client.internals.initiateParticle( + particle, + () => {}, + () => {}, + ); // assert await expect(promise).resolves.toBe("success"); diff --git a/packages/core/js-client/src/ephemeral/client.ts b/packages/core/js-client/src/ephemeral/client.ts index c4d45773..a9efe08d 100644 --- a/packages/core/js-client/src/ephemeral/client.ts +++ b/packages/core/js-client/src/ephemeral/client.ts @@ -15,13 +15,13 @@ */ import { PeerIdB58 } from "@fluencelabs/interfaces"; +import { fetchResource } from "@fluencelabs/js-client-isomorphic/fetcher"; +import { getWorker } from "@fluencelabs/js-client-isomorphic/worker-resolver"; import { FluencePeer, PeerConfig } from "../jsPeer/FluencePeer.js"; import { JsServiceHost } from "../jsServiceHost/JsServiceHost.js"; import { KeyPair } from "../keypair/index.js"; -import { WasmLoaderFromNpm } from "../marine/deps-loader/node.js"; import { MarineBackgroundRunner } from "../marine/worker/index.js"; -import { WorkerLoader } from "../marine/worker-script/workerLoader.js"; import { EphemeralNetwork } from "./network.js"; @@ -35,25 +35,60 @@ export class EphemeralNetworkClient extends FluencePeer { network: EphemeralNetwork, relay: PeerIdB58, ) { - const workerLoader = new WorkerLoader(); + const conn = network.getRelayConnection(keyPair.getPeerId(), relay); - const controlModuleLoader = new WasmLoaderFromNpm( - "@fluencelabs/marine-js", - "marine-js.wasm", - ); - - const avmModuleLoader = new WasmLoaderFromNpm( - "@fluencelabs/avm", - "avm.wasm", - ); + let marineJsWasm: ArrayBuffer; + let avmWasm: ArrayBuffer; const marine = new MarineBackgroundRunner( - workerLoader, - controlModuleLoader, - avmModuleLoader, + { + async getValue() { + // TODO: load worker with avm and marine, test that it works + return getWorker("@fluencelabs/marine-worker", "/"); + }, + start() { + return Promise.resolve(undefined); + }, + stop() { + return Promise.resolve(undefined); + }, + }, + { + getValue() { + return marineJsWasm; + }, + async start(): Promise { + marineJsWasm = await fetchResource( + "@fluencelabs/marine-js", + "/dist/marine-js.wasm", + "/", + ).then((res) => { + return res.arrayBuffer(); + }); + }, + stop(): Promise { + return Promise.resolve(undefined); + }, + }, + { + getValue() { + return avmWasm; + }, + async start(): Promise { + avmWasm = await fetchResource( + "@fluencelabs/avm", + "/dist/avm.wasm", + "/", + ).then((res) => { + return res.arrayBuffer(); + }); + }, + stop(): Promise { + return Promise.resolve(undefined); + }, + }, ); - const conn = network.getRelayConnection(keyPair.getPeerId(), relay); super(config, keyPair, marine, new JsServiceHost(), conn); } } diff --git a/packages/core/js-client/src/ephemeral/network.ts b/packages/core/js-client/src/ephemeral/network.ts index ba8cf710..13202c08 100644 --- a/packages/core/js-client/src/ephemeral/network.ts +++ b/packages/core/js-client/src/ephemeral/network.ts @@ -15,16 +15,14 @@ */ import { PeerIdB58 } from "@fluencelabs/interfaces"; +import { fetchResource } from "@fluencelabs/js-client-isomorphic/fetcher"; +import { getWorker } from "@fluencelabs/js-client-isomorphic/worker-resolver"; import { Subject } from "rxjs"; import { IConnection } from "../connection/interfaces.js"; import { DEFAULT_CONFIG, FluencePeer } from "../jsPeer/FluencePeer.js"; import { JsServiceHost } from "../jsServiceHost/JsServiceHost.js"; import { fromBase64Sk, KeyPair } from "../keypair/index.js"; -import { - WorkerLoaderFromFs, - WasmLoaderFromNpm, -} from "../marine/deps-loader/node.js"; import { IMarineHost } from "../marine/interfaces.js"; import { MarineBackgroundRunner } from "../marine/worker/index.js"; import { Particle } from "../particle/Particle.js"; @@ -224,24 +222,7 @@ class EphemeralPeer extends FluencePeer { export class EphemeralNetwork { private peers: Map = new Map(); - workerLoader: WorkerLoaderFromFs; - controlModuleLoader: WasmLoaderFromNpm; - avmModuleLoader: WasmLoaderFromNpm; - - constructor(readonly config: EphemeralConfig) { - // shared worker for all the peers - this.workerLoader = new WorkerLoaderFromFs("../../marine/worker-script"); - - this.controlModuleLoader = new WasmLoaderFromNpm( - "@fluencelabs/marine-js", - "marine-js.wasm", - ); - - this.avmModuleLoader = new WasmLoaderFromNpm( - "@fluencelabs/avm", - "avm.wasm", - ); - } + constructor(readonly config: EphemeralConfig) {} /** * Starts the Ephemeral network up @@ -252,10 +233,54 @@ export class EphemeralNetwork { const promises = this.config.peers.map(async (x) => { const kp = await fromBase64Sk(x.sk); + const [marineJsWasm, avmWasm] = await Promise.all([ + fetchResource( + "@fluencelabs/marine-js", + "/dist/marine-js.wasm", + "/", + ).then((res) => { + return res.arrayBuffer(); + }), + fetchResource("@fluencelabs/avm", "/dist/avm.wasm", "/").then((res) => { + return res.arrayBuffer(); + }), + ]); + const marine = new MarineBackgroundRunner( - this.workerLoader, - this.controlModuleLoader, - this.avmModuleLoader, + { + async getValue() { + // TODO: load worker with avm and marine, test that it works + return getWorker("@fluencelabs/marine-worker", "/"); + }, + start() { + return Promise.resolve(undefined); + }, + stop() { + return Promise.resolve(undefined); + }, + }, + { + getValue() { + return marineJsWasm; + }, + start(): Promise { + return Promise.resolve(undefined); + }, + stop(): Promise { + return Promise.resolve(undefined); + }, + }, + { + getValue() { + return avmWasm; + }, + start(): Promise { + return Promise.resolve(undefined); + }, + stop(): Promise { + return Promise.resolve(undefined); + }, + }, ); const peerId = kp.getPeerId(); diff --git a/packages/core/js-client/src/index.ts b/packages/core/js-client/src/index.ts index 48ef3193..1eb0ebb9 100644 --- a/packages/core/js-client/src/index.ts +++ b/packages/core/js-client/src/index.ts @@ -16,12 +16,15 @@ import { fetchResource } from "@fluencelabs/js-client-isomorphic/fetcher"; import { getWorker } from "@fluencelabs/js-client-isomorphic/worker-resolver"; +import { ZodError } from "zod"; import { ClientPeer, makeClientPeerConfig } from "./clientPeer/ClientPeer.js"; import { ClientConfig, + configSchema, ConnectionState, RelayOptions, + relaySchema, } from "./clientPeer/types.js"; import { callAquaFunction } from "./compilerSupport/callFunction.js"; import { registerService } from "./compilerSupport/registerService.js"; @@ -33,34 +36,34 @@ const createClient = async ( relay: RelayOptions, config: ClientConfig = {}, ): Promise => { + try { + relay = relaySchema.parse(relay); + config = configSchema.parse(config); + } catch (e) { + if (e instanceof ZodError) { + throw new Error(JSON.stringify(e.format())); + } + } + const CDNUrl = config.CDNUrl ?? DEFAULT_CDN_URL; - const fetchMarineJsWasm = async () => { - const resource = await fetchResource( + const [marineJsWasm, avmWasm] = await Promise.all([ + fetchResource( "@fluencelabs/marine-js", "/dist/marine-js.wasm", CDNUrl, - ); - - return resource.arrayBuffer(); - }; - - const fetchAvmWasm = async () => { - const resource = await fetchResource( - "@fluencelabs/avm", - "/dist/avm.wasm", - CDNUrl, - ); - - return resource.arrayBuffer(); - }; - - const marineJsWasm = await fetchMarineJsWasm(); - const avmWasm = await fetchAvmWasm(); + ).then((res) => { + return res.arrayBuffer(); + }), + fetchResource("@fluencelabs/avm", "/dist/avm.wasm", CDNUrl).then((res) => { + return res.arrayBuffer(); + }), + ]); const marine = new MarineBackgroundRunner( { async getValue() { + // TODO: load worker with avm and marine, test that it works return getWorker("@fluencelabs/marine-worker", CDNUrl); }, start() { @@ -174,10 +177,14 @@ export type { KeyPairOptions, } from "./clientPeer/types.js"; +export type { ParticleContext } from "./jsServiceHost/interfaces.js"; + export { v5_callFunction, v5_registerService } from "./api.js"; export { createClient, callAquaFunction, registerService }; +export { ClientPeer } from "./clientPeer/ClientPeer.js"; + // Deprecated exports. Later they will be exposed only under js-client/keypair path export { KeyPair, diff --git a/packages/core/js-client/src/jsPeer/FluencePeer.ts b/packages/core/js-client/src/jsPeer/FluencePeer.ts index 13886cdf..20cc88cc 100644 --- a/packages/core/js-client/src/jsPeer/FluencePeer.ts +++ b/packages/core/js-client/src/jsPeer/FluencePeer.ts @@ -22,6 +22,7 @@ import { KeyPairFormat, serializeAvmArgs, } from "@fluencelabs/avm"; +import { JSONValue } from "@fluencelabs/interfaces"; import { fromUint8Array } from "js-base64"; import { concatMap, @@ -55,7 +56,6 @@ import { getActualTTL, hasExpired, Particle, - ParticleExecutionStage, ParticleQueueItem, } from "../particle/Particle.js"; import { registerSig } from "../services/_aqua/services.js"; @@ -67,6 +67,8 @@ import { Tracing } from "../services/Tracing.js"; import { logger } from "../util/logger.js"; import { jsonify, isString, getErrorMessage } from "../util/utils.js"; +import { ExpirationError, InterpreterError, SendError } from "./errors.js"; + const log_particle = logger("particle"); const log_peer = logger("peer"); @@ -247,11 +249,13 @@ export abstract class FluencePeer { /** * Initiates a new particle execution starting from local peer * @param particle - particle to start execution of - * @param onStageChange - callback for reacting on particle state changes + * @param onSuccess - callback which is called when particle execution succeed + * @param onError - callback which is called when particle execution fails */ initiateParticle: ( particle: IParticle, - onStageChange: (stage: ParticleExecutionStage) => void, + onSuccess: (result: JSONValue) => void, + onError: (error: Error) => void, ): void => { if (!this.isInitialized) { throw new Error( @@ -268,7 +272,8 @@ export abstract class FluencePeer { this._incomingParticles.next({ particle: particle, callResults: [], - onStageChange: onStageChange, + onSuccess, + onError, }); }, @@ -329,6 +334,7 @@ export abstract class FluencePeer { registerTracing(this, "tracingSrv", this._classServices.tracing); } + // TODO: too long, refactor private _startParticleProcessing() { this._particleSourceSubscription = this.connection.particleSource.subscribe( { @@ -336,7 +342,8 @@ export abstract class FluencePeer { this._incomingParticles.next({ particle: p, callResults: [], - onStageChange: () => {}, + onSuccess: () => {}, + onError: () => {}, }); }, }, @@ -471,10 +478,11 @@ export abstract class FluencePeer { item.result.message, ); - item.onStageChange({ - stage: "interpreterError", - errorMessage: item.result.message, - }); + item.onError( + new InterpreterError( + `Script interpretation failed: ${item.result.message} (particle id: ${item.particle.id})`, + ), + ); return; } @@ -493,10 +501,11 @@ export abstract class FluencePeer { this.decodeAvmData(item.result.data), ); - item.onStageChange({ - stage: "interpreterError", - errorMessage: item.result.errorMessage, - }); + item.onError( + new InterpreterError( + `Script interpretation failed: ${item.result.errorMessage} (particle id: ${item.particle.id})`, + ), + ); return; } @@ -508,10 +517,6 @@ export abstract class FluencePeer { this.decodeAvmData(item.result.data), ); - setTimeout(() => { - item.onStageChange({ stage: "interpreted" }); - }, 0); - let connectionPromise: Promise = Promise.resolve(); // send particle further if requested @@ -534,8 +539,6 @@ export abstract class FluencePeer { "id %s. send successful", newParticle.id, ); - - item.onStageChange({ stage: "sent" }); }) .catch((e: unknown) => { log_particle.error( @@ -544,10 +547,13 @@ export abstract class FluencePeer { e, ); - item.onStageChange({ - stage: "sendingError", - errorMessage: getErrorMessage(e), - }); + const message = getErrorMessage(e); + + item.onError( + new SendError( + `Could not send particle: (particle id: ${item.particle.id}, message: ${message})`, + ), + ); }); } @@ -560,7 +566,10 @@ export abstract class FluencePeer { args: cr.arguments, serviceId: cr.serviceId, tetraplets: cr.tetraplets, - particleContext: getParticleContext(item.particle), + particleContext: getParticleContext( + item.particle, + cr.tetraplets, + ), }; void this._execSingleCallRequest(req) @@ -582,6 +591,14 @@ export abstract class FluencePeer { }; }) .then((res) => { + if ( + req.serviceId === "callbackSrv" && + req.fnName === "response" + ) { + // Particle already processed + return; + } + const serviceResult = { result: jsonify(res.result), retCode: res.retCode, @@ -599,8 +616,6 @@ export abstract class FluencePeer { }); }); } - } else { - item.onStageChange({ stage: "localWorkDone" }); } return connectionPromise; @@ -623,7 +638,11 @@ export abstract class FluencePeer { this.jsServiceHost.removeParticleScopeHandlers(particleId); - item.onStageChange({ stage: "expired" }); + item.onError( + new ExpirationError( + `Particle expired after ttl of ${item.particle.ttl}ms (particle id: ${item.particle.id})`, + ), + ); } private decodeAvmData(data: Uint8Array) { diff --git a/packages/core/js-client/src/jsPeer/__test__/avm.spec.ts b/packages/core/js-client/src/jsPeer/__test__/avm.spec.ts index 565749d8..189de1c3 100644 --- a/packages/core/js-client/src/jsPeer/__test__/avm.spec.ts +++ b/packages/core/js-client/src/jsPeer/__test__/avm.spec.ts @@ -44,7 +44,11 @@ describe("Basic AVM functionality in Fluence Peer tests", () => { }, }); - peer.internals.initiateParticle(particle, handleTimeout(reject)); + peer.internals.initiateParticle( + particle, + () => {}, + handleTimeout(reject), + ); }); expect(res).toBe("1"); @@ -85,7 +89,11 @@ describe("Basic AVM functionality in Fluence Peer tests", () => { }, }); - peer.internals.initiateParticle(particle, handleTimeout(reject)); + peer.internals.initiateParticle( + particle, + () => {}, + handleTimeout(reject), + ); }); expect(res).toStrictEqual(["1", "2"]); @@ -126,7 +134,11 @@ describe("Basic AVM functionality in Fluence Peer tests", () => { }, }); - peer.internals.initiateParticle(particle, handleTimeout(reject)); + peer.internals.initiateParticle( + particle, + () => {}, + handleTimeout(reject), + ); }); expect(res).toBe("fast_result"); @@ -178,7 +190,11 @@ describe("Basic AVM functionality in Fluence Peer tests", () => { }, }); - peer.internals.initiateParticle(particle, handleTimeout(reject)); + peer.internals.initiateParticle( + particle, + () => {}, + handleTimeout(reject), + ); }); expect(res).toBe("failed_with_timeout"); diff --git a/packages/core/js-client/src/jsPeer/__test__/par.spec.ts b/packages/core/js-client/src/jsPeer/__test__/par.spec.ts index 268c37a5..c02b07c7 100644 --- a/packages/core/js-client/src/jsPeer/__test__/par.spec.ts +++ b/packages/core/js-client/src/jsPeer/__test__/par.spec.ts @@ -94,7 +94,11 @@ describe("FluencePeer flow tests", () => { }, }); - peer.internals.initiateParticle(particle, handleTimeout(reject)); + peer.internals.initiateParticle( + particle, + () => {}, + handleTimeout(reject), + ); }); expect(res).toEqual(expect.arrayContaining(["test1", "test1"])); diff --git a/packages/core/js-client/src/jsPeer/__test__/peer.spec.ts b/packages/core/js-client/src/jsPeer/__test__/peer.spec.ts index f71db1be..bc675277 100644 --- a/packages/core/js-client/src/jsPeer/__test__/peer.spec.ts +++ b/packages/core/js-client/src/jsPeer/__test__/peer.spec.ts @@ -16,36 +16,11 @@ import { it, describe, expect } from "vitest"; -import { isFluencePeer } from "../../api.js"; import { handleTimeout } from "../../particle/Particle.js"; -import { - mkTestPeer, - registerHandlersHelper, - withPeer, -} from "../../util/testUtils.js"; +import { registerHandlersHelper, withPeer } from "../../util/testUtils.js"; import { FluencePeer } from "../FluencePeer.js"; describe("FluencePeer usage test suite", () => { - it("should perform test for FluencePeer class correctly", async () => { - // arrange - const peer = await mkTestPeer(); - const number = 1; - const object = { str: "Hello!" }; - const undefinedVal = undefined; - - // act - const isPeerPeer = isFluencePeer(peer); - const isNumberPeer = isFluencePeer(number); - const isObjectPeer = isFluencePeer(object); - const isUndefinedPeer = isFluencePeer(undefinedVal); - - // act - expect(isPeerPeer).toBe(true); - expect(isNumberPeer).toBe(false); - expect(isObjectPeer).toBe(false); - expect(isUndefinedPeer).toBe(false); - }); - it("Should successfully call identity on local peer", async function () { await withPeer(async (peer) => { const script = ` @@ -72,7 +47,11 @@ describe("FluencePeer usage test suite", () => { }, }); - peer.internals.initiateParticle(particle, handleTimeout(reject)); + peer.internals.initiateParticle( + particle, + () => {}, + handleTimeout(reject), + ); }); expect(res).toBe("test"); @@ -130,7 +109,11 @@ describe("FluencePeer usage test suite", () => { }, }); - peer.internals.initiateParticle(particle, handleTimeout(reject)); + peer.internals.initiateParticle( + particle, + () => {}, + handleTimeout(reject), + ); }); expect(res).toBe(null); @@ -167,7 +150,11 @@ describe("FluencePeer usage test suite", () => { }, }); - peer.internals.initiateParticle(particle, handleTimeout(reject)); + peer.internals.initiateParticle( + particle, + () => {}, + handleTimeout(reject), + ); }); await expect(promise).rejects.toMatchObject({ @@ -205,6 +192,6 @@ async function callIncorrectService(peer: FluencePeer) { }, }); - peer.internals.initiateParticle(particle, handleTimeout(reject)); + peer.internals.initiateParticle(particle, () => {}, handleTimeout(reject)); }); } diff --git a/packages/core/js-client/src/jsPeer/errors.ts b/packages/core/js-client/src/jsPeer/errors.ts new file mode 100644 index 00000000..f49d86e3 --- /dev/null +++ b/packages/core/js-client/src/jsPeer/errors.ts @@ -0,0 +1,21 @@ +/** + * Copyright 2023 Fluence Labs Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export class ExpirationError extends Error {} + +export class InterpreterError extends Error {} + +export class SendError extends Error {} diff --git a/packages/core/js-client/src/jsServiceHost/interfaces.ts b/packages/core/js-client/src/jsServiceHost/interfaces.ts index be6c3818..02f08898 100644 --- a/packages/core/js-client/src/jsServiceHost/interfaces.ts +++ b/packages/core/js-client/src/jsServiceHost/interfaces.ts @@ -79,7 +79,7 @@ export enum ResultCodes { /** * Particle context. Contains additional information about particle which triggered `call` air instruction from AVM */ -export interface ParticleContext { +export type ParticleContext = { /** * The identifier of particle which triggered the call */ @@ -104,7 +104,12 @@ export interface ParticleContext { * Particle's signature */ signature: Uint8Array; -} + + /** + * Security Tetraplets received from AVM and copied here + */ + tetraplets: SecurityTetraplet[][]; +}; /** * Represents the information passed from AVM when a `call` air instruction is executed on the local peer diff --git a/packages/core/js-client/src/jsServiceHost/serviceUtils.ts b/packages/core/js-client/src/jsServiceHost/serviceUtils.ts index ac9090c3..42e9b8ef 100644 --- a/packages/core/js-client/src/jsServiceHost/serviceUtils.ts +++ b/packages/core/js-client/src/jsServiceHost/serviceUtils.ts @@ -14,6 +14,7 @@ * limitations under the License. */ +import { SecurityTetraplet } from "@fluencelabs/avm"; import { JSONArray } from "@fluencelabs/interfaces"; import { FluencePeer } from "../jsPeer/FluencePeer.js"; @@ -28,10 +29,6 @@ import { ResultCodes, } from "./interfaces.js"; -export const doNothing = () => { - return undefined; -}; - export const WrapFnIntoServiceCall = ( fn: (args: JSONArray) => CallServiceResultType | undefined, ) => { @@ -51,13 +48,17 @@ export class ServiceError extends Error { } } -export const getParticleContext = (particle: IParticle): ParticleContext => { +export const getParticleContext = ( + particle: IParticle, + tetraplets: SecurityTetraplet[][], +): ParticleContext => { return { particleId: particle.id, initPeerId: particle.initPeerId, timestamp: particle.timestamp, ttl: particle.ttl, signature: particle.signature, + tetraplets, }; }; diff --git a/packages/core/js-client/src/marine/deps-loader/node.ts b/packages/core/js-client/src/marine/deps-loader/node.ts deleted file mode 100644 index 2ee3ded7..00000000 --- a/packages/core/js-client/src/marine/deps-loader/node.ts +++ /dev/null @@ -1,98 +0,0 @@ -/** - * Copyright 2023 Fluence Labs Limited - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { Buffer } from "buffer"; -import fs from "fs"; -import { createRequire } from "module"; -import path from "path"; - -import { - Worker, - type Worker as WorkerImplementation, -} from "@fluencelabs/threads/master"; - -import { LazyLoader } from "../interfaces.js"; - -const require = createRequire(import.meta.url); - -const bufferToSharedArrayBuffer = (buffer: Buffer): SharedArrayBuffer => { - const sab = new SharedArrayBuffer(buffer.length); - const tmp = new Uint8Array(sab); - tmp.set(buffer, 0); - return sab; -}; - -/** - * Load wasm file from npm package. Only works in nodejs environment. - * The function returns SharedArrayBuffer compatible with FluenceAppService methods. - * @param source - object specifying the source of the file. Consist two fields: package name and file path. - * @returns SharedArrayBuffer with the wasm file - */ -export const loadWasmFromNpmPackage = async (source: { - package: string; - file: string; -}): Promise => { - const packagePath = require.resolve(source.package); - const filePath = path.join(path.dirname(packagePath), source.file); - return loadWasmFromFileSystem(filePath); -}; - -/** - * Load wasm file from the file system. Only works in nodejs environment. - * The functions returns SharedArrayBuffer compatible with FluenceAppService methods. - * @param filePath - path to the wasm file - * @returns SharedArrayBuffer with the wasm fileWorker - */ -export const loadWasmFromFileSystem = async ( - filePath: string, -): Promise => { - const buffer = await fs.promises.readFile(filePath); - return bufferToSharedArrayBuffer(buffer); -}; - -export class WasmLoaderFromFs extends LazyLoader { - constructor(filePath: string) { - super(() => { - return loadWasmFromFileSystem(filePath); - }); - } -} - -export class WasmLoaderFromNpm extends LazyLoader { - constructor(pkg: string, file: string) { - super(() => { - return loadWasmFromNpmPackage({ package: pkg, file: file }); - }); - } -} - -export class WorkerLoaderFromFs extends LazyLoader { - constructor(scriptPath: string) { - super(() => { - return new Worker(scriptPath); - }); - } -} - -export class WorkerLoaderFromNpm extends LazyLoader { - constructor(pkg: string, file: string) { - super(() => { - const packagePath = require.resolve(pkg); - const scriptPath = path.join(path.dirname(packagePath), file); - return new Worker(scriptPath); - }); - } -} diff --git a/packages/core/js-client/src/marine/interfaces.ts b/packages/core/js-client/src/marine/interfaces.ts index ef33b830..32474375 100644 --- a/packages/core/js-client/src/marine/interfaces.ts +++ b/packages/core/js-client/src/marine/interfaces.ts @@ -14,11 +14,6 @@ * limitations under the License. */ -import { - CallResultsArray, - InterpreterResult, - RunParameters, -} from "@fluencelabs/avm"; import { JSONObject, JSONValue, JSONArray } from "@fluencelabs/interfaces"; import { CallParameters } from "@fluencelabs/marine-worker"; import type { Worker as WorkerImplementation } from "@fluencelabs/threads/master"; @@ -58,22 +53,6 @@ export interface IMarineHost extends IStartable { ): Promise; } -/** - * Interface for different implementations of AVM runner - */ -export interface IAvmRunner extends IStartable { - /** - * Run AVM interpreter with the specified parameters - */ - run( - runParams: RunParameters, - air: string, - prevData: Uint8Array, - data: Uint8Array, - callResults: CallResultsArray, - ): Promise; -} - /** * Interface for something which can hold a value */ @@ -94,32 +73,3 @@ export interface IWasmLoader export interface IWorkerLoader extends IValueLoader>, IStartable {} - -/** - * Lazy loader for some value. Value is loaded only when `start` method is called - */ -export class LazyLoader implements IStartable, IValueLoader { - private value: T | null = null; - - constructor(private loadValue: () => Promise | T) {} - - getValue(): T { - if (this.value == null) { - throw new Error( - "Value has not been loaded. Call `start` method to load the value.", - ); - } - - return this.value; - } - - async start() { - if (this.value !== null) { - return; - } - - this.value = await this.loadValue(); - } - - async stop() {} -} diff --git a/packages/core/js-client/src/particle/Particle.ts b/packages/core/js-client/src/particle/Particle.ts index 15a5127b..e9c41a9f 100644 --- a/packages/core/js-client/src/particle/Particle.ts +++ b/packages/core/js-client/src/particle/Particle.ts @@ -15,11 +15,13 @@ */ import { CallResultsArray } from "@fluencelabs/avm"; +import { JSONValue } from "@fluencelabs/interfaces"; import { fromUint8Array, toUint8Array } from "js-base64"; import { concat } from "uint8arrays/concat"; import { v4 as uuidv4 } from "uuid"; import { z } from "zod"; +import { ExpirationError } from "../jsPeer/errors.js"; import { KeyPair } from "../keypair/index.js"; import { numberToLittleEndianBytes } from "../util/bytes.js"; @@ -183,15 +185,16 @@ export type ParticleExecutionStage = export interface ParticleQueueItem { particle: IParticle; callResults: CallResultsArray; - onStageChange: (state: ParticleExecutionStage) => void; + onSuccess: (result: JSONValue) => void; + onError: (error: Error) => void; } /** * Helper function to handle particle at expired stage */ export const handleTimeout = (fn: () => void) => { - return (stage: ParticleExecutionStage) => { - if (stage.stage === "expired") { + return (error: Error) => { + if (error instanceof ExpirationError) { fn(); } }; diff --git a/packages/core/js-client/src/services/NodeUtils.ts b/packages/core/js-client/src/services/NodeUtils.ts index 4ebba7b4..a5cdc015 100644 --- a/packages/core/js-client/src/services/NodeUtils.ts +++ b/packages/core/js-client/src/services/NodeUtils.ts @@ -14,58 +14,44 @@ * limitations under the License. */ -import { Buffer } from "buffer"; -import * as fs from "fs"; - -import { CallParams } from "@fluencelabs/interfaces"; +import { readFile } from "fs/promises"; import { FluencePeer } from "../jsPeer/FluencePeer.js"; +import { ParticleContext } from "../jsServiceHost/interfaces.js"; import { getErrorMessage } from "../util/utils.js"; -import { NodeUtilsDef, registerNodeUtils } from "./_aqua/node-utils.js"; +import { registerNodeUtils } from "./_aqua/node-utils.js"; import { SecurityGuard } from "./securityGuard.js"; import { defaultGuard } from "./SingleModuleSrv.js"; -export class NodeUtils implements NodeUtilsDef { +export class NodeUtils { constructor(private peer: FluencePeer) { this.securityGuard_readFile = defaultGuard(this.peer); } - securityGuard_readFile: SecurityGuard<"path">; + securityGuard_readFile: SecurityGuard; - async read_file(path: string, callParams: CallParams<"path">) { + async read_file(path: string, callParams: ParticleContext) { if (!this.securityGuard_readFile(callParams)) { return { success: false, - error: "Security guard validation failed", + error: ["Security guard validation failed"], content: null, }; } try { - // Strange enough, but Buffer type works here, while reading with encoding 'utf-8' doesn't - const data = await new Promise((resolve, reject) => { - fs.readFile(path, (err, data) => { - if (err != null) { - reject(err); - return; - } - - resolve(data); - }); - }); + const data = await readFile(path, "base64"); return { success: true, - // TODO: this is strange bug. - // eslint-disable-next-line @typescript-eslint/consistent-type-assertions - content: data as unknown as string, + content: [data], error: null, }; } catch (err: unknown) { return { success: false, - error: getErrorMessage(err), + error: [getErrorMessage(err)], content: null, }; } diff --git a/packages/core/js-client/src/services/Sig.ts b/packages/core/js-client/src/services/Sig.ts index 5663e572..e021e71b 100644 --- a/packages/core/js-client/src/services/Sig.ts +++ b/packages/core/js-client/src/services/Sig.ts @@ -14,11 +14,11 @@ * limitations under the License. */ -import { CallParams, PeerIdB58 } from "@fluencelabs/interfaces"; +import { PeerIdB58 } from "@fluencelabs/interfaces"; +import { ParticleContext } from "../jsServiceHost/interfaces.js"; import { KeyPair } from "../keypair/index.js"; -import { SigDef } from "./_aqua/services.js"; import { allowOnlyParticleOriginatedAt, allowServiceFn, @@ -28,7 +28,7 @@ import { } from "./securityGuard.js"; export const defaultSigGuard = (peerId: PeerIdB58) => { - return and<"data">( + return and( allowOnlyParticleOriginatedAt(peerId), or( allowServiceFn("trust-graph", "get_trust_bytes"), @@ -43,23 +43,23 @@ export const defaultSigGuard = (peerId: PeerIdB58) => { type SignReturnType = | { - error: null; - signature: number[]; + error: []; + signature: [number[]]; success: true; } | { - error: string; - signature: null; + error: [string]; + signature: []; success: false; }; -export class Sig implements SigDef { +export class Sig { constructor(private keyPair: KeyPair) {} /** * Configurable security guard for sign method */ - securityGuard: SecurityGuard<"data"> = () => { + securityGuard: SecurityGuard = () => { return true; }; @@ -75,13 +75,13 @@ export class Sig implements SigDef { */ async sign( data: number[], - callParams: CallParams<"data">, + context: ParticleContext, ): Promise { - if (!this.securityGuard(callParams)) { + if (!this.securityGuard(context)) { return { success: false, - error: "Security guard validation failed", - signature: null, + error: ["Security guard validation failed"], + signature: [], }; } @@ -89,8 +89,8 @@ export class Sig implements SigDef { return { success: true, - error: null, - signature: Array.from(signedData), + error: [], + signature: [Array.from(signedData)], }; } diff --git a/packages/core/js-client/src/services/SingleModuleSrv.ts b/packages/core/js-client/src/services/SingleModuleSrv.ts index 4c29e875..cef5b25e 100644 --- a/packages/core/js-client/src/services/SingleModuleSrv.ts +++ b/packages/core/js-client/src/services/SingleModuleSrv.ts @@ -16,13 +16,12 @@ import { Buffer } from "buffer"; -import { CallParams } from "@fluencelabs/interfaces"; import { v4 as uuidv4 } from "uuid"; import { FluencePeer } from "../jsPeer/FluencePeer.js"; +import { ParticleContext } from "../jsServiceHost/interfaces.js"; import { getErrorMessage } from "../util/utils.js"; -import { SrvDef } from "./_aqua/single-module-srv.js"; import { allowOnlyParticleOriginatedAt, SecurityGuard, @@ -32,7 +31,8 @@ export const defaultGuard = (peer: FluencePeer) => { return allowOnlyParticleOriginatedAt(peer.keyPair.getPeerId()); }; -export class Srv implements SrvDef { +// Service for registering marine modules in js-client's marine runtime +export class Srv { private services: Set = new Set(); constructor(private peer: FluencePeer) { @@ -40,16 +40,13 @@ export class Srv implements SrvDef { this.securityGuard_remove = defaultGuard(this.peer); } - securityGuard_create: SecurityGuard<"wasm_b64_content">; + securityGuard_create: SecurityGuard; - async create( - wasm_b64_content: string, - callParams: CallParams<"wasm_b64_content">, - ) { + async create(wasm_b64_content: string, callParams: ParticleContext) { if (!this.securityGuard_create(callParams)) { return { success: false, - error: "Security guard validation failed", + error: ["Marine services could be registered on %init_peer_id% only"], service_id: null, }; } @@ -66,25 +63,25 @@ export class Srv implements SrvDef { return { success: true, - service_id: newServiceId, + service_id: [newServiceId], error: null, }; } catch (err: unknown) { return { success: true, service_id: null, - error: getErrorMessage(err), + error: [getErrorMessage(err)], }; } } - securityGuard_remove: SecurityGuard<"service_id">; + securityGuard_remove: SecurityGuard; - async remove(service_id: string, callParams: CallParams<"service_id">) { + async remove(service_id: string, callParams: ParticleContext) { if (!this.securityGuard_remove(callParams)) { return { success: false, - error: "Security guard validation failed", + error: ["Marine services could be remove on %init_peer_id% only"], service_id: null, }; } @@ -92,7 +89,7 @@ export class Srv implements SrvDef { if (!this.services.has(service_id)) { return { success: false, - error: `Service with id ${service_id} not found`, + error: [`Service with id ${service_id} not found`], }; } diff --git a/packages/core/js-client/src/services/Tracing.ts b/packages/core/js-client/src/services/Tracing.ts index 3764aa8b..a6f84d53 100644 --- a/packages/core/js-client/src/services/Tracing.ts +++ b/packages/core/js-client/src/services/Tracing.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { CallParams } from "@fluencelabs/interfaces"; +import { ParticleContext } from "../jsServiceHost/interfaces.js"; import { TracingDef } from "./_aqua/tracing.js"; @@ -22,7 +22,7 @@ export class Tracing implements TracingDef { tracingEvent( arrowName: string, event: string, - callParams: CallParams<"arrowName" | "event">, + callParams: ParticleContext, ): void { // This console log is intentional // eslint-disable-next-line no-console diff --git a/packages/core/js-client/src/services/__test__/builtInHandler.spec.ts b/packages/core/js-client/src/services/__test__/builtInHandler.spec.ts index 3d538096..c8c4d948 100644 --- a/packages/core/js-client/src/services/__test__/builtInHandler.spec.ts +++ b/packages/core/js-client/src/services/__test__/builtInHandler.spec.ts @@ -16,11 +16,14 @@ import assert from "assert"; -import { CallParams, JSONArray } from "@fluencelabs/interfaces"; +import { JSONArray } from "@fluencelabs/interfaces"; import { toUint8Array } from "js-base64"; import { it, describe, expect, test } from "vitest"; -import { CallServiceData } from "../../jsServiceHost/interfaces.js"; +import { + CallServiceData, + ParticleContext, +} from "../../jsServiceHost/interfaces.js"; import { KeyPair } from "../../keypair/index.js"; import { builtInServices } from "../builtins.js"; import { allowServiceFn } from "../securityGuard.js"; @@ -51,32 +54,32 @@ describe("Tests for default handler", () => { serviceId | fnName | args | retCode | result ${"op"} | ${"identity"} | ${[]} | ${0} | ${{}} ${"op"} | ${"identity"} | ${[1]} | ${0} | ${1} - ${"op"} | ${"identity"} | ${[1, 2]} | ${1} | ${"identity accepts up to 1 arguments, received 2 arguments"} + ${"op"} | ${"identity"} | ${[1, 2]} | ${1} | ${"Expected 1 argument(s). Got 2"} ${"op"} | ${"noop"} | ${[1, 2]} | ${0} | ${{}} ${"op"} | ${"array"} | ${[1, 2, 3]} | ${0} | ${[1, 2, 3]} ${"op"} | ${"array_length"} | ${[[1, 2, 3]]} | ${0} | ${3} - ${"op"} | ${"array_length"} | ${[]} | ${1} | ${"array_length accepts exactly one argument, found: 0"} + ${"op"} | ${"array_length"} | ${[]} | ${1} | ${"Expected 1 argument(s). Got 0"} ${"op"} | ${"concat"} | ${[[1, 2], [3, 4], [5, 6]]} | ${0} | ${[1, 2, 3, 4, 5, 6]} ${"op"} | ${"concat"} | ${[[1, 2]]} | ${0} | ${[1, 2]} ${"op"} | ${"concat"} | ${[]} | ${0} | ${[]} - ${"op"} | ${"concat"} | ${[1, [1, 2], 1]} | ${1} | ${"All arguments of 'concat' must be arrays: arguments 0, 2 are not"} + ${"op"} | ${"concat"} | ${[1, [1, 2], 1]} | ${1} | ${"Argument 0 expected to be of type array, Got number"} ${"op"} | ${"string_to_b58"} | ${["test"]} | ${0} | ${"3yZe7d"} - ${"op"} | ${"string_to_b58"} | ${["test", 1]} | ${1} | ${"string_to_b58 accepts only one string argument"} + ${"op"} | ${"string_to_b58"} | ${["test", 1]} | ${1} | ${"Expected 1 argument(s). Got 2"} ${"op"} | ${"string_from_b58"} | ${["3yZe7d"]} | ${0} | ${"test"} - ${"op"} | ${"string_from_b58"} | ${["3yZe7d", 1]} | ${1} | ${"string_from_b58 accepts only one string argument"} + ${"op"} | ${"string_from_b58"} | ${["3yZe7d", 1]} | ${1} | ${"Expected 1 argument(s). Got 2"} ${"op"} | ${"bytes_to_b58"} | ${[[116, 101, 115, 116]]} | ${0} | ${"3yZe7d"} - ${"op"} | ${"bytes_to_b58"} | ${[[116, 101, 115, 116], 1]} | ${1} | ${"bytes_to_b58 accepts only single argument: array of numbers"} + ${"op"} | ${"bytes_to_b58"} | ${[[116, 101, 115, 116], 1]} | ${1} | ${"Expected 1 argument(s). Got 2"} ${"op"} | ${"bytes_from_b58"} | ${["3yZe7d"]} | ${0} | ${[116, 101, 115, 116]} - ${"op"} | ${"bytes_from_b58"} | ${["3yZe7d", 1]} | ${1} | ${"bytes_from_b58 accepts only one string argument"} + ${"op"} | ${"bytes_from_b58"} | ${["3yZe7d", 1]} | ${1} | ${"Expected 1 argument(s). Got 2"} ${"op"} | ${"sha256_string"} | ${["hello, world!"]} | ${0} | ${"QmVQ8pg6L1tpoWYeq6dpoWqnzZoSLCh7E96fCFXKvfKD3u"} - ${"op"} | ${"sha256_string"} | ${["hello, world!", true]} | ${1} | ${"sha256_string accepts 1 argument, found: 2"} - ${"op"} | ${"sha256_string"} | ${[]} | ${1} | ${"sha256_string accepts 1 argument, found: 0"} + ${"op"} | ${"sha256_string"} | ${["hello, world!", true]} | ${1} | ${"Expected 1 argument(s). Got 2"} + ${"op"} | ${"sha256_string"} | ${[]} | ${1} | ${"Expected 1 argument(s). Got 0"} ${"op"} | ${"concat_strings"} | ${[]} | ${0} | ${""} ${"op"} | ${"concat_strings"} | ${["a", "b", "c"]} | ${0} | ${"abc"} - ${"peer"} | ${"timeout"} | ${[200, []]} | ${1} | ${"timeout accepts exactly two arguments: timeout duration in ms and a message string"} + ${"peer"} | ${"timeout"} | ${[200, []]} | ${1} | ${"Argument 1 expected to be of type string, Got array"} ${"peer"} | ${"timeout"} | ${[200, "test"]} | ${0} | ${"test"} - ${"peer"} | ${"timeout"} | ${[]} | ${1} | ${"timeout accepts exactly two arguments: timeout duration in ms and a message string"} - ${"peer"} | ${"timeout"} | ${[200, "test", 1]} | ${1} | ${"timeout accepts exactly two arguments: timeout duration in ms and a message string"} + ${"peer"} | ${"timeout"} | ${[]} | ${1} | ${"Expected 2 argument(s). Got 0"} + ${"peer"} | ${"timeout"} | ${[200, "test", 1]} | ${1} | ${"Expected 2 argument(s). Got 3"} ${"debug"} | ${"stringify"} | ${[]} | ${0} | ${'""'} ${"debug"} | ${"stringify"} | ${[{ a: 10, b: 20 }]} | ${0} | ${a10b20} ${"debug"} | ${"stringify"} | ${[1, 2, 3, 4]} | ${0} | ${oneTwoThreeFour} @@ -149,6 +152,7 @@ describe("Tests for default handler", () => { timestamp: 595951200, ttl: 595961200, signature: new Uint8Array([]), + tetraplets: [], }, }; @@ -185,6 +189,7 @@ describe("Tests for default handler", () => { timestamp: 595951200, ttl: 595961200, signature: new Uint8Array([]), + tetraplets: [], }, }; @@ -243,14 +248,15 @@ const makeTestTetraplet = ( initPeerId: string, serviceId: string, fnName: string, -): CallParams<"data"> => { +): ParticleContext => { return { particleId: "", timestamp: 0, ttl: 0, initPeerId: initPeerId, - tetraplets: { - data: [ + signature: new Uint8Array([]), + tetraplets: [ + [ { peer_pk: initPeerId, function_name: fnName, @@ -258,7 +264,7 @@ const makeTestTetraplet = ( json_path: "", }, ], - }, + ], }; }; @@ -273,7 +279,7 @@ describe("Sig service tests", () => { ); expect(res.success).toBe(true); - expect(res.signature).toStrictEqual(testDataSig); + expect(res.signature).toStrictEqual([testDataSig]); }); it("sig.verify should return true for the correct signature", async () => { @@ -305,7 +311,7 @@ describe("Sig service tests", () => { expect(signature.success).toBe(true); assert(signature.success); - const res = await sig.verify(signature.signature, testData); + const res = await sig.verify(signature.signature[0], testData); expect(res).toBe(true); }); @@ -334,7 +340,7 @@ describe("Sig service tests", () => { ); expect(res.success).toBe(false); - expect(res.error).toBe("Security guard validation failed"); + expect(res.error).toStrictEqual(["Security guard validation failed"]); }); it("sig.sign with defaultSigGuard should not allow particles initiated from other peers", async () => { @@ -352,7 +358,7 @@ describe("Sig service tests", () => { ); expect(res.success).toBe(false); - expect(res.error).toBe("Security guard validation failed"); + expect(res.error).toStrictEqual(["Security guard validation failed"]); }); it("changing securityGuard should work", async () => { diff --git a/packages/core/js-client/src/services/__test__/jsonBuiltin.spec.ts b/packages/core/js-client/src/services/__test__/jsonBuiltin.spec.ts index 430ee609..e75aea06 100644 --- a/packages/core/js-client/src/services/__test__/jsonBuiltin.spec.ts +++ b/packages/core/js-client/src/services/__test__/jsonBuiltin.spec.ts @@ -17,7 +17,6 @@ import { it, describe, expect, beforeEach, afterEach } from "vitest"; import { FluencePeer } from "../../jsPeer/FluencePeer.js"; -import { doNothing } from "../../jsServiceHost/serviceUtils.js"; import { mkTestPeer } from "../../util/testUtils.js"; let peer: FluencePeer; @@ -72,7 +71,12 @@ describe("Sig service test suite", () => { }); const p = await peer.internals.createNewParticle(script); - peer.internals.initiateParticle(p, doNothing); + + peer.internals.initiateParticle( + p, + () => {}, + () => {}, + ); const [ nestedFirst, diff --git a/packages/core/js-client/src/services/__test__/sigService.spec.ts b/packages/core/js-client/src/services/__test__/sigService.spec.ts index c46ffffa..ed0ade8b 100644 --- a/packages/core/js-client/src/services/__test__/sigService.spec.ts +++ b/packages/core/js-client/src/services/__test__/sigService.spec.ts @@ -17,7 +17,6 @@ import * as path from "path"; import * as url from "url"; -import { ServiceDef, ServiceImpl } from "@fluencelabs/interfaces"; import { it, describe, expect, beforeAll } from "vitest"; import { registerService } from "../../compilerSupport/registerService.js"; @@ -29,8 +28,6 @@ import { Sig } from "../Sig.js"; const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); let aqua: Record; -let sigDef: ServiceDef; -let dataProviderDef: ServiceDef; describe("Sig service test suite", () => { beforeAll(async () => { @@ -39,11 +36,9 @@ describe("Sig service test suite", () => { "../../../aqua_test/sigService.aqua", ); - const { services, functions } = await compileAqua(pathToAquaFiles); + const { functions } = await compileAqua(pathToAquaFiles); aqua = functions; - sigDef = services["Sig"]; - dataProviderDef = services["DataProvider"]; }); it("Use custom sig service, success path", async () => { @@ -52,18 +47,16 @@ describe("Sig service test suite", () => { const customSig = new Sig(customKeyPair); const data = [1, 2, 3, 4, 5]; + const anyService: Record = customSig; + registerService({ peer, - def: sigDef, serviceId: "CustomSig", - // TODO: fix this after changing registerService signature - // eslint-disable-next-line @typescript-eslint/consistent-type-assertions - service: customSig as unknown as ServiceImpl, + service: anyService, }); registerService({ peer, - def: dataProviderDef, serviceId: "data", service: { provide_data: () => { @@ -81,7 +74,7 @@ describe("Sig service test suite", () => { const isSigCorrect = await customSig.verify( // TODO: Use compiled ts wrappers // eslint-disable-next-line @typescript-eslint/consistent-type-assertions - (result as { signature: number[] }).signature, + (result as { signature: [number[]] }).signature[0], data, ); @@ -95,18 +88,16 @@ describe("Sig service test suite", () => { const customSig = new Sig(customKeyPair); const data = [1, 2, 3, 4, 5]; + const anyService: Record = customSig; + registerService({ peer, - def: sigDef, serviceId: "CustomSig", - // TODO: fix this after changing registerService signature - // eslint-disable-next-line @typescript-eslint/consistent-type-assertions - service: customSig as unknown as ServiceImpl, + service: anyService, }); registerService({ peer, - def: dataProviderDef, serviceId: "data", service: { provide_data: () => { @@ -130,7 +121,6 @@ describe("Sig service test suite", () => { registerService({ peer: peer, - def: dataProviderDef, serviceId: "data", service: { provide_data: () => { @@ -146,6 +136,11 @@ describe("Sig service test suite", () => { }); expect(callAsSigRes).toHaveProperty("success", false); + + expect(callAsPeerIdRes).toHaveProperty("error", [ + "Security guard validation failed", + ]); + expect(callAsPeerIdRes).toHaveProperty("success", false); sig.securityGuard = () => { @@ -167,7 +162,8 @@ describe("Sig service test suite", () => { const isValid = await sig.verify( // TODO: Use compiled ts wrappers // eslint-disable-next-line @typescript-eslint/consistent-type-assertions - (callAsSigResAfterGuardChange as { signature: number[] }).signature, + (callAsSigResAfterGuardChange as { signature: [number[]] }) + .signature[0], data, ); diff --git a/packages/core/js-client/src/services/_aqua/node-utils.ts b/packages/core/js-client/src/services/_aqua/node-utils.ts index c9debf71..a31f966a 100644 --- a/packages/core/js-client/src/services/_aqua/node-utils.ts +++ b/packages/core/js-client/src/services/_aqua/node-utils.ts @@ -14,90 +14,21 @@ * limitations under the License. */ -/** - * This compiled aqua file was modified to make it work in monorepo - */ -import { CallParams, ServiceImpl } from "@fluencelabs/interfaces"; - import { registerService } from "../../compilerSupport/registerService.js"; import { FluencePeer } from "../../jsPeer/FluencePeer.js"; import { NodeUtils } from "../NodeUtils.js"; -// Services - -export interface NodeUtilsDef { - read_file: ( - path: string, - callParams: CallParams<"path">, - ) => - | { content: string | null; error: string | null; success: boolean } - | Promise<{ - content: string | null; - error: string | null; - success: boolean; - }>; -} - export function registerNodeUtils( peer: FluencePeer, serviceId: string, service: NodeUtils, ) { + const nodeUtilsService: Record = service; + registerService({ peer, - // TODO: fix this after changing registerService signature - // eslint-disable-next-line @typescript-eslint/consistent-type-assertions - service: service as unknown as ServiceImpl, + service: nodeUtilsService, serviceId, - def: { - defaultServiceId: "node_utils", - functions: { - tag: "labeledProduct", - fields: { - read_file: { - tag: "arrow", - domain: { - tag: "labeledProduct", - fields: { - path: { - tag: "scalar", - name: "string", - }, - }, - }, - codomain: { - tag: "unlabeledProduct", - items: [ - { - tag: "struct", - name: "ReadFileResult", - fields: { - content: { - tag: "option", - type: { - tag: "scalar", - name: "string", - }, - }, - error: { - tag: "option", - type: { - tag: "scalar", - name: "string", - }, - }, - success: { - tag: "scalar", - name: "bool", - }, - }, - }, - ], - }, - }, - }, - }, - }, }); } diff --git a/packages/core/js-client/src/services/_aqua/services.ts b/packages/core/js-client/src/services/_aqua/services.ts index 896ad0a8..3a87d23e 100644 --- a/packages/core/js-client/src/services/_aqua/services.ts +++ b/packages/core/js-client/src/services/_aqua/services.ts @@ -14,33 +14,29 @@ * limitations under the License. */ -/** - * This compiled aqua file was modified to make it work in monorepo - */ -import { CallParams, ServiceImpl } from "@fluencelabs/interfaces"; - import { registerService } from "../../compilerSupport/registerService.js"; import { FluencePeer } from "../../jsPeer/FluencePeer.js"; +import { ParticleContext } from "../../jsServiceHost/interfaces.js"; import { Sig } from "../Sig.js"; // Services export interface SigDef { - get_peer_id: (callParams: CallParams) => string | Promise; + get_peer_id: (callParams: ParticleContext) => string | Promise; sign: ( data: number[], - callParams: CallParams<"data">, + callParams: ParticleContext, ) => - | { error: string | null; signature: number[] | null; success: boolean } + | { error: [string?]; signature: [number[]?]; success: boolean } | Promise<{ - error: string | null; - signature: number[] | null; + error: [string?]; + signature: [number[]?]; success: boolean; }>; verify: ( signature: number[], data: number[], - callParams: CallParams<"signature" | "data">, + callParams: ParticleContext, ) => boolean | Promise; } @@ -49,113 +45,12 @@ export function registerSig( serviceId: string, service: Sig, ) { + const sigService: Record = service; + registerService({ peer, - // TODO: fix this after changing registerService signature - // eslint-disable-next-line @typescript-eslint/consistent-type-assertions - service: service as unknown as ServiceImpl, + service: sigService, serviceId, - def: { - defaultServiceId: "sig", - functions: { - tag: "labeledProduct", - fields: { - get_peer_id: { - tag: "arrow", - domain: { - tag: "nil", - }, - codomain: { - tag: "unlabeledProduct", - items: [ - { - tag: "scalar", - name: "string", - }, - ], - }, - }, - sign: { - tag: "arrow", - domain: { - tag: "labeledProduct", - fields: { - data: { - tag: "array", - type: { - tag: "scalar", - name: "u8", - }, - }, - }, - }, - codomain: { - tag: "unlabeledProduct", - items: [ - { - tag: "struct", - name: "SignResult", - fields: { - error: { - tag: "option", - type: { - tag: "scalar", - name: "string", - }, - }, - signature: { - tag: "option", - type: { - tag: "array", - type: { - tag: "scalar", - name: "u8", - }, - }, - }, - success: { - tag: "scalar", - name: "bool", - }, - }, - }, - ], - }, - }, - verify: { - tag: "arrow", - domain: { - tag: "labeledProduct", - fields: { - signature: { - tag: "array", - type: { - tag: "scalar", - name: "u8", - }, - }, - data: { - tag: "array", - type: { - tag: "scalar", - name: "u8", - }, - }, - }, - }, - codomain: { - tag: "unlabeledProduct", - items: [ - { - tag: "scalar", - name: "bool", - }, - ], - }, - }, - }, - }, - }, }); } diff --git a/packages/core/js-client/src/services/_aqua/single-module-srv.ts b/packages/core/js-client/src/services/_aqua/single-module-srv.ts index b82665ba..71b34ef5 100644 --- a/packages/core/js-client/src/services/_aqua/single-module-srv.ts +++ b/packages/core/js-client/src/services/_aqua/single-module-srv.ts @@ -14,149 +14,21 @@ * limitations under the License. */ -/** - * This compiled aqua file was modified to make it work in monorepo - */ -import { CallParams, ServiceImpl } from "@fluencelabs/interfaces"; - import { registerService } from "../../compilerSupport/registerService.js"; import { FluencePeer } from "../../jsPeer/FluencePeer.js"; import { Srv } from "../SingleModuleSrv.js"; -// Services - -export interface SrvDef { - create: ( - wasm_b64_content: string, - callParams: CallParams<"wasm_b64_content">, - ) => - | { error: string | null; service_id: string | null; success: boolean } - | Promise<{ - error: string | null; - service_id: string | null; - success: boolean; - }>; - list: (callParams: CallParams) => string[] | Promise; - remove: ( - service_id: string, - callParams: CallParams<"service_id">, - ) => - | { error: string | null; success: boolean } - | Promise<{ error: string | null; success: boolean }>; -} - export function registerSrv( peer: FluencePeer, serviceId: string, service: Srv, ) { + const singleModuleService: Record = service; + registerService({ peer, serviceId, - // TODO: fix this after changing registerService signature - // eslint-disable-next-line @typescript-eslint/consistent-type-assertions - service: service as unknown as ServiceImpl, - def: { - defaultServiceId: "single_module_srv", - functions: { - tag: "labeledProduct", - fields: { - create: { - tag: "arrow", - domain: { - tag: "labeledProduct", - fields: { - wasm_b64_content: { - tag: "scalar", - name: "string", - }, - }, - }, - codomain: { - tag: "unlabeledProduct", - items: [ - { - tag: "struct", - name: "ServiceCreationResult", - fields: { - error: { - tag: "option", - type: { - tag: "scalar", - name: "string", - }, - }, - service_id: { - tag: "option", - type: { - tag: "scalar", - name: "string", - }, - }, - success: { - tag: "scalar", - name: "bool", - }, - }, - }, - ], - }, - }, - list: { - tag: "arrow", - domain: { - tag: "nil", - }, - codomain: { - tag: "unlabeledProduct", - items: [ - { - tag: "array", - type: { - tag: "scalar", - name: "string", - }, - }, - ], - }, - }, - remove: { - tag: "arrow", - domain: { - tag: "labeledProduct", - fields: { - service_id: { - tag: "scalar", - name: "string", - }, - }, - }, - codomain: { - tag: "unlabeledProduct", - items: [ - { - tag: "struct", - name: "RemoveResult", - fields: { - error: { - tag: "option", - type: { - tag: "scalar", - name: "string", - }, - }, - success: { - tag: "scalar", - name: "bool", - }, - }, - }, - ], - }, - }, - }, - }, - }, + service: singleModuleService, }); } diff --git a/packages/core/js-client/src/services/_aqua/tracing.ts b/packages/core/js-client/src/services/_aqua/tracing.ts index b87c8835..96ce332e 100644 --- a/packages/core/js-client/src/services/_aqua/tracing.ts +++ b/packages/core/js-client/src/services/_aqua/tracing.ts @@ -17,10 +17,10 @@ /** * This compiled aqua file was modified to make it work in monorepo */ -import { CallParams, ServiceImpl } from "@fluencelabs/interfaces"; import { registerService } from "../../compilerSupport/registerService.js"; import { FluencePeer } from "../../jsPeer/FluencePeer.js"; +import { ParticleContext } from "../../jsServiceHost/interfaces.js"; import { Tracing } from "../Tracing.js"; // Services @@ -29,7 +29,7 @@ export interface TracingDef { tracingEvent: ( arrowName: string, event: string, - callParams: CallParams<"arrowName" | "event">, + callParams: ParticleContext, ) => void | Promise; } @@ -38,40 +38,11 @@ export function registerTracing( serviceId: string, service: Tracing, ) { + const tracingService: Record = service; + registerService({ peer, serviceId, - // TODO: fix this after changing registerService signature - // eslint-disable-next-line @typescript-eslint/consistent-type-assertions - service: service as unknown as ServiceImpl, - def: { - defaultServiceId: "tracingSrv", - functions: { - tag: "labeledProduct", - fields: { - tracingEvent: { - tag: "arrow", - domain: { - tag: "labeledProduct", - fields: { - arrowName: { - tag: "scalar", - name: "string", - }, - event: { - tag: "scalar", - name: "string", - }, - }, - }, - codomain: { - tag: "nil", - }, - }, - }, - }, - }, + service: tracingService, }); } - -// Functions diff --git a/packages/core/js-client/src/services/builtins.ts b/packages/core/js-client/src/services/builtins.ts index 7ee3f68d..3dc6a781 100644 --- a/packages/core/js-client/src/services/builtins.ts +++ b/packages/core/js-client/src/services/builtins.ts @@ -14,74 +14,144 @@ * limitations under the License. */ -import assert from "assert"; import { Buffer } from "buffer"; import { JSONValue } from "@fluencelabs/interfaces"; import bs58 from "bs58"; import { sha256 } from "multiformats/hashes/sha2"; +import { z } from "zod"; import { + CallServiceData, CallServiceResult, CallServiceResultType, GenericCallServiceHandler, ResultCodes, } from "../jsServiceHost/interfaces.js"; -import { getErrorMessage, isString, jsonify } from "../util/utils.js"; +import { getErrorMessage, jsonify } from "../util/utils.js"; -const success = ( - // TODO: Remove unknown after adding validation to builtin inputs - // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents - result: CallServiceResultType | unknown, -): CallServiceResult => { +const success = (result: CallServiceResultType): CallServiceResult => { return { - // TODO: Remove type assertion after adding validation to builtin inputs - // eslint-disable-next-line @typescript-eslint/consistent-type-assertions - result: result as CallServiceResultType, + result, retCode: ResultCodes.success, }; }; -const error = ( - // TODO: Remove unknown after adding validation to builtin inputs - // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents - error: CallServiceResultType | unknown, -): CallServiceResult => { +const error = (error: CallServiceResultType): CallServiceResult => { return { - // TODO: Remove type assertion after adding validation to builtin inputs - // eslint-disable-next-line @typescript-eslint/consistent-type-assertions - result: error as CallServiceResultType, + result: error, retCode: ResultCodes.error, }; }; +const chunk = (arr: T[]): T[][] => { + const res: T[][] = []; + const chunkSize = 2; + + for (let i = 0; i < arr.length; i += chunkSize) { + const chunk = arr.slice(i, i + chunkSize); + res.push(chunk); + } + + return res; +}; + const errorNotImpl = (methodName: string) => { return error( `The JS implementation of Peer does not support "${methodName}"`, ); }; -const makeJsonImpl = (args: [Record, ...JSONValue[]]) => { - const [obj, ...kvs] = args; +const parseWithSchema = ( + schema: T, + req: CallServiceData, +): [z.infer, null] | [null, string] => { + const result = schema.safeParse(req.args, { + errorMap: (issue, ctx) => { + if ( + issue.code === z.ZodIssueCode.invalid_type && + issue.path.length === 1 && + typeof issue.path[0] === "number" + ) { + const [arg] = issue.path; + return { + message: `Argument ${arg} expected to be of type ${issue.expected}, Got ${issue.received}`, + }; + } - const toMerge: Record = {}; + if (issue.code === z.ZodIssueCode.too_big) { + return { + message: `Expected ${ + issue.maximum + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + } argument(s). Got ${ctx.data.length}`, + }; + } - for (let i = 0; i < kvs.length / 2; i++) { - const k = kvs[i * 2]; + if (issue.code === z.ZodIssueCode.too_small) { + return { + message: `Expected ${ + issue.minimum + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + } argument(s). Got ${ctx.data.length}`, + }; + } - if (!isString(k)) { - return error(`Argument ${i * 2 + 1} is expected to be string`); - } + if (issue.code === z.ZodIssueCode.invalid_union) { + return { + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + message: `Expected argument(s). Got ${ctx.data.length}`, + }; + } - const v = kvs[i * 2 + 1]; - toMerge[k] = v; + return { message: ctx.defaultError }; + }, + }); + + if (result.success) { + return [result.data, null]; + } else { + return [null, result.error.errors[0].message]; } - - const res = { ...obj, ...toMerge }; - return success(res); }; -// TODO: These assert made for silencing more stricter ts rules. Will be fixed in DXJ-493 +const literalSchema = z.union([z.string(), z.number(), z.boolean(), z.null()]); +type Literal = z.infer; +type Json = Literal | { [key: string]: Json } | Json[]; + +const jsonSchema: z.ZodType = z.lazy(() => { + return z.union([literalSchema, z.array(jsonSchema), z.record(jsonSchema)]); +}); + +const jsonImplSchema = z + .tuple([z.record(jsonSchema)]) + .rest(z.tuple([z.string(), jsonSchema])); + +const makeJsonImpl = (args: z.infer) => { + const [obj, ...kvs] = args; + return success({ ...obj, ...Object.fromEntries(kvs) }); +}; + +type withSchema = ( + arg: T, +) => ( + arg1: (value: z.infer) => CallServiceResult | Promise, +) => (req: CallServiceData) => CallServiceResult | Promise; + +const withSchema: withSchema = (schema: T) => { + return (bound) => { + return (req) => { + const [value, message] = parseWithSchema(schema, req); + + if (message != null) { + return error(message); + } + + return bound(value); + }; + }; +}; + export const builtInServices: Record< string, Record @@ -116,29 +186,16 @@ export const builtInServices: Record< return errorNotImpl("peer.get_contact"); }, - timeout: (req) => { - if (req.args.length !== 2) { - return error( - "timeout accepts exactly two arguments: timeout duration in ms and a message string", - ); - } - - const durationMs = req.args[0]; - const message = req.args[1]; - - if (typeof durationMs !== "number" || typeof message !== "string") { - return error( - "timeout accepts exactly two arguments: timeout duration in ms and a message string", - ); - } - - return new Promise((resolve) => { - setTimeout(() => { - const res = success(message); - resolve(res); - }, durationMs); - }); - }, + timeout: withSchema(z.tuple([z.number(), z.string()]))( + ([durationMs, msg]) => { + return new Promise((resolve) => { + setTimeout(() => { + const res = success(msg); + resolve(res); + }, durationMs); + }); + }, + ), }, kad: { @@ -246,120 +303,48 @@ export const builtInServices: Record< return success(req.args); }, - array_length: (req) => { - if (req.args.length !== 1) { - return error( - "array_length accepts exactly one argument, found: " + - req.args.length, - ); - } else { - assert(Array.isArray(req.args[0])); - return success(req.args[0].length); - } - }, + array_length: withSchema(z.tuple([z.array(z.unknown())]))(([arr]) => { + return success(arr.length); + }), - identity: (req) => { - if (req.args.length > 1) { - return error( - `identity accepts up to 1 arguments, received ${req.args.length} arguments`, - ); - } else { - return success(req.args.length === 0 ? {} : req.args[0]); - } - }, + identity: withSchema(z.array(jsonSchema).max(1))((args) => { + return success(args.length === 0 ? {} : args[0]); + }), - concat: (req) => { - const incorrectArgIndices = req.args // - .map((x, i): [boolean, number] => { - return [Array.isArray(x), i]; - }) - .filter(([isArray]) => { - return !isArray; - }) - .map(([, index]) => { - return index; - }); - - if (incorrectArgIndices.length > 0) { - const str = incorrectArgIndices.join(", "); - return error( - `All arguments of 'concat' must be arrays: arguments ${str} are not`, - ); - } else { - // TODO: remove after adding validation - // eslint-disable-next-line @typescript-eslint/consistent-type-assertions - return success([].concat(...(req.args as never[][]))); - } - }, - - string_to_b58: (req) => { - if (req.args.length !== 1) { - return error("string_to_b58 accepts only one string argument"); - } else { - const [input] = req.args; - // TODO: remove after adding validation - assert(typeof input === "string"); - return success(bs58.encode(new TextEncoder().encode(input))); - } - }, - - string_from_b58: (req) => { - if (req.args.length !== 1) { - return error("string_from_b58 accepts only one string argument"); - } else { - const [input] = req.args; - // TODO: remove after adding validation - assert(typeof input === "string"); - return success(new TextDecoder().decode(bs58.decode(input))); - } - }, - - bytes_to_b58: (req) => { - if (req.args.length !== 1 || !Array.isArray(req.args[0])) { - return error( - "bytes_to_b58 accepts only single argument: array of numbers", - ); - } else { - // TODO: remove after adding validation - // eslint-disable-next-line @typescript-eslint/consistent-type-assertions - const argumentArray = req.args[0] as number[]; - return success(bs58.encode(new Uint8Array(argumentArray))); - } - }, - - bytes_from_b58: (req) => { - if (req.args.length !== 1) { - return error("bytes_from_b58 accepts only one string argument"); - } else { - const [input] = req.args; - // TODO: remove after adding validation - assert(typeof input === "string"); - return success(Array.from(bs58.decode(input))); - } - }, - - sha256_string: async (req) => { - if (req.args.length !== 1) { - return error( - `sha256_string accepts 1 argument, found: ${req.args.length}`, - ); - } else { - const [input] = req.args; - // TODO: remove after adding validation - assert(typeof input === "string"); - const inBuffer = Buffer.from(input); - const multihash = await sha256.digest(inBuffer); - - return success(bs58.encode(multihash.bytes)); - } - }, - - concat_strings: (req) => { - // TODO: remove after adding validation + concat: withSchema(z.array(z.array(z.unknown())))((args) => { + // Schema is used with unknown type to prevent useless runtime check // eslint-disable-next-line @typescript-eslint/consistent-type-assertions - const res = "".concat(...(req.args as string[])); - return success(res); - }, + const arr = args as never[][]; + + return success(arr.flat()); + }), + + string_to_b58: withSchema(z.tuple([z.string()]))(([input]) => { + return success(bs58.encode(new TextEncoder().encode(input))); + }), + + string_from_b58: withSchema(z.tuple([z.string()]))(([input]) => { + return success(new TextDecoder().decode(bs58.decode(input))); + }), + + bytes_to_b58: withSchema(z.tuple([z.array(z.number())]))(([input]) => { + return success(bs58.encode(new Uint8Array(input))); + }), + + bytes_from_b58: withSchema(z.tuple([z.string()]))(([input]) => { + return success(Array.from(bs58.decode(input))); + }), + + sha256_string: withSchema(z.tuple([z.string()]))(async ([input]) => { + const inBuffer = Buffer.from(input); + const multihash = await sha256.digest(inBuffer); + + return success(bs58.encode(multihash.bytes)); + }), + + concat_strings: withSchema(z.array(z.string()))((args) => { + return success(args.join("")); + }), }, debug: { @@ -379,365 +364,187 @@ export const builtInServices: Record< }, math: { - add: (req) => { - let err; - - if ((err = checkForArgumentsCount(req, 2)) != null) { - return err; - } - - const [x, y] = req.args; - // TODO: Remove after adding validation - assert(typeof x === "number" && typeof y === "number"); + add: withSchema(z.tuple([z.number(), z.number()]))(([x, y]) => { return success(x + y); - }, + }), - sub: (req) => { - let err; - - if ((err = checkForArgumentsCount(req, 2)) != null) { - return err; - } - - const [x, y] = req.args; - // TODO: Remove after adding validation - assert(typeof x === "number" && typeof y === "number"); + sub: withSchema(z.tuple([z.number(), z.number()]))(([x, y]) => { return success(x - y); - }, + }), - mul: (req) => { - let err; - - if ((err = checkForArgumentsCount(req, 2)) != null) { - return err; - } - - const [x, y] = req.args; - // TODO: Remove after adding validation - assert(typeof x === "number" && typeof y === "number"); + mul: withSchema(z.tuple([z.number(), z.number()]))(([x, y]) => { return success(x * y); - }, + }), - fmul: (req) => { - let err; - - if ((err = checkForArgumentsCount(req, 2)) != null) { - return err; - } - - const [x, y] = req.args; - // TODO: Remove after adding validation - assert(typeof x === "number" && typeof y === "number"); + fmul: withSchema(z.tuple([z.number(), z.number()]))(([x, y]) => { return success(Math.floor(x * y)); - }, + }), - div: (req) => { - let err; - - if ((err = checkForArgumentsCount(req, 2)) != null) { - return err; - } - - const [x, y] = req.args; - // TODO: Remove after adding validation - assert(typeof x === "number" && typeof y === "number"); + div: withSchema(z.tuple([z.number(), z.number()]))(([x, y]) => { return success(Math.floor(x / y)); - }, + }), - rem: (req) => { - let err; - - if ((err = checkForArgumentsCount(req, 2)) != null) { - return err; - } - - const [x, y] = req.args; - // TODO: Remove after adding validation - assert(typeof x === "number" && typeof y === "number"); + rem: withSchema(z.tuple([z.number(), z.number()]))(([x, y]) => { return success(x % y); - }, + }), - pow: (req) => { - let err; - - if ((err = checkForArgumentsCount(req, 2)) != null) { - return err; - } - - const [x, y] = req.args; - // TODO: Remove after adding validation - assert(typeof x === "number" && typeof y === "number"); + pow: withSchema(z.tuple([z.number(), z.number()]))(([x, y]) => { return success(Math.pow(x, y)); - }, + }), - log: (req) => { - let err; - - if ((err = checkForArgumentsCount(req, 2)) != null) { - return err; - } - - const [x, y] = req.args; - // TODO: Remove after adding validation - assert(typeof x === "number" && typeof y === "number"); + log: withSchema(z.tuple([z.number(), z.number()]))(([x, y]) => { return success(Math.log(y) / Math.log(x)); - }, + }), }, cmp: { - gt: (req) => { - let err; - - if ((err = checkForArgumentsCount(req, 2)) != null) { - return err; - } - - const [x, y] = req.args; - // TODO: Remove after adding validation - assert(typeof x === "number" && typeof y === "number"); + gt: withSchema(z.tuple([z.number(), z.number()]))(([x, y]) => { return success(x > y); - }, + }), - gte: (req) => { - let err; - - if ((err = checkForArgumentsCount(req, 2)) != null) { - return err; - } - - const [x, y] = req.args; - // TODO: Remove after adding validation - assert(typeof x === "number" && typeof y === "number"); + gte: withSchema(z.tuple([z.number(), z.number()]))(([x, y]) => { return success(x >= y); - }, + }), - lt: (req) => { - let err; - - if ((err = checkForArgumentsCount(req, 2)) != null) { - return err; - } - - const [x, y] = req.args; - // TODO: Remove after adding validation - assert(typeof x === "number" && typeof y === "number"); + lt: withSchema(z.tuple([z.number(), z.number()]))(([x, y]) => { return success(x < y); - }, + }), - lte: (req) => { - let err; - - if ((err = checkForArgumentsCount(req, 2)) != null) { - return err; - } - - const [x, y] = req.args; - // TODO: Remove after adding validation - assert(typeof x === "number" && typeof y === "number"); + lte: withSchema(z.tuple([z.number(), z.number()]))(([x, y]) => { return success(x <= y); - }, + }), - cmp: (req) => { - let err; - - if ((err = checkForArgumentsCount(req, 2)) != null) { - return err; - } - - const [x, y] = req.args; - // TODO: Remove after adding validation - assert(typeof x === "number" && typeof y === "number"); + cmp: withSchema(z.tuple([z.number(), z.number()]))(([x, y]) => { return success(x === y ? 0 : x > y ? 1 : -1); - }, + }), }, array: { - sum: (req) => { - let err; - - if ((err = checkForArgumentsCount(req, 1)) != null) { - return err; - } - - // TODO: Remove after adding validation - // eslint-disable-next-line @typescript-eslint/consistent-type-assertions - const [xs] = req.args as [number[]]; + sum: withSchema(z.tuple([z.array(z.number())]))(([xs]) => { return success( xs.reduce((agg, cur) => { return agg + cur; }, 0), ); - }, + }), - dedup: (req) => { - let err; - - if ((err = checkForArgumentsCount(req, 1)) != null) { - return err; - } - - const [xs] = req.args; - // TODO: Remove after adding validation - assert(Array.isArray(xs)); + dedup: withSchema(z.tuple([z.array(z.any())]))(([xs]) => { const set = new Set(xs); return success(Array.from(set)); - }, + }), - intersect: (req) => { - let err; + intersect: withSchema(z.tuple([z.array(z.any()), z.array(z.any())]))( + ([xs, ys]) => { + const intersection = xs.filter((x) => { + return ys.includes(x); + }); - if ((err = checkForArgumentsCount(req, 2)) != null) { - return err; - } + return success(intersection); + }, + ), - const [xs, ys] = req.args; - // TODO: Remove after adding validation - assert(Array.isArray(xs) && Array.isArray(ys)); + diff: withSchema(z.tuple([z.array(z.any()), z.array(z.any())]))( + ([xs, ys]) => { + const diff = xs.filter((x) => { + return !ys.includes(x); + }); - const intersection = xs.filter((x) => { - return ys.includes(x); - }); + return success(diff); + }, + ), - return success(intersection); - }, + sdiff: withSchema(z.tuple([z.array(z.any()), z.array(z.any())]))( + ([xs, ys]) => { + const sdiff = [ + xs.filter((y) => { + return !ys.includes(y); + }), + ys.filter((x) => { + return !xs.includes(x); + }), + ].flat(); - diff: (req) => { - let err; - - if ((err = checkForArgumentsCount(req, 2)) != null) { - return err; - } - - const [xs, ys] = req.args; - // TODO: Remove after adding validation - assert(Array.isArray(xs) && Array.isArray(ys)); - - const diff = xs.filter((x) => { - return !ys.includes(x); - }); - - return success(diff); - }, - - sdiff: (req) => { - let err; - - if ((err = checkForArgumentsCount(req, 2)) != null) { - return err; - } - - const [xs, ys] = req.args; - // TODO: Remove after adding validation - assert(Array.isArray(xs) && Array.isArray(ys)); - - const sdiff = [ - // force new line - ...xs.filter((y) => { - return !ys.includes(y); - }), - ...ys.filter((x) => { - return !xs.includes(x); - }), - ]; - - return success(sdiff); - }, + return success(sdiff); + }, + ), }, json: { - obj: (req) => { - let err; + obj: withSchema( + z + .array(z.unknown()) + .refine( + (arr) => { + return arr.length % 2 === 0; + }, + (arr) => { + return { + message: "Expected even number of argument(s). Got " + arr.length, + }; + }, + ) + .transform((args) => { + return chunk(args); + }) + .pipe(z.array(z.tuple([z.string(), jsonSchema]))), + )((args) => { + return makeJsonImpl([{}, ...args]); + }), - if ((err = checkForArgumentsCountEven(req)) != null) { - return err; - } + put: withSchema( + z + .tuple([z.record(jsonSchema), z.string(), jsonSchema]) + .transform( + ([obj, name, value]): [{ [key: string]: Json }, [string, Json]] => { + return [obj, [name, value]]; + }, + ), + )(makeJsonImpl), - // TODO: remove after adding validation - // eslint-disable-next-line @typescript-eslint/consistent-type-assertions - return makeJsonImpl([{}, ...req.args] as [ - Record, - ...JSONValue[], - ]); - }, + puts: withSchema( + z + .array(z.unknown()) + .refine( + (arr) => { + return arr.length >= 3; + }, + (value) => { + return { + message: `Expected more than 3 argument(s). Got ${value.length}`, + }; + }, + ) + .refine( + (arr) => { + return arr.length % 2 === 1; + }, + { + message: "Argument count must be odd.", + }, + ) + .transform((args) => { + return [args[0], ...chunk(args.slice(1))]; + }) + .pipe(jsonImplSchema), + )(makeJsonImpl), - put: (req) => { - let err; - - if ((err = checkForArgumentsCount(req, 3)) != null) { - return err; - } - - if ((err = checkForArgumentType(req, 0, "object")) != null) { - return err; - } - - return makeJsonImpl( - // TODO: remove after adding validation - // eslint-disable-next-line @typescript-eslint/consistent-type-assertions - req.args as [Record, ...JSONValue[]], - ); - }, - - puts: (req) => { - let err; - - if ((err = checkForArgumentsCountOdd(req)) != null) { - return err; - } - - if ((err = checkForArgumentsCountMoreThan(req, 3)) != null) { - return err; - } - - if ((err = checkForArgumentType(req, 0, "object")) != null) { - return err; - } - - return makeJsonImpl( - // TODO: remove after adding validation - // eslint-disable-next-line @typescript-eslint/consistent-type-assertions - req.args as [Record, ...JSONValue[]], - ); - }, - - stringify: (req) => { - let err; - - if ((err = checkForArgumentsCount(req, 1)) != null) { - return err; - } - - if ((err = checkForArgumentType(req, 0, "object")) != null) { - return err; - } - - const [json] = req.args; - const res = JSON.stringify(json); - return success(res); - }, - - parse: (req) => { - let err; - - if ((err = checkForArgumentsCount(req, 1)) != null) { - return err; - } - - if ((err = checkForArgumentType(req, 0, "string")) != null) { - return err; - } - - const [raw] = req.args; + stringify: withSchema(z.tuple([z.record(z.string(), jsonSchema)]))( + ([json]) => { + const res = JSON.stringify(json); + return success(res); + }, + ), + parse: withSchema(z.tuple([z.string()]))(([raw]) => { try { - // TODO: Remove after adding validation - assert(typeof raw === "string"); - const json = JSON.parse(raw); + // Parsing any argument here yields JSONValue + // eslint-disable-next-line @typescript-eslint/consistent-type-assertions + const json = JSON.parse(raw) as JSONValue; return success(json); } catch (err: unknown) { return error(getErrorMessage(err)); } - }, + }), }, "run-console": { @@ -749,59 +556,3 @@ export const builtInServices: Record< }, }, } as const; - -const checkForArgumentsCount = ( - req: { args: Array }, - count: number, -) => { - if (req.args.length !== count) { - return error(`Expected ${count} argument(s). Got ${req.args.length}`); - } - - return null; -}; - -const checkForArgumentsCountMoreThan = ( - req: { args: Array }, - count: number, -) => { - if (req.args.length < count) { - return error( - `Expected more than ${count} argument(s). Got ${req.args.length}`, - ); - } - - return null; -}; - -const checkForArgumentsCountEven = (req: { args: Array }) => { - if (req.args.length % 2 === 1) { - return error(`Expected even number of argument(s). Got ${req.args.length}`); - } - - return null; -}; - -const checkForArgumentsCountOdd = (req: { args: Array }) => { - if (req.args.length % 2 === 0) { - return error(`Expected odd number of argument(s). Got ${req.args.length}`); - } - - return null; -}; - -const checkForArgumentType = ( - req: { args: Array }, - index: number, - type: string, -) => { - const actual = typeof req.args[index]; - - if (actual !== type) { - return error( - `Argument ${index} expected to be of type ${type}, Got ${actual}`, - ); - } - - return null; -}; diff --git a/packages/core/js-client/src/services/securityGuard.ts b/packages/core/js-client/src/services/securityGuard.ts index 02462cde..2ebac50b 100644 --- a/packages/core/js-client/src/services/securityGuard.ts +++ b/packages/core/js-client/src/services/securityGuard.ts @@ -15,25 +15,25 @@ */ import { SecurityTetraplet } from "@fluencelabs/avm"; -import { CallParams, PeerIdB58 } from "@fluencelabs/interfaces"; +import { PeerIdB58 } from "@fluencelabs/interfaces"; -type ArgName = string | null; +import { ParticleContext } from "../jsServiceHost/interfaces.js"; + +// Helpers for validating service function /** * A predicate of call params for sig service's sign method which determines whether signing operation is allowed or not */ -export type SecurityGuard = ( - params: CallParams, -) => boolean; +export type SecurityGuard = (params: ParticleContext) => boolean; /** * Only allow calls when tetraplet for 'data' argument satisfies the predicate */ -export const allowTetraplet = ( +export const allowTetraplet = ( pred: (tetraplet: SecurityTetraplet) => boolean, -): SecurityGuard => { +): SecurityGuard => { return (params) => { - const t = params.tetraplets["data"][0]; + const t = params.tetraplets[0][0]; return pred(t); }; }; @@ -41,10 +41,10 @@ export const allowTetraplet = ( /** * Only allow data which comes from the specified serviceId and fnName */ -export const allowServiceFn = ( +export const allowServiceFn = ( serviceId: string, fnName: string, -): SecurityGuard => { +): SecurityGuard => { return allowTetraplet((t) => { return t.service_id === serviceId && t.function_name === fnName; }); @@ -53,9 +53,7 @@ export const allowServiceFn = ( /** * Only allow data originated from the specified json_path */ -export const allowExactJsonPath = ( - jsonPath: string, -): SecurityGuard => { +export const allowExactJsonPath = (jsonPath: string): SecurityGuard => { return allowTetraplet((t) => { return t.json_path === jsonPath; }); @@ -64,9 +62,9 @@ export const allowExactJsonPath = ( /** * Only allow signing when particle is initiated at the specified peer */ -export const allowOnlyParticleOriginatedAt = ( +export const allowOnlyParticleOriginatedAt = ( peerId: PeerIdB58, -): SecurityGuard => { +): SecurityGuard => { return (params) => { return params.initPeerId === peerId; }; @@ -76,9 +74,7 @@ export const allowOnlyParticleOriginatedAt = ( * Only allow signing when all of the predicates are satisfied. * Useful for predicates reuse */ -export const and = ( - ...predicates: SecurityGuard[] -): SecurityGuard => { +export const and = (...predicates: SecurityGuard[]): SecurityGuard => { return (params) => { return predicates.every((x) => { return x(params); @@ -90,9 +86,7 @@ export const and = ( * Only allow signing when any of the predicates are satisfied. * Useful for predicates reuse */ -export const or = ( - ...predicates: SecurityGuard[] -): SecurityGuard => { +export const or = (...predicates: SecurityGuard[]): SecurityGuard => { return (params) => { return predicates.some((x) => { return x(params); diff --git a/packages/core/js-client/src/util/testUtils.ts b/packages/core/js-client/src/util/testUtils.ts index 80564f5b..9c0e0820 100644 --- a/packages/core/js-client/src/util/testUtils.ts +++ b/packages/core/js-client/src/util/testUtils.ts @@ -20,23 +20,24 @@ import { Path, Aqua } from "@fluencelabs/aqua-api/aqua-api.js"; import { FunctionCallDef, JSONArray, - PassedArgs, + JSONValue, ServiceDef, } from "@fluencelabs/interfaces"; +import { fetchResource } from "@fluencelabs/js-client-isomorphic/fetcher"; +import { getWorker } from "@fluencelabs/js-client-isomorphic/worker-resolver"; import { Subject, Subscribable } from "rxjs"; import { ClientPeer, makeClientPeerConfig } from "../clientPeer/ClientPeer.js"; import { ClientConfig, RelayOptions } from "../clientPeer/types.js"; import { callAquaFunction } from "../compilerSupport/callFunction.js"; +import { ServiceImpl } from "../compilerSupport/types.js"; import { IConnection } from "../connection/interfaces.js"; import { DEFAULT_CONFIG, FluencePeer } from "../jsPeer/FluencePeer.js"; import { CallServiceResultType } from "../jsServiceHost/interfaces.js"; import { JsServiceHost } from "../jsServiceHost/JsServiceHost.js"; import { WrapFnIntoServiceCall } from "../jsServiceHost/serviceUtils.js"; import { KeyPair } from "../keypair/index.js"; -import { WasmLoaderFromNpm } from "../marine/deps-loader/node.js"; import { MarineBackgroundRunner } from "../marine/worker/index.js"; -import { WorkerLoader } from "../marine/worker-script/workerLoader.js"; import { Particle } from "../particle/Particle.js"; export const registerHandlersHelper = ( @@ -73,6 +74,16 @@ interface FunctionInfo { funcDef: FunctionCallDef; } +/** + * Type for callback passed as aqua function argument + */ +export type ArgCallbackFunction = ServiceImpl[string]; + +/** + * Arguments passed to Aqua function + */ +export type PassedArgs = { [key: string]: JSONValue | ArgCallbackFunction }; + export const compileAqua = async (aquaFile: string): Promise => { await fs.access(aquaFile); @@ -92,7 +103,6 @@ export const compileAqua = async (aquaFile: string): Promise => { .map(([name, fnInfo]: [string, FunctionInfo]) => { const callFn = (peer: FluencePeer, args: PassedArgs) => { return callAquaFunction({ - def: fnInfo.funcDef, script: fnInfo.script, config: {}, peer: peer, @@ -136,25 +146,60 @@ class NoopConnection implements IConnection { export class TestPeer extends FluencePeer { constructor(keyPair: KeyPair, connection: IConnection) { - const workerLoader = new WorkerLoader(); + const jsHost = new JsServiceHost(); - const controlModuleLoader = new WasmLoaderFromNpm( - "@fluencelabs/marine-js", - "marine-js.wasm", - ); - - const avmModuleLoader = new WasmLoaderFromNpm( - "@fluencelabs/avm", - "avm.wasm", - ); + let marineJsWasm: ArrayBuffer; + let avmWasm: ArrayBuffer; const marine = new MarineBackgroundRunner( - workerLoader, - controlModuleLoader, - avmModuleLoader, + { + async getValue() { + // TODO: load worker with avm and marine, test that it works + return getWorker("@fluencelabs/marine-worker", "/"); + }, + start() { + return Promise.resolve(undefined); + }, + stop() { + return Promise.resolve(undefined); + }, + }, + { + getValue() { + return marineJsWasm; + }, + async start(): Promise { + marineJsWasm = await fetchResource( + "@fluencelabs/marine-js", + "/dist/marine-js.wasm", + "/", + ).then((res) => { + return res.arrayBuffer(); + }); + }, + stop(): Promise { + return Promise.resolve(undefined); + }, + }, + { + getValue() { + return avmWasm; + }, + async start(): Promise { + avmWasm = await fetchResource( + "@fluencelabs/avm", + "/dist/avm.wasm", + "/", + ).then((res) => { + return res.arrayBuffer(); + }); + }, + stop(): Promise { + return Promise.resolve(undefined); + }, + }, ); - const jsHost = new JsServiceHost(); super(DEFAULT_CONFIG, keyPair, marine, jsHost, connection); } } @@ -181,26 +226,63 @@ export const withClient = async ( config: ClientConfig, action: (client: ClientPeer) => Promise, ) => { - const workerLoader = new WorkerLoader(); - - const controlModuleLoader = new WasmLoaderFromNpm( - "@fluencelabs/marine-js", - "marine-js.wasm", - ); - - const avmModuleLoader = new WasmLoaderFromNpm("@fluencelabs/avm", "avm.wasm"); - - const marine = new MarineBackgroundRunner( - workerLoader, - controlModuleLoader, - avmModuleLoader, - ); - const { keyPair, peerConfig, relayConfig } = await makeClientPeerConfig( relay, config, ); + let marineJsWasm: ArrayBuffer; + let avmWasm: ArrayBuffer; + + const marine = new MarineBackgroundRunner( + { + async getValue() { + // TODO: load worker with avm and marine, test that it works + return getWorker("@fluencelabs/marine-worker", "/"); + }, + start() { + return Promise.resolve(undefined); + }, + stop() { + return Promise.resolve(undefined); + }, + }, + { + getValue() { + return marineJsWasm; + }, + async start(): Promise { + marineJsWasm = await fetchResource( + "@fluencelabs/marine-js", + "/dist/marine-js.wasm", + "/", + ).then((res) => { + return res.arrayBuffer(); + }); + }, + stop(): Promise { + return Promise.resolve(undefined); + }, + }, + { + getValue() { + return avmWasm; + }, + async start(): Promise { + avmWasm = await fetchResource( + "@fluencelabs/avm", + "/dist/avm.wasm", + "/", + ).then((res) => { + return res.arrayBuffer(); + }); + }, + stop(): Promise { + return Promise.resolve(undefined); + }, + }, + ); + const client = new ClientPeer(peerConfig, relayConfig, keyPair, marine); try { diff --git a/packages/core/marine-worker/package.json b/packages/core/marine-worker/package.json index acb6e462..d5e3f5c2 100644 --- a/packages/core/marine-worker/package.json +++ b/packages/core/marine-worker/package.json @@ -24,7 +24,7 @@ "vitest": "0.34.6" }, "dependencies": { - "@fluencelabs/marine-js": "0.7.2", + "@fluencelabs/marine-js": "0.8.0", "observable-fns": "0.6.1", "@fluencelabs/threads": "^2.0.0" } diff --git a/packages/core/marine-worker/src/index.ts b/packages/core/marine-worker/src/index.ts index cf3c60fb..44569f8e 100644 --- a/packages/core/marine-worker/src/index.ts +++ b/packages/core/marine-worker/src/index.ts @@ -28,7 +28,6 @@ import type { } from "@fluencelabs/marine-js/dist/types"; import { defaultCallParameters, - JSONValue, logLevelToEnv, } from "@fluencelabs/marine-js/dist/types"; import { expose } from "@fluencelabs/threads/worker"; @@ -140,9 +139,7 @@ const toExpose = { throw new Error(`service with id=${serviceId} not found`); } - // TODO: Make MarineService return JSONValue type - // eslint-disable-next-line @typescript-eslint/consistent-type-assertions - return srv.call(functionName, args, callParams) as JSONValue; + return srv.call(functionName, args, callParams); }, onLogMessage() { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7cc04fd4..3aaa5f05 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -60,21 +60,27 @@ importers: specifier: 1.5.1 version: 1.5.1 devDependencies: + '@fluencelabs/aqua-api': + specifier: 0.12.4-main-cee4448-2196-1 + version: 0.12.4-main-cee4448-2196-1 '@fluencelabs/aqua-lib': specifier: 0.6.0 version: 0.6.0 - '@fluencelabs/cli': - specifier: 0.7.2 - version: 0.7.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2)(@nomicfoundation/hardhat-chai-matchers@1.0.6)(@nomicfoundation/hardhat-network-helpers@1.0.8)(@nomiclabs/hardhat-ethers@2.2.3)(@nomiclabs/hardhat-etherscan@3.1.7)(@typechain/ethers-v5@10.2.1)(@typechain/hardhat@6.1.6)(@types/chai@4.3.5)(@types/mocha@9.1.1)(@types/node@20.7.0)(chai@4.3.10)(hardhat-gas-reporter@1.0.9)(hardhat@2.15.0)(solidity-coverage@0.7.22)(ts-node@10.9.1)(typechain@8.2.0)(typescript@5.1.6) + '@fluencelabs/aqua-to-js': + specifier: workspace:* + version: link:../../core/aqua-to-js '@fluencelabs/js-client': - specifier: workspace:^ + specifier: workspace:* version: link:../../core/js-client '@fluencelabs/registry': - specifier: 0.8.2 - version: 0.8.2 + specifier: 0.8.8-1 + version: 0.8.8-1 '@fluencelabs/trust-graph': specifier: 3.1.2 version: 3.1.2 + ts-node: + specifier: 10.9.1 + version: 10.9.1(@types/node@20.7.0)(typescript@5.1.6) packages/@tests/smoke/node: dependencies: @@ -87,9 +93,9 @@ importers: packages/@tests/smoke/web: dependencies: - '@fluencelabs/js-client': + '@fluencelabs/js-client-isomorphic': specifier: workspace:* - version: link:../../../core/js-client + version: link:../../../core/js-client-isomorphic '@test/test-utils': specifier: workspace:* version: link:../../test-utils @@ -161,14 +167,17 @@ importers: version: 5.0.5 devDependencies: '@fluencelabs/aqua-api': - specifier: 0.12.0 - version: 0.12.0 + specifier: 0.12.4-main-cee4448-2196-1 + version: 0.12.4-main-cee4448-2196-1 '@fluencelabs/aqua-lib': specifier: 0.7.3 version: 0.7.3 '@fluencelabs/interfaces': specifier: workspace:* version: link:../interfaces + '@fluencelabs/js-client': + specifier: workspace:^ + version: link:../js-client '@fluencelabs/registry': specifier: 0.8.7 version: 0.8.7 @@ -181,6 +190,9 @@ importers: vitest: specifier: 0.34.6 version: 0.34.6 + zod: + specifier: 3.22.4 + version: 3.22.4 packages/core/interfaces: devDependencies: @@ -235,12 +247,6 @@ importers: '@multiformats/multiaddr': specifier: 11.3.0 version: 11.3.0 - assert: - specifier: 2.1.0 - version: 2.1.0 - async: - specifier: 3.2.4 - version: 3.2.4 bs58: specifier: 5.0.0 version: 5.0.0 @@ -249,7 +255,7 @@ importers: version: 6.0.3 debug: specifier: 4.3.4 - version: 4.3.4(supports-color@8.1.1) + version: 4.3.4 it-length-prefixed: specifier: 8.0.4 version: 8.0.4 @@ -271,9 +277,6 @@ importers: rxjs: specifier: 7.5.5 version: 7.5.5 - ts-pattern: - specifier: 3.3.3 - version: 3.3.3 uint8arrays: specifier: 4.0.3 version: 4.0.3 @@ -287,9 +290,6 @@ importers: '@fluencelabs/aqua-api': specifier: 0.9.3 version: 0.9.3 - '@fluencelabs/marine-js': - specifier: 0.7.2 - version: 0.7.2 '@rollup/plugin-inject': specifier: 5.0.3 version: 5.0.3 @@ -327,8 +327,8 @@ importers: specifier: 0.54.0 version: 0.54.0 '@fluencelabs/marine-js': - specifier: 0.7.2 - version: 0.7.2 + specifier: 0.8.0 + version: 0.8.0 '@fluencelabs/marine-worker': specifier: 0.4.2 version: link:../marine-worker @@ -339,8 +339,8 @@ importers: packages/core/marine-worker: dependencies: '@fluencelabs/marine-js': - specifier: 0.7.2 - version: 0.7.2 + specifier: 0.8.0 + version: 0.8.0 '@fluencelabs/threads': specifier: ^2.0.0 version: 2.0.0 @@ -384,6 +384,7 @@ packages: xml2js: 0.6.0 transitivePeerDependencies: - supports-color + dev: false /@achingbrain/ssdp@4.0.4: resolution: {integrity: sha512-fY/ShiYJmhLdr45Vn2+f88xTqZjBSH3X3F+EJu/89cjB1JIkMCVtD5CQaaS38YknIL8cEcNhjMZM4cdE3ckSSQ==} @@ -393,6 +394,7 @@ packages: freeport-promise: 2.0.0 merge-options: 3.0.4 xml2js: 0.5.0 + dev: false /@adobe/css-tools@4.2.0: resolution: {integrity: sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqPA==} @@ -455,7 +457,7 @@ packages: '@babel/traverse': 7.22.10 '@babel/types': 7.22.10 convert-source-map: 1.9.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -478,7 +480,7 @@ packages: '@babel/traverse': 7.22.5 '@babel/types': 7.22.5 convert-source-map: 1.9.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -516,7 +518,7 @@ packages: dependencies: '@babel/types': 7.22.5 '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.18 + '@jridgewell/trace-mapping': 0.3.19 jsesc: 2.5.2 dev: false @@ -645,7 +647,7 @@ packages: '@babel/core': 7.22.10 '@babel/helper-compilation-targets': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 lodash.debounce: 4.0.8 resolve: 1.22.4 semver: 6.3.1 @@ -661,7 +663,7 @@ packages: '@babel/core': 7.22.5 '@babel/helper-compilation-targets': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 lodash.debounce: 4.0.8 resolve: 1.22.4 semver: 6.3.1 @@ -2985,7 +2987,7 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 '@babel/parser': 7.22.10 '@babel/types': 7.22.10 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -3003,7 +3005,7 @@ packages: '@babel/helper-split-export-declaration': 7.22.5 '@babel/parser': 7.22.5 '@babel/types': 7.22.5 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -3031,10 +3033,6 @@ packages: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: false - /@chainsafe/as-sha256@0.3.1: - resolution: {integrity: sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg==} - dev: true - /@chainsafe/is-ip@2.0.2: resolution: {integrity: sha512-ndGqEMG1W5WkGagaqOZHpPU172AGdxr+LD15sv3WIUvT5oCFUrG1Y0CW/v2Egwj4JXEvSibaIIIqImsm98y1nA==} @@ -3060,6 +3058,7 @@ packages: uint8arrays: 4.0.6 transitivePeerDependencies: - supports-color + dev: false /@chainsafe/libp2p-yamux@5.0.0: resolution: {integrity: sha512-aWTnBPR2hJt0A2y579sMtZVB6IqgSSHlZ6Eg+WDxNZQ0zcexafuruZQDj+z3FUTNPz+E8IeuyCi7tjI4IEehjw==} @@ -3080,33 +3079,7 @@ packages: resolution: {integrity: sha512-I3Z+6SWUoaljh3TBzCnCxjlUyN8tA+NAk5L6m9IxvCf1BENQTePzPMis97CoN/iMW1St3WN+AWCCRp+TTBRiDg==} dependencies: '@chainsafe/is-ip': 2.0.2 - - /@chainsafe/persistent-merkle-tree@0.4.2: - resolution: {integrity: sha512-lLO3ihKPngXLTus/L7WHKaw9PnNJWizlOF1H9NNzHP6Xvh82vzg9F2bzkXhYIFshMZ2gTCEz8tq6STe7r5NDfQ==} - dependencies: - '@chainsafe/as-sha256': 0.3.1 - dev: true - - /@chainsafe/persistent-merkle-tree@0.5.0: - resolution: {integrity: sha512-l0V1b5clxA3iwQLXP40zYjyZYospQLZXzBVIhhr9kDg/1qHZfzzHw0jj4VPBijfYCArZDlPkRi1wZaV2POKeuw==} - dependencies: - '@chainsafe/as-sha256': 0.3.1 - dev: true - - /@chainsafe/ssz@0.10.2: - resolution: {integrity: sha512-/NL3Lh8K+0q7A3LsiFq09YXS9fPE+ead2rr7vM2QK8PLzrNsw3uqrif9bpRX5UxgeRjM+vYi+boCM3+GM4ovXg==} - dependencies: - '@chainsafe/as-sha256': 0.3.1 - '@chainsafe/persistent-merkle-tree': 0.5.0 - dev: true - - /@chainsafe/ssz@0.9.4: - resolution: {integrity: sha512-77Qtg2N1ayqs4Bg/wvnWfg5Bta7iy7IRh8XqXh7oNMeP2HBbBwx8m6yTpA8p0EHItWPEBkgZd5S5/LSlp3GXuQ==} - dependencies: - '@chainsafe/as-sha256': 0.3.1 - '@chainsafe/persistent-merkle-tree': 0.4.2 - case: 1.6.3 - dev: true + dev: false /@cspotcode/source-map-support@0.8.1: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} @@ -3689,7 +3662,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 espree: 9.6.1 globals: 13.20.0 ignore: 5.2.4 @@ -3704,355 +3677,8 @@ packages: resolution: {integrity: sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - /@ethereumjs/common@2.5.0: - resolution: {integrity: sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==} - dependencies: - crc-32: 1.2.2 - ethereumjs-util: 7.1.5 - dev: true - - /@ethereumjs/common@2.6.5: - resolution: {integrity: sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==} - dependencies: - crc-32: 1.2.2 - ethereumjs-util: 7.1.5 - dev: true - - /@ethereumjs/tx@3.3.2: - resolution: {integrity: sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==} - dependencies: - '@ethereumjs/common': 2.6.5 - ethereumjs-util: 7.1.5 - dev: true - - /@ethereumjs/tx@3.5.2: - resolution: {integrity: sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==} - dependencies: - '@ethereumjs/common': 2.6.5 - ethereumjs-util: 7.1.5 - dev: true - - /@ethersproject/abi@5.7.0: - resolution: {integrity: sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==} - dependencies: - '@ethersproject/address': 5.7.0 - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/constants': 5.7.0 - '@ethersproject/hash': 5.7.0 - '@ethersproject/keccak256': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/properties': 5.7.0 - '@ethersproject/strings': 5.7.0 - dev: true - - /@ethersproject/abstract-provider@5.7.0: - resolution: {integrity: sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==} - dependencies: - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/networks': 5.7.1 - '@ethersproject/properties': 5.7.0 - '@ethersproject/transactions': 5.7.0 - '@ethersproject/web': 5.7.1 - dev: true - - /@ethersproject/abstract-signer@5.7.0: - resolution: {integrity: sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==} - dependencies: - '@ethersproject/abstract-provider': 5.7.0 - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/properties': 5.7.0 - dev: true - - /@ethersproject/address@5.7.0: - resolution: {integrity: sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==} - dependencies: - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/keccak256': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/rlp': 5.7.0 - dev: true - - /@ethersproject/base64@5.7.0: - resolution: {integrity: sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==} - dependencies: - '@ethersproject/bytes': 5.7.0 - dev: true - - /@ethersproject/basex@5.7.0: - resolution: {integrity: sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==} - dependencies: - '@ethersproject/bytes': 5.7.0 - '@ethersproject/properties': 5.7.0 - dev: true - - /@ethersproject/bignumber@5.7.0: - resolution: {integrity: sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==} - dependencies: - '@ethersproject/bytes': 5.7.0 - '@ethersproject/logger': 5.7.0 - bn.js: 5.2.1 - dev: true - - /@ethersproject/bytes@5.7.0: - resolution: {integrity: sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==} - dependencies: - '@ethersproject/logger': 5.7.0 - dev: true - - /@ethersproject/constants@5.7.0: - resolution: {integrity: sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==} - dependencies: - '@ethersproject/bignumber': 5.7.0 - dev: true - - /@ethersproject/contracts@5.7.0: - resolution: {integrity: sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==} - dependencies: - '@ethersproject/abi': 5.7.0 - '@ethersproject/abstract-provider': 5.7.0 - '@ethersproject/abstract-signer': 5.7.0 - '@ethersproject/address': 5.7.0 - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/constants': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/properties': 5.7.0 - '@ethersproject/transactions': 5.7.0 - dev: true - - /@ethersproject/hash@5.7.0: - resolution: {integrity: sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==} - dependencies: - '@ethersproject/abstract-signer': 5.7.0 - '@ethersproject/address': 5.7.0 - '@ethersproject/base64': 5.7.0 - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/keccak256': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/properties': 5.7.0 - '@ethersproject/strings': 5.7.0 - dev: true - - /@ethersproject/hdnode@5.7.0: - resolution: {integrity: sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==} - dependencies: - '@ethersproject/abstract-signer': 5.7.0 - '@ethersproject/basex': 5.7.0 - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/pbkdf2': 5.7.0 - '@ethersproject/properties': 5.7.0 - '@ethersproject/sha2': 5.7.0 - '@ethersproject/signing-key': 5.7.0 - '@ethersproject/strings': 5.7.0 - '@ethersproject/transactions': 5.7.0 - '@ethersproject/wordlists': 5.7.0 - dev: true - - /@ethersproject/json-wallets@5.7.0: - resolution: {integrity: sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==} - dependencies: - '@ethersproject/abstract-signer': 5.7.0 - '@ethersproject/address': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/hdnode': 5.7.0 - '@ethersproject/keccak256': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/pbkdf2': 5.7.0 - '@ethersproject/properties': 5.7.0 - '@ethersproject/random': 5.7.0 - '@ethersproject/strings': 5.7.0 - '@ethersproject/transactions': 5.7.0 - aes-js: 3.0.0 - scrypt-js: 3.0.1 - dev: true - - /@ethersproject/keccak256@5.7.0: - resolution: {integrity: sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==} - dependencies: - '@ethersproject/bytes': 5.7.0 - js-sha3: 0.8.0 - dev: true - - /@ethersproject/logger@5.7.0: - resolution: {integrity: sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==} - dev: true - - /@ethersproject/networks@5.7.1: - resolution: {integrity: sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==} - dependencies: - '@ethersproject/logger': 5.7.0 - dev: true - - /@ethersproject/pbkdf2@5.7.0: - resolution: {integrity: sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==} - dependencies: - '@ethersproject/bytes': 5.7.0 - '@ethersproject/sha2': 5.7.0 - dev: true - - /@ethersproject/properties@5.7.0: - resolution: {integrity: sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==} - dependencies: - '@ethersproject/logger': 5.7.0 - dev: true - - /@ethersproject/providers@5.7.2: - resolution: {integrity: sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==} - dependencies: - '@ethersproject/abstract-provider': 5.7.0 - '@ethersproject/abstract-signer': 5.7.0 - '@ethersproject/address': 5.7.0 - '@ethersproject/base64': 5.7.0 - '@ethersproject/basex': 5.7.0 - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/constants': 5.7.0 - '@ethersproject/hash': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/networks': 5.7.1 - '@ethersproject/properties': 5.7.0 - '@ethersproject/random': 5.7.0 - '@ethersproject/rlp': 5.7.0 - '@ethersproject/sha2': 5.7.0 - '@ethersproject/strings': 5.7.0 - '@ethersproject/transactions': 5.7.0 - '@ethersproject/web': 5.7.1 - bech32: 1.1.4 - ws: 7.4.6 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: true - - /@ethersproject/random@5.7.0: - resolution: {integrity: sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==} - dependencies: - '@ethersproject/bytes': 5.7.0 - '@ethersproject/logger': 5.7.0 - dev: true - - /@ethersproject/rlp@5.7.0: - resolution: {integrity: sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==} - dependencies: - '@ethersproject/bytes': 5.7.0 - '@ethersproject/logger': 5.7.0 - dev: true - - /@ethersproject/sha2@5.7.0: - resolution: {integrity: sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==} - dependencies: - '@ethersproject/bytes': 5.7.0 - '@ethersproject/logger': 5.7.0 - hash.js: 1.1.7 - dev: true - - /@ethersproject/signing-key@5.7.0: - resolution: {integrity: sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==} - dependencies: - '@ethersproject/bytes': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/properties': 5.7.0 - bn.js: 5.2.1 - elliptic: 6.5.4 - hash.js: 1.1.7 - dev: true - - /@ethersproject/solidity@5.7.0: - resolution: {integrity: sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==} - dependencies: - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/keccak256': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/sha2': 5.7.0 - '@ethersproject/strings': 5.7.0 - dev: true - - /@ethersproject/strings@5.7.0: - resolution: {integrity: sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==} - dependencies: - '@ethersproject/bytes': 5.7.0 - '@ethersproject/constants': 5.7.0 - '@ethersproject/logger': 5.7.0 - dev: true - - /@ethersproject/transactions@5.7.0: - resolution: {integrity: sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==} - dependencies: - '@ethersproject/address': 5.7.0 - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/constants': 5.7.0 - '@ethersproject/keccak256': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/properties': 5.7.0 - '@ethersproject/rlp': 5.7.0 - '@ethersproject/signing-key': 5.7.0 - dev: true - - /@ethersproject/units@5.7.0: - resolution: {integrity: sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==} - dependencies: - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/constants': 5.7.0 - '@ethersproject/logger': 5.7.0 - dev: true - - /@ethersproject/wallet@5.7.0: - resolution: {integrity: sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==} - dependencies: - '@ethersproject/abstract-provider': 5.7.0 - '@ethersproject/abstract-signer': 5.7.0 - '@ethersproject/address': 5.7.0 - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/hash': 5.7.0 - '@ethersproject/hdnode': 5.7.0 - '@ethersproject/json-wallets': 5.7.0 - '@ethersproject/keccak256': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/properties': 5.7.0 - '@ethersproject/random': 5.7.0 - '@ethersproject/signing-key': 5.7.0 - '@ethersproject/transactions': 5.7.0 - '@ethersproject/wordlists': 5.7.0 - dev: true - - /@ethersproject/web@5.7.1: - resolution: {integrity: sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==} - dependencies: - '@ethersproject/base64': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/properties': 5.7.0 - '@ethersproject/strings': 5.7.0 - dev: true - - /@ethersproject/wordlists@5.7.0: - resolution: {integrity: sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==} - dependencies: - '@ethersproject/bytes': 5.7.0 - '@ethersproject/hash': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/properties': 5.7.0 - '@ethersproject/strings': 5.7.0 - dev: true - - /@fluencelabs/air-beautify-wasm@0.3.2: - resolution: {integrity: sha512-etKIoqZgbCSVcWTdHSZB1n7vFUra1rrqH1sqSb2sJv8jevxWsEx0Igf99AUcqPWIHuSF/geT60BA3FdwCu6lVA==} - dev: true - - /@fluencelabs/aqua-api@0.12.0: - resolution: {integrity: sha512-8D1SfmBDm0mmg3tuYrlpU8L6+bRlCSVRkhlU4CXMJFSMiVMrSF2WV+KFTP4GcOB3N4pNOONEwHMQo4xNWwzGhg==} + /@fluencelabs/aqua-api@0.12.4-main-cee4448-2196-1: + resolution: {registry: https://registry.npmjs.org/, tarball: https://npm.fluence.dev/@fluencelabs/aqua-api/-/aqua-api-0.12.4-main-cee4448-2196-1.tgz} dev: true /@fluencelabs/aqua-api@0.9.3: @@ -4078,160 +3704,13 @@ packages: /@fluencelabs/avm@0.54.0: resolution: {integrity: sha512-5GgROVly/vC7gasltr6/3TIY8vfV6b+SPfWUAGWnyXdbWt4jJANLO2YtXdaUsdNk9PiwOep7TMjLnypljdyMjQ==} - /@fluencelabs/cli@0.7.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2)(@nomicfoundation/hardhat-chai-matchers@1.0.6)(@nomicfoundation/hardhat-network-helpers@1.0.8)(@nomiclabs/hardhat-ethers@2.2.3)(@nomiclabs/hardhat-etherscan@3.1.7)(@typechain/ethers-v5@10.2.1)(@typechain/hardhat@6.1.6)(@types/chai@4.3.5)(@types/mocha@9.1.1)(@types/node@20.7.0)(chai@4.3.10)(hardhat-gas-reporter@1.0.9)(hardhat@2.15.0)(solidity-coverage@0.7.22)(ts-node@10.9.1)(typechain@8.2.0)(typescript@5.1.6): - resolution: {integrity: sha512-cXhlXBxNh1i66Twb3Nhpm1mXHpa+8zzoQ5wKJ6zJjOtrw6GWB6WrfIAb+aaLGWJMBnWHcZEkXs5vx9vwvVplcQ==} - engines: {node: '=18'} - hasBin: true - dependencies: - '@fluencelabs/air-beautify-wasm': 0.3.2 - '@fluencelabs/aqua-api': 0.12.0 - '@fluencelabs/deal-aurora': 0.1.8(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2)(@nomicfoundation/hardhat-chai-matchers@1.0.6)(@nomicfoundation/hardhat-network-helpers@1.0.8)(@nomiclabs/hardhat-ethers@2.2.3)(@nomiclabs/hardhat-etherscan@3.1.7)(@typechain/ethers-v5@10.2.1)(@typechain/hardhat@6.1.6)(@types/chai@4.3.5)(@types/mocha@9.1.1)(@types/node@20.7.0)(chai@4.3.10)(ethers@5.7.2)(hardhat-gas-reporter@1.0.9)(hardhat@2.15.0)(solidity-coverage@0.7.22)(ts-node@10.9.1)(typechain@8.2.0)(typescript@5.1.6) - '@fluencelabs/fluence-network-environment': 1.1.2 - '@fluencelabs/js-client': 0.0.10 - '@iarna/toml': 2.2.5 - '@mswjs/interceptors': 0.23.0 - '@multiformats/multiaddr': 12.1.7 - '@oclif/color': 1.0.11 - '@oclif/core': 2.13.0(@types/node@20.7.0)(typescript@5.1.6) - '@oclif/plugin-autocomplete': 2.3.6(@types/node@20.7.0)(typescript@5.1.6) - '@oclif/plugin-help': 5.2.18(@types/node@20.7.0)(typescript@5.1.6) - '@oclif/plugin-not-found': 2.4.0(@types/node@20.7.0)(typescript@5.1.6) - '@oclif/plugin-update': 3.2.0(@types/node@20.7.0)(typescript@5.1.6) - '@walletconnect/universal-provider': 2.8.1(lokijs@1.5.12) - ajv: 8.12.0 - camelcase: 7.0.1 - chokidar: 3.5.3 - countly-sdk-nodejs: 22.6.0 - decompress: 4.2.1 - dotenv: 16.3.1 - ethers: 5.7.2 - filenamify: 6.0.0 - get-random-values: 2.1.0 - inquirer: 9.2.10 - ipfs-http-client: 60.0.1 - lodash-es: 4.17.21 - lokijs: 1.5.12 - node_modules-path: 2.0.7 - npm: 9.8.1 - platform: 1.3.6 - replace-homedir: 2.0.0 - semver: 7.5.4 - yaml: 2.3.1 - yaml-diff-patch: 2.0.0 - transitivePeerDependencies: - - '@ethersproject/abi' - - '@ethersproject/providers' - - '@nomicfoundation/hardhat-chai-matchers' - - '@nomicfoundation/hardhat-network-helpers' - - '@nomiclabs/hardhat-ethers' - - '@nomiclabs/hardhat-etherscan' - - '@react-native-async-storage/async-storage' - - '@swc/core' - - '@swc/wasm' - - '@typechain/ethers-v5' - - '@typechain/hardhat' - - '@types/chai' - - '@types/mocha' - - '@types/node' - - bufferutil - - chai - - debug - - encoding - - hardhat - - hardhat-gas-reporter - - solidity-coverage - - supports-color - - ts-node - - typechain - - typescript - - utf-8-validate - dev: true - - /@fluencelabs/deal-aurora@0.1.8(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2)(@nomicfoundation/hardhat-chai-matchers@1.0.6)(@nomicfoundation/hardhat-network-helpers@1.0.8)(@nomiclabs/hardhat-ethers@2.2.3)(@nomiclabs/hardhat-etherscan@3.1.7)(@typechain/ethers-v5@10.2.1)(@typechain/hardhat@6.1.6)(@types/chai@4.3.5)(@types/mocha@9.1.1)(@types/node@20.7.0)(chai@4.3.10)(ethers@5.7.2)(hardhat-gas-reporter@1.0.9)(hardhat@2.15.0)(solidity-coverage@0.7.22)(ts-node@10.9.1)(typechain@8.2.0)(typescript@5.1.6): - resolution: {integrity: sha512-h2L3F67AsFxJy+mBAAUy8gMUGf85sgT3kuLhqEstdbQ20ASjxrSsXmyVZeVQLUx4nR1ygbGll9Y+FmRFgpNwMQ==} - dependencies: - '@nomicfoundation/hardhat-toolbox': 1.0.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2)(@nomicfoundation/hardhat-chai-matchers@1.0.6)(@nomicfoundation/hardhat-network-helpers@1.0.8)(@nomiclabs/hardhat-ethers@2.2.3)(@nomiclabs/hardhat-etherscan@3.1.7)(@typechain/ethers-v5@10.2.1)(@typechain/hardhat@6.1.6)(@types/chai@4.3.5)(@types/mocha@9.1.1)(@types/node@20.7.0)(chai@4.3.10)(ethers@5.7.2)(hardhat-gas-reporter@1.0.9)(hardhat@2.15.0)(solidity-coverage@0.7.22)(ts-node@10.9.1)(typechain@8.2.0)(typescript@5.1.6) - '@openzeppelin/contracts': 4.9.2 - '@openzeppelin/contracts-upgradeable': 4.9.2 - dotenv: 16.3.1 - transitivePeerDependencies: - - '@ethersproject/abi' - - '@ethersproject/providers' - - '@nomicfoundation/hardhat-chai-matchers' - - '@nomicfoundation/hardhat-network-helpers' - - '@nomiclabs/hardhat-ethers' - - '@nomiclabs/hardhat-etherscan' - - '@typechain/ethers-v5' - - '@typechain/hardhat' - - '@types/chai' - - '@types/mocha' - - '@types/node' - - chai - - ethers - - hardhat - - hardhat-gas-reporter - - solidity-coverage - - ts-node - - typechain - - typescript - dev: true - - /@fluencelabs/fluence-network-environment@1.1.2: - resolution: {integrity: sha512-1Bp2gBy3oMEILMynFpOIFK/q2Pj792xpnb3AJs5QcTQAaHz9V2nrEI8OOPwBAFTmjmLBirXBqQQX63O+ePH7yg==} - dev: true - - /@fluencelabs/interfaces@0.8.1: - resolution: {integrity: sha512-RVdaBX8HbMLbgLPMwYvPaQ+XPvelNOGgOpsQGoy4Chw2njuj142LwxeQsa4LBWqE24Z7ebUqcjhlCrfrf9Efqg==} - engines: {node: '>=10', pnpm: '>=3'} - dev: true - - /@fluencelabs/js-client@0.0.10: - resolution: {integrity: sha512-/CxACoD/S70MNNPig+EdO0MlLdvaNEHMX7BL1sud1MoJL/auYUQZTxen5EVj/QRHs8dr17CT8LWLh4ylYvnofA==} - engines: {node: '>=10', pnpm: '>=3'} - dependencies: - '@chainsafe/libp2p-noise': 13.0.0 - '@fluencelabs/interfaces': 0.8.1 - '@libp2p/crypto': 2.0.3 - '@libp2p/interface': 0.1.2 - '@libp2p/mplex': 9.0.4 - '@libp2p/peer-id': 3.0.2 - '@libp2p/peer-id-factory': 3.0.3 - '@libp2p/websockets': 7.0.4 - '@multiformats/multiaddr': 11.3.0 - async: 3.2.4 - bs58: 5.0.0 - buffer: 6.0.3 - debug: 4.3.4(supports-color@8.1.1) - it-length-prefixed: 8.0.4 - it-map: 2.0.0 - it-pipe: 2.0.5 - js-base64: 3.7.5 - libp2p: 0.46.6 - multiformats: 11.0.1 - rxjs: 7.5.5 - threads: 1.7.0 - ts-pattern: 3.3.3 - uint8arrays: 4.0.3 - uuid: 8.3.2 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - - /@fluencelabs/marine-js@0.7.2: - resolution: {integrity: sha512-etjbXDgzyZkK82UZvtuIU3bfy5f52siDUy1m+T5Y5r70k82xYdZZ8vgWVgB6ivi2f3aDyQjgNTfzWQjKFpAReQ==} + /@fluencelabs/marine-js@0.8.0: + resolution: {integrity: sha512-exxp0T0Dk69dxnbpAiVc/qp66s8Jq/P71TRB9aeQZLZy3EQtVAMCBJvwQY8LzVVlYEyVjmqQkFG/N0rAeYU1vg==} dependencies: '@wasmer/wasi': 0.12.0 '@wasmer/wasmfs': 0.12.0 default-import: 1.1.5 - - /@fluencelabs/registry@0.8.2: - resolution: {integrity: sha512-4feKLsqqhSRi3b2PDlsCJs6/tLWyRrupOEBTrK/RliaHOGtz/zv1r4ghIYkzatUgDNodPB4L96JbojJ4LKGvIw==} - dependencies: - '@fluencelabs/aqua-lib': 0.6.0 - '@fluencelabs/trust-graph': 3.0.4 - dev: true + dev: false /@fluencelabs/registry@0.8.7: resolution: {integrity: sha512-43bmb1v4p5ORvaiLBrUAl+hRPo3luxxBVrJgqTvipJa2OEg2wCRA/Wo9s4M7Lchnv3NoYLOyNTzNyFopQRKILA==} @@ -4240,6 +3719,13 @@ packages: '@fluencelabs/trust-graph': 0.4.1 dev: true + /@fluencelabs/registry@0.8.8-1: + resolution: {integrity: sha512-zdkn/JiMXAozn43/nrF+Cvq6/heSIUS1e3tOb8AFRMoI2Czd3o8p6fEwdJwa7QE8IkD1NOln/C/bWUVwfEDi9w==} + dependencies: + '@fluencelabs/aqua-lib': 0.7.0 + '@fluencelabs/trust-graph': 0.4.1 + dev: true + /@fluencelabs/spell@0.5.20: resolution: {integrity: sha512-QFbknWwALLUWMzpWkFt34McuwTz9xwQuiPP1zXqhPqVZ1J6g8F3gwHHtzgHFW5Z7WrRmwsL+IQtFJy8YZubhDw==} dev: true @@ -4248,7 +3734,7 @@ packages: resolution: {integrity: sha512-dgYpZg55OcEmop1U3G2bFKEJXg2avjXWYfWsdPlkSbHOHguaRifvr5bgwIYTg1wxoPGcn0jegcjKKwrY0qrV+g==} dependencies: callsites: 3.1.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 is-observable: 2.1.0 observable-fns: 0.6.1 optionalDependencies: @@ -4269,12 +3755,6 @@ packages: '@fluencelabs/aqua-lib': 0.7.3 dev: true - /@fluencelabs/trust-graph@3.0.4: - resolution: {integrity: sha512-4CWe/dBuZwrj5iU6mTrLz5JCSy5v1fw7dYjD65Pz05xWAbLH2jw72YIJfbMX0utzb1qiM8CooXv1XKPgutCIHQ==} - dependencies: - '@fluencelabs/aqua-lib': 0.5.2 - dev: true - /@fluencelabs/trust-graph@3.1.2: resolution: {integrity: sha512-HpyHtiomh09wv6/83z+bhbkqVngIUdqNGEXRTIPg4sArVPMZ9UCXBrkQsHDRqdMUx0lBAcgB3IjlbdhkwHGaXA==} dependencies: @@ -4286,7 +3766,7 @@ packages: engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -4298,33 +3778,6 @@ packages: /@humanwhocodes/object-schema@1.2.1: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} - /@iarna/toml@2.2.5: - resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} - dev: true - - /@ipld/dag-cbor@9.0.3: - resolution: {integrity: sha512-A2UFccS0+sARK9xwXiVZIaWbLbPxLGP3UZOjBeOMWfDY04SXi8h1+t4rHBzOlKYF/yWNm3RbFLyclWO7hZcy4g==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - dependencies: - cborg: 2.0.1 - multiformats: 12.0.1 - dev: true - - /@ipld/dag-json@10.1.2: - resolution: {integrity: sha512-z38JDQXzDW6mtU+ZfLO6/lXbJ4BEEDYY5cyW6+Nl7OpjWSV0mt57cE8LK6+krXlhxwuCnA+/sOtaXuJ3lImvfw==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - dependencies: - cborg: 2.0.1 - multiformats: 12.0.1 - dev: true - - /@ipld/dag-pb@4.0.4: - resolution: {integrity: sha512-lX0c6ZAwD8ZKtjbawxotP8XNyR6z7/NIk7wXuhDlFT4MrNo/AOefZEUWjAw8CGz3EG3mau4P66VpsZwToVLHDg==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - dependencies: - multiformats: 12.0.1 - dev: true - /@istanbuljs/load-nyc-config@1.1.0: resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} engines: {node: '>=8'} @@ -4637,35 +4090,6 @@ packages: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 - /@json-rpc-tools/provider@1.7.6: - resolution: {integrity: sha512-z7D3xvJ33UfCGv77n40lbzOYjZKVM3k2+5cV7xS8G6SCvKTzMkhkUYuD/qzQUNT4cG/lv0e9mRToweEEVLVVmA==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - dependencies: - '@json-rpc-tools/utils': 1.7.6 - axios: 0.21.4 - safe-json-utils: 1.1.1 - ws: 7.5.9 - transitivePeerDependencies: - - bufferutil - - debug - - utf-8-validate - dev: true - - /@json-rpc-tools/types@1.7.6: - resolution: {integrity: sha512-nDSqmyRNEqEK9TZHtM15uNnDljczhCUdBmRhpNZ95bIPKEDQ+nTDmGMFd2lLin3upc5h2VVVd9tkTDdbXUhDIQ==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - dependencies: - keyvaluestorage-interface: 1.0.0 - dev: true - - /@json-rpc-tools/utils@1.7.6: - resolution: {integrity: sha512-HjA8x/U/Q78HRRe19yh8HVKoZ+Iaoo3YZjakJYxR+rw52NHo6jM+VE9b8+7ygkCFXl/EHID5wh/MkXaE/jGyYw==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - dependencies: - '@json-rpc-tools/types': 1.7.6 - '@pedrouid/environment': 1.0.1 - dev: true - /@leichtgewicht/ip-codec@2.0.4: resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} dev: false @@ -4683,19 +4107,7 @@ packages: uint8arrays: 4.0.6 transitivePeerDependencies: - supports-color - - /@libp2p/interface-connection@4.0.0: - resolution: {integrity: sha512-6xx/NmEc84HX7QmsjSC3hHredQYjHv4Dkf4G27adAPf+qN+vnPxmQ7gaTnk243a0++DOFTbZ2gKX/15G2B6SRg==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - dependencies: - '@libp2p/interface-peer-id': 2.0.2 - '@libp2p/interfaces': 3.3.1 - '@multiformats/multiaddr': 12.1.7 - it-stream-types: 1.0.5 - uint8arraylist: 2.4.3 - transitivePeerDependencies: - - supports-color - dev: true + dev: false /@libp2p/interface-internal@0.1.4: resolution: {integrity: sha512-fRa8AUeCVOqfjgJgpIWupOsc7nAnJuI/VjWL2ZfRqbz7CPLD9c/ZAKXC140THSxlNdNQ9kGpo/C2z/yCGLy4ig==} @@ -4706,43 +4118,14 @@ packages: uint8arraylist: 2.4.3 transitivePeerDependencies: - supports-color - - /@libp2p/interface-keychain@2.0.5: - resolution: {integrity: sha512-mb7QNgn9fIvC7CaJCi06GJ+a6DN6RVT9TmEi0NmedZGATeCArPeWWG7r7IfxNVXb9cVOOE1RzV1swK0ZxEJF9Q==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - dependencies: - '@libp2p/interface-peer-id': 2.0.2 - multiformats: 11.0.1 - dev: true + dev: false /@libp2p/interface-peer-id@2.0.2: resolution: {integrity: sha512-9pZp9zhTDoVwzRmp0Wtxw0Yfa//Yc0GqBCJi3EznBDE6HGIAVvppR91wSh2knt/0eYg0AQj7Y35VSesUTzMCUg==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: multiformats: 11.0.1 - - /@libp2p/interface-peer-info@1.0.10: - resolution: {integrity: sha512-HQlo8NwQjMyamCHJrnILEZz+YwEOXCB2sIIw3slIrhVUYeYlTaia1R6d9umaAeLHa255Zmdm4qGH8rJLRqhCcg==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - dependencies: - '@libp2p/interface-peer-id': 2.0.2 - '@multiformats/multiaddr': 12.1.7 - transitivePeerDependencies: - - supports-color - dev: true - - /@libp2p/interface-pubsub@3.0.7: - resolution: {integrity: sha512-+c74EVUBTfw2sx1GE/z/IjsYO6dhur+ukF0knAppeZsRQ1Kgg6K5R3eECtT28fC6dBWLjFpAvW/7QGfiDAL4RA==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - dependencies: - '@libp2p/interface-connection': 4.0.0 - '@libp2p/interface-peer-id': 2.0.2 - '@libp2p/interfaces': 3.3.1 - it-pushable: 3.2.1 - uint8arraylist: 2.4.3 - transitivePeerDependencies: - - supports-color - dev: true + dev: false /@libp2p/interface@0.1.2: resolution: {integrity: sha512-Q5t27434Mvn+R6AUJlRH+q/jSXarDpP+KXVkyGY7S1fKPI2berqoFPqT61bRRBYsCH2OPZiKBB53VUzxL9uEvg==} @@ -4756,11 +4139,7 @@ packages: uint8arraylist: 2.4.3 transitivePeerDependencies: - supports-color - - /@libp2p/interfaces@3.3.1: - resolution: {integrity: sha512-3N+goQt74SmaVOjwpwMPKLNgh1uDQGw8GD12c40Kc86WOq0qvpm3NfACW+H8Su2X6KmWjCSMzk9JWs9+8FtUfg==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - dev: true + dev: false /@libp2p/keychain@3.0.3: resolution: {integrity: sha512-mt3Pq8pPUDchoYlTXyNFMSIZ2/gbGZUJIr1qDQGphLZKxZ3Ejsqps2Dgo0t6yBxvJQ0581tXfptAXzw75Y2LIA==} @@ -4775,6 +4154,7 @@ packages: uint8arrays: 4.0.6 transitivePeerDependencies: - supports-color + dev: false /@libp2p/logger@2.1.1: resolution: {integrity: sha512-2UbzDPctg3cPupF6jrv6abQnAUTrbLybNOj0rmmrdGm1cN2HJ1o/hBu0sXuq4KF9P1h/eVRn1HIRbVIEKnEJrA==} @@ -4782,40 +4162,24 @@ packages: dependencies: '@libp2p/interface-peer-id': 2.0.2 '@multiformats/multiaddr': 12.1.7 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 interface-datastore: 8.2.3 multiformats: 11.0.2 transitivePeerDependencies: - supports-color + dev: false /@libp2p/logger@3.0.2: resolution: {integrity: sha512-2JtRGBXiGfm1t5XneUIXQ2JusW7QwyYmxsW7hSAYS5J73RQJUicpt5le5obVRt7+OM39ei+nWEuC6Xvm1ugHkw==} dependencies: '@libp2p/interface': 0.1.2 '@multiformats/multiaddr': 12.1.7 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 interface-datastore: 8.2.3 multiformats: 12.0.1 transitivePeerDependencies: - supports-color - - /@libp2p/mplex@9.0.4: - resolution: {integrity: sha512-vUoj4XJtQJocN4ZdokfoMXVlATeBmnHDUtk1CtluimwAPhHkIhO9IhzIWEYmb8C5j7Yim+824tPj+TJ6vfBYlQ==} - dependencies: - '@libp2p/interface': 0.1.2 - '@libp2p/logger': 3.0.2 - abortable-iterator: 5.0.1 - benchmark: 2.1.4 - it-batched-bytes: 2.0.4 - it-pushable: 3.2.1 - it-stream-types: 2.0.1 - rate-limiter-flexible: 2.4.2 - uint8-varint: 2.0.1 - uint8arraylist: 2.4.3 - uint8arrays: 4.0.6 - transitivePeerDependencies: - - supports-color - dev: true + dev: false /@libp2p/multistream-select@4.0.2: resolution: {integrity: sha512-Ss3kPD+1Z8RFLUT+oN9I2ynEtp/Yj2+rOngU1XjIxustg1nt5lq0kk9hvWJyBexzmuML0xCknNjUXovpRbFPgQ==} @@ -4835,12 +4199,14 @@ packages: uint8arrays: 4.0.6 transitivePeerDependencies: - supports-color + dev: false /@libp2p/peer-collections@4.0.3: resolution: {integrity: sha512-ahfZFdRhApN4dulnzAvkzQsPVJVX7UID3QMKC/cduK5FYWqm7zbtW6bpwDilhZY3wvjvaQYs4R0KKSysvTPiQQ==} dependencies: '@libp2p/interface': 0.1.2 '@libp2p/peer-id': 3.0.2 + dev: false /@libp2p/peer-id-factory@3.0.3: resolution: {integrity: sha512-RsE1GbK0w4LxiGr9sU2fm23IHOGzCtCfmUD8LC9V8LwLgt+z62oNKbWzwbko+CeromngURDimdv3JpH9jw5OUA==} @@ -4854,16 +4220,7 @@ packages: uint8arrays: 4.0.6 transitivePeerDependencies: - supports-color - - /@libp2p/peer-id@2.0.1: - resolution: {integrity: sha512-uGIR4rS+j+IzzIu0kih4MonZEfRmjGNfXaSPMIFOeMxZItZT6TIpxoVNYxHl4YtneSFKzlLnf9yx9EhRcyfy8Q==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - dependencies: - '@libp2p/interface-peer-id': 2.0.2 - '@libp2p/interfaces': 3.3.1 - multiformats: 11.0.1 - uint8arrays: 4.0.3 - dev: true + dev: false /@libp2p/peer-id@3.0.2: resolution: {integrity: sha512-133qGXu9UBiqsYm7nBDJaAh4eiKe79DPLKF+/aRu0Z7gKcX7I0+LewEky4kBt3olhYQSF1CAnJIzD8Dmsn40Yw==} @@ -4871,6 +4228,7 @@ packages: '@libp2p/interface': 0.1.2 multiformats: 12.0.1 uint8arrays: 4.0.6 + dev: false /@libp2p/peer-record@6.0.3: resolution: {integrity: sha512-S5C4Df2uyX1vNsnduZ6RVjB7T+dUEhqnaSNhiv82VCoqMoniHQBf2ftvXlv/UqqssW9or1x4UwgFU+sL7kObkw==} @@ -4886,6 +4244,7 @@ packages: uint8arrays: 4.0.6 transitivePeerDependencies: - supports-color + dev: false /@libp2p/peer-store@9.0.3: resolution: {integrity: sha512-7vSAUvKAzzWRwcMxOUvyGNw8V59t9l9l1Ugxa+VHCKKhvAEn9eXjf8We8BLGT3KnUG6aJ5HpODPK4RbW6BNGfA==} @@ -4906,6 +4265,7 @@ packages: uint8arrays: 4.0.6 transitivePeerDependencies: - supports-color + dev: false /@libp2p/utils@4.0.2: resolution: {integrity: sha512-M6ARf4NhzFqpw15BOG0FQVXanjWdnta/s91OzhtdZhsp1A/FmUDlxwdIeshs2x/6TfNhyrMtR8Wid/BYsPpBow==} @@ -4920,6 +4280,7 @@ packages: uint8arraylist: 2.4.3 transitivePeerDependencies: - supports-color + dev: false /@libp2p/websockets@7.0.4: resolution: {integrity: sha512-DtwsZhYH//3bIMtzBpzi7ZWPeHtfEgbDOCaoVORcb4152ZvC68C7u+c3k7S2TyXY1ceqLTAt9LI9hDMM0WNfcQ==} @@ -4940,34 +4301,7 @@ packages: - bufferutil - supports-color - utf-8-validate - - /@ljharb/through@2.3.9: - resolution: {integrity: sha512-yN599ZBuMPPK4tdoToLlvgJB4CLK8fGl7ntfy0Wn7U6ttNvHYurd81bfUiK/6sMkiIwm65R6ck4L6+Y3DfVbNQ==} - engines: {node: '>= 0.4'} - dev: true - - /@metamask/eth-sig-util@4.0.1: - resolution: {integrity: sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==} - engines: {node: '>=12.0.0'} - dependencies: - ethereumjs-abi: 0.6.8 - ethereumjs-util: 6.2.1 - ethjs-util: 0.1.6 - tweetnacl: 1.0.3 - tweetnacl-util: 0.15.1 - dev: true - - /@mswjs/interceptors@0.23.0: - resolution: {integrity: sha512-JytvDa7pBbxXvCTXBYQs+0eE6MqxpqH/H4peRNY6zVAlvJ6d/hAWLHAef1D9lWN4zuIigN0VkakGOAUrX7FWLg==} - engines: {node: '>=18'} - dependencies: - '@open-draft/deferred-promise': 2.1.0 - '@open-draft/logger': 0.3.0 - '@open-draft/until': 2.1.0 - headers-polyfill: 3.1.2 - outvariant: 1.4.0 - strict-event-emitter: 0.5.0 - dev: true + dev: false /@multiformats/mafmt@12.1.6: resolution: {integrity: sha512-tlJRfL21X+AKn9b5i5VnaTD6bNttpSpcqwKVmDmSHLwxoz97fAHaepqFOk/l1fIu94nImIXneNbhsJx/RQNIww==} @@ -4975,6 +4309,7 @@ packages: '@multiformats/multiaddr': 12.1.7 transitivePeerDependencies: - supports-color + dev: false /@multiformats/multiaddr-matcher@1.0.1: resolution: {integrity: sha512-ZzqwTH8tP5Py/k8eNKprO0i6tuwgrbp7KWz+ttxvzkPl43BlU9Yd5joq+M5grCt158rpAc2uhPobzfXgPxW5XQ==} @@ -4984,6 +4319,7 @@ packages: multiformats: 12.0.1 transitivePeerDependencies: - supports-color + dev: false /@multiformats/multiaddr-to-uri@9.0.7: resolution: {integrity: sha512-i3ldtPMN6XJt+MCi34hOl0wGuGEHfWWMw6lmNag5BpckPwPTf9XGOOFMmh7ed/uO3Vjah/g173iOe61HTQVoBA==} @@ -4992,6 +4328,7 @@ packages: '@multiformats/multiaddr': 12.1.7 transitivePeerDependencies: - supports-color + dev: false /@multiformats/multiaddr@11.3.0: resolution: {integrity: sha512-Inrmp986nHe92pgYyOWNVnB8QDmYe5EhR/7TStc46O4YEm87pbc1i4DWiTlEJ6tOpL8V6IBH5ol8BZsIaN+Tww==} @@ -5019,6 +4356,7 @@ packages: uint8arrays: 4.0.3 transitivePeerDependencies: - supports-color + dev: false /@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1: resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} @@ -5028,23 +4366,18 @@ packages: /@noble/ciphers@0.1.4: resolution: {integrity: sha512-d3ZR8vGSpy3v/nllS+bD/OMN5UZqusWiQqkyj7AwzTnhXFH72pF5oB4Ach6DQ50g5kXxC28LdaYBEpsyv9KOUQ==} + dev: false /@noble/curves@1.1.0: resolution: {integrity: sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA==} dependencies: '@noble/hashes': 1.3.1 - - /@noble/hashes@1.2.0: - resolution: {integrity: sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==} - dev: true + dev: false /@noble/hashes@1.3.1: resolution: {integrity: sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA==} engines: {node: '>= 16'} - - /@noble/secp256k1@1.7.1: - resolution: {integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==} - dev: true + dev: false /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -5064,518 +4397,6 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 - /@nomicfoundation/ethereumjs-block@5.0.1: - resolution: {integrity: sha512-u1Yioemi6Ckj3xspygu/SfFvm8vZEO8/Yx5a1QLzi6nVU0jz3Pg2OmHKJ5w+D9Ogk1vhwRiqEBAqcb0GVhCyHw==} - engines: {node: '>=14'} - dependencies: - '@nomicfoundation/ethereumjs-common': 4.0.1 - '@nomicfoundation/ethereumjs-rlp': 5.0.1 - '@nomicfoundation/ethereumjs-trie': 6.0.1 - '@nomicfoundation/ethereumjs-tx': 5.0.1 - '@nomicfoundation/ethereumjs-util': 9.0.1 - ethereum-cryptography: 0.1.3 - ethers: 5.7.2 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: true - - /@nomicfoundation/ethereumjs-blockchain@7.0.1: - resolution: {integrity: sha512-NhzndlGg829XXbqJEYrF1VeZhAwSPgsK/OB7TVrdzft3y918hW5KNd7gIZ85sn6peDZOdjBsAXIpXZ38oBYE5A==} - engines: {node: '>=14'} - dependencies: - '@nomicfoundation/ethereumjs-block': 5.0.1 - '@nomicfoundation/ethereumjs-common': 4.0.1 - '@nomicfoundation/ethereumjs-ethash': 3.0.1 - '@nomicfoundation/ethereumjs-rlp': 5.0.1 - '@nomicfoundation/ethereumjs-trie': 6.0.1 - '@nomicfoundation/ethereumjs-tx': 5.0.1 - '@nomicfoundation/ethereumjs-util': 9.0.1 - abstract-level: 1.0.3 - debug: 4.3.4(supports-color@8.1.1) - ethereum-cryptography: 0.1.3 - level: 8.0.0 - lru-cache: 5.1.1 - memory-level: 1.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - - /@nomicfoundation/ethereumjs-common@4.0.1: - resolution: {integrity: sha512-OBErlkfp54GpeiE06brBW/TTbtbuBJV5YI5Nz/aB2evTDo+KawyEzPjBlSr84z/8MFfj8wS2wxzQX1o32cev5g==} - dependencies: - '@nomicfoundation/ethereumjs-util': 9.0.1 - crc-32: 1.2.2 - dev: true - - /@nomicfoundation/ethereumjs-ethash@3.0.1: - resolution: {integrity: sha512-KDjGIB5igzWOp8Ik5I6QiRH5DH+XgILlplsHR7TEuWANZA759G6krQ6o8bvj+tRUz08YygMQu/sGd9mJ1DYT8w==} - engines: {node: '>=14'} - dependencies: - '@nomicfoundation/ethereumjs-block': 5.0.1 - '@nomicfoundation/ethereumjs-rlp': 5.0.1 - '@nomicfoundation/ethereumjs-util': 9.0.1 - abstract-level: 1.0.3 - bigint-crypto-utils: 3.2.2 - ethereum-cryptography: 0.1.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: true - - /@nomicfoundation/ethereumjs-evm@2.0.1: - resolution: {integrity: sha512-oL8vJcnk0Bx/onl+TgQOQ1t/534GKFaEG17fZmwtPFeH8S5soiBYPCLUrvANOl4sCp9elYxIMzIiTtMtNNN8EQ==} - engines: {node: '>=14'} - dependencies: - '@ethersproject/providers': 5.7.2 - '@nomicfoundation/ethereumjs-common': 4.0.1 - '@nomicfoundation/ethereumjs-tx': 5.0.1 - '@nomicfoundation/ethereumjs-util': 9.0.1 - debug: 4.3.4(supports-color@8.1.1) - ethereum-cryptography: 0.1.3 - mcl-wasm: 0.7.9 - rustbn.js: 0.2.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - - /@nomicfoundation/ethereumjs-rlp@5.0.1: - resolution: {integrity: sha512-xtxrMGa8kP4zF5ApBQBtjlSbN5E2HI8m8FYgVSYAnO6ssUoY5pVPGy2H8+xdf/bmMa22Ce8nWMH3aEW8CcqMeQ==} - engines: {node: '>=14'} - hasBin: true - dev: true - - /@nomicfoundation/ethereumjs-statemanager@2.0.1: - resolution: {integrity: sha512-B5ApMOnlruVOR7gisBaYwFX+L/AP7i/2oAahatssjPIBVDF6wTX1K7Qpa39E/nzsH8iYuL3krkYeUFIdO3EMUQ==} - dependencies: - '@nomicfoundation/ethereumjs-common': 4.0.1 - '@nomicfoundation/ethereumjs-rlp': 5.0.1 - debug: 4.3.4(supports-color@8.1.1) - ethereum-cryptography: 0.1.3 - ethers: 5.7.2 - js-sdsl: 4.4.1 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - - /@nomicfoundation/ethereumjs-trie@6.0.1: - resolution: {integrity: sha512-A64It/IMpDVODzCgxDgAAla8jNjNtsoQZIzZUfIV5AY6Coi4nvn7+VReBn5itlxMiL2yaTlQr9TRWp3CSI6VoA==} - engines: {node: '>=14'} - dependencies: - '@nomicfoundation/ethereumjs-rlp': 5.0.1 - '@nomicfoundation/ethereumjs-util': 9.0.1 - '@types/readable-stream': 2.3.15 - ethereum-cryptography: 0.1.3 - readable-stream: 3.6.2 - dev: true - - /@nomicfoundation/ethereumjs-tx@5.0.1: - resolution: {integrity: sha512-0HwxUF2u2hrsIM1fsasjXvlbDOq1ZHFV2dd1yGq8CA+MEYhaxZr8OTScpVkkxqMwBcc5y83FyPl0J9MZn3kY0w==} - engines: {node: '>=14'} - dependencies: - '@chainsafe/ssz': 0.9.4 - '@ethersproject/providers': 5.7.2 - '@nomicfoundation/ethereumjs-common': 4.0.1 - '@nomicfoundation/ethereumjs-rlp': 5.0.1 - '@nomicfoundation/ethereumjs-util': 9.0.1 - ethereum-cryptography: 0.1.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: true - - /@nomicfoundation/ethereumjs-util@9.0.1: - resolution: {integrity: sha512-TwbhOWQ8QoSCFhV/DDfSmyfFIHjPjFBj957219+V3jTZYZ2rf9PmDtNOeZWAE3p3vlp8xb02XGpd0v6nTUPbsA==} - engines: {node: '>=14'} - dependencies: - '@chainsafe/ssz': 0.10.2 - '@nomicfoundation/ethereumjs-rlp': 5.0.1 - ethereum-cryptography: 0.1.3 - dev: true - - /@nomicfoundation/ethereumjs-vm@7.0.1: - resolution: {integrity: sha512-rArhyn0jPsS/D+ApFsz3yVJMQ29+pVzNZ0VJgkzAZ+7FqXSRtThl1C1prhmlVr3YNUlfpZ69Ak+RUT4g7VoOuQ==} - engines: {node: '>=14'} - dependencies: - '@nomicfoundation/ethereumjs-block': 5.0.1 - '@nomicfoundation/ethereumjs-blockchain': 7.0.1 - '@nomicfoundation/ethereumjs-common': 4.0.1 - '@nomicfoundation/ethereumjs-evm': 2.0.1 - '@nomicfoundation/ethereumjs-rlp': 5.0.1 - '@nomicfoundation/ethereumjs-statemanager': 2.0.1 - '@nomicfoundation/ethereumjs-trie': 6.0.1 - '@nomicfoundation/ethereumjs-tx': 5.0.1 - '@nomicfoundation/ethereumjs-util': 9.0.1 - debug: 4.3.4(supports-color@8.1.1) - ethereum-cryptography: 0.1.3 - mcl-wasm: 0.7.9 - rustbn.js: 0.2.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - - /@nomicfoundation/hardhat-chai-matchers@1.0.6(@nomiclabs/hardhat-ethers@2.2.3)(chai@4.3.10)(ethers@5.7.2)(hardhat@2.15.0): - resolution: {integrity: sha512-f5ZMNmabZeZegEfuxn/0kW+mm7+yV7VNDxLpMOMGXWFJ2l/Ct3QShujzDRF9cOkK9Ui/hbDeOWGZqyQALDXVCQ==} - peerDependencies: - '@nomiclabs/hardhat-ethers': ^2.0.0 - chai: ^4.2.0 - ethers: ^5.0.0 - hardhat: ^2.9.4 - dependencies: - '@ethersproject/abi': 5.7.0 - '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.7.2)(hardhat@2.15.0) - '@types/chai-as-promised': 7.1.5 - chai: 4.3.10 - chai-as-promised: 7.1.1(chai@4.3.10) - deep-eql: 4.1.3 - ethers: 5.7.2 - hardhat: 2.15.0(ts-node@10.9.1)(typescript@5.1.6) - ordinal: 1.0.3 - dev: true - - /@nomicfoundation/hardhat-network-helpers@1.0.8(hardhat@2.15.0): - resolution: {integrity: sha512-MNqQbzUJZnCMIYvlniC3U+kcavz/PhhQSsY90tbEtUyMj/IQqsLwIRZa4ctjABh3Bz0KCh9OXUZ7Yk/d9hr45Q==} - peerDependencies: - hardhat: ^2.9.5 - dependencies: - ethereumjs-util: 7.1.5 - hardhat: 2.15.0(ts-node@10.9.1)(typescript@5.1.6) - dev: true - - /@nomicfoundation/hardhat-toolbox@1.0.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2)(@nomicfoundation/hardhat-chai-matchers@1.0.6)(@nomicfoundation/hardhat-network-helpers@1.0.8)(@nomiclabs/hardhat-ethers@2.2.3)(@nomiclabs/hardhat-etherscan@3.1.7)(@typechain/ethers-v5@10.2.1)(@typechain/hardhat@6.1.6)(@types/chai@4.3.5)(@types/mocha@9.1.1)(@types/node@20.7.0)(chai@4.3.10)(ethers@5.7.2)(hardhat-gas-reporter@1.0.9)(hardhat@2.15.0)(solidity-coverage@0.7.22)(ts-node@10.9.1)(typechain@8.2.0)(typescript@5.1.6): - resolution: {integrity: sha512-8CEgWSKUK2aMit+76Sez8n7UB0Ze1lwT+LcWxj4EFP30lQWOwOws048t6MTPfThH0BlSWjC6hJRr0LncIkc1Sw==} - peerDependencies: - '@ethersproject/abi': ^5.4.7 - '@ethersproject/providers': ^5.4.7 - '@nomicfoundation/hardhat-chai-matchers': ^1.0.0 - '@nomicfoundation/hardhat-network-helpers': ^1.0.0 - '@nomiclabs/hardhat-ethers': ^2.0.0 - '@nomiclabs/hardhat-etherscan': ^3.0.0 - '@typechain/ethers-v5': ^10.1.0 - '@typechain/hardhat': ^6.1.2 - '@types/chai': ^4.2.0 - '@types/mocha': ^9.1.0 - '@types/node': '>=12.0.0' - chai: ^4.2.0 - ethers: ^5.4.7 - hardhat: ^2.9.9 - hardhat-gas-reporter: ^1.0.8 - solidity-coverage: ^0.7.21 - ts-node: '>=8.0.0' - typechain: ^8.1.0 - typescript: '>=4.5.0' - dependencies: - '@ethersproject/abi': 5.7.0 - '@ethersproject/providers': 5.7.2 - '@nomicfoundation/hardhat-chai-matchers': 1.0.6(@nomiclabs/hardhat-ethers@2.2.3)(chai@4.3.10)(ethers@5.7.2)(hardhat@2.15.0) - '@nomicfoundation/hardhat-network-helpers': 1.0.8(hardhat@2.15.0) - '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.7.2)(hardhat@2.15.0) - '@nomiclabs/hardhat-etherscan': 3.1.7(hardhat@2.15.0) - '@typechain/ethers-v5': 10.2.1(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2)(ethers@5.7.2)(typechain@8.2.0)(typescript@5.1.6) - '@typechain/hardhat': 6.1.6(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2)(@typechain/ethers-v5@10.2.1)(ethers@5.7.2)(hardhat@2.15.0)(typechain@8.2.0) - '@types/chai': 4.3.5 - '@types/mocha': 9.1.1 - '@types/node': 20.7.0 - chai: 4.3.10 - ethers: 5.7.2 - hardhat: 2.15.0(ts-node@10.9.1)(typescript@5.1.6) - hardhat-gas-reporter: 1.0.9(hardhat@2.15.0) - solidity-coverage: 0.7.22 - ts-node: 10.9.1(@types/node@20.7.0)(typescript@5.1.6) - typechain: 8.2.0(typescript@5.1.6) - typescript: 5.1.6 - dev: true - - /@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.1: - resolution: {integrity: sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@nomicfoundation/solidity-analyzer-darwin-x64@0.1.1: - resolution: {integrity: sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@nomicfoundation/solidity-analyzer-freebsd-x64@0.1.1: - resolution: {integrity: sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.1: - resolution: {integrity: sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.1: - resolution: {integrity: sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.1: - resolution: {integrity: sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@nomicfoundation/solidity-analyzer-linux-x64-musl@0.1.1: - resolution: {integrity: sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@nomicfoundation/solidity-analyzer-win32-arm64-msvc@0.1.1: - resolution: {integrity: sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@nomicfoundation/solidity-analyzer-win32-ia32-msvc@0.1.1: - resolution: {integrity: sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.1: - resolution: {integrity: sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@nomicfoundation/solidity-analyzer@0.1.1: - resolution: {integrity: sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg==} - engines: {node: '>= 12'} - optionalDependencies: - '@nomicfoundation/solidity-analyzer-darwin-arm64': 0.1.1 - '@nomicfoundation/solidity-analyzer-darwin-x64': 0.1.1 - '@nomicfoundation/solidity-analyzer-freebsd-x64': 0.1.1 - '@nomicfoundation/solidity-analyzer-linux-arm64-gnu': 0.1.1 - '@nomicfoundation/solidity-analyzer-linux-arm64-musl': 0.1.1 - '@nomicfoundation/solidity-analyzer-linux-x64-gnu': 0.1.1 - '@nomicfoundation/solidity-analyzer-linux-x64-musl': 0.1.1 - '@nomicfoundation/solidity-analyzer-win32-arm64-msvc': 0.1.1 - '@nomicfoundation/solidity-analyzer-win32-ia32-msvc': 0.1.1 - '@nomicfoundation/solidity-analyzer-win32-x64-msvc': 0.1.1 - dev: true - - /@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2)(hardhat@2.15.0): - resolution: {integrity: sha512-YhzPdzb612X591FOe68q+qXVXGG2ANZRvDo0RRUtimev85rCrAlv/TLMEZw5c+kq9AbzocLTVX/h2jVIFPL9Xg==} - peerDependencies: - ethers: ^5.0.0 - hardhat: ^2.0.0 - dependencies: - ethers: 5.7.2 - hardhat: 2.15.0(ts-node@10.9.1)(typescript@5.1.6) - dev: true - - /@nomiclabs/hardhat-etherscan@3.1.7(hardhat@2.15.0): - resolution: {integrity: sha512-tZ3TvSgpvsQ6B6OGmo1/Au6u8BrAkvs1mIC/eURA3xgIfznUZBhmpne8hv7BXUzw9xNL3fXdpOYgOQlVMTcoHQ==} - peerDependencies: - hardhat: ^2.0.4 - dependencies: - '@ethersproject/abi': 5.7.0 - '@ethersproject/address': 5.7.0 - cbor: 8.1.0 - chalk: 2.4.2 - debug: 4.3.4(supports-color@8.1.1) - fs-extra: 7.0.1 - hardhat: 2.15.0(ts-node@10.9.1)(typescript@5.1.6) - lodash: 4.17.21 - semver: 6.3.1 - table: 6.8.1 - undici: 5.22.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@oclif/color@1.0.11: - resolution: {integrity: sha512-2hOJFJoaJdeEH/0D9Ek5B7Q3bV6jFVRIc7AUimqV8HiA6HGynvCcV0jb1kDK7O2h+WT3j6MO6S4IdjipwqOP4Q==} - engines: {node: '>=12.0.0'} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - dependencies: - ansi-styles: 4.3.0 - chalk: 4.1.2 - strip-ansi: 6.0.1 - supports-color: 8.1.1 - tslib: 2.5.3 - dev: true - - /@oclif/core@2.13.0(@types/node@20.7.0)(typescript@5.1.6): - resolution: {integrity: sha512-U/AgA/Jcqc04VwmsO/xSc3gJjVKkST8SB3wC3o3kzTAE4UWTOTMkHTtLujYZA5sUvBLhs66+A4dfrjz2sZQBdA==} - engines: {node: '>=14.0.0'} - dependencies: - '@types/cli-progress': 3.11.0 - ansi-escapes: 4.3.2 - ansi-styles: 4.3.0 - cardinal: 2.1.1 - chalk: 4.1.2 - clean-stack: 3.0.1 - cli-progress: 3.12.0 - debug: 4.3.4(supports-color@8.1.1) - ejs: 3.1.9 - fs-extra: 9.1.0 - get-package-type: 0.1.0 - globby: 11.1.0 - hyperlinker: 1.0.0 - indent-string: 4.0.0 - is-wsl: 2.2.0 - js-yaml: 3.14.1 - natural-orderby: 2.0.3 - object-treeify: 1.1.33 - password-prompt: 1.1.2 - semver: 7.5.4 - slice-ansi: 4.0.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - supports-color: 8.1.1 - supports-hyperlinks: 2.3.0 - ts-node: 10.9.1(@types/node@20.7.0)(typescript@5.1.6) - tslib: 2.5.3 - widest-line: 3.1.0 - wordwrap: 1.0.0 - wrap-ansi: 7.0.0 - transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' - - '@types/node' - - typescript - dev: true - - /@oclif/plugin-autocomplete@2.3.6(@types/node@20.7.0)(typescript@5.1.6): - resolution: {integrity: sha512-h969Vc9pzwJ87Z79PXjt67uUZm99zj8pD4zSX3pjc2xOf4ZNslLHNtvb3AjuU01mTM6FYJTsJcwjhPvXzxsqEg==} - engines: {node: '>=12.0.0'} - dependencies: - '@oclif/core': 2.13.0(@types/node@20.7.0)(typescript@5.1.6) - chalk: 4.1.2 - debug: 4.3.4(supports-color@8.1.1) - fs-extra: 9.1.0 - transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' - - '@types/node' - - supports-color - - typescript - dev: true - - /@oclif/plugin-help@5.2.18(@types/node@20.7.0)(typescript@5.1.6): - resolution: {integrity: sha512-0JjupXUuDzlI0Ojj7/YL42btfUNuvSgZxdi8ZfeYt/uhC1/zvsSkO29KjffPxKEnbhr6jrkjOgy/Vly5JquYLg==} - engines: {node: '>=12.0.0'} - dependencies: - '@oclif/core': 2.13.0(@types/node@20.7.0)(typescript@5.1.6) - transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' - - '@types/node' - - typescript - dev: true - - /@oclif/plugin-not-found@2.4.0(@types/node@20.7.0)(typescript@5.1.6): - resolution: {integrity: sha512-EOoesBEgyj4TMdHUpnCqN7qqH0f1NHh7buTdWfhwlSjbfrL9rAuodiART5/zgtsj5b8uao3aXdcx1gPxWOogEw==} - engines: {node: '>=12.0.0'} - dependencies: - '@oclif/core': 2.13.0(@types/node@20.7.0)(typescript@5.1.6) - chalk: 4.1.2 - fast-levenshtein: 3.0.0 - transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' - - '@types/node' - - typescript - dev: true - - /@oclif/plugin-update@3.2.0(@types/node@20.7.0)(typescript@5.1.6): - resolution: {integrity: sha512-naQIw/sjbNBNdYnoQOudYMJc1Im2fpyQAh87ZN8tR/6Wuf4fyxfLUENm8Gy8jqBM3GN4rw/yg0uW7tDH5wY0qg==} - engines: {node: '>=12.0.0'} - dependencies: - '@oclif/core': 2.13.0(@types/node@20.7.0)(typescript@5.1.6) - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4(supports-color@8.1.1) - filesize: 6.4.0 - fs-extra: 9.1.0 - http-call: 5.3.0 - inquirer: 8.2.6 - lodash.throttle: 4.1.1 - log-chopper: 1.0.2 - semver: 7.5.4 - tar-fs: 2.1.1 - transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' - - '@types/node' - - supports-color - - typescript - dev: true - - /@open-draft/deferred-promise@2.1.0: - resolution: {integrity: sha512-Rzd5JrXZX8zErHzgcGyngh4fmEbSHqTETdGj9rXtejlqMIgXFlyKBA7Jn1Xp0Ls0M0Y22+xHcWiEzbmdWl0BOA==} - dev: true - - /@open-draft/logger@0.3.0: - resolution: {integrity: sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==} - dependencies: - is-node-process: 1.2.0 - outvariant: 1.4.0 - dev: true - - /@open-draft/until@2.1.0: - resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} - dev: true - - /@openzeppelin/contracts-upgradeable@4.9.2: - resolution: {integrity: sha512-siviV3PZV/fHfPaoIC51rf1Jb6iElkYWnNYZ0leO23/ukXuvOyoC/ahy8jqiV7g+++9Nuo3n/rk5ajSN/+d/Sg==} - dev: true - - /@openzeppelin/contracts@4.9.2: - resolution: {integrity: sha512-mO+y6JaqXjWeMh9glYVzVu8HYPGknAAnWyxTRhGeckOruyXQMNnlcW6w/Dx9ftLeIQk6N+ZJFuVmTwF7lEIFrg==} - dev: true - - /@pedrouid/environment@1.0.1: - resolution: {integrity: sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug==} - dev: true - /@pmmmwh/react-refresh-webpack-plugin@0.5.10(react-refresh@0.11.0)(webpack-dev-server@4.15.1)(webpack@5.87.0): resolution: {integrity: sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA==} engines: {node: '>= 10.13'} @@ -5618,36 +4439,46 @@ packages: /@protobufjs/aspromise@1.1.2: resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + dev: false /@protobufjs/base64@1.1.2: resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + dev: false /@protobufjs/codegen@2.0.4: resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + dev: false /@protobufjs/eventemitter@1.1.0: resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + dev: false /@protobufjs/fetch@1.1.0: resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} dependencies: '@protobufjs/aspromise': 1.1.2 '@protobufjs/inquire': 1.1.0 + dev: false /@protobufjs/float@1.0.2: resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + dev: false /@protobufjs/inquire@1.1.0: resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + dev: false /@protobufjs/path@1.1.2: resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + dev: false /@protobufjs/pool@1.1.0: resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + dev: false /@protobufjs/utf8@1.1.0: resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + dev: false /@rollup/plugin-babel@5.3.1(@babel/core@7.22.10)(rollup@2.79.1): resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} @@ -5735,95 +4566,6 @@ packages: resolution: {integrity: sha512-V+MvGwaHH03hYhY+k6Ef/xKd6RYlc4q8WBx+2ANmipHJcKuktNcI/NgEsJgdSUF6Lw32njT6OnrRsKYCdgHjYw==} dev: false - /@scure/base@1.1.1: - resolution: {integrity: sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==} - dev: true - - /@scure/bip32@1.1.5: - resolution: {integrity: sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==} - dependencies: - '@noble/hashes': 1.2.0 - '@noble/secp256k1': 1.7.1 - '@scure/base': 1.1.1 - dev: true - - /@scure/bip39@1.1.1: - resolution: {integrity: sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==} - dependencies: - '@noble/hashes': 1.2.0 - '@scure/base': 1.1.1 - dev: true - - /@sentry/core@5.30.0: - resolution: {integrity: sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==} - engines: {node: '>=6'} - dependencies: - '@sentry/hub': 5.30.0 - '@sentry/minimal': 5.30.0 - '@sentry/types': 5.30.0 - '@sentry/utils': 5.30.0 - tslib: 1.14.1 - dev: true - - /@sentry/hub@5.30.0: - resolution: {integrity: sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==} - engines: {node: '>=6'} - dependencies: - '@sentry/types': 5.30.0 - '@sentry/utils': 5.30.0 - tslib: 1.14.1 - dev: true - - /@sentry/minimal@5.30.0: - resolution: {integrity: sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==} - engines: {node: '>=6'} - dependencies: - '@sentry/hub': 5.30.0 - '@sentry/types': 5.30.0 - tslib: 1.14.1 - dev: true - - /@sentry/node@5.30.0: - resolution: {integrity: sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==} - engines: {node: '>=6'} - dependencies: - '@sentry/core': 5.30.0 - '@sentry/hub': 5.30.0 - '@sentry/tracing': 5.30.0 - '@sentry/types': 5.30.0 - '@sentry/utils': 5.30.0 - cookie: 0.4.2 - https-proxy-agent: 5.0.1 - lru_map: 0.3.3 - tslib: 1.14.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@sentry/tracing@5.30.0: - resolution: {integrity: sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==} - engines: {node: '>=6'} - dependencies: - '@sentry/hub': 5.30.0 - '@sentry/minimal': 5.30.0 - '@sentry/types': 5.30.0 - '@sentry/utils': 5.30.0 - tslib: 1.14.1 - dev: true - - /@sentry/types@5.30.0: - resolution: {integrity: sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==} - engines: {node: '>=6'} - dev: true - - /@sentry/utils@5.30.0: - resolution: {integrity: sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==} - engines: {node: '>=6'} - dependencies: - '@sentry/types': 5.30.0 - tslib: 1.14.1 - dev: true - /@sinclair/typebox@0.24.51: resolution: {integrity: sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==} dev: false @@ -5832,16 +4574,6 @@ packages: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true - /@sindresorhus/is@0.14.0: - resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} - engines: {node: '>=6'} - dev: true - - /@sindresorhus/is@4.6.0: - resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} - engines: {node: '>=10'} - dev: true - /@sinonjs/commons@1.8.6: resolution: {integrity: sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==} dependencies: @@ -5854,128 +4586,6 @@ packages: '@sinonjs/commons': 1.8.6 dev: false - /@solidity-parser/parser@0.14.5: - resolution: {integrity: sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg==} - dependencies: - antlr4ts: 0.5.0-alpha.4 - dev: true - - /@stablelib/aead@1.0.1: - resolution: {integrity: sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==} - dev: true - - /@stablelib/binary@1.0.1: - resolution: {integrity: sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==} - dependencies: - '@stablelib/int': 1.0.1 - dev: true - - /@stablelib/bytes@1.0.1: - resolution: {integrity: sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==} - dev: true - - /@stablelib/chacha20poly1305@1.0.1: - resolution: {integrity: sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==} - dependencies: - '@stablelib/aead': 1.0.1 - '@stablelib/binary': 1.0.1 - '@stablelib/chacha': 1.0.1 - '@stablelib/constant-time': 1.0.1 - '@stablelib/poly1305': 1.0.1 - '@stablelib/wipe': 1.0.1 - dev: true - - /@stablelib/chacha@1.0.1: - resolution: {integrity: sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==} - dependencies: - '@stablelib/binary': 1.0.1 - '@stablelib/wipe': 1.0.1 - dev: true - - /@stablelib/constant-time@1.0.1: - resolution: {integrity: sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==} - dev: true - - /@stablelib/ed25519@1.0.3: - resolution: {integrity: sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg==} - dependencies: - '@stablelib/random': 1.0.2 - '@stablelib/sha512': 1.0.1 - '@stablelib/wipe': 1.0.1 - dev: true - - /@stablelib/hash@1.0.1: - resolution: {integrity: sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==} - dev: true - - /@stablelib/hkdf@1.0.1: - resolution: {integrity: sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g==} - dependencies: - '@stablelib/hash': 1.0.1 - '@stablelib/hmac': 1.0.1 - '@stablelib/wipe': 1.0.1 - dev: true - - /@stablelib/hmac@1.0.1: - resolution: {integrity: sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA==} - dependencies: - '@stablelib/constant-time': 1.0.1 - '@stablelib/hash': 1.0.1 - '@stablelib/wipe': 1.0.1 - dev: true - - /@stablelib/int@1.0.1: - resolution: {integrity: sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==} - dev: true - - /@stablelib/keyagreement@1.0.1: - resolution: {integrity: sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==} - dependencies: - '@stablelib/bytes': 1.0.1 - dev: true - - /@stablelib/poly1305@1.0.1: - resolution: {integrity: sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==} - dependencies: - '@stablelib/constant-time': 1.0.1 - '@stablelib/wipe': 1.0.1 - dev: true - - /@stablelib/random@1.0.2: - resolution: {integrity: sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==} - dependencies: - '@stablelib/binary': 1.0.1 - '@stablelib/wipe': 1.0.1 - dev: true - - /@stablelib/sha256@1.0.1: - resolution: {integrity: sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==} - dependencies: - '@stablelib/binary': 1.0.1 - '@stablelib/hash': 1.0.1 - '@stablelib/wipe': 1.0.1 - dev: true - - /@stablelib/sha512@1.0.1: - resolution: {integrity: sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==} - dependencies: - '@stablelib/binary': 1.0.1 - '@stablelib/hash': 1.0.1 - '@stablelib/wipe': 1.0.1 - dev: true - - /@stablelib/wipe@1.0.1: - resolution: {integrity: sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==} - dev: true - - /@stablelib/x25519@1.0.3: - resolution: {integrity: sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw==} - dependencies: - '@stablelib/keyagreement': 1.0.1 - '@stablelib/random': 1.0.2 - '@stablelib/wipe': 1.0.1 - dev: true - /@surma/rollup-plugin-off-main-thread@2.2.3: resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} dependencies: @@ -6094,27 +4704,6 @@ packages: - supports-color dev: false - /@szmarczak/http-timer@1.1.2: - resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} - engines: {node: '>=6'} - dependencies: - defer-to-connect: 1.1.3 - dev: true - - /@szmarczak/http-timer@4.0.6: - resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} - engines: {node: '>=10'} - dependencies: - defer-to-connect: 2.0.1 - dev: true - - /@szmarczak/http-timer@5.0.1: - resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} - engines: {node: '>=14.16'} - dependencies: - defer-to-connect: 2.0.1 - dev: true - /@testing-library/dom@8.20.1: resolution: {integrity: sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==} engines: {node: '>=12'} @@ -6191,37 +4780,6 @@ packages: resolution: {integrity: sha512-AqlrT8YA1o7Ff5wPfMOL0pvL+1X+sw60NN6CcOCqs658emD6RfiXhF7Gu9QcfKBH7ELY2nInLhKSCWVoNL70MQ==} dev: true - /@truffle/error@0.1.1: - resolution: {integrity: sha512-sE7c9IHIGdbK4YayH4BC8i8qMjoAOeg6nUXUDZZp8wlU21/EMpaG+CLx+KqcIPyR+GSWIW3Dm0PXkr2nlggFDA==} - dev: true - - /@truffle/interface-adapter@0.5.34: - resolution: {integrity: sha512-gPxabfMi2TueE4VxnNuyeudOfvGJQ1ofVC02PFw14cnRQhzH327JikjjQbZ1bT6S7kWl9H6P3hQPFeYFMHdm1g==} - dependencies: - bn.js: 5.2.1 - ethers: 4.0.49 - web3: 1.10.0 - transitivePeerDependencies: - - bufferutil - - encoding - - supports-color - - utf-8-validate - dev: true - - /@truffle/provider@0.2.64: - resolution: {integrity: sha512-ZwPsofw4EsCq/2h0t73SPnnFezu4YQWBmK4FxFaOUX0F+o8NsZuHKyfJzuZwyZbiktYmefM3yD9rM0Dj4BhNbw==} - dependencies: - '@truffle/error': 0.1.1 - '@truffle/interface-adapter': 0.5.34 - debug: 4.3.4(supports-color@8.1.1) - web3: 1.7.4 - transitivePeerDependencies: - - bufferutil - - encoding - - supports-color - - utf-8-validate - dev: true - /@trysound/sax@0.2.0: resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} engines: {node: '>=10.13.0'} @@ -6243,43 +4801,6 @@ packages: resolution: {integrity: sha512-jt4jIsWKvUvuY6adJnQJlb/UR7DdjC8CjHI/OaSQruj2yX9/K6+KOvDt/vD6udqos/FUk5Op66CvYT7TBLYO5Q==} dev: true - /@typechain/ethers-v5@10.2.1(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2)(ethers@5.7.2)(typechain@8.2.0)(typescript@5.1.6): - resolution: {integrity: sha512-n3tQmCZjRE6IU4h6lqUGiQ1j866n5MTCBJreNEHHVWXa2u9GJTaeYyU1/k+1qLutkyw+sS6VAN+AbeiTqsxd/A==} - peerDependencies: - '@ethersproject/abi': ^5.0.0 - '@ethersproject/providers': ^5.0.0 - ethers: ^5.1.3 - typechain: ^8.1.1 - typescript: '>=4.3.0' - dependencies: - '@ethersproject/abi': 5.7.0 - '@ethersproject/providers': 5.7.2 - ethers: 5.7.2 - lodash: 4.17.21 - ts-essentials: 7.0.3(typescript@5.1.6) - typechain: 8.2.0(typescript@5.1.6) - typescript: 5.1.6 - dev: true - - /@typechain/hardhat@6.1.6(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2)(@typechain/ethers-v5@10.2.1)(ethers@5.7.2)(hardhat@2.15.0)(typechain@8.2.0): - resolution: {integrity: sha512-BiVnegSs+ZHVymyidtK472syodx1sXYlYJJixZfRstHVGYTi8V1O7QG4nsjyb0PC/LORcq7sfBUcHto1y6UgJA==} - peerDependencies: - '@ethersproject/abi': ^5.4.7 - '@ethersproject/providers': ^5.4.7 - '@typechain/ethers-v5': ^10.2.1 - ethers: ^5.4.7 - hardhat: ^2.9.9 - typechain: ^8.1.1 - dependencies: - '@ethersproject/abi': 5.7.0 - '@ethersproject/providers': 5.7.2 - '@typechain/ethers-v5': 10.2.1(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2)(ethers@5.7.2)(typechain@8.2.0)(typescript@5.1.6) - ethers: 5.7.2 - fs-extra: 9.1.0 - hardhat: 2.15.0(ts-node@10.9.1)(typescript@5.1.6) - typechain: 8.2.0(typescript@5.1.6) - dev: true - /@types/aria-query@5.0.1: resolution: {integrity: sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==} dev: false @@ -6313,18 +4834,6 @@ packages: '@babel/types': 7.22.10 dev: false - /@types/bn.js@4.11.6: - resolution: {integrity: sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==} - dependencies: - '@types/node': 20.7.0 - dev: true - - /@types/bn.js@5.1.1: - resolution: {integrity: sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==} - dependencies: - '@types/node': 20.7.0 - dev: true - /@types/body-parser@1.19.2: resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: @@ -6344,21 +4853,6 @@ packages: base-x: 3.0.9 dev: true - /@types/cacheable-request@6.0.3: - resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} - dependencies: - '@types/http-cache-semantics': 4.0.1 - '@types/keyv': 3.1.4 - '@types/node': 20.7.0 - '@types/responselike': 1.0.0 - dev: true - - /@types/chai-as-promised@7.1.5: - resolution: {integrity: sha512-jStwss93SITGBwt/niYrkf2C+/1KTeZCZl1LaeezTlqppAKeoQC7jxyqYuP72sxBGKCIbw7oHgbYssIRzT5FCQ==} - dependencies: - '@types/chai': 4.3.5 - dev: true - /@types/chai-subset@1.3.3: resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} dependencies: @@ -6369,18 +4863,6 @@ packages: resolution: {integrity: sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==} dev: true - /@types/cli-progress@3.11.0: - resolution: {integrity: sha512-XhXhBv1R/q2ahF3BM7qT5HLzJNlIL0wbcGyZVjqOTqAybAnsLisd7gy1UCyIqpL+5Iv6XhlSyzjLCnI2sIdbCg==} - dependencies: - '@types/node': 20.7.0 - dev: true - - /@types/concat-stream@1.6.1: - resolution: {integrity: sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==} - dependencies: - '@types/node': 20.7.0 - dev: true - /@types/connect-history-api-fallback@1.5.0: resolution: {integrity: sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==} dependencies: @@ -6439,19 +4921,6 @@ packages: '@types/serve-static': 1.15.1 dev: false - /@types/form-data@0.0.33: - resolution: {integrity: sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==} - dependencies: - '@types/node': 20.7.0 - dev: true - - /@types/glob@7.2.0: - resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} - dependencies: - '@types/minimatch': 5.1.2 - '@types/node': 20.7.0 - dev: true - /@types/graceful-fs@4.1.6: resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} dependencies: @@ -6462,10 +4931,6 @@ packages: resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} dev: false - /@types/http-cache-semantics@4.0.1: - resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==} - dev: true - /@types/http-proxy@1.17.11: resolution: {integrity: sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==} dependencies: @@ -6508,16 +4973,6 @@ packages: /@types/json5@0.0.29: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - /@types/keyv@3.1.4: - resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} - dependencies: - '@types/node': 20.7.0 - dev: true - - /@types/lru-cache@5.1.1: - resolution: {integrity: sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==} - dev: true - /@types/mime@1.3.2: resolution: {integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==} dev: false @@ -6526,30 +4981,10 @@ packages: resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==} dev: false - /@types/minimatch@3.0.5: - resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} - dev: true - - /@types/minimatch@5.1.2: - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - dev: true - - /@types/mocha@9.1.1: - resolution: {integrity: sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==} - dev: true - /@types/ms@0.7.31: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true - /@types/node@10.17.60: - resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} - dev: true - - /@types/node@12.20.55: - resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - dev: true - /@types/node@16.18.12: resolution: {integrity: sha512-vzLe5NaNMjIE3mcddFVGlAXN1LEWueUsMsOJWaT6wWMJGyljHAWHznqfnKUQWGzu7TLPrGvWdNAsvQYW+C0xtw==} dev: false @@ -6564,22 +4999,13 @@ packages: /@types/node@20.7.0: resolution: {integrity: sha512-zI22/pJW2wUZOVyguFaUL1HABdmSVxpXrzIqkjsHmyUjNhPoWM1CKfvVuXfetHhIok4RY573cqS0mZ1SJEnoTg==} - /@types/node@8.10.66: - resolution: {integrity: sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==} - dev: true - /@types/parse-json@4.0.0: resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} dev: false - /@types/pbkdf2@3.1.0: - resolution: {integrity: sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==} - dependencies: - '@types/node': 20.7.0 - dev: true - /@types/prettier@2.7.3: resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==} + dev: false /@types/prop-types@15.7.5: resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} @@ -6591,6 +5017,7 @@ packages: /@types/qs@6.9.7: resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} + dev: false /@types/range-parser@1.2.4: resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} @@ -6610,42 +5037,24 @@ packages: csstype: 3.1.2 dev: false - /@types/readable-stream@2.3.15: - resolution: {integrity: sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==} - dependencies: - '@types/node': 20.7.0 - safe-buffer: 5.1.2 - dev: true - /@types/resolve@1.17.1: resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} dependencies: '@types/node': 20.7.0 dev: false - /@types/responselike@1.0.0: - resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} - dependencies: - '@types/node': 20.7.0 - dev: true - /@types/retry@0.12.0: resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} dev: false /@types/retry@0.12.1: resolution: {integrity: sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==} + dev: false /@types/scheduler@0.16.3: resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} dev: false - /@types/secp256k1@4.0.3: - resolution: {integrity: sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==} - dependencies: - '@types/node': 20.7.0 - dev: true - /@types/semver@7.5.0: resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} @@ -6703,6 +5112,7 @@ packages: resolution: {integrity: sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==} dependencies: '@types/node': 20.7.0 + dev: false /@types/yargs-parser@21.0.0: resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} @@ -6744,7 +5154,7 @@ packages: '@typescript-eslint/scope-manager': 5.60.0 '@typescript-eslint/type-utils': 5.60.0(eslint@8.50.0)(typescript@5.1.6) '@typescript-eslint/utils': 5.60.0(eslint@8.50.0)(typescript@5.1.6) - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 eslint: 8.50.0 grapheme-splitter: 1.0.4 ignore: 5.2.4 @@ -6773,7 +5183,7 @@ packages: '@typescript-eslint/type-utils': 6.7.3(eslint@8.50.0)(typescript@5.1.6) '@typescript-eslint/utils': 6.7.3(eslint@8.50.0)(typescript@5.1.6) '@typescript-eslint/visitor-keys': 6.7.3 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 eslint: 8.50.0 graphemer: 1.4.0 ignore: 5.2.4 @@ -6811,7 +5221,7 @@ packages: '@typescript-eslint/scope-manager': 5.60.0 '@typescript-eslint/types': 5.60.0 '@typescript-eslint/typescript-estree': 5.60.0(typescript@5.1.6) - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 eslint: 8.50.0 typescript: 5.1.6 transitivePeerDependencies: @@ -6832,7 +5242,7 @@ packages: '@typescript-eslint/types': 6.7.3 '@typescript-eslint/typescript-estree': 6.7.3(typescript@5.1.6) '@typescript-eslint/visitor-keys': 6.7.3 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 eslint: 8.50.0 typescript: 5.1.6 transitivePeerDependencies: @@ -6867,7 +5277,7 @@ packages: dependencies: '@typescript-eslint/typescript-estree': 5.60.0(typescript@5.1.6) '@typescript-eslint/utils': 5.60.0(eslint@8.50.0)(typescript@5.1.6) - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 eslint: 8.50.0 tsutils: 3.21.0(typescript@5.1.6) typescript: 5.1.6 @@ -6887,7 +5297,7 @@ packages: dependencies: '@typescript-eslint/typescript-estree': 6.7.3(typescript@5.1.6) '@typescript-eslint/utils': 6.7.3(eslint@8.50.0)(typescript@5.1.6) - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 eslint: 8.50.0 ts-api-utils: 1.0.3(typescript@5.1.6) typescript: 5.1.6 @@ -6916,7 +5326,7 @@ packages: dependencies: '@typescript-eslint/types': 5.60.0 '@typescript-eslint/visitor-keys': 5.60.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 @@ -6937,7 +5347,7 @@ packages: dependencies: '@typescript-eslint/types': 6.7.3 '@typescript-eslint/visitor-keys': 6.7.3 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 @@ -7040,243 +5450,6 @@ packages: pretty-format: 29.7.0 dev: true - /@walletconnect/core@2.8.1(lokijs@1.5.12): - resolution: {integrity: sha512-mN9Zkdl/NeThntK8cydDoQOW6jUEpOeFgYR1RCKPLH51VQwlbdSgvvQIeanSQXEY4U7AM3x8cs1sxqMomIfRQg==} - dependencies: - '@walletconnect/heartbeat': 1.2.1 - '@walletconnect/jsonrpc-provider': 1.0.13 - '@walletconnect/jsonrpc-types': 1.0.3 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/jsonrpc-ws-connection': 1.0.11 - '@walletconnect/keyvaluestorage': 1.0.2(lokijs@1.5.12) - '@walletconnect/logger': 2.0.1 - '@walletconnect/relay-api': 1.0.9 - '@walletconnect/relay-auth': 1.0.4 - '@walletconnect/safe-json': 1.0.2 - '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.8.1(lokijs@1.5.12) - '@walletconnect/utils': 2.8.1(lokijs@1.5.12) - events: 3.3.0 - lodash.isequal: 4.5.0 - uint8arrays: 3.1.1 - transitivePeerDependencies: - - '@react-native-async-storage/async-storage' - - bufferutil - - lokijs - - utf-8-validate - dev: true - - /@walletconnect/environment@1.0.1: - resolution: {integrity: sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg==} - dependencies: - tslib: 1.14.1 - dev: true - - /@walletconnect/events@1.0.1: - resolution: {integrity: sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ==} - dependencies: - keyvaluestorage-interface: 1.0.0 - tslib: 1.14.1 - dev: true - - /@walletconnect/heartbeat@1.2.1: - resolution: {integrity: sha512-yVzws616xsDLJxuG/28FqtZ5rzrTA4gUjdEMTbWB5Y8V1XHRmqq4efAxCw5ie7WjbXFSUyBHaWlMR+2/CpQC5Q==} - dependencies: - '@walletconnect/events': 1.0.1 - '@walletconnect/time': 1.0.2 - tslib: 1.14.1 - dev: true - - /@walletconnect/jsonrpc-http-connection@1.0.7: - resolution: {integrity: sha512-qlfh8fCfu8LOM9JRR9KE0s0wxP6ZG9/Jom8M0qsoIQeKF3Ni0FyV4V1qy/cc7nfI46SLQLSl4tgWSfLiE1swyQ==} - dependencies: - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/safe-json': 1.0.2 - cross-fetch: 3.1.6 - tslib: 1.14.1 - transitivePeerDependencies: - - encoding - dev: true - - /@walletconnect/jsonrpc-provider@1.0.13: - resolution: {integrity: sha512-K73EpThqHnSR26gOyNEL+acEex3P7VWZe6KE12ZwKzAt2H4e5gldZHbjsu2QR9cLeJ8AXuO7kEMOIcRv1QEc7g==} - dependencies: - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/safe-json': 1.0.2 - tslib: 1.14.1 - dev: true - - /@walletconnect/jsonrpc-types@1.0.3: - resolution: {integrity: sha512-iIQ8hboBl3o5ufmJ8cuduGad0CQm3ZlsHtujv9Eu16xq89q+BG7Nh5VLxxUgmtpnrePgFkTwXirCTkwJH1v+Yw==} - dependencies: - keyvaluestorage-interface: 1.0.0 - tslib: 1.14.1 - dev: true - - /@walletconnect/jsonrpc-utils@1.0.8: - resolution: {integrity: sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw==} - dependencies: - '@walletconnect/environment': 1.0.1 - '@walletconnect/jsonrpc-types': 1.0.3 - tslib: 1.14.1 - dev: true - - /@walletconnect/jsonrpc-ws-connection@1.0.11: - resolution: {integrity: sha512-TiFJ6saasKXD+PwGkm5ZGSw0837nc6EeFmurSPgIT/NofnOV4Tv7CVJqGQN0rQYoJUSYu21cwHNYaFkzNpUN+w==} - dependencies: - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/safe-json': 1.0.2 - events: 3.3.0 - tslib: 1.14.1 - ws: 7.5.9 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: true - - /@walletconnect/keyvaluestorage@1.0.2(lokijs@1.5.12): - resolution: {integrity: sha512-U/nNG+VLWoPFdwwKx0oliT4ziKQCEoQ27L5Hhw8YOFGA2Po9A9pULUYNWhDgHkrb0gYDNt//X7wABcEWWBd3FQ==} - peerDependencies: - '@react-native-async-storage/async-storage': 1.x - lokijs: 1.x - peerDependenciesMeta: - '@react-native-async-storage/async-storage': - optional: true - lokijs: - optional: true - dependencies: - lokijs: 1.5.12 - safe-json-utils: 1.1.1 - tslib: 1.14.1 - dev: true - - /@walletconnect/logger@2.0.1: - resolution: {integrity: sha512-SsTKdsgWm+oDTBeNE/zHxxr5eJfZmE9/5yp/Ku+zJtcTAjELb3DXueWkDXmE9h8uHIbJzIb5wj5lPdzyrjT6hQ==} - dependencies: - pino: 7.11.0 - tslib: 1.14.1 - dev: true - - /@walletconnect/relay-api@1.0.9: - resolution: {integrity: sha512-Q3+rylJOqRkO1D9Su0DPE3mmznbAalYapJ9qmzDgK28mYF9alcP3UwG/og5V7l7CFOqzCLi7B8BvcBUrpDj0Rg==} - dependencies: - '@walletconnect/jsonrpc-types': 1.0.3 - tslib: 1.14.1 - dev: true - - /@walletconnect/relay-auth@1.0.4: - resolution: {integrity: sha512-kKJcS6+WxYq5kshpPaxGHdwf5y98ZwbfuS4EE/NkQzqrDFm5Cj+dP8LofzWvjrrLkZq7Afy7WrQMXdLy8Sx7HQ==} - dependencies: - '@stablelib/ed25519': 1.0.3 - '@stablelib/random': 1.0.2 - '@walletconnect/safe-json': 1.0.2 - '@walletconnect/time': 1.0.2 - tslib: 1.14.1 - uint8arrays: 3.1.1 - dev: true - - /@walletconnect/safe-json@1.0.2: - resolution: {integrity: sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==} - dependencies: - tslib: 1.14.1 - dev: true - - /@walletconnect/sign-client@2.8.1(lokijs@1.5.12): - resolution: {integrity: sha512-6DbpjP9BED2YZOZdpVgYo0HwPBV7k99imnsdMFrTn16EFAxhuYP0/qPwum9d072oNMGWJSA6d4rzc8FHNtHsCA==} - dependencies: - '@walletconnect/core': 2.8.1(lokijs@1.5.12) - '@walletconnect/events': 1.0.1 - '@walletconnect/heartbeat': 1.2.1 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/logger': 2.0.1 - '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.8.1(lokijs@1.5.12) - '@walletconnect/utils': 2.8.1(lokijs@1.5.12) - events: 3.3.0 - transitivePeerDependencies: - - '@react-native-async-storage/async-storage' - - bufferutil - - lokijs - - utf-8-validate - dev: true - - /@walletconnect/time@1.0.2: - resolution: {integrity: sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g==} - dependencies: - tslib: 1.14.1 - dev: true - - /@walletconnect/types@2.8.1(lokijs@1.5.12): - resolution: {integrity: sha512-MLISp85b+27vVkm3Wkud+eYCwySXCdOrmn0yQCSN6DnRrrunrD05ksz4CXGP7h2oXUvvXPDt/6lXBf1B4AfqrA==} - dependencies: - '@walletconnect/events': 1.0.1 - '@walletconnect/heartbeat': 1.2.1 - '@walletconnect/jsonrpc-types': 1.0.3 - '@walletconnect/keyvaluestorage': 1.0.2(lokijs@1.5.12) - '@walletconnect/logger': 2.0.1 - events: 3.3.0 - transitivePeerDependencies: - - '@react-native-async-storage/async-storage' - - lokijs - dev: true - - /@walletconnect/universal-provider@2.8.1(lokijs@1.5.12): - resolution: {integrity: sha512-6shgE4PM/S+GEh9oTWMloHZlt2BLsCitRn9tBh2Vf+jZiGlug3WNm+tBc/Fo6ILyHuzeYPbkzCM67AxcutOHGQ==} - dependencies: - '@walletconnect/jsonrpc-http-connection': 1.0.7 - '@walletconnect/jsonrpc-provider': 1.0.13 - '@walletconnect/jsonrpc-types': 1.0.3 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/logger': 2.0.1 - '@walletconnect/sign-client': 2.8.1(lokijs@1.5.12) - '@walletconnect/types': 2.8.1(lokijs@1.5.12) - '@walletconnect/utils': 2.8.1(lokijs@1.5.12) - eip1193-provider: 1.0.1 - events: 3.3.0 - transitivePeerDependencies: - - '@react-native-async-storage/async-storage' - - bufferutil - - debug - - encoding - - lokijs - - utf-8-validate - dev: true - - /@walletconnect/utils@2.8.1(lokijs@1.5.12): - resolution: {integrity: sha512-d6p9OX3v70m6ijp+j4qvqiQZQU1vbEHN48G8HqXasyro3Z+N8vtcB5/gV4pTYsbWgLSDtPHj49mzbWQ0LdIdTw==} - dependencies: - '@stablelib/chacha20poly1305': 1.0.1 - '@stablelib/hkdf': 1.0.1 - '@stablelib/random': 1.0.2 - '@stablelib/sha256': 1.0.1 - '@stablelib/x25519': 1.0.3 - '@walletconnect/relay-api': 1.0.9 - '@walletconnect/safe-json': 1.0.2 - '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.8.1(lokijs@1.5.12) - '@walletconnect/window-getters': 1.0.1 - '@walletconnect/window-metadata': 1.0.1 - detect-browser: 5.3.0 - query-string: 7.1.3 - uint8arrays: 3.1.1 - transitivePeerDependencies: - - '@react-native-async-storage/async-storage' - - lokijs - dev: true - - /@walletconnect/window-getters@1.0.1: - resolution: {integrity: sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==} - dependencies: - tslib: 1.14.1 - dev: true - - /@walletconnect/window-metadata@1.0.1: - resolution: {integrity: sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==} - dependencies: - '@walletconnect/window-getters': 1.0.1 - tslib: 1.14.1 - dev: true - /@wasmer/wasi@0.12.0: resolution: {integrity: sha512-FJhLZKAfLWm/yjQI7eCRHNbA8ezmb7LSpUYFkHruZXs2mXk2+DaQtSElEtOoNrVQ4vApTyVaAd5/b7uEu8w6wQ==} dependencies: @@ -7284,6 +5457,7 @@ packages: buffer-es6: 4.9.3 path-browserify: 1.0.1 randomfill: 1.0.4 + dev: false /@wasmer/wasmfs@0.12.0: resolution: {integrity: sha512-m1ftchyQ1DfSenm5XbbdGIpb6KJHH5z0gODo3IZr6lATkj4WXfX/UeBTZ0aG9YVShBp+kHLdUHvOkqjy6p/GWw==} @@ -7291,6 +5465,7 @@ packages: memfs: 3.0.4 pako: 1.0.11 tar-stream: 2.2.0 + dev: false /@webassemblyjs/ast@1.11.6: resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==} @@ -7410,40 +5585,13 @@ packages: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} dev: false - /abbrev@1.0.9: - resolution: {integrity: sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==} - dev: true - - /abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - dependencies: - event-target-shim: 5.0.1 - dev: true - /abortable-iterator@5.0.1: resolution: {integrity: sha512-hlZ5Z8UwqrKsJcelVPEqDduZowJPBQJ9ZhBC2FXpja3lXy8X6MoI5uMzIgmrA8+3jcVnp8TF/tx+IBBqYJNUrg==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: get-iterator: 2.0.1 it-stream-types: 2.0.1 - - /abortcontroller-polyfill@1.7.5: - resolution: {integrity: sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==} - dev: true - - /abstract-level@1.0.3: - resolution: {integrity: sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==} - engines: {node: '>=12'} - dependencies: - buffer: 6.0.3 - catering: 2.1.1 - is-buffer: 2.0.5 - level-supports: 4.0.1 - level-transcoder: 1.0.1 - module-error: 1.0.2 - queue-microtask: 1.2.3 - dev: true + dev: false /accepts@1.3.8: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} @@ -7451,6 +5599,7 @@ packages: dependencies: mime-types: 2.1.35 negotiator: 0.6.3 + dev: false /acorn-globals@6.0.0: resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==} @@ -7502,6 +5651,7 @@ packages: /address@1.2.2: resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} engines: {node: '>= 10.0.0'} + dev: false /adjust-sourcemap-loader@4.0.0: resolution: {integrity: sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==} @@ -7511,31 +5661,14 @@ packages: regex-parser: 2.2.11 dev: false - /adm-zip@0.4.16: - resolution: {integrity: sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==} - engines: {node: '>=0.3.0'} - dev: true - - /aes-js@3.0.0: - resolution: {integrity: sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==} - dev: true - /agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 transitivePeerDependencies: - supports-color - /aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} - dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 - dev: true - /ajv-formats@2.1.1(ajv@8.12.0): resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: @@ -7579,39 +5712,14 @@ packages: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 uri-js: 4.4.1 - - /amdefine@1.0.1: - resolution: {integrity: sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==} - engines: {node: '>=0.4.2'} - requiresBuild: true - dev: true - optional: true - - /ansi-colors@3.2.3: - resolution: {integrity: sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==} - engines: {node: '>=6'} - dev: true - - /ansi-colors@4.1.1: - resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} - engines: {node: '>=6'} - dev: true - - /ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} - dev: true - - /ansi-escapes@3.2.0: - resolution: {integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==} - engines: {node: '>=4'} - dev: true + dev: false /ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} dependencies: type-fest: 0.21.3 + dev: false /ansi-html-community@0.0.8: resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} @@ -7619,16 +5727,6 @@ packages: hasBin: true dev: false - /ansi-regex@3.0.1: - resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} - engines: {node: '>=4'} - dev: true - - /ansi-regex@4.1.1: - resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} - engines: {node: '>=6'} - dev: true - /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -7654,25 +5752,14 @@ packages: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} - /ansicolors@0.3.2: - resolution: {integrity: sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==} - dev: true - - /antlr4ts@0.5.0-alpha.4: - resolution: {integrity: sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==} - dev: true - /any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} dev: false - /any-signal@3.0.1: - resolution: {integrity: sha512-xgZgJtKEa9YmDqXodIgl7Fl1C8yNXr8w6gXjqK3LW4GcEiYT+6AQfJSE/8SPsEpLLmcvbv8YU+qet94UewHxqg==} - dev: true - /any-signal@4.1.1: resolution: {integrity: sha512-iADenERppdC+A2YKbOXXB2WUeABLaM6qnpZ70kZbPZ1cZMMJ7eF+3CaYm+/PhBizgkzlvssC7QuHS30oOiQYWA==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} + dev: false /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} @@ -7680,6 +5767,7 @@ packages: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 + dev: false /arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} @@ -7692,6 +5780,7 @@ packages: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: sprintf-js: 1.0.3 + dev: false /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -7708,16 +5797,6 @@ packages: dequal: 2.0.3 dev: false - /array-back@3.1.0: - resolution: {integrity: sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==} - engines: {node: '>=6'} - dev: true - - /array-back@4.0.2: - resolution: {integrity: sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==} - engines: {node: '>=8'} - dev: true - /array-buffer-byte-length@1.0.0: resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} dependencies: @@ -7726,6 +5805,7 @@ packages: /array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + dev: false /array-flatten@2.1.2: resolution: {integrity: sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==} @@ -7745,11 +5825,6 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - /array-uniq@1.0.3: - resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} - engines: {node: '>=0.10.0'} - dev: true - /array.prototype.findlastindex@1.2.3: resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} engines: {node: '>= 0.4'} @@ -7788,6 +5863,7 @@ packages: es-abstract: 1.21.2 es-array-method-boxes-properly: 1.0.0 is-string: 1.0.7 + dev: false /array.prototype.tosorted@1.1.1: resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==} @@ -7814,6 +5890,7 @@ packages: /asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + dev: false /asn1.js@5.4.1: resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==} @@ -7824,17 +5901,6 @@ packages: safer-buffer: 2.1.2 dev: true - /asn1@0.2.6: - resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} - dependencies: - safer-buffer: 2.1.2 - dev: true - - /assert-plus@1.0.0: - resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} - engines: {node: '>=0.8'} - dev: true - /assert@2.0.0: resolution: {integrity: sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==} dependencies: @@ -7844,16 +5910,6 @@ packages: util: 0.12.5 dev: true - /assert@2.1.0: - resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==} - dependencies: - call-bind: 1.0.2 - is-nan: 1.3.2 - object-is: 1.1.5 - object.assign: 4.1.4 - util: 0.12.5 - dev: false - /assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} dev: true @@ -7862,19 +5918,6 @@ packages: resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} dev: false - /astral-regex@2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} - engines: {node: '>=8'} - dev: true - - /async-limiter@1.0.1: - resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==} - dev: true - - /async@1.5.2: - resolution: {integrity: sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==} - dev: true - /async@2.6.4: resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} dependencies: @@ -7883,18 +5926,16 @@ packages: /async@3.2.4: resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} + dev: false /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: false /at-least-node@1.0.0: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} engines: {node: '>= 4.0.0'} - - /atomic-sleep@1.0.0: - resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} - engines: {node: '>=8.0.0'} - dev: true + dev: false /autoprefixer@10.4.14(postcss@8.4.24): resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} @@ -7916,27 +5957,11 @@ packages: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} - /aws-sign2@0.7.0: - resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} - dev: true - - /aws4@1.12.0: - resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} - dev: true - /axe-core@4.7.2: resolution: {integrity: sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==} engines: {node: '>=4'} dev: false - /axios@0.21.4: - resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} - dependencies: - follow-redirects: 1.15.2(debug@4.3.4) - transitivePeerDependencies: - - debug - dev: true - /axobject-query@3.2.1: resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} dependencies: @@ -8209,6 +6234,7 @@ packages: /base-x@4.0.0: resolution: {integrity: sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==} + dev: false /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -8224,23 +6250,6 @@ packages: resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} dev: false - /bcrypt-pbkdf@1.0.2: - resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} - dependencies: - tweetnacl: 0.14.5 - dev: true - - /bech32@1.1.4: - resolution: {integrity: sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==} - dev: true - - /benchmark@2.1.4: - resolution: {integrity: sha512-l9MlfN4M1K/H2fbhfMy3B7vJd6AGKJVQn2h6Sg/Yx+KckoUA7ewS5Vv6TjSq18ooE1kS9hhAlQRH3AkXIh/aOQ==} - dependencies: - lodash: 4.17.21 - platform: 1.3.6 - dev: true - /bfj@7.0.2: resolution: {integrity: sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==} engines: {node: '>= 8.0.0'} @@ -8255,25 +6264,10 @@ packages: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} dev: false - /bigint-crypto-utils@3.2.2: - resolution: {integrity: sha512-U1RbE3aX9ayCUVcIPHuPDPKcK3SFOXf93J1UK/iHlJuQB7bhagPIX06/CLpLEsDThJ7KA4Dhrnzynl+d2weTiw==} - engines: {node: '>=14.0.0'} - dev: true - - /bignumber.js@9.1.1: - resolution: {integrity: sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==} - dev: true - /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} - - /bl@1.2.3: - resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==} - dependencies: - readable-stream: 2.3.8 - safe-buffer: 5.2.1 - dev: true + dev: false /bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} @@ -8282,23 +6276,9 @@ packages: inherits: 2.0.4 readable-stream: 3.6.2 - /blakejs@1.2.1: - resolution: {integrity: sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==} - dev: true - - /blob-to-it@2.0.3: - resolution: {integrity: sha512-Z3CAVpJMwB9B/lp+hOGEyD+6Rx690v1EBj37Wf/eF7ltXZEu2ppd2H9w/FFNGlx36PW5tsoynTNt2HwkgNV9hw==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - dependencies: - browser-readablestream-to-it: 2.0.3 - dev: true - /bluebird@3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} - - /bn.js@4.11.6: - resolution: {integrity: sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==} - dev: true + dev: false /bn.js@4.12.0: resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==} @@ -8326,26 +6306,7 @@ packages: unpipe: 1.0.0 transitivePeerDependencies: - supports-color - - /body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.11.0 - raw-body: 2.5.2 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - dev: true + dev: false /bonjour-service@1.1.1: resolution: {integrity: sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==} @@ -8370,6 +6331,7 @@ packages: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 + dev: false /braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} @@ -8381,26 +6343,9 @@ packages: resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} dev: true - /browser-level@1.0.1: - resolution: {integrity: sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==} - dependencies: - abstract-level: 1.0.3 - catering: 2.1.1 - module-error: 1.0.2 - run-parallel-limit: 1.1.0 - dev: true - /browser-process-hrtime@1.0.0: resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} - - /browser-readablestream-to-it@1.0.3: - resolution: {integrity: sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw==} - dev: true - - /browser-readablestream-to-it@2.0.3: - resolution: {integrity: sha512-kFLXH4FWJNZbbIEeqZMCYfVPQx6glf3e1mReo3bB3xbn1o/YWbHsYpxIGo2rfNsmPqv7I+Fg4qObvtvbAq4DbA==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - dev: true + dev: false /browser-resolve@2.0.0: resolution: {integrity: sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==} @@ -8408,10 +6353,6 @@ packages: resolve: 1.22.4 dev: true - /browser-stdout@1.3.1: - resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} - dev: true - /browserify-aes@1.2.0: resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==} dependencies: @@ -8489,24 +6430,11 @@ packages: update-browserslist-db: 1.0.11(browserslist@4.21.9) dev: false - /bs58@4.0.1: - resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==} - dependencies: - base-x: 3.0.9 - dev: true - /bs58@5.0.0: resolution: {integrity: sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==} dependencies: base-x: 4.0.0 - - /bs58check@2.1.2: - resolution: {integrity: sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==} - dependencies: - bs58: 4.0.1 - create-hash: 1.2.0 - safe-buffer: 5.2.1 - dev: true + dev: false /bser@2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} @@ -8514,34 +6442,17 @@ packages: node-int64: 0.4.0 dev: false - /buffer-alloc-unsafe@1.1.0: - resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==} - dev: true - - /buffer-alloc@1.2.0: - resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==} - dependencies: - buffer-alloc-unsafe: 1.1.0 - buffer-fill: 1.0.0 - dev: true - /buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} dev: true /buffer-es6@4.9.3: resolution: {integrity: sha512-Ibt+oXxhmeYJSsCkODPqNpPmyegefiD8rfutH1NYGhMZQhSp95Rz7haemgnJ6dxa6LT+JLLbtgOMORRluwKktw==} - - /buffer-fill@1.0.0: - resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==} - dev: true + dev: false /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - - /buffer-to-arraybuffer@0.0.5: - resolution: {integrity: sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==} - dev: true + dev: false /buffer-xor@1.0.3: resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} @@ -8558,14 +6469,7 @@ packages: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - - /bufferutil@4.0.7: - resolution: {integrity: sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==} - engines: {node: '>=6.14.2'} - requiresBuild: true - dependencies: - node-gyp-build: 4.6.0 - dev: true + dev: false /builtin-modules@3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} @@ -8582,16 +6486,12 @@ packages: dependencies: streamsearch: 1.1.0 - /byline@5.0.0: - resolution: {integrity: sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==} - engines: {node: '>=0.10.0'} - dev: true - /byte-access@1.0.1: resolution: {integrity: sha512-GKYa+lvxnzhgHWj9X+LCsQ4s2/C5uvib573eAOiQKywXMkzFFErY2+yQdzmdE5iWVpmqecsRx3bOtOY4/1eINw==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: uint8arraylist: 2.4.3 + dev: false /bytes@3.0.0: resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} @@ -8601,48 +6501,13 @@ packages: /bytes@3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} + dev: false /cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} dev: true - /cacheable-lookup@5.0.4: - resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} - engines: {node: '>=10.6.0'} - dev: true - - /cacheable-lookup@6.1.0: - resolution: {integrity: sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==} - engines: {node: '>=10.6.0'} - dev: true - - /cacheable-request@6.1.0: - resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} - engines: {node: '>=8'} - dependencies: - clone-response: 1.0.3 - get-stream: 5.2.0 - http-cache-semantics: 4.1.1 - keyv: 3.1.0 - lowercase-keys: 2.0.0 - normalize-url: 4.5.1 - responselike: 1.0.2 - dev: true - - /cacheable-request@7.0.4: - resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} - engines: {node: '>=8'} - dependencies: - clone-response: 1.0.3 - get-stream: 5.2.0 - http-cache-semantics: 4.1.1 - keyv: 4.5.2 - lowercase-keys: 2.0.0 - normalize-url: 6.1.0 - responselike: 2.0.1 - dev: true - /call-bind@1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: @@ -8668,15 +6533,12 @@ packages: /camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} + dev: false /camelcase@6.3.0: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - - /camelcase@7.0.1: - resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} - engines: {node: '>=14.16'} - dev: true + dev: false /caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} @@ -8695,54 +6557,11 @@ packages: resolution: {integrity: sha512-TKiyTVZxJGhsTszLuzb+6vUZSjVOAhClszBr2Ta2k9IwtNBT/4dzmL6aywt0HCgEZlmwJzXJd8yNiob6HgwTRg==} dev: false - /cardinal@2.1.1: - resolution: {integrity: sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==} - hasBin: true - dependencies: - ansicolors: 0.3.2 - redeyed: 2.1.1 - dev: true - /case-sensitive-paths-webpack-plugin@2.4.0: resolution: {integrity: sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==} engines: {node: '>=4'} dev: false - /case@1.6.3: - resolution: {integrity: sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==} - engines: {node: '>= 0.8.0'} - dev: true - - /caseless@0.12.0: - resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} - dev: true - - /catering@2.1.1: - resolution: {integrity: sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==} - engines: {node: '>=6'} - dev: true - - /cbor@8.1.0: - resolution: {integrity: sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==} - engines: {node: '>=12.19'} - dependencies: - nofilter: 3.1.0 - dev: true - - /cborg@2.0.1: - resolution: {integrity: sha512-ySuIj3L6VwlQf0iU82IGGH/Dm1NfNKcGUttRxtVqLKrRJoo2ZeFeLoQj8Y1tASyh5qOfWQn9MN64VsAqVyWNSQ==} - hasBin: true - dev: true - - /chai-as-promised@7.1.1(chai@4.3.10): - resolution: {integrity: sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==} - peerDependencies: - chai: '>= 2.1.2 < 5' - dependencies: - chai: 4.3.10 - check-error: 1.0.3 - dev: true - /chai@4.3.10: resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} engines: {node: '>=4'} @@ -8779,11 +6598,6 @@ packages: ansi-styles: 4.3.0 supports-color: 7.2.0 - /chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - dev: true - /char-regex@1.0.2: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} @@ -8794,14 +6608,6 @@ packages: engines: {node: '>=12.20'} dev: false - /chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - dev: true - - /charenc@0.0.2: - resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} - dev: true - /check-error@1.0.3: resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} dependencies: @@ -8812,21 +6618,6 @@ packages: resolution: {integrity: sha512-HBiYvXvn9Z70Z88XKjz3AEKd4HJhBXsa3j7xFnITAzoS8+q6eIGi8qDB8FKPBAjtuxjI/zFpwuiCb8oDtKOYrA==} dev: false - /chokidar@3.3.0: - resolution: {integrity: sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==} - engines: {node: '>= 8.10.0'} - dependencies: - anymatch: 3.1.3 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.2.0 - optionalDependencies: - fsevents: 2.1.3 - dev: true - /chokidar@3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} @@ -8840,6 +6631,7 @@ packages: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.3 + dev: false /chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} @@ -8859,27 +6651,11 @@ packages: mitt: 3.0.0 dev: true - /ci-info@2.0.0: - resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} - dev: true - /ci-info@3.8.0: resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} engines: {node: '>=8'} dev: false - /cids@0.7.5: - resolution: {integrity: sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==} - engines: {node: '>=4.0.0', npm: '>=3.0.0'} - deprecated: This module has been superseded by the multiformats module - dependencies: - buffer: 5.7.1 - class-is: 1.1.0 - multibase: 0.6.1 - multicodec: 1.0.4 - multihashes: 0.4.21 - dev: true - /cipher-base@1.0.4: resolution: {integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==} dependencies: @@ -8891,22 +6667,6 @@ packages: resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} dev: false - /class-is@1.1.0: - resolution: {integrity: sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==} - dev: true - - /classic-level@1.3.0: - resolution: {integrity: sha512-iwFAJQYtqRTRM0F6L8h4JCt00ZSGdOyqh7yVrhhjrOpFhmBjNlRUey64MCiyo6UmQHMJ+No3c81nujPv+n9yrg==} - engines: {node: '>=12'} - requiresBuild: true - dependencies: - abstract-level: 1.0.3 - catering: 2.1.1 - module-error: 1.0.2 - napi-macros: 2.2.2 - node-gyp-build: 4.6.0 - dev: true - /clean-css@5.3.2: resolution: {integrity: sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==} engines: {node: '>= 10.0'} @@ -8914,82 +6674,13 @@ packages: source-map: 0.6.1 dev: false - /clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} - dev: true - - /clean-stack@3.0.1: - resolution: {integrity: sha512-lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg==} - engines: {node: '>=10'} - dependencies: - escape-string-regexp: 4.0.0 - dev: true - - /cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - dependencies: - restore-cursor: 3.1.0 - dev: true - - /cli-progress@3.12.0: - resolution: {integrity: sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==} - engines: {node: '>=4'} - dependencies: - string-width: 4.2.3 - dev: true - - /cli-spinners@2.9.0: - resolution: {integrity: sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==} - engines: {node: '>=6'} - dev: true - - /cli-table3@0.5.1: - resolution: {integrity: sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==} - engines: {node: '>=6'} - dependencies: - object-assign: 4.1.1 - string-width: 2.1.1 - optionalDependencies: - colors: 1.4.0 - dev: true - - /cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} - dev: true - - /cli-width@4.1.0: - resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} - engines: {node: '>= 12'} - dev: true - - /cliui@5.0.0: - resolution: {integrity: sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==} - dependencies: - string-width: 3.1.0 - strip-ansi: 5.2.0 - wrap-ansi: 5.1.0 - dev: true - /cliui@7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - - /clone-response@1.0.3: - resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} - dependencies: - mimic-response: 1.0.1 - dev: true - - /clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - dev: true + dev: false /co@4.6.0: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} @@ -9034,47 +6725,16 @@ packages: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} dev: false - /colors@1.4.0: - resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} - engines: {node: '>=0.1.90'} - dev: true - /combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 - - /command-exists@1.2.9: - resolution: {integrity: sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==} - dev: true - - /command-line-args@5.2.1: - resolution: {integrity: sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==} - engines: {node: '>=4.0.0'} - dependencies: - array-back: 3.1.0 - find-replace: 3.0.0 - lodash.camelcase: 4.3.0 - typical: 4.0.0 - dev: true - - /command-line-usage@6.1.3: - resolution: {integrity: sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==} - engines: {node: '>=8.0.0'} - dependencies: - array-back: 4.0.2 - chalk: 2.4.2 - table-layout: 1.0.2 - typical: 5.2.0 - dev: true + dev: false /commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - - /commander@3.0.2: - resolution: {integrity: sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==} - dev: true + dev: false /commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} @@ -9129,16 +6789,6 @@ packages: /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - /concat-stream@1.6.2: - resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} - engines: {'0': node >= 0.8} - dependencies: - buffer-from: 1.1.2 - inherits: 2.0.4 - readable-stream: 2.3.8 - typedarray: 0.0.6 - dev: true - /confusing-browser-globals@1.0.11: resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} dev: false @@ -9166,18 +6816,12 @@ packages: engines: {node: '>= 0.6'} dependencies: safe-buffer: 5.2.1 - - /content-hash@2.5.2: - resolution: {integrity: sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==} - dependencies: - cids: 0.7.5 - multicodec: 0.5.7 - multihashes: 0.4.21 - dev: true + dev: false /content-type@1.0.5: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} + dev: false /convert-source-map@1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} @@ -9185,19 +6829,12 @@ packages: /cookie-signature@1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - - /cookie@0.4.2: - resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} - engines: {node: '>= 0.6'} - dev: true + dev: false /cookie@0.5.0: resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} engines: {node: '>= 0.6'} - - /cookiejar@2.1.4: - resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==} - dev: true + dev: false /core-js-compat@3.31.0: resolution: {integrity: sha512-hM7YCu1cU6Opx7MXNu0NuumM0ezNeAeRKadixyiQELWY3vT3De9S4J5ZBMraWV2vZnrE1Cirl0GtFtDtMUXzPw==} @@ -9215,20 +6852,9 @@ packages: requiresBuild: true dev: false - /core-util-is@1.0.2: - resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} - dev: true - /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - - /cors@2.8.5: - resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} - engines: {node: '>= 0.10'} - dependencies: - object-assign: 4.1.1 - vary: 1.1.2 - dev: true + dev: false /corser@2.0.1: resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==} @@ -9267,16 +6893,6 @@ packages: path-type: 4.0.0 dev: true - /countly-sdk-nodejs@22.6.0: - resolution: {integrity: sha512-vw6YRGJJu6sq9oZEz00SyAL7oyru+w1ct3P6TS0avMPRSZ/mqEXYq3l+Wtl89L/HwXcDymh8gY7JOOAPnI7vEg==} - dev: true - - /crc-32@1.2.2: - resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} - engines: {node: '>=0.8'} - hasBin: true - dev: true - /create-ecdh@4.0.4: resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} dependencies: @@ -9316,25 +6932,6 @@ packages: - encoding dev: true - /cross-fetch@3.1.6: - resolution: {integrity: sha512-riRvo06crlE8HiqOwIpQhxwdOk4fOeR7FVM/wXoxchFEqMNUjvbs3bfo4OTgMEMHzppd4DxFBDbyySj8Cv781g==} - dependencies: - node-fetch: 2.6.13 - transitivePeerDependencies: - - encoding - dev: true - - /cross-spawn@6.0.5: - resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} - engines: {node: '>=4.8'} - dependencies: - nice-try: 1.0.5 - path-key: 2.0.1 - semver: 5.7.1 - shebang-command: 1.2.0 - which: 1.3.1 - dev: true - /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -9343,10 +6940,6 @@ packages: shebang-command: 2.0.0 which: 2.0.2 - /crypt@0.0.2: - resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} - dev: true - /crypto-browserify@3.12.0: resolution: {integrity: sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==} dependencies: @@ -9602,31 +7195,10 @@ packages: resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} dev: false - /d@1.0.1: - resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==} - dependencies: - es5-ext: 0.10.62 - type: 1.2.0 - dev: true - - /dag-jose@4.0.0: - resolution: {integrity: sha512-tw595L3UYoOUT9dSJPbBEG/qpRpw24kRZxa5SLRnlnr+g5L7O8oEs1d3W5TiVA1oJZbthVsf0Vi3zFN66qcEBA==} - dependencies: - '@ipld/dag-cbor': 9.0.3 - multiformats: 11.0.1 - dev: true - /damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} dev: false - /dashdash@1.14.1: - resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} - engines: {node: '>=0.10'} - dependencies: - assert-plus: 1.0.0 - dev: true - /data-urls@2.0.0: resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==} engines: {node: '>=10'} @@ -9655,10 +7227,7 @@ packages: uint8arrays: 4.0.3 transitivePeerDependencies: - supports-color - - /death@1.1.0: - resolution: {integrity: sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w==} - dev: true + dev: false /debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} @@ -9669,19 +7238,7 @@ packages: optional: true dependencies: ms: 2.0.0 - - /debug@3.2.6(supports-color@6.0.0): - resolution: {integrity: sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==} - deprecated: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797) - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.3 - supports-color: 6.0.0 - dev: true + dev: false /debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} @@ -9693,7 +7250,7 @@ packages: dependencies: ms: 2.1.3 - /debug@4.3.4(supports-color@8.1.1): + /debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} peerDependencies: @@ -9703,94 +7260,11 @@ packages: optional: true dependencies: ms: 2.1.2 - supports-color: 8.1.1 - - /decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - dev: true - - /decamelize@4.0.0: - resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} - engines: {node: '>=10'} - dev: true /decimal.js@10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} dev: false - /decode-uri-component@0.2.2: - resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} - engines: {node: '>=0.10'} - dev: true - - /decompress-response@3.3.0: - resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} - engines: {node: '>=4'} - dependencies: - mimic-response: 1.0.1 - dev: true - - /decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} - dependencies: - mimic-response: 3.1.0 - dev: true - - /decompress-tar@4.1.1: - resolution: {integrity: sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==} - engines: {node: '>=4'} - dependencies: - file-type: 5.2.0 - is-stream: 1.1.0 - tar-stream: 1.6.2 - dev: true - - /decompress-tarbz2@4.1.1: - resolution: {integrity: sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==} - engines: {node: '>=4'} - dependencies: - decompress-tar: 4.1.1 - file-type: 6.2.0 - is-stream: 1.1.0 - seek-bzip: 1.0.6 - unbzip2-stream: 1.4.3 - dev: true - - /decompress-targz@4.1.1: - resolution: {integrity: sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==} - engines: {node: '>=4'} - dependencies: - decompress-tar: 4.1.1 - file-type: 5.2.0 - is-stream: 1.1.0 - dev: true - - /decompress-unzip@4.0.1: - resolution: {integrity: sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==} - engines: {node: '>=4'} - dependencies: - file-type: 3.9.0 - get-stream: 2.3.1 - pify: 2.3.0 - yauzl: 2.10.0 - dev: true - - /decompress@4.2.1: - resolution: {integrity: sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==} - engines: {node: '>=4'} - dependencies: - decompress-tar: 4.1.1 - decompress-tarbz2: 4.1.1 - decompress-targz: 4.1.1 - decompress-unzip: 4.0.1 - graceful-fs: 4.2.11 - make-dir: 1.3.0 - pify: 2.3.0 - strip-dirs: 2.1.0 - dev: true - /dedent@0.7.0: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} dev: false @@ -9825,11 +7299,6 @@ packages: which-typed-array: 1.1.11 dev: false - /deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} - dev: true - /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -9843,25 +7312,12 @@ packages: engines: {node: '>= 10'} dependencies: execa: 5.1.1 + dev: false /default-import@1.1.5: resolution: {integrity: sha512-aaJ6uzZlmaEcN1U8yvtiyV7MG3/zZQf1XtGSW5dTfAVvfk0VZuriJelXxVL9a0ni42vMkhjWcztFfpIhwFcfOQ==} engines: {node: '>=14'} - - /defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - dependencies: - clone: 1.0.4 - dev: true - - /defer-to-connect@1.1.3: - resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} - dev: true - - /defer-to-connect@2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} - engines: {node: '>=10'} - dev: true + dev: false /define-data-property@1.1.0: resolution: {integrity: sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==} @@ -9887,10 +7343,12 @@ packages: /delay@6.0.0: resolution: {integrity: sha512-2NJozoOHQ4NuZuVIr5CWd0iiLVIRSDepakaovIN+9eIDHEhdCAEvSy2cuf1DCrPPQLvHmbqTHODlhHg8UCy4zw==} engines: {node: '>=16'} + dev: false /delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} + dev: false /depd@1.1.2: resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} @@ -9900,6 +7358,7 @@ packages: /depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} + dev: false /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} @@ -9916,10 +7375,7 @@ packages: /destroy@1.2.0: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - /detect-browser@5.3.0: - resolution: {integrity: sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==} - dev: true + dev: false /detect-newline@3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} @@ -9941,16 +7397,6 @@ packages: - supports-color dev: false - /detect-port@1.5.1: - resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} - hasBin: true - dependencies: - address: 1.2.2 - debug: 4.3.4(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - dev: true - /devtools-protocol@0.0.1094867: resolution: {integrity: sha512-pmMDBKiRVjh0uKK6CT1WqZmM3hBVSgD+N2MrgyV1uNizAZMw4tx6i/RTc+/uCsKSCmg0xXx7arCP/OFcIwTsiQ==} dev: true @@ -9969,20 +7415,10 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /diff@3.5.0: - resolution: {integrity: sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==} - engines: {node: '>=0.3.1'} - dev: true - /diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} - /diff@5.0.0: - resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} - engines: {node: '>=0.3.1'} - dev: true - /diffie-hellman@5.0.3: resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==} dependencies: @@ -10009,7 +7445,7 @@ packages: resolution: {integrity: sha512-Lm/eXB7yAQLJ5WxlBGwYfBY7utduXPZykcSmcG6K7ozM0wrZFvxZavhT6PqI0kd/5CUTfev/RrEFQqyU4CGPew==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 native-fetch: 4.0.2(undici@5.22.1) receptacle: 1.3.2 undici: 5.22.1 @@ -10060,10 +7496,6 @@ packages: entities: 2.2.0 dev: false - /dom-walk@0.1.2: - resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==} - dev: true - /domain-browser@4.22.0: resolution: {integrity: sha512-IGBwjF7tNk3cwypFNH/7bfzBcgSCbaMOD3GsaY1AU/JRrnHnYgEM0+9kQt52iZxjNsjBtJYtao146V+f8jFZNw==} engines: {node: '>=10'} @@ -10122,48 +7554,13 @@ packages: engines: {node: '>=10'} dev: false - /dotenv@16.3.1: - resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} - engines: {node: '>=12'} - dev: true - - /duplexer3@0.1.5: - resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} - dev: true - /duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} dev: false - /duplexify@4.1.2: - resolution: {integrity: sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==} - dependencies: - end-of-stream: 1.4.4 - inherits: 2.0.4 - readable-stream: 3.6.2 - stream-shift: 1.0.1 - dev: true - - /ecc-jsbn@0.1.2: - resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} - dependencies: - jsbn: 0.1.1 - safer-buffer: 2.1.2 - dev: true - /ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - - /eip1193-provider@1.0.1: - resolution: {integrity: sha512-kSuqwQ26d7CzuS/t3yRXo2Su2cVH0QfvyKbr2H7Be7O5YDyIq4hQGCNTo5wRdP07bt+E2R/8nPCzey4ojBHf7g==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - dependencies: - '@json-rpc-tools/provider': 1.7.6 - transitivePeerDependencies: - - bufferutil - - debug - - utf-8-validate - dev: true + dev: false /ejs@3.1.9: resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} @@ -10171,13 +7568,7 @@ packages: hasBin: true dependencies: jake: 10.8.7 - - /electron-fetch@1.9.1: - resolution: {integrity: sha512-M9qw6oUILGVrcENMSRRefE1MbHPIz0h79EKIeJWK9v563aT9Qkh8aEHPO1H5vi970wPirNY+jO9OpFoLiMsMGA==} - engines: {node: '>=6'} - dependencies: - encoding: 0.1.13 - dev: true + dev: false /electron-to-chromium@1.4.434: resolution: {integrity: sha512-5Gvm09UZTQRaWrimRtWRO5rvaX6Kpk5WHAPKDa7A4Gj6NIPuJ8w8WNpnxCXdd+CJJt6RBU6tUw0KyULoW6XuHw==} @@ -10209,12 +7600,9 @@ packages: engines: {node: '>=10'} dev: false - /emoji-regex@7.0.3: - resolution: {integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==} - dev: true - /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: false /emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} @@ -10228,12 +7616,7 @@ packages: /encodeurl@1.0.2: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} - - /encoding@0.1.13: - resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} - dependencies: - iconv-lite: 0.6.3 - dev: true + dev: false /end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} @@ -10248,22 +7631,10 @@ packages: tapable: 2.2.1 dev: false - /enquirer@2.3.6: - resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} - engines: {node: '>=8.6'} - dependencies: - ansi-colors: 4.1.3 - dev: true - /entities@2.2.0: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} dev: false - /env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} - dev: true - /err-code@3.0.1: resolution: {integrity: sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==} @@ -10364,6 +7735,7 @@ packages: /es-array-method-boxes-properly@1.0.0: resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} + dev: false /es-get-iterator@1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} @@ -10404,39 +7776,10 @@ packages: is-date-object: 1.0.5 is-symbol: 1.0.4 - /es5-ext@0.10.62: - resolution: {integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==} - engines: {node: '>=0.10'} - requiresBuild: true - dependencies: - es6-iterator: 2.0.3 - es6-symbol: 3.1.3 - next-tick: 1.1.0 - dev: true - - /es6-iterator@2.0.3: - resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} - dependencies: - d: 1.0.1 - es5-ext: 0.10.62 - es6-symbol: 3.1.3 - dev: true - /es6-object-assign@1.1.0: resolution: {integrity: sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==} dev: true - /es6-promise@4.2.8: - resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} - dev: true - - /es6-symbol@3.1.3: - resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==} - dependencies: - d: 1.0.1 - ext: 1.7.0 - dev: true - /esbuild@0.18.20: resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} engines: {node: '>=12'} @@ -10500,9 +7843,11 @@ packages: /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} + dev: false /escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + dev: false /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} @@ -10517,24 +7862,6 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - /escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} - dev: true - - /escodegen@1.8.1: - resolution: {integrity: sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==} - engines: {node: '>=0.12.0'} - hasBin: true - dependencies: - esprima: 2.7.3 - estraverse: 1.9.3 - esutils: 2.0.3 - optionator: 0.8.3 - optionalDependencies: - source-map: 0.2.0 - dev: true - /escodegen@2.1.0: resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} engines: {node: '>=6.0'} @@ -10919,7 +8246,7 @@ packages: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -10953,6 +8280,7 @@ packages: resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} engines: {node: '>=6'} requiresBuild: true + dev: false optional: true /espree@9.6.1: @@ -10963,16 +8291,11 @@ packages: acorn-jsx: 5.3.2(acorn@8.10.0) eslint-visitor-keys: 3.4.3 - /esprima@2.7.3: - resolution: {integrity: sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==} - engines: {node: '>=0.10.0'} - hasBin: true - dev: true - /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true + dev: false /esquery@1.5.0: resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} @@ -10986,11 +8309,6 @@ packages: dependencies: estraverse: 5.3.0 - /estraverse@1.9.3: - resolution: {integrity: sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==} - engines: {node: '>=0.10.0'} - dev: true - /estraverse@4.3.0: resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} engines: {node: '>=4.0'} @@ -11015,206 +8333,11 @@ packages: /etag@1.8.1: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} - - /eth-ens-namehash@2.0.8: - resolution: {integrity: sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==} - dependencies: - idna-uts46-hx: 2.3.1 - js-sha3: 0.5.7 - dev: true - - /eth-gas-reporter@0.2.25: - resolution: {integrity: sha512-1fRgyE4xUB8SoqLgN3eDfpDfwEfRxh2Sz1b7wzFbyQA+9TekMmvSjjoRu9SKcSVyK+vLkLIsVbJDsTWjw195OQ==} - peerDependencies: - '@codechecks/client': ^0.1.0 - peerDependenciesMeta: - '@codechecks/client': - optional: true - dependencies: - '@ethersproject/abi': 5.7.0 - '@solidity-parser/parser': 0.14.5 - cli-table3: 0.5.1 - colors: 1.4.0 - ethereum-cryptography: 1.2.0 - ethers: 4.0.49 - fs-readdir-recursive: 1.1.0 - lodash: 4.17.21 - markdown-table: 1.1.3 - mocha: 7.2.0 - req-cwd: 2.0.0 - request: 2.88.2 - request-promise-native: 1.0.9(request@2.88.2) - sha1: 1.1.1 - sync-request: 6.1.0 - dev: true - - /eth-lib@0.1.29: - resolution: {integrity: sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==} - dependencies: - bn.js: 4.12.0 - elliptic: 6.5.4 - nano-json-stream-parser: 0.1.2 - servify: 0.1.12 - ws: 3.3.3 - xhr-request-promise: 0.1.3 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - - /eth-lib@0.2.8: - resolution: {integrity: sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==} - dependencies: - bn.js: 4.12.0 - elliptic: 6.5.4 - xhr-request-promise: 0.1.3 - dev: true - - /ethereum-bloom-filters@1.0.10: - resolution: {integrity: sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==} - dependencies: - js-sha3: 0.8.0 - dev: true - - /ethereum-cryptography@0.1.3: - resolution: {integrity: sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==} - dependencies: - '@types/pbkdf2': 3.1.0 - '@types/secp256k1': 4.0.3 - blakejs: 1.2.1 - browserify-aes: 1.2.0 - bs58check: 2.1.2 - create-hash: 1.2.0 - create-hmac: 1.1.7 - hash.js: 1.1.7 - keccak: 3.0.3 - pbkdf2: 3.1.2 - randombytes: 2.1.0 - safe-buffer: 5.2.1 - scrypt-js: 3.0.1 - secp256k1: 4.0.3 - setimmediate: 1.0.5 - dev: true - - /ethereum-cryptography@1.2.0: - resolution: {integrity: sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==} - dependencies: - '@noble/hashes': 1.2.0 - '@noble/secp256k1': 1.7.1 - '@scure/bip32': 1.1.5 - '@scure/bip39': 1.1.1 - dev: true - - /ethereumjs-abi@0.6.8: - resolution: {integrity: sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==} - dependencies: - bn.js: 4.12.0 - ethereumjs-util: 6.2.1 - dev: true - - /ethereumjs-util@6.2.1: - resolution: {integrity: sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==} - dependencies: - '@types/bn.js': 4.11.6 - bn.js: 4.12.0 - create-hash: 1.2.0 - elliptic: 6.5.4 - ethereum-cryptography: 0.1.3 - ethjs-util: 0.1.6 - rlp: 2.2.7 - dev: true - - /ethereumjs-util@7.1.5: - resolution: {integrity: sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==} - engines: {node: '>=10.0.0'} - dependencies: - '@types/bn.js': 5.1.1 - bn.js: 5.2.1 - create-hash: 1.2.0 - ethereum-cryptography: 0.1.3 - rlp: 2.2.7 - dev: true - - /ethers@4.0.49: - resolution: {integrity: sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==} - dependencies: - aes-js: 3.0.0 - bn.js: 4.12.0 - elliptic: 6.5.4 - hash.js: 1.1.3 - js-sha3: 0.5.7 - scrypt-js: 2.0.4 - setimmediate: 1.0.4 - uuid: 2.0.1 - xmlhttprequest: 1.8.0 - dev: true - - /ethers@5.7.2: - resolution: {integrity: sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==} - dependencies: - '@ethersproject/abi': 5.7.0 - '@ethersproject/abstract-provider': 5.7.0 - '@ethersproject/abstract-signer': 5.7.0 - '@ethersproject/address': 5.7.0 - '@ethersproject/base64': 5.7.0 - '@ethersproject/basex': 5.7.0 - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/constants': 5.7.0 - '@ethersproject/contracts': 5.7.0 - '@ethersproject/hash': 5.7.0 - '@ethersproject/hdnode': 5.7.0 - '@ethersproject/json-wallets': 5.7.0 - '@ethersproject/keccak256': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/networks': 5.7.1 - '@ethersproject/pbkdf2': 5.7.0 - '@ethersproject/properties': 5.7.0 - '@ethersproject/providers': 5.7.2 - '@ethersproject/random': 5.7.0 - '@ethersproject/rlp': 5.7.0 - '@ethersproject/sha2': 5.7.0 - '@ethersproject/signing-key': 5.7.0 - '@ethersproject/solidity': 5.7.0 - '@ethersproject/strings': 5.7.0 - '@ethersproject/transactions': 5.7.0 - '@ethersproject/units': 5.7.0 - '@ethersproject/wallet': 5.7.0 - '@ethersproject/web': 5.7.1 - '@ethersproject/wordlists': 5.7.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: true - - /ethjs-unit@0.1.6: - resolution: {integrity: sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==} - engines: {node: '>=6.5.0', npm: '>=3'} - dependencies: - bn.js: 4.11.6 - number-to-bn: 1.7.0 - dev: true - - /ethjs-util@0.1.6: - resolution: {integrity: sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==} - engines: {node: '>=6.5.0', npm: '>=3'} - dependencies: - is-hex-prefixed: 1.0.0 - strip-hex-prefix: 1.0.0 - dev: true + dev: false /event-iterator@2.0.0: resolution: {integrity: sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ==} - - /event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} - dev: true - - /eventemitter3@4.0.4: - resolution: {integrity: sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==} - dev: true + dev: false /eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} @@ -11243,6 +8366,7 @@ packages: onetime: 5.1.2 signal-exit: 3.0.7 strip-final-newline: 2.0.0 + dev: false /exit@0.1.2: resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} @@ -11296,32 +8420,14 @@ packages: vary: 1.1.2 transitivePeerDependencies: - supports-color - - /ext@1.7.0: - resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} - dependencies: - type: 2.7.2 - dev: true - - /extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - dev: true - - /external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 - dev: true + dev: false /extract-zip@2.0.1: resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} engines: {node: '>= 10.17.0'} hasBin: true dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -11330,20 +8436,12 @@ packages: - supports-color dev: true - /extsprintf@1.3.0: - resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} - engines: {'0': node >=0.6.0} - dev: true - /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} /fast-extend@1.0.2: resolution: {integrity: sha512-XXA9RmlPatkFKUzqVZAFth18R4Wo+Xug/S+C7YlYA3xrXwfPlW3dqNwOb4hvQo7wZJ2cNDYhrYuPzVOfHy5/uQ==} - - /fast-fifo@1.2.0: - resolution: {integrity: sha512-NcvQXt7Cky1cNau15FWy64IjuO8X0JijhTBBrJj1YlxlDfRkJXNaK9RFUjwpfDPzMdv7wB38jr53l9tkNLxnWg==} - dev: true + dev: false /fast-glob@3.2.12: resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} @@ -11355,38 +8453,18 @@ packages: merge2: 1.4.1 micromatch: 4.0.5 - /fast-json-patch@3.1.1: - resolution: {integrity: sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==} - dev: true - /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} /fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - /fast-levenshtein@3.0.0: - resolution: {integrity: sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==} - dependencies: - fastest-levenshtein: 1.0.16 - dev: true - - /fast-redact@3.2.0: - resolution: {integrity: sha512-zaTadChr+NekyzallAMXATXLOR8MNx3zqpZ0MUF2aGf4EathnG0f32VLODNlY8IuGY3HoRO2L6/6fSzNsLaHIw==} - engines: {node: '>=6'} - dev: true - /fast-url-parser@1.1.3: resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} dependencies: punycode: 1.4.1 dev: false - /fastest-levenshtein@1.0.16: - resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} - engines: {node: '>= 4.9.1'} - dev: true - /fastq@1.15.0: resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} dependencies: @@ -11411,21 +8489,6 @@ packages: pend: 1.2.0 dev: true - /figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} - dependencies: - escape-string-regexp: 1.0.5 - dev: true - - /figures@5.0.0: - resolution: {integrity: sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==} - engines: {node: '>=14'} - dependencies: - escape-string-regexp: 5.0.0 - is-unicode-supported: 1.3.0 - dev: true - /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -11443,42 +8506,11 @@ packages: webpack: 5.87.0 dev: false - /file-type@3.9.0: - resolution: {integrity: sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==} - engines: {node: '>=0.10.0'} - dev: true - - /file-type@5.2.0: - resolution: {integrity: sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==} - engines: {node: '>=4'} - dev: true - - /file-type@6.2.0: - resolution: {integrity: sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==} - engines: {node: '>=4'} - dev: true - /filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} dependencies: minimatch: 5.1.6 - - /filename-reserved-regex@3.0.0: - resolution: {integrity: sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - - /filenamify@6.0.0: - resolution: {integrity: sha512-vqIlNogKeyD3yzrm0yhRMQg8hOVwYcYRfjEoODd49iCprMn4HL85gK3HcykQE53EPIpX3HcAbGA5ELQv216dAQ==} - engines: {node: '>=16'} - dependencies: - filename-reserved-regex: 3.0.0 - dev: true - - /filesize@6.4.0: - resolution: {integrity: sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==} - engines: {node: '>= 0.4.0'} - dev: true + dev: false /filesize@8.0.7: resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==} @@ -11491,11 +8523,6 @@ packages: dependencies: to-regex-range: 5.0.1 - /filter-obj@1.1.0: - resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} - engines: {node: '>=0.10.0'} - dev: true - /finalhandler@1.2.0: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} @@ -11509,6 +8536,7 @@ packages: unpipe: 1.0.0 transitivePeerDependencies: - supports-color + dev: false /find-cache-dir@3.3.2: resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} @@ -11519,25 +8547,12 @@ packages: pkg-dir: 4.2.0 dev: false - /find-replace@3.0.0: - resolution: {integrity: sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==} - engines: {node: '>=4.0.0'} - dependencies: - array-back: 3.1.0 - dev: true - - /find-up@2.1.0: - resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} - engines: {node: '>=4'} - dependencies: - locate-path: 2.0.0 - dev: true - /find-up@3.0.0: resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} engines: {node: '>=6'} dependencies: locate-path: 3.0.0 + dev: false /find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} @@ -11561,22 +8576,10 @@ packages: flatted: 3.2.7 rimraf: 3.0.2 - /flat@4.1.1: - resolution: {integrity: sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==} - hasBin: true - dependencies: - is-buffer: 2.0.5 - dev: true - - /flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true - dev: true - /flatted@3.2.7: resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} - /follow-redirects@1.15.2(debug@4.3.4): + /follow-redirects@1.15.2: resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} engines: {node: '>=4.0'} peerDependencies: @@ -11584,18 +8587,12 @@ packages: peerDependenciesMeta: debug: optional: true - dependencies: - debug: 4.3.4(supports-color@8.1.1) /for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: is-callable: 1.2.7 - /forever-agent@0.6.1: - resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} - dev: true - /fork-ts-checker-webpack-plugin@6.5.3(eslint@8.50.0)(typescript@5.1.6)(webpack@5.87.0): resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} engines: {node: '>=10', yarn: '>=1.0.0'} @@ -11628,28 +8625,6 @@ packages: webpack: 5.87.0 dev: false - /form-data-encoder@1.7.1: - resolution: {integrity: sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==} - dev: true - - /form-data@2.3.3: - resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} - engines: {node: '>= 0.12'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: true - - /form-data@2.5.1: - resolution: {integrity: sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==} - engines: {node: '>= 0.12'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: true - /form-data@3.0.1: resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} engines: {node: '>= 6'} @@ -11662,10 +8637,7 @@ packages: /forwarded@0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} - - /fp-ts@1.19.3: - resolution: {integrity: sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==} - dev: true + dev: false /fraction.js@4.2.0: resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} @@ -11674,24 +8646,16 @@ packages: /freeport-promise@2.0.0: resolution: {integrity: sha512-dwWpT1DdQcwrhmRwnDnPM/ZFny+FtzU+k50qF2eid3KxaQDsMiBrwo1i0G3qSugkN5db6Cb0zgfc68QeTOpEFg==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} + dev: false /fresh@0.5.2: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} + dev: false /fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - /fs-extra@0.30.0: - resolution: {integrity: sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 2.4.0 - klaw: 1.3.1 - path-is-absolute: 1.0.1 - rimraf: 2.7.1 - dev: true - /fs-extra@10.1.0: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} @@ -11701,32 +8665,6 @@ packages: universalify: 2.0.0 dev: false - /fs-extra@4.0.3: - resolution: {integrity: sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - dev: true - - /fs-extra@7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} - engines: {node: '>=6 <7 || >=8'} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - dev: true - - /fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} - engines: {node: '>=6 <7 || >=8'} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - dev: true - /fs-extra@9.1.0: resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} engines: {node: '>=10'} @@ -11735,36 +8673,19 @@ packages: graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.0 - - /fs-minipass@1.2.7: - resolution: {integrity: sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==} - dependencies: - minipass: 2.9.0 - dev: true + dev: false /fs-monkey@0.3.3: resolution: {integrity: sha512-FNUvuTAJ3CqCQb5ELn+qCbGR/Zllhf2HtwsdAtBi59s1WeCjKMT81fHcSu7dwIskqGVK+MmOrb7VOBlq3/SItw==} + dev: false /fs-monkey@1.0.4: resolution: {integrity: sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ==} dev: false - /fs-readdir-recursive@1.1.0: - resolution: {integrity: sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==} - dev: true - /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - /fsevents@2.1.3: - resolution: {integrity: sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - deprecated: '"Please update to latest v2.3 or v2.2"' - requiresBuild: true - dev: true - optional: true - /fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -11794,10 +8715,6 @@ packages: functions-have-names: 1.2.3 dev: true - /functional-red-black-tree@1.0.1: - resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} - dev: true - /functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} @@ -11809,6 +8726,7 @@ packages: /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} + dev: false /get-func-name@2.0.0: resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} @@ -11826,12 +8744,9 @@ packages: has-proto: 1.0.1 has-symbols: 1.0.3 - /get-iterator@1.0.2: - resolution: {integrity: sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==} - dev: true - /get-iterator@2.0.1: resolution: {integrity: sha512-7HuY/hebu4gryTDT7O/XY/fvY9wRByEGdK6QOa4of8npTcv0+NS6frFKABcf6S9EBAsveTuKTsZQQBFMMNILIg==} + dev: false /get-own-enumerable-property-symbols@3.0.2: resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} @@ -11840,33 +8755,7 @@ packages: /get-package-type@0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} - - /get-port@3.2.0: - resolution: {integrity: sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==} - engines: {node: '>=4'} - dev: true - - /get-random-values@2.1.0: - resolution: {integrity: sha512-q2yOLpLyA8f9unfv2LV8KVRUFeOIrQVS5cnqpbv6N+ea9j1rmW5dFKj/2Q7CK3juEfDYQgPxGt941VJcmw0jKg==} - engines: {node: 14 || 16 || >=18} - dependencies: - global: 4.4.0 - dev: true - - /get-stream@2.3.1: - resolution: {integrity: sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==} - engines: {node: '>=0.10.0'} - dependencies: - object-assign: 4.1.1 - pinkie-promise: 2.0.1 - dev: true - - /get-stream@4.1.0: - resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} - engines: {node: '>=6'} - dependencies: - pump: 3.0.0 - dev: true + dev: false /get-stream@5.2.0: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} @@ -11878,6 +8767,7 @@ packages: /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} + dev: false /get-symbol-description@1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} @@ -11886,20 +8776,6 @@ packages: call-bind: 1.0.2 get-intrinsic: 1.2.1 - /getpass@0.1.7: - resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} - dependencies: - assert-plus: 1.0.0 - dev: true - - /ghost-testrpc@0.0.2: - resolution: {integrity: sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==} - hasBin: true - dependencies: - chalk: 2.4.2 - node-emoji: 1.11.0 - dev: true - /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -11916,27 +8792,6 @@ packages: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} dev: false - /glob@5.0.15: - resolution: {integrity: sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==} - dependencies: - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - - /glob@7.1.3: - resolution: {integrity: sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - /glob@7.1.6: resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} dependencies: @@ -11948,28 +8803,6 @@ packages: path-is-absolute: 1.0.1 dev: false - /glob@7.1.7: - resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - - /glob@7.2.0: - resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: @@ -11985,6 +8818,7 @@ packages: engines: {node: '>=6'} dependencies: global-prefix: 3.0.0 + dev: false /global-prefix@3.0.0: resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} @@ -11993,13 +8827,7 @@ packages: ini: 1.3.8 kind-of: 6.0.3 which: 1.3.1 - - /global@4.4.0: - resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} - dependencies: - min-document: 2.19.0 - process: 0.11.10 - dev: true + dev: false /globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} @@ -12018,20 +8846,6 @@ packages: dependencies: define-properties: 1.2.0 - /globby@10.0.2: - resolution: {integrity: sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==} - engines: {node: '>=8'} - dependencies: - '@types/glob': 7.2.0 - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.2.12 - glob: 7.2.3 - ignore: 5.2.4 - merge2: 1.4.1 - slash: 3.0.0 - dev: true - /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -12052,63 +8866,9 @@ packages: dependencies: get-intrinsic: 1.2.1 - /got@11.8.6: - resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} - engines: {node: '>=10.19.0'} - dependencies: - '@sindresorhus/is': 4.6.0 - '@szmarczak/http-timer': 4.0.6 - '@types/cacheable-request': 6.0.3 - '@types/responselike': 1.0.0 - cacheable-lookup: 5.0.4 - cacheable-request: 7.0.4 - decompress-response: 6.0.0 - http2-wrapper: 1.0.3 - lowercase-keys: 2.0.0 - p-cancelable: 2.1.1 - responselike: 2.0.1 - dev: true - - /got@12.1.0: - resolution: {integrity: sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==} - engines: {node: '>=14.16'} - dependencies: - '@sindresorhus/is': 4.6.0 - '@szmarczak/http-timer': 5.0.1 - '@types/cacheable-request': 6.0.3 - '@types/responselike': 1.0.0 - cacheable-lookup: 6.1.0 - cacheable-request: 7.0.4 - decompress-response: 6.0.0 - form-data-encoder: 1.7.1 - get-stream: 6.0.1 - http2-wrapper: 2.2.0 - lowercase-keys: 3.0.0 - p-cancelable: 3.0.0 - responselike: 2.0.1 - dev: true - - /got@9.6.0: - resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} - engines: {node: '>=8.6'} - dependencies: - '@sindresorhus/is': 0.14.0 - '@szmarczak/http-timer': 1.1.2 - '@types/keyv': 3.1.4 - '@types/responselike': 1.0.0 - cacheable-request: 6.1.0 - decompress-response: 3.3.0 - duplexer3: 0.1.5 - get-stream: 4.1.0 - lowercase-keys: 1.0.1 - mimic-response: 1.0.1 - p-cancelable: 1.1.0 - to-readable-stream: 1.0.0 - url-parse-lax: 3.0.0 - dev: true - /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: false /grapheme-splitter@1.0.4: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} @@ -12117,11 +8877,6 @@ packages: /graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - /growl@1.10.5: - resolution: {integrity: sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==} - engines: {node: '>=4.x'} - dev: true - /gzip-size@6.0.0: resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} engines: {node: '>=10'} @@ -12133,117 +8888,6 @@ packages: resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} dev: false - /handlebars@4.7.7: - resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} - engines: {node: '>=0.4.7'} - hasBin: true - dependencies: - minimist: 1.2.8 - neo-async: 2.6.2 - source-map: 0.6.1 - wordwrap: 1.0.0 - optionalDependencies: - uglify-js: 3.17.4 - dev: true - - /har-schema@2.0.0: - resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} - engines: {node: '>=4'} - dev: true - - /har-validator@5.1.5: - resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} - engines: {node: '>=6'} - deprecated: this library is no longer supported - dependencies: - ajv: 6.12.6 - har-schema: 2.0.0 - dev: true - - /hardhat-gas-reporter@1.0.9(hardhat@2.15.0): - resolution: {integrity: sha512-INN26G3EW43adGKBNzYWOlI3+rlLnasXTwW79YNnUhXPDa+yHESgt639dJEs37gCjhkbNKcRRJnomXEuMFBXJg==} - peerDependencies: - hardhat: ^2.0.2 - dependencies: - array-uniq: 1.0.3 - eth-gas-reporter: 0.2.25 - hardhat: 2.15.0(ts-node@10.9.1)(typescript@5.1.6) - sha1: 1.1.1 - transitivePeerDependencies: - - '@codechecks/client' - dev: true - - /hardhat@2.15.0(ts-node@10.9.1)(typescript@5.1.6): - resolution: {integrity: sha512-cC9tM/N10YaES04zPOp7yR13iX3YibqaNmi0//Ep40Nt9ELIJx3kFpQmucur0PAIfXYpGnw5RuXHNLkxpnVHEw==} - engines: {node: '>=14.0.0'} - hasBin: true - peerDependencies: - ts-node: '*' - typescript: '*' - peerDependenciesMeta: - ts-node: - optional: true - typescript: - optional: true - dependencies: - '@ethersproject/abi': 5.7.0 - '@metamask/eth-sig-util': 4.0.1 - '@nomicfoundation/ethereumjs-block': 5.0.1 - '@nomicfoundation/ethereumjs-blockchain': 7.0.1 - '@nomicfoundation/ethereumjs-common': 4.0.1 - '@nomicfoundation/ethereumjs-evm': 2.0.1 - '@nomicfoundation/ethereumjs-rlp': 5.0.1 - '@nomicfoundation/ethereumjs-statemanager': 2.0.1 - '@nomicfoundation/ethereumjs-trie': 6.0.1 - '@nomicfoundation/ethereumjs-tx': 5.0.1 - '@nomicfoundation/ethereumjs-util': 9.0.1 - '@nomicfoundation/ethereumjs-vm': 7.0.1 - '@nomicfoundation/solidity-analyzer': 0.1.1 - '@sentry/node': 5.30.0 - '@types/bn.js': 5.1.1 - '@types/lru-cache': 5.1.1 - abort-controller: 3.0.0 - adm-zip: 0.4.16 - aggregate-error: 3.1.0 - ansi-escapes: 4.3.2 - chalk: 2.4.2 - chokidar: 3.5.3 - ci-info: 2.0.0 - debug: 4.3.4(supports-color@8.1.1) - enquirer: 2.3.6 - env-paths: 2.2.1 - ethereum-cryptography: 1.2.0 - ethereumjs-abi: 0.6.8 - find-up: 2.1.0 - fp-ts: 1.19.3 - fs-extra: 7.0.1 - glob: 7.2.0 - immutable: 4.3.0 - io-ts: 1.10.4 - keccak: 3.0.3 - lodash: 4.17.21 - mnemonist: 0.38.5 - mocha: 10.2.0 - p-map: 4.0.0 - qs: 6.11.2 - raw-body: 2.5.2 - resolve: 1.17.0 - semver: 6.3.1 - solc: 0.7.3(debug@4.3.4) - source-map-support: 0.5.21 - stacktrace-parser: 0.1.10 - ts-node: 10.9.1(@types/node@20.7.0)(typescript@5.1.6) - tsort: 0.0.1 - typescript: 5.1.6 - undici: 5.22.1 - uuid: 8.3.2 - ws: 7.5.9 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - /harmony-reflect@1.6.2: resolution: {integrity: sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==} dev: false @@ -12251,11 +8895,6 @@ packages: /has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - /has-flag@1.0.0: - resolution: {integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==} - engines: {node: '>=0.10.0'} - dev: true - /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} @@ -12298,13 +8937,6 @@ packages: safe-buffer: 5.2.1 dev: true - /hash.js@1.1.3: - resolution: {integrity: sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==} - dependencies: - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - dev: true - /hash.js@1.1.7: resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} dependencies: @@ -12316,10 +8948,6 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true - /headers-polyfill@3.1.2: - resolution: {integrity: sha512-tWCK4biJ6hcLqTviLXVR9DTRfYGQMXEIUj3gwJ2rZ5wO/at3XtkI4g8mCvFdUF9l1KMBNCfmNAdnahm1cgavQA==} - dev: true - /hmac-drbg@1.0.1: resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} dependencies: @@ -12405,34 +9033,6 @@ packages: entities: 2.2.0 dev: false - /http-basic@8.1.3: - resolution: {integrity: sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==} - engines: {node: '>=6.0.0'} - dependencies: - caseless: 0.12.0 - concat-stream: 1.6.2 - http-response-object: 3.0.2 - parse-cache-control: 1.0.1 - dev: true - - /http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - dev: true - - /http-call@5.3.0: - resolution: {integrity: sha512-ahwimsC23ICE4kPl9xTBjKB4inbRaeLyZeRunC/1Jy/Z6X8tv22MEAjK+KBOMSVLaqXPTTmd8638waVIKLGx2w==} - engines: {node: '>=8.0.0'} - dependencies: - content-type: 1.0.5 - debug: 4.3.4(supports-color@8.1.1) - is-retry-allowed: 1.2.0 - is-stream: 2.0.1 - parse-json: 4.0.0 - tunnel-agent: 0.6.0 - transitivePeerDependencies: - - supports-color - dev: true - /http-deceiver@1.2.7: resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} dev: false @@ -12456,10 +9056,7 @@ packages: setprototypeof: 1.2.0 statuses: 2.0.1 toidentifier: 1.0.1 - - /http-https@1.0.0: - resolution: {integrity: sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==} - dev: true + dev: false /http-parser-js@0.5.8: resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} @@ -12471,7 +9068,7 @@ packages: dependencies: '@tootallnate/once': 1.1.2 agent-base: 6.0.2 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 transitivePeerDependencies: - supports-color dev: false @@ -12500,17 +9097,11 @@ packages: engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.2(debug@4.3.4) + follow-redirects: 1.15.2 requires-port: 1.0.0 transitivePeerDependencies: - debug - /http-response-object@3.0.2: - resolution: {integrity: sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==} - dependencies: - '@types/node': 10.17.60 - dev: true - /http-server@14.1.1: resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==} engines: {node: '>=12'} @@ -12534,31 +9125,6 @@ packages: - supports-color dev: true - /http-signature@1.2.0: - resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} - engines: {node: '>=0.8', npm: '>=1.3.7'} - dependencies: - assert-plus: 1.0.0 - jsprim: 1.4.2 - sshpk: 1.17.0 - dev: true - - /http2-wrapper@1.0.3: - resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} - engines: {node: '>=10.19.0'} - dependencies: - quick-lru: 5.1.1 - resolve-alpn: 1.2.1 - dev: true - - /http2-wrapper@2.2.0: - resolution: {integrity: sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==} - engines: {node: '>=10.19.0'} - dependencies: - quick-lru: 5.1.1 - resolve-alpn: 1.2.1 - dev: true - /https-browserify@1.0.0: resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==} dev: true @@ -12568,24 +9134,21 @@ packages: engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 transitivePeerDependencies: - supports-color /human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} - - /hyperlinker@1.0.0: - resolution: {integrity: sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ==} - engines: {node: '>=4'} - dev: true + dev: false /iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 + dev: false /iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} @@ -12613,13 +9176,6 @@ packages: harmony-reflect: 1.6.2 dev: false - /idna-uts46-hx@2.3.1: - resolution: {integrity: sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==} - engines: {node: '>=4.0.0'} - dependencies: - punycode: 2.1.0 - dev: true - /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -12631,10 +9187,6 @@ packages: resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} dev: false - /immutable@4.3.0: - resolution: {integrity: sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==} - dev: true - /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -12658,6 +9210,7 @@ packages: /indent-string@4.0.0: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} + dev: false /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} @@ -12674,57 +9227,7 @@ packages: /ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - - /inquirer@8.2.6: - resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} - engines: {node: '>=12.0.0'} - dependencies: - ansi-escapes: 4.3.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - external-editor: 3.1.0 - figures: 3.2.0 - lodash: 4.17.21 - mute-stream: 0.0.8 - ora: 5.4.1 - run-async: 2.4.1 - rxjs: 7.5.5 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - wrap-ansi: 6.2.0 - dev: true - - /inquirer@9.2.10: - resolution: {integrity: sha512-tVVNFIXU8qNHoULiazz612GFl+yqNfjMTbLuViNJE/d860Qxrd3NMrse8dm40VUQLOQeULvaQF8lpAhvysjeyA==} - engines: {node: '>=14.18.0'} - dependencies: - '@ljharb/through': 2.3.9 - ansi-escapes: 4.3.2 - chalk: 5.3.0 - cli-cursor: 3.1.0 - cli-width: 4.1.0 - external-editor: 3.1.0 - figures: 5.0.0 - lodash: 4.17.21 - mute-stream: 1.0.0 - ora: 5.4.1 - run-async: 3.0.0 - rxjs: 7.8.1 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 6.2.0 - dev: true - - /interface-datastore@7.0.4: - resolution: {integrity: sha512-Q8LZS/jfFFHz6XyZazLTAc078SSCoa27ZPBOfobWdpDiFO7FqPA2yskitUJIhaCgxNK8C+/lMBUTBNfVIDvLiw==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - dependencies: - interface-store: 3.0.4 - nanoid: 4.0.2 - uint8arrays: 4.0.3 - dev: true + dev: false /interface-datastore@8.2.3: resolution: {integrity: sha512-5U6BfK7cR4oSngm4pqYZBBAX7tpLI4YCOa3Ifz/EJEaEV2mmlloH5qP8ADWCVFk6vP1MPT925JJkt3kFIi7iWQ==} @@ -12733,15 +9236,12 @@ packages: interface-store: 5.1.2 nanoid: 4.0.2 uint8arrays: 4.0.3 - - /interface-store@3.0.4: - resolution: {integrity: sha512-OjHUuGXbH4eXSBx1TF1tTySvjLldPLzRSYYXJwrEQI+XfH5JWYZofr0gVMV4F8XTwC+4V7jomDYkvGRmDSRKqQ==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - dev: true + dev: false /interface-store@5.1.2: resolution: {integrity: sha512-q2sLoqC+UdaWnjwGyghsH0jwqqVk226lsG207e3QwPB8sAZYmYIWUnJwJH3JjFNNRV9e6CUTmm+gDO0Xg4KRiw==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} + dev: false /internal-slot@1.0.5: resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} @@ -12751,138 +9251,20 @@ packages: has: 1.0.3 side-channel: 1.0.4 - /interpret@1.4.0: - resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} - engines: {node: '>= 0.10'} - dev: true - - /io-ts@1.10.4: - resolution: {integrity: sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==} - dependencies: - fp-ts: 1.19.3 - dev: true - /ip-regex@5.0.0: resolution: {integrity: sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false /ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} + dev: false /ipaddr.js@2.1.0: resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==} engines: {node: '>= 10'} - - /ipfs-core-types@0.14.1: - resolution: {integrity: sha512-4ujF8NlM9bYi2I6AIqPP9wfGGX0x/gRCkMoFdOQfxxrFg6HcAdfS+0/irK8mp4e7znOHWReOHeWqCGw+dAPwsw==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - deprecated: js-IPFS has been deprecated in favour of Helia - please see https://github.com/ipfs/js-ipfs/issues/4336 for details - dependencies: - '@ipld/dag-pb': 4.0.4 - '@libp2p/interface-keychain': 2.0.5 - '@libp2p/interface-peer-id': 2.0.2 - '@libp2p/interface-peer-info': 1.0.10 - '@libp2p/interface-pubsub': 3.0.7 - '@multiformats/multiaddr': 11.3.0 - '@types/node': 18.13.0 - interface-datastore: 7.0.4 - ipfs-unixfs: 9.0.1 - multiformats: 11.0.1 - transitivePeerDependencies: - - supports-color - dev: true - - /ipfs-core-utils@0.18.1: - resolution: {integrity: sha512-P7jTpdfvlyBG3JR4o+Th3QJADlmXmwMxbkjszXry6VAjfSfLIIqXsdeYPoVRkV69GFEeQozuz2k/jR+U8cUH/Q==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - deprecated: js-IPFS has been deprecated in favour of Helia - please see https://github.com/ipfs/js-ipfs/issues/4336 for details - dependencies: - '@libp2p/logger': 2.1.1 - '@multiformats/multiaddr': 11.3.0 - '@multiformats/multiaddr-to-uri': 9.0.7 - any-signal: 3.0.1 - blob-to-it: 2.0.3 - browser-readablestream-to-it: 2.0.3 - err-code: 3.0.1 - ipfs-core-types: 0.14.1 - ipfs-unixfs: 9.0.1 - ipfs-utils: 9.0.14 - it-all: 2.0.1 - it-map: 2.0.0 - it-peekable: 2.0.1 - it-to-stream: 1.0.0 - merge-options: 3.0.4 - multiformats: 11.0.1 - nanoid: 4.0.2 - parse-duration: 1.1.0 - timeout-abort-controller: 3.0.0 - uint8arrays: 4.0.3 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - - /ipfs-http-client@60.0.1: - resolution: {integrity: sha512-amwM5TNuf077J+/q27jPHfatC05vJuIbX6ZnlYLjc2QsjOCKsORNBqV3brNw7l+fPrijV1yrwEDLG3JEnKsfMw==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - deprecated: js-IPFS has been deprecated in favour of Helia - please see https://github.com/ipfs/js-ipfs/issues/4336 for details - dependencies: - '@ipld/dag-cbor': 9.0.3 - '@ipld/dag-json': 10.1.2 - '@ipld/dag-pb': 4.0.4 - '@libp2p/logger': 2.1.1 - '@libp2p/peer-id': 2.0.1 - '@multiformats/multiaddr': 11.3.0 - any-signal: 3.0.1 - dag-jose: 4.0.0 - err-code: 3.0.1 - ipfs-core-types: 0.14.1 - ipfs-core-utils: 0.18.1 - ipfs-utils: 9.0.14 - it-first: 2.0.1 - it-last: 2.0.1 - merge-options: 3.0.4 - multiformats: 11.0.1 - parse-duration: 1.1.0 - stream-to-it: 0.2.4 - uint8arrays: 4.0.3 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - - /ipfs-unixfs@9.0.1: - resolution: {integrity: sha512-jh2CbXyxID+v3jLml9CqMwjdSS9ZRnsGfQGGPOfem0/hT/L48xUeTPvh7qLFWkZcIMhZtG+fnS1teei8x5uGBg==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - dependencies: - err-code: 3.0.1 - protobufjs: 7.2.4 - dev: true - - /ipfs-utils@9.0.14: - resolution: {integrity: sha512-zIaiEGX18QATxgaS0/EOQNoo33W0islREABAcxXE8n7y2MGAlB+hdsxXn4J0hGZge8IqVQhW8sWIb+oJz2yEvg==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - dependencies: - any-signal: 3.0.1 - browser-readablestream-to-it: 1.0.3 - buffer: 6.0.3 - electron-fetch: 1.9.1 - err-code: 3.0.1 - is-electron: 2.2.2 - iso-url: 1.2.1 - it-all: 1.0.6 - it-glob: 1.0.2 - it-to-stream: 1.0.0 - merge-options: 3.0.4 - nanoid: 3.3.6 - native-fetch: 3.0.0(node-fetch@2.6.13) - node-fetch: 2.6.13 - react-native-fetch-api: 3.0.0 - stream-to-it: 0.2.4 - transitivePeerDependencies: - - encoding - dev: true + dev: false /is-arguments@1.1.1: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} @@ -12911,6 +9293,7 @@ packages: engines: {node: '>=8'} dependencies: binary-extensions: 2.2.0 + dev: false /is-boolean-object@1.1.2: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} @@ -12919,11 +9302,6 @@ packages: call-bind: 1.0.2 has-tostringtag: 1.0.0 - /is-buffer@2.0.5: - resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} - engines: {node: '>=4'} - dev: true - /is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} @@ -12943,26 +9321,20 @@ packages: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} hasBin: true + dev: false /is-electron@2.2.2: resolution: {integrity: sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg==} + dev: false /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - /is-fullwidth-code-point@2.0.0: - resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} - engines: {node: '>=4'} - dev: true - /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - - /is-function@1.0.2: - resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==} - dev: true + dev: false /is-generator-fn@2.1.0: resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} @@ -12974,6 +9346,7 @@ packages: engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 + dev: true /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} @@ -12981,18 +9354,9 @@ packages: dependencies: is-extglob: 2.1.1 - /is-hex-prefixed@1.0.0: - resolution: {integrity: sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==} - engines: {node: '>=6.5.0', npm: '>=3'} - dev: true - - /is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - dev: true - /is-loopback-addr@2.0.1: resolution: {integrity: sha512-SEsepLbdWFb13B6U0tt6dYcUM0iK/U7XOC43N70Z4Qb88WpNtp+ospyNI9ddpqncs7Z7brAEsVBTQpaqSNntIw==} + dev: false /is-map@2.0.2: resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} @@ -13008,19 +9372,12 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - - /is-natural-number@4.0.1: - resolution: {integrity: sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==} dev: true /is-negative-zero@2.0.2: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} engines: {node: '>= 0.4'} - /is-node-process@1.2.0: - resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} - dev: true - /is-number-object@1.0.7: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} @@ -13039,6 +9396,7 @@ packages: /is-observable@2.1.0: resolution: {integrity: sha512-DailKdLb0WU+xX8K5w7VsJhapwHLZ9jjmazqCJq4X12CTgqq73TKnbRcnSLuXYPOoLQgV5IrD7ePiX/h1vnkBw==} engines: {node: '>=8'} + dev: false /is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} @@ -13047,6 +9405,7 @@ packages: /is-plain-obj@2.1.0: resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} engines: {node: '>=8'} + dev: false /is-plain-obj@3.0.0: resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} @@ -13069,11 +9428,6 @@ packages: engines: {node: '>=0.10.0'} dev: false - /is-retry-allowed@1.2.0: - resolution: {integrity: sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==} - engines: {node: '>=0.10.0'} - dev: true - /is-root@2.1.0: resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==} engines: {node: '>=6'} @@ -13088,14 +9442,10 @@ packages: dependencies: call-bind: 1.0.2 - /is-stream@1.1.0: - resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} - engines: {node: '>=0.10.0'} - dev: true - /is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} + dev: false /is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} @@ -13117,16 +9467,7 @@ packages: /is-typedarray@1.0.0: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - - /is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - dev: true - - /is-unicode-supported@1.3.0: - resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} - engines: {node: '>=12'} - dev: true + dev: false /is-weakmap@2.0.1: resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} @@ -13149,9 +9490,11 @@ packages: engines: {node: '>=8'} dependencies: is-docker: 2.2.1 + dev: false /isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + dev: false /isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} @@ -13162,16 +9505,13 @@ packages: /iso-url@1.2.1: resolution: {integrity: sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng==} engines: {node: '>=12'} + dev: false /isomorphic-timers-promises@1.0.1: resolution: {integrity: sha512-u4sej9B1LPSxTGKB/HiuzvEQnXH0ECYkSVQU39koSwmFAxhlEAFl9RdTvLv4TOTQUgBS5O3O5fwUxk6byBZ+IQ==} engines: {node: '>=10'} dev: true - /isstream@0.1.2: - resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} - dev: true - /istanbul-lib-coverage@3.2.0: resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} engines: {node: '>=8'} @@ -13203,7 +9543,7 @@ packages: resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} engines: {node: '>=10'} dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 istanbul-lib-coverage: 3.2.0 source-map: 0.6.1 transitivePeerDependencies: @@ -13218,24 +9558,9 @@ packages: istanbul-lib-report: 3.0.1 dev: false - /it-all@1.0.6: - resolution: {integrity: sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==} - dev: true - - /it-all@2.0.1: - resolution: {integrity: sha512-9UuJcCRZsboz+HBQTNOau80Dw+ryGaHYFP/cPYzFBJBFcfDathMYnhHk4t52en9+fcyDGPTdLB+lFc1wzQIroA==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - dev: true - /it-all@3.0.3: resolution: {integrity: sha512-LwEVD1d0b1O5mDwumnZk+80jSBn5sXDxQ41xiD6j6l2lRiWH6lBLdxXx1C6mlKrXQwRHzUQagOZUmqttDUwb0A==} - - /it-batched-bytes@2.0.4: - resolution: {integrity: sha512-n4V19XACvFG+b8lCkuvidYvwpyz3++DAolqZGI+9AcDvIPMAhVwwtFCe9SiDIz45OzQnnNYwBgBxbIinHPgraA==} - dependencies: - p-defer: 4.0.0 - uint8arraylist: 2.4.3 - dev: true + dev: false /it-byte-stream@1.0.1: resolution: {integrity: sha512-Nu1/y8ObmrEmpHfWBHrWKtla9xwTdnMceB7v1z7tM+H84VP5Ou59wyFiJHsyvuIETLfKFY+TfhEbOJy24FRGjQ==} @@ -13243,23 +9568,22 @@ packages: it-pushable: 3.2.1 it-stream-types: 2.0.1 uint8arraylist: 2.4.3 + dev: false /it-drain@3.0.3: resolution: {integrity: sha512-l4s+izxUpFAR2axprpFiCaq0EtxK1QMd0LWbEtau5b+OegiZ5xdRtz35iJyh6KZY9QtuwEiQxydiOfYJc7stoA==} + dev: false /it-filter@3.0.3: resolution: {integrity: sha512-2zXUrJuuV6QHM21ahc8NqVUUxkLMVDWXBoUBcj9GCQLQez2OXmddTHN0r0F5B+TkNTpeL618yIgXi1HNPJOxow==} dependencies: it-peekable: 3.0.2 - - /it-first@2.0.1: - resolution: {integrity: sha512-noC1oEQcWZZMUwq7VWxHNLML43dM+5bviZpfmkxkXlvBe60z7AFRqpZSga9uQBo792jKv9otnn1IjA4zwgNARw==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - dev: true + dev: false /it-first@3.0.2: resolution: {integrity: sha512-QPLAM2BOkait/o6W25HvP0XTEv+Os3Ce4wET//ADNaPv+WYAHWfQwJuMu5FB8X066hA1F7LEMnULvTpE7/4yQw==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} + dev: false /it-foreach@2.0.4: resolution: {integrity: sha512-txxcoc09g+KdLyOapxAuB12H9zUb2FuZC/TqSXRT+YR0T5fHnvcDIhspgvx/e/HiPKlKjOR8onA0qtuiAtcXqg==} @@ -13267,13 +9591,6 @@ packages: it-peekable: 3.0.2 dev: false - /it-glob@1.0.2: - resolution: {integrity: sha512-Ch2Dzhw4URfB9L/0ZHyY+uqOnKvBNeS/SMcRiPmJfpHiM0TsUZn+GkpcZxAoF3dJVdPm/PuIk3A4wlV7SUo23Q==} - dependencies: - '@types/minimatch': 3.0.5 - minimatch: 3.1.2 - dev: true - /it-handshake@4.1.3: resolution: {integrity: sha512-V6Lt9A9usox9iduOX+edU1Vo94E6v9Lt9dOvg3ubFaw1qf5NCxXLi93Ao4fyCHWDYd8Y+DUhadwNtWVyn7qqLg==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} @@ -13283,11 +9600,7 @@ packages: it-stream-types: 2.0.1 p-defer: 4.0.0 uint8arraylist: 2.4.3 - - /it-last@2.0.1: - resolution: {integrity: sha512-uVMedYW0wa2Cx0TAmcOCLbfuLLII7+vyURmhKa8Zovpd+aBTMsmINtsta2n364wJ5qsEDBH+akY1sUtAkaYBlg==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - dev: true + dev: false /it-length-prefixed-stream@1.0.2: resolution: {integrity: sha512-gWevodoctgwWUaRJN9t+xEs1H1GQNYAjLCR7FO50fon9Ph4OJGgrxPKTc26QXKrC/cIQZLkHYClphUw0wl1k2A==} @@ -13297,6 +9610,7 @@ packages: it-stream-types: 2.0.1 uint8-varint: 2.0.1 uint8arraylist: 2.4.3 + dev: false /it-length-prefixed@8.0.4: resolution: {integrity: sha512-5OJ1lxH+IaqJB7lxe8IAIwt9UfSfsmjKJoAI/RO9djYoBDt1Jfy9PeVHUmOfqhqyu/4kJvWBFAJUaG1HhLQ12A==} @@ -13307,6 +9621,7 @@ packages: uint8-varint: 1.0.6 uint8arraylist: 2.4.3 uint8arrays: 4.0.3 + dev: false /it-length-prefixed@9.0.3: resolution: {integrity: sha512-YAu424ceYpXctxtjcLOqn7vJq082CaoP8J646ZusYISfQc3bpzQErgTUqMFj81V262KG2W9/YMBHsy6A/4yvmg==} @@ -13318,26 +9633,31 @@ packages: uint8-varint: 2.0.1 uint8arraylist: 2.4.3 uint8arrays: 4.0.3 + dev: false /it-map@2.0.0: resolution: {integrity: sha512-mLgtk/NZaN7NZ06iLrMXCA6jjhtZO0vZT5Ocsp31H+nsGI18RSPVmUbFyA1sWx7q+g92J22Sixya7T2QSSAwfA==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} + dev: false /it-map@3.0.4: resolution: {integrity: sha512-h5zCxovJQ+mzJT75xP4GkJuFrJQ5l7IIdhZ6AOWaE02g5F7T1k1j4CB/uKSRR05LLLOi1LqG+7CrH9bi8GIXYA==} dependencies: it-peekable: 3.0.2 + dev: false /it-merge@2.0.1: resolution: {integrity: sha512-ItoBy3dPlNKnhjHR8e7nfabfZzH4Jy2OMPvayYH3XHy4YNqSVKmWTIxhz7KX4UMBsLChlIJZ+5j6csJgrYGQtw==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: it-pushable: 3.1.3 + dev: false /it-merge@3.0.2: resolution: {integrity: sha512-bMk2km8lTz+Rwv30hzDUdGIcqQkOemFJqmGT2wqQZ6/zHKCsYqdRunPrteCqHLV/nIVhUK8nZZkDA2eJ4MJZiA==} dependencies: it-pushable: 3.2.1 + dev: false /it-pair@2.0.6: resolution: {integrity: sha512-5M0t5RAcYEQYNG5BV7d7cqbdwbCAp5yLdzvkxsZmkuZsLbTdZzah6MQySYfaAQjNDCq6PUnDt0hqBZ4NwMfW6g==} @@ -13345,19 +9665,17 @@ packages: dependencies: it-stream-types: 2.0.1 p-defer: 4.0.0 + dev: false /it-parallel@3.0.4: resolution: {integrity: sha512-fuA+SysGxbZc+Yl7EUvzQqZ8bNYQghZ0Mq9zA+fxMQ5eQYzatNg6oJk1y1PvPvNqLgKJMzEInpRO6PbLC3hGAg==} dependencies: p-defer: 4.0.0 - - /it-peekable@2.0.1: - resolution: {integrity: sha512-fJ/YTU9rHRhGJOM2hhQKKEfRM6uKB9r4yGGFLBHqp72ACC8Yi6+7/FhuBAMG8cpN6mLoj9auVX7ZJ3ul6qFpTA==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - dev: true + dev: false /it-peekable@3.0.2: resolution: {integrity: sha512-nWwUdhNQ1CfAuoJmsaUotNMYUrfNIlY9gBA1jwWfWSu1I0mLY2brwreKHGOUptXLJUiG5pR04He0xYZMWBRiGA==} + dev: false /it-pipe@2.0.5: resolution: {integrity: sha512-y85nW1N6zoiTnkidr2EAyC+ZVzc7Mwt2p+xt2a2ooG1ThFakSpNw1Kxm+7F13Aivru96brJhjQVRQNU+w0yozw==} @@ -13366,6 +9684,7 @@ packages: it-merge: 2.0.1 it-pushable: 3.2.1 it-stream-types: 1.0.5 + dev: false /it-pipe@3.0.1: resolution: {integrity: sha512-sIoNrQl1qSRg2seYSBH/3QxWhJFn9PKYvOf/bHdtCBF0bnghey44VyASsWzn5dAx0DCDDABq1hZIuzKmtBZmKA==} @@ -13374,6 +9693,7 @@ packages: it-merge: 3.0.2 it-pushable: 3.2.1 it-stream-types: 2.0.1 + dev: false /it-protobuf-stream@1.0.2: resolution: {integrity: sha512-2lESJIeZS2ZlYJc/1SKs6LL4Y83rCCvZv750xV1e4uuP9114yNkw2MhIGCtSReg+qNWCvzGqOwjQbKV0LFE6wQ==} @@ -13382,16 +9702,19 @@ packages: it-stream-types: 2.0.1 protons-runtime: 5.0.2(uint8arraylist@2.4.3) uint8arraylist: 2.4.3 + dev: false /it-pushable@3.1.3: resolution: {integrity: sha512-f50iQ85HISS6DaWCyrqf9QJ6G/kQtKIMf9xZkgZgyOvxEQDfn8OfYcLXXquCqgoLboxQtAW1ZFZyFIAsLHDtJw==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} + dev: false /it-pushable@3.2.1: resolution: {integrity: sha512-sLFz2Q0oyDCJpTciZog7ipP4vSftfPy3e6JnH6YyztRa1XqkpGQaafK3Jw/JlfEBtCXfnX9uVfcpu3xpSAqCVQ==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: p-defer: 4.0.0 + dev: false /it-reader@6.0.4: resolution: {integrity: sha512-XCWifEcNFFjjBHtor4Sfaj8rcpt+FkY0L6WdhD578SCDhV4VUm7fCkF3dv5a+fTcfQqvN9BsxBTvWbYO6iCjTg==} @@ -13399,33 +9722,27 @@ packages: dependencies: it-stream-types: 2.0.1 uint8arraylist: 2.4.3 + dev: false /it-sort@3.0.3: resolution: {integrity: sha512-9BuQc5Y2fmBUNhevQBUDHfItrQmzWoZcnzydJl91V6na6M+RkbNj71UtCPPNIpOt/SQG+va0pe1wMQJ9lP2Oew==} dependencies: it-all: 3.0.3 + dev: false /it-stream-types@1.0.5: resolution: {integrity: sha512-I88Ka1nHgfX62e5mi5LLL+oueqz7Ltg0bUdtsUKDe9SoUqbQPf2Mp5kxDTe9pNhHQGs4pvYPAINwuZ1HAt42TA==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} + dev: false /it-stream-types@2.0.1: resolution: {integrity: sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} + dev: false /it-take@3.0.3: resolution: {integrity: sha512-Ay5SXEyrBKD0tO8PQif2QjrStImIsLIg0F50Uu4EeXOw8C9DfVIGfsGL3X9s65F2I9skDp9mLgBzl71IToMxNw==} - - /it-to-stream@1.0.0: - resolution: {integrity: sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==} - dependencies: - buffer: 6.0.3 - fast-fifo: 1.2.0 - get-iterator: 1.0.2 - p-defer: 3.0.0 - p-fifo: 1.0.0 - readable-stream: 3.6.2 - dev: true + dev: false /it-ws@6.0.5: resolution: {integrity: sha512-xp7tF4fHgx8+vN3Qy/8wGiWUKbC9E1U1g9PwtlbdxD7pY4zld71ZyWZVFHLxnxxg14T9mVNK5uO7U9HK11VQ5g==} @@ -13440,6 +9757,7 @@ packages: transitivePeerDependencies: - bufferutil - utf-8-validate + dev: false /jake@10.8.7: resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} @@ -13450,6 +9768,7 @@ packages: chalk: 4.1.2 filelist: 1.0.4 minimatch: 3.1.2 + dev: false /jest-changed-files@27.5.1: resolution: {integrity: sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==} @@ -14005,36 +10324,18 @@ packages: /js-base64@3.7.5: resolution: {integrity: sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==} - - /js-sdsl@4.4.1: - resolution: {integrity: sha512-6Gsx8R0RucyePbWqPssR8DyfuXmLBooYN5cZFZKjHGnQuaf7pEzhtpceagJxVu4LqhYY5EYA7nko3FmeHZ1KbA==} - dev: true - - /js-sha3@0.5.7: - resolution: {integrity: sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==} - dev: true - - /js-sha3@0.8.0: - resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} - dev: true + dev: false /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - /js-yaml@3.13.1: - resolution: {integrity: sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==} - hasBin: true - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - dev: true - /js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true dependencies: argparse: 1.0.10 esprima: 4.0.1 + dev: false /js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} @@ -14042,10 +10343,6 @@ packages: dependencies: argparse: 2.0.1 - /jsbn@0.1.1: - resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} - dev: true - /jsdom@16.7.0: resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==} engines: {node: '>=10'} @@ -14099,18 +10396,6 @@ packages: hasBin: true dev: false - /json-buffer@3.0.0: - resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} - dev: true - - /json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - dev: true - - /json-parse-better-errors@1.0.2: - resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} - dev: true - /json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} @@ -14119,17 +10404,15 @@ packages: /json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: false /json-schema@0.4.0: resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + dev: false /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - /json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - dev: true - /json5@1.0.2: resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true @@ -14146,44 +10429,19 @@ packages: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} dev: true - /jsonfile@2.4.0: - resolution: {integrity: sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==} - optionalDependencies: - graceful-fs: 4.2.11 - dev: true - - /jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - optionalDependencies: - graceful-fs: 4.2.11 - dev: true - /jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: universalify: 2.0.0 optionalDependencies: graceful-fs: 4.2.11 + dev: false /jsonpointer@5.0.1: resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} engines: {node: '>=0.10.0'} dev: false - /jsonschema@1.4.1: - resolution: {integrity: sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==} - dev: true - - /jsprim@1.4.2: - resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} - engines: {node: '>=0.6.0'} - dependencies: - assert-plus: 1.0.0 - extsprintf: 1.3.0 - json-schema: 0.4.0 - verror: 1.10.0 - dev: true - /jsx-ast-utils@3.3.3: resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==} engines: {node: '>=4.0'} @@ -14192,41 +10450,10 @@ packages: object.assign: 4.1.4 dev: false - /keccak@3.0.3: - resolution: {integrity: sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==} - engines: {node: '>=10.0.0'} - requiresBuild: true - dependencies: - node-addon-api: 2.0.2 - node-gyp-build: 4.6.0 - readable-stream: 3.6.2 - dev: true - - /keyv@3.1.0: - resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} - dependencies: - json-buffer: 3.0.0 - dev: true - - /keyv@4.5.2: - resolution: {integrity: sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==} - dependencies: - json-buffer: 3.0.1 - dev: true - - /keyvaluestorage-interface@1.0.0: - resolution: {integrity: sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==} - dev: true - /kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} - - /klaw@1.3.1: - resolution: {integrity: sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==} - optionalDependencies: - graceful-fs: 4.2.11 - dev: true + dev: false /kleur@3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} @@ -14255,40 +10482,11 @@ packages: shell-quote: 1.8.1 dev: false - /level-supports@4.0.1: - resolution: {integrity: sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==} - engines: {node: '>=12'} - dev: true - - /level-transcoder@1.0.1: - resolution: {integrity: sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==} - engines: {node: '>=12'} - dependencies: - buffer: 6.0.3 - module-error: 1.0.2 - dev: true - - /level@8.0.0: - resolution: {integrity: sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ==} - engines: {node: '>=12'} - dependencies: - browser-level: 1.0.1 - classic-level: 1.3.0 - dev: true - /leven@3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} dev: false - /levn@0.3.0: - resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.1.2 - type-check: 0.3.2 - dev: true - /levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -14347,6 +10545,7 @@ packages: xsalsa20: 1.2.0 transitivePeerDependencies: - supports-color + dev: false /lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} @@ -14380,20 +10579,13 @@ packages: engines: {node: '>=14'} dev: true - /locate-path@2.0.0: - resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} - engines: {node: '>=4'} - dependencies: - p-locate: 2.0.0 - path-exists: 3.0.0 - dev: true - /locate-path@3.0.0: resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} engines: {node: '>=6'} dependencies: p-locate: 3.0.0 path-exists: 3.0.0 + dev: false /locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} @@ -14408,22 +10600,10 @@ packages: dependencies: p-locate: 5.0.0 - /lodash-es@4.17.21: - resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} - dev: true - - /lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - dev: true - /lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} dev: false - /lodash.isequal@4.5.0: - resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} - dev: true - /lodash.memoize@4.1.2: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} dev: false @@ -14435,14 +10615,6 @@ packages: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} dev: false - /lodash.throttle@4.1.1: - resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} - dev: true - - /lodash.truncate@4.4.2: - resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} - dev: true - /lodash.uniq@4.5.0: resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} dev: false @@ -14450,34 +10622,9 @@ packages: /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - /log-chopper@1.0.2: - resolution: {integrity: sha512-tEWS6Fb+Xv0yLChJ6saA1DP3H1yPL0PfiIN7SDJ+U/CyP+fD4G/dhKfow+P5UuJWi6BdE4mUcPkJclGXCWxDrg==} - engines: {node: '>=6.0.0'} - dependencies: - byline: 5.0.0 - dev: true - - /log-symbols@3.0.0: - resolution: {integrity: sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==} - engines: {node: '>=8'} - dependencies: - chalk: 2.4.2 - dev: true - - /log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - dev: true - - /lokijs@1.5.12: - resolution: {integrity: sha512-Q5ALD6JiS6xAUWCwX3taQmgwxyveCtIIuL08+ml0nHwT3k0S/GIFJN+Hd38b1qYIMaE5X++iqsqWVksz7SYW+Q==} - dev: true - /long@5.2.3: resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + dev: false /longbits@1.1.0: resolution: {integrity: sha512-22U2exkkYy7sr7nuQJYx2NEZ2kEMsC69+BxM5h8auLvkVIJa+LwAB5mFIExnuW2dFuYXFOWsFMKXjaWiq/htYQ==} @@ -14485,6 +10632,7 @@ packages: dependencies: byte-access: 1.0.1 uint8arraylist: 2.4.3 + dev: false /loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} @@ -14505,25 +10653,11 @@ packages: tslib: 2.5.3 dev: false - /lowercase-keys@1.0.1: - resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} - engines: {node: '>=0.10.0'} - dev: true - - /lowercase-keys@2.0.0: - resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} - engines: {node: '>=8'} - dev: true - - /lowercase-keys@3.0.0: - resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - /lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: yallist: 3.1.1 + dev: false /lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} @@ -14531,10 +10665,6 @@ packages: dependencies: yallist: 4.0.0 - /lru_map@0.3.3: - resolution: {integrity: sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==} - dev: true - /lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true @@ -14560,13 +10690,6 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true - /make-dir@1.3.0: - resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==} - engines: {node: '>=4'} - dependencies: - pify: 3.0.0 - dev: true - /make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} @@ -14590,15 +10713,6 @@ packages: tmpl: 1.0.5 dev: false - /markdown-table@1.1.3: - resolution: {integrity: sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==} - dev: true - - /mcl-wasm@0.7.9: - resolution: {integrity: sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ==} - engines: {node: '>=8.9.0'} - dev: true - /md5.js@1.3.5: resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} dependencies: @@ -14618,12 +10732,14 @@ packages: /media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} + dev: false /memfs@3.0.4: resolution: {integrity: sha512-OcZEzwX9E5AoY8SXjuAvw0DbIAYwUzV/I236I8Pqvrlv7sL/Y0E9aRCon05DhaV8pg1b32uxj76RgW0s5xjHBA==} dependencies: fast-extend: 1.0.2 fs-monkey: 0.3.3 + dev: false /memfs@3.5.3: resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} @@ -14632,31 +10748,20 @@ packages: fs-monkey: 1.0.4 dev: false - /memory-level@1.0.0: - resolution: {integrity: sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og==} - engines: {node: '>=12'} - dependencies: - abstract-level: 1.0.3 - functional-red-black-tree: 1.0.1 - module-error: 1.0.2 - dev: true - - /memorystream@0.3.1: - resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} - engines: {node: '>= 0.10.0'} - dev: true - /merge-descriptors@1.0.1: resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + dev: false /merge-options@3.0.4: resolution: {integrity: sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==} engines: {node: '>=10'} dependencies: is-plain-obj: 2.1.0 + dev: false /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: false /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} @@ -14665,6 +10770,7 @@ packages: /methods@1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} + dev: false /micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} @@ -14689,6 +10795,7 @@ packages: /mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} + dev: false /mime-types@2.1.18: resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} @@ -14702,6 +10809,7 @@ packages: engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 + dev: false /mime@1.6.0: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} @@ -14711,22 +10819,7 @@ packages: /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} - - /mimic-response@1.0.1: - resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} - engines: {node: '>=4'} - dev: true - - /mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - dev: true - - /min-document@2.19.0: - resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==} - dependencies: - dom-walk: 0.1.2 - dev: true + dev: false /min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} @@ -14750,46 +10843,21 @@ packages: resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} dev: true - /minimatch@3.0.4: - resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} - dependencies: - brace-expansion: 1.1.11 - dev: true - /minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 - /minimatch@5.0.1: - resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} - engines: {node: '>=10'} - dependencies: - brace-expansion: 2.0.1 - dev: true - /minimatch@5.1.6: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 + dev: false /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - /minipass@2.9.0: - resolution: {integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==} - dependencies: - safe-buffer: 5.2.1 - yallist: 3.1.1 - dev: true - - /minizlib@1.3.3: - resolution: {integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==} - dependencies: - minipass: 2.9.0 - dev: true - /mitt@3.0.0: resolution: {integrity: sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==} dev: true @@ -14798,39 +10866,12 @@ packages: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} dev: true - /mkdirp-promise@5.0.1: - resolution: {integrity: sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==} - engines: {node: '>=4'} - deprecated: This package is broken and no longer maintained. 'mkdirp' itself supports promises now, please switch to that. - dependencies: - mkdirp: 3.0.1 - dev: true - - /mkdirp@0.5.5: - resolution: {integrity: sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==} - hasBin: true - dependencies: - minimist: 1.2.8 - dev: true - /mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true dependencies: minimist: 1.2.8 - /mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - dev: true - - /mkdirp@3.0.1: - resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} - engines: {node: '>=10'} - hasBin: true - dev: true - /mlly@1.4.2: resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} dependencies: @@ -14840,80 +10881,6 @@ packages: ufo: 1.3.1 dev: true - /mnemonist@0.38.5: - resolution: {integrity: sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==} - dependencies: - obliterator: 2.0.4 - dev: true - - /mocha@10.2.0: - resolution: {integrity: sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==} - engines: {node: '>= 14.0.0'} - hasBin: true - dependencies: - ansi-colors: 4.1.1 - browser-stdout: 1.3.1 - chokidar: 3.5.3 - debug: 4.3.4(supports-color@8.1.1) - diff: 5.0.0 - escape-string-regexp: 4.0.0 - find-up: 5.0.0 - glob: 7.2.0 - he: 1.2.0 - js-yaml: 4.1.0 - log-symbols: 4.1.0 - minimatch: 5.0.1 - ms: 2.1.3 - nanoid: 3.3.3 - serialize-javascript: 6.0.0 - strip-json-comments: 3.1.1 - supports-color: 8.1.1 - workerpool: 6.2.1 - yargs: 16.2.0 - yargs-parser: 20.2.4 - yargs-unparser: 2.0.0 - dev: true - - /mocha@7.2.0: - resolution: {integrity: sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==} - engines: {node: '>= 8.10.0'} - hasBin: true - dependencies: - ansi-colors: 3.2.3 - browser-stdout: 1.3.1 - chokidar: 3.3.0 - debug: 3.2.6(supports-color@6.0.0) - diff: 3.5.0 - escape-string-regexp: 1.0.5 - find-up: 3.0.0 - glob: 7.1.3 - growl: 1.10.5 - he: 1.2.0 - js-yaml: 3.13.1 - log-symbols: 3.0.0 - minimatch: 3.0.4 - mkdirp: 0.5.5 - ms: 2.1.1 - node-environment-flags: 1.0.6 - object.assign: 4.1.0 - strip-json-comments: 2.0.1 - supports-color: 6.0.0 - which: 1.3.1 - wide-align: 1.1.3 - yargs: 13.3.2 - yargs-parser: 13.1.2 - yargs-unparser: 1.6.0 - dev: true - - /mock-fs@4.14.0: - resolution: {integrity: sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==} - dev: true - - /module-error@1.0.2: - resolution: {integrity: sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==} - engines: {node: '>=10'} - dev: true - /mortice@3.0.1: resolution: {integrity: sha512-eyDUsl1nCR9+JtNksKnaESLP9MgAXCA4w1LTtsmOSQNsThnv++f36rrBu5fC/fdGIwTJZmbiaR/QewptH93pYA==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} @@ -14922,13 +10889,11 @@ packages: observable-webworkers: 2.0.1 p-queue: 7.3.4 p-timeout: 6.1.2 + dev: false /ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - - /ms@2.1.1: - resolution: {integrity: sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==} - dev: true + dev: false /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} @@ -14936,22 +10901,6 @@ packages: /ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - /multibase@0.6.1: - resolution: {integrity: sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==} - deprecated: This module has been superseded by the multiformats module - dependencies: - base-x: 3.0.9 - buffer: 5.7.1 - dev: true - - /multibase@0.7.0: - resolution: {integrity: sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==} - deprecated: This module has been superseded by the multiformats module - dependencies: - base-x: 3.0.9 - buffer: 5.7.1 - dev: true - /multicast-dns@7.2.5: resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} hasBin: true @@ -14960,21 +10909,6 @@ packages: thunky: 1.1.0 dev: false - /multicodec@0.5.7: - resolution: {integrity: sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==} - deprecated: This module has been superseded by the multiformats module - dependencies: - varint: 5.0.2 - dev: true - - /multicodec@1.0.4: - resolution: {integrity: sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==} - deprecated: This module has been superseded by the multiformats module - dependencies: - buffer: 5.7.1 - varint: 5.0.2 - dev: true - /multiformats@11.0.1: resolution: {integrity: sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} @@ -14982,31 +10916,12 @@ packages: /multiformats@11.0.2: resolution: {integrity: sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} + dev: false /multiformats@12.0.1: resolution: {integrity: sha512-s01wijBJoDUqESWSzePY0lvTw7J3PVO9x2Cc6ASI5AMZM2Gnhh7BC17+nlFhHKU7dDzaCaRfb+NiqNzOsgPUoQ==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} - - /multiformats@9.9.0: - resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==} - dev: true - - /multihashes@0.4.21: - resolution: {integrity: sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==} - dependencies: - buffer: 5.7.1 - multibase: 0.7.0 - varint: 5.0.2 - dev: true - - /mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - dev: true - - /mute-stream@1.0.0: - resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true + dev: false /mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} @@ -15016,16 +10931,6 @@ packages: thenify-all: 1.6.0 dev: false - /nano-json-stream-parser@0.1.2: - resolution: {integrity: sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==} - dev: true - - /nanoid@3.3.3: - resolution: {integrity: sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - dev: true - /nanoid@3.3.6: resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -15035,18 +10940,7 @@ packages: resolution: {integrity: sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==} engines: {node: ^14 || ^16 || >=18} hasBin: true - - /napi-macros@2.2.2: - resolution: {integrity: sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==} - dev: true - - /native-fetch@3.0.0(node-fetch@2.6.13): - resolution: {integrity: sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==} - peerDependencies: - node-fetch: '*' - dependencies: - node-fetch: 2.6.13 - dev: true + dev: false /native-fetch@4.0.2(undici@5.22.1): resolution: {integrity: sha512-4QcVlKFtv2EYVS5MBgsGX5+NWKtbDbIECdUXDBGDMAZXq3Jkv9zf+y8iS7Ub8fEdga3GpYeazp9gauNqXHJOCg==} @@ -15062,28 +10956,19 @@ packages: /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - /natural-orderby@2.0.3: - resolution: {integrity: sha512-p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q==} - dev: true - /negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} + dev: false /neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + dev: false /netmask@2.0.2: resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} engines: {node: '>= 0.4.0'} - - /next-tick@1.1.0: - resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} - dev: true - - /nice-try@1.0.5: - resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} - dev: true + dev: false /no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} @@ -15092,35 +10977,6 @@ packages: tslib: 2.5.3 dev: false - /node-addon-api@2.0.2: - resolution: {integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==} - dev: true - - /node-emoji@1.11.0: - resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} - dependencies: - lodash: 4.17.21 - dev: true - - /node-environment-flags@1.0.6: - resolution: {integrity: sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==} - dependencies: - object.getownpropertydescriptors: 2.1.6 - semver: 5.7.1 - dev: true - - /node-fetch@2.6.13: - resolution: {integrity: sha512-StxNAxh15zr77QvvkmveSQ8uCQ4+v5FkvNTj0OESmiHu+VRi/gXArXtkWMElOsOUNLtUEvI4yS+rdtOHZTwlQA==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - dependencies: - whatwg-url: 5.0.0 - dev: true - /node-fetch@2.6.7: resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} engines: {node: 4.x || >=6.0.0} @@ -15136,11 +10992,7 @@ packages: /node-forge@1.3.1: resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} engines: {node: '>= 6.13.0'} - - /node-gyp-build@4.6.0: - resolution: {integrity: sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==} - hasBin: true - dev: true + dev: false /node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} @@ -15187,122 +11039,27 @@ packages: vm-browserify: 1.1.2 dev: true - /node_modules-path@2.0.7: - resolution: {integrity: sha512-/6HODA5TBRgSrtRWZprBmgvnS1LRxiHW0RgGO0/KaYyXaf5e11nrIKaZx+iHw+2OKm61Rk9l9gncF6ewbsjQvQ==} - engines: {node: '>=10.15.3'} - hasBin: true - dev: true - - /nofilter@3.1.0: - resolution: {integrity: sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==} - engines: {node: '>=12.19'} - dev: true - - /nopt@3.0.6: - resolution: {integrity: sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==} - hasBin: true - dependencies: - abbrev: 1.0.9 - dev: true - /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} + dev: false /normalize-range@0.1.2: resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} engines: {node: '>=0.10.0'} dev: false - /normalize-url@4.5.1: - resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} - engines: {node: '>=8'} - dev: true - /normalize-url@6.1.0: resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} engines: {node: '>=10'} + dev: false /npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} dependencies: path-key: 3.1.1 - - /npm@9.8.1: - resolution: {integrity: sha512-AfDvThQzsIXhYgk9zhbk5R+lh811lKkLAeQMMhSypf1BM7zUafeIIBzMzespeuVEJ0+LvY36oRQYf7IKLzU3rw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true - dev: true - bundledDependencies: - - '@isaacs/string-locale-compare' - - '@npmcli/arborist' - - '@npmcli/config' - - '@npmcli/fs' - - '@npmcli/map-workspaces' - - '@npmcli/package-json' - - '@npmcli/promise-spawn' - - '@npmcli/run-script' - - abbrev - - archy - - cacache - - chalk - - ci-info - - cli-columns - - cli-table3 - - columnify - - fastest-levenshtein - - fs-minipass - - glob - - graceful-fs - - hosted-git-info - - ini - - init-package-json - - is-cidr - - json-parse-even-better-errors - - libnpmaccess - - libnpmdiff - - libnpmexec - - libnpmfund - - libnpmhook - - libnpmorg - - libnpmpack - - libnpmpublish - - libnpmsearch - - libnpmteam - - libnpmversion - - make-fetch-happen - - minimatch - - minipass - - minipass-pipeline - - ms - - node-gyp - - nopt - - npm-audit-report - - npm-install-checks - - npm-package-arg - - npm-pick-manifest - - npm-profile - - npm-registry-fetch - - npm-user-validate - - npmlog - - p-map - - pacote - - parse-conflict-json - - proc-log - - qrcode-terminal - - read - - semver - - sigstore - - ssri - - supports-color - - tar - - text-table - - tiny-relative-date - - treeverse - - validate-npm-package-name - - which - - write-file-atomic + dev: false /nth-check@1.0.2: resolution: {integrity: sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==} @@ -15316,25 +11073,14 @@ packages: boolbase: 1.0.0 dev: false - /number-to-bn@1.7.0: - resolution: {integrity: sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==} - engines: {node: '>=6.5.0', npm: '>=3'} - dependencies: - bn.js: 4.11.6 - strip-hex-prefix: 1.0.0 - dev: true - /nwsapi@2.2.7: resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} dev: false - /oauth-sign@0.9.0: - resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} - dev: true - /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} + dev: false /object-hash@3.0.0: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} @@ -15355,21 +11101,6 @@ packages: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - /object-treeify@1.1.33: - resolution: {integrity: sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A==} - engines: {node: '>= 10'} - dev: true - - /object.assign@4.1.0: - resolution: {integrity: sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==} - engines: {node: '>= 0.4'} - dependencies: - define-properties: 1.2.0 - function-bind: 1.1.1 - has-symbols: 1.0.3 - object-keys: 1.1.1 - dev: true - /object.assign@4.1.4: resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} engines: {node: '>= 0.4'} @@ -15405,6 +11136,7 @@ packages: define-properties: 1.2.0 es-abstract: 1.21.2 safe-array-concat: 1.0.0 + dev: false /object.groupby@1.0.1: resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} @@ -15430,36 +11162,25 @@ packages: define-properties: 1.2.0 es-abstract: 1.21.2 - /obliterator@2.0.4: - resolution: {integrity: sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==} - dev: true - - /oboe@2.1.5: - resolution: {integrity: sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==} - dependencies: - http-https: 1.0.0 - dev: true - /observable-fns@0.6.1: resolution: {integrity: sha512-9gRK4+sRWzeN6AOewNBTLXir7Zl/i3GB6Yl26gK4flxz8BXVpD3kt8amREmWNb0mxYOGDotvE5a4N+PtGGKdkg==} + dev: false /observable-webworkers@2.0.1: resolution: {integrity: sha512-JI1vB0u3pZjoQKOK1ROWzp0ygxSi7Yb0iR+7UNsw4/Zn4cQ0P3R7XL38zac/Dy2tEA7Lg88/wIJTjF8vYXZ0uw==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} + dev: false /obuf@1.1.2: resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} dev: false - /on-exit-leak-free@0.2.0: - resolution: {integrity: sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==} - dev: true - /on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} dependencies: ee-first: 1.1.1 + dev: false /on-headers@1.0.2: resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} @@ -15476,6 +11197,7 @@ packages: engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 + dev: false /open@8.4.2: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} @@ -15491,25 +11213,6 @@ packages: hasBin: true dev: true - /oppa@0.4.0: - resolution: {integrity: sha512-DFvM3+F+rB/igo3FRnkDWitjZgBH9qZAn68IacYHsqbZBKwuTA+LdD4zSJiQtgQpWq7M08we5FlGAVHz0yW7PQ==} - engines: {node: '>=10'} - dependencies: - chalk: 4.1.2 - dev: true - - /optionator@0.8.3: - resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} - engines: {node: '>= 0.8.0'} - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.3.0 - prelude-ls: 1.1.2 - type-check: 0.3.2 - word-wrap: 1.2.3 - dev: true - /optionator@0.9.3: resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} @@ -15521,81 +11224,21 @@ packages: prelude-ls: 1.2.1 type-check: 0.4.0 - /ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.9.0 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - dev: true - - /ordinal@1.0.3: - resolution: {integrity: sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ==} - dev: true - /os-browserify@0.3.0: resolution: {integrity: sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==} dev: true - /os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - dev: true - - /outvariant@1.4.0: - resolution: {integrity: sha512-AlWY719RF02ujitly7Kk/0QlV+pXGFDHrHf9O2OKqyqgBieaPOIeuSkL8sRK6j2WK+/ZAURq2kZsY0d8JapUiw==} - dev: true - - /p-cancelable@1.1.0: - resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} - engines: {node: '>=6'} - dev: true - - /p-cancelable@2.1.1: - resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} - engines: {node: '>=8'} - dev: true - - /p-cancelable@3.0.0: - resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} - engines: {node: '>=12.20'} - dev: true - - /p-defer@3.0.0: - resolution: {integrity: sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==} - engines: {node: '>=8'} - dev: true - /p-defer@4.0.0: resolution: {integrity: sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==} engines: {node: '>=12'} - - /p-fifo@1.0.0: - resolution: {integrity: sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==} - dependencies: - fast-fifo: 1.2.0 - p-defer: 3.0.0 - dev: true - - /p-limit@1.3.0: - resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} - engines: {node: '>=4'} - dependencies: - p-try: 1.0.0 - dev: true + dev: false /p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} dependencies: p-try: 2.2.0 + dev: false /p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} @@ -15610,18 +11253,12 @@ packages: yocto-queue: 1.0.0 dev: true - /p-locate@2.0.0: - resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} - engines: {node: '>=4'} - dependencies: - p-limit: 1.3.0 - dev: true - /p-locate@3.0.0: resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} engines: {node: '>=6'} dependencies: p-limit: 2.3.0 + dev: false /p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} @@ -15636,19 +11273,13 @@ packages: dependencies: p-limit: 3.1.0 - /p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} - dependencies: - aggregate-error: 3.1.0 - dev: true - /p-queue@7.3.4: resolution: {integrity: sha512-esox8CWt0j9EZECFvkFl2WNPat8LN4t7WWeXq73D9ha0V96qPRufApZi4ZhPwXAln1uVVal429HVVKPa2X0yQg==} engines: {node: '>=12'} dependencies: eventemitter3: 4.0.7 p-timeout: 5.1.0 + dev: false /p-retry@4.6.2: resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} @@ -15664,23 +11295,22 @@ packages: dependencies: '@types/retry': 0.12.1 retry: 0.13.1 + dev: false /p-timeout@5.1.0: resolution: {integrity: sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==} engines: {node: '>=12'} + dev: false /p-timeout@6.1.2: resolution: {integrity: sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==} engines: {node: '>=14.16'} - - /p-try@1.0.0: - resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} - engines: {node: '>=4'} - dev: true + dev: false /p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + dev: false /pako@1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} @@ -15708,26 +11338,6 @@ packages: safe-buffer: 5.2.1 dev: true - /parse-cache-control@1.0.1: - resolution: {integrity: sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==} - dev: true - - /parse-duration@1.1.0: - resolution: {integrity: sha512-z6t9dvSJYaPoQq7quMzdEagSFtpGu+utzHqqxmpVWNNZRIXnvqyCvn9XsTdh7c/w0Bqmdz3RB3YnRaKtpRtEXQ==} - dev: true - - /parse-headers@2.0.5: - resolution: {integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==} - dev: true - - /parse-json@4.0.0: - resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} - engines: {node: '>=4'} - dependencies: - error-ex: 1.3.2 - json-parse-better-errors: 1.0.2 - dev: true - /parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} @@ -15744,6 +11354,7 @@ packages: /parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} + dev: false /pascal-case@3.1.2: resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} @@ -15752,19 +11363,13 @@ packages: tslib: 2.5.3 dev: false - /password-prompt@1.1.2: - resolution: {integrity: sha512-bpuBhROdrhuN3E7G/koAju0WjVw9/uQOG5Co5mokNj0MiOSBVZS1JTwM4zl55hu0WFmIEFvO9cU9sJQiBIYeIA==} - dependencies: - ansi-escapes: 3.2.0 - cross-spawn: 6.0.5 - dev: true - /path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} /path-exists@3.0.0: resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} engines: {node: '>=4'} + dev: false /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} @@ -15778,11 +11383,6 @@ packages: resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} dev: false - /path-key@2.0.1: - resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} - engines: {node: '>=4'} - dev: true - /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -15792,6 +11392,7 @@ packages: /path-to-regexp@0.1.7: resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + dev: false /path-to-regexp@2.2.1: resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==} @@ -15826,6 +11427,7 @@ packages: /performance-now@2.1.0: resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + dev: false /picocolors@0.2.1: resolution: {integrity: sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==} @@ -15841,56 +11443,7 @@ packages: /pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} - - /pify@3.0.0: - resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} - engines: {node: '>=4'} - dev: true - - /pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - dev: true - - /pinkie-promise@2.0.1: - resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} - engines: {node: '>=0.10.0'} - dependencies: - pinkie: 2.0.4 - dev: true - - /pinkie@2.0.4: - resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} - engines: {node: '>=0.10.0'} - dev: true - - /pino-abstract-transport@0.5.0: - resolution: {integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==} - dependencies: - duplexify: 4.1.2 - split2: 4.2.0 - dev: true - - /pino-std-serializers@4.0.0: - resolution: {integrity: sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==} - dev: true - - /pino@7.11.0: - resolution: {integrity: sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==} - hasBin: true - dependencies: - atomic-sleep: 1.0.0 - fast-redact: 3.2.0 - on-exit-leak-free: 0.2.0 - pino-abstract-transport: 0.5.0 - pino-std-serializers: 4.0.0 - process-warning: 1.0.0 - quick-format-unescaped: 4.0.4 - real-require: 0.1.0 - safe-stable-stringify: 2.4.3 - sonic-boom: 2.8.0 - thread-stream: 0.15.2 - dev: true + dev: false /pirates@4.0.6: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} @@ -15926,10 +11479,6 @@ packages: find-up: 3.0.0 dev: false - /platform@1.3.6: - resolution: {integrity: sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==} - dev: true - /portfinder@1.0.32: resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} engines: {node: '>= 0.12.0'} @@ -16728,26 +12277,10 @@ packages: source-map-js: 1.0.2 dev: true - /prelude-ls@1.1.2: - resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} - engines: {node: '>= 0.8.0'} - dev: true - /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - /prepend-http@2.0.0: - resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} - engines: {node: '>=4'} - dev: true - - /prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} - hasBin: true - dev: true - /prettier@3.0.3: resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} engines: {node: '>=14'} @@ -16802,13 +12335,11 @@ packages: ip-regex: 5.0.0 ipaddr.js: 2.1.0 netmask: 2.0.2 + dev: false /process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - - /process-warning@1.0.0: - resolution: {integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==} - dev: true + dev: false /process@0.11.10: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} @@ -16824,6 +12355,7 @@ packages: resolution: {integrity: sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==} dependencies: asap: 2.0.6 + dev: false /prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} @@ -16858,6 +12390,7 @@ packages: '@protobufjs/utf8': 1.1.0 '@types/node': 20.7.0 long: 5.2.3 + dev: false /protons-runtime@5.0.2(uint8arraylist@2.4.3): resolution: {integrity: sha512-eKppVrIS5dDh+Y61Yj4bDEOs2sQLQbQGIhr7EBiybPQhIMGBynzVXlYILPWl3Td1GDadobc8qevh5D+JwfG9bw==} @@ -16866,6 +12399,7 @@ packages: dependencies: protobufjs: 7.2.4 uint8arraylist: 2.4.3 + dev: false /proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} @@ -16873,6 +12407,7 @@ packages: dependencies: forwarded: 0.2.0 ipaddr.js: 1.9.1 + dev: false /proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} @@ -16880,6 +12415,7 @@ packages: /psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + dev: false /public-encrypt@4.0.3: resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==} @@ -16902,11 +12438,6 @@ packages: /punycode@1.4.1: resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} - /punycode@2.1.0: - resolution: {integrity: sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==} - engines: {node: '>=6'} - dev: true - /punycode@2.3.0: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} @@ -16922,7 +12453,7 @@ packages: dependencies: chromium-bidi: 0.4.4(devtools-protocol@0.0.1094867) cross-fetch: 3.1.5 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 devtools-protocol: 0.0.1094867 extract-zip: 2.0.1 https-proxy-agent: 5.0.1 @@ -16967,6 +12498,7 @@ packages: engines: {node: '>=0.6'} dependencies: side-channel: 1.0.4 + dev: false /qs@6.11.2: resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} @@ -16975,30 +12507,6 @@ packages: side-channel: 1.0.4 dev: true - /qs@6.5.3: - resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} - engines: {node: '>=0.6'} - dev: true - - /query-string@5.1.1: - resolution: {integrity: sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==} - engines: {node: '>=0.10.0'} - dependencies: - decode-uri-component: 0.2.2 - object-assign: 4.1.1 - strict-uri-encode: 1.1.0 - dev: true - - /query-string@7.1.3: - resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} - engines: {node: '>=6'} - dependencies: - decode-uri-component: 0.2.2 - filter-obj: 1.1.0 - split-on-first: 1.1.0 - strict-uri-encode: 2.0.0 - dev: true - /querystring-es3@0.2.1: resolution: {integrity: sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==} engines: {node: '>=0.4.x'} @@ -17011,15 +12519,6 @@ packages: /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - /quick-format-unescaped@4.0.4: - resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} - dev: true - - /quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - dev: true - /raf@3.4.1: resolution: {integrity: sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==} dependencies: @@ -17045,9 +12544,11 @@ packages: /range-parser@1.2.1: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} + dev: false /rate-limiter-flexible@2.4.2: resolution: {integrity: sha512-rMATGGOdO1suFyf/mI5LYhts71g1sbdhmd6YvdiXO2gJnd42Tt6QS4JUKJKSWVVkMtBacm6l40FR7Trjo6Iruw==} + dev: false /raw-body@2.5.1: resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} @@ -17057,16 +12558,7 @@ packages: http-errors: 2.0.0 iconv-lite: 0.4.24 unpipe: 1.0.0 - - /raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} - engines: {node: '>= 0.8'} - dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - dev: true + dev: false /react-app-polyfill@3.0.0: resolution: {integrity: sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==} @@ -17147,12 +12639,6 @@ packages: /react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - /react-native-fetch-api@3.0.0: - resolution: {integrity: sha512-g2rtqPjdroaboDKTsJCTlcmtw54E25OjyaunUP0anOZn4Fuo2IKs8BVfe02zVggA/UysbmfSnRJIqtNkAgggNA==} - dependencies: - p-defer: 3.0.0 - dev: true - /react-refresh@0.11.0: resolution: {integrity: sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==} engines: {node: '>=0.10.0'} @@ -17278,6 +12764,7 @@ packages: safe-buffer: 5.1.2 string_decoder: 1.1.1 util-deprecate: 1.0.2 + dev: false /readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} @@ -17287,41 +12774,24 @@ packages: string_decoder: 1.3.0 util-deprecate: 1.0.2 - /readdirp@3.2.0: - resolution: {integrity: sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==} - engines: {node: '>= 8'} - dependencies: - picomatch: 2.3.1 - dev: true - /readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 - - /real-require@0.1.0: - resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==} - engines: {node: '>= 12.13.0'} - dev: true + dev: false /receptacle@1.3.2: resolution: {integrity: sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==} dependencies: ms: 2.1.3 - /rechoir@0.6.2: - resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} - engines: {node: '>= 0.10'} - dependencies: - resolve: 1.22.4 - dev: true - /recursive-readdir@2.2.3: resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} engines: {node: '>=6.0.0'} dependencies: minimatch: 3.1.2 + dev: false /redent@3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} @@ -17331,17 +12801,6 @@ packages: strip-indent: 3.0.0 dev: false - /redeyed@2.1.1: - resolution: {integrity: sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==} - dependencies: - esprima: 4.0.1 - dev: true - - /reduce-flatten@2.0.0: - resolution: {integrity: sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==} - engines: {node: '>=6'} - dev: true - /regenerate-unicode-properties@10.1.0: resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} engines: {node: '>=4'} @@ -17418,86 +12877,15 @@ packages: strip-ansi: 6.0.1 dev: false - /replace-homedir@2.0.0: - resolution: {integrity: sha512-bgEuQQ/BHW0XkkJtawzrfzHFSN70f/3cNOiHa2QsYxqrjaC30X1k74FJ6xswVBP0sr0SpGIdVFuPwfrYziVeyw==} - engines: {node: '>= 10.13.0'} - dev: true - - /req-cwd@2.0.0: - resolution: {integrity: sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ==} - engines: {node: '>=4'} - dependencies: - req-from: 2.0.0 - dev: true - - /req-from@2.0.0: - resolution: {integrity: sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA==} - engines: {node: '>=4'} - dependencies: - resolve-from: 3.0.0 - dev: true - - /request-promise-core@1.1.4(request@2.88.2): - resolution: {integrity: sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==} - engines: {node: '>=0.10.0'} - peerDependencies: - request: ^2.34 - dependencies: - lodash: 4.17.21 - request: 2.88.2 - dev: true - - /request-promise-native@1.0.9(request@2.88.2): - resolution: {integrity: sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==} - engines: {node: '>=0.12.0'} - deprecated: request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142 - peerDependencies: - request: ^2.34 - dependencies: - request: 2.88.2 - request-promise-core: 1.1.4(request@2.88.2) - stealthy-require: 1.1.1 - tough-cookie: 2.5.0 - dev: true - - /request@2.88.2: - resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} - engines: {node: '>= 6'} - deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 - dependencies: - aws-sign2: 0.7.0 - aws4: 1.12.0 - caseless: 0.12.0 - combined-stream: 1.0.8 - extend: 3.0.2 - forever-agent: 0.6.1 - form-data: 2.3.3 - har-validator: 5.1.5 - http-signature: 1.2.0 - is-typedarray: 1.0.0 - isstream: 0.1.2 - json-stringify-safe: 5.0.1 - mime-types: 2.1.35 - oauth-sign: 0.9.0 - performance-now: 2.1.0 - qs: 6.5.3 - safe-buffer: 5.2.1 - tough-cookie: 2.5.0 - tunnel-agent: 0.6.0 - uuid: 3.4.0 - dev: true - /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} + dev: false /require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} - - /require-main-filename@2.0.0: - resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} - dev: true + dev: false /requireindex@1.2.0: resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==} @@ -17507,10 +12895,6 @@ packages: /requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - /resolve-alpn@1.2.1: - resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} - dev: true - /resolve-cwd@3.0.0: resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} engines: {node: '>=8'} @@ -17518,11 +12902,6 @@ packages: resolve-from: 5.0.0 dev: false - /resolve-from@3.0.0: - resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==} - engines: {node: '>=4'} - dev: true - /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -17556,16 +12935,6 @@ packages: engines: {node: '>=10'} dev: false - /resolve@1.1.7: - resolution: {integrity: sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==} - dev: true - - /resolve@1.17.0: - resolution: {integrity: sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==} - dependencies: - path-parse: 1.0.7 - dev: true - /resolve@1.22.2: resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} hasBin: true @@ -17592,45 +12961,15 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: false - /responselike@1.0.2: - resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==} - dependencies: - lowercase-keys: 1.0.1 - dev: true - - /responselike@2.0.1: - resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} - dependencies: - lowercase-keys: 2.0.0 - dev: true - - /restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - dev: true - - /retimer@3.0.0: - resolution: {integrity: sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA==} - dev: true - /retry@0.13.1: resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} engines: {node: '>= 4'} + dev: false /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - /rimraf@2.7.1: - resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} - hasBin: true - dependencies: - glob: 7.2.3 - dev: true - /rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} hasBin: true @@ -17644,13 +12983,6 @@ packages: inherits: 2.0.4 dev: true - /rlp@2.2.7: - resolution: {integrity: sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==} - hasBin: true - dependencies: - bn.js: 5.2.1 - dev: true - /rollup-plugin-terser@7.0.2(rollup@2.79.1): resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser @@ -17680,41 +13012,16 @@ packages: fsevents: 2.3.3 dev: true - /run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} - dev: true - - /run-async@3.0.0: - resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} - engines: {node: '>=0.12.0'} - dev: true - - /run-parallel-limit@1.1.0: - resolution: {integrity: sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==} - dependencies: - queue-microtask: 1.2.3 - dev: true - /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 - /rustbn.js@0.2.0: - resolution: {integrity: sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==} - dev: true - /rxjs@7.5.5: resolution: {integrity: sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==} dependencies: tslib: 2.5.3 - - /rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - dependencies: - tslib: 2.5.3 - dev: true + dev: false /safe-array-concat@1.0.0: resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==} @@ -17724,6 +13031,7 @@ packages: get-intrinsic: 1.2.1 has-symbols: 1.0.3 isarray: 2.0.5 + dev: false /safe-array-concat@1.0.1: resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} @@ -17741,10 +13049,6 @@ packages: /safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - /safe-json-utils@1.1.1: - resolution: {integrity: sha512-SAJWGKDs50tAbiDXLf89PDwt9XYkWyANFWVzn4dTXl5QyI8t2o/bW5/OJl3lvc2WVU4MEpTo9Yz5NVFNsp+OJQ==} - dev: true - /safe-regex-test@1.0.0: resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} dependencies: @@ -17752,11 +13056,6 @@ packages: get-intrinsic: 1.2.1 is-regex: 1.1.4 - /safe-stable-stringify@2.4.3: - resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} - engines: {node: '>=10'} - dev: true - /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -17764,6 +13063,7 @@ packages: resolution: {integrity: sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==} dependencies: truncate-utf8-bytes: 1.0.2 + dev: false /sanitize.css@13.0.0: resolution: {integrity: sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==} @@ -17795,6 +13095,7 @@ packages: /sax@1.2.4: resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} + dev: false /saxes@5.0.1: resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} @@ -17803,26 +13104,6 @@ packages: xmlchars: 2.2.0 dev: false - /sc-istanbul@0.4.6: - resolution: {integrity: sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g==} - hasBin: true - dependencies: - abbrev: 1.0.9 - async: 1.5.2 - escodegen: 1.8.1 - esprima: 2.7.3 - glob: 5.0.15 - handlebars: 4.7.7 - js-yaml: 3.14.1 - mkdirp: 0.5.6 - nopt: 3.0.6 - once: 1.4.0 - resolve: 1.1.7 - supports-color: 3.2.3 - which: 1.3.1 - wordwrap: 1.0.0 - dev: true - /scheduler@0.23.0: resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} dependencies: @@ -17866,35 +13147,10 @@ packages: ajv-keywords: 5.1.0(ajv@8.12.0) dev: false - /scrypt-js@2.0.4: - resolution: {integrity: sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==} - dev: true - - /scrypt-js@3.0.1: - resolution: {integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==} - dev: true - - /secp256k1@4.0.3: - resolution: {integrity: sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==} - engines: {node: '>=10.0.0'} - requiresBuild: true - dependencies: - elliptic: 6.5.4 - node-addon-api: 2.0.2 - node-gyp-build: 4.6.0 - dev: true - /secure-compare@3.0.1: resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==} dev: true - /seek-bzip@1.0.6: - resolution: {integrity: sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==} - hasBin: true - dependencies: - commander: 2.20.3 - dev: true - /select-hose@2.0.0: resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} dev: false @@ -17906,11 +13162,6 @@ packages: node-forge: 1.3.1 dev: false - /semver@5.7.1: - resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} - hasBin: true - dev: true - /semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -17949,6 +13200,7 @@ packages: statuses: 2.0.1 transitivePeerDependencies: - supports-color + dev: false /serialize-javascript@4.0.0: resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} @@ -17956,12 +13208,6 @@ packages: randombytes: 2.1.0 dev: false - /serialize-javascript@6.0.0: - resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} - dependencies: - randombytes: 2.1.0 - dev: true - /serialize-javascript@6.0.1: resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==} dependencies: @@ -18006,23 +13252,7 @@ packages: send: 0.18.0 transitivePeerDependencies: - supports-color - - /servify@0.1.12: - resolution: {integrity: sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==} - engines: {node: '>=6'} - dependencies: - body-parser: 1.20.2 - cors: 2.8.5 - express: 4.18.2 - request: 2.88.2 - xhr: 2.6.0 - transitivePeerDependencies: - - supports-color - dev: true - - /set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - dev: true + dev: false /set-function-name@2.0.1: resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} @@ -18033,10 +13263,6 @@ packages: has-property-descriptors: 1.0.0 dev: true - /setimmediate@1.0.4: - resolution: {integrity: sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==} - dev: true - /setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} dev: true @@ -18047,6 +13273,7 @@ packages: /setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + dev: false /sha.js@2.4.11: resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} @@ -18056,31 +13283,12 @@ packages: safe-buffer: 5.2.1 dev: true - /sha1@1.1.1: - resolution: {integrity: sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA==} - dependencies: - charenc: 0.0.2 - crypt: 0.0.2 - dev: true - - /shebang-command@1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} - engines: {node: '>=0.10.0'} - dependencies: - shebang-regex: 1.0.0 - dev: true - /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 - /shebang-regex@1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} - engines: {node: '>=0.10.0'} - dev: true - /shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} @@ -18089,16 +13297,6 @@ packages: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} dev: false - /shelljs@0.8.5: - resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} - engines: {node: '>=4'} - hasBin: true - dependencies: - glob: 7.2.3 - interpret: 1.4.0 - rechoir: 0.6.2 - dev: true - /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: @@ -18112,18 +13310,7 @@ packages: /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - /simple-concat@1.0.1: - resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} - dev: true - - /simple-get@2.8.2: - resolution: {integrity: sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==} - dependencies: - decompress-response: 3.3.0 - once: 1.4.0 - simple-concat: 1.0.1 - dev: true + dev: false /sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} @@ -18138,15 +13325,6 @@ packages: engines: {node: '>=12'} dev: false - /slice-ansi@4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - dev: true - /sockjs@0.3.24: resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} dependencies: @@ -18155,59 +13333,6 @@ packages: websocket-driver: 0.7.4 dev: false - /solc@0.7.3(debug@4.3.4): - resolution: {integrity: sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==} - engines: {node: '>=8.0.0'} - hasBin: true - dependencies: - command-exists: 1.2.9 - commander: 3.0.2 - follow-redirects: 1.15.2(debug@4.3.4) - fs-extra: 0.30.0 - js-sha3: 0.8.0 - memorystream: 0.3.1 - require-from-string: 2.0.2 - semver: 5.7.1 - tmp: 0.0.33 - transitivePeerDependencies: - - debug - dev: true - - /solidity-coverage@0.7.22: - resolution: {integrity: sha512-I6Zd5tsFY+gmj1FDIp6w7OrUePx6ZpMgKQZg7dWgPaQHePLi3Jk+iJ8lwZxsWEoNy2Lcv91rMxATWHqRaFdQpw==} - hasBin: true - dependencies: - '@solidity-parser/parser': 0.14.5 - '@truffle/provider': 0.2.64 - chalk: 2.4.2 - death: 1.1.0 - detect-port: 1.5.1 - fs-extra: 8.1.0 - ghost-testrpc: 0.0.2 - global-modules: 2.0.0 - globby: 10.0.2 - jsonschema: 1.4.1 - lodash: 4.17.21 - node-emoji: 1.11.0 - pify: 4.0.1 - recursive-readdir: 2.2.3 - sc-istanbul: 0.4.6 - semver: 7.5.4 - shelljs: 0.8.5 - web3-utils: 1.10.0 - transitivePeerDependencies: - - bufferutil - - encoding - - supports-color - - utf-8-validate - dev: true - - /sonic-boom@2.8.0: - resolution: {integrity: sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==} - dependencies: - atomic-sleep: 1.0.0 - dev: true - /source-list-map@2.0.1: resolution: {integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==} dev: false @@ -18233,19 +13358,12 @@ packages: dependencies: buffer-from: 1.1.2 source-map: 0.6.1 - - /source-map@0.2.0: - resolution: {integrity: sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==} - engines: {node: '>=0.8.0'} - requiresBuild: true - dependencies: - amdefine: 1.0.1 - dev: true - optional: true + dev: false /source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + dev: false /source-map@0.7.4: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} @@ -18267,7 +13385,7 @@ packages: /spdy-transport@3.0.0: resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 detect-node: 2.1.0 hpack.js: 2.1.6 obuf: 1.1.2 @@ -18281,7 +13399,7 @@ packages: resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} engines: {node: '>=6.0.0'} dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 handle-thing: 2.0.1 http-deceiver: 1.2.7 select-hose: 2.0.0 @@ -18290,34 +13408,9 @@ packages: - supports-color dev: false - /split-on-first@1.1.0: - resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} - engines: {node: '>=6'} - dev: true - - /split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} - dev: true - /sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - - /sshpk@1.17.0: - resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==} - engines: {node: '>=0.10.0'} - hasBin: true - dependencies: - asn1: 0.2.6 - assert-plus: 1.0.0 - bcrypt-pbkdf: 1.0.2 - dashdash: 1.14.1 - ecc-jsbn: 0.1.2 - getpass: 0.1.7 - jsbn: 0.1.1 - safer-buffer: 2.1.2 - tweetnacl: 0.14.5 - dev: true + dev: false /stable@0.1.8: resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} @@ -18339,13 +13432,6 @@ packages: resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} dev: false - /stacktrace-parser@0.1.10: - resolution: {integrity: sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==} - engines: {node: '>=6'} - dependencies: - type-fest: 0.7.1 - dev: true - /statuses@1.5.0: resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} engines: {node: '>= 0.6'} @@ -18354,16 +13440,12 @@ packages: /statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} + dev: false /std-env@3.3.3: resolution: {integrity: sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==} dev: true - /stealthy-require@1.1.1: - resolution: {integrity: sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==} - engines: {node: '>=0.10.0'} - dev: true - /stop-iteration-iterator@1.0.0: resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} engines: {node: '>= 0.4'} @@ -18387,38 +13469,10 @@ packages: xtend: 4.0.2 dev: true - /stream-shift@1.0.1: - resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} - dev: true - - /stream-to-it@0.2.4: - resolution: {integrity: sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ==} - dependencies: - get-iterator: 1.0.2 - dev: true - /streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} - /strict-event-emitter@0.5.0: - resolution: {integrity: sha512-sqnMpVJLSB3daNO6FcvsEk4Mq5IJeAwDeH80DP1S8+pgxrF6yZnE1+VeapesGled7nEcIkz1Ax87HzaIy+02kA==} - dev: true - - /strict-uri-encode@1.1.0: - resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} - engines: {node: '>=0.10.0'} - dev: true - - /strict-uri-encode@2.0.0: - resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} - engines: {node: '>=4'} - dev: true - - /string-format@2.0.0: - resolution: {integrity: sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==} - dev: true - /string-length@4.0.2: resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} engines: {node: '>=10'} @@ -18439,23 +13493,6 @@ packages: resolution: {integrity: sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==} dev: false - /string-width@2.1.1: - resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} - engines: {node: '>=4'} - dependencies: - is-fullwidth-code-point: 2.0.0 - strip-ansi: 4.0.0 - dev: true - - /string-width@3.1.0: - resolution: {integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==} - engines: {node: '>=6'} - dependencies: - emoji-regex: 7.0.3 - is-fullwidth-code-point: 2.0.0 - strip-ansi: 5.2.0 - dev: true - /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -18463,6 +13500,7 @@ packages: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + dev: false /string.prototype.matchall@4.0.8: resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} @@ -18528,6 +13566,7 @@ packages: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: safe-buffer: 5.1.2 + dev: false /string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -18543,20 +13582,6 @@ packages: is-regexp: 1.0.0 dev: false - /strip-ansi@4.0.0: - resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==} - engines: {node: '>=4'} - dependencies: - ansi-regex: 3.0.1 - dev: true - - /strip-ansi@5.2.0: - resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} - engines: {node: '>=6'} - dependencies: - ansi-regex: 4.1.1 - dev: true - /strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -18584,22 +13609,10 @@ packages: engines: {node: '>=10'} dev: false - /strip-dirs@2.1.0: - resolution: {integrity: sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==} - dependencies: - is-natural-number: 4.0.1 - dev: true - /strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} - - /strip-hex-prefix@1.0.0: - resolution: {integrity: sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==} - engines: {node: '>=6.5.0', npm: '>=3'} - dependencies: - is-hex-prefixed: 1.0.0 - dev: true + dev: false /strip-indent@3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} @@ -18608,11 +13621,6 @@ packages: min-indent: 1.0.1 dev: false - /strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - dev: true - /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -18657,26 +13665,12 @@ packages: ts-interface-checker: 0.1.13 dev: false - /supports-color@3.2.3: - resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==} - engines: {node: '>=0.8.0'} - dependencies: - has-flag: 1.0.0 - dev: true - /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} dependencies: has-flag: 3.0.0 - /supports-color@6.0.0: - resolution: {integrity: sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==} - engines: {node: '>=6'} - dependencies: - has-flag: 3.0.0 - dev: true - /supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -18688,6 +13682,7 @@ packages: engines: {node: '>=10'} dependencies: has-flag: 4.0.0 + dev: false /supports-hyperlinks@2.3.0: resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} @@ -18695,6 +13690,7 @@ packages: dependencies: has-flag: 4.0.0 supports-color: 7.2.0 + dev: false /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} @@ -18739,66 +13735,10 @@ packages: stable: 0.1.8 dev: false - /swarm-js@0.1.42: - resolution: {integrity: sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==} - dependencies: - bluebird: 3.7.2 - buffer: 5.7.1 - eth-lib: 0.1.29 - fs-extra: 4.0.3 - got: 11.8.6 - mime-types: 2.1.35 - mkdirp-promise: 5.0.1 - mock-fs: 4.14.0 - setimmediate: 1.0.5 - tar: 4.4.19 - xhr-request: 1.1.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - /symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} dev: false - /sync-request@6.1.0: - resolution: {integrity: sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==} - engines: {node: '>=8.0.0'} - dependencies: - http-response-object: 3.0.2 - sync-rpc: 1.3.6 - then-request: 6.0.2 - dev: true - - /sync-rpc@1.3.6: - resolution: {integrity: sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==} - dependencies: - get-port: 3.2.0 - dev: true - - /table-layout@1.0.2: - resolution: {integrity: sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==} - engines: {node: '>=8.0.0'} - dependencies: - array-back: 4.0.2 - deep-extend: 0.6.0 - typical: 5.2.0 - wordwrapjs: 4.0.1 - dev: true - - /table@6.8.1: - resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} - engines: {node: '>=10.0.0'} - dependencies: - ajv: 8.12.0 - lodash.truncate: 4.4.2 - slice-ansi: 4.0.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: true - /tailwindcss@3.3.2(ts-node@10.9.1): resolution: {integrity: sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==} engines: {node: '>=14.0.0'} @@ -18850,19 +13790,6 @@ packages: tar-stream: 2.2.0 dev: true - /tar-stream@1.6.2: - resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==} - engines: {node: '>= 0.8.0'} - dependencies: - bl: 1.2.3 - buffer-alloc: 1.2.0 - end-of-stream: 1.4.4 - fs-constants: 1.0.0 - readable-stream: 2.3.8 - to-buffer: 1.1.1 - xtend: 4.0.2 - dev: true - /tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} @@ -18873,19 +13800,6 @@ packages: inherits: 2.0.4 readable-stream: 3.6.2 - /tar@4.4.19: - resolution: {integrity: sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==} - engines: {node: '>=4.5'} - dependencies: - chownr: 1.1.4 - fs-minipass: 1.2.7 - minipass: 2.9.0 - minizlib: 1.3.3 - mkdirp: 0.5.6 - safe-buffer: 5.2.1 - yallist: 3.1.1 - dev: true - /temp-dir@2.0.0: resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} engines: {node: '>=8'} @@ -18956,23 +13870,6 @@ packages: /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - /then-request@6.0.2: - resolution: {integrity: sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==} - engines: {node: '>=6.0.0'} - dependencies: - '@types/concat-stream': 1.6.1 - '@types/form-data': 0.0.33 - '@types/node': 8.10.66 - '@types/qs': 6.9.7 - caseless: 0.12.0 - concat-stream: 1.6.2 - form-data: 2.5.1 - http-basic: 8.1.3 - http-response-object: 3.0.2 - promise: 8.3.0 - qs: 6.11.2 - dev: true - /thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} @@ -18986,25 +13883,6 @@ packages: any-promise: 1.3.0 dev: false - /thread-stream@0.15.2: - resolution: {integrity: sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==} - dependencies: - real-require: 0.1.0 - dev: true - - /threads@1.7.0: - resolution: {integrity: sha512-Mx5NBSHX3sQYR6iI9VYbgHKBLisyB+xROCBGjjWm1O9wb9vfLxdaGtmT/KCjUqMsSNW6nERzCW3T6H43LqjDZQ==} - dependencies: - callsites: 3.1.0 - debug: 4.3.4(supports-color@8.1.1) - is-observable: 2.1.0 - observable-fns: 0.6.1 - optionalDependencies: - tiny-worker: 2.3.0 - transitivePeerDependencies: - - supports-color - dev: true - /throat@6.0.2: resolution: {integrity: sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==} dev: false @@ -19017,17 +13895,6 @@ packages: resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} dev: false - /timed-out@4.0.1: - resolution: {integrity: sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==} - engines: {node: '>=0.10.0'} - dev: true - - /timeout-abort-controller@3.0.0: - resolution: {integrity: sha512-O3e+2B8BKrQxU2YRyEjC/2yFdb33slI22WRdUaDx6rvysfi9anloNZyR2q0l6LnePo5qH7gSM7uZtvvwZbc2yA==} - dependencies: - retimer: 3.0.0 - dev: true - /timers-browserify@2.0.12: resolution: {integrity: sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==} engines: {node: '>=0.6.0'} @@ -19040,6 +13907,7 @@ packages: requiresBuild: true dependencies: esm: 3.2.25 + dev: false optional: true /tinybench@2.5.0: @@ -19056,31 +13924,15 @@ packages: engines: {node: '>=14.0.0'} dev: true - /tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} - dependencies: - os-tmpdir: 1.0.2 - dev: true - /tmpl@1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} dev: false - /to-buffer@1.1.1: - resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==} - dev: true - /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} dev: false - /to-readable-stream@1.0.0: - resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} - engines: {node: '>=6'} - dev: true - /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -19090,14 +13942,7 @@ packages: /toidentifier@1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} - - /tough-cookie@2.5.0: - resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} - engines: {node: '>=0.8'} - dependencies: - psl: 1.9.0 - punycode: 2.3.0 - dev: true + dev: false /tough-cookie@4.1.3: resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} @@ -19130,6 +13975,7 @@ packages: resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==} dependencies: utf8-byte-length: 1.0.4 + dev: false /tryer@1.0.1: resolution: {integrity: sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==} @@ -19144,24 +13990,6 @@ packages: typescript: 5.1.6 dev: true - /ts-command-line-args@2.5.1: - resolution: {integrity: sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==} - hasBin: true - dependencies: - chalk: 4.1.2 - command-line-args: 5.2.1 - command-line-usage: 6.1.3 - string-format: 2.0.0 - dev: true - - /ts-essentials@7.0.3(typescript@5.1.6): - resolution: {integrity: sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==} - peerDependencies: - typescript: '>=3.7.0' - dependencies: - typescript: 5.1.6 - dev: true - /ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} dev: false @@ -19227,9 +14055,6 @@ packages: yn: 3.1.1 dev: true - /ts-pattern@3.3.3: - resolution: {integrity: sha512-Z5EFi6g6wyX3uDFHqxF5W5c5h663oZg9O6aOiAT7fqNu0HPSfCxtHzrQ7SblTy738Mrg2Ezorky8H5aUOm8Pvg==} - /ts-pattern@5.0.5: resolution: {integrity: sha512-tL0w8U/pgaacOmkb9fRlYzWEUDCfVjjv9dD4wHTgZ61MjhuMt46VNWTG747NqW6vRzoWIKABVhFSOJ82FvXrfA==} dev: false @@ -19257,13 +14082,11 @@ packages: /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: false /tslib@2.5.3: resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==} - - /tsort@0.0.1: - resolution: {integrity: sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==} - dev: true + dev: false /tsutils@3.21.0(typescript@5.1.6): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} @@ -19279,31 +14102,6 @@ packages: resolution: {integrity: sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==} dev: true - /tunnel-agent@0.6.0: - resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - dependencies: - safe-buffer: 5.2.1 - dev: true - - /tweetnacl-util@0.15.1: - resolution: {integrity: sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==} - dev: true - - /tweetnacl@0.14.5: - resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} - dev: true - - /tweetnacl@1.0.3: - resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} - dev: true - - /type-check@0.3.2: - resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.1.2 - dev: true - /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -19326,11 +14124,7 @@ packages: /type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} - - /type-fest@0.7.1: - resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} - engines: {node: '>=8'} - dev: true + dev: false /type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} @@ -19338,35 +14132,7 @@ packages: dependencies: media-typer: 0.3.0 mime-types: 2.1.35 - - /type@1.2.0: - resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} - dev: true - - /type@2.7.2: - resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} - dev: true - - /typechain@8.2.0(typescript@5.1.6): - resolution: {integrity: sha512-tZqhqjxJ9xAS/Lh32jccTjMkpx7sTdUVVHAy5Bf0TIer5QFNYXotiX74oCvoVYjyxUKDK3MXHtMFzMyD3kE+jg==} - hasBin: true - peerDependencies: - typescript: '>=4.3.0' - dependencies: - '@types/prettier': 2.7.3 - debug: 4.3.4(supports-color@8.1.1) - fs-extra: 7.0.1 - glob: 7.1.7 - js-sha3: 0.8.0 - lodash: 4.17.21 - mkdirp: 1.0.4 - prettier: 2.8.8 - ts-command-line-args: 2.5.1 - ts-essentials: 7.0.3(typescript@5.1.6) - typescript: 5.1.6 - transitivePeerDependencies: - - supports-color - dev: true + dev: false /typed-array-buffer@1.0.0: resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} @@ -19409,38 +14175,17 @@ packages: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} dependencies: is-typedarray: 1.0.0 - - /typedarray@0.0.6: - resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - dev: true + dev: false /typescript@5.1.6: resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} engines: {node: '>=14.17'} hasBin: true - /typical@4.0.0: - resolution: {integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==} - engines: {node: '>=8'} - dev: true - - /typical@5.2.0: - resolution: {integrity: sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==} - engines: {node: '>=8'} - dev: true - /ufo@1.3.1: resolution: {integrity: sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==} dev: true - /uglify-js@3.17.4: - resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} - engines: {node: '>=0.8.0'} - hasBin: true - requiresBuild: true - dev: true - optional: true - /uint8-varint@1.0.6: resolution: {integrity: sha512-Z0ujO4rxPwxTdLsSI5ke+bdl9hjJ1xiOakBPZeWUI/u6YBGCEGTW6b90SMlhxSGButKVPkL9fMFUDnqThQYTGg==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} @@ -19449,24 +14194,21 @@ packages: longbits: 1.1.0 uint8arraylist: 2.4.3 uint8arrays: 4.0.3 + dev: false /uint8-varint@2.0.1: resolution: {integrity: sha512-euvmpuulJstK5+xNuI4S1KfnxJnbI5QP52RXIR3GZ3/ZMkOsEK2AgCtFpNvEQLXMxMx2o0qcyevK1fJwOZJagQ==} dependencies: uint8arraylist: 2.4.3 uint8arrays: 4.0.3 + dev: false /uint8arraylist@2.4.3: resolution: {integrity: sha512-oEVZr4/GrH87K0kjNce6z8pSCzLEPqHNLNR5sj8cJOySrTP8Vb/pMIbZKLJGhQKxm1TiZ31atNrpn820Pyqpow==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: uint8arrays: 4.0.3 - - /uint8arrays@3.1.1: - resolution: {integrity: sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==} - dependencies: - multiformats: 9.9.0 - dev: true + dev: false /uint8arrays@4.0.3: resolution: {integrity: sha512-b+aKlI2oTnxnfeSQWV1sMacqSNxqhtXySaH6bflvONGxF8V/fT3ZlYH7z2qgGfydsvpVo4JUgM/Ylyfl2YouCg==} @@ -19478,10 +14220,7 @@ packages: resolution: {integrity: sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==} dependencies: multiformats: 12.0.1 - - /ultron@1.1.1: - resolution: {integrity: sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==} - dev: true + dev: false /unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} @@ -19541,11 +14280,6 @@ packages: crypto-random-string: 2.0.0 dev: false - /universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - dev: true - /universalify@0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} @@ -19554,10 +14288,12 @@ packages: /universalify@2.0.0: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} + dev: false /unpipe@1.0.0: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} + dev: false /unquote@1.1.1: resolution: {integrity: sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==} @@ -19599,13 +14335,6 @@ packages: resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} dev: true - /url-parse-lax@3.0.0: - resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==} - engines: {node: '>=4'} - dependencies: - prepend-http: 2.0.0 - dev: true - /url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} dependencies: @@ -19613,10 +14342,6 @@ packages: requires-port: 1.0.0 dev: false - /url-set-query@1.0.0: - resolution: {integrity: sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==} - dev: true - /url@0.11.1: resolution: {integrity: sha512-rWS3H04/+mzzJkv0eZ7vEDGiQbgquI1fGfOad6zKvgYQi1SzMmhl7c/DdRGxhaWrVH6z0qWITo8rpnxK/RfEhA==} dependencies: @@ -19624,20 +14349,9 @@ packages: qs: 6.11.2 dev: true - /utf-8-validate@5.0.10: - resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} - engines: {node: '>=6.14.2'} - requiresBuild: true - dependencies: - node-gyp-build: 4.6.0 - dev: true - /utf8-byte-length@1.0.4: resolution: {integrity: sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==} - - /utf8@3.0.0: - resolution: {integrity: sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==} - dev: true + dev: false /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -19659,6 +14373,7 @@ packages: is-generator-function: 1.0.10 is-typed-array: 1.1.12 which-typed-array: 1.1.11 + dev: true /utila@0.4.0: resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} @@ -19667,32 +14382,12 @@ packages: /utils-merge@1.0.1: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} - - /uuid@2.0.1: - resolution: {integrity: sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==} - deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. - dev: true - - /uuid@3.3.2: - resolution: {integrity: sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==} - deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. - hasBin: true - dev: true - - /uuid@3.4.0: - resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} - deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. - hasBin: true - dev: true + dev: false /uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true - - /uuid@9.0.0: - resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==} - hasBin: true - dev: true + dev: false /v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} @@ -19706,25 +14401,13 @@ packages: source-map: 0.7.4 dev: false - /varint@5.0.2: - resolution: {integrity: sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==} - dev: true - /varint@6.0.0: resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} /vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - - /verror@1.10.0: - resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} - engines: {'0': node >=0.6.0} - dependencies: - assert-plus: 1.0.0 - core-util-is: 1.0.2 - extsprintf: 1.3.0 - dev: true + dev: false /vite-node@0.34.6(@types/node@20.7.0): resolution: {integrity: sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==} @@ -19732,7 +14415,7 @@ packages: hasBin: true dependencies: cac: 6.7.14 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 mlly: 1.4.2 pathe: 1.1.1 picocolors: 1.0.0 @@ -19753,7 +14436,7 @@ packages: peerDependencies: vite: '>2.0.0-0' dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 globrex: 0.1.2 tsconfck: 2.1.1(typescript@5.1.6) vite: 4.4.11(@types/node@20.7.0) @@ -19877,7 +14560,7 @@ packages: acorn-walk: 8.2.0 cac: 6.7.14 chai: 4.3.10 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 local-pkg: 0.4.3 magic-string: 0.30.5 pathe: 1.1.1 @@ -19937,547 +14620,10 @@ packages: minimalistic-assert: 1.0.1 dev: false - /wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - dependencies: - defaults: 1.0.4 - dev: true - /web-vitals@2.1.4: resolution: {integrity: sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg==} dev: false - /web3-bzz@1.10.0: - resolution: {integrity: sha512-o9IR59io3pDUsXTsps5pO5hW1D5zBmg46iNc2t4j2DkaYHNdDLwk2IP9ukoM2wg47QILfPEJYzhTfkS/CcX0KA==} - engines: {node: '>=8.0.0'} - requiresBuild: true - dependencies: - '@types/node': 12.20.55 - got: 12.1.0 - swarm-js: 0.1.42 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - - /web3-bzz@1.7.4: - resolution: {integrity: sha512-w9zRhyEqTK/yi0LGRHjZMcPCfP24LBjYXI/9YxFw9VqsIZ9/G0CRCnUt12lUx0A56LRAMpF7iQ8eA73aBcO29Q==} - engines: {node: '>=8.0.0'} - requiresBuild: true - dependencies: - '@types/node': 12.20.55 - got: 9.6.0 - swarm-js: 0.1.42 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - - /web3-core-helpers@1.10.0: - resolution: {integrity: sha512-pIxAzFDS5vnbXvfvLSpaA1tfRykAe9adw43YCKsEYQwH0gCLL0kMLkaCX3q+Q8EVmAh+e1jWL/nl9U0de1+++g==} - engines: {node: '>=8.0.0'} - dependencies: - web3-eth-iban: 1.10.0 - web3-utils: 1.10.0 - dev: true - - /web3-core-helpers@1.7.4: - resolution: {integrity: sha512-F8PH11qIkE/LpK4/h1fF/lGYgt4B6doeMi8rukeV/s4ivseZHHslv1L6aaijLX/g/j4PsFmR42byynBI/MIzFg==} - engines: {node: '>=8.0.0'} - dependencies: - web3-eth-iban: 1.7.4 - web3-utils: 1.7.4 - dev: true - - /web3-core-method@1.10.0: - resolution: {integrity: sha512-4R700jTLAMKDMhQ+nsVfIXvH6IGJlJzGisIfMKWAIswH31h5AZz7uDUW2YctI+HrYd+5uOAlS4OJeeT9bIpvkA==} - engines: {node: '>=8.0.0'} - dependencies: - '@ethersproject/transactions': 5.7.0 - web3-core-helpers: 1.10.0 - web3-core-promievent: 1.10.0 - web3-core-subscriptions: 1.10.0 - web3-utils: 1.10.0 - dev: true - - /web3-core-method@1.7.4: - resolution: {integrity: sha512-56K7pq+8lZRkxJyzf5MHQPI9/VL3IJLoy4L/+q8HRdZJ3CkB1DkXYaXGU2PeylG1GosGiSzgIfu1ljqS7CP9xQ==} - engines: {node: '>=8.0.0'} - dependencies: - '@ethersproject/transactions': 5.7.0 - web3-core-helpers: 1.7.4 - web3-core-promievent: 1.7.4 - web3-core-subscriptions: 1.7.4 - web3-utils: 1.7.4 - dev: true - - /web3-core-promievent@1.10.0: - resolution: {integrity: sha512-68N7k5LWL5R38xRaKFrTFT2pm2jBNFaM4GioS00YjAKXRQ3KjmhijOMG3TICz6Aa5+6GDWYelDNx21YAeZ4YTg==} - engines: {node: '>=8.0.0'} - dependencies: - eventemitter3: 4.0.4 - dev: true - - /web3-core-promievent@1.7.4: - resolution: {integrity: sha512-o4uxwXKDldN7ER7VUvDfWsqTx9nQSP1aDssi1XYXeYC2xJbVo0n+z6ryKtmcoWoRdRj7uSpVzal3nEmlr480mA==} - engines: {node: '>=8.0.0'} - dependencies: - eventemitter3: 4.0.4 - dev: true - - /web3-core-requestmanager@1.10.0: - resolution: {integrity: sha512-3z/JKE++Os62APml4dvBM+GAuId4h3L9ckUrj7ebEtS2AR0ixyQPbrBodgL91Sv7j7cQ3Y+hllaluqjguxvSaQ==} - engines: {node: '>=8.0.0'} - dependencies: - util: 0.12.5 - web3-core-helpers: 1.10.0 - web3-providers-http: 1.10.0 - web3-providers-ipc: 1.10.0 - web3-providers-ws: 1.10.0 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - - /web3-core-requestmanager@1.7.4: - resolution: {integrity: sha512-IuXdAm65BQtPL4aI6LZJJOrKAs0SM5IK2Cqo2/lMNvVMT9Kssq6qOk68Uf7EBDH0rPuINi+ReLP+uH+0g3AnPA==} - engines: {node: '>=8.0.0'} - dependencies: - util: 0.12.5 - web3-core-helpers: 1.7.4 - web3-providers-http: 1.7.4 - web3-providers-ipc: 1.7.4 - web3-providers-ws: 1.7.4 - transitivePeerDependencies: - - supports-color - dev: true - - /web3-core-subscriptions@1.10.0: - resolution: {integrity: sha512-HGm1PbDqsxejI075gxBc5OSkwymilRWZufIy9zEpnWKNmfbuv5FfHgW1/chtJP6aP3Uq2vHkvTDl3smQBb8l+g==} - engines: {node: '>=8.0.0'} - dependencies: - eventemitter3: 4.0.4 - web3-core-helpers: 1.10.0 - dev: true - - /web3-core-subscriptions@1.7.4: - resolution: {integrity: sha512-VJvKWaXRyxk2nFWumOR94ut9xvjzMrRtS38c4qj8WBIRSsugrZr5lqUwgndtj0qx4F+50JhnU++QEqUEAtKm3g==} - engines: {node: '>=8.0.0'} - dependencies: - eventemitter3: 4.0.4 - web3-core-helpers: 1.7.4 - dev: true - - /web3-core@1.10.0: - resolution: {integrity: sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ==} - engines: {node: '>=8.0.0'} - dependencies: - '@types/bn.js': 5.1.1 - '@types/node': 12.20.55 - bignumber.js: 9.1.1 - web3-core-helpers: 1.10.0 - web3-core-method: 1.10.0 - web3-core-requestmanager: 1.10.0 - web3-utils: 1.10.0 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - - /web3-core@1.7.4: - resolution: {integrity: sha512-L0DCPlIh9bgIED37tYbe7bsWrddoXYc897ANGvTJ6MFkSNGiMwDkTLWSgYd9Mf8qu8b4iuPqXZHMwIo4atoh7Q==} - engines: {node: '>=8.0.0'} - dependencies: - '@types/bn.js': 5.1.1 - '@types/node': 12.20.55 - bignumber.js: 9.1.1 - web3-core-helpers: 1.7.4 - web3-core-method: 1.7.4 - web3-core-requestmanager: 1.7.4 - web3-utils: 1.7.4 - transitivePeerDependencies: - - supports-color - dev: true - - /web3-eth-abi@1.10.0: - resolution: {integrity: sha512-cwS+qRBWpJ43aI9L3JS88QYPfFcSJJ3XapxOQ4j40v6mk7ATpA8CVK1vGTzpihNlOfMVRBkR95oAj7oL6aiDOg==} - engines: {node: '>=8.0.0'} - dependencies: - '@ethersproject/abi': 5.7.0 - web3-utils: 1.10.0 - dev: true - - /web3-eth-abi@1.7.4: - resolution: {integrity: sha512-eMZr8zgTbqyL9MCTCAvb67RbVyN5ZX7DvA0jbLOqRWCiw+KlJKTGnymKO6jPE8n5yjk4w01e165Qb11hTDwHgg==} - engines: {node: '>=8.0.0'} - dependencies: - '@ethersproject/abi': 5.7.0 - web3-utils: 1.7.4 - dev: true - - /web3-eth-accounts@1.10.0: - resolution: {integrity: sha512-wiq39Uc3mOI8rw24wE2n15hboLE0E9BsQLdlmsL4Zua9diDS6B5abXG0XhFcoNsXIGMWXVZz4TOq3u4EdpXF/Q==} - engines: {node: '>=8.0.0'} - dependencies: - '@ethereumjs/common': 2.5.0 - '@ethereumjs/tx': 3.3.2 - eth-lib: 0.2.8 - ethereumjs-util: 7.1.5 - scrypt-js: 3.0.1 - uuid: 9.0.0 - web3-core: 1.10.0 - web3-core-helpers: 1.10.0 - web3-core-method: 1.10.0 - web3-utils: 1.10.0 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - - /web3-eth-accounts@1.7.4: - resolution: {integrity: sha512-Y9vYLRKP7VU7Cgq6wG1jFaG2k3/eIuiTKAG8RAuQnb6Cd9k5BRqTm5uPIiSo0AP/u11jDomZ8j7+WEgkU9+Btw==} - engines: {node: '>=8.0.0'} - dependencies: - '@ethereumjs/common': 2.6.5 - '@ethereumjs/tx': 3.5.2 - crypto-browserify: 3.12.0 - eth-lib: 0.2.8 - ethereumjs-util: 7.1.5 - scrypt-js: 3.0.1 - uuid: 3.3.2 - web3-core: 1.7.4 - web3-core-helpers: 1.7.4 - web3-core-method: 1.7.4 - web3-utils: 1.7.4 - transitivePeerDependencies: - - supports-color - dev: true - - /web3-eth-contract@1.10.0: - resolution: {integrity: sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w==} - engines: {node: '>=8.0.0'} - dependencies: - '@types/bn.js': 5.1.1 - web3-core: 1.10.0 - web3-core-helpers: 1.10.0 - web3-core-method: 1.10.0 - web3-core-promievent: 1.10.0 - web3-core-subscriptions: 1.10.0 - web3-eth-abi: 1.10.0 - web3-utils: 1.10.0 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - - /web3-eth-contract@1.7.4: - resolution: {integrity: sha512-ZgSZMDVI1pE9uMQpK0T0HDT2oewHcfTCv0osEqf5qyn5KrcQDg1GT96/+S0dfqZ4HKj4lzS5O0rFyQiLPQ8LzQ==} - engines: {node: '>=8.0.0'} - dependencies: - '@types/bn.js': 5.1.1 - web3-core: 1.7.4 - web3-core-helpers: 1.7.4 - web3-core-method: 1.7.4 - web3-core-promievent: 1.7.4 - web3-core-subscriptions: 1.7.4 - web3-eth-abi: 1.7.4 - web3-utils: 1.7.4 - transitivePeerDependencies: - - supports-color - dev: true - - /web3-eth-ens@1.10.0: - resolution: {integrity: sha512-3hpGgzX3qjgxNAmqdrC2YUQMTfnZbs4GeLEmy8aCWziVwogbuqQZ+Gzdfrym45eOZodk+lmXyLuAdqkNlvkc1g==} - engines: {node: '>=8.0.0'} - dependencies: - content-hash: 2.5.2 - eth-ens-namehash: 2.0.8 - web3-core: 1.10.0 - web3-core-helpers: 1.10.0 - web3-core-promievent: 1.10.0 - web3-eth-abi: 1.10.0 - web3-eth-contract: 1.10.0 - web3-utils: 1.10.0 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - - /web3-eth-ens@1.7.4: - resolution: {integrity: sha512-Gw5CVU1+bFXP5RVXTCqJOmHn71X2ghNk9VcEH+9PchLr0PrKbHTA3hySpsPco1WJAyK4t8SNQVlNr3+bJ6/WZA==} - engines: {node: '>=8.0.0'} - dependencies: - content-hash: 2.5.2 - eth-ens-namehash: 2.0.8 - web3-core: 1.7.4 - web3-core-helpers: 1.7.4 - web3-core-promievent: 1.7.4 - web3-eth-abi: 1.7.4 - web3-eth-contract: 1.7.4 - web3-utils: 1.7.4 - transitivePeerDependencies: - - supports-color - dev: true - - /web3-eth-iban@1.10.0: - resolution: {integrity: sha512-0l+SP3IGhInw7Q20LY3IVafYEuufo4Dn75jAHT7c2aDJsIolvf2Lc6ugHkBajlwUneGfbRQs/ccYPQ9JeMUbrg==} - engines: {node: '>=8.0.0'} - dependencies: - bn.js: 5.2.1 - web3-utils: 1.10.0 - dev: true - - /web3-eth-iban@1.7.4: - resolution: {integrity: sha512-XyrsgWlZQMv5gRcjXMsNvAoCRvV5wN7YCfFV5+tHUCqN8g9T/o4XUS20vDWD0k4HNiAcWGFqT1nrls02MGZ08w==} - engines: {node: '>=8.0.0'} - dependencies: - bn.js: 5.2.1 - web3-utils: 1.7.4 - dev: true - - /web3-eth-personal@1.10.0: - resolution: {integrity: sha512-anseKn98w/d703eWq52uNuZi7GhQeVjTC5/svrBWEKob0WZ5kPdo+EZoFN0sp5a5ubbrk/E0xSl1/M5yORMtpg==} - engines: {node: '>=8.0.0'} - dependencies: - '@types/node': 12.20.55 - web3-core: 1.10.0 - web3-core-helpers: 1.10.0 - web3-core-method: 1.10.0 - web3-net: 1.10.0 - web3-utils: 1.10.0 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - - /web3-eth-personal@1.7.4: - resolution: {integrity: sha512-O10C1Hln5wvLQsDhlhmV58RhXo+GPZ5+W76frSsyIrkJWLtYQTCr5WxHtRC9sMD1idXLqODKKgI2DL+7xeZ0/g==} - engines: {node: '>=8.0.0'} - dependencies: - '@types/node': 12.20.55 - web3-core: 1.7.4 - web3-core-helpers: 1.7.4 - web3-core-method: 1.7.4 - web3-net: 1.7.4 - web3-utils: 1.7.4 - transitivePeerDependencies: - - supports-color - dev: true - - /web3-eth@1.10.0: - resolution: {integrity: sha512-Z5vT6slNMLPKuwRyKGbqeGYC87OAy8bOblaqRTgg94CXcn/mmqU7iPIlG4506YdcdK3x6cfEDG7B6w+jRxypKA==} - engines: {node: '>=8.0.0'} - dependencies: - web3-core: 1.10.0 - web3-core-helpers: 1.10.0 - web3-core-method: 1.10.0 - web3-core-subscriptions: 1.10.0 - web3-eth-abi: 1.10.0 - web3-eth-accounts: 1.10.0 - web3-eth-contract: 1.10.0 - web3-eth-ens: 1.10.0 - web3-eth-iban: 1.10.0 - web3-eth-personal: 1.10.0 - web3-net: 1.10.0 - web3-utils: 1.10.0 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - - /web3-eth@1.7.4: - resolution: {integrity: sha512-JG0tTMv0Ijj039emXNHi07jLb0OiWSA9O24MRSk5vToTQyDNXihdF2oyq85LfHuF690lXZaAXrjhtLNlYqb7Ug==} - engines: {node: '>=8.0.0'} - dependencies: - web3-core: 1.7.4 - web3-core-helpers: 1.7.4 - web3-core-method: 1.7.4 - web3-core-subscriptions: 1.7.4 - web3-eth-abi: 1.7.4 - web3-eth-accounts: 1.7.4 - web3-eth-contract: 1.7.4 - web3-eth-ens: 1.7.4 - web3-eth-iban: 1.7.4 - web3-eth-personal: 1.7.4 - web3-net: 1.7.4 - web3-utils: 1.7.4 - transitivePeerDependencies: - - supports-color - dev: true - - /web3-net@1.10.0: - resolution: {integrity: sha512-NLH/N3IshYWASpxk4/18Ge6n60GEvWBVeM8inx2dmZJVmRI6SJIlUxbL8jySgiTn3MMZlhbdvrGo8fpUW7a1GA==} - engines: {node: '>=8.0.0'} - dependencies: - web3-core: 1.10.0 - web3-core-method: 1.10.0 - web3-utils: 1.10.0 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - - /web3-net@1.7.4: - resolution: {integrity: sha512-d2Gj+DIARHvwIdmxFQ4PwAAXZVxYCR2lET0cxz4KXbE5Og3DNjJi+MoPkX+WqoUXqimu/EOd4Cd+7gefqVAFDg==} - engines: {node: '>=8.0.0'} - dependencies: - web3-core: 1.7.4 - web3-core-method: 1.7.4 - web3-utils: 1.7.4 - transitivePeerDependencies: - - supports-color - dev: true - - /web3-providers-http@1.10.0: - resolution: {integrity: sha512-eNr965YB8a9mLiNrkjAWNAPXgmQWfpBfkkn7tpEFlghfww0u3I0tktMZiaToJVcL2+Xq+81cxbkpeWJ5XQDwOA==} - engines: {node: '>=8.0.0'} - dependencies: - abortcontroller-polyfill: 1.7.5 - cross-fetch: 3.1.6 - es6-promise: 4.2.8 - web3-core-helpers: 1.10.0 - transitivePeerDependencies: - - encoding - dev: true - - /web3-providers-http@1.7.4: - resolution: {integrity: sha512-AU+/S+49rcogUER99TlhW+UBMk0N2DxvN54CJ2pK7alc2TQ7+cprNPLHJu4KREe8ndV0fT6JtWUfOMyTvl+FRA==} - engines: {node: '>=8.0.0'} - dependencies: - web3-core-helpers: 1.7.4 - xhr2-cookies: 1.1.0 - dev: true - - /web3-providers-ipc@1.10.0: - resolution: {integrity: sha512-OfXG1aWN8L1OUqppshzq8YISkWrYHaATW9H8eh0p89TlWMc1KZOL9vttBuaBEi96D/n0eYDn2trzt22bqHWfXA==} - engines: {node: '>=8.0.0'} - dependencies: - oboe: 2.1.5 - web3-core-helpers: 1.10.0 - dev: true - - /web3-providers-ipc@1.7.4: - resolution: {integrity: sha512-jhArOZ235dZy8fS8090t60nTxbd1ap92ibQw5xIrAQ9m7LcZKNfmLAQUVsD+3dTFvadRMi6z1vCO7zRi84gWHw==} - engines: {node: '>=8.0.0'} - dependencies: - oboe: 2.1.5 - web3-core-helpers: 1.7.4 - dev: true - - /web3-providers-ws@1.10.0: - resolution: {integrity: sha512-sK0fNcglW36yD5xjnjtSGBnEtf59cbw4vZzJ+CmOWIKGIR96mP5l684g0WD0Eo+f4NQc2anWWXG74lRc9OVMCQ==} - engines: {node: '>=8.0.0'} - dependencies: - eventemitter3: 4.0.4 - web3-core-helpers: 1.10.0 - websocket: 1.0.34 - transitivePeerDependencies: - - supports-color - dev: true - - /web3-providers-ws@1.7.4: - resolution: {integrity: sha512-g72X77nrcHMFU8hRzQJzfgi/072n8dHwRCoTw+WQrGp+XCQ71fsk2qIu3Tp+nlp5BPn8bRudQbPblVm2uT4myQ==} - engines: {node: '>=8.0.0'} - dependencies: - eventemitter3: 4.0.4 - web3-core-helpers: 1.7.4 - websocket: 1.0.34 - transitivePeerDependencies: - - supports-color - dev: true - - /web3-shh@1.10.0: - resolution: {integrity: sha512-uNUUuNsO2AjX41GJARV9zJibs11eq6HtOe6Wr0FtRUcj8SN6nHeYIzwstAvJ4fXA53gRqFMTxdntHEt9aXVjpg==} - engines: {node: '>=8.0.0'} - requiresBuild: true - dependencies: - web3-core: 1.10.0 - web3-core-method: 1.10.0 - web3-core-subscriptions: 1.10.0 - web3-net: 1.10.0 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - - /web3-shh@1.7.4: - resolution: {integrity: sha512-mlSZxSYcMkuMCxqhTYnZkUdahZ11h+bBv/8TlkXp/IHpEe4/Gg+KAbmfudakq3EzG/04z70XQmPgWcUPrsEJ+A==} - engines: {node: '>=8.0.0'} - requiresBuild: true - dependencies: - web3-core: 1.7.4 - web3-core-method: 1.7.4 - web3-core-subscriptions: 1.7.4 - web3-net: 1.7.4 - transitivePeerDependencies: - - supports-color - dev: true - - /web3-utils@1.10.0: - resolution: {integrity: sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==} - engines: {node: '>=8.0.0'} - dependencies: - bn.js: 5.2.1 - ethereum-bloom-filters: 1.0.10 - ethereumjs-util: 7.1.5 - ethjs-unit: 0.1.6 - number-to-bn: 1.7.0 - randombytes: 2.1.0 - utf8: 3.0.0 - dev: true - - /web3-utils@1.7.4: - resolution: {integrity: sha512-acBdm6Evd0TEZRnChM/MCvGsMwYKmSh7OaUfNf5OKG0CIeGWD/6gqLOWIwmwSnre/2WrA1nKGId5uW2e5EfluA==} - engines: {node: '>=8.0.0'} - dependencies: - bn.js: 5.2.1 - ethereum-bloom-filters: 1.0.10 - ethereumjs-util: 7.1.5 - ethjs-unit: 0.1.6 - number-to-bn: 1.7.0 - randombytes: 2.1.0 - utf8: 3.0.0 - dev: true - - /web3@1.10.0: - resolution: {integrity: sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng==} - engines: {node: '>=8.0.0'} - requiresBuild: true - dependencies: - web3-bzz: 1.10.0 - web3-core: 1.10.0 - web3-eth: 1.10.0 - web3-eth-personal: 1.10.0 - web3-net: 1.10.0 - web3-shh: 1.10.0 - web3-utils: 1.10.0 - transitivePeerDependencies: - - bufferutil - - encoding - - supports-color - - utf-8-validate - dev: true - - /web3@1.7.4: - resolution: {integrity: sha512-iFGK5jO32vnXM/ASaJBaI0+gVR6uHozvYdxkdhaeOCD6HIQ4iIXadbO2atVpE9oc/H8l2MovJ4LtPhG7lIBN8A==} - engines: {node: '>=8.0.0'} - requiresBuild: true - dependencies: - web3-bzz: 1.7.4 - web3-core: 1.7.4 - web3-eth: 1.7.4 - web3-eth-personal: 1.7.4 - web3-net: 1.7.4 - web3-shh: 1.7.4 - web3-utils: 1.7.4 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - /webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} dev: true @@ -20646,20 +14792,6 @@ packages: engines: {node: '>=0.8.0'} dev: false - /websocket@1.0.34: - resolution: {integrity: sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==} - engines: {node: '>=4.0.0'} - dependencies: - bufferutil: 4.0.7 - debug: 2.6.9 - es5-ext: 0.10.62 - typedarray-to-buffer: 3.1.5 - utf-8-validate: 5.0.10 - yaeti: 0.0.6 - transitivePeerDependencies: - - supports-color - dev: true - /whatwg-encoding@1.0.5: resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==} dependencies: @@ -20710,6 +14842,7 @@ packages: engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: is-electron: 2.2.2 + dev: false /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} @@ -20729,10 +14862,6 @@ packages: is-weakset: 2.0.2 dev: false - /which-module@2.0.1: - resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} - dev: true - /which-typed-array@1.1.11: resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} engines: {node: '>= 0.4'} @@ -20748,6 +14877,7 @@ packages: hasBin: true dependencies: isexe: 2.0.0 + dev: false /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} @@ -20765,36 +14895,6 @@ packages: stackback: 0.0.2 dev: true - /wide-align@1.1.3: - resolution: {integrity: sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==} - dependencies: - string-width: 2.1.1 - dev: true - - /widest-line@3.1.0: - resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} - engines: {node: '>=8'} - dependencies: - string-width: 4.2.3 - dev: true - - /word-wrap@1.2.3: - resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} - engines: {node: '>=0.10.0'} - dev: true - - /wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - dev: true - - /wordwrapjs@4.0.1: - resolution: {integrity: sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==} - engines: {node: '>=8.0.0'} - dependencies: - reduce-flatten: 2.0.0 - typical: 5.2.0 - dev: true - /workbox-background-sync@6.6.0: resolution: {integrity: sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==} dependencies: @@ -20959,28 +15059,6 @@ packages: workbox-core: 6.6.0 dev: false - /workerpool@6.2.1: - resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} - dev: true - - /wrap-ansi@5.1.0: - resolution: {integrity: sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==} - engines: {node: '>=6'} - dependencies: - ansi-styles: 3.2.1 - string-width: 3.1.0 - strip-ansi: 5.2.0 - dev: true - - /wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: true - /wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -20988,6 +15066,7 @@ packages: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 + dev: false /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -21001,35 +15080,6 @@ packages: typedarray-to-buffer: 3.1.5 dev: false - /ws@3.3.3: - resolution: {integrity: sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dependencies: - async-limiter: 1.0.1 - safe-buffer: 5.1.2 - ultron: 1.1.1 - dev: true - - /ws@7.4.6: - resolution: {integrity: sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: true - /ws@7.5.9: resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} engines: {node: '>=8.3.0'} @@ -21041,6 +15091,7 @@ packages: optional: true utf-8-validate: optional: true + dev: false /ws@8.11.0: resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==} @@ -21066,39 +15117,7 @@ packages: optional: true utf-8-validate: optional: true - - /xhr-request-promise@0.1.3: - resolution: {integrity: sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==} - dependencies: - xhr-request: 1.1.0 - dev: true - - /xhr-request@1.1.0: - resolution: {integrity: sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==} - dependencies: - buffer-to-arraybuffer: 0.0.5 - object-assign: 4.1.1 - query-string: 5.1.1 - simple-get: 2.8.2 - timed-out: 4.0.1 - url-set-query: 1.0.0 - xhr: 2.6.0 - dev: true - - /xhr2-cookies@1.1.0: - resolution: {integrity: sha512-hjXUA6q+jl/bd8ADHcVfFsSPIf+tyLIjuO9TwJC9WI6JP2zKcS7C+p56I9kCLLsaCiNT035iYvEUUzdEFj/8+g==} - dependencies: - cookiejar: 2.1.4 - dev: true - - /xhr@2.6.0: - resolution: {integrity: sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==} - dependencies: - global: 4.4.0 - is-function: 1.0.2 - parse-headers: 2.0.5 - xtend: 4.0.2 - dev: true + dev: false /xml-name-validator@3.0.0: resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==} @@ -21110,6 +15129,7 @@ packages: dependencies: sax: 1.2.4 xmlbuilder: 11.0.1 + dev: false /xml2js@0.6.0: resolution: {integrity: sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w==} @@ -21117,57 +15137,38 @@ packages: dependencies: sax: 1.2.4 xmlbuilder: 11.0.1 + dev: false /xmlbuilder@11.0.1: resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} engines: {node: '>=4.0'} + dev: false /xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} dev: false - /xmlhttprequest@1.8.0: - resolution: {integrity: sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==} - engines: {node: '>=0.4.0'} - dev: true - /xsalsa20@1.2.0: resolution: {integrity: sha512-FIr/DEeoHfj7ftfylnoFt3rAIRoWXpx2AoDfrT2qD2wtp7Dp+COajvs/Icb7uHqRW9m60f5iXZwdsJJO3kvb7w==} + dev: false /xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} dev: true - /y18n@4.0.3: - resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} - dev: true - /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} - - /yaeti@0.0.6: - resolution: {integrity: sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==} - engines: {node: '>=0.10.32'} - dev: true + dev: false /yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: false /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - /yaml-diff-patch@2.0.0: - resolution: {integrity: sha512-RhfIQPGcKSZhsUmsczXAeg5jNhWXk3tAmhl2kjfZthdyaL0XXXOpvRozUp22HvPStmZsHu8T30/UEfX9oIwGxw==} - engines: {node: '>=14'} - hasBin: true - dependencies: - fast-json-patch: 3.1.1 - oppa: 0.4.0 - yaml: 2.3.1 - dev: true - /yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} @@ -21176,56 +15177,12 @@ packages: /yaml@2.3.1: resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} engines: {node: '>= 14'} - - /yargs-parser@13.1.2: - resolution: {integrity: sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==} - dependencies: - camelcase: 5.3.1 - decamelize: 1.2.0 - dev: true - - /yargs-parser@20.2.4: - resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} - engines: {node: '>=10'} - dev: true + dev: false /yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} - - /yargs-unparser@1.6.0: - resolution: {integrity: sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==} - engines: {node: '>=6'} - dependencies: - flat: 4.1.1 - lodash: 4.17.21 - yargs: 13.3.2 - dev: true - - /yargs-unparser@2.0.0: - resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} - engines: {node: '>=10'} - dependencies: - camelcase: 6.3.0 - decamelize: 4.0.0 - flat: 5.0.2 - is-plain-obj: 2.1.0 - dev: true - - /yargs@13.3.2: - resolution: {integrity: sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==} - dependencies: - cliui: 5.0.0 - find-up: 3.0.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - require-main-filename: 2.0.0 - set-blocking: 2.0.0 - string-width: 3.1.0 - which-module: 2.0.1 - y18n: 4.0.3 - yargs-parser: 13.1.2 - dev: true + dev: false /yargs@16.2.0: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} @@ -21238,6 +15195,7 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 20.2.9 + dev: false /yauzl@2.10.0: resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} @@ -21261,4 +15219,3 @@ packages: /zod@3.22.4: resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} - dev: false diff --git a/tsconfig.eslint.json b/tsconfig.eslint.json index a6e80f82..aae47be2 100644 --- a/tsconfig.eslint.json +++ b/tsconfig.eslint.json @@ -1,4 +1,5 @@ { "extends": "./tsconfig.json", - "include": ["**/src/**/*"] + "include": ["packages"], + "exclude": ["node_modules", "dist", "build"] }