From 4f414bd75bd20a12e3a8514c06495b8eb622bc95 Mon Sep 17 00:00:00 2001 From: Steven Vandevelde Date: Tue, 9 Aug 2022 18:05:23 +0200 Subject: [PATCH 1/3] Disable shared worker and create a faster single-node per app --- .gitignore | 1 + CHANGELOG.md | 2 + flake.nix | 2 +- package.json | 36 +- scripts/build-ipfs.js | 31 + scripts/build-minified.js | 61 +- src/auth/linking/consumer.test.ts | 10 +- src/auth/linking/consumer.ts | 10 +- src/auth/linking/producer.test.ts | 12 +- src/auth/linking/producer.ts | 30 +- src/crypto/browser.ts | 4 +- src/crypto/index.ts | 6 +- src/did/transformers.ts | 2 +- src/did/validation.ts | 2 +- src/fs/filesystem.ts | 2 +- src/fs/share.ts | 2 +- src/ipfs/config.ts | 70 +- src/ipfs/encoded.ts | 2 +- src/ipfs/index.ts | 1 + src/ipfs/node.ts | 405 +++ src/ipfs/node/repo.ts | 35 + src/ipfs/types.ts | 6 + src/keystore.ts | 4 +- src/setup/node.ts | 183 +- src/setup/node/keystore/store/memory.ts | 174 ++ tests/did/ed25519.browser.test.ts | 52 - tests/did/ed25519.node.test.ts | 41 + tests/did/pubkeyToDid.browser.test.ts | 53 - tests/did/pubkeyToDid.node.test.ts | 31 + tests/encoding.browser.test.ts | 30 - tests/fs/appPath.browser.test.ts | 37 - tests/fs/appPath.node.test.ts | 31 + tests/fs/concurrency.browser.test.ts | 48 - tests/fs/concurrency.node.test.ts | 41 + tests/fs/exchange.node.test.ts | 5 - tests/fs/share.node.test.ts | 4 +- tests/helpers/in-memory-ipfs.ts | 9 +- tests/helpers/in-memory-storage.ts | 8 +- tests/helpers/page.ts | 44 - tests/ucan/ucan.browser.test.ts | 102 - tests/ucan/ucan.node.test.ts | 90 + tsconfig.json | 6 +- yarn.lock | 3711 +++++++++++++++-------- 43 files changed, 3554 insertions(+), 1882 deletions(-) create mode 100644 scripts/build-ipfs.js create mode 100644 src/ipfs/node.ts create mode 100644 src/ipfs/node/repo.ts create mode 100644 src/setup/node/keystore/store/memory.ts delete mode 100644 tests/did/ed25519.browser.test.ts create mode 100644 tests/did/ed25519.node.test.ts delete mode 100644 tests/did/pubkeyToDid.browser.test.ts create mode 100644 tests/did/pubkeyToDid.node.test.ts delete mode 100644 tests/encoding.browser.test.ts delete mode 100644 tests/fs/appPath.browser.test.ts create mode 100644 tests/fs/appPath.node.test.ts delete mode 100644 tests/fs/concurrency.browser.test.ts create mode 100644 tests/fs/concurrency.node.test.ts delete mode 100644 tests/helpers/page.ts delete mode 100644 tests/ucan/ucan.browser.test.ts create mode 100644 tests/ucan/ucan.node.test.ts diff --git a/.gitignore b/.gitignore index dbdf691b8..2ed0689ca 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ /lib /docs /node_modules +/src/vendor /yarn-error.log diff --git a/CHANGELOG.md b/CHANGELOG.md index ff8878d0c..28603ce6e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ - Make email optional at registration - Add reset option to bootstrapFileSystem - Add dependency-injected DNS lookup implementation +- No longer uses a locally-shared IPFS client (was originally using a shared worker). This fixes various error messages you may have seen relating to CIDs. + ### v0.32.0 diff --git a/flake.nix b/flake.nix index 0b11cefdd..0576ef5d9 100644 --- a/flake.nix +++ b/flake.nix @@ -17,7 +17,7 @@ { devShell = pkgs.mkShell { name = "webnative"; - buildInputs = with pkgs; [ nodejs yarn ]; + buildInputs = with pkgs; [ nodejs-18_x yarn ]; }; }); } diff --git a/package.json b/package.json index 278e854c5..1d81b72b8 100644 --- a/package.json +++ b/package.json @@ -49,9 +49,10 @@ }, "scripts": { "docs": "rimraf docs && typedoc", - "lint": "yarn eslint src/**/*.ts src/*.ts tests/**/*.ts tests/*.ts", + "lint": "yarn run eslint src/**/*.ts src/*.ts tests/**/*.ts tests/*.ts", "prebuild": "rimraf lib dist && node scripts/gen-version.js", - "build": "tsc && yarn run build:minified", + "build": "yarn run build:ipfs && tsc && yarn run build:minified", + "build:ipfs": "node scripts/build-ipfs.js && copyfiles --flat src/vendor/*.* lib/vendor/", "build:minified": "node scripts/build-minified.js", "start": "tsc -w", "test": "mocha", @@ -66,21 +67,21 @@ "publish-latest": "npm publish --tag latest" }, "devDependencies": { + "@esbuild-plugins/node-globals-polyfill": "^0.1.1", "@types/expect": "^24.3.0", "@types/mocha": "^9.1.0", "@types/node": "^17.0.10", "@types/throttle-debounce": "^2.1.0", "@typescript-eslint/eslint-plugin": "^5.10.0", "@typescript-eslint/parser": "^5.10.0", - "blockstore-core": "^1.0.5", - "datastore-core": "^7.0.0", - "esbuild": "^0.14.11", + "copyfiles": "^2.4.1", + "esbuild": "^0.15.5", "eslint": "^8.7.0", + "events": "^3.3.0", "expect": "^27.4.6", "fast-check": "^2.21.0", - "ipfs-core": "^0.14.3", - "ipfs-core-types": "^0.10.3", - "ipfs-repo": "^14.0.1", + "globby": "^13.1.2", + "ipfs-core": "0.15.5-8f351a89.0", "madge": "^5.0.1", "mocha": "^9.1.4", "puppeteer": "^13.1.1", @@ -90,16 +91,25 @@ "typedoc": "^0.22.11", "typedoc-plugin-missing-exports": "^0.22.6", "typescript": "^4.5.5", - "yarn": "^1.22.17" + "util": "^0.12.4" }, "dependencies": { - "@ipld/dag-cbor": "^7.0.0", - "@ipld/dag-pb": "^2.1.15", + "@ipld/dag-cbor": "^7.0.2", + "@ipld/dag-pb": "^2.1.17", + "@libp2p/interfaces": "^2.0.4", + "@libp2p/peer-id": "^1.1.15", + "@multiformats/multiaddr": "^10.3.3", + "blockstore-core": "^2.0.1", + "blockstore-datastore-adapter": "^3.0.1", + "datastore-core": "^8.0.1", + "datastore-level": "^9.0.1", "fission-bloom-filters": "1.7.1", - "ipfs-message-port-client": "^0.11.3", - "ipfs-message-port-protocol": "^0.11.3", + "ipfs-core-types": "0.11.2-8f351a89.0", + "ipfs-repo": "^15.0.1", + "ipfs-unixfs": "^6.0.9", "ipld-dag-pb": "^0.22.3", "keystore-idb": "^0.15.5", + "load-script": "^2.0.0", "localforage": "^1.10.0", "multiformats": "^9.5.4", "one-webcrypto": "^1.0.3", diff --git a/scripts/build-ipfs.js b/scripts/build-ipfs.js new file mode 100644 index 000000000..2fffba07a --- /dev/null +++ b/scripts/build-ipfs.js @@ -0,0 +1,31 @@ +import { NodeGlobalsPolyfillPlugin } from "@esbuild-plugins/node-globals-polyfill" +import esbuild from "esbuild" + + +const OUTFILE = "src/vendor/ipfs.js" + + +console.log("📦 Bundling ipfs-core") + +await esbuild.build({ + entryPoints: ["node_modules/ipfs-core/src/index.js"], + outfile: OUTFILE, + bundle: true, + minify: false, + sourcemap: true, + platform: "browser", + format: "esm", + target: "es2020", + external: [ + "electron-fetch" + ], + plugins: [ + NodeGlobalsPolyfillPlugin() + ], + define: { + "global": "globalThis", + "globalThis.process.env.NODE_ENV": "production" + } +}) + +console.log(`📝 Bundled ipfs-core into ${OUTFILE} and ${OUTFILE}.map`) diff --git a/scripts/build-minified.js b/scripts/build-minified.js index e3643cd1e..117276fd1 100644 --- a/scripts/build-minified.js +++ b/scripts/build-minified.js @@ -1,14 +1,32 @@ import esbuild from "esbuild" import fs from "fs" import zlib from "zlib" +import { globby } from "globby" const globalName = "webnative" -const outfile = "dist/index.umd.min.js" -const outfileGz = `${outfile}.gz` -// From https://github.com/umdjs/umd/blob/36fd1135ba44e758c7371e7af72295acdebce010/templates/returnExports.js -const umd = { + +console.log("📦 Bundling & minifying...") + +await esbuild.build({ + entryPoints: ["src/index.ts"], + outdir: "dist", + bundle: true, + splitting: true, + minify: true, + sourcemap: true, + platform: "browser", + format: "esm", + target: "es2020", + globalName, + define: { + "global": "globalThis", + "globalThis.process.env.NODE_ENV": "production" + } +}) + +const UMD = { banner: `(function (root, factory) { if (typeof define === 'function' && define.amd) { @@ -29,11 +47,9 @@ const umd = { }));` } -console.log("📦 bundling & minifying...") - -esbuild.buildSync({ +await esbuild.build({ entryPoints: ["src/index.ts"], - outfile, + outfile: "dist/index.umd.min.js", bundle: true, minify: true, sourcemap: true, @@ -41,22 +57,23 @@ esbuild.buildSync({ format: "iife", target: "es2020", globalName, - banner: { - js: umd.banner, - }, - footer: { - js: umd.footer, - }, + define: { + "global": "globalThis", + "globalThis.process.env.NODE_ENV": "production" + } }) -console.log(`📝 Wrote ${outfile} and ${outfile}.map`) - -console.log("💎 compressing into .gz") +;(await globby("dist/*.js")).forEach(jsFile => { + const outfile = jsFile + const outfileGz = `${outfile}.gz` -const fileContents = fs.createReadStream(outfile) -const writeStream = fs.createWriteStream(outfileGz) -const gzip = zlib.createGzip() + console.log(`📝 Wrote ${outfile} and ${outfile}.map`) + console.log("💎 Compressing into .gz") + const fileContents = fs.createReadStream(outfile) + const writeStream = fs.createWriteStream(outfileGz) + const gzip = zlib.createGzip() -fileContents.pipe(gzip).pipe(writeStream) + fileContents.pipe(gzip).pipe(writeStream) -console.log(`📝 Wrote ${outfileGz}`) + console.log(`📝 Wrote ${outfileGz}`) +}) diff --git a/src/auth/linking/consumer.test.ts b/src/auth/linking/consumer.test.ts index 33421045e..769ffa920 100644 --- a/src/auth/linking/consumer.test.ts +++ b/src/auth/linking/consumer.test.ts @@ -1,11 +1,11 @@ import expect from "expect" import * as uint8arrays from "uint8arrays" import { webcrypto } from "one-webcrypto" -import aes from "keystore-idb/lib/aes/index.js" -import config from "keystore-idb/lib/config.js" -import rsa from "keystore-idb/lib/rsa/index.js" -import { CharSize, KeyUse, SymmAlg } from "keystore-idb/lib/types.js" -import utils from "keystore-idb/lib/utils.js" +import aes from "keystore-idb/aes/index.js" +import config from "keystore-idb/config.js" +import rsa from "keystore-idb/rsa/index.js" +import { CharSize, KeyUse, SymmAlg } from "keystore-idb/types.js" +import utils from "keystore-idb/utils.js" import * as did from "../../../src/did/index.js" import * as consumer from "./consumer.js" diff --git a/src/auth/linking/consumer.ts b/src/auth/linking/consumer.ts index b83d8c398..bc0ae8590 100644 --- a/src/auth/linking/consumer.ts +++ b/src/auth/linking/consumer.ts @@ -1,8 +1,8 @@ -import aes from "keystore-idb/lib/aes/index.js" -import config from "keystore-idb/lib/config.js" -import rsa from "keystore-idb/lib/rsa/index.js" -import utils from "keystore-idb/lib/utils.js" -import { KeyUse, SymmAlg } from "keystore-idb/lib/types.js" +import aes from "keystore-idb/aes/index.js" +import config from "keystore-idb/config.js" +import rsa from "keystore-idb/rsa/index.js" +import utils from "keystore-idb/utils.js" +import { KeyUse, SymmAlg } from "keystore-idb/types.js" import { webcrypto } from "one-webcrypto" import * as uint8arrays from "uint8arrays" diff --git a/src/auth/linking/producer.test.ts b/src/auth/linking/producer.test.ts index abd30c189..c18ff9fd4 100644 --- a/src/auth/linking/producer.test.ts +++ b/src/auth/linking/producer.test.ts @@ -2,9 +2,9 @@ import expect from "expect" import * as fc from "fast-check" import { webcrypto } from "one-webcrypto" import * as uint8arrays from "uint8arrays" -import aes from "keystore-idb/lib/aes/index.js" -import { SymmAlg } from "keystore-idb/lib/types.js" -import utils from "keystore-idb/lib/utils.js" +import aes from "keystore-idb/aes/index.js" +import { SymmAlg } from "keystore-idb/types.js" +import utils from "keystore-idb/utils.js" import * as did from "../../../src/did/index.js" import * as producer from "./producer.js" @@ -217,7 +217,7 @@ describe("delegate account", async () => { beforeEach(async () => { sessionKey = await aes.makeKey({ alg: SymmAlg.AES_GCM, length: 256 }) accountDelegated = null - approvedMessage = null + approvedMessage = null }) it("delegates an account", async () => { @@ -247,13 +247,13 @@ describe("decline delegation", async () => { approvedMessage = approved if (link.linkStatus === "DENIED") { - accountDelegated = false + accountDelegated = false } } beforeEach(async () => { sessionKey = await aes.makeKey({ alg: SymmAlg.AES_GCM, length: 256 }) - accountDelegated = null + accountDelegated = null approvedMessage = null }) diff --git a/src/auth/linking/producer.ts b/src/auth/linking/producer.ts index 951100a21..97dd41d83 100644 --- a/src/auth/linking/producer.ts +++ b/src/auth/linking/producer.ts @@ -1,7 +1,7 @@ -import aes from "keystore-idb/lib/aes/index.js" -import rsa from "keystore-idb/lib/rsa/index.js" -import utils from "keystore-idb/lib/utils.js" -import { KeyUse, SymmAlg, HashAlg, CharSize } from "keystore-idb/lib/types.js" +import aes from "keystore-idb/aes/index.js" +import rsa from "keystore-idb/rsa/index.js" +import utils from "keystore-idb/utils.js" +import { KeyUse, SymmAlg, HashAlg, CharSize } from "keystore-idb/types.js" import { webcrypto } from "one-webcrypto" import * as uint8arrays from "uint8arrays" @@ -150,10 +150,10 @@ export const createProducer = async (options: { username: string }): Promise => { @@ -203,10 +203,10 @@ export const generateSessionKey = async (didThrowaway: string): Promise<{ sessio /** * NEGOTIATION - * + * * Decrypt the user challenge and the consumer audience DID. - * - * @param data + * + * @param data * @returns pin and audience */ export const handleUserChallenge = async (sessionKey: CryptoKey, data: string): Promise> => { @@ -258,12 +258,12 @@ export const handleUserChallenge = async (sessionKey: CryptoKey, data: string): /** * DELEGATION: Delegate account * - * Request delegation from the dependency injected delegateAccount function. + * Request delegation from the dependency injected delegateAccount function. * Prepare a delegation message to send to the consumer. - * - * @param sesionKey + * + * @param sesionKey * @param audience - * @param finishDelegation + * @param finishDelegation */ export const delegateAccount = async ( sessionKey: CryptoKey, @@ -298,7 +298,7 @@ export const delegateAccount = async ( * DELEGATION: Decline delegation * * Prepare a delegation declined message to send to the consumer. - * + * * @param sessionKey * @param finishDelegation */ diff --git a/src/crypto/browser.ts b/src/crypto/browser.ts index 765821f4b..e6cb440ec 100644 --- a/src/crypto/browser.ts +++ b/src/crypto/browser.ts @@ -1,6 +1,6 @@ import tweetnacl from "tweetnacl" -import rsaOperations from "keystore-idb/lib/rsa/index.js" -import utils from "keystore-idb/lib/utils.js" +import rsaOperations from "keystore-idb/rsa/index.js" +import utils from "keystore-idb/utils.js" import { Implementation } from "./implementation/types.js" import { assertBrowser } from "../common/browser.js" diff --git a/src/crypto/index.ts b/src/crypto/index.ts index 9073173eb..5df458d3d 100644 --- a/src/crypto/index.ts +++ b/src/crypto/index.ts @@ -1,8 +1,8 @@ import * as uint8arrays from "uint8arrays" import { webcrypto } from "one-webcrypto" -import { SymmAlg } from "keystore-idb/lib/types.js" -import { importKey, encryptBytes, decryptBytes, makeKey, exportKey } from "keystore-idb/lib/aes/index.js" -import { SymmKeyLength } from "keystore-idb/lib/types.js" +import { SymmAlg } from "keystore-idb/types.js" +import { importKey, encryptBytes, decryptBytes, makeKey, exportKey } from "keystore-idb/aes/index.js" +import { SymmKeyLength } from "keystore-idb/types.js" import { impl } from "./implementation.js" diff --git a/src/did/transformers.ts b/src/did/transformers.ts index 43647ceea..477748edd 100644 --- a/src/did/transformers.ts +++ b/src/did/transformers.ts @@ -1,5 +1,5 @@ import * as uint8arrays from "uint8arrays" -import * as utils from "keystore-idb/lib/utils.js" +import * as utils from "keystore-idb/utils.js" import { BASE58_DID_PREFIX, magicBytes, parseMagicBytes } from "./util.js" import { KeyType } from "./types.js" diff --git a/src/did/validation.ts b/src/did/validation.ts index cf63b0644..4d698e9c7 100644 --- a/src/did/validation.ts +++ b/src/did/validation.ts @@ -1,5 +1,5 @@ import * as crypto from "../crypto/index.js" -import * as utils from "keystore-idb/lib/utils.js" +import * as utils from "keystore-idb/utils.js" import { didToPublicKey } from "./transformers.js" import { KeyType } from "./types.js" diff --git a/src/fs/filesystem.ts b/src/fs/filesystem.ts index 85773ca58..f4dccb405 100644 --- a/src/fs/filesystem.ts +++ b/src/fs/filesystem.ts @@ -1,7 +1,7 @@ import * as cbor from "@ipld/dag-cbor" import * as uint8arrays from "uint8arrays" import { CID } from "multiformats/cid" -import { SymmAlg } from "keystore-idb/lib/types.js" +import { SymmAlg } from "keystore-idb/types.js" import { throttle } from "throttle-debounce" import { Links } from "./types.js" diff --git a/src/fs/share.ts b/src/fs/share.ts index ce436d761..537e10fbb 100644 --- a/src/fs/share.ts +++ b/src/fs/share.ts @@ -1,5 +1,5 @@ import * as cbor from "@ipld/dag-cbor" -import { SymmAlg } from "keystore-idb/lib/types.js" +import { SymmAlg } from "keystore-idb/types.js" import * as basic from "./protocol/basic.js" import * as crypto from "../crypto/index.js" diff --git a/src/ipfs/config.ts b/src/ipfs/config.ts index 242f51277..d50d0365d 100644 --- a/src/ipfs/config.ts +++ b/src/ipfs/config.ts @@ -1,42 +1,62 @@ -import { IPFSClient } from "ipfs-message-port-client" -import type { IPFS } from "ipfs-core" +import type { IPFS } from "ipfs-core-types" +import loadScript from "load-script" -import { setup } from "../setup/internal.js" +import * as ipfsNode from "./node.js" +import { IPFSPackage } from "./types.js" + + +export const DEFAULT_CDN_URL = "https://unpkg.com/ipfs-core@0.15.4/dist/index.min.js" let ipfs: IPFS | null = null +/** + * Set the currently active IPFS node. + * The default is a node based on the ipfs-core package from a CDN (see `DEFAULT_CDN_URL`) + */ export const set = (userIpfs: unknown): void => { ipfs = userIpfs as IPFS } +/** + * Get the currently active IPFS node. + * Will automatically create one if none is active yet. + */ export const get = async (): Promise => { - if (!ipfs) { - const port = await iframe() - ipfs = IPFSClient.from(port) as unknown as IPFS - } + if (!ipfs) ipfs = await nodeWithPkg( + await pkgFromCDN(DEFAULT_CDN_URL) + ) + return ipfs } -export function iframe(): Promise { +/** + * Create an IPFS Node given a `IPFSPackage`, + * which you can get from `pkgFromCDN` or `pkgFromBundle`. + */ +export const nodeWithPkg = (pkg: IPFSPackage): Promise => { + return ipfsNode.createAndConnect(pkg) +} + +/** + * Loads ipfs-core from a CDN. + * NOTE: Make sure to cache this URL with a service worker if you want to make your app available offline. + */ +export const pkgFromCDN = async (cdn_url: string): Promise => { + if (!cdn_url) throw new Error("This function requires a URL to a CDN") return new Promise((resolve, reject) => { - const iframe = document.createElement("iframe") - iframe.id = "webnative-ipfs" - iframe.style.width = "0" - iframe.style.height = "0" - iframe.style.border = "none" - iframe.style.display = "none" - document.body.appendChild(iframe) - - iframe.onload = () => { - const channel = new MessageChannel() - channel.port1.onmessage = ({ ports }) => resolve(ports[0]) - iframe.contentWindow - ? iframe.contentWindow.postMessage("connect", "*", [ channel.port2 ]) - : reject(new Error("Don't have access to iframe.contentWindow")) - } - - iframe.src = `${setup.endpoints.lobby}/ipfs/v2.html` + loadScript(cdn_url, err => { + if (err) return reject(err) + return resolve((self as any).IpfsCore as IPFSPackage) + }) }) } + +// /** +// * Loads ipfs-core from the bundled `webnative/lib/vendor/ipfs.js` +// */ +// export const pkgFromBundle = (): Promise => { +// // @ts-ignore - Vendored dependency, generated at build time +// return import("../vendor/ipfs.js") +// } diff --git a/src/ipfs/encoded.ts b/src/ipfs/encoded.ts index d8f327282..c60633e4d 100644 --- a/src/ipfs/encoded.ts +++ b/src/ipfs/encoded.ts @@ -1,5 +1,5 @@ import type { CID } from "multiformats/cid" -import { SymmAlg } from "keystore-idb/lib/types.js" +import { SymmAlg } from "keystore-idb/types.js" import * as cbor from "@ipld/dag-cbor" import { isBlob, isDefined, isJust, isString } from "../common/type-checks.js" diff --git a/src/ipfs/index.ts b/src/ipfs/index.ts index 9cd77c0df..a2c047522 100644 --- a/src/ipfs/index.ts +++ b/src/ipfs/index.ts @@ -3,3 +3,4 @@ export * from "./config.js" export * from "./basic.js" export * from "./constants.js" export * as encoded from "./encoded.js" +export * as node from "./node.js" diff --git a/src/ipfs/node.ts b/src/ipfs/node.ts new file mode 100644 index 000000000..98f12d02b --- /dev/null +++ b/src/ipfs/node.ts @@ -0,0 +1,405 @@ +/* + +(づ ̄ ³ ̄)づ + +IPFS node things. + +*/ + +// Considered dev dependency as these imports will not be present in the resulting lib code +import type { IPFS as IPFSCore } from "ipfs-core-types" +import type { libp2p } from "ipfs-core/components/network" +import type { Options as IPFSOptions } from "ipfs-core/types" + +import localforage from "localforage" +import * as keys from "@libp2p/interfaces/keys" +import { multiaddr, Multiaddr } from "@multiformats/multiaddr" +import { peerIdFromString } from "@libp2p/peer-id" + +import * as t from "../common/type-checks.js" +import { IPFSPackage } from "./types.js" +import { setup } from "../setup/internal.js" + +import * as repo from "./node/repo.js" + + +// GLOBAL STATE + + +const latestPeerTimeoutIds: { [peer: string]: null | ReturnType } = {} +const isSafari = /^((?!chrome|android).)*safari/i.test(globalThis.navigator?.userAgent || "") + + + +// TYPES + + +type BackOff = { + retryNumber: number + lastBackoff: number + currentBackoff: number +} + +type Status = { + connected: boolean + lastConnectedAt: number | null + latency: number | null +} + + +type IPFS = IPFSCore & { libp2p: libp2p } + + + +// OPTIONS + + +/** 🎛️ Connection interval knobs + * + * KEEP_ALIVE_INTERVAL: Interval to keep the connection alive when online + * KEEP_TRYING_INTERVAL: Interval to keep trying the connection when offline + * BACKOFF_INIT: Starting intervals for fibonacci backoff used when establishing a connection + */ +const KEEP_ALIVE_INTERVAL = + 1 * 60 * 1000 // 1 minute + +const KEEP_TRYING_INTERVAL = + 5 * 60 * 1000 // 5 minutes + +const BACKOFF_INIT = { + retryNumber: 0, + lastBackoff: 0, + currentBackoff: 1000 +} + + + +/** 🎛️ IPFS Options + */ +export const OPTIONS: IPFSOptions = { + config: { + Addresses: { + Delegates: [] + }, + Bootstrap: [], + Discovery: { + webRTCStar: { Enabled: false } + } + }, + preload: { + enabled: false, + addresses: [] + }, + libp2p: { + peerDiscovery: [], + connectionManager: { + autoDial: false + } + }, + init: { + algorithm: isSafari ? keys.RSA : undefined + }, + repo: repo.create() +} + + + +// 🚀 + + +export async function createAndConnect(pkg: IPFSPackage): Promise { + const peers = await listPeers() + + if (peers.length === 0) { + throw new Error("💥 Couldn't start IPFS node, peer list is empty") + } + + // Start an IPFS node & connect to all the Fission peers + const ipfs: IPFSCore = await pkg.create(OPTIONS) + + peers.forEach(peer => { + latestPeerTimeoutIds[peer.toString()] = null + tryConnecting(ipfs as unknown as IPFS, peer) + }) + + // Try connecting when browser comes online + globalThis.addEventListener("online", async () => { + (await listPeers()) + .filter(peer => { + const peerStr = peer.toString() + return !peerStr.includes("/localhost/") && + !peerStr.includes("/127.0.0.1/") && + !peerStr.includes("/0.0.0.0/") + }) + .forEach(peer => { + tryConnecting(ipfs as unknown as IPFS, peer) + }) + }) + + // Fin + console.log("🚀 Started IPFS node") + return ipfs +} + + + +// PEERS +// ----- + +export function fetchFissionPeers(): Promise { + const peersUrl = `${setup.getApiEndpoint()}/ipfs/peers` + + return fetch(peersUrl) + .then(r => r.json()) + .then(r => Array.isArray(r) ? r : []) + .then(r => r.filter(p => t.isString(p) && p.includes("/wss/"))) + .catch(e => { throw new Error("💥 Couldn't start IPFS node, failed to fetch peer list") }) +} + + +export async function listPeers(): Promise { + let peers + const maybePeers = await localforage.getItem("ipfsPeers") + + if (t.isString(maybePeers)) { + peers = maybePeers.split(",") + + fetchFissionPeers().then(list => + localforage.setItem("ipfsPeers", list.join(",")) + ).catch(err => { + // don't throw + console.error(err) + }) + + } else { + peers = await fetchFissionPeers() + await localforage.setItem("ipfsPeers", peers.join(",")) + + } + + return peers.map(multiaddr) +} + + + +// CONNECTIONS +// ----------- + +function keepAlive(ipfs: IPFS, peer: Multiaddr, backoff: BackOff, status: Status): void { + let timeoutId: ReturnType | null = null + + if (backoff.currentBackoff < KEEP_TRYING_INTERVAL) { + // Start race between reconnect and ping + timeoutId = setTimeout(() => reconnect(ipfs, peer, backoff, status), backoff.currentBackoff) + + } else { + // Disregard backoff, but keep trying + timeoutId = setTimeout(() => reconnect(ipfs, peer, backoff, status), KEEP_TRYING_INTERVAL) + + } + + // Track the latest reconnect attempt + latestPeerTimeoutIds[peer.toString()] = timeoutId + + ping(ipfs, peer).then(({ latency }) => { + const updatedStatus = { connected: true, lastConnectedAt: Date.now(), latency } + report(peer, updatedStatus) + + // Cancel reconnect because ping won + if (timeoutId) clearTimeout(timeoutId) + + // Keep alive after the latest ping-reconnect race, ignore the rest + if (timeoutId === latestPeerTimeoutIds[peer.toString()]) { + setTimeout(() => keepAlive(ipfs, peer, BACKOFF_INIT, updatedStatus), KEEP_ALIVE_INTERVAL) + } + }).catch(() => { + // ignore errors + }) +} + + +async function reconnect(ipfs: IPFS, peer: Multiaddr, backoff: BackOff, status: Status): Promise { + const updatedStatus = { ...status, connected: false, latency: null } + + report(peer, updatedStatus) + + try { + await ipfs.swarm.disconnect(peer) + await ipfs.swarm.connect(peer) + } catch { + // No action needed, we will retry + } + + if (backoff.currentBackoff < KEEP_TRYING_INTERVAL) { + const nextBackoff = { + retryNumber: backoff.retryNumber + 1, + lastBackoff: backoff.currentBackoff, + currentBackoff: backoff.lastBackoff + backoff.currentBackoff + } + + keepAlive(ipfs, peer, nextBackoff, updatedStatus) + } else { + keepAlive(ipfs, peer, backoff, updatedStatus) + } +} + + +export function tryConnecting(ipfs: IPFS, peer: Multiaddr): void { + ping(ipfs, peer).then(({ latency }) => { + return ipfs.swarm + .connect(peer, { timeout: 60 * 1000 }) + .then(() => { + console.log(`🪐 Connected to ${peer}`) + + const status = { connected: true, lastConnectedAt: Date.now(), latency } + report(peer, status) + + // Ensure permanent connection to Fission gateway + // TODO: This is a temporary solution while we wait for + // https://github.com/libp2p/js-libp2p/issues/744 + // (see "Keep alive" bit) + setTimeout(() => keepAlive(ipfs, peer, BACKOFF_INIT, status), KEEP_ALIVE_INTERVAL) + }) + + }).catch(() => { + console.log(`🪓 Could not connect to ${peer}`) + + const status = { connected: false, lastConnectedAt: null, latency: null } + + report(peer, status) + keepAlive(ipfs, peer, BACKOFF_INIT, status) + + }) +} + + +export async function ping(ipfs: IPFS, peer: Multiaddr): Promise<{ latency: number }> { + return ipfs.libp2p.ping(peer).then(latency => ({ latency })) +} + + + +// REPORTING +// --------- + +let peerConnections: { peer: Multiaddr; status: Status }[] = [] +let monitoringPeers = false + + +function report(peer: Multiaddr, status: Status): void { + peerConnections = peerConnections + .filter(connection => connection.peer !== peer) + .concat({ peer, status }) + + const offline = peerConnections.every(connection => !connection.status.connected) + const lastConnectedAt: number = peerConnections.reduce((newest, { status }) => + newest >= (status.lastConnectedAt || 0) ? newest : (status.lastConnectedAt || 0), + 0 + ) + + const activeConnections = peerConnections.filter(connection => connection.status.latency !== null) + const averageLatency = activeConnections.length > 0 + ? peerConnections.reduce((sum, connection) => sum + (connection.status.latency || 0), 0) / activeConnections.length + : null + + if (monitoringPeers) { + console.table(peerConnections) + console.log("offline", offline) + console.log("last connected at", lastConnectedAt === 0 ? null : lastConnectedAt) + console.log("average latency", averageLatency) + } +} + + +export async function monitorPeers() { + monitoringPeers = true + console.log("📡 Monitoring IPFS peers") +} + + +export function stopMonitoringPeers() { + monitoringPeers = false +} + + + +// 🔮 + + +let monitor: ReturnType | null = null + + +export async function monitorBitswap(ipfs: IPFS, verbose: boolean): Promise { + const cidCount: { [k: string]: number } = {} + const seen: string[] = [] + const peers = await listPeers() + + verbose = verbose === undefined ? false : true + + console.log("🕵️‍♀️ Monitoring IPFS bitswap requests") + await stopMonitoringBitswap() + + monitor = setInterval(async () => { + const peerList = peers + + peerList.map(async peer => { + const peerIdString = peer.getPeerId() + if (!peerIdString) return + const peerId = peerIdFromString(peerIdString) + const wantList = await ipfs.bitswap.wantlistForPeer(peerId, { timeout: 120 * 1000 }) + + wantList.forEach(async cid => { + const c = cid.toString() + const s = peer + "-" + c + + if (!seen.includes(s)) { + const seenCid = !!cidCount[c] + const emoji = seenCid ? "📡" : "🔮" + const msg = `${emoji} Peer ${peer} requested CID ${c}` + + cidCount[c] = (cidCount[c] || 0) + 1 + + if (seenCid) { + if (verbose) console.log(msg + ` (#${cidCount[c]})`) + return + } else { + console.log(msg) + } + + const start = performance.now() + seen.push(s) + + const dag = await ipfs.dag.get(cid) + const end = performance.now() + const diff = end - start + const loaded = `loaded locally in ${diff.toFixed(2)} ms` + + if (dag.value.Links) { + console.log(`🧱 ${c} is a 👉 DAG structure (${loaded})`) + ;(console.table || console.log)( + dag.value.Links + .map((l: unknown) => { + if (t.isObject(l) && t.hasProp(l, "Name") && t.hasProp(l, "Hash")) { + return { name: l.Name, cid: (l.Hash as unknown as string).toString() } + } else { + return null + } + }) + .filter((a: { name: string; cid: string } | null) => a) + ) + + } else { + console.log(`📦 ${c} is 👉 Data (${loaded})`) + console.log(dag.value) + + } + } + }) + }) + }, 20) +} + + +export async function stopMonitoringBitswap() { + if (monitor) clearInterval(monitor) +} diff --git a/src/ipfs/node/repo.ts b/src/ipfs/node/repo.ts new file mode 100644 index 000000000..af9b388c9 --- /dev/null +++ b/src/ipfs/node/repo.ts @@ -0,0 +1,35 @@ +import * as dagPB from "@ipld/dag-pb" +import { createRepo, Datastore, IPFSRepo } from "ipfs-repo" +import { BlockCodec } from "multiformats/codecs/interface" +import { BlockstoreDatastoreAdapter } from "blockstore-datastore-adapter" +import { LevelDatastore } from "datastore-level" +import { MemoryDatastore } from "datastore-core/memory" + + +export function create(): IPFSRepo { + const memoryDs = new MemoryDatastore() + + return createRepo( + "fission-ipfs", + codeOrName => { + const lookup: Record> = { + [dagPB.code]: dagPB, + [dagPB.name]: dagPB + } + + return Promise.resolve(lookup[codeOrName]) + }, { + root: new LevelDatastore("fission-ipfs/root", { prefix: "", version: 2 }), + blocks: new BlockstoreDatastoreAdapter(new LevelDatastore("fission-ipfs/blocks", { prefix: "", version: 2 })), + keys: new LevelDatastore("fission-ipfs/keys", { prefix: "", version: 2 }), + datastore: memoryDs, + pins: new LevelDatastore("fission-ipfs/pins", { prefix: "", version: 2 }), + }, { + repoLock: { + lock: async () => ({ close: async () => { return } }), + locked: async () => false + }, + autoMigrate: false, + } + ) +} diff --git a/src/ipfs/types.ts b/src/ipfs/types.ts index 42f8401fe..2d5af557d 100644 --- a/src/ipfs/types.ts +++ b/src/ipfs/types.ts @@ -1,4 +1,6 @@ import type { CID } from "multiformats/cid" +import type { IPFS } from "ipfs-core-types" +import type { Options } from "ipfs-core/types" export type Codec = string @@ -10,3 +12,7 @@ export type AddResult = { size: number isFile: boolean } + +export type IPFSPackage = { + create: (options?: Options) => IPFS +} diff --git a/src/keystore.ts b/src/keystore.ts index 4ecc6e655..5a2ec0acf 100644 --- a/src/keystore.ts +++ b/src/keystore.ts @@ -1,6 +1,6 @@ import keystore from "keystore-idb" -import RSAKeyStore from "keystore-idb/lib/rsa/keystore.js" -import { CryptoSystem } from "keystore-idb/lib/types.js" +import RSAKeyStore from "keystore-idb/rsa/keystore.js" +import { CryptoSystem } from "keystore-idb/types.js" const KEYSTORE_CFG = { type: CryptoSystem.RSA } diff --git a/src/setup/node.ts b/src/setup/node.ts index e55091fff..c2a06719b 100644 --- a/src/setup/node.ts +++ b/src/setup/node.ts @@ -1,16 +1,14 @@ import tweetnacl from "tweetnacl" -import utils from "keystore-idb/lib/utils.js" -import { Config, CryptoSystem, KeyStore, KeyUse, Msg, PublicKey } from "keystore-idb/lib/types.js" -import config from "keystore-idb/lib/config.js" -import aes from "keystore-idb/lib/aes/index.js" -import rsa from "keystore-idb/lib/rsa/index.js" +import utils from "keystore-idb/utils.js" +import rsa from "keystore-idb/rsa/index.js" import { Storage } from "../../tests/helpers/in-memory-storage.js" import * as cryptoImpl from "../crypto/implementation.js" import * as storageImpl from "../storage/implementation.js" -import * as setup from "../../src/setup.js" +import * as setup from "../setup.js" +import InMemoryRSAKeyStore from "./node/keystore/store/memory.js" setup.shouldPin({ enabled: false }) @@ -30,179 +28,6 @@ const ed25519Verify = async (message: Uint8Array, signature: Uint8Array, publicK } -//------------------------------------- -// Node RSA Keystore -//------------------------------------- - -class InMemoryRSAKeyStore implements KeyStore { - - cfg: Config - exchangeKeyPair: CryptoKeyPair - writeKeyPair: CryptoKeyPair - inMemoryStore: Record - - constructor(cfg: Config, exchangeKeyPair: CryptoKeyPair, writeKeyPair: CryptoKeyPair) { - this.cfg = cfg - this.inMemoryStore = {} - this.exchangeKeyPair = exchangeKeyPair - this.writeKeyPair = writeKeyPair - } - - static async init(maybeCfg?: Partial): Promise { - const cfg = config.normalize({ - ...(maybeCfg || {}), - type: CryptoSystem.RSA - }) - - const { rsaSize, hashAlg } = cfg - - const exchangeKeyPair = await rsa.makeKeypair(rsaSize, hashAlg, KeyUse.Exchange) - const writeKeyPair = await rsa.makeKeypair(rsaSize, hashAlg, KeyUse.Write) - - return new InMemoryRSAKeyStore(cfg, exchangeKeyPair, writeKeyPair) - } - - async exchangeKey() { - return this.exchangeKeyPair - } - - async writeKey() { - return this.writeKeyPair - } - - async getSymmKey(keyName: string, cfg?: Partial): Promise { - const mergedCfg = config.merge(this.cfg, cfg) - const maybeKey = this.inMemoryStore[keyName] - if(maybeKey !== null) { - return maybeKey - } - const key = await aes.makeKey(config.symmKeyOpts(mergedCfg)) - this.inMemoryStore[keyName] = key - return key - } - - async keyExists(keyName: string): Promise { - const key = this.inMemoryStore[keyName] - return key !== null - } - - async deleteKey(keyName: string): Promise { - delete this.inMemoryStore[keyName] - } - - async destroy(): Promise { - this.inMemoryStore = {} - } - - async importSymmKey(keyStr: string, keyName: string, cfg?: Partial): Promise { - const mergedCfg = config.merge(this.cfg, cfg) - const key = await aes.importKey(keyStr, config.symmKeyOpts(mergedCfg)) - this.inMemoryStore[keyName] = key - } - - async exportSymmKey(keyName: string, cfg?: Partial): Promise { - const key = await this.getSymmKey(keyName, cfg) - return await aes.exportKey(key) - } - - async encryptWithSymmKey(msg: string, keyName: string, cfg?: Partial): Promise { - const mergedCfg = config.merge(this.cfg, cfg) - const key = await this.getSymmKey(keyName, cfg) - const cipherText = await aes.encryptBytes( - utils.strToArrBuf(msg, mergedCfg.charSize), - key, - config.symmKeyOpts(mergedCfg) - ) - return utils.arrBufToBase64(cipherText) - } - - async decryptWithSymmKey(cipherText: string, keyName: string, cfg?: Partial): Promise { - const mergedCfg = config.merge(this.cfg, cfg) - const key = await this.getSymmKey(keyName, cfg) - const msgBytes = await aes.decryptBytes( - utils.base64ToArrBuf(cipherText), - key, - config.symmKeyOpts(mergedCfg) - ) - return utils.arrBufToStr(msgBytes, mergedCfg.charSize) - } - - async sign(msg: Msg, cfg?: Partial): Promise { - const mergedCfg = config.merge(this.cfg, cfg) - const writeKey = await this.writeKey() - - if (!writeKey.privateKey) throw new Error("Missing private key in write key-pair") - - return utils.arrBufToBase64(await rsa.sign( - msg, - writeKey.privateKey, - mergedCfg.charSize - )) - } - - async verify( - msg: string, - sig: string, - publicKey: string | PublicKey, - cfg?: Partial - ): Promise { - const mergedCfg = config.merge(this.cfg, cfg) - - return await rsa.verify( - msg, - sig, - publicKey, - mergedCfg.charSize, - mergedCfg.hashAlg - ) - } - - async encrypt( - msg: Msg, - publicKey: string | PublicKey, - cfg?: Partial - ): Promise { - const mergedCfg = config.merge(this.cfg, cfg) - - return utils.arrBufToBase64(await rsa.encrypt( - msg, - publicKey, - mergedCfg.charSize, - mergedCfg.hashAlg - )) - } - - async decrypt( - cipherText: Msg, - publicKey?: string | PublicKey, // unused param so that keystore interfaces match - cfg?: Partial - ): Promise { - const exchangeKey = await this.exchangeKey() - const mergedCfg = config.merge(this.cfg, cfg) - - if (!exchangeKey.privateKey) throw new Error("Missing private key in exchange key-pair") - - return utils.arrBufToStr( - await rsa.decrypt( - cipherText, - exchangeKey.privateKey, - ), - mergedCfg.charSize - ) - } - - async publicExchangeKey(): Promise { - const exchangeKey = await this.exchangeKey() - return rsa.getPublicKey(exchangeKey) - } - - async publicWriteKey(): Promise { - const writeKey = await this.writeKey() - return rsa.getPublicKey(writeKey) - } -} - - //------------------------------------- // Dependency Injection Implementation //------------------------------------- diff --git a/src/setup/node/keystore/store/memory.ts b/src/setup/node/keystore/store/memory.ts new file mode 100644 index 000000000..e01bcce34 --- /dev/null +++ b/src/setup/node/keystore/store/memory.ts @@ -0,0 +1,174 @@ +import { Config, CryptoSystem, KeyStore, KeyUse, Msg, PublicKey } from "keystore-idb/types.js" +import config from "keystore-idb/config.js" +import aes from "keystore-idb/aes/index.js" +import rsa from "keystore-idb/rsa/index.js" +import utils from "keystore-idb/utils.js" + + +export default class InMemoryRSAKeyStore implements KeyStore { + + cfg: Config + exchangeKeyPair: CryptoKeyPair + writeKeyPair: CryptoKeyPair + inMemoryStore: Record + + constructor(cfg: Config, exchangeKeyPair: CryptoKeyPair, writeKeyPair: CryptoKeyPair) { + this.cfg = cfg + this.inMemoryStore = {} + this.exchangeKeyPair = exchangeKeyPair + this.writeKeyPair = writeKeyPair + } + + static async init(maybeCfg?: Partial): Promise { + const cfg = config.normalize({ + ...(maybeCfg || {}), + type: CryptoSystem.RSA + }) + + const { rsaSize, hashAlg } = cfg + + const exchangeKeyPair = await rsa.makeKeypair(rsaSize, hashAlg, KeyUse.Exchange) + const writeKeyPair = await rsa.makeKeypair(rsaSize, hashAlg, KeyUse.Write) + + return new InMemoryRSAKeyStore(cfg, exchangeKeyPair, writeKeyPair) + } + + async exchangeKey() { + return this.exchangeKeyPair + } + + async writeKey() { + return this.writeKeyPair + } + + async getSymmKey(keyName: string, cfg?: Partial): Promise { + const mergedCfg = config.merge(this.cfg, cfg) + const maybeKey = this.inMemoryStore[keyName] + if(maybeKey !== null) { + return maybeKey + } + const key = await aes.makeKey(config.symmKeyOpts(mergedCfg)) + this.inMemoryStore[keyName] = key + return key + } + + async keyExists(keyName: string): Promise { + const key = this.inMemoryStore[keyName] + return key !== null + } + + async deleteKey(keyName: string): Promise { + delete this.inMemoryStore[keyName] + } + + async destroy(): Promise { + this.inMemoryStore = {} + } + + async importSymmKey(keyStr: string, keyName: string, cfg?: Partial): Promise { + const mergedCfg = config.merge(this.cfg, cfg) + const key = await aes.importKey(keyStr, config.symmKeyOpts(mergedCfg)) + this.inMemoryStore[keyName] = key + } + + async exportSymmKey(keyName: string, cfg?: Partial): Promise { + const key = await this.getSymmKey(keyName, cfg) + return await aes.exportKey(key) + } + + async encryptWithSymmKey(msg: string, keyName: string, cfg?: Partial): Promise { + const mergedCfg = config.merge(this.cfg, cfg) + const key = await this.getSymmKey(keyName, cfg) + const cipherText = await aes.encryptBytes( + utils.strToArrBuf(msg, mergedCfg.charSize), + key, + config.symmKeyOpts(mergedCfg) + ) + return utils.arrBufToBase64(cipherText) + } + + async decryptWithSymmKey(cipherText: string, keyName: string, cfg?: Partial): Promise { + const mergedCfg = config.merge(this.cfg, cfg) + const key = await this.getSymmKey(keyName, cfg) + const msgBytes = await aes.decryptBytes( + utils.base64ToArrBuf(cipherText), + key, + config.symmKeyOpts(mergedCfg) + ) + return utils.arrBufToStr(msgBytes, mergedCfg.charSize) + } + + async sign(msg: Msg, cfg?: Partial): Promise { + const mergedCfg = config.merge(this.cfg, cfg) + const writeKey = await this.writeKey() + + if (!writeKey.privateKey) throw new Error("Missing private key in write key-pair") + + return utils.arrBufToBase64(await rsa.sign( + msg, + writeKey.privateKey, + mergedCfg.charSize + )) + } + + async verify( + msg: string, + sig: string, + publicKey: string | PublicKey, + cfg?: Partial + ): Promise { + const mergedCfg = config.merge(this.cfg, cfg) + + return await rsa.verify( + msg, + sig, + publicKey, + mergedCfg.charSize, + mergedCfg.hashAlg + ) + } + + async encrypt( + msg: Msg, + publicKey: string | PublicKey, + cfg?: Partial + ): Promise { + const mergedCfg = config.merge(this.cfg, cfg) + + return utils.arrBufToBase64(await rsa.encrypt( + msg, + publicKey, + mergedCfg.charSize, + mergedCfg.hashAlg + )) + } + + async decrypt( + cipherText: Msg, + publicKey?: string | PublicKey, // unused param so that keystore interfaces match + cfg?: Partial + ): Promise { + const exchangeKey = await this.exchangeKey() + const mergedCfg = config.merge(this.cfg, cfg) + + if (!exchangeKey.privateKey) throw new Error("Missing private key in exchange key-pair") + + return utils.arrBufToStr( + await rsa.decrypt( + cipherText, + exchangeKey.privateKey, + ), + mergedCfg.charSize + ) + } + + async publicExchangeKey(): Promise { + const exchangeKey = await this.exchangeKey() + return rsa.getPublicKey(exchangeKey) + } + + async publicWriteKey(): Promise { + const writeKey = await this.writeKey() + return rsa.getPublicKey(writeKey) + } +} \ No newline at end of file diff --git a/tests/did/ed25519.browser.test.ts b/tests/did/ed25519.browser.test.ts deleted file mode 100644 index 82aa95136..000000000 --- a/tests/did/ed25519.browser.test.ts +++ /dev/null @@ -1,52 +0,0 @@ -import expect from "expect" -import { loadWebnativePage } from "../helpers/page.js" -import { pageFromContext } from "../mocha-hook.js" - -describe("Ed25519 Signatures", () => { - - it("can verify a UCAN signature", async function() { - const page = await pageFromContext(this) - await loadWebnativePage(page) - - const isValid = await page.evaluate(async () => { - // @ts-ignore - const wn = webnative - const encodedUcan = "eyJ1YXYiOiIxLjAuMCIsImFsZyI6IkVkRFNBIiwiY3R5IjpudWxsLCJ0eXAiOiJKV1QifQ.eyJwdGMiOiJBUFBFTkQiLCJuYmYiOjE2MTg0MjU4NzYsInJzYyI6eyJ3bmZzIjoiLyJ9LCJleHAiOjE2MTg0MjU5MzYsImlzcyI6ImRpZDprZXk6ejZNa3BoTWtYc24ybzVnN2E4M292MndjalBOeXNkZXlNMm9CdEVaUlphRXJqSlU1IiwicHJmIjpudWxsLCJhdWQiOiJkaWQ6a2V5Ono2TWtnWUdGM3RobjhrMUZ2NHA0ZFdYS3RzWENuTEg3cTl5dzRRZ05QVUxEbURLQiIsImZjdCI6W119.DItB729fJHKYhVuhjpXFOyqJeJwSpa8y5cAvbkdzzTbKTUEpKv5YfgKn5FWKzY_cnCeCLjqL_Zw9gto7kPqVCw" - const ucan = wn.ucan.decode(encodedUcan) - - const encodedHeader = wn.ucan.encodeHeader(ucan.header) - const encodedPayload = wn.ucan.encodePayload(ucan.payload) - return wn.did.verifySignedData({ - charSize: 8, - data: `${encodedHeader}.${encodedPayload}`, - did: ucan.payload.iss, - signature: wn.machinery.base64.makeUrlUnsafe(ucan.signature || "") - }) - }) - - expect(isValid).toBe(true) - }) - - it("can verify a JWT signature", async function() { - const page = await pageFromContext(this) - await loadWebnativePage(page) - - const isValid = await page.evaluate(async () => { - // @ts-ignore - const wn = webnative - const jwt = "eyJhbGciOiJFZERTQSJ9.RXhhbXBsZSBvZiBFZDI1NTE5IHNpZ25pbmc.hgyY0il_MGCjP0JzlnLWG1PPOt7-09PGcvMg3AIbQR6dWbhijcNR4ki4iylGjg5BhVsPt9g7sVvpAr_MuM0KAg" - - const s = jwt.split(".") - - return wn.did.verifySignedData({ - charSize: 8, - data: s.slice(0, 2).join("."), - did: wn.did.publicKeyToDid("11qYAYKxCrfVS/7TyWQHOg7hcvPapiMlrwIaaPcHURo", "ed25519"), - signature: wn.machinery.base64.makeUrlUnsafe(s[2]) - }) - }) - - expect(isValid).toBe(true) - }) - -}) diff --git a/tests/did/ed25519.node.test.ts b/tests/did/ed25519.node.test.ts new file mode 100644 index 000000000..d95364735 --- /dev/null +++ b/tests/did/ed25519.node.test.ts @@ -0,0 +1,41 @@ +import expect from "expect" + +import * as base64 from "../../src/common/base64.js" +import * as did from "../../src/did/index.js" +import * as ucan from "../../src/ucan/index.js" + + +describe("Ed25519 Signatures", () => { + + it("can verify a UCAN signature", async function() { + const encodedUcan = "eyJ1YXYiOiIxLjAuMCIsImFsZyI6IkVkRFNBIiwiY3R5IjpudWxsLCJ0eXAiOiJKV1QifQ.eyJwdGMiOiJBUFBFTkQiLCJuYmYiOjE2MTg0MjU4NzYsInJzYyI6eyJ3bmZzIjoiLyJ9LCJleHAiOjE2MTg0MjU5MzYsImlzcyI6ImRpZDprZXk6ejZNa3BoTWtYc24ybzVnN2E4M292MndjalBOeXNkZXlNMm9CdEVaUlphRXJqSlU1IiwicHJmIjpudWxsLCJhdWQiOiJkaWQ6a2V5Ono2TWtnWUdGM3RobjhrMUZ2NHA0ZFdYS3RzWENuTEg3cTl5dzRRZ05QVUxEbURLQiIsImZjdCI6W119.DItB729fJHKYhVuhjpXFOyqJeJwSpa8y5cAvbkdzzTbKTUEpKv5YfgKn5FWKzY_cnCeCLjqL_Zw9gto7kPqVCw" + const u = ucan.decode(encodedUcan) + + const encodedHeader = ucan.encodeHeader(u.header) + const encodedPayload = ucan.encodePayload(u.payload) + + const isValid = await did.verifySignedData({ + charSize: 8, + data: `${encodedHeader}.${encodedPayload}`, + did: u.payload.iss, + signature: base64.makeUrlUnsafe(u.signature || "") + }) + + expect(isValid).toBe(true) + }) + + it("can verify a JWT signature", async function() { + const jwt = "eyJhbGciOiJFZERTQSJ9.RXhhbXBsZSBvZiBFZDI1NTE5IHNpZ25pbmc.hgyY0il_MGCjP0JzlnLWG1PPOt7-09PGcvMg3AIbQR6dWbhijcNR4ki4iylGjg5BhVsPt9g7sVvpAr_MuM0KAg" + const s = jwt.split(".") + + const isValid = await did.verifySignedData({ + charSize: 8, + data: s.slice(0, 2).join("."), + did: did.publicKeyToDid("11qYAYKxCrfVS/7TyWQHOg7hcvPapiMlrwIaaPcHURo", did.KeyType.Edwards), + signature: base64.makeUrlUnsafe(s[2]) + }) + + expect(isValid).toBe(true) + }) + +}) diff --git a/tests/did/pubkeyToDid.browser.test.ts b/tests/did/pubkeyToDid.browser.test.ts deleted file mode 100644 index bdfb31454..000000000 --- a/tests/did/pubkeyToDid.browser.test.ts +++ /dev/null @@ -1,53 +0,0 @@ -import expect from "expect" -import { loadWebnativePage } from "../helpers/page.js" -import { pageFromContext } from "../mocha-hook.js" - - -describe("publicKeyToDid", () => { - - it("handles RSA Keys", async function() { - const page = await pageFromContext(this) - await loadWebnativePage(page) - - const expectedDid = "did:key:z13V3Sog2YaUKhdGCmgx9UZuW1o1ShFJYc6DvGYe7NTt689NoL2RtpVs65Zw899YrTN9WuxdEEDm54YxWuQHQvcKfkZwa8HTgokHxGDPEmNLhvh69zUMEP4zjuARQ3T8bMUumkSLGpxNe1bfQX624ef45GhWb3S9HM3gvAJ7Qftm8iqnDQVcxwKHjmkV4hveKMTix4bTRhieVHi1oqU4QCVy4QPWpAAympuCP9dAoJFxSP6TNBLY9vPKLazsg7XcFov6UuLWsEaxJ5SomCpDx181mEgW2qTug5oQbrJwExbD9CMgXHLVDE2QgLoQMmgsrPevX57dH715NXC2uY6vo2mYCzRY4KuDRUsrkuYCkewL8q2oK1BEDVvi3Sg8pbC9QYQ5mMiHf8uxiHxTAmPedv8" - - const did = await page.evaluate(async () => { - const pubkey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnzyis1ZjfNB0bBgKFMSvvkTtwlvBsaJq7S5wA+kzeVOVpVWwkWdVha4s38XM/pa/yr47av7+z3VTmvDRyAHcaT92whREFpLv9cj5lTeJSibyr/Mrm/YtjCZVWgaOYIhwrXwKLqPr/11inWsAkfIytvHWTxZYEcXLgAXFuUuaS3uF9gEiNQwzGTU1v0FqkqTBr4B8nW3HCN47XUu0t8Y0e+lf4s4OxQawWD79J9/5d3Ry0vbV3Am1FtGJiJvOwRsIfVChDpYStTcHTCMqtvWbV6L11BWkpzGXSW4Hv43qa+GSYOD2QU68Mb59oSk2OB+BtOLpJofmbGEGgvmwyCI9MwIDAQAB" - // @ts-ignore - return webnative.did.publicKeyToDid(pubkey, "rsa") - }) - - expect(did).toEqual(expectedDid) - }) - - it("handles Ed25519 Keys", async function() { - const page = await pageFromContext(this) - await loadWebnativePage(page) - - const expectedDid = "did:key:z6MkgYGF3thn8k1Fv4p4dWXKtsXCnLH7q9yw4QgNPULDmDKB" - - const did = await page.evaluate(async () => { - const pubkey = "Hv+AVRD2WUjUFOsSNbsmrp9fokuwrUnjBcr92f0kxw4=" - // @ts-ignore - return webnative.did.publicKeyToDid(pubkey, "ed25519") - }) - - expect(did).toEqual(expectedDid) - }) - - it("handles BLS12-381 Keys", async function() { - const page = await pageFromContext(this) - await loadWebnativePage(page) - - const expectedDid = "did:key:z6HpYD1br5P4QVh5rjRGAkBfKMWes44uhKmKdJ6dN2Nm9gHK" - - const did = await page.evaluate(async () => { - const pubkey = "Hv+AVRD2WUjUFOsSNbsmrp9fokuwrUnjBcr92f0kxw4=" - // @ts-ignore - return webnative.did.publicKeyToDid(pubkey, "bls12-381") - }) - - expect(did).toEqual(expectedDid) - }) - -}) diff --git a/tests/did/pubkeyToDid.node.test.ts b/tests/did/pubkeyToDid.node.test.ts new file mode 100644 index 000000000..eeb1b6f4b --- /dev/null +++ b/tests/did/pubkeyToDid.node.test.ts @@ -0,0 +1,31 @@ +import expect from "expect" +import * as did from "../../src/did/index.js" + + +describe("publicKeyToDid", () => { + + it("handles RSA Keys", async function() { + const expectedDid = "did:key:z13V3Sog2YaUKhdGCmgx9UZuW1o1ShFJYc6DvGYe7NTt689NoL2RtpVs65Zw899YrTN9WuxdEEDm54YxWuQHQvcKfkZwa8HTgokHxGDPEmNLhvh69zUMEP4zjuARQ3T8bMUumkSLGpxNe1bfQX624ef45GhWb3S9HM3gvAJ7Qftm8iqnDQVcxwKHjmkV4hveKMTix4bTRhieVHi1oqU4QCVy4QPWpAAympuCP9dAoJFxSP6TNBLY9vPKLazsg7XcFov6UuLWsEaxJ5SomCpDx181mEgW2qTug5oQbrJwExbD9CMgXHLVDE2QgLoQMmgsrPevX57dH715NXC2uY6vo2mYCzRY4KuDRUsrkuYCkewL8q2oK1BEDVvi3Sg8pbC9QYQ5mMiHf8uxiHxTAmPedv8" + const pubkey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnzyis1ZjfNB0bBgKFMSvvkTtwlvBsaJq7S5wA+kzeVOVpVWwkWdVha4s38XM/pa/yr47av7+z3VTmvDRyAHcaT92whREFpLv9cj5lTeJSibyr/Mrm/YtjCZVWgaOYIhwrXwKLqPr/11inWsAkfIytvHWTxZYEcXLgAXFuUuaS3uF9gEiNQwzGTU1v0FqkqTBr4B8nW3HCN47XUu0t8Y0e+lf4s4OxQawWD79J9/5d3Ry0vbV3Am1FtGJiJvOwRsIfVChDpYStTcHTCMqtvWbV6L11BWkpzGXSW4Hv43qa+GSYOD2QU68Mb59oSk2OB+BtOLpJofmbGEGgvmwyCI9MwIDAQAB" + const d = did.publicKeyToDid(pubkey, did.KeyType.RSA) + + expect(d).toEqual(expectedDid) + }) + + it("handles Ed25519 Keys", async function() { + const expectedDid = "did:key:z6MkgYGF3thn8k1Fv4p4dWXKtsXCnLH7q9yw4QgNPULDmDKB" + const pubkey = "Hv+AVRD2WUjUFOsSNbsmrp9fokuwrUnjBcr92f0kxw4=" + const d = did.publicKeyToDid(pubkey, did.KeyType.Edwards) + + expect(d).toEqual(expectedDid) + }) + + it("handles BLS12-381 Keys", async function() { + const expectedDid = "did:key:z6HpYD1br5P4QVh5rjRGAkBfKMWes44uhKmKdJ6dN2Nm9gHK" + const pubkey = "Hv+AVRD2WUjUFOsSNbsmrp9fokuwrUnjBcr92f0kxw4=" + const d = did.publicKeyToDid(pubkey, did.KeyType.BLS) + + expect(d).toEqual(expectedDid) + }) + +}) diff --git a/tests/encoding.browser.test.ts b/tests/encoding.browser.test.ts deleted file mode 100644 index 14dda2a11..000000000 --- a/tests/encoding.browser.test.ts +++ /dev/null @@ -1,30 +0,0 @@ -import expect from "expect" -import { loadWebnativePage } from "./helpers/page.js" -import { pageFromContext } from "./mocha-hook.js" - - -describe("cbor encoding in the browser", () => { - - it("works with encryption in between", async function() { - const page = await pageFromContext(this) - await loadWebnativePage(page) - - async function runRoundTrip(message: any) { - // @ts-ignore - const wn = webnative - const keyStr = await wn.crypto.aes.genKeyStr() - - // @ts-ignore - const encoded = (window as any).cbor.encode(message) - const cipher = await wn.crypto.aes.encrypt(encoded, keyStr) - const decipher = await wn.crypto.aes.decrypt(cipher, keyStr) - const decoded = (window as any).cbor.decode(decipher) - - return decoded - } - - const message = { hello: "world!" } - expect(await page.evaluate(runRoundTrip, message)).toEqual(message) - }) - -}) diff --git a/tests/fs/appPath.browser.test.ts b/tests/fs/appPath.browser.test.ts deleted file mode 100644 index 650646251..000000000 --- a/tests/fs/appPath.browser.test.ts +++ /dev/null @@ -1,37 +0,0 @@ -import expect from "expect" -import { loadWebnativePage } from "../helpers/page.js" -import { pageFromContext } from "../mocha-hook.js" - - -describe("the filesystem", () => { - - it("provides an appPath", async function() { - const page = await pageFromContext(this) - await loadWebnativePage(page) - - const string = await page.evaluate(async () => { - // @ts-ignore - const wn = webnative - - const fs = await wn.fs.empty({ - localOnly: true, - permissions: { - app: { - name: "Winamp", - creator: "Nullsoft" - } - } - }) - - await fs.mkdir(fs.appPath()) - await fs.write(fs.appPath(wn.path.file("foo")), "bar") - - return [ - await fs.read(fs.appPath(wn.path.file("foo"))) - ].join("/") - }) - - expect(string).toEqual("bar") - }) - -}) diff --git a/tests/fs/appPath.node.test.ts b/tests/fs/appPath.node.test.ts new file mode 100644 index 000000000..6514dc818 --- /dev/null +++ b/tests/fs/appPath.node.test.ts @@ -0,0 +1,31 @@ +import expect from "expect" + +import * as path from "../../src/path.js" +import FileSystem from "../../src/fs/filesystem.js" + +describe("the filesystem", () => { + + it("provides an appPath", async function() { + const fs = await FileSystem.empty({ + localOnly: true, + permissions: { + app: { + name: "Winamp", + creator: "Nullsoft" + } + } + }) + + if (!fs.appPath) throw new Error("Expected `fs` to have a `appPath` function") + + await fs.mkdir(fs.appPath()) + await fs.write(fs.appPath(path.file("foo")), "bar") + + const string = [ + await fs.read(fs.appPath(path.file("foo"))) + ].join("/") + + expect(string).toEqual("bar") + }) + +}) diff --git a/tests/fs/concurrency.browser.test.ts b/tests/fs/concurrency.browser.test.ts deleted file mode 100644 index f5508c625..000000000 --- a/tests/fs/concurrency.browser.test.ts +++ /dev/null @@ -1,48 +0,0 @@ -import expect from "expect" -import { loadWebnativePage } from "../helpers/page.js" -import { pageFromContext } from "../mocha-hook.js" - - -describe("the filesystem", () => { - - it("performs actions concurrently", async function() { - const page = await pageFromContext(this) - await loadWebnativePage(page) - - const string = await page.evaluate(async () => { - // @ts-ignore - const wn = webnative - - const fs = await wn.fs.empty({ - localOnly: true, - permissions: { - fs: { private: [wn.path.root()] } - } - }) - - const pathA = wn.path.file(wn.path.Branch.Private, "a") - const pathB = wn.path.file(wn.path.Branch.Private, "b") - const pathC = wn.path.file(wn.path.Branch.Private, "c", "foo") - - await Promise.all([ - fs.write(pathA, "x") - .then(() => fs.write(pathA, "y")) - .then(() => fs.write(pathA, "z")), - - fs.write(pathB, "1") - .then(() => fs.write(pathB, "2")), - - fs.write(pathC, "bar"), - ]) - - return [ - await fs.read(pathA), - await fs.read(pathB), - await fs.read(pathC) - ].join("") - }) - - expect(string).toEqual(["z", "2", "bar"].join("")) - }) - -}) diff --git a/tests/fs/concurrency.node.test.ts b/tests/fs/concurrency.node.test.ts new file mode 100644 index 000000000..1eaeecb0e --- /dev/null +++ b/tests/fs/concurrency.node.test.ts @@ -0,0 +1,41 @@ +import expect from "expect" + +import * as path from "../../src/path.js" +import FileSystem from "../../src/fs/filesystem.js" + + +describe("the filesystem", () => { + + it("performs actions concurrently", async function() { + const fs = await FileSystem.empty({ + localOnly: true, + permissions: { + fs: { private: [path.root()] } + } + }) + + const pathA = path.file(path.Branch.Private, "a") + const pathB = path.file(path.Branch.Private, "b") + const pathC = path.file(path.Branch.Private, "c", "foo") + + await Promise.all([ + fs.write(pathA, "x") + .then(() => fs.write(pathA, "y")) + .then(() => fs.write(pathA, "z")), + + fs.write(pathB, "1") + .then(() => fs.write(pathB, "2")), + + fs.write(pathC, "bar"), + ]) + + const string = [ + await fs.read(pathA), + await fs.read(pathB), + await fs.read(pathC) + ].join("") + + expect(string).toEqual(["z", "2", "bar"].join("")) + }) + +}) diff --git a/tests/fs/exchange.node.test.ts b/tests/fs/exchange.node.test.ts index 2dceb4959..cf5a5ce48 100644 --- a/tests/fs/exchange.node.test.ts +++ b/tests/fs/exchange.node.test.ts @@ -1,13 +1,8 @@ import expect from "expect" import "../../src/setup/node.js" - -import { EXCHANGE_PATH } from "../../src/fs/share.js" import { emptyFilesystem } from "../helpers/filesystem.js" -import * as did from "../../src/did/index.js" -import * as path from "../../src/path.js" - describe("the filesystem", () => { diff --git a/tests/fs/share.node.test.ts b/tests/fs/share.node.test.ts index a02e19ced..55e4f7adb 100644 --- a/tests/fs/share.node.test.ts +++ b/tests/fs/share.node.test.ts @@ -1,9 +1,9 @@ import * as cbor from "@ipld/dag-cbor" import * as uint8arrays from "uint8arrays" -import { SymmAlg } from "keystore-idb/lib/types.js" +import { SymmAlg } from "keystore-idb/types.js" import expect from "expect" -import { getPublicKey } from "keystore-idb/lib/rsa/index.js" +import { getPublicKey } from "keystore-idb/rsa/index.js" import "../../src/setup/node.js" diff --git a/tests/helpers/in-memory-ipfs.ts b/tests/helpers/in-memory-ipfs.ts index 97e5333c7..3e6b6c59d 100644 --- a/tests/helpers/in-memory-ipfs.ts +++ b/tests/helpers/in-memory-ipfs.ts @@ -40,14 +40,7 @@ export async function createInMemoryIPFS(): Promise { } }, libp2p: { - peerStore: { - persistence: false - }, - config: { - peerDiscovery: { - autoDial: false - } - } + peerDiscovery: [] }, repo: createRepo( dir, diff --git a/tests/helpers/in-memory-storage.ts b/tests/helpers/in-memory-storage.ts index 01f76a08f..f876a185c 100644 --- a/tests/helpers/in-memory-storage.ts +++ b/tests/helpers/in-memory-storage.ts @@ -1,7 +1,7 @@ -/** In memory storage. +/** + * In memory storage. * This in memory storage implements the methods of localForage. */ - export class Storage { storage: { [key: string]: any} @@ -14,8 +14,8 @@ export class Storage { const val = this.storage[key] || null // https://localforage.github.io/localForage/#data-api-getitem - // "Even if undefined is saved, null will be returned by getItem(). - // This is due to a limitation in localStorage, and for compatibility + // "Even if undefined is saved, null will be returned by getItem(). + // This is due to a limitation in localStorage, and for compatibility // reasons localForage cannot store the value undefined." const checkedVal = val === undefined ? null : val diff --git a/tests/helpers/page.ts b/tests/helpers/page.ts deleted file mode 100644 index 95f2f41ec..000000000 --- a/tests/helpers/page.ts +++ /dev/null @@ -1,44 +0,0 @@ -import * as path from "path" -import * as url from "url" -import { promises as fs } from "fs" -import { Page } from "puppeteer" - -export async function loadWebnativePage(page: Page): Promise { - const dirname = path.dirname(url.fileURLToPath(import.meta.url)) - const htmlPath = path.join(dirname, "../fixtures/index.html") - - page.on("console", async event => { - const t = event.type() - switch (t) { - case "error": - case "info": - case "log": - console[t](await Promise.all(event.args().map(arg => arg.jsonValue()))) - return - default: - return - } - }) - - page.on("pageerror", async error => { - console.error("Error in puppeteer: " + error.name, error.message, error.stack) - }) - - await page.goto(`file://${htmlPath}`, { waitUntil: "domcontentloaded" }) - - const { isWebnativeLoaded } = await page.evaluate(async function () { - return { - // @ts-ignore - isWebnativeLoaded: window.webnative != null, - } - }) - - if (!isWebnativeLoaded) { - try { - await fs.readFile(path.join(dirname, "../../dist/index.umd.min.js")) - } catch { - throw new Error("Can't load webpage without a built browser bundle (dist/index.umd.min.js). Please yarn build first.") - } - throw new Error("Couldn't load webnative in the browser for unknown reasons.") - } -} diff --git a/tests/ucan/ucan.browser.test.ts b/tests/ucan/ucan.browser.test.ts deleted file mode 100644 index 57a78926d..000000000 --- a/tests/ucan/ucan.browser.test.ts +++ /dev/null @@ -1,102 +0,0 @@ -import expect from "expect" -import { loadWebnativePage } from "../helpers/page.js" -import { pageFromContext } from "../mocha-hook.js" - - -describe("UCAN", () => { - - it("can be built", async function() { - const page = await pageFromContext(this) - await loadWebnativePage(page) - - const isValid = await page.evaluate(async () => { - // @ts-ignore - const wn = webnative - const ucan = await wn.ucan.build({ - // @ts-ignore - audience: await randomRsaDid(), - issuer: await wn.did.ucan() - }) - - return wn.ucan.isValid(ucan) - }) - - expect(isValid).toBe(true) - }) - - it("can validate a UCAN with a valid proof", async function() { - const page = await pageFromContext(this) - await loadWebnativePage(page) - - const isValid = await page.evaluate(async () => { - // @ts-ignore - const wn = webnative - const storeA = wn.keystore.create() - const storeB = wn.keystore.create() - - await wn.keystore.set(storeB) - const issB = await wn.did.ucan() - - // Proof - await wn.keystore.set(storeA) - const issA = await wn.did.ucan() - const prf = await wn.ucan.build({ - audience: issB, - issuer: issA - }) - - // Shell - await wn.keystore.set(storeB) - const ucan = await wn.ucan.build({ - // @ts-ignore - audience: await randomRsaDid(), - issuer: issB, - proofs: [prf] - }) - - // Validate - return wn.ucan.isValid(ucan) - }) - - expect(isValid).toBe(true) - }) - - it("can validate a UCAN with a sessionKey fact", async function() { - const page = await pageFromContext(this) - await loadWebnativePage(page) - - const isValid = await page.evaluate(async () => { - // @ts-ignore - const wn = webnative - const sessionKey = "RANDOM KEY" - const ucan = await wn.ucan.build({ - issuer: await wn.did.ucan(), - // @ts-ignore - audience: await randomRsaDid(), - lifetimeInSeconds: 60 * 5, // 5 minutes - facts: [{ sessionKey }] - }) - - return wn.ucan.isValid(ucan) - }) - - expect(isValid).toBe(true) - }) - - it("decodes and reencodes UCAN to the same value", async function() { - const page = await pageFromContext(this) - await loadWebnativePage(page) - - const isSame = await page.evaluate(async () => { - // @ts-ignore - const wn = webnative - const ucan = "eyJ1YXYiOiIxLjAuMCIsImFsZyI6IkVkRFNBIiwiY3R5IjpudWxsLCJ0eXAiOiJKV1QifQ.eyJwdGMiOiJBUFBFTkQiLCJuYmYiOjE2MTg0MjU4NzYsInJzYyI6eyJ3bmZzIjoiLyJ9LCJleHAiOjE2MTg0MjU5MzYsImlzcyI6ImRpZDprZXk6ejZNa3BoTWtYc24ybzVnN2E4M292MndjalBOeXNkZXlNMm9CdEVaUlphRXJqSlU1IiwicHJmIjpudWxsLCJhdWQiOiJkaWQ6a2V5Ono2TWtnWUdGM3RobjhrMUZ2NHA0ZFdYS3RzWENuTEg3cTl5dzRRZ05QVUxEbURLQiIsImZjdCI6W119.DItB729fJHKYhVuhjpXFOyqJeJwSpa8y5cAvbkdzzTbKTUEpKv5YfgKn5FWKzY_cnCeCLjqL_Zw9gto7kPqVCw" - const decoded = wn.ucan.decode(ucan) - const reencoded = wn.ucan.encode(decoded) - return ucan === reencoded - }) - - expect(isSame).toBe(true) - }) - -}) diff --git a/tests/ucan/ucan.node.test.ts b/tests/ucan/ucan.node.test.ts new file mode 100644 index 000000000..94a4118aa --- /dev/null +++ b/tests/ucan/ucan.node.test.ts @@ -0,0 +1,90 @@ +import expect from "expect" +import RSAKeyStore from "keystore-idb/rsa/keystore.js" +import { webcrypto } from "one-webcrypto" + +import * as base64 from "../../src/common/base64.js" +import * as did from "../../src/did/index.js" +import * as keystore from "../../src/keystore.js" +import * as ucan from "../../src/ucan/index.js" + +import InMemoryRSAKeyStore from "../../src/setup/node/keystore/store/memory.js" + + +describe("UCAN", () => { + + it("can be built", async function() { + const u = await ucan.build({ + audience: await randomRsaDid(), + issuer: await did.ucan() + }) + + expect(await ucan.isValid(u)).toBe(true) + }) + + it("can validate a UCAN with a valid proof", async function() { + const storeA = (await InMemoryRSAKeyStore.init()) as unknown as RSAKeyStore + const storeB = (await InMemoryRSAKeyStore.init()) as unknown as RSAKeyStore + + await keystore.set(storeB) + const issB = await did.ucan() + + // Proof + await keystore.set(storeA) + const issA = await did.ucan() + const prf = await ucan.build({ + audience: issB, + issuer: issA + }) + + // Shell + await keystore.set(storeB) + const u = await ucan.build({ + audience: await randomRsaDid(), + issuer: issB, + proof: ucan.encode(prf) + }) + + expect(await ucan.isValid(u)).toBe(true) + }) + + it("can validate a UCAN with a sessionKey fact", async function() { + const sessionKey = "RANDOM KEY" + const u = await ucan.build({ + issuer: await did.ucan(), + audience: await randomRsaDid(), + lifetimeInSeconds: 60 * 5, // 5 minutes + facts: [{ sessionKey }] + }) + + expect(await ucan.isValid(u)).toBe(true) + }) + + it("decodes and reencodes UCAN to the same value", async function() { + const u = "eyJ1YXYiOiIxLjAuMCIsImFsZyI6IkVkRFNBIiwiY3R5IjpudWxsLCJ0eXAiOiJKV1QifQ.eyJwdGMiOiJBUFBFTkQiLCJuYmYiOjE2MTg0MjU4NzYsInJzYyI6eyJ3bmZzIjoiLyJ9LCJleHAiOjE2MTg0MjU5MzYsImlzcyI6ImRpZDprZXk6ejZNa3BoTWtYc24ybzVnN2E4M292MndjalBOeXNkZXlNMm9CdEVaUlphRXJqSlU1IiwicHJmIjpudWxsLCJhdWQiOiJkaWQ6a2V5Ono2TWtnWUdGM3RobjhrMUZ2NHA0ZFdYS3RzWENuTEg3cTl5dzRRZ05QVUxEbURLQiIsImZjdCI6W119.DItB729fJHKYhVuhjpXFOyqJeJwSpa8y5cAvbkdzzTbKTUEpKv5YfgKn5FWKzY_cnCeCLjqL_Zw9gto7kPqVCw" + const decoded = ucan.decode(u) + const reencoded = ucan.encode(decoded) + + expect(u === reencoded).toBe(true) + }) + +}) + + +async function randomRsaDid(): Promise { + const key = await webcrypto.subtle.generateKey( + { + name: "RSASSA-PKCS1-v1_5", + modulusLength: 2048, + publicExponent: new Uint8Array([ 0x01, 0x00, 0x01 ]), + hash: "SHA-256" + }, + false, + [ "sign", "verify" ] + ) + + const a = await webcrypto.subtle.exportKey("spki", key.publicKey) + const b = String.fromCharCode(...(new Uint8Array(a))) + const c = base64.encode(b) + + return did.publicKeyToDid(c, did.KeyType.RSA) +} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 02f2550ed..ef4ab5c9d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,8 +1,8 @@ { "compilerOptions": { "moduleResolution": "node", - "target": "ES2018", - "module":"ESNext", + "target": "ES2020", + "module":"ES2020", "lib": ["dom", "es2021"], "strict": true, "sourceMap": true, @@ -12,7 +12,7 @@ "emitDecoratorMetadata": true, "skipLibCheck": true, "declarationDir": "lib", - "outDir": "lib", + "outDir": "lib" }, "include": [ "src/**/*" diff --git a/yarn.lock b/yarn.lock index 444dd5599..7d5770a52 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,39 @@ # yarn lockfile v1 +"@achingbrain/ip-address@^8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@achingbrain/ip-address/-/ip-address-8.1.0.tgz#24f2e9cd7289e33f433d771b23bea56cfd0242c9" + integrity sha512-Zus4vMKVRDm+R1o0QJNhD0PD/8qRGO3Zx8YPsFG5lANt5utVtGg3iHVGBSAF80TfQmhi8rP+Kg/OigdxY0BXHw== + dependencies: + jsbn "1.1.0" + sprintf-js "1.1.2" + +"@achingbrain/nat-port-mapper@^1.0.3": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@achingbrain/nat-port-mapper/-/nat-port-mapper-1.0.7.tgz#82c414712da38a0f3da0f938982b6dd724d3c677" + integrity sha512-P8Z8iMZBQCsN7q3XoVoJAX3CGPUTbGTh1XBU8JytCW3hBmSk594l8YvdrtY5NVexVHSwLeiXnDsP4d10NJHaeg== + dependencies: + "@achingbrain/ssdp" "^4.0.1" + "@libp2p/logger" "^2.0.0" + default-gateway "^6.0.2" + err-code "^3.0.1" + it-first "^1.0.7" + p-defer "^4.0.0" + p-timeout "^5.0.2" + xml2js "^0.4.23" + +"@achingbrain/ssdp@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@achingbrain/ssdp/-/ssdp-4.0.1.tgz#47ccaaa8256cf73b7b2ab86a0ad14128cfaf77b7" + integrity sha512-z/CkfFI0Ksrpo8E+lu2rKahlE1KJHUn8X8ihQj2Jg6CEL+oHYGCNfttOES0+VnV7htuog70c8bYNHYhlmmqxBQ== + dependencies: + event-iterator "^2.0.0" + freeport-promise "^2.0.0" + merge-options "^3.0.4" + uuid "^8.3.2" + xml2js "^0.4.23" + "@assemblyscript/loader@^0.9.4": version "0.9.4" resolved "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.9.4.tgz" @@ -33,25 +66,49 @@ resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz" integrity sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg== -"@chainsafe/libp2p-noise@^5.0.0", "@chainsafe/libp2p-noise@^5.0.1": - version "5.0.3" - resolved "https://registry.npmjs.org/@chainsafe/libp2p-noise/-/libp2p-noise-5.0.3.tgz" - integrity sha512-IT7q9JaEjv4aU3zO8zeomWyw79rLo8hGcmnyWOE1P/dVIT+jqrF08R3rVXonujBbmi6SSgZbB6NModqW+Oa2jw== - dependencies: +"@chainsafe/libp2p-gossipsub@^1.0.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@chainsafe/libp2p-gossipsub/-/libp2p-gossipsub-1.2.0.tgz#2203c837eb04ca5d1cd53026d7376364b19c5473" + integrity sha512-Ye0pd3wlgcNafbwptxEOQnrbql92fuIQhwoi5cMH5wFdMBuLyOTDBCTF/2D8W6xCeYBFRirfJ2BbEwoFV3pyZQ== + dependencies: + "@libp2p/crypto" "^0.22.12" + "@libp2p/interfaces" "^2.0.3" + "@libp2p/logger" "^1.1.5" + "@libp2p/peer-id" "^1.1.11" + "@libp2p/peer-record" "^1.0.12" + "@libp2p/pubsub" "^1.3.0" + "@libp2p/topology" "^1.1.8" + denque "^1.5.0" + err-code "^3.0.1" + iso-random-stream "^2.0.2" + it-pipe "^2.0.3" + multiformats "^9.6.4" + protons-runtime "^1.0.4" + uint8arrays "^3.0.0" + +"@chainsafe/libp2p-noise@^8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@chainsafe/libp2p-noise/-/libp2p-noise-8.0.0.tgz#93118f6872e09517ef50167f05f12aed6d4cc2f2" + integrity sha512-APAhb+3eZWHFo+oORG/nUhNTLKgbcTOGeJsnEq//KnjiOjfBDCk4gQmpoSTrLAz1cOTyZ3luSSI4Z+lo2Og7gQ== + dependencies: + "@libp2p/crypto" "^1.0.0" + "@libp2p/interface-connection-encrypter" "^2.0.1" + "@libp2p/interface-keys" "^1.0.2" + "@libp2p/interface-peer-id" "^1.0.2" + "@libp2p/logger" "^2.0.0" + "@libp2p/peer-id" "^1.1.8" "@stablelib/chacha20poly1305" "^1.0.1" "@stablelib/hkdf" "^1.0.1" "@stablelib/sha256" "^1.0.1" "@stablelib/x25519" "^1.0.1" - bl "^5.0.0" - debug "^4.3.1" - it-buffer "^0.1.3" - it-length-prefixed "^5.0.3" - it-pair "^1.0.0" - it-pb-rpc "^0.2.0" - it-pipe "^1.1.0" - peer-id "^0.16.0" - protobufjs "^6.11.2" - uint8arrays "^3.0.0" + it-length-prefixed "^8.0.2" + it-pair "^2.0.2" + it-pb-stream "^2.0.2" + it-pipe "^2.0.3" + it-stream-types "^1.0.4" + protons-runtime "^3.1.0" + uint8arraylist "^2.3.2" + uint8arrays "^3.1.0" "@cspotcode/source-map-consumer@0.8.0": version "0.8.0" @@ -65,6 +122,23 @@ dependencies: "@cspotcode/source-map-consumer" "0.8.0" +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@esbuild-plugins/node-globals-polyfill@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.1.1.tgz#a313ab3efbb2c17c8ce376aa216c627c9b40f9d7" + integrity sha512-MR0oAA+mlnJWrt1RQVQ+4VYuRJW/P2YmRTv1AsplObyvuBMnPHiizUF95HHYiSsMGLhyGtWufaq2XQg6+iurBg== + +"@esbuild/linux-loong64@0.15.5": + version "0.15.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.5.tgz#91aef76d332cdc7c8942b600fa2307f3387e6f82" + integrity sha512-UHkDFCfSGTuXq08oQltXxSZmH1TXyWsL+4QhZDWvvLl6mEJQqk3u7/wq1LjhrrAXYIllaTtRSzUXl4Olkf2J8A== + "@eslint/eslintrc@^1.2.1": version "1.2.1" resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz" @@ -95,16 +169,16 @@ integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== "@ipld/car@^4.1.0": - version "4.1.2" - resolved "https://registry.yarnpkg.com/@ipld/car/-/car-4.1.2.tgz#5b39f48ff185d07403eefbd50f238f6c1ad0b179" - integrity sha512-VaeFFqrBWxPgTuHNuk0k5niWT82C51Y2uvju8lQkpOpSPzCW2hPKoR73dZ1i7MXB8zmOlxkjd3BG8oeJovAXtw== + version "4.1.4" + resolved "https://registry.yarnpkg.com/@ipld/car/-/car-4.1.4.tgz#6860f89ad1f7cd29c1f3254df068a4a1dc01da1f" + integrity sha512-qJs1DoHklninRmwVfyQrp9+wDLIo4JAhkXBx6XSA9fsvAELA0WJOc2bNL6G2zg0MQQPrr5XEJd72ft1apWwMng== dependencies: "@ipld/dag-cbor" "^7.0.0" cborg "^1.9.0" multiformats "^9.5.4" varint "^6.0.0" -"@ipld/dag-cbor@^6.0.3", "@ipld/dag-cbor@^6.0.4": +"@ipld/dag-cbor@^6.0.3": version "6.0.15" resolved "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-6.0.15.tgz" integrity sha512-Vm3VTSTwlmGV92a3C5aeY+r2A18zbH2amehNhsX8PBa3muXICaWrN8Uri85A5hLH7D7ElhE8PdjxD6kNqUmTZA== @@ -120,6 +194,14 @@ cborg "^1.6.0" multiformats "^9.5.4" +"@ipld/dag-cbor@^7.0.1", "@ipld/dag-cbor@^7.0.2": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@ipld/dag-cbor/-/dag-cbor-7.0.2.tgz#a64c2ae6fa32decf655fbb9bee8f543cfae4c3f6" + integrity sha512-V9EhJVWXqzjjRs0kiZfUXOaq8y6R2C4AAmfGoMeszqGOBgfACr5tFAgAwZY0e8z/OpmJWpCrZhzPRTZV0c/gjA== + dependencies: + cborg "^1.6.0" + multiformats "^9.5.4" + "@ipld/dag-json@^8.0.1": version "8.0.9" resolved "https://registry.npmjs.org/@ipld/dag-json/-/dag-json-8.0.9.tgz" @@ -128,13 +210,20 @@ cborg "^1.5.4" multiformats "^9.5.4" -"@ipld/dag-pb@^2.0.0", "@ipld/dag-pb@^2.0.2", "@ipld/dag-pb@^2.1.0", "@ipld/dag-pb@^2.1.15", "@ipld/dag-pb@^2.1.3": +"@ipld/dag-pb@^2.0.0", "@ipld/dag-pb@^2.0.2", "@ipld/dag-pb@^2.1.0", "@ipld/dag-pb@^2.1.3": version "2.1.16" resolved "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-2.1.16.tgz" integrity sha512-5+A87ZsKZ2yEEjtW6LIzTgDJcm6O24d0lmXlubwtMblI5ZB+aTw7PH6kjc8fM6pbnNtVg4Y+c+WZ3zCxdesIBg== dependencies: multiformats "^9.5.4" +"@ipld/dag-pb@^2.1.17": + version "2.1.17" + resolved "https://registry.yarnpkg.com/@ipld/dag-pb/-/dag-pb-2.1.17.tgz#baafe2fc6bbd1654c402a804ea54b8860cfb2912" + integrity sha512-AmzOdmdv5hT8iGsrbpzm5R0Fvk7DEbtwcglG2gJLvW9q3zwb+E681hY4EwEELypM1Rfnp/JDA9dGqYcpEi/iAg== + dependencies: + multiformats "^9.5.4" + "@jest/types@^27.5.1": version "27.5.1" resolved "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz" @@ -146,16 +235,821 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@leichtgewicht/ip-codec@^2.0.1": version "2.0.3" resolved "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz" integrity sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg== +"@libp2p/bootstrap@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@libp2p/bootstrap/-/bootstrap-2.0.0.tgz#00ba8bc568ab9037e6979133165dc269b6a6658e" + integrity sha512-95ekDzxfBm8fHHxJY5xJDPcSZQMuwIzJcHogSvw3+REw/LBPmpHUtTDVfx2BcMdXWpXrJUWVZzCB0zS/rCD9dg== + dependencies: + "@libp2p/interface-peer-discovery" "^1.0.0" + "@libp2p/interface-peer-info" "^1.0.1" + "@libp2p/interfaces" "^3.0.2" + "@libp2p/logger" "^2.0.0" + "@libp2p/peer-id" "^1.1.9" + "@multiformats/mafmt" "^11.0.2" + "@multiformats/multiaddr" "^10.1.7" + +"@libp2p/components@^2.0.0", "@libp2p/components@^2.0.3", "@libp2p/components@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@libp2p/components/-/components-2.0.4.tgz#02b07b1efe1187848d80bc53ba37fb6dba5cf915" + integrity sha512-F04yV6ZrMUEaN8YKxUe2UPsLOnDoME4aMxm+i515aYF0fIZ6qAQfCd0PERvtOnygVnIx+3i3gLsejtL5AVPGUA== + dependencies: + "@libp2p/interface-address-manager" "^1.0.1" + "@libp2p/interface-connection" "^3.0.1" + "@libp2p/interface-connection-manager" "^1.0.0" + "@libp2p/interface-content-routing" "^1.0.0" + "@libp2p/interface-dht" "^1.0.0" + "@libp2p/interface-metrics" "^3.0.0" + "@libp2p/interface-peer-id" "^1.0.2" + "@libp2p/interface-peer-routing" "^1.0.0" + "@libp2p/interface-peer-store" "^1.0.0" + "@libp2p/interface-pubsub" "^2.0.0" + "@libp2p/interface-registrar" "^2.0.0" + "@libp2p/interface-transport" "^1.0.0" + "@libp2p/interfaces" "^3.0.2" + err-code "^3.0.1" + interface-datastore "^7.0.0" + +"@libp2p/connection@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@libp2p/connection/-/connection-4.0.1.tgz#5410f803731ddea9bf491ad462e0a0ca59ef48b1" + integrity sha512-YT+5cYUsG5H5oaGFJyJSuuKdIdBQ4LQQljNvkuO5REiMvviAiWfiF4CMJIQvDW6m7F+s4qpxDHMYuZPJJw2jzw== + dependencies: + "@libp2p/interface-connection" "^3.0.0" + "@libp2p/interface-peer-id" "^1.0.2" + "@libp2p/interfaces" "^3.0.2" + "@libp2p/logger" "^2.0.0" + "@multiformats/multiaddr" "^10.1.5" + err-code "^3.0.1" + +"@libp2p/crypto@^0.22.12", "@libp2p/crypto@^0.22.8": + version "0.22.14" + resolved "https://registry.yarnpkg.com/@libp2p/crypto/-/crypto-0.22.14.tgz#541a2b5c00d1557c9760ad16ba9f20eb01f08e27" + integrity sha512-5RyGh5ovfqrDD8Io3n5rvVnsTHBf1exIMZ/5eBw7Eoy21xkmzdF1Hy701SoSNmiCuTPXYmxT5WMy2VUDBUG6oQ== + dependencies: + "@libp2p/interfaces" "^2.0.1" + "@noble/ed25519" "^1.6.0" + "@noble/secp256k1" "^1.5.4" + err-code "^3.0.1" + iso-random-stream "^2.0.0" + multiformats "^9.4.5" + node-forge "^1.1.0" + protons-runtime "^1.0.4" + uint8arrays "^3.0.0" + +"@libp2p/crypto@^1.0.0": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@libp2p/crypto/-/crypto-1.0.2.tgz#77453f1366ac36929a0b70e61e2a0ed863171c87" + integrity sha512-U+MqKXus1tuh7iCftMlGS82sp6SH+6+9gZg03WsPY/PbN/66V4QMOXUHPeIu+1OkS84U/hcAWXqeZjX0TXo2qw== + dependencies: + "@libp2p/interface-keys" "^1.0.2" + "@noble/ed25519" "^1.6.0" + "@noble/secp256k1" "^1.5.4" + err-code "^3.0.1" + multiformats "^9.4.5" + node-forge "^1.1.0" + protons-runtime "^2.0.2" + uint8arrays "^3.0.0" + +"@libp2p/crypto@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@libp2p/crypto/-/crypto-1.0.3.tgz#aa667bff27ce1e76e7e5fd9621070d4f959f7b27" + integrity sha512-YVoSu5eI8gAqfHcT27ovDXtQH6M4rUhV8x2w0FTyPmceU46fVt+lTsMR1woPeN8roByhjCwHjkPzGQ48Do/vwg== + dependencies: + "@libp2p/interface-keys" "^1.0.2" + "@noble/ed25519" "^1.6.0" + "@noble/secp256k1" "^1.5.4" + err-code "^3.0.1" + multiformats "^9.4.5" + node-forge "^1.1.0" + protons-runtime "^3.1.0" + uint8arrays "^3.0.0" + +"@libp2p/delegated-content-routing@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@libp2p/delegated-content-routing/-/delegated-content-routing-2.0.1.tgz#3d27058d0c56fec60eb8655a20582be249204879" + integrity sha512-5J+i2yZsW1rddKQ07eiqHiqdcChK6dC8NghYOQGbizQI3QMixJvgTucEvES90Nh1bbf0swPHDkJmct6iLi+zlQ== + dependencies: + "@libp2p/interface-content-routing" "^1.0.1" + "@libp2p/interface-peer-id" "^1.0.2" + "@libp2p/interface-peer-info" "^1.0.1" + "@libp2p/interfaces" "^3.0.2" + "@libp2p/logger" "^2.0.0" + "@multiformats/multiaddr" "^10.1.7" + any-signal "^3.0.1" + err-code "^3.0.1" + it-drain "^1.0.5" + p-defer "^4.0.0" + p-queue "^7.2.0" + +"@libp2p/delegated-peer-routing@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@libp2p/delegated-peer-routing/-/delegated-peer-routing-2.0.1.tgz#e7be6ac3fef2d22e6947db9f00276b94fb166dbb" + integrity sha512-9u5cZaDM4xtWJVjlwg4v45lBlHyXFeqGX1zoj2y6xuJqO/BWKt9yKglNZ0HRJXIPkBU/lmNr9xsjh2ffH6wzmA== + dependencies: + "@libp2p/interface-peer-id" "^1.0.2" + "@libp2p/interface-peer-info" "^1.0.1" + "@libp2p/interface-peer-routing" "^1.0.0" + "@libp2p/interfaces" "^3.0.2" + "@libp2p/logger" "^2.0.0" + "@libp2p/peer-id" "^1.1.11" + "@multiformats/multiaddr" "^10.1.8" + any-signal "^3.0.1" + err-code "^3.0.1" + multiformats "^9.6.3" + p-defer "^4.0.0" + p-queue "^7.2.0" + +"@libp2p/floodsub@^1.0.2": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@libp2p/floodsub/-/floodsub-1.0.7.tgz#2fead82a0c312fa01b6f51a709c8ad1bceb5a584" + integrity sha512-Ljv6otj8zDEf9KhLzmErLnvbmr5+FgHDv6lL2FVUmmKpw8IulkS/vL9lzkXefOmcQk0Qj5XdYyrOPvGC2fRO+w== + dependencies: + "@libp2p/interfaces" "^2.0.1" + "@libp2p/logger" "^1.1.4" + "@libp2p/pubsub" "^1.2.20" + protons-runtime "^1.0.3" + uint8arrays "^3.0.0" + +"@libp2p/interface-address-manager@^1.0.1", "@libp2p/interface-address-manager@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@libp2p/interface-address-manager/-/interface-address-manager-1.0.2.tgz#f7affb53eb0938c246edd658efe3835f67fe7d84" + integrity sha512-YUZzuY3yySXaeYd/LXkEDV/aKp6eJBsropXypwqeP3ErmEvkN06nbShQQAyNvRnloecYVAeLt2IZW2N9ImlRFg== + dependencies: + "@libp2p/interfaces" "^3.0.0" + "@multiformats/multiaddr" "^10.2.0" + +"@libp2p/interface-connection-encrypter@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@libp2p/interface-connection-encrypter/-/interface-connection-encrypter-2.0.1.tgz#158d3705fd279db44c5000a8528a52e33457e480" + integrity sha512-GtqsNJuL1q7LWX3z41t9eFFFrlLSmMH92E0rupoXeFx1dJ8Gs/Zy8b6lZro96Ld6rjU1CeZa87SmYeqQQeHRmw== + dependencies: + "@libp2p/interface-peer-id" "^1.0.0" + it-stream-types "^1.0.4" + uint8arraylist "^2.1.1" + +"@libp2p/interface-connection-manager@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@libp2p/interface-connection-manager/-/interface-connection-manager-1.0.3.tgz#06be5dc626f1cf55465a60c2ae9f9d675c9c6327" + integrity sha512-zDDzAKbtCkqR/3AmZ3DAoK1bt+5vhyUruV8654R9IT5PI7IBBgFnYzvkWHDI/UDvhwT27ubofPagp0m25gQZvg== + dependencies: + "@libp2p/interface-connection" "^3.0.0" + "@libp2p/interface-peer-id" "^1.0.0" + "@libp2p/interfaces" "^3.0.0" + +"@libp2p/interface-connection@^3.0.0", "@libp2p/interface-connection@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@libp2p/interface-connection/-/interface-connection-3.0.1.tgz#c0dcc28ea1675327eb073d8fa369f1c1e85697a4" + integrity sha512-x+Ws74EhxvSym2fTQMP8/xpV3p8A3ar8yOq4dq/44HSvEMMKcuQvEq2jShVK0aXEpg1ce/KHY83FgY1zToFM2A== + dependencies: + "@libp2p/interface-peer-id" "^1.0.0" + "@libp2p/interfaces" "^3.0.0" + "@multiformats/multiaddr" "^10.2.0" + it-stream-types "^1.0.4" + uint8arraylist "^2.1.1" + +"@libp2p/interface-content-routing@^1.0.0", "@libp2p/interface-content-routing@^1.0.1", "@libp2p/interface-content-routing@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@libp2p/interface-content-routing/-/interface-content-routing-1.0.2.tgz#783721ac67463b10fd8b5c0b60f75f886642fbdf" + integrity sha512-Ue1X8XrZ4ymTMQk/GWom/EKfPB5Lu7zy33ohjSix26Da/HbBvkXBdnYGDj485vxSOZGZRqeBhh21nCVjD/yLyg== + dependencies: + "@libp2p/interface-peer-info" "^1.0.0" + "@libp2p/interfaces" "^3.0.0" + multiformats "^9.6.3" + +"@libp2p/interface-dht@^1.0.0", "@libp2p/interface-dht@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@libp2p/interface-dht/-/interface-dht-1.0.1.tgz#1388c74da1261f2a3212fa8a7d2ca4559688b3cd" + integrity sha512-EToxQznHUnD9frWoHwq8DUaOa7RZ2qoo6beb1aWdQrEJsEdUBi62FHh9qrLkrL+E4W3rkl2+WrhSP6/iHxZZwQ== + dependencies: + "@libp2p/interface-peer-discovery" "^1.0.0" + "@libp2p/interface-peer-id" "^1.0.0" + "@libp2p/interface-peer-info" "^1.0.0" + "@libp2p/interfaces" "^3.0.0" + multiformats "^9.6.3" + +"@libp2p/interface-keychain@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@libp2p/interface-keychain/-/interface-keychain-1.0.3.tgz#464be731791d475f98beee9267012b4397558773" + integrity sha512-JCqe43LNwfgkZgT9bzUlrvaLzJmgIbY1MtsTxdJD/D9I7YyknTSGR3YII9BG0kRzex568/yiqlKxkYboxfh+BQ== + dependencies: + multiformats "^9.6.3" + +"@libp2p/interface-keys@^1.0.2", "@libp2p/interface-keys@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@libp2p/interface-keys/-/interface-keys-1.0.3.tgz#251abb2f0fe084e35e16ba782d64c7e4dfb24470" + integrity sha512-K8/HlRl/swbVTWuGHNHF28EytszYfUhKgUHfv8CdbMk9ZA/bgO4uU+d9rcrg/Dhw3511U3aRz2bwl2psn6rJfg== + +"@libp2p/interface-metrics@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@libp2p/interface-metrics/-/interface-metrics-3.0.0.tgz#7b448782e78f948abe92e2adef838e3e781f2e84" + integrity sha512-TxK63BrDalv0yW544608xfmg3rsbh31ykZzf7I1yjMCZpyIFOqLTH1WN4YQwXKNlMz/XURux99UTpGSRYl3nOA== + dependencies: + "@libp2p/interface-peer-id" "^1.0.0" + it-stream-types "^1.0.4" + +"@libp2p/interface-peer-discovery@^1.0.0", "@libp2p/interface-peer-discovery@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-discovery/-/interface-peer-discovery-1.0.1.tgz#56d14a933a479e9866b1eb41a597717d2e7d954e" + integrity sha512-ZqBhpX7fR3ROYQaGYV47YhyTJJzFDzyyEIsQ7NnDuG3KhcQb2PtocnN0sy1Ozm784M0oYveM/HjfuNxxcOwdYg== + dependencies: + "@libp2p/interface-peer-info" "^1.0.0" + "@libp2p/interfaces" "^3.0.0" + +"@libp2p/interface-peer-id@^1.0.0", "@libp2p/interface-peer-id@^1.0.2", "@libp2p/interface-peer-id@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-id/-/interface-peer-id-1.0.4.tgz#f8d8114ad58cb04eb880bdd8f91799e418f92881" + integrity sha512-VRnE0MqmS1kN43hyKCEdkhz0gciuDML7hpL3p8zDm0LnveNMLJsR+/VSUaugCi/muOzLaLk26WffKWbMYfnGfA== + dependencies: + multiformats "^9.6.3" + +"@libp2p/interface-peer-info@^1.0.0", "@libp2p/interface-peer-info@^1.0.1", "@libp2p/interface-peer-info@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-info/-/interface-peer-info-1.0.2.tgz#3d2c5f7a9735c3411f78d68a961147163506e43f" + integrity sha512-8dGBj8+6PdBDsMAASxX2sECnWhK7zAnv8iCFgYXY5Z6fbQwA+7iVAea9FdjgyLapdIzDarttPt3Gdou8tXZdGg== + dependencies: + "@libp2p/interface-peer-id" "^1.0.0" + "@multiformats/multiaddr" "^10.2.0" + +"@libp2p/interface-peer-routing@^1.0.0", "@libp2p/interface-peer-routing@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-routing/-/interface-peer-routing-1.0.1.tgz#047a3034601e70d0138ffcbd28e3db2b88ced0ee" + integrity sha512-MKx2g0mIUI6qNuLv3xApKXR2ZrO9CUTT9ZPL0gvRlhpFCXovEkdWJ1h8KnmkR7tGPxKHt2bsCCJ8gqUaFeNstA== + dependencies: + "@libp2p/interface-peer-id" "^1.0.0" + "@libp2p/interface-peer-info" "^1.0.0" + "@libp2p/interfaces" "^3.0.0" + +"@libp2p/interface-peer-store@^1.0.0", "@libp2p/interface-peer-store@^1.1.0", "@libp2p/interface-peer-store@^1.2.0", "@libp2p/interface-peer-store@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-store/-/interface-peer-store-1.2.1.tgz#4cc5951cb73b8dd80b34c701897b90b98b53bea0" + integrity sha512-X1kRrhWUkqWu6KcwDeQ8vdTvvjisZ4TkgVxDufw2MYZlIZ5DUFLqv0d7+QRC7HeOkNkWTOxrWB7FfvtMGbG2Xg== + dependencies: + "@libp2p/interface-peer-id" "^1.0.0" + "@libp2p/interface-peer-info" "^1.0.0" + "@libp2p/interface-record" "^2.0.0" + "@libp2p/interfaces" "^3.0.0" + "@multiformats/multiaddr" "^10.3.3" + +"@libp2p/interface-pubsub@^2.0.0", "@libp2p/interface-pubsub@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@libp2p/interface-pubsub/-/interface-pubsub-2.0.1.tgz#cc13f5f6ee8a8ef92066bc534b93680ad80ffc55" + integrity sha512-j6XSYz5Ir5yJH6KCtYMUGYlbBFfDGx/vPfFe1X3UFIC6qZ9N+IMkde6C5DCQ8calhCyM1pB2K5StAlztsZV2BQ== + dependencies: + "@libp2p/interface-connection" "^3.0.0" + "@libp2p/interface-peer-id" "^1.0.0" + "@libp2p/interfaces" "^3.0.0" + it-pushable "^3.0.0" + uint8arraylist "^2.0.0" + +"@libp2p/interface-record@^2.0.0", "@libp2p/interface-record@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@libp2p/interface-record/-/interface-record-2.0.1.tgz#2b6de7c3deb3420be80df6a0485dc318d231773d" + integrity sha512-RqF5jKukI8v3Q8MZb4d8/UVjg0OXbl0R8ErWi/LKf+uklA8kTA7rT4FQXFUBycxrkFmEu/tJnW+R1/4fwRwZVg== + dependencies: + "@libp2p/interface-peer-id" "^1.0.0" + uint8arraylist "^2.0.0" + +"@libp2p/interface-registrar@^2.0.0", "@libp2p/interface-registrar@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@libp2p/interface-registrar/-/interface-registrar-2.0.3.tgz#71208405caa9c7d36748de75e202aef8535c435e" + integrity sha512-YA/A+o+166/+noXxMFXvZdg9soZSZX2EPOlUwnGXZWR7J5B2sxyP76QxHWXL5npsEMj7suP+Rjb/GJYGz7rDyg== + dependencies: + "@libp2p/interface-connection" "^3.0.0" + "@libp2p/interface-peer-id" "^1.0.0" + +"@libp2p/interface-stream-muxer@^2.0.0", "@libp2p/interface-stream-muxer@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@libp2p/interface-stream-muxer/-/interface-stream-muxer-2.0.2.tgz#81b561de8dec75f085e5b2ae3c3acac256450dc9" + integrity sha512-BcLsV8ZVr34G32u/w4pgSAgFju9CTuBB9OJwgX6ugasYf6LtJ0a3m5Kwddy79lvvM/gBvVv/McpCr4mPxP4WWg== + dependencies: + "@libp2p/interface-connection" "^3.0.0" + "@libp2p/interfaces" "^3.0.0" + it-stream-types "^1.0.4" + +"@libp2p/interface-transport@^1.0.0", "@libp2p/interface-transport@^1.0.2", "@libp2p/interface-transport@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@libp2p/interface-transport/-/interface-transport-1.0.3.tgz#ce5ef0218a4f13e7311fed69de21558b2e3d7160" + integrity sha512-uwCWcrtKVHGUpgJdmkTgeSr4vpN3lp7lhdV7NybrgL9Ge8JZxTRbs7OlCltRwD+jZkYEb0c6xAHF8nXlBFv5rw== + dependencies: + "@libp2p/interface-connection" "^3.0.0" + "@libp2p/interfaces" "^3.0.0" + "@multiformats/multiaddr" "^10.2.0" + it-stream-types "^1.0.4" + +"@libp2p/interfaces@^2.0.0", "@libp2p/interfaces@^2.0.1", "@libp2p/interfaces@^2.0.3", "@libp2p/interfaces@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@libp2p/interfaces/-/interfaces-2.0.4.tgz#78d36637b59d864990d1c315e32f66a58f2a50df" + integrity sha512-MfwkTFyHJtvwNxkjOjzkXyIVvKFtEW2Q3IGRJPyPQMrtB6ll0rGMTlyJ3BQS1bcD0YkNhggFm+8XiU2/0LCBhQ== + dependencies: + "@multiformats/multiaddr" "^10.1.5" + err-code "^3.0.1" + interface-datastore "^6.1.0" + it-pushable "^2.0.1" + it-stream-types "^1.0.4" + multiformats "^9.6.3" + +"@libp2p/interfaces@^3.0.0", "@libp2p/interfaces@^3.0.1", "@libp2p/interfaces@^3.0.2", "@libp2p/interfaces@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@libp2p/interfaces/-/interfaces-3.0.3.tgz#b657e73a5ece0e2b18c6db04d7defe66fbd2a735" + integrity sha512-8IIxw7TKpaYTtVfZN3jePLlm/E/VzqPpqerN+jhA+1s86akRSeyxVBYi3W9SWDSf0oIauHJSDE8KNxLceAfeag== + +"@libp2p/kad-dht@^3.0.0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@libp2p/kad-dht/-/kad-dht-3.0.4.tgz#465998f6331dd725af92ace0f659c1e48f5c4024" + integrity sha512-2jt/kkVY4STxxeEvF05OpILHeozqiFt/bSvLEknmFr3zvsMeZGDTlYVBS91fKM3I30sE0XreLEZ68bCtT8jg4w== + dependencies: + "@libp2p/components" "^2.0.4" + "@libp2p/crypto" "^1.0.0" + "@libp2p/interface-address-manager" "^1.0.1" + "@libp2p/interface-connection" "^3.0.1" + "@libp2p/interface-connection-manager" "^1.0.0" + "@libp2p/interface-dht" "^1.0.0" + "@libp2p/interface-peer-discovery" "^1.0.0" + "@libp2p/interface-peer-id" "^1.0.2" + "@libp2p/interface-peer-info" "^1.0.1" + "@libp2p/interface-peer-store" "^1.0.0" + "@libp2p/interface-registrar" "^2.0.0" + "@libp2p/interfaces" "^3.0.2" + "@libp2p/logger" "^2.0.0" + "@libp2p/peer-id" "^1.1.13" + "@libp2p/record" "^2.0.0" + "@libp2p/topology" "^3.0.0" + "@multiformats/multiaddr" "^10.1.5" + abortable-iterator "^4.0.2" + any-signal "^3.0.0" + datastore-core "^8.0.1" + err-code "^3.0.1" + hashlru "^2.3.0" + interface-datastore "^7.0.0" + it-all "^1.0.6" + it-drain "^1.0.5" + it-first "^1.0.6" + it-length "^1.0.3" + it-length-prefixed "^8.0.2" + it-map "^1.0.6" + it-merge "^1.0.3" + it-parallel "^2.0.1" + it-pipe "^2.0.3" + it-stream-types "^1.0.4" + it-take "^1.0.2" + k-bucket "^5.1.0" + multiformats "^9.6.3" + p-defer "^4.0.0" + p-queue "^7.2.0" + private-ip "^2.3.3" + protons-runtime "^3.1.0" + timeout-abort-controller "^3.0.0" + uint8arraylist "^2.0.0" + uint8arrays "^3.0.0" + varint "^6.0.0" + +"@libp2p/logger@^1.0.1", "@libp2p/logger@^1.1.0", "@libp2p/logger@^1.1.2", "@libp2p/logger@^1.1.3", "@libp2p/logger@^1.1.4", "@libp2p/logger@^1.1.5": + version "1.1.6" + resolved "https://registry.yarnpkg.com/@libp2p/logger/-/logger-1.1.6.tgz#2f24af0fc3fc7a8f9e8e266e25569fdd94976096" + integrity sha512-ZKoRUt7cyHlbxHYDZ1Fn3A+ByqGABdmd4z07+1TfVvpEQSpn2IVcV0mt6ff5kUUtGuVeSrqK1/ZDzWqhgg56vg== + dependencies: + "@libp2p/interfaces" "^2.0.0" + debug "^4.3.3" + interface-datastore "^6.1.0" + multiformats "^9.6.3" + +"@libp2p/logger@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@libp2p/logger/-/logger-2.0.0.tgz#0bc15dc861c9f1aa214f2b7628e777752698f279" + integrity sha512-aC1Yz4bni8Cui1tKCL5PzQSlS3BE/hhvyVnEHhcUz+GCo+MpbmyrZSPAb/m1e7bHrDDKkT1f9DSr7vgmS/NkuQ== + dependencies: + "@libp2p/interface-peer-id" "^1.0.2" + debug "^4.3.3" + interface-datastore "^6.1.0" + multiformats "^9.6.3" + +"@libp2p/logger@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@libp2p/logger/-/logger-2.0.1.tgz#d600967793f7948f8af54dc919c69629b4c1cbe6" + integrity sha512-Mtj7ImjRYbaANuT53QRqc7ooBYpWieLo7KbqYYGas5O2AWQeOu/zyGBMM35WbWIo7sMuhCas9XBPJdFOR7A05w== + dependencies: + "@libp2p/interface-peer-id" "^1.0.2" + debug "^4.3.3" + interface-datastore "^7.0.0" + multiformats "^9.6.3" + +"@libp2p/mdns@^1.0.3": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@libp2p/mdns/-/mdns-1.0.7.tgz#d175c6336289f2fd8cda6c17264e374c1e76ea6d" + integrity sha512-eSPaB5GQL7h9MnnVfweXjiS/oZ8GQCa7TZYqEBRlfmjOycKt63lIl9+ww9zmSIavHvqVY3T9FexSsJseQdbxpg== + dependencies: + "@libp2p/interfaces" "^2.0.1" + "@libp2p/logger" "^1.1.3" + "@libp2p/peer-id" "^1.1.9" + "@multiformats/multiaddr" "^10.1.5" + multicast-dns "^7.2.0" + multiformats "^9.6.3" + +"@libp2p/mplex@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@libp2p/mplex/-/mplex-5.0.0.tgz#a6667e4856a761d956675633f454b8784133d05d" + integrity sha512-XRIyTwIz1lW9qVsfTzZzR7/fycJwEo+54Vin7c3035mii3DTqg17K4QE9RRMAo35pns2vSt+kCx75tCulV6ehg== + dependencies: + "@libp2p/components" "^2.0.0" + "@libp2p/interface-connection" "^3.0.1" + "@libp2p/interface-stream-muxer" "^2.0.0" + "@libp2p/logger" "^2.0.0" + "@libp2p/tracked-map" "^2.0.0" + abortable-iterator "^4.0.2" + any-signal "^3.0.0" + err-code "^3.0.1" + it-pipe "^2.0.3" + it-pushable "^3.0.0" + it-stream-types "^1.0.4" + uint8arraylist "^2.1.1" + uint8arrays "^3.0.0" + varint "^6.0.0" + +"@libp2p/multistream-select@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@libp2p/multistream-select/-/multistream-select-3.0.0.tgz#a6ade52f461fff68d39563b4e8f061270cb27c5b" + integrity sha512-l7NFJfq6J86wyM/F0agf45CX/4BLgm9Ork5pfHuz8E+z0F7s+i+gWZH8Pk1CIrIfOpMVJvEtJCnRcjJnDAcv2A== + dependencies: + "@libp2p/interfaces" "^3.0.2" + "@libp2p/logger" "^2.0.0" + abortable-iterator "^4.0.2" + err-code "^3.0.1" + it-first "^1.0.6" + it-handshake "^4.0.1" + it-length-prefixed "^8.0.2" + it-pipe "^2.0.3" + it-pushable "^3.0.0" + it-reader "^6.0.1" + it-stream-types "^1.0.4" + p-defer "^4.0.0" + uint8arraylist "^2.3.1" + uint8arrays "^3.0.0" + +"@libp2p/peer-collections@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@libp2p/peer-collections/-/peer-collections-1.0.3.tgz#68b561d3cf550aa2238cd0d0424435ca898e9f96" + integrity sha512-xrnFlZ2CpYiUQ0fGE0WqfBONiE2rjkjWHXnS6gH7CudlD0JMSftbzI+naBXRunfZal7CNEtHN7+keVX+ingPgA== + dependencies: + "@libp2p/interfaces" "^2.0.0" + "@libp2p/peer-id" "^1.1.0" + +"@libp2p/peer-collections@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@libp2p/peer-collections/-/peer-collections-2.0.0.tgz#ae1db935dfbf0e4df2f0644c55b449f34b6dcf0e" + integrity sha512-A074sSs0Kv3g/1gaf3ZvMc05sLmho3c3uJtkep4L3cgHokMW0pF+3YovU5KvdgBCB8GEepXiUvYsdPYzehVl7A== + dependencies: + "@libp2p/interface-peer-id" "^1.0.4" + "@libp2p/peer-id" "^1.1.0" + +"@libp2p/peer-id-factory@^1.0.10": + version "1.0.17" + resolved "https://registry.yarnpkg.com/@libp2p/peer-id-factory/-/peer-id-factory-1.0.17.tgz#dc1182cdde051ade6676385b02bdb1b1e2d43b2f" + integrity sha512-N1ouEBuIkkTBiFsWTMc517IeSui8h+PVPp2HkkhremeVNojAJ5Lm6rxh1BZiLVJADGHbbuERTXMIY9l6aBIXVw== + dependencies: + "@libp2p/crypto" "^1.0.0" + "@libp2p/interface-keys" "^1.0.2" + "@libp2p/interface-peer-id" "^1.0.0" + "@libp2p/peer-id" "^1.0.0" + multiformats "^9.6.3" + protons-runtime "^2.0.2" + uint8arraylist "^2.0.0" + uint8arrays "^3.0.0" + +"@libp2p/peer-id-factory@^1.0.18": + version "1.0.18" + resolved "https://registry.yarnpkg.com/@libp2p/peer-id-factory/-/peer-id-factory-1.0.18.tgz#315092c783d04457450c15c8f75c9c316eb12544" + integrity sha512-x7lyPrfF4kkMj6az+h1sq5L6ifTvZt2exKi8yS6/Gi/hT8rfqXROdBDtanMjJivIFlzVKJyZdfW5f5RK9Av3iQ== + dependencies: + "@libp2p/crypto" "^1.0.0" + "@libp2p/interface-keys" "^1.0.2" + "@libp2p/interface-peer-id" "^1.0.0" + "@libp2p/peer-id" "^1.0.0" + multiformats "^9.6.3" + protons-runtime "^3.1.0" + uint8arraylist "^2.0.0" + uint8arrays "^3.0.0" + +"@libp2p/peer-id@^1.0.0", "@libp2p/peer-id@^1.1.0", "@libp2p/peer-id@^1.1.10", "@libp2p/peer-id@^1.1.11", "@libp2p/peer-id@^1.1.13", "@libp2p/peer-id@^1.1.15", "@libp2p/peer-id@^1.1.8", "@libp2p/peer-id@^1.1.9": + version "1.1.15" + resolved "https://registry.yarnpkg.com/@libp2p/peer-id/-/peer-id-1.1.15.tgz#5c005ab4cb3f933977d0ec18a7d67071136cbed6" + integrity sha512-Y33JLEfsLmLUjuC2nhQ2lBXP6PIsR892gSsNy4Vd7oILkuRhjPouIojP9BbME0m9bhVbAws+Zh9NBKtp7UH7wA== + dependencies: + "@libp2p/interface-peer-id" "^1.0.0" + err-code "^3.0.1" + multiformats "^9.6.3" + uint8arrays "^3.0.0" + +"@libp2p/peer-record@^1.0.12": + version "1.0.12" + resolved "https://registry.yarnpkg.com/@libp2p/peer-record/-/peer-record-1.0.12.tgz#e292dc7a775f6b534d61abf8c50d57168b3efeea" + integrity sha512-1b4aeU4sduRBUH4RKDtYBHKOEXwohrlOoBrrNPKb1WFweLMnG3oznhGusMvKQ8YuXSOTpbNPHrbJ/iJnrBbVUQ== + dependencies: + "@libp2p/crypto" "^0.22.8" + "@libp2p/interfaces" "^2.0.0" + "@libp2p/logger" "^1.1.0" + "@libp2p/peer-id" "^1.1.0" + "@libp2p/utils" "^1.0.9" + "@multiformats/multiaddr" "^10.1.5" + err-code "^3.0.1" + interface-datastore "^6.1.0" + it-all "^1.0.6" + it-filter "^1.0.3" + it-foreach "^0.1.1" + it-map "^1.0.6" + it-pipe "^2.0.3" + multiformats "^9.6.3" + protons-runtime "^1.0.4" + uint8arrays "^3.0.0" + varint "^6.0.0" + +"@libp2p/peer-record@^4.0.1", "@libp2p/peer-record@^4.0.2": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@libp2p/peer-record/-/peer-record-4.0.2.tgz#a4e8af46dab756308625fad882c378ef001dc8cc" + integrity sha512-r1arc73ADcLd9sESNy7bDHPAsv3JYvIV7kXjB13wQJAQ1oeu9e0I6f1MAIWt4ZukNAiRD8gdlrRvNG63AAZfOg== + dependencies: + "@libp2p/crypto" "^1.0.0" + "@libp2p/interface-peer-id" "^1.0.2" + "@libp2p/interface-record" "^2.0.1" + "@libp2p/logger" "^2.0.0" + "@libp2p/peer-id" "^1.1.13" + "@libp2p/utils" "^3.0.0" + "@multiformats/multiaddr" "^10.1.5" + err-code "^3.0.1" + interface-datastore "^7.0.0" + it-all "^1.0.6" + it-filter "^1.0.3" + it-foreach "^0.1.1" + it-map "^1.0.6" + it-pipe "^2.0.3" + multiformats "^9.6.3" + protons-runtime "^3.1.0" + uint8-varint "^1.0.2" + uint8arraylist "^2.1.0" + uint8arrays "^3.0.0" + varint "^6.0.0" + +"@libp2p/peer-store@^3.1.3": + version "3.1.3" + resolved "https://registry.yarnpkg.com/@libp2p/peer-store/-/peer-store-3.1.3.tgz#3709a2dc38039fc84e47d408d624108c05beef87" + integrity sha512-W2Q6l3nk+SwI45busDuSgGgKs9Wz4YTvf2DojBVkaqP1m+32hsjngRYNW63kaexJswnIBvb3uFqnrlyf9plgKg== + dependencies: + "@libp2p/components" "^2.0.0" + "@libp2p/interface-peer-id" "^1.0.2" + "@libp2p/interface-peer-info" "^1.0.1" + "@libp2p/interface-peer-store" "^1.1.0" + "@libp2p/interface-record" "^2.0.0" + "@libp2p/interfaces" "^3.0.2" + "@libp2p/logger" "^2.0.0" + "@libp2p/peer-id" "^1.1.0" + "@libp2p/peer-record" "^4.0.1" + "@multiformats/multiaddr" "^10.2.0" + err-code "^3.0.1" + interface-datastore "^7.0.0" + it-all "^1.0.6" + it-filter "^1.0.3" + it-foreach "^0.1.1" + it-map "^1.0.6" + it-pipe "^2.0.3" + mortice "^3.0.0" + multiformats "^9.6.3" + protons-runtime "^3.1.0" + uint8arraylist "^2.1.1" + uint8arrays "^3.1.0" + +"@libp2p/pubsub@^1.2.20", "@libp2p/pubsub@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@libp2p/pubsub/-/pubsub-1.3.0.tgz#572d717644bb0ade80aa09eb3a4de46abdf4198c" + integrity sha512-yFwjhArFi2QxlFEDv8BW6pmTkJKaQpPKw5lN7XYFBG84rZDDOEVIA5S13B9/nu0IiHQeucRBGwPaGWcR4h/uMw== + dependencies: + "@libp2p/crypto" "^0.22.8" + "@libp2p/interfaces" "^2.0.0" + "@libp2p/logger" "^1.1.0" + "@libp2p/peer-collections" "^1.0.0" + "@libp2p/peer-id" "^1.1.0" + "@libp2p/topology" "^1.1.0" + "@multiformats/multiaddr" "^10.1.5" + abortable-iterator "^4.0.2" + err-code "^3.0.1" + iso-random-stream "^2.0.0" + it-length-prefixed "^7.0.1" + it-pipe "^2.0.3" + it-pushable "^2.0.1" + multiformats "^9.6.3" + p-queue "^7.2.0" + uint8arrays "^3.0.0" + +"@libp2p/record@^2.0.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@libp2p/record/-/record-2.0.2.tgz#c7a2c128da44d5d3eee3f0df9dcd95a5b3f5296a" + integrity sha512-JmkV8uqn7BFQ1Ic7nVZOWHJJqo/JMDhTOJiMU94Ypsc3TwHnpmYXRiWpCoGkGlj8kmZkMtSiydl/OpfVXdR10g== + dependencies: + "@libp2p/interface-dht" "^1.0.0" + err-code "^3.0.1" + multiformats "^9.4.5" + protons-runtime "^3.1.0" + uint8arraylist "^2.1.1" + uint8arrays "^3.0.0" + +"@libp2p/tcp@^1.0.6": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@libp2p/tcp/-/tcp-1.0.11.tgz#bb1f9282a35ed389a9102830fb91504a0bad8b4a" + integrity sha512-ewFwxTpTmZmFWF8UJxQK28yDIYVDodgbztxLM+OXnOcKlgN9fAihIO16NSKHSZlffLyQTXUVHaOQFjTJa0Ms5g== + dependencies: + "@libp2p/interfaces" "^2.0.1" + "@libp2p/logger" "^1.1.2" + "@libp2p/utils" "^1.0.9" + "@multiformats/mafmt" "^11.0.2" + "@multiformats/multiaddr" "^10.1.5" + abortable-iterator "^4.0.2" + err-code "^3.0.1" + stream-to-it "^0.2.2" + +"@libp2p/topology@^1.1.0", "@libp2p/topology@^1.1.8": + version "1.1.9" + resolved "https://registry.yarnpkg.com/@libp2p/topology/-/topology-1.1.9.tgz#ebdd1c69e1a0f611f0ff7c682aeda8c06e731e0b" + integrity sha512-zN9T9pJi5otGzNKD7OUjyIXTOMW9OGJwT3vfmmUba2ULi7YZXts4JYkRMngYKgWE9fwe9ung8yb2f4Wq6SKpyA== + dependencies: + "@libp2p/interfaces" "^2.0.0" + "@libp2p/logger" "^1.1.0" + "@multiformats/multiaddr" "^10.1.5" + err-code "^3.0.1" + it-all "^1.0.6" + +"@libp2p/topology@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@libp2p/topology/-/topology-3.0.0.tgz#2b5df0ce13ce4c0307f7dd3304280d105fac0a76" + integrity sha512-gQMkO1j7D/7A9MfL2mtLxr0StXzjqK0V554w7hk25E66Ly0wp1K7vPEfhE9rExLSaQqe9ir4nijhbA3rNnxZng== + dependencies: + "@libp2p/interface-peer-id" "^1.0.2" + "@libp2p/interface-registrar" "^2.0.0" + "@libp2p/logger" "^2.0.0" + "@multiformats/multiaddr" "^10.2.0" + err-code "^3.0.1" + it-all "^1.0.6" + +"@libp2p/tracked-map@^2.0.0", "@libp2p/tracked-map@^2.0.1": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@libp2p/tracked-map/-/tracked-map-2.0.2.tgz#3ff2d34607a6cfbed95b0dc6a360631f99938df9" + integrity sha512-y5UnoB5NR+i7Xp/wPrHYyJxiNRS0/3ee8chphTG8GptdTWqWcZ+UALKXMb9neMtFL9pivNrOY+A0d+M60eI+RA== + dependencies: + "@libp2p/interface-metrics" "^3.0.0" + +"@libp2p/utils@^1.0.10", "@libp2p/utils@^1.0.9": + version "1.0.10" + resolved "https://registry.yarnpkg.com/@libp2p/utils/-/utils-1.0.10.tgz#58bfd1ff56e7427a5db4d81cf7148b871dd06abc" + integrity sha512-jlVLfac1IoBlgXL8V+XZYxNw0SOAkKweiLhXWolUbKOgRtMDquJzbwG1n8y9GtdiFKPlkiBwOB7l9xighcOR6w== + dependencies: + "@achingbrain/ip-address" "^8.1.0" + "@libp2p/logger" "^1.0.1" + "@multiformats/multiaddr" "^10.1.1" + abortable-iterator "^4.0.2" + err-code "^3.0.1" + is-loopback-addr "^2.0.1" + it-stream-types "^1.0.4" + private-ip "^2.1.1" + ts-mocha "^9.0.2" + ts-node "^10.7.0" + +"@libp2p/utils@^3.0.0", "@libp2p/utils@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@libp2p/utils/-/utils-3.0.1.tgz#e81bb4da592f9e852d8b0a3b499e9996af3452af" + integrity sha512-qc1zGBb6Yrl/ihux8qmy+T3H9BymVGiZeam8b/Dr4jpHxV4mfYwySYXUxa6LZqhDp0WS2Es9B1v1UtsNRY5YxA== + dependencies: + "@achingbrain/ip-address" "^8.1.0" + "@libp2p/interface-connection" "^3.0.1" + "@libp2p/interface-peer-store" "^1.0.0" + "@libp2p/logger" "^2.0.0" + "@multiformats/multiaddr" "^10.1.1" + abortable-iterator "^4.0.2" + err-code "^3.0.1" + is-loopback-addr "^2.0.1" + it-stream-types "^1.0.4" + private-ip "^2.1.1" + uint8arraylist "^2.3.2" + +"@libp2p/webrtc-peer@^1.0.6": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@libp2p/webrtc-peer/-/webrtc-peer-1.0.9.tgz#2c82c3f8cf751cec8c953d200902795817cf51cd" + integrity sha512-K1mVGRLRhBdT5eqcs8RZwkkkzjRJHgu6g1t+yjyHZkes5vE9paHF2CaQxejMWRdqImOQpPY7c01wEI6cPsT6Cg== + dependencies: + "@libp2p/interfaces" "^2.0.1" + "@libp2p/logger" "^1.1.2" + delay "^5.0.0" + err-code "^3.0.1" + iso-random-stream "^2.0.2" + it-pushable "^2.0.1" + it-stream-types "^1.0.4" + p-defer "^4.0.0" + p-event "^5.0.1" + uint8arrays "^3.0.0" + +"@libp2p/webrtc-star-protocol@^1.0.0": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@libp2p/webrtc-star-protocol/-/webrtc-star-protocol-1.0.2.tgz#7a68389c9295a269e00c3ae0445f626644a99dcc" + integrity sha512-P4uNpwIaQFgbyMNhmjasw5B0dblGabvvT+GbmSBRRta3JXqU73EkJOX8WWVe9JvRnOz+A029uiTeS9763EoalA== + dependencies: + "@multiformats/multiaddr" "^10.1.7" + socket.io-client "^4.1.2" + +"@libp2p/webrtc-star@^1.0.6": + version "1.0.12" + resolved "https://registry.yarnpkg.com/@libp2p/webrtc-star/-/webrtc-star-1.0.12.tgz#ca36e64ec8373f5460fcedc2ac79622e133eff62" + integrity sha512-1igTwDRg7ZvEVRzwFY4xbx8gqJDRR9XySFE6ME1SSxWOYjT5wCzT3z8ebJIQvC5GDdU2tG5f9Qsus1yRKqqeFg== + dependencies: + "@libp2p/interfaces" "^2.0.1" + "@libp2p/logger" "^1.1.3" + "@libp2p/peer-id" "^1.1.9" + "@libp2p/utils" "^1.0.10" + "@libp2p/webrtc-peer" "^1.0.6" + "@libp2p/webrtc-star-protocol" "^1.0.0" + "@multiformats/mafmt" "^11.0.2" + "@multiformats/multiaddr" "^10.1.7" + abortable-iterator "^4.0.2" + delay "^5.0.0" + err-code "^3.0.1" + iso-random-stream "^2.0.2" + it-pipe "^2.0.3" + it-pushable "^2.0.1" + multiformats "^9.6.3" + p-defer "^4.0.0" + p-event "^5.0.1" + socket.io-client "^4.1.2" + uint8arrays "^3.0.0" + +"@libp2p/websockets@^3.0.0": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@libp2p/websockets/-/websockets-3.0.2.tgz#633e44dd81d9c4f04e35321e0ce6b3d49eacd36a" + integrity sha512-hC8sNK7A8EkCkUaDMf56idAadoN1lteFpSsZo4GUKeYmClBpPf116tntIR4HN8SgnQ4ssPG6y9zkqGFcOtviCg== + dependencies: + "@libp2p/interface-connection" "^3.0.1" + "@libp2p/interface-transport" "^1.0.0" + "@libp2p/interfaces" "^3.0.1" + "@libp2p/logger" "^2.0.0" + "@libp2p/utils" "^3.0.0" + "@multiformats/mafmt" "^11.0.2" + "@multiformats/multiaddr" "^10.1.5" + "@multiformats/multiaddr-to-uri" "^9.0.0" + abortable-iterator "^4.0.2" + err-code "^3.0.1" + it-ws "^5.0.0" + p-defer "^4.0.0" + p-timeout "^6.0.0" + wherearewe "^1.0.0" + "@multiformats/base-x@^4.0.1": version "4.0.1" resolved "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz" integrity sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw== +"@multiformats/mafmt@^11.0.2": + version "11.0.2" + resolved "https://registry.yarnpkg.com/@multiformats/mafmt/-/mafmt-11.0.2.tgz#22a42ee2caa0f35835ab41d9ae766b61cee6d81b" + integrity sha512-KesMM4fSEpMz1kZPzlvdwYNYrq5iH38S5EDKLu5qsGG4NT94UaruTjase9osaDW+CcDfshK9uZUD9lzpXJGreA== + dependencies: + "@multiformats/multiaddr" "^10.1.1" + +"@multiformats/multiaddr-to-uri@^9.0.0", "@multiformats/multiaddr-to-uri@^9.0.1": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@multiformats/multiaddr-to-uri/-/multiaddr-to-uri-9.0.1.tgz#4e418c852a1aca868b6e36540a525892ee4060c5" + integrity sha512-kSyHZ2lKjoEzHu/TM4ZVwFj4AWV1B9qFBFJjYb/fK1NqrnrNb/M3uhoyckJvP7WZvpDsnEc7fUCpmPipDY6LMw== + dependencies: + "@multiformats/multiaddr" "^10.1.1" + +"@multiformats/multiaddr@^10.0.0", "@multiformats/multiaddr@^10.1.1", "@multiformats/multiaddr@^10.1.5", "@multiformats/multiaddr@^10.1.7", "@multiformats/multiaddr@^10.1.8", "@multiformats/multiaddr@^10.2.0", "@multiformats/multiaddr@^10.3.3": + version "10.3.3" + resolved "https://registry.yarnpkg.com/@multiformats/multiaddr/-/multiaddr-10.3.3.tgz#f0828d5c456427306e33d59ac69e401299d55760" + integrity sha512-+LX9RovG7DJsANb+U6VchV/tApcdJzeafbi5+MPUam90oL91BbEh6ozNZOz4Qf5ZEeilexc12oomatmODJh1/w== + dependencies: + dns-over-http-resolver "^2.1.0" + err-code "^3.0.1" + is-ip "^4.0.0" + multiformats "^9.4.5" + uint8arrays "^3.0.0" + varint "^6.0.0" + "@multiformats/murmur3@^1.0.3", "@multiformats/murmur3@^1.1.1": version "1.1.1" resolved "https://registry.npmjs.org/@multiformats/murmur3/-/murmur3-1.1.1.tgz" @@ -164,15 +1058,15 @@ multiformats "^9.5.4" murmurhash3js-revisited "^3.0.0" -"@noble/ed25519@^1.5.1": - version "1.6.0" - resolved "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.6.0.tgz" - integrity sha512-UKju89WV37IUALIMfKhKW3psO8AqmrE/GvH6QbPKjzolQ98zM7WmGUeY+xdIgSf5tqPFf75ZCYMgym6E9Jsw3Q== +"@noble/ed25519@^1.6.0": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-1.6.1.tgz#bad3e77008c7825a0859304ab8b4177703cd438d" + integrity sha512-Gptpue6qPmg7p1E5LBO5GDtXw5WMc2DVtUmu4EQequOcoCvum1dT9sY6s9M8aSJWq9YopCN4jmTOAvqMdw3q7w== -"@noble/secp256k1@^1.3.0": - version "1.5.5" - resolved "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.5.5.tgz" - integrity sha512-sZ1W6gQzYnu45wPrWx8D3kwI2/U29VYTx9OjbDAd7jwRItJ0cSTMPRL/C8AWZFn9kWFLQGqEXVEE86w4Z8LpIQ== +"@noble/secp256k1@^1.5.4": + version "1.6.3" + resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.6.3.tgz#7eed12d9f4404b416999d0c87686836c4c5c9b94" + integrity sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -394,13 +1288,6 @@ resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz" integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== -"@types/debug@^4.1.7": - version "4.1.7" - resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz" - integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== - dependencies: - "@types/ms" "*" - "@types/expect@^24.3.0": version "24.3.0" resolved "https://registry.npmjs.org/@types/expect/-/expect-24.3.0.tgz" @@ -432,6 +1319,11 @@ resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz" integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + "@types/long@^4.0.1": version "4.0.1" resolved "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz" @@ -447,19 +1339,19 @@ resolved "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.0.tgz" integrity sha512-QCWHkbMv4Y5U9oW10Uxbr45qMMSzl4OzijsozynUAgx3kEHUdXB00udx2dWDQ7f2TU2a2uuiFaRZjCe3unPpeg== -"@types/ms@*": - version "0.7.31" - resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz" - integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== - "@types/node@*", "@types/node@>=13.7.0", "@types/node@^17.0.10": version "17.0.23" resolved "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz" integrity sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw== -"@types/retry@^0.12.0": +"@types/node@^18.0.0": + version "18.7.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.6.tgz#31743bc5772b6ac223845e18c3fc26f042713c83" + integrity sha512-EdxgKRXgYsNITy5mjjXjVE/CS8YENSdhiagGrLqjG0pvA2owgJ6i4l7wy/PFZGC0B1/H20lWKN7ONVDNYDZm7A== + +"@types/retry@0.12.1": version "0.12.1" - resolved "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.1.tgz#d8f1c0d0dc23afad6dc16a9e993a0865774b4065" integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g== "@types/stack-utils@^2.0.0": @@ -607,12 +1499,33 @@ resolved "https://registry.npmjs.org/@vascosantos/moving-average/-/moving-average-1.1.0.tgz" integrity sha512-MVEJ4vWAPNbrGLjz7ITnHYg+YXZ6ijAqtH5/cHwSoCpbvuJ98aLXwFfPKAUfZpJMQR5uXB58UJajbY130IRF/w== -abortable-iterator@^3.0.0, abortable-iterator@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.2.tgz" - integrity sha512-qVP8HFfTpUQI2F+f1tpTriKDIZ4XrmwCrBCrQeRKO7DKWF3kgoT6NXiNDv2krrGcHxPwmI63eGQiec81sEaWIw== +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== dependencies: - get-iterator "^1.0.2" + event-target-shim "^5.0.0" + +abortable-iterator@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/abortable-iterator/-/abortable-iterator-4.0.2.tgz#aea6a4a6a696badcbad1c9fff5a9ca85f0f286a4" + integrity sha512-SJGELER5yXr9v3kiL6mT5RZ1qlyJ9hV4nm34+vfsdIM1lp3zENQvpsqKgykpFLgRMUn3lzlizLTpiOASW05/+g== + dependencies: + get-iterator "^2.0.0" + it-stream-types "^1.0.3" + +abstract-level@^1.0.2, abstract-level@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/abstract-level/-/abstract-level-1.0.3.tgz#78a67d3d84da55ee15201486ab44c09560070741" + integrity sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA== + dependencies: + buffer "^6.0.3" + catering "^2.1.0" + is-buffer "^2.0.5" + level-supports "^4.0.0" + level-transcoder "^1.0.1" + module-error "^1.0.1" + queue-microtask "^1.2.3" abstract-leveldown@^7.2.0: version "7.2.0" @@ -648,15 +1561,7 @@ agent-base@6: dependencies: debug "4" -aggregate-error@^3.0.0, aggregate-error@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4: +ajv@^6.10.0, ajv@^6.12.4: version "6.12.6" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -695,7 +1600,7 @@ ansi-styles@^5.0.0: resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -any-signal@^3.0.0: +any-signal@^3.0.0, any-signal@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/any-signal/-/any-signal-3.0.1.tgz" integrity sha512-xgZgJtKEa9YmDqXodIgl7Fl1C8yNXr8w6gXjqK3LW4GcEiYT+6AQfJSE/8SPsEpLLmcvbv8YU+qet94UewHxqg== @@ -723,27 +1628,20 @@ argparse@^2.0.1: resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -array-shuffle@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/array-shuffle/-/array-shuffle-2.0.0.tgz" - integrity sha512-rJTchCppiO6QsQnN51KDH1cgMYm13B+ybxFS5GgdBdTTHpZcrq3M7SOBgzp+L9fqqnjkFDiwdEVcX1wINgl9DQ== +array-shuffle@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/array-shuffle/-/array-shuffle-3.0.0.tgz#9a927cc2ca4c8ef4d71cddef7c9ee7b3b733d54b" + integrity sha512-rogEGxHOQPhslOhpg12LJkB+bbAl484/s2AJq0BxtzQDQfKl76fS2u9zWgg3p3b9ENcuvE7K8A7l5ddiPjCRnw== array-union@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -asn1@~0.2.3: - version "0.2.6" - resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= +arrify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== ast-module-types@^2.7.1: version "2.7.1" @@ -755,25 +1653,10 @@ ast-module-types@^3.0.0: resolved "https://registry.npmjs.org/ast-module-types/-/ast-module-types-3.0.0.tgz" integrity sha512-CMxMCOCS+4D+DkOQfuZf+vLrSEmY/7xtORwdxs4wtcC1wVgvk2MqFFTwQCFhvWsI4KPU9lcWXPI8DgRiz+xetQ== -async@^3.2.0: - version "3.2.3" - resolved "https://registry.npmjs.org/async/-/async-3.2.3.tgz" - integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== backo2@~1.0.2: version "1.0.2" @@ -790,18 +1673,6 @@ base64-js@^1.3.1: resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -bignumber.js@^9.0.1: - version "9.0.2" - resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz" - integrity sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw== - binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" @@ -837,9 +1708,9 @@ blob-to-it@^1.0.1: dependencies: browser-readablestream-to-it "^1.0.3" -blockstore-core@^1.0.0, blockstore-core@^1.0.2, blockstore-core@^1.0.5: +blockstore-core@^1.0.0: version "1.0.5" - resolved "https://registry.npmjs.org/blockstore-core/-/blockstore-core-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/blockstore-core/-/blockstore-core-1.0.5.tgz#2e34b6a7faae0d4b6c98dc8573c6f998eb457f36" integrity sha512-i/9CUMMvBALVbtSqUIuiWB3tk//a4Q2I2CEWiBuYNnhJvk/DWplXjLt8Sqc5VGkRVXVPSsEuH8fUtqJt5UFYcA== dependencies: err-code "^3.0.1" @@ -851,9 +1722,23 @@ blockstore-core@^1.0.0, blockstore-core@^1.0.2, blockstore-core@^1.0.5: it-take "^1.0.1" multiformats "^9.4.7" +blockstore-core@^2.0.0, blockstore-core@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/blockstore-core/-/blockstore-core-2.0.1.tgz#13064f3d32ff333374737990ce90b264b10e1181" + integrity sha512-YRT0Y6Qh4ebt3GFFbHn4rQS1VGjT0gEZX6w7ZCQjnX+iZdrVXob4/IoSCVfYxGePs7hi7xsov10Yh9sLvxBeFA== + dependencies: + err-code "^3.0.1" + interface-blockstore "^3.0.0" + interface-store "^3.0.0" + it-all "^1.0.4" + it-drain "^1.0.4" + it-filter "^1.0.2" + it-take "^1.0.1" + multiformats "^9.4.7" + blockstore-datastore-adapter@^2.0.2: version "2.0.3" - resolved "https://registry.npmjs.org/blockstore-datastore-adapter/-/blockstore-datastore-adapter-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/blockstore-datastore-adapter/-/blockstore-datastore-adapter-2.0.3.tgz#77f8d4c06126f7b154947e6130a4ec499b4a1929" integrity sha512-s6j6ay+qLu7sOx5DanHJlg2dBX61B9Yrbg6qo8oP3oiWnj6ZFCad4CKVb8do1f4u/Q4r2XPuSM4JYCe684USrQ== dependencies: blockstore-core "^1.0.0" @@ -864,6 +1749,19 @@ blockstore-datastore-adapter@^2.0.2: it-pushable "^1.4.2" multiformats "^9.1.0" +blockstore-datastore-adapter@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/blockstore-datastore-adapter/-/blockstore-datastore-adapter-3.0.1.tgz#7314c59abde2633e9a4cedcd9d0fe2b11d9648d4" + integrity sha512-mhYy0IAc0ORz6phIjbbmL78aW0Tfhy9hAIugKEOcZ9gC0E6CJinZRljgWP68HFZ7ia3jGVcqDNNP17J6x5mYug== + dependencies: + blockstore-core "^2.0.0" + err-code "^3.0.1" + interface-blockstore "^3.0.0" + interface-datastore "^7.0.0" + it-drain "^1.0.1" + it-pushable "^3.1.0" + multiformats "^9.1.0" + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" @@ -886,6 +1784,16 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" +browser-level@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browser-level/-/browser-level-1.0.1.tgz#36e8c3183d0fe1c405239792faaab5f315871011" + integrity sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ== + dependencies: + abstract-level "^1.0.2" + catering "^2.1.1" + module-error "^1.0.2" + run-parallel-limit "^1.1.0" + browser-readablestream-to-it@^1.0.1, browser-readablestream-to-it@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.3.tgz" @@ -901,6 +1809,11 @@ buffer-crc32@~0.2.3: resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= +buffer-from@^1.0.0, buffer-from@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + buffer@^5.2.1, buffer@^5.5.0: version "5.7.1" resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" @@ -917,11 +1830,26 @@ buffer@^6.0.1, buffer@^6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" +byte-access@^1.0.0, byte-access@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/byte-access/-/byte-access-1.0.1.tgz#84badd99be3671c03f0dd6a039a9c963983724af" + integrity sha512-GKYa+lvxnzhgHWj9X+LCsQ4s2/C5uvib573eAOiQKywXMkzFFErY2+yQdzmdE5iWVpmqecsRx3bOtOY4/1eINw== + dependencies: + uint8arraylist "^2.0.0" + bytes@^3.1.0: version "3.1.2" resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + callsites@^3.0.0: version "3.1.0" resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" @@ -932,12 +1860,7 @@ camelcase@^6.0.0: resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -catering@^2.0.0, catering@^2.1.0: +catering@^2.0.0, catering@^2.1.0, catering@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz" integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== @@ -999,15 +1922,16 @@ cids@^1.0.0, cids@^1.1.6: multihashes "^4.0.1" uint8arrays "^3.0.0" -class-is@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz" - integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== +classic-level@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/classic-level/-/classic-level-1.2.0.tgz#2d52bdec8e7a27f534e67fdeb890abef3e643c27" + integrity sha512-qw5B31ANxSluWz9xBzklRWTUAJ1SXIdaVKTVS7HcTGKOAmExx65Wo5BUICW+YGORe2FOUaDghoI9ZDxj82QcFg== + dependencies: + abstract-level "^1.0.2" + catering "^2.1.0" + module-error "^1.0.1" + napi-macros "~2.0.0" + node-gyp-build "^4.3.0" cli-cursor@^3.1.0: version "3.1.0" @@ -1059,13 +1983,6 @@ color-name@^1.1.4, color-name@~1.1.4: resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - commander@^2.16.0, commander@^2.20.3, commander@^2.8.1: version "2.20.3" resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" @@ -1086,10 +2003,23 @@ concat-map@0.0.1: resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= +copyfiles@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/copyfiles/-/copyfiles-2.4.1.tgz#d2dcff60aaad1015f09d0b66e7f0f1c5cd3c5da5" + integrity sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg== + dependencies: + glob "^7.0.5" + minimatch "^3.0.3" + mkdirp "^1.0.4" + noms "0.0.0" + through2 "^2.0.1" + untildify "^4.0.0" + yargs "^16.1.0" + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== create-require@^1.1.0: version "1.1.1" @@ -1125,12 +2055,13 @@ dag-jose@^1.0.0: "@ipld/dag-cbor" "^6.0.3" multiformats "^9.0.2" -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= +dag-jose@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/dag-jose/-/dag-jose-2.0.1.tgz#802e3fd159af3ba39a042df09ba3a14bbc63306c" + integrity sha512-1jCSAWOJ7oHl4A3xGQEERCl2IqqFZJYp4qnmzBbh2vifQx0ZGTtSxDR68MStjLjADvaqYgWI7a73wre5GFqVrA== dependencies: - assert-plus "^1.0.0" + "@ipld/dag-cbor" "^7.0.1" + multiformats "^9.6.4" datastore-core@^7.0.0: version "7.0.1" @@ -1149,6 +2080,24 @@ datastore-core@^7.0.0: it-take "^1.0.1" uint8arrays "^3.0.0" +datastore-core@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/datastore-core/-/datastore-core-8.0.1.tgz#13dc8496b1cc756a481fa77031715b8b50b19860" + integrity sha512-FSzrX8fsYUfbA1dq2DvVr9+CYMRAVDKSVe+wGY+Ipiv7ikUDpZZI0htC/o6Fbg0yDxiGDXGOmEIsS5RBb5NchQ== + dependencies: + "@libp2p/logger" "^2.0.0" + err-code "^3.0.1" + interface-datastore "^7.0.0" + it-all "^1.0.4" + it-drain "^1.0.4" + it-filter "^1.0.2" + it-map "^1.0.5" + it-merge "^1.0.1" + it-pipe "^2.0.3" + it-pushable "^3.0.0" + it-take "^1.0.1" + uint8arrays "^3.0.0" + datastore-fs@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/datastore-fs/-/datastore-fs-7.0.0.tgz" @@ -1173,20 +2122,38 @@ datastore-level@^8.0.0: it-map "^1.0.5" it-sort "^1.0.0" it-take "^1.0.1" - level "^7.0.0" + level "^7.0.0" + +datastore-level@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/datastore-level/-/datastore-level-9.0.1.tgz#fab1748abe20ee3ee8dbbe37c1b0469587a26387" + integrity sha512-U23xpjtItZFCqYUNDYo7++vNI7f5/JUeedJOPxm+hyqR4TneDx9TPpuLGZRrehkaJ5v2kwfYiep0P8wyfI+clg== + dependencies: + abstract-level "^1.0.3" + datastore-core "^8.0.1" + interface-datastore "^7.0.0" + it-filter "^1.0.2" + it-map "^1.0.5" + it-sort "^1.0.0" + it-take "^1.0.1" + level "^8.0.0" -datastore-pubsub@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/datastore-pubsub/-/datastore-pubsub-2.0.0.tgz" - integrity sha512-O82UuFRo70YT3PZPj7s2pJR0ins1AWE2W3GZi/TAdlIQorTNbLNmrkSQPclY3s8sJHuba+szqqLbzr6aCBiglg== - dependencies: - datastore-core "^7.0.0" +datastore-pubsub@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/datastore-pubsub/-/datastore-pubsub-4.0.2.tgz#f3c05e15c43cab4487f5b625b788099c4424a587" + integrity sha512-kgMWbi99JTTaEh24ccyOvBcVTLxXGD7wr330KelknkYuDk3dMrGzA8gbCrJiOucFmWcJ7EXDD7OwVvv4Nw+s0Q== + dependencies: + "@libp2p/interface-dht" "^1.0.1" + "@libp2p/interface-pubsub" "^2.0.1" + "@libp2p/interfaces" "^3.0.3" + "@libp2p/logger" "^2.0.0" + datastore-core "^8.0.1" debug "^4.2.0" err-code "^3.0.1" - interface-datastore "^6.0.2" + interface-datastore "^7.0.0" uint8arrays "^3.0.0" -debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@~4.3.1, debug@~4.3.2: +debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@~4.3.1, debug@~4.3.2: version "4.3.4" resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -1237,10 +2204,18 @@ deferred-leveldown@^7.0.0: abstract-leveldown "^7.2.0" inherits "^2.0.3" -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= +define-properties@^1.1.3, define-properties@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +delay@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" + integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== denque@^1.5.0: version "1.5.1" @@ -1357,6 +2332,11 @@ diff@5.0.0: resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== +diff@^3.1.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== + diff@^4.0.1: version "4.0.2" resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" @@ -1383,6 +2363,15 @@ dns-over-http-resolver@^1.2.3: native-fetch "^3.0.0" receptacle "^1.3.2" +dns-over-http-resolver@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/dns-over-http-resolver/-/dns-over-http-resolver-2.1.0.tgz#e3f13182b46b60e0be2473f3fbfc4ec5bbfb9539" + integrity sha512-eb8RGy6k54JdD7Rjw8g65y1MyA4z3m3IIYh7uazkgZuKIdFn8gYt8dydMm3op+2UshDdk9EexrXcDluKNY/CDg== + dependencies: + debug "^4.3.1" + native-fetch "^4.0.2" + receptacle "^1.3.2" + dns-packet@^5.2.2: version "5.3.1" resolved "https://registry.npmjs.org/dns-packet/-/dns-packet-5.3.1.tgz" @@ -1397,14 +2386,6 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - electron-fetch@^1.7.2: version "1.7.4" resolved "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.4.tgz" @@ -1471,146 +2452,175 @@ enhanced-resolve@^5.8.3: graceful-fs "^4.2.4" tapable "^2.2.0" -err-code@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz" - integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== - err-code@^3.0.0, err-code@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz" integrity sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA== -es6-promisify@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/es6-promisify/-/es6-promisify-7.0.0.tgz" - integrity sha512-ginqzK3J90Rd4/Yz7qRrqUeIpe3TwSXTPPZtPne7tGBPeAaQiU8qt4fpKApnxHcq1AwtUdHVg5P77x/yrggG8Q== - -esbuild-android-64@0.14.34: - version "0.14.34" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.34.tgz#46bc4327dd0809937912346244eaffdb9bfc980d" - integrity sha512-XfxcfJqmMYsT/LXqrptzFxmaR3GWzXHDLdFNIhm6S00zPaQF1TBBWm+9t0RZ6LRR7iwH57DPjaOeW20vMqI4Yw== - -esbuild-android-arm64@0.14.34: - version "0.14.34" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.34.tgz#a3f7e1ad84b8a7dcb39b5e132768b56ee7133656" - integrity sha512-T02+NXTmSRL1Mc6puz+R9CB54rSPICkXKq6+tw8B6vxZFnCPzbJxgwIX4kcluz9p8nYBjF3+lSilTGWb7+Xgew== - -esbuild-darwin-64@0.14.34: - version "0.14.34" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.34.tgz#a0e4ab7a0cddf76761f1fb5d6bf552a376beb16e" - integrity sha512-pLRip2Bh4Ng7Bf6AMgCrSp3pPe/qZyf11h5Qo2mOfJqLWzSVjxrXW+CFRJfrOVP7TCnh/gmZSM2AFdCPB72vtw== - -esbuild-darwin-arm64@0.14.34: - version "0.14.34" - resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.34.tgz" - integrity sha512-vpidSJEBxx6lf1NWgXC+DCmGqesJuZ5Y8aQVVsaoO4i8tRXbXb0whChRvop/zd3nfNM4dIl5EXAky0knRX5I6w== - -esbuild-freebsd-64@0.14.34: - version "0.14.34" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.34.tgz#aebb50248f5874d04ffeab2db8ee1ed6037e2654" - integrity sha512-m0HBjePhe0hAQJgtMRMNV9kMgIyV4/qSnzPx42kRMQBcPhgjAq1JRu4Il26czC+9FgpMbFkUktb07f/Lwnc6CA== - -esbuild-freebsd-arm64@0.14.34: - version "0.14.34" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.34.tgz#09bef288e29f18b38b0c70a9827b6ee718e36c7f" - integrity sha512-cpRc2B94L1KvMPPYB4D6G39jLqpKlD3noAMY4/e86iXXXkhUYJJEtTuyNFTa9JRpWM0xCAp4mxjHjoIiLuoCLA== - -esbuild-linux-32@0.14.34: - version "0.14.34" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.34.tgz#67790061758e008e919e65bbc34549f55dadaca7" - integrity sha512-8nQaEaoW7MH/K/RlozJa+lE1ejHIr8fuPIHhc513UebRav7HtXgQvxHQ6VZRUkWtep23M6dd7UqhwO1tMOfzQQ== - -esbuild-linux-64@0.14.34: - version "0.14.34" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.34.tgz#b9b19d4ac07e37495dd2508ec843418aa71c98d6" - integrity sha512-Y3of4qQoLLlAgf042MlrY1P+7PnN9zWj8nVtw9XQG5hcLOZLz7IKpU35oeu7n4wvyaZHwvQqDJ93gRLqdJekcQ== - -esbuild-linux-arm64@0.14.34: - version "0.14.34" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.34.tgz#fd84b11a6ccfe9e83e00d0c45890e9fb3a7248c1" - integrity sha512-IlWaGtj9ir7+Nrume1DGcyzBDlK8GcnJq0ANKwcI9pVw8tqr+6GD0eqyF9SF1mR8UmAp+odrx1H5NdR2cHdFHA== - -esbuild-linux-arm@0.14.34: - version "0.14.34" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.34.tgz#c89d4714b05265a315a97c8933508cc73950e683" - integrity sha512-9lpq1NcJqssAF7alCO6zL3gvBVVt/lKw4oetUM7OgNnRX0OWpB+ZIO9FwCrSj/dMdmgDhPLf+119zB8QxSMmAg== - -esbuild-linux-mips64le@0.14.34: - version "0.14.34" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.34.tgz#d60752c3fb1260dd0737532af2de2a9521656456" - integrity sha512-k3or+01Rska1AjUyNjA4buEwB51eyN/xPQAoOx1CjzAQC3l8rpjUDw55kXyL63O/1MUi4ISvtNtl8gLwdyEcxw== - -esbuild-linux-ppc64le@0.14.34: - version "0.14.34" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.34.tgz#f4c6229269956564f0c6f9825f5e717c2cfc22b3" - integrity sha512-+qxb8M9FfM2CJaVU7GgYpJOHM1ngQOx+/VrtBjb4C8oVqaPcESCeg2anjl+HRZy8VpYc71q/iBYausPPbJ+Keg== - -esbuild-linux-riscv64@0.14.34: - version "0.14.34" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.34.tgz#549bd18a9eba3135b67f7b742730b5343a1be35d" - integrity sha512-Y717ltBdQ5j5sZIHdy1DV9kieo0wMip0dCmVSTceowCPYSn1Cg33Kd6981+F/3b9FDMzNWldZFOBRILViENZSA== - -esbuild-linux-s390x@0.14.34: - version "0.14.34" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.34.tgz#2a6b577c437f94c2b37623c755ff5215a05c12bc" - integrity sha512-bDDgYO4LhL4+zPs+WcBkXph+AQoPcQRTv18FzZS0WhjfH8TZx2QqlVPGhmhZ6WidrY+jKthUqO6UhGyIb4MpmA== - -esbuild-netbsd-64@0.14.34: - version "0.14.34" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.34.tgz#7f0b73229157975eb35597207723df52ba21722a" - integrity sha512-cfaFGXdRt0+vHsjNPyF0POM4BVSHPSbhLPe8mppDc7GDDxjIl08mV1Zou14oDWMp/XZMjYN1kWYRSfftiD0vvQ== - -esbuild-openbsd-64@0.14.34: - version "0.14.34" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.34.tgz#b9bc44b4f70031fb01b173b279daeffc4d4f54b7" - integrity sha512-vmy9DxXVnRiI14s8GKuYBtess+EVcDALkbpTqd5jw4XITutIzyB7n4x0Tj5utAkKsgZJB22lLWGekr0ABnSLow== - -esbuild-sunos-64@0.14.34: - version "0.14.34" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.34.tgz#512dd6085ac1a0dccc20c5f932f16a618bea409c" - integrity sha512-eNPVatNET1F7tRMhii7goL/eptfxc0ALRjrj9SPFNqp0zmxrehBFD6BaP3R4LjMn6DbMO0jOAnTLFKr8NqcJAA== - -esbuild-windows-32@0.14.34: - version "0.14.34" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.34.tgz#3ff1afd5cac08050c7c7140a59e343b06f6b037c" - integrity sha512-EFhpXyHEcnqWYe2rAHFd8dRw8wkrd9U+9oqcyoEL84GbanAYjiiIjBZsnR8kl0sCQ5w6bLpk7vCEIA2VS32Vcg== - -esbuild-windows-64@0.14.34: - version "0.14.34" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.34.tgz#66f7b43d2a0b132f6748dfa3edac4fc939a99be0" - integrity sha512-a8fbl8Ky7PxNEjf1aJmtxdDZj32/hC7S1OcA2ckEpCJRTjiKslI9vAdPpSjrKIWhws4Galpaawy0nB7fjHYf5Q== - -esbuild-windows-arm64@0.14.34: - version "0.14.34" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.34.tgz#b74a6395b7b7e53dba70b71b39542afd83352473" - integrity sha512-EYvmKbSa2B3sPnpC28UEu9jBK5atGV4BaVRE7CYGUci2Hlz4AvtV/LML+TcDMT6gBgibnN2gcltWclab3UutMg== - -esbuild@^0.14.11: - version "0.14.34" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.14.34.tgz" - integrity sha512-QIWdPT/gFF6hCaf4m7kP0cJ+JIuFkdHibI7vVFvu3eJS1HpVmYHWDulyN5WXwbRA0SX/7ZDaJ/1DH8SdY9xOJg== +es-abstract@^1.19.0, es-abstract@^1.19.5, es-abstract@^1.20.0: + version "1.20.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814" + integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.1.1" + get-symbol-description "^1.0.0" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + is-callable "^1.2.4" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-weakref "^1.0.2" + object-inspect "^1.12.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + regexp.prototype.flags "^1.4.3" + string.prototype.trimend "^1.0.5" + string.prototype.trimstart "^1.0.5" + unbox-primitive "^1.0.2" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +esbuild-android-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.5.tgz#3c7b2f2a59017dab3f2c0356188a8dd9cbdc91c8" + integrity sha512-dYPPkiGNskvZqmIK29OPxolyY3tp+c47+Fsc2WYSOVjEPWNCHNyqhtFqQadcXMJDQt8eN0NMDukbyQgFcHquXg== + +esbuild-android-arm64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.5.tgz#e301db818c5a67b786bf3bb7320e414ac0fcf193" + integrity sha512-YyEkaQl08ze3cBzI/4Cm1S+rVh8HMOpCdq8B78JLbNFHhzi4NixVN93xDrHZLztlocEYqi45rHHCgA8kZFidFg== + +esbuild-darwin-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.5.tgz#11726de5d0bf5960b92421ef433e35871c091f8d" + integrity sha512-Cr0iIqnWKx3ZTvDUAzG0H/u9dWjLE4c2gTtRLz4pqOBGjfjqdcZSfAObFzKTInLLSmD0ZV1I/mshhPoYSBMMCQ== + +esbuild-darwin-arm64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.5.tgz#ad89dafebb3613fd374f5a245bb0ce4132413997" + integrity sha512-WIfQkocGtFrz7vCu44ypY5YmiFXpsxvz2xqwe688jFfSVCnUsCn2qkEVDo7gT8EpsLOz1J/OmqjExePL1dr1Kg== + +esbuild-freebsd-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.5.tgz#6bfb52b4a0d29c965aa833e04126e95173289c8a" + integrity sha512-M5/EfzV2RsMd/wqwR18CELcenZ8+fFxQAAEO7TJKDmP3knhWSbD72ILzrXFMMwshlPAS1ShCZ90jsxkm+8FlaA== + +esbuild-freebsd-arm64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.5.tgz#38a3fed8c6398072f9914856c7c3e3444f9ef4dd" + integrity sha512-2JQQ5Qs9J0440F/n/aUBNvY6lTo4XP/4lt1TwDfHuo0DY3w5++anw+jTjfouLzbJmFFiwmX7SmUhMnysocx96w== + +esbuild-linux-32@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.5.tgz#942dc70127f0c0a7ea91111baf2806e61fc81b32" + integrity sha512-gO9vNnIN0FTUGjvTFucIXtBSr1Woymmx/aHQtuU+2OllGU6YFLs99960UD4Dib1kFovVgs59MTXwpFdVoSMZoQ== + +esbuild-linux-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.5.tgz#6d748564492d5daaa7e62420862c31ac3a44aed9" + integrity sha512-ne0GFdNLsm4veXbTnYAWjbx3shpNKZJUd6XpNbKNUZaNllDZfYQt0/zRqOg0sc7O8GQ+PjSMv9IpIEULXVTVmg== + +esbuild-linux-arm64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.5.tgz#28cd899beb2d2b0a3870fd44f4526835089a318d" + integrity sha512-7EgFyP2zjO065XTfdCxiXVEk+f83RQ1JsryN1X/VSX2li9rnHAt2swRbpoz5Vlrl6qjHrCmq5b6yxD13z6RheA== + +esbuild-linux-arm@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.5.tgz#6441c256225564d8794fdef5b0a69bc1a43051b5" + integrity sha512-wvAoHEN+gJ/22gnvhZnS/+2H14HyAxM07m59RSLn3iXrQsdS518jnEWRBnJz3fR6BJa+VUTo0NxYjGaNt7RA7Q== + +esbuild-linux-mips64le@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.5.tgz#d4927f817290eaffc062446896b2a553f0e11981" + integrity sha512-KdnSkHxWrJ6Y40ABu+ipTZeRhFtc8dowGyFsZY5prsmMSr1ZTG9zQawguN4/tunJ0wy3+kD54GaGwdcpwWAvZQ== + +esbuild-linux-ppc64le@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.5.tgz#b6d660dc6d5295f89ac51c675f1a2f639e2fb474" + integrity sha512-QdRHGeZ2ykl5P0KRmfGBZIHmqcwIsUKWmmpZTOq573jRWwmpfRmS7xOhmDHBj9pxv+6qRMH8tLr2fe+ZKQvCYw== + +esbuild-linux-riscv64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.5.tgz#2801bf18414dc3d3ad58d1ea83084f00d9d84896" + integrity sha512-p+WE6RX+jNILsf+exR29DwgV6B73khEQV0qWUbzxaycxawZ8NE0wA6HnnTxbiw5f4Gx9sJDUBemh9v49lKOORA== + +esbuild-linux-s390x@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.5.tgz#12a634ae6d3384cacc2b8f4201047deafe596eae" + integrity sha512-J2ngOB4cNzmqLHh6TYMM/ips8aoZIuzxJnDdWutBw5482jGXiOzsPoEF4j2WJ2mGnm7FBCO4StGcwzOgic70JQ== + +esbuild-netbsd-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.5.tgz#951bbf87600512dfcfbe3b8d9d117d684d26c1b8" + integrity sha512-MmKUYGDizYjFia0Rwt8oOgmiFH7zaYlsoQ3tIOfPxOqLssAsEgG0MUdRDm5lliqjiuoog8LyDu9srQk5YwWF3w== + +esbuild-openbsd-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.5.tgz#26705b61961d525d79a772232e8b8f211fdbb035" + integrity sha512-2mMFfkLk3oPWfopA9Plj4hyhqHNuGyp5KQyTT9Rc8hFd8wAn5ZrbJg+gNcLMo2yzf8Uiu0RT6G9B15YN9WQyMA== + +esbuild-sunos-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.5.tgz#d794da1ae60e6e2f6194c44d7b3c66bf66c7a141" + integrity sha512-2sIzhMUfLNoD+rdmV6AacilCHSxZIoGAU2oT7XmJ0lXcZWnCvCtObvO6D4puxX9YRE97GodciRGDLBaiC6x1SA== + +esbuild-windows-32@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.5.tgz#0670326903f421424be86bc03b7f7b3ff86a9db7" + integrity sha512-e+duNED9UBop7Vnlap6XKedA/53lIi12xv2ebeNS4gFmu7aKyTrok7DPIZyU5w/ftHD4MUDs5PJUkQPP9xJRzg== + +esbuild-windows-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.5.tgz#64f32acb7341f3f0a4d10e8ff1998c2d1ebfc0a9" + integrity sha512-v+PjvNtSASHOjPDMIai9Yi+aP+Vwox+3WVdg2JB8N9aivJ7lyhp4NVU+J0MV2OkWFPnVO8AE/7xH+72ibUUEnw== + +esbuild-windows-arm64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.5.tgz#4fe7f333ce22a922906b10233c62171673a3854b" + integrity sha512-Yz8w/D8CUPYstvVQujByu6mlf48lKmXkq6bkeSZZxTA626efQOJb26aDGLzmFWx6eg/FwrXgt6SZs9V8Pwy/aA== + +esbuild@^0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.5.tgz#5effd05666f621d4ff2fe2c76a67c198292193ff" + integrity sha512-VSf6S1QVqvxfIsSKb3UKr3VhUCis7wgDbtF4Vd9z84UJr05/Sp2fRKmzC+CSPG/dNAPPJZ0BTBLTT1Fhd6N9Gg== optionalDependencies: - esbuild-android-64 "0.14.34" - esbuild-android-arm64 "0.14.34" - esbuild-darwin-64 "0.14.34" - esbuild-darwin-arm64 "0.14.34" - esbuild-freebsd-64 "0.14.34" - esbuild-freebsd-arm64 "0.14.34" - esbuild-linux-32 "0.14.34" - esbuild-linux-64 "0.14.34" - esbuild-linux-arm "0.14.34" - esbuild-linux-arm64 "0.14.34" - esbuild-linux-mips64le "0.14.34" - esbuild-linux-ppc64le "0.14.34" - esbuild-linux-riscv64 "0.14.34" - esbuild-linux-s390x "0.14.34" - esbuild-netbsd-64 "0.14.34" - esbuild-openbsd-64 "0.14.34" - esbuild-sunos-64 "0.14.34" - esbuild-windows-32 "0.14.34" - esbuild-windows-64 "0.14.34" - esbuild-windows-arm64 "0.14.34" + "@esbuild/linux-loong64" "0.15.5" + esbuild-android-64 "0.15.5" + esbuild-android-arm64 "0.15.5" + esbuild-darwin-64 "0.15.5" + esbuild-darwin-arm64 "0.15.5" + esbuild-freebsd-64 "0.15.5" + esbuild-freebsd-arm64 "0.15.5" + esbuild-linux-32 "0.15.5" + esbuild-linux-64 "0.15.5" + esbuild-linux-arm "0.15.5" + esbuild-linux-arm64 "0.15.5" + esbuild-linux-mips64le "0.15.5" + esbuild-linux-ppc64le "0.15.5" + esbuild-linux-riscv64 "0.15.5" + esbuild-linux-s390x "0.15.5" + esbuild-netbsd-64 "0.15.5" + esbuild-openbsd-64 "0.15.5" + esbuild-sunos-64 "0.15.5" + esbuild-windows-32 "0.15.5" + esbuild-windows-64 "0.15.5" + esbuild-windows-arm64 "0.15.5" escalade@^3.1.1: version "3.1.1" @@ -1766,14 +2776,19 @@ event-iterator@^2.0.0: resolved "https://registry.npmjs.org/event-iterator/-/event-iterator-2.0.0.tgz" integrity sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ== -eventemitter3@^4.0.4: +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + +eventemitter3@^4.0.4, eventemitter3@^4.0.7: version "4.0.7" resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== events@^3.3.0: version "3.3.0" - resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== execa@^5.0.0: @@ -1801,11 +2816,6 @@ expect@*, expect@^27.4.6: jest-matcher-utils "^27.5.1" jest-message-util "^27.5.1" -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - extract-zip@2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz" @@ -1817,11 +2827,6 @@ extract-zip@2.0.1: optionalDependencies: "@types/yauzl" "^2.9.1" -extsprintf@1.3.0, extsprintf@^1.2.0: - version "1.3.0" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - fast-check@^2.21.0: version "2.24.0" resolved "https://registry.npmjs.org/fast-check/-/fast-check-2.24.0.tgz" @@ -1839,7 +2844,7 @@ fast-fifo@^1.0.0: resolved "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.1.0.tgz" integrity sha512-Kl29QoNbNvn4nhDsLYjyIAaIqaJB6rBx5p3sL9VjaefJ+eMFBWVZiaoguaoZfzEKr5RhAti0UgM8703akGPJ6g== -fast-glob@^3.2.9: +fast-glob@^3.2.11, fast-glob@^3.2.9: version "3.2.11" resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz" integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== @@ -1969,19 +2974,17 @@ fnv1a@^1.0.1: resolved "https://registry.npmjs.org/fnv1a/-/fnv1a-1.1.1.tgz" integrity sha512-S2HviLR9UyNbt8R+vU6YeQtL8RliPwez9DQEVba5MAvN3Od+RSgKUSL2+qveOMt3owIeBukKoRu2enoOck5uag== -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" + is-callable "^1.1.3" + +freeport-promise@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/freeport-promise/-/freeport-promise-2.0.0.tgz#11e4f81e24d680b88a20c15b2103551f4b6663d8" + integrity sha512-dwWpT1DdQcwrhmRwnDnPM/ZFny+FtzU+k50qF2eid3KxaQDsMiBrwo1i0G3qSugkN5db6Cb0zgfc68QeTOpEFg== fs-constants@^1.0.0: version "1.0.0" @@ -2003,11 +3006,26 @@ function-bind@^1.1.1: resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= +functions-have-names@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + get-amd-module-type@^3.0.0: version "3.0.2" resolved "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-3.0.2.tgz" @@ -2016,21 +3034,30 @@ get-amd-module-type@^3.0.0: ast-module-types "^3.0.0" node-source-walk "^4.2.2" -get-browser-rtc@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/get-browser-rtc/-/get-browser-rtc-1.1.0.tgz" - integrity sha512-MghbMJ61EJrRsDe7w1Bvqt3ZsBuqhce5nrn/XAwgwOXhcsz53/ltdxOse1h/8eKXj5slzxdsz56g5rzOFSGwfQ== - get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" + integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + get-iterator@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz" integrity sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg== +get-iterator@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-iterator/-/get-iterator-2.0.0.tgz#c9ac9f8002e5d8d6b4dc9dae07c30945022a58c1" + integrity sha512-BDJawD5PU2gZv6Vlp8O28H4GnZcsr3h9gZUvnAP5xXP3WOy/QAoOsyMepSkw21jur+4t5Vppde72ChjhTIzxzg== + get-own-enumerable-property-symbols@^3.0.0: version "3.0.2" resolved "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz" @@ -2048,12 +3075,13 @@ get-stream@^6.0.0: resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== dependencies: - assert-plus "^1.0.0" + call-bind "^1.0.2" + get-intrinsic "^1.1.1" glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" @@ -2081,6 +3109,18 @@ glob@7.2.0, glob@^7.1.3, glob@^7.1.6, glob@^7.2.0: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^7.0.5: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + globals@^13.6.0, globals@^13.9.0: version "13.13.0" resolved "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz" @@ -2100,6 +3140,17 @@ globby@^11.0.3, globby@^11.0.4: merge2 "^1.4.1" slash "^3.0.0" +globby@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.2.tgz#29047105582427ab6eca4f905200667b056da515" + integrity sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ== + dependencies: + dir-glob "^3.0.1" + fast-glob "^3.2.11" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^4.0.0" + gonzales-pe@^4.2.3, gonzales-pe@^4.3.0: version "4.3.0" resolved "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz" @@ -2124,26 +3175,18 @@ growl@1.10.5: resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz" integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== -hamt-sharding@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/hamt-sharding/-/hamt-sharding-2.0.1.tgz" - integrity sha512-vnjrmdXG9dDs1m/H4iJ6z0JFI2NtgsW5keRkTcM85NGak69Mkf5PHUqBz+Xs0T4sg0ppvj9O5EGAJo40FTxmmA== +hamt-sharding@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/hamt-sharding/-/hamt-sharding-3.0.1.tgz#ed840993d32520f8771d4b7ad97f54e1c2260e72" + integrity sha512-FHwY0686xg+GyM0TScJ0N62pROKv3QxkXmTPcdJnFNbBKCN9Bl6FemUuFRvpK9JdXHg8erfcFMmupDwvprCYfQ== dependencies: sparse-array "^1.3.1" uint8arrays "^3.0.0" -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== has-cors@1.1.0: version "1.1.0" @@ -2160,6 +3203,25 @@ has-flag@^4.0.0: resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + has@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" @@ -2177,15 +3239,6 @@ he@1.2.0: resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - https-proxy-agent@5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz" @@ -2234,11 +3287,6 @@ imurmurhash@^0.1.4: resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - indexes-of@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz" @@ -2252,7 +3300,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.3, inherits@^2.0.4: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -2262,19 +3310,6 @@ ini@~1.3.0: resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -interface-blockstore@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/interface-blockstore/-/interface-blockstore-1.0.2.tgz" - integrity sha512-e8rHqaBSOsBPpSaB+wwVa9mR5ntU+t1yzXpOFC16cSKCNsV+h6n8SjekPQcdODVBN2h8t45CsOqRAnUfm1guEw== - dependencies: - err-code "^3.0.1" - interface-store "^1.0.2" - it-all "^1.0.5" - it-drain "^1.0.4" - it-filter "^1.0.2" - it-take "^1.0.1" - multiformats "^9.0.4" - interface-blockstore@^2.0.2: version "2.0.3" resolved "https://registry.npmjs.org/interface-blockstore/-/interface-blockstore-2.0.3.tgz" @@ -2283,6 +3318,14 @@ interface-blockstore@^2.0.2: interface-store "^2.0.2" multiformats "^9.0.4" +interface-blockstore@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/interface-blockstore/-/interface-blockstore-3.0.0.tgz#bcc4cfa5cabad26288d31ce027c1ce03a21760e7" + integrity sha512-D2f0/J4EK/if130XC5diOJLYBpz6PnEmHweQt8UxvSl3Ajf8WBuWZ6bN306GytQXoVNnYHd9PmSVKZTN3NXGWQ== + dependencies: + interface-store "^3.0.0" + multiformats "^9.1.0" + interface-datastore@^6.0.2: version "6.1.0" resolved "https://registry.npmjs.org/interface-datastore/-/interface-datastore-6.1.0.tgz" @@ -2292,6 +3335,24 @@ interface-datastore@^6.0.2: nanoid "^3.0.2" uint8arrays "^3.0.0" +interface-datastore@^6.1.0, interface-datastore@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-6.1.1.tgz#5150a00de2e7513eaadba58bcafd059cb50004c1" + integrity sha512-AmCS+9CT34pp2u0QQVXjKztkuq3y5T+BIciuiHDDtDZucZD8VudosnSdUyXJV6IsRkN5jc4RFDhCk1O6Q3Gxjg== + dependencies: + interface-store "^2.0.2" + nanoid "^3.0.2" + uint8arrays "^3.0.0" + +interface-datastore@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-7.0.0.tgz#d89ff1faf0ae775e2b64fb0ef0c801470ef5b959" + integrity sha512-q9OveOhexQ3Fx8h4YbuR4mZtUHwvlOynKnIwTm6x8oBTWfIyAKtlYtrOYdlHfqQztbYpdzRFcapopNJBMx36NQ== + dependencies: + interface-store "^3.0.0" + nanoid "^3.0.2" + uint8arrays "^3.0.0" + interface-ipld-format@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/interface-ipld-format/-/interface-ipld-format-1.0.1.tgz" @@ -2301,241 +3362,251 @@ interface-ipld-format@^1.0.0: multicodec "^3.0.1" multihashes "^4.0.2" -interface-store@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/interface-store/-/interface-store-1.0.2.tgz" - integrity sha512-rUBLYsgoWwxuUpnQoSUr+DR/3dH3reVeIu5aOHFZK31lAexmb++kR6ZECNRgrx6WvoaM3Akdo0A7TDrqgCzZaQ== - interface-store@^2.0.1, interface-store@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/interface-store/-/interface-store-2.0.2.tgz" integrity sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg== -ip-address@^8.0.0: - version "8.1.0" - resolved "https://registry.npmjs.org/ip-address/-/ip-address-8.1.0.tgz" - integrity sha512-Wz91gZKpNKoXtqvY8ScarKYwhXoK4r/b5QuT+uywe/azv0/nUCo7Bh0IRRI7F9DHR06kJNWtzMGLIbXavngbKA== +interface-store@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/interface-store/-/interface-store-3.0.0.tgz#63649bb679397060331fd16ecf305541768783a4" + integrity sha512-IBJn3hE6hYutwdDcStR76mcwfV98vZc49LkEN9ANHHpsxcm6YbGMJxowO2G3FITU4U5ZH4KJPlHOT6Oe2vzTWA== + +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== dependencies: - jsbn "1.1.0" - sprintf-js "1.1.2" + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" ip-regex@^4.0.0, ip-regex@^4.3.0: version "4.3.0" resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz" integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== +ip-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-5.0.0.tgz#cd313b2ae9c80c07bd3851e12bf4fa4dc5480632" + integrity sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw== + ipaddr.js@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz" integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== -ipfs-bitswap@^10.0.1: - version "10.0.2" - resolved "https://registry.npmjs.org/ipfs-bitswap/-/ipfs-bitswap-10.0.2.tgz" - integrity sha512-RY/89aUD3+EQF58iXPqJ+a9N6BUE0umPoRms75qgPL304OQMxCqmsHL3lO09fRO8qpQABbP2ng1nMjHELrAW/g== - dependencies: +ipfs-bitswap@^12.0.3: + version "12.0.4" + resolved "https://registry.yarnpkg.com/ipfs-bitswap/-/ipfs-bitswap-12.0.4.tgz#06aec5ba37161161b8e9c066e120410cbdd7a884" + integrity sha512-P5jieW+oYihC+pXAO0xtpWcPK4Dyezc7pklW1wBY2kY2ViXp/1xGfZMATVXo2BnwKhx5ADRdioVGBWbhZOSyyA== + dependencies: + "@libp2p/interface-connection" "^3.0.1" + "@libp2p/interface-peer-id" "^1.0.4" + "@libp2p/interface-peer-store" "^1.2.0" + "@libp2p/topology" "^3.0.0" + "@libp2p/tracked-map" "^2.0.0" + "@multiformats/multiaddr" "^10.1.8" "@vascosantos/moving-average" "^1.1.0" + abortable-iterator "^4.0.2" any-signal "^3.0.0" - blockstore-core "^1.0.2" + blockstore-core "^2.0.1" debug "^4.2.0" err-code "^3.0.1" - interface-blockstore "^2.0.2" - it-length-prefixed "^5.0.2" - it-pipe "^1.1.0" - just-debounce-it "^1.1.0" - libp2p-interfaces "^4.0.0" - multiaddr "^10.0.0" + interface-blockstore "^3.0.0" + it-length-prefixed "^8.0.2" + it-pipe "^2.0.4" + just-debounce-it "^3.0.1" multiformats "^9.0.4" - protobufjs "^6.10.2" - readable-stream "^3.6.0" + protobufjs "^7.0.0" + readable-stream "^4.0.0" + timeout-abort-controller "^3.0.0" uint8arrays "^3.0.0" varint "^6.0.0" varint-decoder "^1.0.0" -ipfs-core-config@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/ipfs-core-config/-/ipfs-core-config-0.3.3.tgz#38d548650008b36289e8dcbce33572f266af493f" - integrity sha512-hF5OE4qKy8vJetI3VYWOYePiW0JSV3i/9ArIrwATT0aJHbPzrRWJFQvvfeAFVEPqRmEBnnIQZCjHyGeVFbYfBg== - dependencies: - "@chainsafe/libp2p-noise" "^5.0.1" +ipfs-core-config@^0.4.2-8f351a89.0: + version "0.4.2-a05695fc.0" + resolved "https://registry.yarnpkg.com/ipfs-core-config/-/ipfs-core-config-0.4.2-a05695fc.0.tgz#15200fc8532a8faf923f53292294a44d8e589cd2" + integrity sha512-JXzddc4X0DalPkeR9gqe8K/8xJ7dFC5Ix/WPgEtds90HnRN71ZGkLBaNSW+z8wnN8va9a0LpQtMJ46hYtXdM2w== + dependencies: + "@chainsafe/libp2p-gossipsub" "^1.0.0" + "@libp2p/floodsub" "^1.0.2" + "@libp2p/logger" "^1.1.4" + "@libp2p/mdns" "^1.0.3" + "@libp2p/tcp" "^1.0.6" + "@libp2p/webrtc-star" "^1.0.6" blockstore-datastore-adapter "^2.0.2" datastore-core "^7.0.0" datastore-fs "^7.0.0" datastore-level "^8.0.0" - debug "^4.1.1" err-code "^3.0.1" hashlru "^2.3.0" - interface-datastore "^6.0.2" + interface-datastore "^6.1.1" ipfs-repo "^14.0.1" ipfs-utils "^9.0.6" - ipns "^0.16.0" is-ipfs "^6.0.1" it-all "^1.0.4" it-drain "^1.0.3" it-foreach "^0.1.1" - libp2p-floodsub "^0.29.0" - libp2p-gossipsub "0.13.0" - libp2p-kad-dht "^0.28.5" - libp2p-mdns "^0.18.0" - libp2p-mplex "^0.10.2" - libp2p-tcp "^0.17.1" - libp2p-webrtc-star "^0.25.0" - libp2p-websockets "^0.16.2" - p-queue "^6.6.1" + p-queue "^7.2.0" uint8arrays "^3.0.0" -ipfs-core-types@^0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/ipfs-core-types/-/ipfs-core-types-0.10.3.tgz#89ebe98199d4d829f2b20104bfa3299f808c80fe" - integrity sha512-GNid2lRBjR5qgScCglgk7w9Hk3TZAwPHQXxOLQx72wgyc0jF2U5NXRoKW0GRvX8NPbHmsrFszForIqxd23I1Gw== +ipfs-core-types@0.11.2-8f351a89.0: + version "0.11.2-8f351a89.0" + resolved "https://registry.yarnpkg.com/ipfs-core-types/-/ipfs-core-types-0.11.2-8f351a89.0.tgz#ad38a76697ee34b77e90cc8a1e1097e6f4826bd0" + integrity sha512-N8CniRGR69SwPuxw+Li3ROa/kC+xAM6xA8swhEdSucjyMJFyCPX/s0gSCikfweBiHEsjdbCEJcbSa5ULdc0srQ== dependencies: "@ipld/dag-pb" "^2.1.3" - interface-datastore "^6.0.2" - ipfs-unixfs "^6.0.3" - multiaddr "^10.0.0" + "@libp2p/interface-keychain" "^1.0.3" + "@libp2p/interface-peer-id" "^1.0.4" + "@libp2p/interface-peer-info" "^1.0.2" + "@libp2p/interface-pubsub" "^2.0.0" + "@multiformats/multiaddr" "^10.1.8" + "@types/node" "^18.0.0" + interface-datastore "^7.0.0" + ipfs-unixfs "^7.0.0" + multiformats "^9.5.1" + +ipfs-core-types@^0.11.2-8f351a89.0, ipfs-core-types@^0.11.2-a05695fc.0: + version "0.11.2-a05695fc.0" + resolved "https://registry.yarnpkg.com/ipfs-core-types/-/ipfs-core-types-0.11.2-a05695fc.0.tgz#720e17fe94cbb40f554e0bed9eeefe7cebd28e7f" + integrity sha512-79XXPfg/71lcSNUE72fTfBujOLB4uzBfxKBCzwhlU410Df4P2j61YnWH1t6/jxJ9+230caT1AZU+D+I3zHtkhA== + dependencies: + "@ipld/dag-pb" "^2.1.3" + "@multiformats/multiaddr" "^10.0.0" + interface-datastore "^6.1.1" + ipfs-unixfs "^6.0.9" multiformats "^9.5.1" -ipfs-core-utils@^0.14.3: - version "0.14.3" - resolved "https://registry.yarnpkg.com/ipfs-core-utils/-/ipfs-core-utils-0.14.3.tgz#d04c631c472507bdefc58d4e8d1d9109efbb411c" - integrity sha512-aBkewVhgAj3NWXPwu6imj0wADGiGVZmJzqKzODOJsibDjkx6FGdMv8kvvqtLnK8LS/dvSk9yk32IDtuDyYoV7Q== +ipfs-core-utils@^0.15.2-8f351a89.0, ipfs-core-utils@^0.15.2-a05695fc.0: + version "0.15.2-a05695fc.0" + resolved "https://registry.yarnpkg.com/ipfs-core-utils/-/ipfs-core-utils-0.15.2-a05695fc.0.tgz#28c2aef236f31d8ec576ec8d69619196a94f036c" + integrity sha512-dR30SwtXpPhczUv55Z/uzTBzInEXN9k+RV+ykPOSMjCfyVl8pL9AFfIzj/1Bou5NBvduM4UVcYssFLxt3E9kdw== dependencies: + "@libp2p/logger" "^1.1.4" + "@multiformats/multiaddr" "^10.0.0" + "@multiformats/multiaddr-to-uri" "^9.0.1" any-signal "^3.0.0" blob-to-it "^1.0.1" browser-readablestream-to-it "^1.0.1" - debug "^4.1.1" err-code "^3.0.1" - ipfs-core-types "^0.10.3" - ipfs-unixfs "^6.0.3" + ipfs-core-types "^0.11.2-a05695fc.0" + ipfs-unixfs "^6.0.9" ipfs-utils "^9.0.6" it-all "^1.0.4" it-map "^1.0.4" it-peekable "^1.0.2" it-to-stream "^1.0.0" merge-options "^3.0.4" - multiaddr "^10.0.0" - multiaddr-to-uri "^8.0.0" multiformats "^9.5.1" nanoid "^3.1.23" parse-duration "^1.0.0" timeout-abort-controller "^3.0.0" uint8arrays "^3.0.0" -ipfs-core@^0.14.3: - version "0.14.3" - resolved "https://registry.yarnpkg.com/ipfs-core/-/ipfs-core-0.14.3.tgz#e2fe617b67d63a839d82a88e1af849181c6453ed" - integrity sha512-2Xxcoesc15IVzIDwAFBaOtLBZo3lKblFQZDX3n4yDckieyHF8TvgBgSgsqp2puTk0szp9lU4xsZA2cRNeJxIbg== +ipfs-core@0.15.5-8f351a89.0: + version "0.15.5-8f351a89.0" + resolved "https://registry.yarnpkg.com/ipfs-core/-/ipfs-core-0.15.5-8f351a89.0.tgz#e305c43cad0148933c717a3a15e67a53790a15f8" + integrity sha512-1z3WROZPDPpZVG3XAcyz4WhlPc38VFAJeEsob1NFk6JJJDfgOR95ZncfBAuV/xz8rXubU1hewkyicb1yqlcKpw== dependencies: - "@chainsafe/libp2p-noise" "^5.0.0" + "@chainsafe/libp2p-noise" "^8.0.0" "@ipld/car" "^4.1.0" "@ipld/dag-cbor" "^7.0.0" "@ipld/dag-json" "^8.0.1" "@ipld/dag-pb" "^2.1.3" + "@libp2p/bootstrap" "^2.0.0" + "@libp2p/crypto" "^1.0.0" + "@libp2p/delegated-content-routing" "^2.0.1" + "@libp2p/delegated-peer-routing" "^2.0.1" + "@libp2p/interface-dht" "^1.0.1" + "@libp2p/interface-keys" "^1.0.3" + "@libp2p/interface-peer-id" "^1.0.4" + "@libp2p/interface-transport" "^1.0.2" + "@libp2p/interfaces" "^3.0.3" + "@libp2p/kad-dht" "^3.0.0" + "@libp2p/logger" "^2.0.0" + "@libp2p/mplex" "^5.0.0" + "@libp2p/peer-id" "^1.1.10" + "@libp2p/peer-id-factory" "^1.0.10" + "@libp2p/record" "^2.0.0" + "@libp2p/websockets" "^3.0.0" + "@multiformats/mafmt" "^11.0.2" + "@multiformats/multiaddr" "^10.1.8" + "@multiformats/multiaddr-to-uri" "^9.0.1" "@multiformats/murmur3" "^1.1.1" any-signal "^3.0.0" - array-shuffle "^2.0.0" - blockstore-core "^1.0.2" - blockstore-datastore-adapter "^2.0.2" - dag-jose "^1.0.0" - datastore-core "^7.0.0" - datastore-pubsub "^2.0.0" - debug "^4.1.1" + array-shuffle "^3.0.0" + blockstore-core "^2.0.1" + dag-jose "^2.0.1" + datastore-core "^8.0.1" + datastore-pubsub "^4.0.2" dlv "^1.1.3" err-code "^3.0.1" - hamt-sharding "^2.0.0" + hamt-sharding "^3.0.0" hashlru "^2.3.0" - interface-blockstore "^2.0.2" - interface-datastore "^6.0.2" - ipfs-bitswap "^10.0.1" - ipfs-core-config "^0.3.3" - ipfs-core-types "^0.10.3" - ipfs-core-utils "^0.14.3" - ipfs-http-client "^56.0.3" - ipfs-repo "^14.0.1" - ipfs-unixfs "^6.0.3" - ipfs-unixfs-exporter "^7.0.3" - ipfs-unixfs-importer "^9.0.3" + interface-blockstore "^3.0.0" + interface-datastore "^7.0.0" + ipfs-bitswap "^12.0.3" + ipfs-core-config "^0.4.2-8f351a89.0" + ipfs-core-types "^0.11.2-8f351a89.0" + ipfs-core-utils "^0.15.2-8f351a89.0" + ipfs-http-client "^57.0.4-8f351a89.0" + ipfs-repo "^15.0.0" + ipfs-unixfs "^7.0.0" + ipfs-unixfs-exporter "^8.0.4" + ipfs-unixfs-importer "^10.0.1" ipfs-utils "^9.0.6" - ipns "^0.16.0" + ipns "^2.0.2" is-domain-name "^1.0.1" is-ipfs "^6.0.1" - it-all "^1.0.4" it-drain "^1.0.3" it-filter "^1.0.2" - it-first "^1.0.4" + it-first "^1.0.6" it-last "^1.0.4" - it-map "^1.0.4" - it-merge "^1.0.2" + it-map "^1.0.6" + it-merge "^1.0.3" it-parallel "^2.0.1" it-peekable "^1.0.2" - it-pipe "^1.1.0" - it-pushable "^1.4.2" - it-tar "^4.0.0" + it-pipe "^2.0.3" + it-pushable "^3.0.0" + it-tar "^6.0.0" it-to-buffer "^2.0.0" - just-safe-set "^2.2.1" - libp2p "^0.36.2" - libp2p-bootstrap "^0.14.0" - libp2p-crypto "^0.21.1" - libp2p-delegated-content-routing "^0.11.1" - libp2p-delegated-peer-routing "^0.11.0" - libp2p-record "^0.10.3" - mafmt "^10.0.0" + just-safe-set "^4.0.2" + libp2p "^0.38.0" merge-options "^3.0.4" - mortice "^2.0.0" - multiaddr "^10.0.0" - multiaddr-to-uri "^8.0.0" + mortice "^3.0.0" multiformats "^9.5.1" - pako "^1.0.2" + pako "^2.0.4" parse-duration "^1.0.0" - peer-id "^0.16.0" timeout-abort-controller "^3.0.0" uint8arrays "^3.0.0" -ipfs-http-client@^56.0.3: - version "56.0.3" - resolved "https://registry.yarnpkg.com/ipfs-http-client/-/ipfs-http-client-56.0.3.tgz#45bbea55347ef13524769d5919cbed84d9d022d6" - integrity sha512-E3L5ylVl6BjyRUsNehvfuRBYp1hj8vQ8in4zskVPMNzXs6JiCFUbif5a6BtcAlSK4xPQyJCeLNNAWLUeFQTLNA== +ipfs-http-client@^57.0.4-8f351a89.0: + version "57.0.4-a05695fc.0" + resolved "https://registry.yarnpkg.com/ipfs-http-client/-/ipfs-http-client-57.0.4-a05695fc.0.tgz#11f8404393219fb9d172f0d0293530fdc8aaf9ea" + integrity sha512-r1GH/ueZJbMRZyTlxaz0pQJyFco69wavPy+/rnZ/8PvewGAOfKATeFmcf6pTV5M45Ouhx4qgiPQOhX5sVBwPUQ== dependencies: "@ipld/dag-cbor" "^7.0.0" "@ipld/dag-json" "^8.0.1" "@ipld/dag-pb" "^2.1.3" + "@libp2p/logger" "^1.1.4" + "@libp2p/peer-id" "^1.1.10" + "@multiformats/multiaddr" "^10.0.0" any-signal "^3.0.0" dag-jose "^1.0.0" - debug "^4.1.1" err-code "^3.0.1" - ipfs-core-types "^0.10.3" - ipfs-core-utils "^0.14.3" + ipfs-core-types "^0.11.2-a05695fc.0" + ipfs-core-utils "^0.15.2-a05695fc.0" ipfs-utils "^9.0.6" it-first "^1.0.6" it-last "^1.0.4" merge-options "^3.0.4" - multiaddr "^10.0.0" multiformats "^9.5.1" parse-duration "^1.0.0" stream-to-it "^0.2.2" uint8arrays "^3.0.0" -ipfs-message-port-client@^0.11.3: - version "0.11.3" - resolved "https://registry.yarnpkg.com/ipfs-message-port-client/-/ipfs-message-port-client-0.11.3.tgz#1bfb91660f567def4ad05ba335c436dbd13797bb" - integrity sha512-eMXyW6SVpDJN43R/XmaYbOGFvjH8yPuTafZ4FwZcuSpzOuj3JIRzQIVST3HMqYGse6zyo/6qbgmUixa2yzE2ag== - dependencies: - browser-readablestream-to-it "^1.0.1" - err-code "^3.0.1" - ipfs-core-types "^0.10.3" - ipfs-message-port-protocol "^0.11.3" - ipfs-unixfs "^6.0.3" - it-peekable "^1.0.2" - multiformats "^9.5.1" - -ipfs-message-port-protocol@^0.11.3: - version "0.11.3" - resolved "https://registry.yarnpkg.com/ipfs-message-port-protocol/-/ipfs-message-port-protocol-0.11.3.tgz#73e1149682087e798c3cfcd6b4048e994d174860" - integrity sha512-LRZRlbeTdD2RXPyIjpuLV2ewrMSFwewBgm0s0lzpwtm0RNMXXKE8KBZu/fDZSkx7Cx/tL4nJJCfeyy1nowIDdg== - dependencies: - ipfs-core-types "^0.10.3" - multiformats "^9.5.1" - ipfs-repo-migrations@^12.0.1: version "12.0.1" resolved "https://registry.npmjs.org/ipfs-repo-migrations/-/ipfs-repo-migrations-12.0.1.tgz" @@ -2555,6 +3626,25 @@ ipfs-repo-migrations@^12.0.1: uint8arrays "^3.0.0" varint "^6.0.0" +ipfs-repo-migrations@^13.0.0: + version "13.0.2" + resolved "https://registry.yarnpkg.com/ipfs-repo-migrations/-/ipfs-repo-migrations-13.0.2.tgz#349ff6fd73e8f031c89797f6c5a9f056a9c8d53a" + integrity sha512-j5RgvyLI4VyF3ErWd2814vLaTjPf/GR5W73KHbObsF1Up0CLj24GzUcxebxM2FAWdW5FqUEY6sKqmiaxZ6QKnQ== + dependencies: + "@ipld/dag-pb" "^2.1.0" + cborg "^1.3.4" + datastore-core "^8.0.1" + debug "^4.1.0" + fnv1a "^1.0.1" + interface-blockstore "^3.0.0" + interface-datastore "^7.0.0" + it-length "^1.0.1" + multiaddr "^10.0.1" + multiformats "^9.0.4" + protobufjs "^7.0.0" + uint8arrays "^3.0.0" + varint "^6.0.0" + ipfs-repo@^14.0.1: version "14.0.1" resolved "https://registry.npmjs.org/ipfs-repo/-/ipfs-repo-14.0.1.tgz" @@ -2587,34 +3677,70 @@ ipfs-repo@^14.0.1: sort-keys "^4.2.0" uint8arrays "^3.0.0" -ipfs-unixfs-exporter@^7.0.3: - version "7.0.6" - resolved "https://registry.npmjs.org/ipfs-unixfs-exporter/-/ipfs-unixfs-exporter-7.0.6.tgz" - integrity sha512-PkKB+hTbHhKLqgj0PqSNQ/n7dKsu/lC29jLK8nUXOX4EM6c+RnedohdCY7khT10/hfC7oADbpFs/QJfuH2DaAg== +ipfs-repo@^15.0.0, ipfs-repo@^15.0.1: + version "15.0.2" + resolved "https://registry.yarnpkg.com/ipfs-repo/-/ipfs-repo-15.0.2.tgz#5e16b39df39ad0a0659944dfd4a3393aaa555bde" + integrity sha512-aAy7e2ZOiWNoYextxm6Ib6p9DpBDRLPjqtRE4xW8dYdD1tk7u2SGqp6X6OuXHqMypNSR8DuGvPJ4lV2n1asOGg== + dependencies: + "@ipld/dag-pb" "^2.1.0" + bytes "^3.1.0" + cborg "^1.3.4" + datastore-core "^8.0.1" + debug "^4.1.0" + err-code "^3.0.1" + interface-blockstore "^3.0.0" + interface-datastore "^7.0.0" + ipfs-repo-migrations "^13.0.0" + it-drain "^1.0.1" + it-filter "^1.0.2" + it-first "^1.0.2" + it-map "^1.0.5" + it-merge "^1.0.2" + it-parallel-batch "^1.0.9" + it-pipe "^2.0.4" + it-pushable "^3.1.0" + just-safe-get "^4.1.1" + just-safe-set "^4.1.1" + merge-options "^3.0.4" + mortice "^3.0.0" + multiformats "^9.0.4" + p-queue "^7.3.0" + proper-lockfile "^4.0.0" + sort-keys "^5.0.0" + uint8arrays "^3.0.0" + +ipfs-unixfs-exporter@^8.0.4: + version "8.0.4" + resolved "https://registry.yarnpkg.com/ipfs-unixfs-exporter/-/ipfs-unixfs-exporter-8.0.4.tgz#79b385fcc6de46e1c9321a9cf11109b2e39761c9" + integrity sha512-vK+nXzwEpRbstMCdlcQy31GqlLhNRDPLfG7r5WceQ66ZQB542Ul8g1+w6HWXLPWHsYmvUtQGPqRGPo5VeKTIMA== dependencies: - "@ipld/dag-cbor" "^6.0.4" + "@ipld/dag-cbor" "^7.0.2" "@ipld/dag-pb" "^2.0.2" "@multiformats/murmur3" "^1.0.3" err-code "^3.0.1" - hamt-sharding "^2.0.0" - interface-blockstore "^1.0.0" - ipfs-unixfs "^6.0.6" + hamt-sharding "^3.0.0" + interface-blockstore "^3.0.0" + ipfs-unixfs "^7.0.0" it-last "^1.0.5" + it-map "^1.0.6" + it-parallel "^2.0.1" + it-pipe "^2.0.4" + it-pushable "^3.1.0" multiformats "^9.4.2" uint8arrays "^3.0.0" -ipfs-unixfs-importer@^9.0.3: - version "9.0.6" - resolved "https://registry.npmjs.org/ipfs-unixfs-importer/-/ipfs-unixfs-importer-9.0.6.tgz" - integrity sha512-FgzODqg4pvToEMZ88mFkHcU0s25CljmnqX2VX7K/VQDckiZIxhIiUTQRqQg/C7Em4uCzVp8YCxKUvl++w6kvNg== +ipfs-unixfs-importer@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/ipfs-unixfs-importer/-/ipfs-unixfs-importer-10.0.1.tgz#3934c53c1e550eaf87ab3a009e8bae497b529fb4" + integrity sha512-G5DE49Sj9c2HqSS82ERHsUZ4LWwEKLAaHEyHbaQvDHvUQ9INHxHeqvwLkGwjPLWvwlcRHqSzvP7Aa9IlSd8VTg== dependencies: "@ipld/dag-pb" "^2.0.2" "@multiformats/murmur3" "^1.0.3" bl "^5.0.0" err-code "^3.0.1" - hamt-sharding "^2.0.0" - interface-blockstore "^1.0.0" - ipfs-unixfs "^6.0.6" + hamt-sharding "^3.0.0" + interface-blockstore "^3.0.0" + ipfs-unixfs "^7.0.0" it-all "^1.0.5" it-batch "^1.0.8" it-first "^1.0.6" @@ -2624,33 +3750,21 @@ ipfs-unixfs-importer@^9.0.3: rabin-wasm "^0.1.4" uint8arrays "^3.0.0" -ipfs-unixfs@^6.0.3, ipfs-unixfs@^6.0.6: - version "6.0.6" - resolved "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-6.0.6.tgz" - integrity sha512-gTkjYKXuHnqIf6EFfS+ESaYEl3I3aaQQ0UX8MhpNzreMLEuMnuqpoI/uLLllTZa31WRplKixabbpRTSmTYRNwA== - dependencies: - err-code "^3.0.1" - protobufjs "^6.10.2" - -ipfs-utils@^9.0.1: - version "9.0.5" - resolved "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-9.0.5.tgz" - integrity sha512-GXWfsq/nKtwkcTI4+KGc4CU9EFXjtkWaGcFAsnm177kAhA0Fnn8aWNRaF/C0xFraUIl1wTAUTWkaGKigVyfsTw== +ipfs-unixfs@^6.0.9: + version "6.0.9" + resolved "https://registry.yarnpkg.com/ipfs-unixfs/-/ipfs-unixfs-6.0.9.tgz#f6613b8e081d83faa43ed96e016a694c615a9374" + integrity sha512-0DQ7p0/9dRB6XCb0mVCTli33GzIzSVx5udpJuVM47tGcD+W+Bl4LsnoLswd3ggNnNEakMv1FdoFITiEnchXDqQ== dependencies: - any-signal "^3.0.0" - buffer "^6.0.1" - electron-fetch "^1.7.2" err-code "^3.0.1" - is-electron "^2.2.0" - iso-url "^1.1.5" - it-glob "^1.0.1" - it-to-stream "^1.0.0" - merge-options "^3.0.4" - nanoid "^3.1.20" - native-fetch "^3.0.0" - node-fetch "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz" - react-native-fetch-api "^2.0.0" - stream-to-it "^0.2.2" + protobufjs "^6.10.2" + +ipfs-unixfs@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/ipfs-unixfs/-/ipfs-unixfs-7.0.0.tgz#24741aafa5845c6bbf4c6c736e132e3027d95392" + integrity sha512-qm3pj3jQE/WCQGIWypyXWtDjDfzQTxFMMaT57sNJ+EQlYEJryKeGQEBTubhhX+tva7ntqt+N/FD15RkDjWlh9w== + dependencies: + err-code "^3.0.1" + protobufjs "^7.0.0" ipfs-utils@^9.0.6: version "9.0.6" @@ -2685,23 +3799,40 @@ ipld-dag-pb@^0.22.3: stable "^0.1.8" uint8arrays "^2.0.5" -ipns@^0.16.0: - version "0.16.0" - resolved "https://registry.npmjs.org/ipns/-/ipns-0.16.0.tgz" - integrity sha512-fBYkRjN3/fc6IQujUF4WBEyOXegK715w+wx9IErV6H2B5JXsMnHOBceUKn3L90dj+wJfHs6T+hM/OZiTT6mQCw== - dependencies: +ipns@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/ipns/-/ipns-2.0.3.tgz#f17c40d1db0e58a95d9d230d5a4edbb9d23a4fe2" + integrity sha512-B8cNrVo5JhEEoNsBxviIRu9KHu04jIbQxmq+yQtxPeGXBrgW5aEmy5hylPUOHkboU1eTfggu8Ule0FVfcSxrkw== + dependencies: + "@libp2p/crypto" "^1.0.0" + "@libp2p/interface-dht" "^1.0.1" + "@libp2p/interface-keys" "^1.0.3" + "@libp2p/interface-peer-id" "^1.0.4" + "@libp2p/logger" "^2.0.0" + "@libp2p/peer-id" "^1.1.9" cborg "^1.3.3" - debug "^4.2.0" err-code "^3.0.1" - interface-datastore "^6.0.2" - libp2p-crypto "^0.21.0" - long "^4.0.0" + interface-datastore "^7.0.0" multiformats "^9.4.5" - peer-id "^0.16.0" - protobufjs "^6.10.2" + protons-runtime "^3.1.0" timestamp-nano "^1.0.0" uint8arrays "^3.0.0" +is-arguments@^1.0.4: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" @@ -2709,11 +3840,24 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + is-buffer@^2.0.4, is-buffer@^2.0.5: version "2.0.5" resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== + is-core-module@^2.8.1: version "2.8.1" resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz" @@ -2721,6 +3865,13 @@ is-core-module@^2.8.1: dependencies: has "^1.0.3" +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + is-domain-name@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/is-domain-name/-/is-domain-name-1.0.1.tgz" @@ -2741,6 +3892,13 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-generator-function@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" @@ -2760,6 +3918,13 @@ is-ip@^3.1.0: dependencies: ip-regex "^4.0.0" +is-ip@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-4.0.0.tgz#8e9eae12056bf46edafad19054dcc3666a324b3a" + integrity sha512-4B4XA2HEIm/PY+OSpeMBXr8pGWBYbXuHgjMAqrwbLO3CPTCAd9ArEJzBUKGZtk9viY6+aSfadGnWyjY3ydYZkw== + dependencies: + ip-regex "^5.0.0" + is-ipfs@^6.0.1: version "6.0.2" resolved "https://registry.npmjs.org/is-ipfs/-/is-ipfs-6.0.2.tgz" @@ -2771,10 +3936,22 @@ is-ipfs@^6.0.1: multiformats "^9.0.0" uint8arrays "^3.0.0" -is-loopback-addr@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-1.0.1.tgz" - integrity sha512-DhWU/kqY7X2F6KrrVTu7mHlbd2Pbo4D1YkAzasBMjQs6lJAoefxaA6m6CpSX0K6pjt9D0b9PNFI5zduy/vzOYw== +is-loopback-addr@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-loopback-addr/-/is-loopback-addr-2.0.1.tgz#0b43534f0b16ff899f1f19f322b59c38bd25fa03" + integrity sha512-SEsepLbdWFb13B6U0tt6dYcUM0iK/U7XOC43N70Z4Qb88WpNtp+ospyNI9ddpqncs7Z7brAEsVBTQpaqSNntIw== + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" is-number@^7.0.0: version "7.0.0" @@ -2791,6 +3968,19 @@ is-plain-obj@^2.0.0, is-plain-obj@^2.1.0: resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== +is-plain-obj@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + is-regexp@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz" @@ -2801,15 +3991,42 @@ is-relative-path@^1.0.2: resolved "https://registry.npmjs.org/is-relative-path/-/is-relative-path-1.0.2.tgz" integrity sha1-CRtGoNZ8HtD+hfH4z93gBrslHUY= +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + is-stream@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.3, is-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.9.tgz#246d77d2871e7d9f5aeb1d54b9f52c71329ece67" + integrity sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.20.0" + for-each "^0.3.3" + has-tostringtag "^1.0.0" is-unicode-supported@^0.1.0: version "0.1.0" @@ -2826,6 +4043,23 @@ is-url@^1.2.4: resolved "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz" integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" @@ -2836,7 +4070,7 @@ iso-constants@^0.1.2: resolved "https://registry.npmjs.org/iso-constants/-/iso-constants-0.1.2.tgz" integrity sha512-OTCM5ZCQsHBCI4Wdu4tSxvDIkmDHd5EwJDps5mKqnQnWJSKlnwMs3EDZ4n3Fh1tmkWkDlyd2vCDbEYuPbyrUNQ== -iso-random-stream@^2.0.0: +iso-random-stream@^2.0.0, iso-random-stream@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-2.0.2.tgz" integrity sha512-yJvs+Nnelic1L2vH2JzWvvPQFA4r7kSTnpST/+LkAQjSz0hos2oqLD+qIVi9Qk38Hoe7mNDt3j0S27R58MVjLQ== @@ -2849,11 +4083,6 @@ iso-url@^1.1.2, iso-url@^1.1.3, iso-url@^1.1.5: resolved "https://registry.npmjs.org/iso-url/-/iso-url-1.2.1.tgz" integrity sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng== -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - it-all@^1.0.4, it-all@^1.0.5, it-all@^1.0.6: version "1.0.6" resolved "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz" @@ -2864,32 +4093,17 @@ it-batch@^1.0.8, it-batch@^1.0.9: resolved "https://registry.npmjs.org/it-batch/-/it-batch-1.0.9.tgz" integrity sha512-7Q7HXewMhNFltTsAMdSz6luNhyhkhEtGGbYek/8Xb/GiqYMtwUmopE1ocPSiJKKp3rM4Dt045sNFoUu+KZGNyA== -it-buffer@^0.1.2, it-buffer@^0.1.3: - version "0.1.3" - resolved "https://registry.npmjs.org/it-buffer/-/it-buffer-0.1.3.tgz" - integrity sha512-9a2/9SYVwG7bcn3tpRDR4bXbtuMLXnDK48KVC+GXiQg97ZOOdWz2nIITBsOQ19b+gj01Rw8RNwtiLDLI8P8oiQ== - dependencies: - bl "^5.0.0" - buffer "^6.0.3" - -it-concat@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/it-concat/-/it-concat-2.0.0.tgz" - integrity sha512-jchrEB3fHlUENWkVJRmbFJ1A7gcjJDmwiolQsHhVC14DpUIbX8fgr3SOC7XNE5OoUUQNL6/RaMCPChkPemyQUw== - dependencies: - bl "^5.0.0" - -it-drain@^1.0.1, it-drain@^1.0.3, it-drain@^1.0.4: +it-drain@^1.0.1, it-drain@^1.0.3, it-drain@^1.0.4, it-drain@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/it-drain/-/it-drain-1.0.5.tgz" integrity sha512-r/GjkiW1bZswC04TNmUnLxa6uovme7KKwPhc+cb1hHU65E3AByypHH6Pm91WHuvqfFsm+9ws0kPtDBV3/8vmIg== -it-filter@^1.0.1, it-filter@^1.0.2: +it-filter@^1.0.2, it-filter@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/it-filter/-/it-filter-1.0.3.tgz" integrity sha512-EI3HpzUrKjTH01miLHWmhNWy3Xpbx4OXMXltgrNprL5lDpF3giVpHIouFpr5l+evXw6aOfxhnt01BIB+4VQA+w== -it-first@^1.0.2, it-first@^1.0.4, it-first@^1.0.6: +it-first@^1.0.2, it-first@^1.0.6, it-first@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz" integrity sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g== @@ -2907,52 +4121,67 @@ it-glob@^1.0.1: "@types/minimatch" "^3.0.4" minimatch "^3.0.4" -it-handshake@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/it-handshake/-/it-handshake-2.0.0.tgz" - integrity sha512-K4q+mz8aLlCK3vTjtgNdHC9c/JbuOATsfogarjMsLcBZC5vYfKbX3Gq3AWcCdjIsIrPqzTlhPKSxl64LJkrt2w== +it-handshake@^4.0.1, it-handshake@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/it-handshake/-/it-handshake-4.1.2.tgz#9261f1869ce0162810a530e88bd40d5e7ce8e0a3" + integrity sha512-Q/EvrB4KWIX5+/wO7edBK3l79Vh28+iWPGZvZSSqwAtOJnHZIvywC+JUbiXPRJVXfICBJRqFETtIJcvrqWL2Zw== dependencies: - it-pushable "^1.4.0" - it-reader "^3.0.0" - p-defer "^3.0.0" + it-pushable "^3.1.0" + it-reader "^6.0.1" + it-stream-types "^1.0.4" + p-defer "^4.0.0" + uint8arraylist "^2.0.0" it-last@^1.0.4, it-last@^1.0.5: version "1.0.6" resolved "https://registry.npmjs.org/it-last/-/it-last-1.0.6.tgz" integrity sha512-aFGeibeiX/lM4bX3JY0OkVCFkAw8+n9lkukkLNivbJRvNz8lI3YXv5xcqhFUV2lDJiraEK3OXRDbGuevnnR67Q== -it-length-prefixed@^5.0.0, it-length-prefixed@^5.0.2, it-length-prefixed@^5.0.3: - version "5.0.3" - resolved "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz" - integrity sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg== +it-length-prefixed@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/it-length-prefixed/-/it-length-prefixed-7.0.1.tgz#72993fa087e9064368c8835bc657491585afb183" + integrity sha512-UozKoT0zZPUa0LO9OSq5KaLKPn83U7Vsy/BNAN0TUXfTI/pKrOz6RuyTSOok6NDad12FZsShBGnl9DKlfDT95g== dependencies: - bl "^5.0.0" - buffer "^6.0.3" + err-code "^3.0.1" + it-stream-types "^1.0.4" + uint8arraylist "^1.2.0" varint "^6.0.0" +it-length-prefixed@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/it-length-prefixed/-/it-length-prefixed-8.0.2.tgz#03ae750e582661744b6272abe18cd1b17f9ffffc" + integrity sha512-qYCGZ6lTaI6lcuTXUrJmVpE6clq63ULrkq1FGTxHrzexjB2cCrS/CZ5HCRDZ5IRPw33tSDUDK91S7X5S64dPyQ== + dependencies: + err-code "^3.0.1" + it-stream-types "^1.0.4" + uint8-varint "^1.0.1" + uint8arraylist "^2.0.0" + uint8arrays "^3.0.0" + it-length@^1.0.1, it-length@^1.0.3: version "1.0.4" resolved "https://registry.npmjs.org/it-length/-/it-length-1.0.4.tgz" integrity sha512-KN4jXzp77/GQ4fxUGMbsJx3ALUZ6SP3E79tzs2weGghtImDLFZzua/l3fOK0LN/hMH0M330HJRZWwYZfDNuCIA== -it-map@^1.0.4, it-map@^1.0.5: +it-map@^1.0.4, it-map@^1.0.5, it-map@^1.0.6: version "1.0.6" resolved "https://registry.npmjs.org/it-map/-/it-map-1.0.6.tgz" integrity sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ== -it-merge@^1.0.0, it-merge@^1.0.1, it-merge@^1.0.2, it-merge@^1.0.3: +it-merge@^1.0.1, it-merge@^1.0.2, it-merge@^1.0.3, it-merge@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/it-merge/-/it-merge-1.0.4.tgz" integrity sha512-DcL6GksTD2HQ7+5/q3JznXaLNfwjyG3/bObaF98da+oHfUiPmdo64oJlT9J8R8G5sJRU7thwaY5zxoAKCn7FJw== dependencies: it-pushable "^1.4.0" -it-pair@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/it-pair/-/it-pair-1.0.0.tgz" - integrity sha512-9raOiDu5OAuDOahtMtapKQDrQTxBfzlzrNcB6o7JARHkt+7Bb1dMkW/TpYdAjBJE77KH3e2zGzwpGUP9tXbLww== +it-pair@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/it-pair/-/it-pair-2.0.2.tgz#1e6c7f35e8042019942b8996c0c13784d576e2d7" + integrity sha512-QGgUwGtzE4mI8yPZawL+9wq49SBmhQdjKW+ChKBm4PUwRNdkgSoyPlu280iNyS0JscBG3pvytJ8JNVPSEBQNjg== dependencies: - get-iterator "^1.0.2" + it-stream-types "^1.0.3" + p-defer "^4.0.0" it-parallel-batch@^1.0.9: version "1.0.10" @@ -2968,37 +4197,59 @@ it-parallel@^2.0.1: dependencies: p-defer "^3.0.0" -it-pb-rpc@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/it-pb-rpc/-/it-pb-rpc-0.2.0.tgz" - integrity sha512-Rojodsa6yxSTZDqVVF9HXKsISoHtlLNOL0P6b/7oCswiscbjCpt1IB78BxRDHpFL3tg8jFPMNDTP3v6ZjrMf9w== +it-pb-stream@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/it-pb-stream/-/it-pb-stream-2.0.2.tgz#e4a51bd1005a467910d01661e632c6d0ca90d102" + integrity sha512-FR1FM9W71wMTZlAij1Pq4PKNcfVb0TGhUTpNQ3tv0LMV/pJ5cDh4g3jW7jhwB+kHtr7PywD1CybBHaT8iAVpKg== dependencies: - it-handshake "^2.0.0" - it-length-prefixed "^5.0.3" + it-handshake "^4.1.2" + it-length-prefixed "^8.0.2" + it-stream-types "^1.0.4" + uint8arraylist "^2.0.0" it-peekable@^1.0.2: version "1.0.3" resolved "https://registry.npmjs.org/it-peekable/-/it-peekable-1.0.3.tgz" integrity sha512-5+8zemFS+wSfIkSZyf0Zh5kNN+iGyccN02914BY4w/Dj+uoFEoPSvj5vaWn8pNZJNSxzjW0zHRxC3LUb2KWJTQ== -it-pipe@^1.0.1, it-pipe@^1.1.0: +it-pipe@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/it-pipe/-/it-pipe-1.1.0.tgz" integrity sha512-lF0/3qTVeth13TOnHVs0BTFaziwQF7m5Gg+E6JV0BXcLKutC92YjSi7bASgkPOXaLEb+YvNZrPorGMBIJvZfxg== -it-pushable@^1.4.0, it-pushable@^1.4.1, it-pushable@^1.4.2: +it-pipe@^2.0.3, it-pipe@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/it-pipe/-/it-pipe-2.0.4.tgz#fa72c2fdb3c7a467ff21d109e746ebfadfe9c749" + integrity sha512-lK0BV0egwfc64DFJva+0Jh1z8UxwmYBpAHDwq21s0OenRCaEDIntx/iOyWH/jg5efBU6Xa8igzmOqm2CPPNDgg== + dependencies: + it-merge "^1.0.4" + it-pushable "^3.1.0" + it-stream-types "^1.0.3" + +it-pushable@^1.4.0, it-pushable@^1.4.2: version "1.4.2" resolved "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz" integrity sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg== dependencies: fast-fifo "^1.0.0" -it-reader@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/it-reader/-/it-reader-3.0.0.tgz" - integrity sha512-NxR40odATeaBmSefn6Xn43DplYvn2KtEKQzn4jrTRuPYXMky5M4e+KQ7aTJh0k0vkytLyeenGO1I1GXlGm4laQ== +it-pushable@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/it-pushable/-/it-pushable-2.0.2.tgz#18b7378253dac3877eb3f6cbb327c15645e3114d" + integrity sha512-f/n6HqXGDbHvuMR/3UN+S6W4y/bS1Pxg6Lb0oVc5dbflxy5f3NKkizKs86B8vzqHnB9hm1YpE0pgcEvI3FKDQw== + +it-pushable@^3.0.0, it-pushable@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/it-pushable/-/it-pushable-3.1.0.tgz#2fba7aaca189595e64e042ac947c6748ece2eb6b" + integrity sha512-sEAdT86u6aIWvLkH4hlOmgvHpRyUOUG22HD365H+Dh67zYpaPdILmT4Om7Wjdb+m/SjEB81z3nYCoIrgVYpOFA== + +it-reader@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/it-reader/-/it-reader-6.0.1.tgz#ef7bf7b327cd1f418abb9525641c71658eee21c1" + integrity sha512-C+YRk3OTufbKSJMNEonfEw+9F38llmwwZvqhkjb0xIgob7l4L3p01Yt43+bHRI8SSppAOgk5AKLqas7ea0UTAw== dependencies: - bl "^5.0.0" + it-stream-types "^1.0.4" + uint8arraylist "^2.0.0" it-sort@^1.0.0, it-sort@^1.0.1: version "1.0.1" @@ -3007,24 +4258,30 @@ it-sort@^1.0.0, it-sort@^1.0.1: dependencies: it-all "^1.0.6" -it-take@^1.0.0, it-take@^1.0.1, it-take@^1.0.2: +it-stream-types@^1.0.2, it-stream-types@^1.0.3, it-stream-types@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/it-stream-types/-/it-stream-types-1.0.4.tgz#6e66a11abfd98abab4894c30da15829a0a56bb43" + integrity sha512-0F3CqTIcIHwtnmIgqd03a7sw8BegAmE32N2w7anIGdALea4oAN4ltqPgDMZ7zn4XPLZifXEZlBXSzgg64L1Ebw== + +it-take@^1.0.1, it-take@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/it-take/-/it-take-1.0.2.tgz" integrity sha512-u7I6qhhxH7pSevcYNaMECtkvZW365ARqAIt9K+xjdK1B2WUDEjQSfETkOCT8bxFq/59LqrN3cMLUtTgmDBaygw== -it-tar@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/it-tar/-/it-tar-4.0.0.tgz" - integrity sha512-t7NJKNVs0p3aJT2cyycs8FkXkvLTKOVtcEuYEdZDrfxHGEIW8gHJt2zbDOILt5erywEPRRws2oz0FqH3LiDGtA== +it-tar@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/it-tar/-/it-tar-6.0.0.tgz#10dfcd9ff48e7c5c5a9628f0c96c005ad39278c0" + integrity sha512-1p+vds1dp/c+wcMCb7ts07PZqkxSCp3V6kCA435HvPTQYqGyP9oCeQjCapPdQputPHgiFWf3+SDxJ39yuCbKag== dependencies: - bl "^5.0.0" - buffer "^6.0.3" iso-constants "^0.1.2" - it-concat "^2.0.0" - it-reader "^3.0.0" - p-defer "^3.0.0" + it-reader "^6.0.1" + it-stream-types "^1.0.4" + it-to-buffer "^2.0.2" + p-defer "^4.0.0" + uint8arraylist "^2.3.2" + uint8arrays "^3.0.0" -it-to-buffer@^2.0.0: +it-to-buffer@^2.0.0, it-to-buffer@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/it-to-buffer/-/it-to-buffer-2.0.2.tgz" integrity sha512-Frbv1sphcNFvD807Qw5fXpK4L7iuqShYSI7k30PfpJiy5IxdqMyaulWpLyl1hIJVVpkG+1UrJafFCnatzmZf5g== @@ -3043,15 +4300,16 @@ it-to-stream@^1.0.0: p-fifo "^1.0.0" readable-stream "^3.6.0" -it-ws@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/it-ws/-/it-ws-4.0.0.tgz" - integrity sha512-XmTzpMkevc6rUboy73r0CCNhciMmL/Yxir9O6FujRwdrjysztqLBQ1Xkr4CpY2m7BVSCObKotaCWJeZ29lOXRA== +it-ws@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/it-ws/-/it-ws-5.0.2.tgz#036a3584053b71c007b75584572429d9503fe7b1" + integrity sha512-beq/nBWuKm2Ds4nYSfPuZRF0USVZJhsIvuUH3kRE5QdaCzivDK7zyeewDgsNBSPr6hPgF5dyPP5NXcXhUcb9QQ== dependencies: - buffer "^6.0.3" event-iterator "^2.0.0" iso-url "^1.1.2" - ws "^7.3.1" + it-stream-types "^1.0.2" + uint8arrays "^3.0.0" + ws "^8.4.0" jest-diff@^27.5.1: version "27.5.1" @@ -3115,61 +4373,53 @@ jsbn@1.1.0: resolved "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz" integrity sha1-sBMHyym2GKHtJux56RH4A8TaAEA= -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== - json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" jsonc-parser@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz" integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== -jsprim@^1.2.2: - version "1.4.2" - resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz" - integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.4.0" - verror "1.10.0" - -just-debounce-it@^1.1.0: - version "1.5.0" - resolved "https://registry.npmjs.org/just-debounce-it/-/just-debounce-it-1.5.0.tgz" - integrity sha512-itSWJS5d2DTSCizVJ2Z0Djx/dGmUGfZe7WNfUfVP23+htGcIcPHbEjL4eB8ljojTs/+oYwLexImRRCP0A2WXjA== +just-debounce-it@^3.0.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/just-debounce-it/-/just-debounce-it-3.1.1.tgz#aa07c395d48c394233e4bafdcc49ed188fcf62a5" + integrity sha512-oPsuRyWp99LJaQ4KXC3A42tQNqkRTcPy0A8BCkRZ5cPCgsx81upB2KUrmHZvDUNhnCDKe7MshfTuWFQB9iXwDg== just-safe-get@^2.0.0: version "2.1.2" resolved "https://registry.npmjs.org/just-safe-get/-/just-safe-get-2.1.2.tgz" integrity sha512-DPWEh00QFgJNyfULPwgc9rTvdiPYVyt69hcgjWbN3lzKMmISW43Hwc+nlRAIo+su6PLVqUOMEUJNYR1xFog7xQ== -just-safe-set@^2.1.0, just-safe-set@^2.2.1: +just-safe-get@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/just-safe-get/-/just-safe-get-4.1.1.tgz#7ed27d2b6b57c0fbc2656e4872ec4da88cd27d37" + integrity sha512-Tgnp513ipAnS8oneoirig1V4buSR6aiuflN+BBm133Tz+hs58tad0bat6MkMSCPr2QtCQaHQ6BWC/aadWPGp9g== + +just-safe-set@^2.1.0: version "2.2.3" resolved "https://registry.npmjs.org/just-safe-set/-/just-safe-set-2.2.3.tgz" integrity sha512-6zAkfGKRjB766zXv/UVSGOFKSAqakhwLQDyIR9bmIhJ/e6jS3Ci1VxYTqaiooYZZUw3VLg0sZva8PE6JX/iu2w== +just-safe-set@^4.0.2, just-safe-set@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/just-safe-set/-/just-safe-set-4.1.1.tgz#5dedfdfac49a767f38d784c3e667f2070be7f80f" + integrity sha512-3tQtDVCvZfWc64yEbh2D8R80Zlz+x9LJVpkQ4K3ppdiO7iI1Jzf6wYgsAs1o/EMSwucRbaNb6JHex/24TbSaKw== + k-bucket@^5.1.0: version "5.1.0" resolved "https://registry.npmjs.org/k-bucket/-/k-bucket-5.1.0.tgz" @@ -3237,6 +4487,19 @@ level-supports@^2.0.1: resolved "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz" integrity sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA== +level-supports@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-4.0.1.tgz#431546f9d81f10ff0fea0e74533a0e875c08c66a" + integrity sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA== + +level-transcoder@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/level-transcoder/-/level-transcoder-1.0.1.tgz#f8cef5990c4f1283d4c86d949e73631b0bc8ba9c" + integrity sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w== + dependencies: + buffer "^6.0.3" + module-error "^1.0.1" + level@^7.0.0: version "7.0.1" resolved "https://registry.npmjs.org/level/-/level-7.0.1.tgz" @@ -3246,6 +4509,14 @@ level@^7.0.0: level-packager "^6.0.1" leveldown "^6.1.0" +level@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/level/-/level-8.0.0.tgz#41b4c515dabe28212a3e881b61c161ffead14394" + integrity sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ== + dependencies: + browser-level "^1.0.1" + classic-level "^1.2.0" + leveldown@^6.1.0: version "6.1.1" resolved "https://registry.npmjs.org/leveldown/-/leveldown-6.1.1.tgz" @@ -3281,305 +4552,80 @@ levn@~0.3.0: integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= dependencies: prelude-ls "~1.1.2" - type-check "~0.3.2" - -libp2p-bootstrap@^0.14.0: - version "0.14.0" - resolved "https://registry.npmjs.org/libp2p-bootstrap/-/libp2p-bootstrap-0.14.0.tgz" - integrity sha512-j3slZo5nOdA8wVlav8dRZeAXutZ7psz/f10DLoIEX/EFif7uU5oZfIYvjbVGo3ZDl+VQLo2tR0m1lV0westQ3g== - dependencies: - debug "^4.3.1" - mafmt "^10.0.0" - multiaddr "^10.0.0" - peer-id "^0.16.0" - -libp2p-crypto@^0.21.0, libp2p-crypto@^0.21.1, libp2p-crypto@^0.21.2: - version "0.21.2" - resolved "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.21.2.tgz" - integrity sha512-EXFrhSpiHtJ+/L8xXDvQNK5VjUMG51u878jzZcaT5XhuN/zFg6PWJFnl/qB2Y2j7eMWnvCRP7Kp+ua2H36cG4g== - dependencies: - "@noble/ed25519" "^1.5.1" - "@noble/secp256k1" "^1.3.0" - err-code "^3.0.1" - iso-random-stream "^2.0.0" - multiformats "^9.4.5" - node-forge "^1.2.1" - protobufjs "^6.11.2" - uint8arrays "^3.0.0" - -libp2p-delegated-content-routing@^0.11.1: - version "0.11.2" - resolved "https://registry.npmjs.org/libp2p-delegated-content-routing/-/libp2p-delegated-content-routing-0.11.2.tgz" - integrity sha512-O7bqOPGlvePsP4ld6AU4uDuHjTQ9lVfsTFkYqhwPVUw1rxR0UiGiU5eyq6ADlgrY3lHtz3Sc3yNVFN1FNDn1iA== - dependencies: - debug "^4.1.1" - it-drain "^1.0.3" - multiaddr "^10.0.0" - p-defer "^3.0.0" - p-queue "^6.2.1" - peer-id "^0.16.0" - -libp2p-delegated-peer-routing@^0.11.0: - version "0.11.1" - resolved "https://registry.npmjs.org/libp2p-delegated-peer-routing/-/libp2p-delegated-peer-routing-0.11.1.tgz" - integrity sha512-NwdRS0a6plfzVcdSqHV4hQnv872zjt7dUtsfRXmPZkXoaPjWck3Y0EDFxDYHlCMPH9w7PvrgttBlO1EwWqFGFw== - dependencies: - debug "^4.3.1" - multiformats "^9.0.2" - p-defer "^3.0.0" - p-queue "^6.3.0" - peer-id "^0.16.0" - -libp2p-floodsub@^0.29.0: - version "0.29.1" - resolved "https://registry.npmjs.org/libp2p-floodsub/-/libp2p-floodsub-0.29.1.tgz" - integrity sha512-U9YL8xyGY5us/ox3RzVLRHNcK+qOuo4VSiNsSweNVjy50D4Fb9ahML0xHnahx9ZQicd6nDEPn8/i958fnu8N4g== - dependencies: - debug "^4.2.0" - libp2p-interfaces "^4.0.5" - time-cache "^0.3.0" - uint8arrays "^3.0.0" - -libp2p-gossipsub@0.13.0: - version "0.13.0" - resolved "https://registry.npmjs.org/libp2p-gossipsub/-/libp2p-gossipsub-0.13.0.tgz" - integrity sha512-xy2jRZGmJpjy++Di6f1admtjve8Fx0z5l8NISTQS282egwbRMmTPE6/UeYktb6hNGAgtSTIwXdHjXmMOiTarFA== - dependencies: - "@types/debug" "^4.1.7" - debug "^4.3.1" - denque "^1.5.0" - err-code "^3.0.1" - it-pipe "^1.1.0" - libp2p-interfaces "^4.0.4" - peer-id "^0.16.0" - protobufjs "^6.11.2" - uint8arrays "^3.0.0" - -libp2p-interfaces@^4.0.0, libp2p-interfaces@^4.0.4, libp2p-interfaces@^4.0.5: - version "4.0.6" - resolved "https://registry.npmjs.org/libp2p-interfaces/-/libp2p-interfaces-4.0.6.tgz" - integrity sha512-3KjzNEIWhi+VoOamLvgKKUE/xqwxSw/JYqsBnfMhAWVRvRtosROtVT03wci2XbuuowCYw+/hEX1xKJIR1w5n0A== - dependencies: - abortable-iterator "^3.0.0" - debug "^4.3.1" - err-code "^3.0.1" - it-length-prefixed "^5.0.2" - it-pipe "^1.1.0" - it-pushable "^1.4.2" - libp2p-crypto "^0.21.0" - multiaddr "^10.0.0" - multiformats "^9.1.2" - p-queue "^6.6.2" - peer-id "^0.16.0" - protobufjs "^6.10.2" - uint8arrays "^3.0.0" - -libp2p-kad-dht@^0.28.5: - version "0.28.6" - resolved "https://registry.npmjs.org/libp2p-kad-dht/-/libp2p-kad-dht-0.28.6.tgz" - integrity sha512-laJw8SRxYKYawMr295Yo38juRjiQ02cBTpnWU3KeTWnO+5bUYrtK6aOgxzMawiLDiDBZ/FLtdnoTPyuKP5QrTg== - dependencies: - any-signal "^3.0.0" - datastore-core "^7.0.0" - debug "^4.3.1" - err-code "^3.0.0" - hashlru "^2.3.0" - interface-datastore "^6.0.2" - it-all "^1.0.5" - it-drain "^1.0.4" - it-first "^1.0.4" - it-length "^1.0.3" - it-length-prefixed "^5.0.2" - it-map "^1.0.5" - it-merge "^1.0.3" - it-parallel "^2.0.1" - it-pipe "^1.1.0" - it-take "^1.0.2" - k-bucket "^5.1.0" - libp2p-crypto "^0.21.0" - libp2p-interfaces "^4.0.0" - libp2p-record "^0.10.4" - multiaddr "^10.0.0" - multiformats "^9.4.5" - p-defer "^3.0.0" - p-map "^4.0.0" - p-queue "^6.6.2" - peer-id "^0.16.0" - private-ip "^2.3.3" - protobufjs "^6.10.2" - streaming-iterables "^6.0.0" - timeout-abort-controller "^3.0.0" - uint8arrays "^3.0.0" - varint "^6.0.0" - -libp2p-mdns@^0.18.0: - version "0.18.0" - resolved "https://registry.npmjs.org/libp2p-mdns/-/libp2p-mdns-0.18.0.tgz" - integrity sha512-IBCKRuNc5USlli9QF/gOq2loCssE4ZKkVRhUNuAVBRXJ8ueqFEquc5R5C1sWy7AOgbycTgeNcxzSa1kuNb6nbg== - dependencies: - debug "^4.3.1" - multiaddr "^10.0.0" - multicast-dns "^7.2.0" - peer-id "^0.16.0" - -libp2p-mplex@^0.10.2: - version "0.10.7" - resolved "https://registry.npmjs.org/libp2p-mplex/-/libp2p-mplex-0.10.7.tgz" - integrity sha512-21VV0DZWuOsHgitWy1GZD1M/kki3a/hVoAJ5QC48p01JNSK5W8gxRiZtq7cCGJ/xNpbQxvMlMtS5eq8CFRlysg== - dependencies: - abortable-iterator "^3.0.2" - bl "^5.0.0" - debug "^4.3.1" - err-code "^3.0.1" - it-pipe "^1.1.0" - it-pushable "^1.4.1" - varint "^6.0.0" - -libp2p-record@^0.10.3, libp2p-record@^0.10.4: - version "0.10.6" - resolved "https://registry.npmjs.org/libp2p-record/-/libp2p-record-0.10.6.tgz" - integrity sha512-CbdO2P9DQn/DKll6R/J4nIw6Qt8xbUTfxYgJjpP9oz3izHKkpGQo0mPTe0NyuFTGIQ4OprrxqWqG5v8ZCGBqqw== - dependencies: - err-code "^3.0.1" - multiformats "^9.4.5" - protobufjs "^6.11.2" - uint8arrays "^3.0.0" - -libp2p-tcp@^0.17.1: - version "0.17.2" - resolved "https://registry.npmjs.org/libp2p-tcp/-/libp2p-tcp-0.17.2.tgz" - integrity sha512-SAdgDB4Rm0olPbyvanKP5JBaiRwbIOo0Nt++WYe1U2B6akg2uatsDOtulfpnc1gsL1B5vamnOpOzKaDj4kkt8g== - dependencies: - abortable-iterator "^3.0.0" - class-is "^1.1.0" - debug "^4.3.1" - err-code "^3.0.1" - libp2p-utils "^0.4.0" - mafmt "^10.0.0" - multiaddr "^10.0.0" - stream-to-it "^0.2.2" - -libp2p-utils@^0.4.0: - version "0.4.1" - resolved "https://registry.npmjs.org/libp2p-utils/-/libp2p-utils-0.4.1.tgz" - integrity sha512-kq/US2unamiyY+YwP47dO1uqpAdcbdYI2Fzi9JIEhjfPBaD1MR/uyQ/YP7ABthl3EaxAjIQYd1TVp85d6QKAtQ== - dependencies: - abortable-iterator "^3.0.0" - debug "^4.3.0" - err-code "^3.0.1" - ip-address "^8.0.0" - is-loopback-addr "^1.0.0" - multiaddr "^10.0.0" - private-ip "^2.1.1" - -libp2p-webrtc-peer@^10.0.1: - version "10.0.1" - resolved "https://registry.npmjs.org/libp2p-webrtc-peer/-/libp2p-webrtc-peer-10.0.1.tgz" - integrity sha512-Qi/YVrSI5sjU+iBvr1iAjGrakIEvzCS8S76v4q43jjlDb6Wj+S4OnFLH/uRlt7eLXcx4vlaI6huMzYrUAoopMg== - dependencies: - debug "^4.0.1" - err-code "^2.0.3" - get-browser-rtc "^1.0.0" - queue-microtask "^1.1.0" - randombytes "^2.0.3" - readable-stream "^3.4.0" - -libp2p-webrtc-star@^0.25.0: - version "0.25.0" - resolved "https://registry.npmjs.org/libp2p-webrtc-star/-/libp2p-webrtc-star-0.25.0.tgz" - integrity sha512-SyXjHDrm+qlKQE5HIddrUCSwkxCIJ30PAH4ZVNNADkC0F5IVQY9EoVJ+/rrzZuDDqccnS15TgxW13vmybX96bQ== - dependencies: - abortable-iterator "^3.0.0" - class-is "^1.1.0" - debug "^4.2.0" - err-code "^3.0.1" - ipfs-utils "^9.0.1" - it-pipe "^1.1.0" - libp2p-utils "^0.4.0" - libp2p-webrtc-peer "^10.0.1" - mafmt "^10.0.0" - multiaddr "^10.0.0" - p-defer "^3.0.0" - peer-id "^0.16.0" - socket.io-client "^4.1.2" - stream-to-it "^0.2.2" - -libp2p-websockets@^0.16.2: - version "0.16.2" - resolved "https://registry.npmjs.org/libp2p-websockets/-/libp2p-websockets-0.16.2.tgz" - integrity sha512-QGfo8jX1Ks16yi8C67CCyMW7k9cfCYiQ0lzKVJBud0fV3ymbMO2L8gzU6iXUUZTHILo8ka26zKhwQ4lmUMI+nA== - dependencies: - abortable-iterator "^3.0.0" - class-is "^1.1.0" - debug "^4.3.1" - err-code "^3.0.1" - ipfs-utils "^9.0.1" - it-ws "^4.0.0" - libp2p-utils "^0.4.0" - mafmt "^10.0.0" - multiaddr "^10.0.0" - multiaddr-to-uri "^8.0.0" - p-defer "^3.0.0" - p-timeout "^4.1.0" + type-check "~0.3.2" -libp2p@^0.36.2: - version "0.36.2" - resolved "https://registry.npmjs.org/libp2p/-/libp2p-0.36.2.tgz" - integrity sha512-UpNYBMQVivMu56zoibdGitopv39uBBAybIBOEGWmFy/I2NnTVGUutLPrxo47AuN2kntYgo/TNJfW+PpswUgSaw== - dependencies: - "@vascosantos/moving-average" "^1.1.0" - abortable-iterator "^3.0.0" - aggregate-error "^3.1.0" +libp2p@^0.38.0: + version "0.38.0" + resolved "https://registry.yarnpkg.com/libp2p/-/libp2p-0.38.0.tgz#a6c61c70f4e9e016cb2c7e785061906226812429" + integrity sha512-Wi/ptR69M5LuOrH8hwno98Dg/YeaDXmsyN2cd3vx/yuaEdcgz1RPdGtxxpyVP6J63eZbH07MYTvQcQHH5VhTkA== + dependencies: + "@achingbrain/nat-port-mapper" "^1.0.3" + "@libp2p/components" "^2.0.3" + "@libp2p/connection" "^4.0.1" + "@libp2p/crypto" "^1.0.3" + "@libp2p/interface-address-manager" "^1.0.2" + "@libp2p/interface-connection" "^3.0.1" + "@libp2p/interface-connection-encrypter" "^2.0.1" + "@libp2p/interface-content-routing" "^1.0.2" + "@libp2p/interface-dht" "^1.0.1" + "@libp2p/interface-metrics" "^3.0.0" + "@libp2p/interface-peer-discovery" "^1.0.1" + "@libp2p/interface-peer-id" "^1.0.4" + "@libp2p/interface-peer-info" "^1.0.2" + "@libp2p/interface-peer-routing" "^1.0.1" + "@libp2p/interface-peer-store" "^1.2.1" + "@libp2p/interface-pubsub" "^2.0.1" + "@libp2p/interface-registrar" "^2.0.3" + "@libp2p/interface-stream-muxer" "^2.0.2" + "@libp2p/interface-transport" "^1.0.3" + "@libp2p/interfaces" "^3.0.3" + "@libp2p/logger" "^2.0.1" + "@libp2p/multistream-select" "^3.0.0" + "@libp2p/peer-collections" "^2.0.0" + "@libp2p/peer-id" "^1.1.15" + "@libp2p/peer-id-factory" "^1.0.18" + "@libp2p/peer-record" "^4.0.2" + "@libp2p/peer-store" "^3.1.3" + "@libp2p/tracked-map" "^2.0.1" + "@libp2p/utils" "^3.0.1" + "@multiformats/mafmt" "^11.0.2" + "@multiformats/multiaddr" "^10.3.3" + abortable-iterator "^4.0.2" any-signal "^3.0.0" - bignumber.js "^9.0.1" - class-is "^1.1.0" - datastore-core "^7.0.0" - debug "^4.3.1" - err-code "^3.0.0" - es6-promisify "^7.0.0" + datastore-core "^8.0.1" + err-code "^3.0.1" events "^3.3.0" hashlru "^2.3.0" - interface-datastore "^6.0.2" - it-all "^1.0.4" - it-buffer "^0.1.2" - it-drain "^1.0.3" - it-filter "^1.0.1" - it-first "^1.0.4" + interface-datastore "^7.0.0" + it-all "^1.0.6" + it-drain "^1.0.5" + it-filter "^1.0.3" + it-first "^1.0.6" it-foreach "^0.1.1" - it-handshake "^2.0.0" - it-length-prefixed "^5.0.2" - it-map "^1.0.4" - it-merge "^1.0.0" - it-pipe "^1.1.0" + it-handshake "^4.1.2" + it-length-prefixed "^8.0.2" + it-map "^1.0.6" + it-merge "^1.0.3" + it-pair "^2.0.2" + it-pipe "^2.0.3" it-sort "^1.0.1" - it-take "^1.0.0" - libp2p-crypto "^0.21.2" - libp2p-interfaces "^4.0.0" - libp2p-utils "^0.4.0" - mafmt "^10.0.0" + it-stream-types "^1.0.4" merge-options "^3.0.4" - mortice "^2.0.1" - multiaddr "^10.0.0" - multiformats "^9.0.0" - multistream-select "^3.0.0" + multiformats "^9.6.3" mutable-proxy "^1.0.0" - nat-api "^0.3.1" - node-forge "^1.2.1" - p-any "^3.0.0" + node-forge "^1.3.1" p-fifo "^1.0.0" - p-retry "^4.4.0" - p-settle "^4.1.1" - peer-id "^0.16.0" - private-ip "^2.1.0" - protobufjs "^6.10.2" + p-retry "^5.0.0" + p-settle "^5.0.0" + private-ip "^2.3.3" + protons-runtime "^3.0.1" retimer "^3.0.0" sanitize-filename "^1.6.3" set-delayed-interval "^1.0.0" - streaming-iterables "^6.0.0" timeout-abort-controller "^3.0.0" + uint8arraylist "^2.3.2" uint8arrays "^3.0.0" - varint "^6.0.0" - wherearewe "^1.0.0" + wherearewe "^2.0.0" xsalsa20 "^1.1.0" lie@3.1.1: @@ -3589,6 +4635,11 @@ lie@3.1.1: dependencies: immediate "~3.0.5" +load-script@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-script/-/load-script-2.0.0.tgz#40821aaa59e9bbe7be2e28b6ab053e6f44330fa1" + integrity sha512-km6cyoPW4rM22JMGb+SHUKPMZVDpUaMpMAKrv8UHWllIxc/qjgMGHD91nY+5hM+/NFs310OZ2pqQeJKs7HqWPA== + localforage@^1.10.0: version "1.10.0" resolved "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz" @@ -3625,11 +4676,6 @@ lodash.merge@^4.6.2: resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash.throttle@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz" - integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ= - lodash@^4.17.15: version "4.17.21" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" @@ -3648,6 +4694,19 @@ long@^4.0.0: resolved "https://registry.npmjs.org/long/-/long-4.0.0.tgz" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== +long@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/long/-/long-5.2.0.tgz#2696dadf4b4da2ce3f6f6b89186085d94d52fd61" + integrity sha512-9RTUNjK60eJbx3uz+TEGF7fUr29ZDxR5QzXcyDpeSfeH28S9ycINflOgOlppit5U+4kNTe83KQnMEerw7GmE8w== + +longbits@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/longbits/-/longbits-1.1.0.tgz#d6a7b2411dead1cf4b79ee4586816e65c7356ab9" + integrity sha512-22U2exkkYy7sr7nuQJYx2NEZ2kEMsC69+BxM5h8auLvkVIJa+LwAB5mFIExnuW2dFuYXFOWsFMKXjaWiq/htYQ== + dependencies: + byte-access "^1.0.1" + uint8arraylist "^2.0.0" + lru-cache@^7.4.0: version "7.8.0" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.8.0.tgz" @@ -3733,18 +4792,6 @@ micromatch@^4.0.4: braces "^3.0.2" picomatch "^2.3.1" -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12, mime-types@~2.1.19: - version "2.1.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" @@ -3757,7 +4804,7 @@ minimatch@4.2.1: dependencies: brace-expansion "^1.1.7" -minimatch@^3.0.4: +minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.1.1: version "3.1.2" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -3771,7 +4818,7 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" -minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: version "1.2.6" resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== @@ -3781,6 +4828,13 @@ mkdirp-classic@^0.5.2: resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== +mkdirp@^0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" @@ -3824,6 +4878,11 @@ module-definition@^3.3.1: ast-module-types "^3.0.0" node-source-walk "^4.0.0" +module-error@^1.0.1, module-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/module-error/-/module-error-1.0.2.tgz#8d1a48897ca883f47a45816d4fb3e3c6ba404d86" + integrity sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA== + module-lookup-amd@^7.0.1: version "7.0.1" resolved "https://registry.npmjs.org/module-lookup-amd/-/module-lookup-amd-7.0.1.tgz" @@ -3835,7 +4894,7 @@ module-lookup-amd@^7.0.1: requirejs "^2.3.5" requirejs-config-file "^4.0.0" -mortice@^2.0.0, mortice@^2.0.1: +mortice@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/mortice/-/mortice-2.0.1.tgz" integrity sha512-9gsXmjq+5LZmXDIoyC/crf2i/7CUwDGSBEwSEsr1i/WfKmJ6DVt38B5kg6BE/WF/1/yfGJYiB1Wyiu423iI3nQ== @@ -3845,6 +4904,16 @@ mortice@^2.0.0, mortice@^2.0.1: p-queue "^6.0.0" promise-timeout "^1.3.0" +mortice@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mortice/-/mortice-3.0.0.tgz#41a31dd00c799c1d456223d1ca211557316383d4" + integrity sha512-g4rgq//2PWn4m52G6TpCSGmtWabJM8LKCZTQY4W7z0foiaQkqw+FG9a6pwIqUcTkCgBQoet8G/24V6adVMpnHw== + dependencies: + nanoid "^3.1.20" + observable-webworkers "^2.0.1" + p-queue "^7.2.0" + p-timeout "^5.0.2" + ms@2.1.2, ms@^2.1.1: version "2.1.2" resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" @@ -3855,13 +4924,6 @@ ms@2.1.3: resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multiaddr-to-uri@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-8.0.0.tgz" - integrity sha512-dq4p/vsOOUdVEd1J1gl+R2GFrXJQH8yjLtz4hodqdVbieg39LvBOdMQRdQnfbg5LSM/q1BYNVf5CBbwZFFqBgA== - dependencies: - multiaddr "^10.0.0" - multiaddr@^10.0.0, multiaddr@^10.0.1: version "10.0.1" resolved "https://registry.npmjs.org/multiaddr/-/multiaddr-10.0.1.tgz" @@ -3897,11 +4959,16 @@ multicodec@^3.0.1: uint8arrays "^3.0.0" varint "^6.0.0" -multiformats@^9.0.0, multiformats@^9.0.2, multiformats@^9.0.4, multiformats@^9.1.0, multiformats@^9.1.2, multiformats@^9.4.2, multiformats@^9.4.5, multiformats@^9.4.7, multiformats@^9.5.1, multiformats@^9.5.4: +multiformats@^9.0.0, multiformats@^9.0.2, multiformats@^9.0.4, multiformats@^9.1.0, multiformats@^9.4.2, multiformats@^9.4.5, multiformats@^9.4.7, multiformats@^9.5.1, multiformats@^9.5.4: version "9.6.4" resolved "https://registry.npmjs.org/multiformats/-/multiformats-9.6.4.tgz" integrity sha512-fCCB6XMrr6CqJiHNjfFNGT0v//dxOBMrOMqUIzpPc/mmITweLEyhvMpY9bF+jZ9z3vaMAau5E8B68DW77QMXkg== +multiformats@^9.6.3, multiformats@^9.6.4: + version "9.7.1" + resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.7.1.tgz#ab348e5fd6f8e7fb3fd56033211bda48854e2173" + integrity sha512-TaVmGEBt0fhxiNJMGphBfB+oGvUxFs8KgGvgl8d3C+GWtrFcvXdJ2196eg+dYhmSFClmgFfSfJEklo+SZzdNuw== + multihashes@^4.0.1, multihashes@^4.0.2: version "4.0.3" resolved "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz" @@ -3923,23 +4990,6 @@ multihashing-async@^2.0.0: murmurhash3js-revisited "^3.0.0" uint8arrays "^3.0.0" -multistream-select@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/multistream-select/-/multistream-select-3.0.2.tgz" - integrity sha512-ICGA8DAviZj6Xo1NkaRV3J38M+tFDoWiGtO1ksluyMnskAsdGjAzocg806OzpQPivNGWWboX3CrFT2Tk4UdYXA== - dependencies: - abortable-iterator "^3.0.0" - bl "^5.0.0" - debug "^4.1.1" - err-code "^3.0.1" - it-first "^1.0.6" - it-handshake "^2.0.0" - it-length-prefixed "^5.0.0" - it-pipe "^1.0.1" - it-reader "^3.0.0" - p-defer "^3.0.0" - uint8arrays "^3.0.0" - murmurhash3js-revisited@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz" @@ -3965,23 +5015,16 @@ napi-macros@~2.0.0: resolved "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz" integrity sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg== -nat-api@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/nat-api/-/nat-api-0.3.1.tgz" - integrity sha512-5cyLugEkXnKSKSvVjKjxxPMLDnkwY3boZLbATWwiGJ4T/3UvIpiQmzb2RqtxxEFcVo/7PwsHPGN0MosopONO8Q== - dependencies: - async "^3.2.0" - debug "^4.2.0" - default-gateway "^6.0.2" - request "^2.88.2" - unordered-array-remove "^1.0.2" - xml2js "^0.1.0" - native-fetch@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz" integrity sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw== +native-fetch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/native-fetch/-/native-fetch-4.0.2.tgz#75c8a44c5f3bb021713e5e24f2846750883e49af" + integrity sha512-4QcVlKFtv2EYVS5MBgsGX5+NWKtbDbIECdUXDBGDMAZXq3Jkv9zf+y8iS7Ub8fEdga3GpYeazp9gauNqXHJOCg== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" @@ -3997,7 +5040,7 @@ node-fetch@2.6.7, node-fetch@^2.6.1, "node-fetch@https://registry.npmjs.org/@ach resolved "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz" integrity sha512-iTASGs+HTFK5E4ZqcMsHmeJ4zodyq8L38lZV33jwqcBJYoUt3HjN4+ot+O9/0b+ke8ddE7UgOtVuZN/OkV19/g== -node-forge@^1.2.1: +node-forge@^1.1.0, node-forge@^1.3.1: version "1.3.1" resolved "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz" integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== @@ -4014,6 +5057,14 @@ node-source-walk@^4.0.0, node-source-walk@^4.2.0, node-source-walk@^4.2.2: dependencies: "@babel/parser" "^7.0.0" +noms@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/noms/-/noms-0.0.0.tgz#da8ebd9f3af9d6760919b27d9cdc8092a7332859" + integrity sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow== + dependencies: + inherits "^2.0.1" + readable-stream "~1.0.31" + normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" @@ -4026,16 +5077,36 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== +object-inspect@^1.12.0, object-inspect@^1.9.0: + version "1.12.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.2: + version "4.1.3" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.3.tgz#d36b7700ddf0019abb6b1df1bb13f6445f79051f" + integrity sha512-ZFJnX3zltyjcYJL0RoCJuzb+11zWGyaDbjgxZbdV7rFEcHQuYxrZqhow67aA7xpes6LhojyFDaBKAFfogQrikA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" observable-webworkers@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/observable-webworkers/-/observable-webworkers-1.0.0.tgz" integrity sha512-+cECwCR8IEh8UY5nefQVLO9Cydqpk1izO+o7BABmKjXfJZyEOzBWY3ss5jbOPM6KmEa9aQExvAtTW6tVTOsNAQ== +observable-webworkers@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/observable-webworkers/-/observable-webworkers-2.0.1.tgz#7d9086ebc567bd318b46ba0506b10cedf3813878" + integrity sha512-JI1vB0u3pZjoQKOK1ROWzp0ygxSi7Yb0iR+7UNsw4/Zn4cQ0P3R7XL38zac/Dy2tEA7Lg88/wIJTjF8vYXZ0uw== + once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" @@ -4044,9 +5115,8 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: wrappy "1" one-webcrypto@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/one-webcrypto/-/one-webcrypto-1.0.3.tgz" - integrity sha512-fu9ywBVBPx0gS9K0etIROTiCkvI5S1TDjFsYFb3rC1ewFxeOqsbzq7aIMBHsYfrTHBcGXJaONXXjTl8B01cW1Q== + version "1.0.4" + resolved "https://codeload.github.com/fission-codes/one-webcrypto/tar.gz/09085089994afcb949566481880c39156a4f3031" onetime@^5.1.0, onetime@^5.1.2: version "5.1.2" @@ -4094,24 +5164,23 @@ ora@^5.4.1: strip-ansi "^6.0.0" wcwidth "^1.0.1" -p-any@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/p-any/-/p-any-3.0.0.tgz" - integrity sha512-5rqbqfsRWNb0sukt0awwgJMlaep+8jV45S15SKKB34z4UuzjcofIfnriCBhWjZP2jbVtjt9yRl7buB6RlKsu9w== - dependencies: - p-cancelable "^2.0.0" - p-some "^5.0.0" - -p-cancelable@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz" - integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== - p-defer@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz" integrity sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw== +p-defer@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-4.0.0.tgz#8082770aeeb10eb6b408abe91866738741ddd5d2" + integrity sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ== + +p-event@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/p-event/-/p-event-5.0.1.tgz#614624ec02ae7f4f13d09a721c90586184af5b0c" + integrity sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ== + dependencies: + p-timeout "^5.0.2" + p-fifo@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/p-fifo/-/p-fifo-1.0.0.tgz" @@ -4125,7 +5194,7 @@ p-finally@^1.0.0: resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= -p-limit@^2.2.0, p-limit@^2.2.2: +p-limit@^2.2.0: version "2.3.0" resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== @@ -4139,6 +5208,13 @@ p-limit@^3.0.2: dependencies: yocto-queue "^0.1.0" +p-limit@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" + integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== + dependencies: + yocto-queue "^1.0.0" + p-locate@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" @@ -4153,14 +5229,7 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -p-queue@^6.0.0, p-queue@^6.2.1, p-queue@^6.3.0, p-queue@^6.6.1, p-queue@^6.6.2: +p-queue@^6.0.0: version "6.6.2" resolved "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz" integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== @@ -4168,34 +5237,34 @@ p-queue@^6.0.0, p-queue@^6.2.1, p-queue@^6.3.0, p-queue@^6.6.1, p-queue@^6.6.2: eventemitter3 "^4.0.4" p-timeout "^3.2.0" -p-reflect@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/p-reflect/-/p-reflect-2.1.0.tgz" - integrity sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg== - -p-retry@^4.4.0: - version "4.6.1" - resolved "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz" - integrity sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA== +p-queue@^7.2.0, p-queue@^7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-7.3.0.tgz#90dfa104894b286dc2f3638961380fb6dc262e55" + integrity sha512-5fP+yVQ0qp0rEfZoDTlP2c3RYBgxvRsw30qO+VtPPc95lyvSG+x6USSh1TuLB4n96IO6I8/oXQGsTgtna4q2nQ== dependencies: - "@types/retry" "^0.12.0" - retry "^0.13.1" + eventemitter3 "^4.0.7" + p-timeout "^5.0.2" -p-settle@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/p-settle/-/p-settle-4.1.1.tgz" - integrity sha512-6THGh13mt3gypcNMm0ADqVNCcYa3BK6DWsuJWFCuEKP1rpY+OKGp7gaZwVmLspmic01+fsg/fN57MfvDzZ/PuQ== +p-reflect@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-reflect/-/p-reflect-3.1.0.tgz#bba22747439b5fc50a7f626e8e909dc9b888218d" + integrity sha512-3sG3UlpisPSaX+o7u2q01hIQmrpkvdl5GSO1ZwL7pfc5kHB2bPF0eFNCfYTrW1/LTUdgmPwBAvmT0Zr8eSmaAQ== + +p-retry@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-5.1.1.tgz#1950b9be441474a67f852811c1d4ec955885d2c8" + integrity sha512-i69WkEU5ZAL8mrmdmVviWwU+DN+IUF8f4sSJThoJ3z5A7Nn5iuO5ROX3Boye0u+uYQLOSfgFl7SuFZCjlAVbQA== dependencies: - p-limit "^2.2.2" - p-reflect "^2.1.0" + "@types/retry" "0.12.1" + retry "^0.13.1" -p-some@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/p-some/-/p-some-5.0.0.tgz" - integrity sha512-Js5XZxo6vHjB9NOYAzWDYAIyyiPvva0DWESAIWIK7uhSpGsyg5FwUPxipU/SOQx5x9EqhOh545d1jo6cVkitig== +p-settle@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/p-settle/-/p-settle-5.1.0.tgz#6abf85e073d6b137b48ed70f8a8d94660454bd17" + integrity sha512-ujR6UFfh09ziOKyC5aaJak5ZclsjlLw57SYtFZg6yllMofyygnaibQRZ4jf6QPWqoOCGUXyb1cxUKELeAyKO7g== dependencies: - aggregate-error "^3.0.0" - p-cancelable "^2.0.0" + p-limit "^4.0.0" + p-reflect "^3.1.0" p-timeout@^3.2.0: version "3.2.0" @@ -4204,20 +5273,25 @@ p-timeout@^3.2.0: dependencies: p-finally "^1.0.0" -p-timeout@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz" - integrity sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw== +p-timeout@^5.0.2: + version "5.1.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-5.1.0.tgz#b3c691cf4415138ce2d9cfe071dba11f0fee085b" + integrity sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew== + +p-timeout@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-6.0.0.tgz#84c210f5500da1af4c31ab2768d794e5e081dd91" + integrity sha512-5iS61MOdUMemWH9CORQRxVXTp9g5K8rPnI9uQpo97aWgsH3vVXKjkIhDi+OgIDmN3Ly9+AZ2fZV01Wut1yzfKA== p-try@^2.0.0: version "2.2.0" resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -pako@^1.0.2: - version "1.0.11" - resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== +pako@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pako/-/pako-2.0.4.tgz#6cebc4bbb0b6c73b0d5b8d7e8476e2b2fbea576d" + integrity sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg== parent-module@^1.0.0: version "1.0.1" @@ -4271,27 +5345,11 @@ path-type@^4.0.0: resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -peer-id@^0.16.0: - version "0.16.0" - resolved "https://registry.npmjs.org/peer-id/-/peer-id-0.16.0.tgz" - integrity sha512-EmL7FurFUduU9m1PS9cfJ5TAuCvxKQ7DKpfx3Yj6IKWyBRtosriFuOag/l3ni/dtPgPLwiA4R9IvpL7hsDLJuQ== - dependencies: - class-is "^1.1.0" - libp2p-crypto "^0.21.0" - multiformats "^9.4.5" - protobufjs "^6.10.2" - uint8arrays "^3.0.0" - pend@~1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - picocolors@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" @@ -4386,7 +5444,7 @@ pretty-ms@^7.0.1: dependencies: parse-ms "^2.1.0" -private-ip@^2.1.0, private-ip@^2.1.1, private-ip@^2.3.3: +private-ip@^2.1.1, private-ip@^2.3.3: version "2.3.3" resolved "https://registry.npmjs.org/private-ip/-/private-ip-2.3.3.tgz" integrity sha512-5zyFfekIVUOTVbL92hc8LJOtE/gyGHeREHkJ2yTyByP8Q2YZVoBqLg3EfYLeF0oVvGqtaEX2t2Qovja0/gStXw== @@ -4396,6 +5454,11 @@ private-ip@^2.1.0, private-ip@^2.1.1, private-ip@^2.3.3: is-ip "^3.1.0" netmask "^2.0.2" +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + progress@2.0.3: version "2.0.3" resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" @@ -4415,7 +5478,7 @@ proper-lockfile@^4.0.0: retry "^0.12.0" signal-exit "^3.0.2" -protobufjs@^6.10.2, protobufjs@^6.11.2: +protobufjs@^6.10.2: version "6.11.2" resolved "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz" integrity sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw== @@ -4434,16 +5497,57 @@ protobufjs@^6.10.2, protobufjs@^6.11.2: "@types/node" ">=13.7.0" long "^4.0.0" +protobufjs@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.0.0.tgz#8c678e1351fd926178fce5a4213913e8d990974f" + integrity sha512-ffNIEm+quOcYtQvHdW406v1NQmZSuqVklxsXk076BtuFnlYZfigLU+JOMrTD8TUOyqHYbRI/fSVNvgd25YeN3w== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.1" + "@types/node" ">=13.7.0" + long "^5.0.0" + +protons-runtime@^1.0.3, protons-runtime@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/protons-runtime/-/protons-runtime-1.0.4.tgz#85db97f82fb03a1205eafb591904736ba34e2972" + integrity sha512-DSKWjAgwaXhtYO5Jo/MrU8n/75I/P2IhxU0Fk/lSrXx6Gxl5DH+I6cHcbGAYFmAlOBmU4QRa0mvVme8VXlDeUg== + dependencies: + uint8arraylist "^1.4.0" + uint8arrays "^3.0.0" + +protons-runtime@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/protons-runtime/-/protons-runtime-2.0.2.tgz#2e4f0a27eb7d7ff502921270353ad322a081a161" + integrity sha512-6aBGGn4scICr82Emc6+rS1qhxp9I5YUdfaR4lR10BJ6skyQxbh1vEHkrzGqQrawogwbChDrjLG8H6dI+PLh2tg== + dependencies: + byte-access "^1.0.1" + longbits "^1.1.0" + uint8-varint "^1.0.2" + uint8arraylist "^2.0.0" + uint8arrays "^3.0.0" + +protons-runtime@^3.0.1, protons-runtime@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/protons-runtime/-/protons-runtime-3.1.0.tgz#500918da4a2d97aa28007f30c3f2f7021e05c0b2" + integrity sha512-S1iSPQC0McdHKJRi0XcATBkWgwWPx46UDfrnshYDXBvGHSYqkFtn4MQ8Gatf67w7FzFtHivA+Hb0ZPq56upG8w== + dependencies: + protobufjs "^7.0.0" + uint8arraylist "^2.3.2" + proxy-from-env@1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== -psl@^1.1.28: - version "1.8.0" - resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - pump@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" @@ -4452,7 +5556,7 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -punycode@^2.1.0, punycode@^2.1.1: +punycode@^2.1.0: version "2.1.1" resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== @@ -4480,12 +5584,7 @@ pure-rand@^5.0.1: resolved "https://registry.npmjs.org/pure-rand/-/pure-rand-5.0.1.tgz" integrity sha512-ksWccjmXOHU2gJBnH0cK1lSYdvSZ0zLoCMSz/nTGh6hDvCSgcRxDyIcOBD6KNxFz3xhMPm/T267Tbe2JRymKEQ== -qs@~6.5.2: - version "6.5.3" - resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== - -queue-microtask@^1.1.0, queue-microtask@^1.2.2, queue-microtask@^1.2.3: +queue-microtask@^1.2.2, queue-microtask@^1.2.3: version "1.2.3" resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== @@ -4507,7 +5606,7 @@ rabin-wasm@^0.1.4: node-fetch "^2.6.1" readable-stream "^3.6.0" -randombytes@^2.0.3, randombytes@^2.1.0: +randombytes@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== @@ -4545,6 +5644,36 @@ readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" +readable-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.1.0.tgz#280d0a29f559d3fb684a277254e02b6f61ae0631" + integrity sha512-sVisi3+P2lJ2t0BPbpK629j8wRW06yKGJUcaLAGXPAUhyUxVJm7VsCTit1PFgT4JHUDMrGNR+ZjSKpzGaRF3zw== + dependencies: + abort-controller "^3.0.0" + +readable-stream@~1.0.31: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + readdirp@~3.6.0: version "3.6.0" resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" @@ -4564,37 +5693,20 @@ reflect-metadata@^0.1.13: resolved "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz" integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== +regexp.prototype.flags@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + functions-have-names "^1.2.2" + regexpp@^3.2.0: version "3.2.0" resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -request@^2.88.2: - version "2.88.2" - resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" @@ -4681,12 +5793,17 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: +safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -"safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +"safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -4705,9 +5822,9 @@ sass-lookup@^3.0.0: dependencies: commander "^2.16.0" -sax@>=0.1.1: +sax@>=0.6.0: version "1.2.4" - resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== seedrandom@^3.0.5: @@ -4755,6 +5872,15 @@ shiki@^0.10.1: vscode-oniguruma "^1.6.1" vscode-textmate "5.2.0" +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.7" resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" @@ -4765,6 +5891,11 @@ slash@^3.0.0: resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== + socket.io-client@^4.1.2: version "4.4.1" resolved "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.4.1.tgz" @@ -4792,12 +5923,27 @@ sort-keys@^4.2.0: dependencies: is-plain-obj "^2.0.0" +sort-keys@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-5.0.0.tgz#5d775f8ae93ecc29bc7312bbf3acac4e36e3c446" + integrity sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw== + dependencies: + is-plain-obj "^4.0.0" + source-map-js@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -source-map@~0.6.1: +source-map-support@^0.5.6: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@~0.6.1: version "0.6.1" resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== @@ -4812,21 +5958,6 @@ sprintf-js@1.1.2: resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz" integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== -sshpk@^1.7.0: - version "1.17.0" - resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - stable@^0.1.8: version "0.1.8" resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz" @@ -4846,11 +5977,6 @@ stream-to-it@^0.2.2: dependencies: get-iterator "^1.0.2" -streaming-iterables@^6.0.0: - version "6.2.0" - resolved "https://registry.npmjs.org/streaming-iterables/-/streaming-iterables-6.2.0.tgz" - integrity sha512-3AYC8oB60WyD1ic7uHmN/vm2oRGzRnQ3XFBl/bFMDi1q1+nc5/vjMmiE4vroIya3jG59t87VpyAj/iXYxyw9AA== - string-width@^4.1.0, string-width@^4.2.0: version "4.2.3" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" @@ -4860,6 +5986,24 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +string.prototype.trimend@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" + integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + +string.prototype.trimstart@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" + integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" @@ -4867,6 +6011,18 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + stringify-object@^3.2.1: version "3.3.0" resolved "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz" @@ -4883,6 +6039,11 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + strip-final-newline@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" @@ -4973,6 +6134,14 @@ throttle-debounce@^3.0.1: resolved "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz" integrity sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg== +through2@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + through@^2.3.8: version "2.3.8" resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" @@ -4983,13 +6152,6 @@ thunky@^1.0.2: resolved "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz" integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== -time-cache@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/time-cache/-/time-cache-0.3.0.tgz" - integrity sha1-7Q388P2kXNyV+9YB/agw6/G9XYs= - dependencies: - lodash.throttle "^4.1.1" - timeout-abort-controller@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-3.0.0.tgz" @@ -5009,14 +6171,6 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - truncate-utf8-bytes@^1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz" @@ -5024,6 +6178,29 @@ truncate-utf8-bytes@^1.0.0: dependencies: utf8-byte-length "^1.0.1" +ts-mocha@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/ts-mocha/-/ts-mocha-9.0.2.tgz#c1ef0248874d04a0f26dd9bd8d88e617a8d82ab1" + integrity sha512-WyQjvnzwrrubl0JT7EC1yWmNpcsU3fOuBFfdps30zbmFBgKniSaSOyZMZx+Wq7kytUs5CY+pEbSYEbGfIKnXTw== + dependencies: + ts-node "7.0.1" + optionalDependencies: + tsconfig-paths "^3.5.0" + +ts-node@7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-7.0.1.tgz#9562dc2d1e6d248d24bc55f773e3f614337d9baf" + integrity sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw== + dependencies: + arrify "^1.0.0" + buffer-from "^1.1.0" + diff "^3.1.0" + make-error "^1.1.1" + minimist "^1.2.0" + mkdirp "^0.5.1" + source-map-support "^0.5.6" + yn "^2.0.0" + ts-node@^10.4.0: version "10.7.0" resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz" @@ -5043,6 +6220,35 @@ ts-node@^10.4.0: v8-compile-cache-lib "^3.0.0" yn "3.1.1" +ts-node@^10.7.0: + version "10.9.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +tsconfig-paths@^3.5.0: + version "3.14.1" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" + integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.6" + strip-bom "^3.0.0" + tslib@^1.8.1: version "1.14.1" resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" @@ -5060,18 +6266,6 @@ tsutils@^3.21.0: dependencies: tslib "^1.8.1" -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - tweetnacl@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz" @@ -5122,6 +6316,30 @@ typescript@^4.5.5: resolved "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz" integrity sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw== +uint8-varint@^1.0.1, uint8-varint@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/uint8-varint/-/uint8-varint-1.0.3.tgz#9877e77eb38eee5b47fd8444ed5a38409f879dd6" + integrity sha512-ESs/P/AYPy2wWZCT2V6Tg7RPqA6jzlhJbdsNPFvbDeIrDxj12dwTcm0rD9yFlnmgEf6vRBCZrP3d0SiRTcPwSQ== + dependencies: + byte-access "^1.0.0" + longbits "^1.1.0" + uint8arraylist "^2.0.0" + uint8arrays "^3.1.0" + +uint8arraylist@^1.2.0, uint8arraylist@^1.4.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/uint8arraylist/-/uint8arraylist-1.6.0.tgz#1a600e7b9bfb982631ee5ac130b7998becaaa998" + integrity sha512-QOh6SQJQj/eEqQ6NJ8SI9LH875uI2ShcOtWE3Yupci0RaHsZm4oP+mUCJzBzKkp+8gCK7M4l+6Ubvlaimt7CSw== + dependencies: + uint8arrays "^3.0.0" + +uint8arraylist@^2.0.0, uint8arraylist@^2.1.0, uint8arraylist@^2.1.1, uint8arraylist@^2.3.1, uint8arraylist@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/uint8arraylist/-/uint8arraylist-2.3.2.tgz#d301f6cb570828b456ef09655c0a4d3b0929ef06" + integrity sha512-4ybc/jixmtGhUrebJ0bzB95TjEbskWxBKBRrAozw7P6WcAcZdPMYSLdDuNoEEGo/Cwe+0TNic9CXzWUWzy1quw== + dependencies: + uint8arrays "^3.1.0" + uint8arrays@^2.0.5: version "2.1.10" resolved "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz" @@ -5136,6 +6354,23 @@ uint8arrays@^3.0.0: dependencies: multiformats "^9.4.2" +uint8arrays@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.0.tgz#8186b8eafce68f28bd29bd29d683a311778901e2" + integrity sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog== + dependencies: + multiformats "^9.4.2" + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + unbzip2-stream@1.4.3: version "1.4.3" resolved "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz" @@ -5149,10 +6384,10 @@ uniq@^1.0.1: resolved "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz" integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= -unordered-array-remove@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz" - integrity sha1-xUbo+I4xegzyZEyX7LV9umbSUO8= +untildify@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" + integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== uri-js@^4.2.2: version "4.4.1" @@ -5166,21 +6401,38 @@ utf8-byte-length@^1.0.1: resolved "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz" integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E= -util-deprecate@^1.0.1: +util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== +util@^0.12.4: + version "0.12.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.4.tgz#66121a31420df8f01ca0c464be15dfa1d1850253" + integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + safe-buffer "^5.1.2" + which-typed-array "^1.1.2" + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== v8-compile-cache-lib@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz" integrity sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA== +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + v8-compile-cache@^2.0.3: version "2.3.0" resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz" @@ -5203,15 +6455,6 @@ varint@^6.0.0: resolved "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz" integrity sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg== -verror@1.10.0: - version "1.10.0" - resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - vscode-oniguruma@^1.6.1: version "1.6.2" resolved "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz" @@ -5241,6 +6484,36 @@ wherearewe@^1.0.0: dependencies: is-electron "^2.2.0" +wherearewe@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/wherearewe/-/wherearewe-2.0.1.tgz#37c97a7bf112dca8db34bfefb2f6c997af312bb8" + integrity sha512-XUguZbDxCA2wBn2LoFtcEhXL6AXo+hVjGonwhSTTTU9SzbWG8Xu3onNIpzf9j/mYUcJQ0f+m37SzG77G851uFw== + dependencies: + is-electron "^2.2.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-typed-array@^1.1.2: + version "1.1.8" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.8.tgz#0cfd53401a6f334d90ed1125754a42ed663eb01f" + integrity sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.20.0" + for-each "^0.3.3" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.9" + which@2.0.2, which@^2.0.1: version "2.0.2" resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" @@ -5277,22 +6550,28 @@ ws@8.5.0: resolved "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz" integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== -ws@^7.3.1: - version "7.5.7" - resolved "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz" - integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== +ws@^8.4.0: + version "8.8.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0" + integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== ws@~8.2.3: version "8.2.3" resolved "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz" integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== -xml2js@^0.1.0: - version "0.1.14" - resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.1.14.tgz" - integrity sha1-UnTmf1pkxfkpdM2FE54DMq3GuQw= +xml2js@^0.4.23: + version "0.4.23" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" + integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== dependencies: - sax ">=0.1.1" + sax ">=0.6.0" + xmlbuilder "~11.0.0" + +xmlbuilder@~11.0.0: + version "11.0.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" + integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== xmlhttprequest-ssl@~2.0.0: version "2.0.0" @@ -5304,6 +6583,11 @@ xsalsa20@^1.1.0: resolved "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.2.0.tgz" integrity sha512-FIr/DEeoHfj7ftfylnoFt3rAIRoWXpx2AoDfrT2qD2wtp7Dp+COajvs/Icb7uHqRW9m60f5iXZwdsJJO3kvb7w== +xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + xxhashjs@^0.2.2: version "0.2.2" resolved "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz" @@ -5331,7 +6615,7 @@ yargs-unparser@2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" -yargs@16.2.0: +yargs@16.2.0, yargs@^16.1.0: version "16.2.0" resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== @@ -5344,11 +6628,6 @@ yargs@16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yarn@^1.22.17: - version "1.22.18" - resolved "https://registry.npmjs.org/yarn/-/yarn-1.22.18.tgz" - integrity sha512-oFffv6Jp2+BTUBItzx1Z0dpikTX+raRdqupfqzeMKnoh7WD6RuPAxcqDkMUy9vafJkrB0YaV708znpuMhEBKGQ== - yauzl@^2.10.0: version "2.10.0" resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" @@ -5367,7 +6646,17 @@ yn@3.1.1: resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== +yn@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" + integrity sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ== + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +yocto-queue@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" + integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== From 9c113439e287a2f4e99b34af3a8c2b818023e53b Mon Sep 17 00:00:00 2001 From: Steven Vandevelde Date: Thu, 18 Aug 2022 19:01:32 +0200 Subject: [PATCH 2/3] Clean up --- .gitignore | 1 + package.json | 2 +- src/fs/protocol/private/mmpt.node.test.ts | 2 +- src/ipfs/node.ts | 2 +- tests/helpers/in-memory-ipfs.ts | 9 ++++++--- tests/helpers/loadCAR.ts | 4 ++-- tests/mocha-hook.ts | 3 ++- yarn.lock | 2 +- 8 files changed, 15 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 2ed0689ca..ea9d0176f 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ /node_modules /src/vendor /yarn-error.log +/fission-ipfs # Created by https://www.toptal.com/developers/gitignore/api/yarn,node,elm diff --git a/package.json b/package.json index 1d81b72b8..a3a1a66c7 100644 --- a/package.json +++ b/package.json @@ -96,7 +96,7 @@ "dependencies": { "@ipld/dag-cbor": "^7.0.2", "@ipld/dag-pb": "^2.1.17", - "@libp2p/interfaces": "^2.0.4", + "@libp2p/interface-keys": "^1.0.3", "@libp2p/peer-id": "^1.1.15", "@multiformats/multiaddr": "^10.3.3", "blockstore-core": "^2.0.1", diff --git a/src/fs/protocol/private/mmpt.node.test.ts b/src/fs/protocol/private/mmpt.node.test.ts index ae2a3fe38..a7fa96205 100644 --- a/src/fs/protocol/private/mmpt.node.test.ts +++ b/src/fs/protocol/private/mmpt.node.test.ts @@ -1,7 +1,7 @@ import expect from "expect" import crypto from "crypto" import { CID } from "multiformats/cid" -import { IPFS } from "ipfs-core" +import { IPFS } from "ipfs-core-types" import MMPT from "./mmpt.js" import { ipfsFromContext } from "../../../../tests/mocha-hook.js" diff --git a/src/ipfs/node.ts b/src/ipfs/node.ts index 98f12d02b..399472f69 100644 --- a/src/ipfs/node.ts +++ b/src/ipfs/node.ts @@ -12,7 +12,7 @@ import type { libp2p } from "ipfs-core/components/network" import type { Options as IPFSOptions } from "ipfs-core/types" import localforage from "localforage" -import * as keys from "@libp2p/interfaces/keys" +import * as keys from "@libp2p/interface-keys" import { multiaddr, Multiaddr } from "@multiformats/multiaddr" import { peerIdFromString } from "@libp2p/peer-id" diff --git a/tests/helpers/in-memory-ipfs.ts b/tests/helpers/in-memory-ipfs.ts index 3e6b6c59d..46f5728f7 100644 --- a/tests/helpers/in-memory-ipfs.ts +++ b/tests/helpers/in-memory-ipfs.ts @@ -1,4 +1,4 @@ -import type { IPFS } from "ipfs-core" +import type { IPFS } from "ipfs-core-types" import * as fs from "fs" import * as dagPB from "@ipld/dag-pb" @@ -18,7 +18,7 @@ export async function createInMemoryIPFS(): Promise { const memoryDs = new MemoryDatastore() const memoryBs = new MemoryBlockstore() - return await Ipfs.create({ + const ipfs = await Ipfs.create({ offline: true, silent: true, preload: { @@ -40,7 +40,8 @@ export async function createInMemoryIPFS(): Promise { } }, libp2p: { - peerDiscovery: [] + peerDiscovery: [], + connectionManager: { autoDial: false } }, repo: createRepo( dir, @@ -66,4 +67,6 @@ export async function createInMemoryIPFS(): Promise { } ) }) + + return ipfs } diff --git a/tests/helpers/loadCAR.ts b/tests/helpers/loadCAR.ts index c6653eb5e..c0a6e5a04 100644 --- a/tests/helpers/loadCAR.ts +++ b/tests/helpers/loadCAR.ts @@ -1,6 +1,6 @@ import * as fs from "fs" import all from "it-all" -import { IPFS } from "ipfs-core" +import { IPFS } from "ipfs-core-types" import { CID } from "multiformats" /** @@ -19,7 +19,7 @@ export async function loadCAR(filepath: string, ipfs: IPFS): Promise<{ roots: CI export async function loadCARWithRoot(filepath: string, ipfs: IPFS): Promise { const { roots } = await loadCAR(filepath, ipfs) const [rootCID] = roots - + if (rootCID == null) { throw new Error(`CAR file at ${filepath} doesn't have a root specified.`) } diff --git a/tests/mocha-hook.ts b/tests/mocha-hook.ts index b5aa18a36..283954fe9 100644 --- a/tests/mocha-hook.ts +++ b/tests/mocha-hook.ts @@ -1,6 +1,7 @@ +import type { IPFS } from "ipfs-core-types" import * as mocha from "mocha" import puppeteer from "puppeteer" -import { IPFS } from "ipfs-core" + import { createInMemoryIPFS } from "./helpers/in-memory-ipfs.js" import * as ipfsConfig from "../src/ipfs/config.js" diff --git a/yarn.lock b/yarn.lock index 7d5770a52..497ad48a5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -559,7 +559,7 @@ "@multiformats/multiaddr" "^10.2.0" it-stream-types "^1.0.4" -"@libp2p/interfaces@^2.0.0", "@libp2p/interfaces@^2.0.1", "@libp2p/interfaces@^2.0.3", "@libp2p/interfaces@^2.0.4": +"@libp2p/interfaces@^2.0.0", "@libp2p/interfaces@^2.0.1", "@libp2p/interfaces@^2.0.3": version "2.0.4" resolved "https://registry.yarnpkg.com/@libp2p/interfaces/-/interfaces-2.0.4.tgz#78d36637b59d864990d1c315e32f66a58f2a50df" integrity sha512-MfwkTFyHJtvwNxkjOjzkXyIVvKFtEW2Q3IGRJPyPQMrtB6ll0rGMTlyJ3BQS1bcD0YkNhggFm+8XiU2/0LCBhQ== From bfd1977fb85a0dafdb15ad717a0f91ae1f27600b Mon Sep 17 00:00:00 2001 From: Steven Vandevelde Date: Fri, 19 Aug 2022 10:06:18 +0200 Subject: [PATCH 3/3] Disable pubsub & re-enable bundled ipfs --- src/ipfs/config.ts | 14 +++++++------- src/ipfs/node.ts | 3 +++ tests/helpers/in-memory-ipfs.ts | 4 +++- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/ipfs/config.ts b/src/ipfs/config.ts index d50d0365d..5859eced2 100644 --- a/src/ipfs/config.ts +++ b/src/ipfs/config.ts @@ -53,10 +53,10 @@ export const pkgFromCDN = async (cdn_url: string): Promise => { }) } -// /** -// * Loads ipfs-core from the bundled `webnative/lib/vendor/ipfs.js` -// */ -// export const pkgFromBundle = (): Promise => { -// // @ts-ignore - Vendored dependency, generated at build time -// return import("../vendor/ipfs.js") -// } +/** + * Loads ipfs-core from the bundled `webnative/lib/vendor/ipfs.js` + */ +export const pkgFromBundle = (): Promise => { + // @ts-ignore - Vendored dependency, generated at build time + return import("../vendor/ipfs.js") +} diff --git a/src/ipfs/node.ts b/src/ipfs/node.ts index 399472f69..dd4225de2 100644 --- a/src/ipfs/node.ts +++ b/src/ipfs/node.ts @@ -84,6 +84,9 @@ export const OPTIONS: IPFSOptions = { Bootstrap: [], Discovery: { webRTCStar: { Enabled: false } + }, + Pubsub: { + Enabled: false } }, preload: { diff --git a/tests/helpers/in-memory-ipfs.ts b/tests/helpers/in-memory-ipfs.ts index 46f5728f7..545e8e129 100644 --- a/tests/helpers/in-memory-ipfs.ts +++ b/tests/helpers/in-memory-ipfs.ts @@ -10,7 +10,6 @@ import { MemoryDatastore } from "datastore-core/memory" import { MemoryBlockstore } from "blockstore-core/memory" - export async function createInMemoryIPFS(): Promise { const dir = tempDir() fs.mkdirSync(dir) @@ -37,6 +36,9 @@ export async function createInMemoryIPFS(): Promise { webRTCStar: { Enabled: false } + }, + Pubsub: { + Enabled: false } }, libp2p: {