diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 5805c006..ab102e4a 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -57,4 +57,4 @@ jobs:
yarn build
cd ../../examples/canvas
yarn install --frozen-lockfile
- yarn build
+ yarn build
\ No newline at end of file
diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
new file mode 100644
index 00000000..cda67006
--- /dev/null
+++ b/.github/workflows/docker.yml
@@ -0,0 +1,98 @@
+name: Build Docker Image
+on:
+ release:
+ types: [published]
+permissions:
+ packages: write
+env:
+ IMAGE: ghcr.io/${{ github.repository }}
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ platform:
+ - linux/amd64
+ - linux/arm64
+ steps:
+ - name: Prepare
+ run: |
+ platform=${{ matrix.platform }}
+ echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
+ - name: Checkout repository
+ uses: actions/checkout@v4
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v3
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v3
+ - name: Log in to the Container registry
+ uses: docker/login-action@v3
+ with:
+ registry: ghcr.io
+ username: ${{ github.actor }}
+ password: ${{ secrets.GITHUB_TOKEN }}
+ - name: Extract metadata (tags, labels) for Docker
+ id: meta
+ uses: docker/metadata-action@v5
+ with:
+ images: ${{ env.IMAGE }}
+ tags: |
+ ${{ github.event.release.tag_name }}
+ latest
+ - name: Build and push Docker image
+ id: build
+ uses: docker/build-push-action@v6
+ with:
+ context: ./packages/node
+ file: ./packages/node/Dockerfile
+ platforms: ${{ matrix.platform }}
+ labels: ${{ steps.meta.outputs.labels }}
+ tags: |
+ ${{ env.IMAGE }}:${{ github.event.release.tag_name }}
+ ${{ env.IMAGE }}:latest
+ outputs: type=image,name=${{ env.IMAGE }},name-canonical=true,push=true
+ - name: Export digest
+ run: |
+ mkdir -p /tmp/digests
+ digest="${{ steps.build.outputs.digest }}"
+ touch "/tmp/digests/${digest#sha256:}"
+ - name: Upload digest
+ uses: actions/upload-artifact@v4
+ with:
+ name: digests-${{ env.PLATFORM_PAIR }}
+ path: /tmp/digests/*
+ if-no-files-found: error
+ retention-days: 1
+ merge:
+ runs-on: ubuntu-latest
+ needs:
+ - build
+ steps:
+ - name: Download digests
+ uses: actions/download-artifact@v4
+ with:
+ path: /tmp/digests
+ pattern: digests-*
+ merge-multiple: true
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v3
+ - name: Docker meta
+ id: meta
+ uses: docker/metadata-action@v5
+ with:
+ images: ${{ env.IMAGE }}
+ - name: Login to Docker Hub
+ uses: docker/login-action@v3
+ with:
+ registry: ghcr.io
+ username: ${{ github.actor }}
+ password: ${{ secrets.GITHUB_TOKEN }}
+ - name: Create manifest list and push
+ working-directory: /tmp/digests
+ run: |
+ docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
+ $(printf '${{ env.IMAGE }}@sha256:%s ' *)
+ - name: Inspect image
+ run: |
+ docker buildx imagetools inspect ${{ env.IMAGE }}:${{ steps.meta.outputs.version }}
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
new file mode 100644
index 00000000..6a1be293
--- /dev/null
+++ b/.github/workflows/docs.yml
@@ -0,0 +1,31 @@
+name: Generate docs
+on:
+ release:
+ types: [published]
+permissions:
+ pages: write
+ id-token: write
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - name: Set up Node
+ uses: actions/setup-node@v4
+ - run: |
+ cd packages/node && yarn && yarn build
+ cd ../.. && yarn docs
+ - name: Upload artifact
+ uses: actions/upload-pages-artifact@v3
+ with:
+ path: ./docs
+ deploy:
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ runs-on: ubuntu-latest
+ needs: build
+ steps:
+ - name: Deploy to GitHub Pages
+ id: deployment
+ uses: actions/deploy-pages@v4
diff --git a/.gitignore b/.gitignore
index 0d913a9f..9f22aa2a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
dist/
+docs/
node_modules/
**/tsconfig.tsbuildinfo
diff --git a/README.md b/README.md
index d05f7f1b..db34e442 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,43 @@
-# ts-topology
-The official TypeScript implementation of Topology Protocol
+
+

+
+
The TypeScript implementation of the Topology Protocol
+
+
+
+
+
+[](https://topology-foundation.github.io/ts-topology/)
+[](https://github.com/topology-foundation/ts-topology/blob/main/LICENSE)
+[](https://github.com/topology-foundation/ts-topology/issues)
+[](https://github.com/topology-foundation/ts-topology/pulls)
+
+[](https://topology.gg)
+[](https://github.com/topology-foundation)
+[](https://x.com/topology_gg)
+[](https://t.me/topologyfrens)
+[](https://discord.gg/GUDGzBP5mn)
+
+
+# Overview
+
+This is the official TypeScript implementation of the Topology Protocol. The Topology Protocol is a local-first decentralized protocol for real-time applications. It introduces a new concept for Conflict-free Replicated Objects (CRO), that are built on top of libp2p and composed of CRDTs.
+
+# Specifications
+
+The specifications of the Topology Protocol are shared across different client implementations and can be found in the [specs repository](https://github.com/topology-foundation/specs). Currently the specifications are starting to be written based on this implementation.
+
+# Packages
+
+This repository is a monorepo that contains the following packages:
+
+| Package | Description |
+|---------|--------------------------------------------------|
+| crdt | CRDT implementations intended to use as builtins |
+| network | Network middleware to abstract libp2p |
+| node | Topology Node library and CLI |
+| object | CRO objects structure implementation |
+
+# Examples
+
+All the examples are located in the `examples` directory. Currently, there is only one example, which is a simple canvas where you can paint pixels. You can also look into the [counter-splash](https://github.com/topology-foundation/counter-splash) (demo for EthCC 2024) repository for a more complex example.
diff --git a/docker-compose.yml b/docker-compose.yml
index 4fd21b73..c12e0e13 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -19,7 +19,7 @@ services:
dockerfile: Dockerfile
ports:
- 50000:50000
- command: relay
+ command: -m relay
volumes:
ssl_data:
diff --git a/examples/canvas/package.json b/examples/canvas/package.json
index 653585a5..f2361d5d 100644
--- a/examples/canvas/package.json
+++ b/examples/canvas/package.json
@@ -1,6 +1,6 @@
{
"name": "ts-topology-examples-canvas",
- "version": "1.0.0",
+ "version": "0.0.22-2",
"license": "MIT",
"scripts": {
"build": "webpack",
@@ -9,10 +9,10 @@
"start": "ts-node ./src/index.ts"
},
"dependencies": {
- "@topology-foundation/crdt": "file:../../packages/crdt",
- "@topology-foundation/network": "file:../../packages/network",
- "@topology-foundation/node": "file:../../packages/node",
- "@topology-foundation/object": "file:../../packages/object",
+ "@topology-foundation/crdt": "0.0.22-2",
+ "@topology-foundation/network": "0.0.22-2",
+ "@topology-foundation/node": "0.0.22-2",
+ "@topology-foundation/object": "0.0.22-2",
"crypto-browserify": "^3.12.0",
"process": "^0.11.10",
"stream-browserify": "^3.0.0",
diff --git a/package.json b/package.json
index dc05706e..a462fee5 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "ts-topology",
"description": "The official TypeScript implementation of Topology Protocol",
- "version": "0.0.20",
+ "version": "0.0.22-2",
"license": "MIT",
"homepage": "https://topology.gg/",
"repository": {
@@ -12,15 +12,17 @@
"url": "https://github.com/topology-foundation/ts-topology/issues"
},
"scripts": {
+ "docs": "typedoc",
"release": "release-it",
"test": "vitest"
},
"devDependencies": {
"@release-it-plugins/workspaces": "^4.2.0",
"@types/node": "^20.14.10",
- "release-it": "^17.4.1",
+ "release-it": "^17.6.0",
+ "typedoc": "^0.26.4",
"typescript": "^5.4.5",
- "vitest": "^2.0.2"
+ "vitest": "^2.0.3"
},
"workspaces": [
"packages/*",
diff --git a/packages/crdt/README.md b/packages/crdt/README.md
new file mode 100644
index 00000000..f0512d57
--- /dev/null
+++ b/packages/crdt/README.md
@@ -0,0 +1,37 @@
+# Conflict-free Replicated Data Types (CRDTs)
+
+This package contains the CRDT implementations intended to use as builtins for the Topology Protocol.
+
+## Usage
+
+This package is intended to be used as a dependency for the Topology Protocol. However, you can use it as a standalone package. For that, you can install it using:
+
+```bash
+# yarn
+yarn add @topology-foundation/crdt
+
+# npm
+npm install @topology-foundation/crdt
+```
+
+### Build
+
+To build the package, you can run:
+
+```bash
+yarn build
+```
+
+### Tests
+
+To run the tests, you can run:
+
+```bash
+yarn test
+```
+
+## CRDTs Implementations
+- [x] G-Counter
+- [x] PN-Counter
+- [x] G-Set
+- [x] 2P-Set
diff --git a/packages/crdt/package.json b/packages/crdt/package.json
index be9a85d9..a31b93b3 100644
--- a/packages/crdt/package.json
+++ b/packages/crdt/package.json
@@ -1,6 +1,6 @@
{
"name": "@topology-foundation/crdt",
- "version": "0.0.20",
+ "version": "0.0.22-2",
"license": "MIT",
"repository": {
"type": "git",
diff --git a/packages/crdt/typedoc.json b/packages/crdt/typedoc.json
new file mode 100644
index 00000000..ae73b7dc
--- /dev/null
+++ b/packages/crdt/typedoc.json
@@ -0,0 +1,6 @@
+{
+ "$schema": "https://typedoc.org/schema.json",
+ "includeVersion": true,
+ "entryPoints": ["src/index.ts"],
+ "readme": "README.md"
+}
diff --git a/packages/network/README.md b/packages/network/README.md
new file mode 100644
index 00000000..5963c4f1
--- /dev/null
+++ b/packages/network/README.md
@@ -0,0 +1,33 @@
+# Topology Network Stack
+
+This package contains the network middleware to abstract libp2p for the Topology Protocol.
+
+To do so, we define a `TopologyNetworkNode` where we can pass the configs that we want and it "magically" configures libp2p and gives connectivity to the Topology Network.
+
+## Usage
+
+This package is intended to be used as a dependency for the Topology Protocol. However, you can use it as a standalone package. For that, you can install it using:
+
+```bash
+# yarn
+yarn add @topology-foundation/network
+
+# npm
+npm install @topology-foundation/network
+```
+
+### Build
+
+To build the package, you can run:
+
+```bash
+yarn build
+```
+
+### Tests
+
+To run the tests, you can run:
+
+```bash
+yarn test
+```
diff --git a/packages/network/package.json b/packages/network/package.json
index ec79c445..00315065 100644
--- a/packages/network/package.json
+++ b/packages/network/package.json
@@ -1,6 +1,6 @@
{
"name": "@topology-foundation/network",
- "version": "0.0.20",
+ "version": "0.0.22-2",
"license": "MIT",
"repository": {
"type": "git",
@@ -8,7 +8,12 @@
},
"type": "module",
"types": "./dist/src/index.d.ts",
- "files": ["src", "dist", "!dist/test", "!**/*.tsbuildinfo"],
+ "files": [
+ "src",
+ "dist",
+ "!dist/test",
+ "!**/*.tsbuildinfo"
+ ],
"exports": {
".": {
"types": "./dist/src/index.d.ts",
@@ -31,17 +36,17 @@
"@chainsafe/libp2p-yamux": "^6.0.2",
"@libp2p/autonat": "^1.0.0",
"@libp2p/bootstrap": "^10.1.0",
- "@libp2p/circuit-relay-v2": "^1.0.24",
+ "@libp2p/circuit-relay-v2": "^1.1.2",
"@libp2p/dcutr": "^1.1.0",
"@libp2p/identify": "^2.0.2",
"@libp2p/interface-pubsub": "^4.0.1",
"@libp2p/mdns": "^10.1.1",
"@libp2p/pubsub-peer-discovery": "^10.0.2",
- "@libp2p/webrtc": "^4.1.1",
+ "@libp2p/webrtc": "^4.1.2",
"@libp2p/websockets": "^8.1.1",
"@libp2p/webtransport": "^4.1.1",
"@multiformats/multiaddr": "^12.3.0",
"it-pipe": "^3.0.1",
- "libp2p": "^1.6.0"
+ "libp2p": "^1.8.1"
}
}
diff --git a/packages/network/src/node.ts b/packages/network/src/node.ts
index 13fc17f4..788eca14 100644
--- a/packages/network/src/node.ts
+++ b/packages/network/src/node.ts
@@ -18,7 +18,11 @@ import { stringToStream } from "./stream.js";
import { bootstrap } from "@libp2p/bootstrap";
import { webTransport } from "@libp2p/webtransport";
-export interface TopologyNetworkNodeConfig {}
+// snake_casing to match the JSON config
+export interface TopologyNetworkNodeConfig {
+ addresses: string[];
+ bootstrap_peers: string[];
+}
export class TopologyNetworkNode {
private _config?: TopologyNetworkNodeConfig;
@@ -34,7 +38,7 @@ export class TopologyNetworkNode {
async start() {
this._node = await createLibp2p({
addresses: {
- listen: ["/webrtc"],
+ listen: this._config ? this._config.addresses : ["/webrtc"],
},
connectionEncryption: [noise()],
connectionGater: {
@@ -48,9 +52,11 @@ export class TopologyNetworkNode {
topics: ["topology::discovery"],
}),
bootstrap({
- list: [
- "/dns4/relay.droak.sh/tcp/443/wss/p2p/Qma3GsJmB47xYuyahPZPSadh1avvxfyYQwk8R3UnFrQ6aP",
- ],
+ list: this._config
+ ? this._config.bootstrap_peers
+ : [
+ "/dns4/relay.droak.sh/tcp/443/wss/p2p/Qma3GsJmB47xYuyahPZPSadh1avvxfyYQwk8R3UnFrQ6aP",
+ ],
}),
],
services: {
diff --git a/packages/network/src/relay.ts b/packages/network/src/relay.ts
index 60be820f..431636cc 100644
--- a/packages/network/src/relay.ts
+++ b/packages/network/src/relay.ts
@@ -10,17 +10,20 @@ import { createLibp2p } from "libp2p";
import relayerJson from "./peer-id-relayer.js";
import { autoNAT } from "@libp2p/autonat";
+import { TopologyNetworkNodeConfig } from "./node.js";
// TODO:
// - remove the peer-id-relayer in favor of static configs
// - create a "relay" mode that can be activated in the main node.ts logic
// - improve the circuit-relay setup
-export const createRelayNode = async () => {
+export const createRelayNode = async (config?: TopologyNetworkNodeConfig) => {
const idRelayer = await createFromJSON(relayerJson);
const node = await createLibp2p({
peerId: idRelayer,
addresses: {
- listen: ["/ip4/0.0.0.0/tcp/50000/ws", "/ip4/0.0.0.0/tcp/50001"],
+ listen: config
+ ? config.addresses
+ : ["/ip4/0.0.0.0/tcp/50000/ws", "/ip4/0.0.0.0/tcp/50001"],
},
connectionEncryption: [noise()],
peerDiscovery: [
diff --git a/packages/network/typedoc.json b/packages/network/typedoc.json
new file mode 100644
index 00000000..ae73b7dc
--- /dev/null
+++ b/packages/network/typedoc.json
@@ -0,0 +1,6 @@
+{
+ "$schema": "https://typedoc.org/schema.json",
+ "includeVersion": true,
+ "entryPoints": ["src/index.ts"],
+ "readme": "README.md"
+}
diff --git a/packages/node/Dockerfile b/packages/node/Dockerfile
index 1f4bd908..b7004972 100644
--- a/packages/node/Dockerfile
+++ b/packages/node/Dockerfile
@@ -3,6 +3,7 @@ FROM node:22.3-bookworm-slim
WORKDIR /node
COPY . .
+RUN yarn
RUN chmod +x /node/entrypoint.sh
ENTRYPOINT ["/bin/bash", "/node/entrypoint.sh"]
diff --git a/packages/node/README.md b/packages/node/README.md
new file mode 100644
index 00000000..87d9f51e
--- /dev/null
+++ b/packages/node/README.md
@@ -0,0 +1,50 @@
+# Topology Node
+
+This package provides the implementation of a Topology Node, which is a node in a network that can be connected to other nodes and exchange messages with them. The Topology Node is the entrypoint for interacting with the Topology Protocol in the Topology Network.
+
+## Usage
+
+Topology Node can be used using the CLI or integrated into an existing application.
+
+### CLI
+
+The CLI provides a simple way to start a Topology Node and connect it to other nodes in the network. It can be installed globally using:
+
+```bash
+# yarn
+yarn global add @topology-foundation/node
+
+# npm
+npm install -g @topology-foundation/node
+```
+
+> This part is a lie, the cli is being developed.
+
+For more information on what are the commands available, run:
+
+```bash
+topology-node --help
+```
+
+### Integration
+
+To integrate the Topology Node into an existing application, you can install it using:
+
+```bash
+# yarn
+yarn add @topology-foundation/node
+
+# npm
+npm install @topology-foundation/node
+```
+
+Then, you can import the Topology Node class and create a new instance:
+
+```javascript
+import { TopologyNode } from '@topology-foundation/node';
+
+const node = new TopologyNode();
+
+// Start the node
+node.start();
+```
diff --git a/packages/node/configs/node.json b/packages/node/configs/node.json
new file mode 100644
index 00000000..0408bf4e
--- /dev/null
+++ b/packages/node/configs/node.json
@@ -0,0 +1,8 @@
+{
+ "network_config": {
+ "addresses": ["/webrtc"],
+ "bootstrap_peers": [
+ "/dns4/relay.droak.sh/tcp/443/wss/p2p/Qma3GsJmB47xYuyahPZPSadh1avvxfyYQwk8R3UnFrQ6aP"
+ ]
+ }
+}
diff --git a/packages/node/configs/relay.json b/packages/node/configs/relay.json
new file mode 100644
index 00000000..bb57fd23
--- /dev/null
+++ b/packages/node/configs/relay.json
@@ -0,0 +1,8 @@
+{
+ "network_config": {
+ "addresses": ["/ip4/0.0.0.0/tcp/50000/ws", "/ip4/0.0.0.0/tcp/50001"],
+ "bootstrap_peers": [
+ "/dns4/relay.droak.sh/tcp/443/wss/p2p/Qma3GsJmB47xYuyahPZPSadh1avvxfyYQwk8R3UnFrQ6aP"
+ ]
+ }
+}
diff --git a/packages/node/entrypoint.sh b/packages/node/entrypoint.sh
index 15ea7051..30805840 100644
--- a/packages/node/entrypoint.sh
+++ b/packages/node/entrypoint.sh
@@ -1,3 +1,2 @@
#!/bin/bash
-yarn
-exec yarn run "$@"
+exec yarn cli "$@"
diff --git a/packages/node/package.json b/packages/node/package.json
index 2ffde1af..6273d0b9 100644
--- a/packages/node/package.json
+++ b/packages/node/package.json
@@ -1,6 +1,6 @@
{
"name": "@topology-foundation/node",
- "version": "0.0.20",
+ "version": "0.0.22-2",
"license": "MIT",
"repository": {
"type": "git",
@@ -23,21 +23,21 @@
"scripts": {
"build": "tsc -b",
"clean": "rm -rf dist/ node_modules/",
- "node": "tsx ./src/run_node.ts",
+ "cli": "tsx ./src/run.ts",
+ "prebuild": "node -p \"'export const VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts",
"prepack": "tsc -b",
- "relay": "tsx ./src/run_relay.ts",
- "start": "tsx ./src/index.ts",
"test": "vitest"
},
"devDependencies": {
"@types/node": "^20.14.10",
"tsx": "4.15.7",
"typescript": "^5.4.5",
- "vitest": "^2.0.2"
+ "vitest": "^2.0.3"
},
"dependencies": {
- "@topology-foundation/crdt": "0.0.20",
- "@topology-foundation/network": "0.0.20",
- "@topology-foundation/object": "0.0.20"
+ "@topology-foundation/crdt": "0.0.22-2",
+ "@topology-foundation/network": "0.0.22-2",
+ "@topology-foundation/object": "0.0.22-2",
+ "commander": "^12.1.0"
}
}
diff --git a/packages/node/src/cli/index.ts b/packages/node/src/cli/index.ts
new file mode 100644
index 00000000..d1f45a54
--- /dev/null
+++ b/packages/node/src/cli/index.ts
@@ -0,0 +1,12 @@
+import { Command, Option } from "commander";
+import { VERSION } from "../version.js";
+
+export const program = new Command();
+program.version(VERSION);
+
+program.addOption(new Option("-c, --config ", "config file"));
+program.addOption(
+ new Option("-m, --mode ", "mode to run in")
+ .default("node")
+ .choices(["node", "relay"]),
+);
diff --git a/packages/node/src/index.ts b/packages/node/src/index.ts
index 945f610e..fffe9534 100644
--- a/packages/node/src/index.ts
+++ b/packages/node/src/index.ts
@@ -10,8 +10,9 @@ import { TopologyObjectStore } from "./store";
import { fromString as uint8ArrayFromString } from "uint8arrays/from-string";
import { toString as uint8ArrayToString } from "uint8arrays/to-string";
+// snake_casing to match the JSON config
export interface TopologyNodeConfig {
- networkConfig?: TopologyNetworkNodeConfig;
+ network_config?: TopologyNetworkNodeConfig;
}
export class TopologyNode {
@@ -21,7 +22,7 @@ export class TopologyNode {
constructor(config?: TopologyNodeConfig) {
this._config = config;
- this._networkNode = new TopologyNetworkNode(config?.networkConfig);
+ this._networkNode = new TopologyNetworkNode(config?.network_config);
this._objectStore = new TopologyObjectStore();
}
diff --git a/packages/node/src/run.ts b/packages/node/src/run.ts
new file mode 100644
index 00000000..6fc4b78f
--- /dev/null
+++ b/packages/node/src/run.ts
@@ -0,0 +1,31 @@
+import { program } from "./cli";
+import { TopologyNode, TopologyNodeConfig } from ".";
+import { createRelayNode } from "@topology-foundation/network";
+import fs from "fs";
+
+async function startNode(config?: TopologyNodeConfig) {
+ const node = new TopologyNode(config);
+ node.start();
+}
+
+async function startRelay(config?: TopologyNodeConfig) {
+ const node = await createRelayNode(config?.network_config);
+ console.log("peer_id:", node.peerId.toString());
+ for (let ma of node.getMultiaddrs()) {
+ console.log(ma);
+ }
+}
+
+program.parse(process.argv);
+const opts = program.opts();
+
+let config: TopologyNodeConfig | undefined;
+if (opts.config) {
+ config = JSON.parse(fs.readFileSync(opts.config, "utf8"));
+}
+
+if (opts.mode === "node") {
+ startNode(config);
+} else if (opts.mode === "relay") {
+ startRelay(config);
+}
diff --git a/packages/node/src/run_node.ts b/packages/node/src/run_node.ts
deleted file mode 100644
index 5c7550d3..00000000
--- a/packages/node/src/run_node.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { TopologyNode } from ".";
-
-export async function start() {
- const node = new TopologyNode();
- node.start();
-}
-
-start();
diff --git a/packages/node/src/run_relay.ts b/packages/node/src/run_relay.ts
deleted file mode 100644
index 1c0c2ebc..00000000
--- a/packages/node/src/run_relay.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { createRelayNode } from "@topology-foundation/network";
-
-export async function start() {
- try {
- const node = await createRelayNode();
- console.log("peer_id:", node.peerId.toString());
- for (let ma of node.getMultiaddrs()) {
- console.log(ma);
- }
- } catch (e) {
- console.error(e);
- start();
- }
-}
-
-start();
diff --git a/packages/node/src/version.ts b/packages/node/src/version.ts
new file mode 100644
index 00000000..a0994a6a
--- /dev/null
+++ b/packages/node/src/version.ts
@@ -0,0 +1 @@
+export const VERSION = "0.0.22-2";
diff --git a/packages/node/typedoc.json b/packages/node/typedoc.json
new file mode 100644
index 00000000..ae73b7dc
--- /dev/null
+++ b/packages/node/typedoc.json
@@ -0,0 +1,6 @@
+{
+ "$schema": "https://typedoc.org/schema.json",
+ "includeVersion": true,
+ "entryPoints": ["src/index.ts"],
+ "readme": "README.md"
+}
diff --git a/packages/object/README.md b/packages/object/README.md
new file mode 100644
index 00000000..6f196dbf
--- /dev/null
+++ b/packages/object/README.md
@@ -0,0 +1,17 @@
+# Conflict-free Replicated Objects (CROs)
+
+This package provides a simple implementation of Conflict-free Replicated Objects (CROs) as defined in the Topology Protocol. CROs are a type of composable object that can be replicated across multiple nodes in a network, and can be updated concurrently by multiple clients without the need for coordination.
+
+## Usage
+
+This package is intended to implement a basic abstract class that can be extended for the creation of custom CROs. Basic operations for synchronization are provided, but the implementation of the actual object behavior is left to the app developer.
+
+For starting, you can install it using:
+
+```bash
+# yarn
+yarn add @topology-foundation/object
+
+# npm
+npm install @topology-foundation/object
+```
diff --git a/packages/object/package.json b/packages/object/package.json
index 2033f534..c263ec00 100644
--- a/packages/object/package.json
+++ b/packages/object/package.json
@@ -1,6 +1,6 @@
{
"name": "@topology-foundation/object",
- "version": "0.0.20",
+ "version": "0.0.22-2",
"license": "MIT",
"repository": {
"type": "git",
diff --git a/packages/object/typedoc.json b/packages/object/typedoc.json
new file mode 100644
index 00000000..ae73b7dc
--- /dev/null
+++ b/packages/object/typedoc.json
@@ -0,0 +1,6 @@
+{
+ "$schema": "https://typedoc.org/schema.json",
+ "includeVersion": true,
+ "entryPoints": ["src/index.ts"],
+ "readme": "README.md"
+}
diff --git a/typedoc.json b/typedoc.json
new file mode 100644
index 00000000..2644f844
--- /dev/null
+++ b/typedoc.json
@@ -0,0 +1,7 @@
+{
+ "entryPoints": ["packages/*"],
+ "entryPointStrategy": "packages",
+ "includeVersion": true,
+ "name": "Topology Protocol",
+ "readme": "README.md"
+}
diff --git a/yarn.lock b/yarn.lock
index 95e3eba4..d8264f54 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -361,17 +361,17 @@
"@multiformats/mafmt" "^12.1.6"
"@multiformats/multiaddr" "^12.2.3"
-"@libp2p/circuit-relay-v2@^1.0.24":
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/@libp2p/circuit-relay-v2/-/circuit-relay-v2-1.1.1.tgz#a0f16dfe07aa74fe1c31526816ec026b5367e4f1"
- integrity sha512-Tj4BWZBKdoCIKkHlF/z6RFNzdqECtSaC5AKiUcB20Ggb4GDrCTRzCv05cMeS2jb4hhky259DXynKUrg1V7tG7Q==
- dependencies:
- "@libp2p/interface" "^1.6.0"
- "@libp2p/interface-internal" "^1.3.0"
- "@libp2p/peer-collections" "^5.2.5"
- "@libp2p/peer-id" "^4.2.0"
- "@libp2p/peer-record" "^7.0.21"
- "@libp2p/utils" "^5.4.5"
+"@libp2p/circuit-relay-v2@^1.1.2":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@libp2p/circuit-relay-v2/-/circuit-relay-v2-1.1.2.tgz#4dc11f2ee08fabd5372dbc56273a3ee043100238"
+ integrity sha512-QkOtKoPfQObcE8+uL5wzfe1LfDvt0XAAHO6G7loOwUexKF6hYP4u/O6Epakx51hQ9wR4XF57RFhOkXdScPmKPw==
+ dependencies:
+ "@libp2p/interface" "^1.6.1"
+ "@libp2p/interface-internal" "^1.3.1"
+ "@libp2p/peer-collections" "^5.2.6"
+ "@libp2p/peer-id" "^4.2.1"
+ "@libp2p/peer-record" "^7.0.22"
+ "@libp2p/utils" "^5.4.6"
"@multiformats/mafmt" "^12.1.6"
"@multiformats/multiaddr" "^12.2.3"
any-signal "^4.1.1"
@@ -385,12 +385,12 @@
uint8arraylist "^2.4.8"
uint8arrays "^5.1.0"
-"@libp2p/crypto@^4.0.0", "@libp2p/crypto@^4.0.1", "@libp2p/crypto@^4.1.5":
- version "4.1.5"
- resolved "https://registry.yarnpkg.com/@libp2p/crypto/-/crypto-4.1.5.tgz#2d34c42a6becec1b886ac7f687e853a58bd5be78"
- integrity sha512-iQyFljvVza7npzrJNjOCqP1DlvDcGyOxCjlzU0gCLb4Jt0ZyTQDosk3wV7r3hAqCCeoBpm/CB5viJGixhkKgIQ==
+"@libp2p/crypto@^4.0.0", "@libp2p/crypto@^4.0.1", "@libp2p/crypto@^4.1.5", "@libp2p/crypto@^4.1.6":
+ version "4.1.6"
+ resolved "https://registry.yarnpkg.com/@libp2p/crypto/-/crypto-4.1.6.tgz#585b568f831a03c12123a7467653b9231d1422f8"
+ integrity sha512-KQxgFcRpEYUynmEfANqyKR9C2YZ8w/SzfZjB+gbrbRRHz1cclIA8g2y/MdW1D4x21EXF7+COY1klCCFQS3ppOg==
dependencies:
- "@libp2p/interface" "^1.6.0"
+ "@libp2p/interface" "^1.6.1"
"@noble/curves" "^1.4.0"
"@noble/hashes" "^1.4.0"
asn1js "^3.0.5"
@@ -444,13 +444,13 @@
it-stream-types "^2.0.1"
uint8arraylist "^2.4.3"
-"@libp2p/interface-internal@^1.0.1", "@libp2p/interface-internal@^1.0.7", "@libp2p/interface-internal@^1.3.0":
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/@libp2p/interface-internal/-/interface-internal-1.3.0.tgz#58aacb966bc5123c0dd73b06fc669681fc3453d7"
- integrity sha512-M2s/iCJ3+bKOcKkzeycCEkVA7fpZfVnptVm2DdKV1gYvC4ClVT21Hq4Ki2TZA/kibb7clWi5LTeed2jvMwj3pg==
+"@libp2p/interface-internal@^1.0.1", "@libp2p/interface-internal@^1.0.7", "@libp2p/interface-internal@^1.3.0", "@libp2p/interface-internal@^1.3.1":
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface-internal/-/interface-internal-1.3.1.tgz#50ee17036d4066c42d24b0d9c9729053d0ab6121"
+ integrity sha512-81e+4JLJPjgIuxFOqOJUr4w5rr+SrfwG5PhkVsnqA4F4Sxb8x4ImRjDgPKqbTUp/taSNUz9zMGgwwdG6m4mvGA==
dependencies:
- "@libp2p/interface" "^1.6.0"
- "@libp2p/peer-collections" "^5.2.5"
+ "@libp2p/interface" "^1.6.1"
+ "@libp2p/peer-collections" "^5.2.6"
"@multiformats/multiaddr" "^12.2.3"
progress-events "^1.0.0"
uint8arraylist "^2.4.8"
@@ -473,10 +473,10 @@
it-pushable "^3.1.3"
uint8arraylist "^2.4.3"
-"@libp2p/interface@^1.0.0", "@libp2p/interface@^1.0.1", "@libp2p/interface@^1.1.3", "@libp2p/interface@^1.4.0", "@libp2p/interface@^1.5.0", "@libp2p/interface@^1.6.0":
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/@libp2p/interface/-/interface-1.6.0.tgz#3198e81fabe1ed5ba2421ecbd0cbeec0a75e8317"
- integrity sha512-PqcWA/wQFwk8bcevwUez5KYd0FKhKrOJOfKy+qGzDnKsPN3c0W6m/yiYXE7VJ6rAynL9ITxRddub3hEktthVCg==
+"@libp2p/interface@^1.0.0", "@libp2p/interface@^1.0.1", "@libp2p/interface@^1.1.3", "@libp2p/interface@^1.4.0", "@libp2p/interface@^1.5.0", "@libp2p/interface@^1.6.0", "@libp2p/interface@^1.6.1":
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface/-/interface-1.6.1.tgz#dc8f1a49da7ee81cd068e872bde3445c3b631d45"
+ integrity sha512-bpkIYTvZhGGc/ajITKvgFpaP8UtPWoSj+xHVrj6zyAN8U/cAqN0IQQt4a7daJr5VZa8B86i4d1iccdG42/mz+g==
dependencies:
"@multiformats/multiaddr" "^12.2.3"
it-pushable "^3.2.3"
@@ -490,12 +490,12 @@
resolved "https://registry.yarnpkg.com/@libp2p/interfaces/-/interfaces-3.3.2.tgz#5d8079be845b0960939b5b18880e785a4714465a"
integrity sha512-p/M7plbrxLzuQchvNwww1Was7ZeGE2NaOFulMaZBYIihU8z3fhaV+a033OqnC/0NTX/yhfdNOG7znhYq3XoR/g==
-"@libp2p/logger@^4.0.16", "@libp2p/logger@^4.0.6":
- version "4.0.16"
- resolved "https://registry.yarnpkg.com/@libp2p/logger/-/logger-4.0.16.tgz#a513dfed7922237ee16114b988a62e0b5aec9502"
- integrity sha512-yk+vL8QX7WoTwcfjDghvA3OZjwqiM4/VHxhr6kXfs691nE7czgdCbnBEJOwgfbR8IJpy39z9BDstoACMNmNEWQ==
+"@libp2p/logger@^4.0.17", "@libp2p/logger@^4.0.6":
+ version "4.0.17"
+ resolved "https://registry.yarnpkg.com/@libp2p/logger/-/logger-4.0.17.tgz#1ae663bb2dec3c7e6b29d2195756f64e5e77d939"
+ integrity sha512-NPGN27uOXFGuKkxnX39InMvxS0lMenq6/aFqQHN1N0f0S3LaG9RuTcz/VE3qyO1Ik1aAockR6qqCwbfFxJuO0g==
dependencies:
- "@libp2p/interface" "^1.6.0"
+ "@libp2p/interface" "^1.6.1"
"@multiformats/multiaddr" "^12.2.3"
debug "^4.3.4"
interface-datastore "^8.2.11"
@@ -515,12 +515,12 @@
dns-packet "^5.6.1"
multicast-dns "^7.2.5"
-"@libp2p/multistream-select@^5.1.13":
- version "5.1.13"
- resolved "https://registry.yarnpkg.com/@libp2p/multistream-select/-/multistream-select-5.1.13.tgz#e66547e43f4d58c00b2e2dad87be25cac77414e3"
- integrity sha512-p1OL9ESDwmhMXSRBRuEBkth77E/co5rO6UUIhm06rjmaYws4YJlgAgH7OsjtWYDb6LSJxh8Kp3B0/uvJoH+rSQ==
+"@libp2p/multistream-select@^5.1.14":
+ version "5.1.14"
+ resolved "https://registry.yarnpkg.com/@libp2p/multistream-select/-/multistream-select-5.1.14.tgz#3b97da9587202117cbfac54b7e65f301e6a1d6ff"
+ integrity sha512-988KYk6eVexNncbofTx2a3eIYYJZbQPw8DDR0l79gTfTks/S64kk4aDjBs76pc5xClPczsqW+9LsSpuAbDxkjg==
dependencies:
- "@libp2p/interface" "^1.6.0"
+ "@libp2p/interface" "^1.6.1"
it-length-prefixed "^9.0.4"
it-length-prefixed-stream "^1.1.7"
it-stream-types "^2.0.1"
@@ -530,60 +530,60 @@
uint8arraylist "^2.4.8"
uint8arrays "^5.1.0"
-"@libp2p/peer-collections@^5.2.5":
- version "5.2.5"
- resolved "https://registry.yarnpkg.com/@libp2p/peer-collections/-/peer-collections-5.2.5.tgz#107075af27d91b558da215a663e9bbaf8c408c40"
- integrity sha512-ZwR1VCIMYdH/YnsU7LyQEI0xCsKC3hZFnU+JAx0Js+uyL4me0KKofgGmy2Hz25qPVlbaLPOL3LWwEf397AqdsQ==
+"@libp2p/peer-collections@^5.2.5", "@libp2p/peer-collections@^5.2.6":
+ version "5.2.6"
+ resolved "https://registry.yarnpkg.com/@libp2p/peer-collections/-/peer-collections-5.2.6.tgz#3b649fb44cf57232d6d87b9b000e408ff9ccbfb6"
+ integrity sha512-a6P1euFoUXX4FvYomifZMLCdRhUyV/X44Y4CrWuY+OSv3pg2siTU8LuCo8EOXtFWpwJAQIzh+v/roYJhjiwyGA==
dependencies:
- "@libp2p/interface" "^1.6.0"
- "@libp2p/peer-id" "^4.2.0"
- "@libp2p/utils" "^5.4.5"
+ "@libp2p/interface" "^1.6.1"
+ "@libp2p/peer-id" "^4.2.1"
+ "@libp2p/utils" "^5.4.6"
-"@libp2p/peer-id-factory@^4.2.0":
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/@libp2p/peer-id-factory/-/peer-id-factory-4.2.0.tgz#c6ea24693e2dee8039d73dd6f5b46956615a74b3"
- integrity sha512-iyUnUgcSirGL13uEKAuFJUqLYT2DHWH9hxwBN/KSk1ati4jYYDqJb3zUmhgjEbs5jnx9AZ+c1oZYkVu5ta7BCA==
+"@libp2p/peer-id-factory@^4.2.1":
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/@libp2p/peer-id-factory/-/peer-id-factory-4.2.1.tgz#c2206ab2f8d2342a00625c02ff260c561112c112"
+ integrity sha512-BxQzL2unriOxRwgg1sHMhtYz0Zwshm1h8fMxWD5GqxrX2cPq9zcjLNgT7qJJYddBh8Iq5Z2Eu8aIF+7wRzaowQ==
dependencies:
- "@libp2p/crypto" "^4.1.5"
- "@libp2p/interface" "^1.6.0"
- "@libp2p/peer-id" "^4.2.0"
+ "@libp2p/crypto" "^4.1.6"
+ "@libp2p/interface" "^1.6.1"
+ "@libp2p/peer-id" "^4.2.1"
protons-runtime "^5.4.0"
uint8arraylist "^2.4.8"
uint8arrays "^5.1.0"
-"@libp2p/peer-id@^4.0.0", "@libp2p/peer-id@^4.0.1", "@libp2p/peer-id@^4.0.5", "@libp2p/peer-id@^4.2.0":
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/@libp2p/peer-id/-/peer-id-4.2.0.tgz#0c55af8c69b4ec902ef40276a58c7ba7887c72c9"
- integrity sha512-VCScUTVuPNkoZmddM5NtuI0tuFZhFG6ypk7tX1svumA+9sEIx9x4duNIb/Rt+E7E7fDINcBnqxiQpBRUCRtDBQ==
+"@libp2p/peer-id@^4.0.0", "@libp2p/peer-id@^4.0.1", "@libp2p/peer-id@^4.0.5", "@libp2p/peer-id@^4.2.0", "@libp2p/peer-id@^4.2.1":
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/@libp2p/peer-id/-/peer-id-4.2.1.tgz#0bf6cf5a7b84a586fa0327781d8cea893a3eaba4"
+ integrity sha512-ttPdHqWoZzITODY8WF1EK8HMGLN7fXnV/FlHlrvGKQF4TqqTXgqFM3+4AhhGJJK34bqcq2U3r4vy474MmUQgjA==
dependencies:
- "@libp2p/interface" "^1.6.0"
+ "@libp2p/interface" "^1.6.1"
multiformats "^13.1.0"
uint8arrays "^5.1.0"
-"@libp2p/peer-record@^7.0.21":
- version "7.0.21"
- resolved "https://registry.yarnpkg.com/@libp2p/peer-record/-/peer-record-7.0.21.tgz#ed619c0c571436fb834c2141d06a5ed946a6dbc6"
- integrity sha512-wIeadVfNsCv6p8zCMiAyqS5qUeuzVGiN2Y4h+vv/ucyJAjxnKIjdwxppl1rT1gJ6ycSKWcZuUoOaD5WIaSrTkg==
+"@libp2p/peer-record@^7.0.21", "@libp2p/peer-record@^7.0.22":
+ version "7.0.22"
+ resolved "https://registry.yarnpkg.com/@libp2p/peer-record/-/peer-record-7.0.22.tgz#d5af9e5208646b5dca2d232618dbd13823dd03cb"
+ integrity sha512-7QnpzENWtuU75E1L9xANmNAoiOMElMR5DZUZdXouvs7Yw0hGq1xI2MzqSH8TYISqjsDvE5SwKod6YQX0vCfoXw==
dependencies:
- "@libp2p/crypto" "^4.1.5"
- "@libp2p/interface" "^1.6.0"
- "@libp2p/peer-id" "^4.2.0"
- "@libp2p/utils" "^5.4.5"
+ "@libp2p/crypto" "^4.1.6"
+ "@libp2p/interface" "^1.6.1"
+ "@libp2p/peer-id" "^4.2.1"
+ "@libp2p/utils" "^5.4.6"
"@multiformats/multiaddr" "^12.2.3"
protons-runtime "^5.4.0"
uint8-varint "^2.0.4"
uint8arraylist "^2.4.8"
uint8arrays "^5.1.0"
-"@libp2p/peer-store@^10.1.1":
- version "10.1.1"
- resolved "https://registry.yarnpkg.com/@libp2p/peer-store/-/peer-store-10.1.1.tgz#1a6d886bd6c334c140ec4e9e8231b055232faa9d"
- integrity sha512-2lYlTIm3bEZkIzwwHHJjup3kzkV10NOOsGjkVgZQPH0xGXO4V7Bdh7Wlr5t3YyuMC8Ph4VwVVM293Bzh6rrj+A==
+"@libp2p/peer-store@^10.1.2":
+ version "10.1.2"
+ resolved "https://registry.yarnpkg.com/@libp2p/peer-store/-/peer-store-10.1.2.tgz#aee4286098777546fb4d2501dd99ab8f33a28a72"
+ integrity sha512-MX7/tpkzeOTOi0gGfvPwBsC1sMmL3qHyemGvyl1VeryRO8m8hoyWzj5ku37zEuHz6k02T/BIdrlgXBaT/vbk1Q==
dependencies:
- "@libp2p/interface" "^1.6.0"
- "@libp2p/peer-collections" "^5.2.5"
- "@libp2p/peer-id" "^4.2.0"
- "@libp2p/peer-record" "^7.0.21"
+ "@libp2p/interface" "^1.6.1"
+ "@libp2p/peer-collections" "^5.2.6"
+ "@libp2p/peer-id" "^4.2.1"
+ "@libp2p/peer-record" "^7.0.22"
"@multiformats/multiaddr" "^12.2.3"
interface-datastore "^8.2.11"
it-all "^3.0.6"
@@ -625,15 +625,15 @@
uint8arraylist "^2.4.8"
uint8arrays "^5.1.0"
-"@libp2p/utils@^5.2.5", "@libp2p/utils@^5.4.5":
- version "5.4.5"
- resolved "https://registry.yarnpkg.com/@libp2p/utils/-/utils-5.4.5.tgz#b3e3177f86d88e56a5a1874e747ab381c21d4a2b"
- integrity sha512-PInUa1jZFILeBl0ilV0bLQkfZFp8chtYZbgiY3lGTX1sPQgl1nZDLjVg7F7/lpW0+FWZaACqEJKtHpUOTLrQow==
+"@libp2p/utils@^5.2.5", "@libp2p/utils@^5.4.5", "@libp2p/utils@^5.4.6":
+ version "5.4.6"
+ resolved "https://registry.yarnpkg.com/@libp2p/utils/-/utils-5.4.6.tgz#ee710a4920bbbbe70bf8bf047f04252e20f2cbaf"
+ integrity sha512-UBHsXO9OvMJZex/u8bJFYGjF2Tdd/eNh1Ys6A24iyJR6TlYoOfwO1BxB++CPDKPo7Zuz5V5IOwzfvr3llzfybg==
dependencies:
"@chainsafe/is-ip" "^2.0.2"
- "@libp2p/crypto" "^4.1.5"
- "@libp2p/interface" "^1.6.0"
- "@libp2p/logger" "^4.0.16"
+ "@libp2p/crypto" "^4.1.6"
+ "@libp2p/interface" "^1.6.1"
+ "@libp2p/logger" "^4.0.17"
"@multiformats/multiaddr" "^12.2.3"
"@multiformats/multiaddr-matcher" "^1.2.1"
"@sindresorhus/fnv1a" "^3.1.0"
@@ -652,16 +652,16 @@
uint8arraylist "^2.4.8"
uint8arrays "^5.1.0"
-"@libp2p/webrtc@^4.1.1":
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/@libp2p/webrtc/-/webrtc-4.1.1.tgz#36300d83d1ee0416dbbd24b127a41693abf55b3c"
- integrity sha512-yDuDbM79opMoRUCmrcyuYUeb1QUu0+TZs12W0dog/SZl3KTmou937y3qR5Ru3GwWySHHbQBEHQEA92pH/TmLLA==
+"@libp2p/webrtc@^4.1.2":
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/@libp2p/webrtc/-/webrtc-4.1.2.tgz#81a322435bdc206d81b5419bb17ea359edca086a"
+ integrity sha512-1tvIP9mEH6hLhHXL4TfOSN7imvt4kLFYHkp+Qv15gKVhrdrsaI7wq/t6zcpTMKFXXmvNWq0twrkmg3ARsD4SCQ==
dependencies:
"@chainsafe/libp2p-noise" "^15.0.0"
- "@libp2p/interface" "^1.6.0"
- "@libp2p/interface-internal" "^1.3.0"
- "@libp2p/peer-id" "^4.2.0"
- "@libp2p/utils" "^5.4.5"
+ "@libp2p/interface" "^1.6.1"
+ "@libp2p/interface-internal" "^1.3.1"
+ "@libp2p/peer-id" "^4.2.1"
+ "@libp2p/utils" "^5.4.6"
"@multiformats/mafmt" "^12.1.6"
"@multiformats/multiaddr" "^12.2.3"
"@multiformats/multiaddr-matcher" "^1.2.1"
@@ -671,7 +671,6 @@
it-pushable "^3.2.3"
it-stream-types "^2.0.1"
multiformats "^13.1.0"
- multihashes "^4.0.3"
node-datachannel "^0.10.0"
p-defer "^4.0.1"
p-event "^6.0.1"
@@ -719,11 +718,6 @@
uint8arraylist "^2.4.8"
uint8arrays "^5.1.0"
-"@multiformats/base-x@^4.0.1":
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/@multiformats/base-x/-/base-x-4.0.1.tgz#95ff0fa58711789d53aefb2590a8b7a4e715d121"
- integrity sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==
-
"@multiformats/dns@^1.0.3", "@multiformats/dns@^1.0.6":
version "1.0.6"
resolved "https://registry.yarnpkg.com/@multiformats/dns/-/dns-1.0.6.tgz#b8c7de11459a02a5f4e609d35d3cdb95cb6ad152"
@@ -1025,6 +1019,13 @@
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz#5d694d345ce36b6ecf657349e03eb87297e68da4"
integrity sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==
+"@shikijs/core@1.10.3":
+ version "1.10.3"
+ resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.10.3.tgz#f01763b36f08ad3d2ef46cea7e61858d9d9947d6"
+ integrity sha512-D45PMaBaeDHxww+EkcDQtDAtzv00Gcsp72ukBtaLSmqRvh0WgGMq3Al0rl1QQBZfuneO75NXMIzEZGFitThWbg==
+ dependencies:
+ "@types/hast" "^3.0.4"
+
"@sindresorhus/fnv1a@^3.1.0":
version "3.1.0"
resolved "https://registry.yarnpkg.com/@sindresorhus/fnv1a/-/fnv1a-3.1.0.tgz#f8e46597298f6fd4c12dc901cdd4e73beb4d24fa"
@@ -1052,40 +1053,6 @@
resolved "https://registry.yarnpkg.com/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz#db4ecfd499a9765ab24002c3b696d02e6d32a12c"
integrity sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==
-"@topology-foundation/crdt@file:packages/crdt":
- version "0.0.20"
-
-"@topology-foundation/network@file:packages/network":
- version "0.0.20"
- dependencies:
- "@chainsafe/libp2p-gossipsub" "^13.1.0"
- "@chainsafe/libp2p-noise" "^15.1.0"
- "@chainsafe/libp2p-yamux" "^6.0.2"
- "@libp2p/autonat" "^1.0.0"
- "@libp2p/bootstrap" "^10.1.0"
- "@libp2p/circuit-relay-v2" "^1.0.24"
- "@libp2p/dcutr" "^1.1.0"
- "@libp2p/identify" "^2.0.2"
- "@libp2p/interface-pubsub" "^4.0.1"
- "@libp2p/mdns" "^10.1.1"
- "@libp2p/pubsub-peer-discovery" "^10.0.2"
- "@libp2p/webrtc" "^4.1.1"
- "@libp2p/websockets" "^8.1.1"
- "@libp2p/webtransport" "^4.1.1"
- "@multiformats/multiaddr" "^12.3.0"
- it-pipe "^3.0.1"
- libp2p "^1.6.0"
-
-"@topology-foundation/node@file:packages/node":
- version "0.0.20"
- dependencies:
- "@topology-foundation/crdt" "0.0.20"
- "@topology-foundation/network" "0.0.20"
- "@topology-foundation/object" "0.0.20"
-
-"@topology-foundation/object@file:packages/object":
- version "0.0.20"
-
"@tsconfig/node10@^1.0.7":
version "1.0.11"
resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2"
@@ -1184,6 +1151,13 @@
"@types/qs" "*"
"@types/serve-static" "*"
+"@types/hast@^3.0.4":
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.4.tgz#1d6b39993b82cea6ad783945b0508c25903e15aa"
+ integrity sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==
+ dependencies:
+ "@types/unist" "*"
+
"@types/http-cache-semantics@^4.0.2":
version "4.0.4"
resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4"
@@ -1289,6 +1263,11 @@
dependencies:
"@types/node" "*"
+"@types/unist@*":
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.2.tgz#6dd61e43ef60b34086287f83683a5c1b2dc53d20"
+ integrity sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==
+
"@types/ws@^8.2.2", "@types/ws@^8.5.10":
version "8.5.10"
resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787"
@@ -1296,53 +1275,53 @@
dependencies:
"@types/node" "*"
-"@vitest/expect@2.0.2":
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-2.0.2.tgz#2eff61dde5fb2574a0a7a32517419b5de7d78124"
- integrity sha512-nKAvxBYqcDugYZ4nJvnm5OR8eDJdgWjk4XM9owQKUjzW70q0icGV2HVnQOyYsp906xJaBDUXw0+9EHw2T8e0mQ==
+"@vitest/expect@2.0.3":
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-2.0.3.tgz#367727256f2a253e21a3e69cd996af51fc7899b1"
+ integrity sha512-X6AepoOYePM0lDNUPsGXTxgXZAl3EXd0GYe/MZyVE4HzkUqyUVC6S3PrY5mClDJ6/7/7vALLMV3+xD/Ko60Hqg==
dependencies:
- "@vitest/spy" "2.0.2"
- "@vitest/utils" "2.0.2"
+ "@vitest/spy" "2.0.3"
+ "@vitest/utils" "2.0.3"
chai "^5.1.1"
tinyrainbow "^1.2.0"
-"@vitest/pretty-format@2.0.2", "@vitest/pretty-format@^2.0.2":
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-2.0.2.tgz#c2674fef447ad8469144fdc483e859f9b1664133"
- integrity sha512-SBCyOXfGVvddRd9r2PwoVR0fonQjh9BMIcBMlSzbcNwFfGr6ZhOhvBzurjvi2F4ryut2HcqiFhNeDVGwru8tLg==
+"@vitest/pretty-format@2.0.3", "@vitest/pretty-format@^2.0.3":
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-2.0.3.tgz#30af705250cd055890091999e467968e41872c82"
+ integrity sha512-URM4GLsB2xD37nnTyvf6kfObFafxmycCL8un3OC9gaCs5cti2u+5rJdIflZ2fUJUen4NbvF6jCufwViAFLvz1g==
dependencies:
tinyrainbow "^1.2.0"
-"@vitest/runner@2.0.2":
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-2.0.2.tgz#5716c25f762308e4c87485668e4654cd4b832a73"
- integrity sha512-OCh437Vi8Wdbif1e0OvQcbfM3sW4s2lpmOjAE7qfLrpzJX2M7J1IQlNvEcb/fu6kaIB9n9n35wS0G2Q3en5kHg==
+"@vitest/runner@2.0.3":
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-2.0.3.tgz#4310ff4583d7874f57b5a8a194062bb85f07b0df"
+ integrity sha512-EmSP4mcjYhAcuBWwqgpjR3FYVeiA4ROzRunqKltWjBfLNs1tnMLtF+qtgd5ClTwkDP6/DGlKJTNa6WxNK0bNYQ==
dependencies:
- "@vitest/utils" "2.0.2"
+ "@vitest/utils" "2.0.3"
pathe "^1.1.2"
-"@vitest/snapshot@2.0.2":
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-2.0.2.tgz#91a8b847d82d92d06b9bf70b72bb9f21a4a416a1"
- integrity sha512-Yc2ewhhZhx+0f9cSUdfzPRcsM6PhIb+S43wxE7OG0kTxqgqzo8tHkXFuFlndXeDMp09G3sY/X5OAo/RfYydf1g==
+"@vitest/snapshot@2.0.3":
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-2.0.3.tgz#31acf5906f8c12f9c7fde21b84cc28f043e983b1"
+ integrity sha512-6OyA6v65Oe3tTzoSuRPcU6kh9m+mPL1vQ2jDlPdn9IQoUxl8rXhBnfICNOC+vwxWY684Vt5UPgtcA2aPFBb6wg==
dependencies:
- "@vitest/pretty-format" "2.0.2"
+ "@vitest/pretty-format" "2.0.3"
magic-string "^0.30.10"
pathe "^1.1.2"
-"@vitest/spy@2.0.2":
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-2.0.2.tgz#505b70978ae5f9db7a923bf8d62e4bfa6d89725f"
- integrity sha512-MgwJ4AZtCgqyp2d7WcQVE8aNG5vQ9zu9qMPYQHjsld/QVsrvg78beNrXdO4HYkP0lDahCO3P4F27aagIag+SGQ==
+"@vitest/spy@2.0.3":
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-2.0.3.tgz#62a14f6d7ec4f13caeeecac42d37f903f68c83c1"
+ integrity sha512-sfqyAw/ypOXlaj4S+w8689qKM1OyPOqnonqOc9T91DsoHbfN5mU7FdifWWv3MtQFf0lEUstEwR9L/q/M390C+A==
dependencies:
tinyspy "^3.0.0"
-"@vitest/utils@2.0.2":
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-2.0.2.tgz#a2e829b126b08987e93e1d105323c7f7b99e271d"
- integrity sha512-pxCY1v7kmOCWYWjzc0zfjGTA3Wmn8PKnlPvSrsA643P1NHl1fOyXj2Q9SaNlrlFE+ivCsxM80Ov3AR82RmHCWQ==
+"@vitest/utils@2.0.3":
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-2.0.3.tgz#3c57f5338e49c91e3c4ac5be8c74ae22a3c2d5b4"
+ integrity sha512-c/UdELMuHitQbbc/EVctlBaxoYAwQPQdSNwv7z/vHyBKy2edYZaFgptE27BRueZB7eW8po+cllotMNTDpL3HWg==
dependencies:
- "@vitest/pretty-format" "2.0.2"
+ "@vitest/pretty-format" "2.0.3"
estree-walker "^3.0.3"
loupe "^3.1.1"
tinyrainbow "^1.2.0"
@@ -2108,6 +2087,11 @@ commander@^10.0.1:
resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06"
integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==
+commander@^12.1.0:
+ version "12.1.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3"
+ integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==
+
commander@^2.20.0:
version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
@@ -2548,6 +2532,11 @@ ensure-posix-path@^1.1.0:
resolved "https://registry.yarnpkg.com/ensure-posix-path/-/ensure-posix-path-1.1.1.tgz#3c62bdb19fa4681544289edb2b382adc029179ce"
integrity sha512-VWU0/zXzVbeJNXvME/5EmLuEj2TauvoaTz6aFYK1Z92JCBlDlZ3Gu0tuGR42kpW1754ywTs+QB0g5TP0oj9Zaw==
+entities@^4.4.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
+ integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
+
env-paths@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2"
@@ -3067,12 +3056,12 @@ glob@^7.0.0:
once "^1.3.0"
path-is-absolute "^1.0.0"
-global-dirs@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485"
- integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==
+global-directory@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/global-directory/-/global-directory-4.0.1.tgz#4d7ac7cfd2cb73f304c53b8810891748df5e361e"
+ integrity sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==
dependencies:
- ini "2.0.0"
+ ini "4.1.1"
globby@14.0.2:
version "14.0.2"
@@ -3110,23 +3099,6 @@ got@13.0.0:
p-cancelable "^3.0.0"
responselike "^3.0.0"
-got@^12.1.0:
- version "12.6.1"
- resolved "https://registry.yarnpkg.com/got/-/got-12.6.1.tgz#8869560d1383353204b5a9435f782df9c091f549"
- integrity sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==
- dependencies:
- "@sindresorhus/is" "^5.2.0"
- "@szmarczak/http-timer" "^5.0.1"
- cacheable-lookup "^7.0.0"
- cacheable-request "^10.2.8"
- decompress-response "^6.0.0"
- form-data-encoder "^2.1.2"
- get-stream "^6.0.1"
- http2-wrapper "^2.1.10"
- lowercase-keys "^3.0.0"
- p-cancelable "^3.0.0"
- responselike "^3.0.0"
-
graceful-fs@4.2.10:
version "4.2.10"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
@@ -3386,10 +3358,10 @@ inherits@2.0.3:
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==
-ini@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5"
- integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==
+ini@4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/ini/-/ini-4.1.1.tgz#d95b3d843b1e906e56d6747d5447904ff50ce7a1"
+ integrity sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==
ini@^1.3.4, ini@~1.3.0:
version "1.3.8"
@@ -3520,13 +3492,13 @@ is-inside-container@^1.0.0:
dependencies:
is-docker "^3.0.0"
-is-installed-globally@^0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520"
- integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==
+is-installed-globally@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-1.0.0.tgz#08952c43758c33d815692392f7f8437b9e436d5a"
+ integrity sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==
dependencies:
- global-dirs "^3.0.0"
- is-path-inside "^3.0.2"
+ global-directory "^4.0.1"
+ is-path-inside "^4.0.0"
is-interactive@^1.0.0:
version "1.0.0"
@@ -3563,10 +3535,10 @@ is-obj@^2.0.0:
resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
-is-path-inside@^3.0.2:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
- integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
+is-path-inside@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-4.0.0.tgz#805aeb62c47c1b12fc3fd13bfb3ed1e7430071db"
+ integrity sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==
is-plain-obj@^2.1.0:
version "2.1.0"
@@ -3894,12 +3866,17 @@ kind-of@^6.0.2:
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
-latest-version@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-7.0.0.tgz#843201591ea81a4d404932eeb61240fe04e9e5da"
- integrity sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==
+ky@^1.2.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/ky/-/ky-1.4.0.tgz#68b4a71eccfb4177199fe6ee2d5041b50bb41931"
+ integrity sha512-tPhhoGUiEiU/WXR4rt8klIoLdnTtyu+9jVKHd/wauEjYud32jyn63mzKWQweaQrHWxBQtYoVtdcEnYX1LosnFQ==
+
+latest-version@^9.0.0:
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-9.0.0.tgz#e91ed216e7a4badc6f73b66c65adb46c58ec6ba1"
+ integrity sha512-7W0vV3rqv5tokqkBAFV1LbR7HPOWzXQDpDgEuib/aJ1jsZZx6x3c2mBI+TJhJzOhkGeaLbCKEHXEXLfirtG2JA==
dependencies:
- package-json "^8.1.0"
+ package-json "^10.0.0"
launch-editor@^2.6.1:
version "2.8.0"
@@ -3909,21 +3886,21 @@ launch-editor@^2.6.1:
picocolors "^1.0.0"
shell-quote "^1.8.1"
-libp2p@^1.6.0:
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/libp2p/-/libp2p-1.8.0.tgz#5557ae000b1329454436cdd6cf4da3ef386f81f1"
- integrity sha512-+dZe5Q1IedmD6JshhHP63sXfFpoBv2x/2dCytKGJmtgYJINVL2/hFCz4ezBQqcmOEa+XVs9A2nAuocH30r089Q==
- dependencies:
- "@libp2p/crypto" "^4.1.5"
- "@libp2p/interface" "^1.6.0"
- "@libp2p/interface-internal" "^1.3.0"
- "@libp2p/logger" "^4.0.16"
- "@libp2p/multistream-select" "^5.1.13"
- "@libp2p/peer-collections" "^5.2.5"
- "@libp2p/peer-id" "^4.2.0"
- "@libp2p/peer-id-factory" "^4.2.0"
- "@libp2p/peer-store" "^10.1.1"
- "@libp2p/utils" "^5.4.5"
+libp2p@^1.8.1:
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/libp2p/-/libp2p-1.8.1.tgz#fd1bde535d0bbbe535a247d6652498d29f2dee33"
+ integrity sha512-c+y3dlTtFo2HtuEQKLVpZ7b+NyYBDITwv7ynVH0dBkCAvStOHEsGeq4jW9pPw99cgmhH9c5sDAYBv9Hs5ufHZw==
+ dependencies:
+ "@libp2p/crypto" "^4.1.6"
+ "@libp2p/interface" "^1.6.1"
+ "@libp2p/interface-internal" "^1.3.1"
+ "@libp2p/logger" "^4.0.17"
+ "@libp2p/multistream-select" "^5.1.14"
+ "@libp2p/peer-collections" "^5.2.6"
+ "@libp2p/peer-id" "^4.2.1"
+ "@libp2p/peer-id-factory" "^4.2.1"
+ "@libp2p/peer-store" "^10.1.2"
+ "@libp2p/utils" "^5.4.6"
"@multiformats/dns" "^1.0.6"
"@multiformats/multiaddr" "^12.2.3"
"@multiformats/multiaddr-matcher" "^1.2.1"
@@ -3945,6 +3922,13 @@ lines-and-columns@^1.1.6:
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
+linkify-it@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-5.0.0.tgz#9ef238bfa6dc70bd8e7f9572b52d369af569b421"
+ integrity sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==
+ dependencies:
+ uc.micro "^2.0.0"
+
loader-runner@^4.2.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1"
@@ -4025,6 +4009,11 @@ lru-cache@^7.14.1:
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89"
integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==
+lunr@^2.3.9:
+ version "2.3.9"
+ resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1"
+ integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==
+
macos-release@^3.1.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-3.2.0.tgz#dcee82b6a4932971b1538dbf6f3aabc4a903b613"
@@ -4042,6 +4031,18 @@ make-error@^1.1.1:
resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
+markdown-it@^14.1.0:
+ version "14.1.0"
+ resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-14.1.0.tgz#3c3c5992883c633db4714ccb4d7b5935d98b7d45"
+ integrity sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==
+ dependencies:
+ argparse "^2.0.1"
+ entities "^4.4.0"
+ linkify-it "^5.0.0"
+ mdurl "^2.0.0"
+ punycode.js "^2.3.1"
+ uc.micro "^2.1.0"
+
matcher-collection@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/matcher-collection/-/matcher-collection-2.0.1.tgz#90be1a4cf58d6f2949864f65bb3b0f3e41303b29"
@@ -4059,6 +4060,11 @@ md5.js@^1.3.4:
inherits "^2.0.1"
safe-buffer "^5.1.2"
+mdurl@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-2.0.0.tgz#80676ec0433025dd3e17ee983d0fe8de5a2237e0"
+ integrity sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==
+
media-typer@0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
@@ -4176,7 +4182,7 @@ minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.1:
dependencies:
brace-expansion "^1.1.7"
-minimatch@^9.0.4:
+minimatch@^9.0.4, minimatch@^9.0.5:
version "9.0.5"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5"
integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
@@ -4222,13 +4228,6 @@ ms@2.1.3:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
-multibase@^4.0.1:
- version "4.0.6"
- resolved "https://registry.yarnpkg.com/multibase/-/multibase-4.0.6.tgz#6e624341483d6123ca1ede956208cb821b440559"
- integrity sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==
- dependencies:
- "@multiformats/base-x" "^4.0.1"
-
multicast-dns@^7.2.5:
version "7.2.5"
resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced"
@@ -4252,20 +4251,6 @@ multiformats@^13.0.0, multiformats@^13.0.1, multiformats@^13.1.0:
resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-13.1.3.tgz#36d312401ff424948ef90746fbda9dd798cffa09"
integrity sha512-CZPi9lFZCM/+7oRolWYsvalsyWQGFo+GpdaTmjxXXomC+nP/W1Rnxb9sUgjvmNmRZ5bOPqRAl4nuK+Ydw/4tGw==
-multiformats@^9.4.2:
- version "9.9.0"
- resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37"
- integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==
-
-multihashes@^4.0.3:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-4.0.3.tgz#426610539cd2551edbf533adeac4c06b3b90fb05"
- integrity sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==
- dependencies:
- multibase "^4.0.1"
- uint8arrays "^3.0.0"
- varint "^5.0.2"
-
murmurhash3js-revisited@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz#6bd36e25de8f73394222adc6e41fa3fac08a5869"
@@ -4562,15 +4547,15 @@ package-json-from-dist@^1.0.0:
resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz#e501cd3094b278495eb4258d4c9f6d5ac3019f00"
integrity sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==
-package-json@^8.1.0:
- version "8.1.1"
- resolved "https://registry.yarnpkg.com/package-json/-/package-json-8.1.1.tgz#3e9948e43df40d1e8e78a85485f1070bf8f03dc8"
- integrity sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==
+package-json@^10.0.0:
+ version "10.0.1"
+ resolved "https://registry.yarnpkg.com/package-json/-/package-json-10.0.1.tgz#e49ee07b8de63b638e7f1b5bb353733e428fe7d7"
+ integrity sha512-ua1L4OgXSBdsu1FPb7F3tYH0F48a6kxvod4pLUlGY9COeJAJQNX/sNH2IiEmsxw7lqYiAwrdHMjz1FctOsyDQg==
dependencies:
- got "^12.1.0"
- registry-auth-token "^5.0.1"
- registry-url "^6.0.0"
- semver "^7.3.7"
+ ky "^1.2.0"
+ registry-auth-token "^5.0.2"
+ registry-url "^6.0.1"
+ semver "^7.6.0"
parent-module@^1.0.0:
version "1.0.1"
@@ -4821,6 +4806,11 @@ pump@^3.0.0:
end-of-stream "^1.1.0"
once "^1.3.1"
+punycode.js@^2.3.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/punycode.js/-/punycode.js-2.3.1.tgz#6b53e56ad75588234e79f4affa90972c7dd8cdb7"
+ integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==
+
punycode@^2.1.0:
version "2.3.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
@@ -4973,24 +4963,24 @@ rechoir@^0.8.0:
dependencies:
resolve "^1.20.0"
-registry-auth-token@^5.0.1:
+registry-auth-token@^5.0.2:
version "5.0.2"
resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.2.tgz#8b026cc507c8552ebbe06724136267e63302f756"
integrity sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==
dependencies:
"@pnpm/npm-conf" "^2.1.0"
-registry-url@^6.0.0:
+registry-url@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-6.0.1.tgz#056d9343680f2f64400032b1e199faa692286c58"
integrity sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==
dependencies:
rc "1.2.8"
-release-it@^17.4.1:
- version "17.4.1"
- resolved "https://registry.yarnpkg.com/release-it/-/release-it-17.4.1.tgz#186f700064565afe5ca2265f1589fe7b8d3128ff"
- integrity sha512-Aa48kKx5qZRVXJ6YCnCJRg6sJiofEX7RErTLmnlFbCE7k1Kg8ayhgJovofuBhCtz3FRdsYnxBKjlh+VAMeazEA==
+release-it@^17.6.0:
+ version "17.6.0"
+ resolved "https://registry.yarnpkg.com/release-it/-/release-it-17.6.0.tgz#de91db313d76849f727a7434f7b8bdb52b6a4ac8"
+ integrity sha512-EE34dtRPL7BHpYQC7E+zAU8kjkyxFHxLk5Iqnmn/5nGcjgOQu34Au29M2V9YvxiP3tZbIlEn4gItEzu7vAPRbw==
dependencies:
"@iarna/toml" "2.2.5"
"@octokit/rest" "20.1.1"
@@ -5014,7 +5004,7 @@ release-it@^17.4.1:
proxy-agent "6.4.0"
semver "7.6.2"
shelljs "0.8.5"
- update-notifier "7.0.0"
+ update-notifier "7.1.0"
url-join "5.0.0"
wildcard-match "5.1.3"
yargs-parser "21.1.1"
@@ -5224,7 +5214,7 @@ semver-diff@^4.0.0:
dependencies:
semver "^7.3.5"
-semver@7.6.2, semver@^7.1.3, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.5.4:
+semver@7.6.2, semver@^7.1.3, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.6.0, semver@^7.6.2:
version "7.6.2"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13"
integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==
@@ -5341,6 +5331,14 @@ shelljs@0.8.5:
interpret "^1.0.0"
rechoir "^0.6.2"
+shiki@^1.9.1:
+ version "1.10.3"
+ resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.10.3.tgz#2276fb21a07043b28c5b16001e6a04fef99dbb8f"
+ integrity sha512-eneCLncGuvPdTutJuLyUGS8QNPAVFO5Trvld2wgEq1e002mwctAhJKeMGWtWVXOIEzmlcLRqcgPSorR6AVzOmQ==
+ dependencies:
+ "@shikijs/core" "1.10.3"
+ "@types/hast" "^3.0.4"
+
side-channel@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2"
@@ -5795,6 +5793,17 @@ typedarray-to-buffer@^3.1.5:
dependencies:
is-typedarray "^1.0.0"
+typedoc@^0.26.4:
+ version "0.26.4"
+ resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.26.4.tgz#7e83047369a29a710d429dac20996680cae9a314"
+ integrity sha512-FlW6HpvULDKgc3rK04V+nbFyXogPV88hurarDPOjuuB5HAwuAlrCMQ5NeH7Zt68a/ikOKu6Z/0hFXAeC9xPccQ==
+ dependencies:
+ lunr "^2.3.9"
+ markdown-it "^14.1.0"
+ minimatch "^9.0.5"
+ shiki "^1.9.1"
+ yaml "^2.4.5"
+
typescript@^4.7.4:
version "4.9.5"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a"
@@ -5805,6 +5814,11 @@ typescript@^5.4.5:
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.3.tgz#e1b0a3c394190838a0b168e771b0ad56a0af0faa"
integrity sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==
+uc.micro@^2.0.0, uc.micro@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-2.1.0.tgz#f8d3f7d0ec4c3dea35a7e3c8efa4cb8b45c9e7ee"
+ integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==
+
uint8-varint@^2.0.1, uint8-varint@^2.0.2, uint8-varint@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/uint8-varint/-/uint8-varint-2.0.4.tgz#85be52b3849eb30f2c3640a2df8a14364180affb"
@@ -5820,13 +5834,6 @@ uint8arraylist@^2.0.0, uint8arraylist@^2.4.3, uint8arraylist@^2.4.8:
dependencies:
uint8arrays "^5.0.1"
-uint8arrays@^3.0.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.1.tgz#2d8762acce159ccd9936057572dade9459f65ae0"
- integrity sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==
- dependencies:
- multiformats "^9.4.2"
-
uint8arrays@^4.0.9:
version "4.0.10"
resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-4.0.10.tgz#3ec5cde3348903c140e87532fc53f46b8f2e921f"
@@ -5881,21 +5888,21 @@ update-browserslist-db@^1.1.0:
escalade "^3.1.2"
picocolors "^1.0.1"
-update-notifier@7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-7.0.0.tgz#295aa782dadab784ed4073f7ffaea1fb2123031c"
- integrity sha512-Hv25Bh+eAbOLlsjJreVPOs4vd51rrtCrmhyOJtbpAojro34jS4KQaEp4/EvlHJX7jSO42VvEFpkastVyXyIsdQ==
+update-notifier@7.1.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-7.1.0.tgz#b8f43cc2dc094c221f179bfab9eba9f4b1469965"
+ integrity sha512-8SV3rIqVY6EFC1WxH6L0j55s0MO79MFBS1pivmInRJg3pCEDgWHBj1Q6XByTtCLOZIFA0f6zoG9ZWf2Ks9lvTA==
dependencies:
boxen "^7.1.1"
chalk "^5.3.0"
configstore "^6.0.0"
import-lazy "^4.0.0"
is-in-ci "^0.1.0"
- is-installed-globally "^0.4.0"
+ is-installed-globally "^1.0.0"
is-npm "^6.0.0"
- latest-version "^7.0.0"
+ latest-version "^9.0.0"
pupa "^3.1.0"
- semver "^7.5.4"
+ semver "^7.6.2"
semver-diff "^4.0.0"
xdg-basedir "^5.1.0"
@@ -5944,20 +5951,15 @@ validate-peer-dependencies@^1.0.0:
resolve-package-path "^3.1.0"
semver "^7.3.2"
-varint@^5.0.2:
- version "5.0.2"
- resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4"
- integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==
-
vary@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
-vite-node@2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-2.0.2.tgz#6e1958b2db655ddef8c95e6fb461bcd954b7fbbf"
- integrity sha512-w4vkSz1Wo+NIQg8pjlEn0jQbcM/0D+xVaYjhw3cvarTanLLBh54oNiRbsT8PNK5GfuST0IlVXjsNRoNlqvY/fw==
+vite-node@2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-2.0.3.tgz#449b1524178304ba764bd33062bd31a09c5e673f"
+ integrity sha512-14jzwMx7XTcMB+9BhGQyoEAmSl0eOr3nrnn+Z12WNERtOvLN+d2scbRUvyni05rT3997Bg+rZb47NyP4IQPKXg==
dependencies:
cac "^6.7.14"
debug "^4.3.5"
@@ -5976,18 +5978,18 @@ vite@^5.0.0:
optionalDependencies:
fsevents "~2.3.3"
-vitest@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/vitest/-/vitest-2.0.2.tgz#39a4bde8af124c848b4e9098ca339914ebe10ef9"
- integrity sha512-WlpZ9neRIjNBIOQwBYfBSr0+of5ZCbxT2TVGKW4Lv0c8+srCFIiRdsP7U009t8mMn821HQ4XKgkx5dVWpyoyLw==
+vitest@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/vitest/-/vitest-2.0.3.tgz#daf7e43c9415c6825922ae3a63cac452d1ac705f"
+ integrity sha512-o3HRvU93q6qZK4rI2JrhKyZMMuxg/JRt30E6qeQs6ueaiz5hr1cPj+Sk2kATgQzMMqsa2DiNI0TIK++1ULx8Jw==
dependencies:
"@ampproject/remapping" "^2.3.0"
- "@vitest/expect" "2.0.2"
- "@vitest/pretty-format" "^2.0.2"
- "@vitest/runner" "2.0.2"
- "@vitest/snapshot" "2.0.2"
- "@vitest/spy" "2.0.2"
- "@vitest/utils" "2.0.2"
+ "@vitest/expect" "2.0.3"
+ "@vitest/pretty-format" "^2.0.3"
+ "@vitest/runner" "2.0.3"
+ "@vitest/snapshot" "2.0.3"
+ "@vitest/spy" "2.0.3"
+ "@vitest/utils" "2.0.3"
chai "^5.1.1"
debug "^4.3.5"
execa "^8.0.1"
@@ -5998,7 +6000,7 @@ vitest@^2.0.2:
tinypool "^1.0.0"
tinyrainbow "^1.2.0"
vite "^5.0.0"
- vite-node "2.0.2"
+ vite-node "2.0.3"
why-is-node-running "^2.2.2"
vm-browserify@^1.1.2:
@@ -6266,7 +6268,7 @@ xdg-basedir@^5.0.1, xdg-basedir@^5.1.0:
resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-5.1.0.tgz#1efba19425e73be1bc6f2a6ceb52a3d2c884c0c9"
integrity sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==
-yaml@^2.1.1:
+yaml@^2.1.1, yaml@^2.4.5:
version "2.4.5"
resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.5.tgz#60630b206dd6d84df97003d33fc1ddf6296cca5e"
integrity sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==