diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 3dad05a1ab..8d86fcccfe 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1 +1 @@
-* @branarakic @djordjekovac @NZT48 @zeroxbt @u-hubar
+* @branarakic @u-hubar @Mihajlo-Pavlovic
diff --git a/.github/ISSUE_TEMPLATE/bug_report_v6.md b/.github/ISSUE_TEMPLATE/bug_report_v8.md
similarity index 95%
rename from .github/ISSUE_TEMPLATE/bug_report_v6.md
rename to .github/ISSUE_TEMPLATE/bug_report_v8.md
index 5c5fa41e97..111fd291ca 100644
--- a/.github/ISSUE_TEMPLATE/bug_report_v6.md
+++ b/.github/ISSUE_TEMPLATE/bug_report_v8.md
@@ -1,5 +1,5 @@
---
-name: Bug report for v6 ot-node
+name: Bug report for V8 ot-node
about: Create an issue report
title: ''
labels: ''
diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml
index 9acedddf3e..842e8ab0fa 100644
--- a/.github/actions/setup/action.yml
+++ b/.github/actions/setup/action.yml
@@ -7,7 +7,7 @@ runs:
id: nodejs
uses: actions/setup-node@v3
with:
- node-version: 16.x
+ node-version: 20.x
cache: npm
- name: Cache node modules
diff --git a/.github/workflows/update-cache.yml b/.github/workflows/update-cache.yml
index cbf1f24c68..02dae82da1 100644
--- a/.github/workflows/update-cache.yml
+++ b/.github/workflows/update-cache.yml
@@ -3,7 +3,7 @@ name: update-cache
on:
push:
branches:
- - v6/develop
+ - v8/develop
concurrency:
group: update-cache-${{ github.ref }}
diff --git a/README.md b/README.md
index 1bce41177e..ff0fa2f4fd 100644
--- a/README.md
+++ b/README.md
@@ -164,8 +164,8 @@ By their nature, Knowledge Assets are semantic resources (following the W3C Sema
-- **NodeJS** 16.x (ideally, 16.16)
-- **npm** >= 8.0.0
+- **Node.js** 20.18
+- **npm** 10.8.2
---
@@ -182,6 +182,12 @@ git clone https://github.com/OriginTrail/ot-node.git
cd ot-node
```
+Switch the branch to `v8/develop`:
+
+```bash
+git checkout v8/develop
+```
+
Install dependencies using `npm`:
```bash
@@ -210,18 +216,18 @@ To use default Triple Store (`blazegraph`), download the exec file and run it wi
java -server -Xmx4g -jar blazegraph.jar
```
-Then, depending on the OS, use one of the scripts in order to run the local network with provided number of nodes (minimal amount of nodes should be 12):
+Then, depending on the OS, use one of the scripts in order to run the local network with provided number of nodes (minimal amount of nodes should be 6):
**MacOS**
```bash
-bash ./tools/local-network-setup/setup-macos-environment.sh --nodes=12
+bash ./tools/local-network-setup/setup-macos-environment.sh --nodes=6
```
**Linux**
```bash
-./tools/local-network-setup/setup-linux-environment.sh --nodes=12
+./tools/local-network-setup/setup-linux-environment.sh --nodes=6
```
---
@@ -232,7 +238,7 @@ bash ./tools/local-network-setup/setup-macos-environment.sh --nodes=12
-In order to run a DKG node on the **Testnet** or **Mainnet**, please read the official documentation: https://docs.origintrail.io/decentralized-knowledge-graph-layer-2/node-setup-instructions/setup-instructions-dockerless
+In order to run a DKG node on the **V8 Testnet**, please read the official documentation: https://docs.origintrail.io/dkg-v8-upcoming-version/run-a-v8-core-node-on-testnet
---
@@ -251,12 +257,12 @@ From an architectural standpoint, the SDK libraries are application interfaces i
The OriginTrail SDK libraries are being built in various languages by the team and the community, as listed below:
-- dkg.js - JavaScript SDK implementation
- - [Github repository](https://github.com/OriginTrail/dkg.js)
- - [Documentation](https://docs.origintrail.io/decentralized-knowledge-graph-layer-2/dkg-sdk/dkg-v6-js-client)
-- dkg.py - Python SDK implementation
- - [Github repository](https://github.com/OriginTrail/dkg.py)
- - [Documentation](https://docs.origintrail.io/decentralized-knowledge-graph-layer-2/dkg-sdk/dkg-v6-py-client)
+- dkg.js - V8 JavaScript SDK implementation
+ - [Github repository](https://github.com/OriginTrail/dkg.js/tree/v8/develop)
+ - [Documentation](https://docs.origintrail.io/dkg-v8-upcoming-version/v8-dkg-sdk/dkg-v8-js-client)
+- dkg.py - V8 Python SDK implementation
+ - [Github repository](https://github.com/OriginTrail/dkg.py/tree/v8/develop)
+ - [Documentation](https://docs.origintrail.io/dkg-v8-upcoming-version/v8-dkg-sdk/dkg-v8-py-client)
---
diff --git a/tools/knowledge-assets-distribution-simulation/plots/.gitkeep b/bin/darwin/arm64/.gitkeep
similarity index 100%
rename from tools/knowledge-assets-distribution-simulation/plots/.gitkeep
rename to bin/darwin/arm64/.gitkeep
diff --git a/bin/darwin/x64/.gitkeep b/bin/darwin/x64/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/bin/linux/arm64/.gitkeep b/bin/linux/arm64/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/bin/linux/x64/.gitkeep b/bin/linux/x64/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/bin/win32/x64/.gitkeep b/bin/win32/x64/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/config/config.json b/config/config.json
index c67531e2a2..2c5e22ba1e 100644
--- a/config/config.json
+++ b/config/config.json
@@ -8,7 +8,7 @@
"enabled": false,
"package": "./auto-updater/implementation/ot-auto-updater.js",
"config": {
- "branch": "v6/develop"
+ "branch": "v8/develop"
}
}
}
@@ -149,20 +149,41 @@
}
},
"telemetry": {
+ "enabled": false,
+ "implementation": {
+ "quest-telemetry": {
+ "enabled": true,
+ "package": "./telemetry/implementation/quest-telemetry.js",
+ "config": {
+ "localEndpoint": "http::addr=localhost:10000",
+ "signalingServiceEndpoint": "",
+ "sendToSignalingService": false
+ }
+ }
+ }
+ },
+ "blockchainEvents": {
"enabled": true,
"implementation": {
- "ot-telemetry": {
+ "ot-ethers": {
"enabled": true,
- "package": "./telemetry/implementation/ot-telemetry.js",
+ "package": "./blockchain-events/implementation/ot-ethers/ot-ethers.js",
"config": {
- "sendTelemetryData": false,
- "signalingServerUrl": "null"
+ "blockchains": ["hardhat1:31337", "hardhat2:31337"],
+ "rpcEndpoints": {
+ "hardhat1:31337": ["http://localhost:8545"],
+ "hardhat2:31337": ["http://localhost:9545"]
+ },
+ "hubContractAddress": {
+ "hardhat1:31337": "0x5FbDB2315678afecb367f032d93F642f64180aa3",
+ "hardhat2:31337": "0x5FbDB2315678afecb367f032d93F642f64180aa3"
+ }
}
}
}
}
},
- "maximumAssertionSizeInKb": 10000,
+ "maximumAssertionSizeInKb": 500000,
"commandExecutorVerboseLoggingEnabled": false,
"appDataPath": "data",
"logLevel": "info",
@@ -187,7 +208,7 @@
"enabled": false,
"package": "./auto-updater/implementation/ot-auto-updater.js",
"config": {
- "branch": "v6/develop"
+ "branch": "v8/develop"
}
}
}
@@ -317,20 +338,41 @@
}
},
"telemetry": {
+ "enabled": false,
+ "implementation": {
+ "quest-telemetry": {
+ "enabled": true,
+ "package": "./telemetry/implementation/quest-telemetry.js",
+ "config": {
+ "localEndpoint": "http::addr=localhost:10000",
+ "signalingServiceEndpoint": "",
+ "sendToSignalingService": false
+ }
+ }
+ }
+ },
+ "blockchainEvents": {
"enabled": true,
"implementation": {
- "ot-telemetry": {
+ "ot-ethers": {
"enabled": true,
- "package": "./telemetry/implementation/ot-telemetry.js",
+ "package": "./blockchain-events/implementation/ot-ethers/ot-ethers.js",
"config": {
- "sendTelemetryData": false,
- "signalingServerUrl": "null"
+ "blockchains": ["hardhat1:31337", "hardhat2:31337"],
+ "rpcEndpoints": {
+ "hardhat1:31337": ["http://localhost:8545"],
+ "hardhat2:31337": ["http://localhost:9545"]
+ },
+ "hubContractAddress": {
+ "hardhat1:31337": "0x5FbDB2315678afecb367f032d93F642f64180aa3",
+ "hardhat2:31337": "0x5FbDB2315678afecb367f032d93F642f64180aa3"
+ }
}
}
}
}
},
- "maximumAssertionSizeInKb": 10000,
+ "maximumAssertionSizeInKb": 500000,
"commandExecutorVerboseLoggingEnabled": false,
"appDataPath": "data",
"logLevel": "trace",
@@ -355,7 +397,7 @@
"enabled": true,
"package": "./auto-updater/implementation/ot-auto-updater.js",
"config": {
- "branch": "v6/release/testnet"
+ "branch": "v8/release/testnet"
}
}
}
@@ -388,8 +430,7 @@
},
"port": 9000,
"bootstrap": [
- "/ip4/164.92.138.30/tcp/9000/p2p/QmbiZQm18JefDizrQwbRhPgkaLykTLyrUEpeMWuKJHXuUM",
- "/ip4/139.59.145.152/tcp/9000/p2p/Qme2oF6afixBjLYjF5CYeC73d5dygsTq8P7BPQp31NVkye"
+ "/ip4/167.172.162.235/tcp/9000/p2p/QmNcjL4P5Dzq5hn6fkncYEsTcRU2g7g4N5rE2KCvHSPDav"
]
}
}
@@ -446,7 +487,7 @@
"enabled": false,
"package": "./blockchain/implementation/ot-parachain/ot-parachain-service.js",
"config": {
- "hubContractAddress": "0xBbfF7Ea6b2Addc1f38A0798329e12C08f03750A6",
+ "hubContractAddress": "0x94cb4Ce3C6ce3654b0dA47255a2325322DaD5552",
"rpcEndpoints": [
"https://lofar-testnet.origin-trail.network",
"https://lofar-testnet.origintrail.network"
@@ -459,7 +500,7 @@
"package": "./blockchain/implementation/gnosis/gnosis-service.js",
"config": {
- "hubContractAddress": "0xC06210312C9217A0EdF67453618F5eB96668679A",
+ "hubContractAddress": "0xC2d165484ee044aFCD0F693a84Ae57235FD986fA",
"gasPriceOracleLink": "https://blockscout.chiadochain.net/api/v1/gas-price-oracle",
"rpcEndpoints": ["https://rpc.chiadochain.net"],
"operatorFee": 0
@@ -470,7 +511,7 @@
"package": "./blockchain/implementation/base/base-service.js",
"config": {
- "hubContractAddress": "0x144eDa5cbf8926327cb2cceef168A121F0E4A299",
+ "hubContractAddress": "0x4A0aC589D7469868ff4EC889aa2c7eE43d30d823",
"rpcEndpoints": ["https://sepolia.base.org"],
"operatorFee": 0
}
@@ -508,20 +549,46 @@
}
},
"telemetry": {
+ "enabled": false,
+ "implementation": {
+ "quest-telemetry": {
+ "enabled": true,
+ "package": "./telemetry/implementation/quest-telemetry.js",
+ "config": {
+ "localEndpoint": "http::addr=localhost:10000",
+ "signalingServiceEndpoint": "",
+ "sendToSignalingService": false
+ }
+ }
+ }
+ },
+ "blockchainEvents": {
"enabled": true,
"implementation": {
- "ot-telemetry": {
+ "ot-ethers": {
"enabled": true,
- "package": "./telemetry/implementation/ot-telemetry.js",
+ "package": "./blockchain-events/implementation/ot-ethers/ot-ethers.js",
"config": {
- "sendTelemetryData": true,
- "signalingServerUrl": "https://testnet-signaling.origin-trail.network/signal"
+ "blockchains": ["otp:20430", "gnosis:10200", "base:84532"],
+ "rpcEndpoints": {
+ "base:84532": ["https://sepolia.base.org"],
+ "otp:20430": [
+ "https://lofar-testnet.origin-trail.network",
+ "https://lofar-testnet.origintrail.network"
+ ],
+ "gnosis:10200": ["https://rpc.chiadochain.net"]
+ },
+ "hubContractAddress": {
+ "base:84532": "0x4A0aC589D7469868ff4EC889aa2c7eE43d30d823",
+ "otp:20430": "0x94cb4Ce3C6ce3654b0dA47255a2325322DaD5552",
+ "gnosis:10200": "0xC2d165484ee044aFCD0F693a84Ae57235FD986fA"
+ }
}
}
}
}
},
- "maximumAssertionSizeInKb": 10000,
+ "maximumAssertionSizeInKb": 500000,
"commandExecutorVerboseLoggingEnabled": false,
"appDataPath": "data",
"logLevel": "trace",
@@ -546,7 +613,7 @@
"enabled": true,
"package": "./auto-updater/implementation/ot-auto-updater.js",
"config": {
- "branch": "v6/release/testnet"
+ "branch": "v8/develop"
}
}
}
@@ -579,8 +646,7 @@
},
"port": 9000,
"bootstrap": [
- "/ip4/64.225.99.151/tcp/9000/p2p/QmawsTRqaLPyLQ5PfStpFcpQW4bvNQ59zV1by2G5aJHuVn",
- "/ip4/18.157.122.121/tcp/9000/p2p/QmfDebvsKNwCggBBmEWB43cAZtTa2umMsnRvBnMV4sY5th"
+ "/ip4/64.225.99.151/tcp/9000/p2p/QmawsTRqaLPyLQ5PfStpFcpQW4bvNQ59zV1by2G5aJHuVn"
]
}
}
@@ -633,35 +699,12 @@
"blockchain": {
"enabled": true,
"implementation": {
- "otp:2160": {
- "enabled": false,
- "package": "./blockchain/implementation/ot-parachain/ot-parachain-service.js",
- "config": {
- "hubContractAddress": "0x0425d8717a9c63345a26C7885CF8c0fEAbcE7bC9",
- "rpcEndpoints": [
- "https://lofar-tm-rpc.origin-trail.network",
- "https://lofar.origintrail.network"
- ],
- "operatorFee": 0
- }
- },
- "gnosis:10200": {
- "enabled": false,
- "package": "./blockchain/implementation/gnosis/gnosis-service.js",
-
- "config": {
- "hubContractAddress": "0xD2bA102A0b11944d00180eE8136208ccF87bC39A",
- "gasPriceOracleLink": "https://blockscout.chiadochain.net/api/v1/gas-price-oracle",
- "rpcEndpoints": ["https://rpc.chiadochain.net"],
- "operatorFee": 0
- }
- },
"base:84532": {
"enabled": false,
"package": "./blockchain/implementation/base/base-service.js",
"config": {
- "hubContractAddress": "0x6C861Cb69300C34DfeF674F7C00E734e840C29C0",
+ "hubContractAddress": "0xE043daF4cC8ae2c720ef95fc82574a37a429c40A",
"rpcEndpoints": ["https://sepolia.base.org"],
"operatorFee": 0
}
@@ -699,20 +742,39 @@
}
},
"telemetry": {
+ "enabled": false,
+ "implementation": {
+ "quest-telemetry": {
+ "enabled": true,
+ "package": "./telemetry/implementation/quest-telemetry.js",
+ "config": {
+ "localEndpoint": "http::addr=localhost:10000",
+ "signalingServiceEndpoint": "",
+ "sendToSignalingService": false
+ }
+ }
+ }
+ },
+ "blockchainEvents": {
"enabled": true,
"implementation": {
- "ot-telemetry": {
+ "ot-ethers": {
"enabled": true,
- "package": "./telemetry/implementation/ot-telemetry.js",
+ "package": "./blockchain-events/implementation/ot-ethers/ot-ethers.js",
"config": {
- "sendTelemetryData": true,
- "signalingServerUrl": "https://devnet-signaling.origin-trail.network/signal"
+ "blockchains": ["base:84532"],
+ "rpcEndpoints": {
+ "base:84532": ["https://sepolia.base.org"]
+ },
+ "hubContractAddress": {
+ "base:84532": "0xE043daF4cC8ae2c720ef95fc82574a37a429c40A"
+ }
}
}
}
}
},
- "maximumAssertionSizeInKb": 10000,
+ "maximumAssertionSizeInKb": 500000,
"commandExecutorVerboseLoggingEnabled": false,
"appDataPath": "data",
"logLevel": "trace",
@@ -889,20 +951,43 @@
}
},
"telemetry": {
+ "enabled": false,
+ "implementation": {
+ "quest-telemetry": {
+ "enabled": true,
+ "package": "./telemetry/implementation/quest-telemetry.js",
+ "config": {
+ "localEndpoint": "http::addr=localhost:10000",
+ "signalingServiceEndpoint": "",
+ "sendToSignalingService": false
+ }
+ }
+ }
+ },
+ "blockchainEvents": {
"enabled": true,
"implementation": {
- "ot-telemetry": {
+ "ot-ethers": {
"enabled": true,
- "package": "./telemetry/implementation/ot-telemetry.js",
+ "package": "./blockchain-events/implementation/ot-ethers/ot-ethers.js",
"config": {
- "sendTelemetryData": true,
- "signalingServerUrl": "https://mainnet-signaling.origin-trail.network/signal"
+ "blockchains": ["otp:2043"],
+ "rpcEndpoints": {
+ "otp:2043": [
+ "https://astrosat-parachain-rpc.origin-trail.network",
+ "https://astrosat.origintrail.network/",
+ "https://astrosat-2.origintrail.network/"
+ ]
+ },
+ "hubContractAddress": {
+ "otp:2043": "0x5fA7916c48Fe6D5F1738d12Ad234b78c90B4cAdA"
+ }
}
}
}
}
},
- "maximumAssertionSizeInKb": 10000,
+ "maximumAssertionSizeInKb": 500000,
"commandExecutorVerboseLoggingEnabled": false,
"appDataPath": "data",
"logLevel": "trace",
diff --git a/docs/openapi/DKGv6.yaml b/docs/openapi/DKGv8.yaml
similarity index 99%
rename from docs/openapi/DKGv6.yaml
rename to docs/openapi/DKGv8.yaml
index 5964ab8356..37e1ab2ca5 100644
--- a/docs/openapi/DKGv6.yaml
+++ b/docs/openapi/DKGv8.yaml
@@ -1,7 +1,7 @@
openapi: 3.0.3
info:
- title: DKGv6
- description: DKG v6 API Collection.
+ title: DKGv8
+ description: DKG V8 API Collection.
version: 1.0.0
contact: {}
servers:
diff --git a/docs/postman/DKGv6.postman_collection.json b/docs/postman/DKGv8.postman_collection.json
similarity index 99%
rename from docs/postman/DKGv6.postman_collection.json
rename to docs/postman/DKGv8.postman_collection.json
index bd257955e4..2581e0c65c 100644
--- a/docs/postman/DKGv6.postman_collection.json
+++ b/docs/postman/DKGv8.postman_collection.json
@@ -1,8 +1,8 @@
{
"info": {
"_postman_id": "550b0443-cd47-482a-9c56-2b1229422426",
- "name": "DKGv6",
- "description": "DKG v6 API Collection.",
+ "name": "DKGv8",
+ "description": "DKG V8 API Collection.",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": [
diff --git a/installer/README.md b/installer/README.md
index 2c707a134b..880e9c4b6b 100644
--- a/installer/README.md
+++ b/installer/README.md
@@ -1,10 +1,10 @@
-Installs the V6 Node
+Installs the V8 Node
2. Login to the server as root. You __cannot__ use sudo and run this script. The command "npm install" __will__ fail.
3. Execute the following command:
```
-cd /root/ && curl https://raw.githubusercontent.com/OriginTrail/ot-node/v6/release/mainnet/installer/installer.sh --output installer.sh && chmod +x installer.sh
+cd /root/ && curl https://raw.githubusercontent.com/OriginTrail/ot-node/v8/release/testnet/installer/installer.sh --output installer.sh && chmod +x installer.sh
```
diff --git a/installer/data/blazegraph.service b/installer/data/blazegraph.service
index a681872d66..7258c4a5f9 100644
--- a/installer/data/blazegraph.service
+++ b/installer/data/blazegraph.service
@@ -1,7 +1,7 @@
#/lib/systemd/system/blazegraph.service
[Unit]
-Description=OtBlazegraph - OriginTrail V6 Stage 1 Beta Node
+Description=OtBlazegraph - OriginTrail V8 Node
Documentation=https://github.com/OriginTrail/ot-node
After=network.target
diff --git a/installer/data/fuseki.service b/installer/data/fuseki.service
index 48b4da31ca..0f59a184d5 100644
--- a/installer/data/fuseki.service
+++ b/installer/data/fuseki.service
@@ -1,7 +1,7 @@
#/lib/systemd/system/fuseki.service
[Unit]
-Description=OtFuseki - OriginTrail V6 Stage 1 Beta Node
+Description=OtFuseki - OriginTrail V8 Node
Documentation=https://github.com/OriginTrail/ot-node
After=network.target
diff --git a/installer/data/graphdb.service b/installer/data/graphdb.service
index 046b4273c6..33a43c3594 100755
--- a/installer/data/graphdb.service
+++ b/installer/data/graphdb.service
@@ -1,7 +1,7 @@
#/lib/systemd/system/graphdb.service
[Unit]
-Description=GraphDB - OriginTrail V6 Stage 1 Beta Node
+Description=GraphDB - OriginTrail V8 Node
Documentation=https://github.com/OriginTrail/ot-node
After=network.target
diff --git a/installer/data/otnode.service b/installer/data/otnode.service
index 92fbc8d5ed..4bd6e210a7 100755
--- a/installer/data/otnode.service
+++ b/installer/data/otnode.service
@@ -1,7 +1,7 @@
#/lib/systemd/system/otnode.service
[Unit]
-Description=OriginTrail V6 Node
+Description=OriginTrail V8 Node
Documentation=https://github.com/OriginTrail/ot-node/
After=network.target graphdb.service blazegraph.service
diff --git a/installer/data/template/.origintrail_noderc_one_click_mainnet.json b/installer/data/template/.origintrail_noderc_one_click_mainnet.json
deleted file mode 100644
index 1745c32afc..0000000000
--- a/installer/data/template/.origintrail_noderc_one_click_mainnet.json
+++ /dev/null
@@ -1,113 +0,0 @@
-{
- "modules":{
- "network": {
- "implementation": {
- "libp2p-service": {
- "config": {
- "nat": {
- "enabled": true,
- "externalIp": ""
- }
- }
- }
- }
- },
- "blockchain":{
- "implementation":{
- "otp:2043":{
- "enabled":true,
- "config":{
- "sharesTokenName":"",
- "sharesTokenSymbol":"",
- "operatorFee":"",
- "evmManagementWalletPublicKey":"",
- "operationalWallets":[
- {
- "evmAddress":"",
- "privateKey":""
- }
- ]
- }
- },
- "gnosis:100":{
- "enabled":true,
- "config":{
- "sharesTokenName":"",
- "sharesTokenSymbol":"",
- "operatorFee":"",
- "rpcEndpoints":[
- ""
- ],
- "evmManagementWalletPublicKey":"",
- "operationalWallets":[
- {
- "evmAddress":"",
- "privateKey":""
- }
- ]
- }
- },
- "base:8453":{
- "enabled":true,
- "config":{
- "evmManagementWalletPublicKey":"",
- "operationalWallets":[
- {
- "evmAddress":"",
- "privateKey":""
- }
- ],
- "sharesTokenName":"",
- "sharesTokenSymbol":"",
- "operatorFee":"",
- "rpcEndpoints":[
- ""
- ]
- }
- }
- }
- },
- "tripleStore":{
- "implementation":{
- "ot-blazegraph":{
- "enabled":true,
- "package":"./triple-store/implementation/ot-blazegraph/ot-blazegraph.js",
- "config":{
- "repositories":{
- "privateCurrent":{
- "url":"http://localhost:9999",
- "name":"private-current",
- "username":"admin",
- "password":""
- },
- "privateHistory":{
- "url":"http://localhost:9999",
- "name":"private-history",
- "username":"admin",
- "password":""
- },
- "publicCurrent":{
- "url":"http://localhost:9999",
- "name":"public-current",
- "username":"admin",
- "password":""
- },
- "publicHistory":{
- "url":"http://localhost:9999",
- "name":"public-history",
- "username":"admin",
- "password":""
- }
- }
- }
- }
- }
- }
- },
- "auth":{
- "ipWhitelist":[
- "::1",
- "127.0.0.1"
- ]
- }
-}
diff --git a/installer/data/template/.origintrail_noderc_one_click_testnet.json b/installer/data/template/.origintrail_noderc_one_click_testnet.json
deleted file mode 100644
index d1abfdc4d7..0000000000
--- a/installer/data/template/.origintrail_noderc_one_click_testnet.json
+++ /dev/null
@@ -1,113 +0,0 @@
-{
- "modules":{
- "network": {
- "implementation": {
- "libp2p-service": {
- "config": {
- "nat": {
- "enabled": true,
- "externalIp": ""
- }
- }
- }
- }
- },
- "blockchain":{
- "implementation":{
- "otp:20430":{
- "enabled":true,
- "config":{
- "sharesTokenName":"",
- "sharesTokenSymbol":"",
- "operatorFee":"",
- "evmManagementWalletPublicKey":"",
- "operationalWallets":[
- {
- "evmAddress":"",
- "privateKey":""
- }
- ]
- }
- },
- "gnosis:10200":{
- "enabled":true,
- "config":{
- "sharesTokenName":"",
- "sharesTokenSymbol":"",
- "operatorFee":"",
- "rpcEndpoints":[
- ""
- ],
- "evmManagementWalletPublicKey":"",
- "operationalWallets":[
- {
- "evmAddress":"",
- "privateKey":""
- }
- ]
- }
- },
- "base:84532":{
- "enabled":true,
- "config":{
- "evmManagementWalletPublicKey":"",
- "operationalWallets":[
- {
- "evmAddress":"",
- "privateKey":""
- }
- ],
- "sharesTokenName":"",
- "sharesTokenSymbol":"",
- "operatorFee":"",
- "rpcEndpoints":[
- ""
- ]
- }
- }
- }
- },
- "tripleStore":{
- "implementation":{
- "ot-blazegraph":{
- "enabled":true,
- "package":"./triple-store/implementation/ot-blazegraph/ot-blazegraph.js",
- "config":{
- "repositories":{
- "privateCurrent":{
- "url":"http://localhost:9999",
- "name":"private-current",
- "username":"admin",
- "password":""
- },
- "privateHistory":{
- "url":"http://localhost:9999",
- "name":"private-history",
- "username":"admin",
- "password":""
- },
- "publicCurrent":{
- "url":"http://localhost:9999",
- "name":"public-current",
- "username":"admin",
- "password":""
- },
- "publicHistory":{
- "url":"http://localhost:9999",
- "name":"public-history",
- "username":"admin",
- "password":""
- }
- }
- }
- }
- }
- }
- },
- "auth":{
- "ipWhitelist":[
- "::1",
- "127.0.0.1"
- ]
- }
-}
diff --git a/installer/installer.sh b/installer/installer.sh
old mode 100755
new mode 100644
index 77754cc11a..e13e7485c7
--- a/installer/installer.sh
+++ b/installer/installer.sh
@@ -49,8 +49,8 @@ notification_box() {
check_ubuntu_version() {
UBUNTU_VERSION=$(lsb_release -r -s)
- if [[ "$UBUNTU_VERSION" != "20.04" && "$UBUNTU_VERSION" != "22.04" ]]; then
- notification_box "Error: OriginTrail node installer currently requires Ubuntu 20.04 LTS or 22.04 LTS versions in order to execute successfully. You are installing on Ubuntu $UBUNTU_VERSION."
+ if [[ "$UBUNTU_VERSION" != "20.04" && "$UBUNTU_VERSION" != "22.04" && "$UBUNTU_VERSION" != "24.04" ]]; then
+ notification_box "Error: OriginTrail node installer currently requires Ubuntu 20.04 LTS, 22.04 LTS or 24.04 LTS versions in order to execute successfully. You are installing on Ubuntu $UBUNTU_VERSION."
echo -e "${BRED}Please make sure that you get familiar with the requirements before setting up your OriginTrail node! Documentation: docs.origintrail.io${NC}"
exit 1
fi
@@ -83,8 +83,8 @@ install_aliases() {
install_directory() {
ARCHIVE_REPOSITORY_URL="github.com/OriginTrail/ot-node/archive"
- BRANCH="v6/release/mainnet"
- BRANCH_DIR="/root/ot-node-6-release-mainnet"
+ BRANCH="v8/release/testnet"
+ BRANCH_DIR="/root/ot-node-8-release-testnet"
perform_step wget https://$ARCHIVE_REPOSITORY_URL/$BRANCH.zip "Downloading node files"
perform_step unzip *.zip "Unzipping node files"
@@ -98,14 +98,10 @@ install_directory() {
perform_step ln -sfn $OTNODE_DIR/$OTNODE_VERSION $OTNODE_DIR/current "Creating symlink from $OTNODE_DIR/$OTNODE_VERSION to $OTNODE_DIR/current"
}
-install_firewall() {
- ufw allow 22/tcp && ufw allow 8900 && ufw allow 9000
- yes | ufw enable
-}
install_prereqs() {
export DEBIAN_FRONTEND=noninteractive
- NODEJS_VER="16"
+ NODEJS_VER="20"
perform_step install_aliases "Updating .bashrc file with OriginTrail node aliases" > /dev/null 2>&1
perform_step rm -rf /var/lib/dpkg/lock-frontend "Removing any frontend locks" > /dev/null 2>&1
@@ -115,24 +111,23 @@ install_prereqs() {
perform_step apt install default-jre -y "Installing default-jre" > /dev/null 2>&1
perform_step apt install build-essential -y "Installing build-essential" > /dev/null 2>&1
- # Install nodejs 16 (via NVM).
- wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash > /dev/null 2>&1
+ # Install nodejs 20 (via NVM).
+ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash > /dev/null 2>&1
export NVM_DIR="$HOME/.nvm"
# This loads nvm
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
# This loads nvm bash_completion
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
- nvm install v16.20.1 > /dev/null 2>&1
- nvm use v16.20.1 > /dev/null 2>&1
+ nvm install $NODEJS_VER > /dev/null 2>&1
+ nvm use $NODEJS_VER > /dev/null 2>&1
- # Set nodejs 16.20.1 as default and link node to /usr/bin/
- nvm alias default 16.20.1 > /dev/null 2>&1
+ # Set nodejs 20 as default and link node to /usr/bin/
+ nvm alias default $NODEJS_VER > /dev/null 2>&1
sudo ln -s $(which node) /usr/bin/ > /dev/null 2>&1
sudo ln -s $(which npm) /usr/bin/ > /dev/null 2>&1
apt remove unattended-upgrades -y > /dev/null 2>&1
- perform_step install_firewall "Configuring firewall" > /dev/null 2>&1
perform_step apt remove unattended-upgrades -y "Remove unattended upgrades" > /dev/null 2>&1
}
@@ -253,7 +248,7 @@ request_operational_wallet_keys() {
WALLET_ADDRESSES=()
WALLET_PRIVATE_KEYS=()
- echo "You'll now be asked to input addresses and private keys of your operational wallets for $1. Input an empty value to stop."
+ echo "You'll now be asked to input your operational wallets public and private keys (press ENTER to skip)"
wallet_no=1
while true; do
read -p "Please input the address for your $1 operational wallet no. $wallet_no:" address
@@ -279,91 +274,37 @@ request_operational_wallet_keys() {
' --args "${WALLET_ADDRESSES[@]}" "${WALLET_PRIVATE_KEYS[@]}")
}
+# Define color codes
+RED='\033[0;31m'
+GREEN='\033[0;32m'
+YELLOW='\033[1;33m'
+BLUE='\033[0;34m'
+MAGENTA='\033[0;35m'
+CYAN='\033[0;36m'
+RESET='\033[0m'
+
+# Function to print colored text
+print_color() {
+ local color=$1
+ local text=$2
+ echo -e "${color}${text}${RESET}"
+}
+
install_node() {
# Change directory to ot-node/current
cd $OTNODE_DIR
- # Request node environment with strict input validation
- while true; do
- read -p "Please select node environment: (Default: Mainnet) [T]estnet [M]ainnet [E]xit " choice
- case "$choice" in
- [tT]* ) nodeEnv="testnet"; break;;
- [mM]* ) nodeEnv="mainnet"; break;;
- [eE]* ) text_color $RED "Installer stopped by user"; exit;;
- * ) text_color $RED "Invalid choice. Please enter either [T]estnet, [M]ainnet, or [E]xit."; continue;;
- esac
- done
+ # Set node environment to testnet
+ nodeEnv="testnet"
+ print_color $CYAN "🌐 Setting up node for Base Sepolia (Testnet) environment"
echo "NODE_ENV=$nodeEnv" >> $OTNODE_DIR/.env
- # Set blockchain options based on the selected environment
- if [ "$nodeEnv" == "mainnet" ]; then
- blockchain_options=("OriginTrail Parachain" "Gnosis" "Base")
- otp_blockchain_id=2043
- gnosis_blockchain_id=100
- base_blockchain_id=8453
- else
- blockchain_options=("OriginTrail Parachain" "Gnosis" "Base-Sepolia")
- otp_blockchain_id=20430
- gnosis_blockchain_id=10200
- base_blockchain_id=84532
- fi
-
- # Ask user which blockchains to connect to
- selected_blockchains=()
- checkbox_states=()
- for _ in "${blockchain_options[@]}"; do
- checkbox_states+=("[ ]")
- done
-
- while true; do
- clear # Clear the screen for a cleaner display
- echo "Please select the blockchains you want to connect your node to:"
- for i in "${!blockchain_options[@]}"; do
- echo " ${checkbox_states[$i]} $((i+1)). ${blockchain_options[$i]}"
- done
- echo " [ ] $((${#blockchain_options[@]}+1)). All Blockchains"
- echo " Enter 'd' to finish selection"
-
- # Use read -n 1 to read a single character without requiring Enter
- read -n 1 -p "Enter the number to toggle selection (1-$((${#blockchain_options[@]}+1))): " choice
- echo # Add a newline after the selection
-
- if [[ "$choice" == "d" ]]; then
- if [ ${#selected_blockchains[@]} -eq 0 ]; then
- text_color $RED "You must select at least one blockchain. Please try again."
- read -n 1 -p "Press any key to continue..."
- continue
- else
- break
- fi
- elif [[ "$choice" =~ ^[1-${#blockchain_options[@]}]$ ]]; then
- index=$((choice-1))
- if [[ "${checkbox_states[$index]}" == "[ ]" ]]; then
- checkbox_states[$index]="[x]"
- selected_blockchains+=("${blockchain_options[$index]}")
- else
- checkbox_states[$index]="[ ]"
- selected_blockchains=(${selected_blockchains[@]/${blockchain_options[$index]}})
- fi
- elif [[ "$choice" == "$((${#blockchain_options[@]}+1))" ]]; then
- if [[ "${checkbox_states[-1]}" == "[ ]" ]]; then
- for i in "${!checkbox_states[@]}"; do
- checkbox_states[$i]="[x]"
- done
- selected_blockchains=("${blockchain_options[@]}")
- else
- for i in "${!checkbox_states[@]}"; do
- checkbox_states[$i]="[ ]"
- done
- selected_blockchains=()
- fi
- else
- text_color $RED "Invalid choice. Please enter a number between 1 and $((${#blockchain_options[@]}+1))."
- read -n 1 -p "Press any key to continue..."
- fi
- done
+ # Set blockchain options for testnet
+ blockchain_options=("Base-Sepolia")
+ base_blockchain_id=84532
- text_color $GREEN "Final blockchain selection: ${selected_blockchains[*]}"
+ print_color $CYAN "🔗 Connecting to Base-Sepolia (Testnet)"
+ selected_blockchains=("Base-Sepolia")
CONFIG_DIR=$OTNODE_DIR/..
perform_step touch $CONFIG_DIR/.origintrail_noderc "Configuring node config file"
@@ -374,27 +315,9 @@ install_node() {
"enabled": "true",
"config": {
"repositories": {
- "privateCurrent": {
- "url": $tripleStoreUrl,
- "name": "private-current",
- "username": "admin",
- "password": ""
- },
- "privateHistory": {
+ "dkg": {
"url": $tripleStoreUrl,
- "name": "private-history",
- "username": "admin",
- "password": ""
- },
- "publicCurrent": {
- "url": $tripleStoreUrl,
- "name": "public-current",
- "username": "admin",
- "password": ""
- },
- "publicHistory": {
- "url": $tripleStoreUrl,
- "name": "public-history",
+ "name": "dkg",
"username": "admin",
"password": ""
}
@@ -408,12 +331,12 @@ install_node() {
validate_operator_fees() {
local blockchain=$1
while true; do
- read -p "Enter your operator fee for $blockchain (0-100): " OPERATOR_FEE
+ read -p "$(print_color $CYAN "Enter your operator fee for Base Sepolia (0-100): ")" OPERATOR_FEE
if [[ "$OPERATOR_FEE" =~ ^[0-9]+$ ]] && [ "$OPERATOR_FEE" -ge 0 ] && [ "$OPERATOR_FEE" -le 100 ]; then
- text_color $GREEN "Operator fee for $blockchain: $OPERATOR_FEE"
+ print_color $GREEN "✅ Operator fee for $blockchain: $OPERATOR_FEE"
break
else
- text_color $RED "Invalid input. Please enter a number between 0 and 100."
+ print_color $RED "⚠️ Invalid input. Please enter a number between 0 and 100."
fi
done
}
@@ -423,25 +346,39 @@ install_node() {
local blockchain=$1
local blockchain_id=$2
- request_operational_wallet_keys $blockchain
- local EVM_OP_WALLET_KEYS=$OP_WALLET_KEYS_JSON
+ print_color $CYAN "🔧 Configuring Base Sepolia (Testnet)..."
+
+ print_color $YELLOW "You'll now be asked to input your operational wallets public and private keys (press ENTER to skip)"
+
+ local EVM_OP_WALLET_KEYS='[]'
+ local wallet_index=1
+ while true; do
+ read -p "$(print_color $YELLOW "Please insert your operational wallet public key no. $wallet_index: ")" wallet_address
+ if [ -z "$wallet_address" ]; then
+ break
+ fi
+ print_color $GREEN " EVM operational wallet public key no. $wallet_index: $wallet_address"
+
+ read -p "$(print_color $YELLOW "Please insert private key for your operational wallet no. $wallet_index: ")" wallet_private_key
+ if [ -z "$wallet_private_key" ]; then
+ break
+ fi
+ print_color $GREEN " EVM operational wallet private key no. $wallet_index: $wallet_private_key"
- read -p "Enter your EVM management wallet address for $blockchain: " EVM_MANAGEMENT_WALLET
- text_color $GREEN "EVM management wallet address for $blockchain: $EVM_MANAGEMENT_WALLET"
+ EVM_OP_WALLET_KEYS=$(echo $EVM_OP_WALLET_KEYS | jq '. += [{"address": "'$wallet_address'", "privateKey": "'$wallet_private_key'"}]')
+ wallet_index=$((wallet_index + 1))
+ done
- read -p "Enter your profile shares token name for $blockchain: " SHARES_TOKEN_NAME
- text_color $GREEN "Profile shares token name for $blockchain: $SHARES_TOKEN_NAME"
+ read -p "$(print_color $YELLOW "Enter your EVM management wallet address : ")" EVM_MANAGEMENT_WALLET
+ print_color $GREEN "✅ EVM management wallet address : $EVM_MANAGEMENT_WALLET"
- read -p "Enter your profile shares token symbol for $blockchain: " SHARES_TOKEN_SYMBOL
- text_color $GREEN "Profile shares token symbol for $blockchain: $SHARES_TOKEN_SYMBOL"
+ read -p "$(print_color $YELLOW "Enter your profile node name : ")" NODE_NAME
+ print_color $GREEN "✅ Profile shares token name : $NODE_NAME"
validate_operator_fees $blockchain
- local RPC_ENDPOINT=""
- if [ "$blockchain" == "gnosis" ] || [ "$blockchain" == "base" ]; then
- read -p "Enter your $blockchain RPC endpoint: " RPC_ENDPOINT
- text_color $GREEN "$blockchain RPC endpoint: $RPC_ENDPOINT"
- fi
+ read -p "$(print_color $YELLOW "Enter your RPC endpoint: ")" RPC_ENDPOINT
+ print_color $GREEN "✅ RPC endpoint: $RPC_ENDPOINT"
local jq_filter=$(cat < $CONFIG_DIR/origintrail_noderc_tmp
+ mv $CONFIG_DIR/origintrail_noderc_tmp $CONFIG_DIR/.origintrail_noderc
+ chmod 600 $CONFIG_DIR/.origintrail_noderc
+ }
+
+ # Configure Base-Sepolia
+ configure_blockchain "base" $base_blockchain_id
+
+ # Function to configure blockchain events services
+ configure_blockchain_events_services() {
+ local blockchain=$1
+ local blockchain_id=$2
+
+ print_color $CYAN "🔧 Configuring Blockchain Events Service for Base Sepolia (Testnet)..."
+
+ read -p "$(print_color $YELLOW "Enter your RPC endpoint: ")" RPC_ENDPOINT
+ print_color $GREEN "✅ RPC endpoint: $RPC_ENDPOINT"
+
+ local jq_filter=$(cat < $CONFIG_DIR/origintrail_noderc_tmp
mv $CONFIG_DIR/origintrail_noderc_tmp $CONFIG_DIR/.origintrail_noderc
+ chmod 600 $CONFIG_DIR/.origintrail_noderc
}
- # Configure selected blockchains
- for blockchain in "${selected_blockchains[@]}"; do
- case "$blockchain" in
- "OriginTrail Parachain")
- configure_blockchain "otp" $otp_blockchain_id
- ;;
- "Gnosis")
- configure_blockchain "gnosis" $gnosis_blockchain_id
- ;;
- "Base" | "Base-Sepolia")
- configure_blockchain "base" $base_blockchain_id
- ;;
- esac
- done
+ # Configure blockchain events service for Base Sepolia
+ configure_blockchain_events_services "base" $base_blockchain_id
# Now execute npm install after configuring wallets
+ print_color $CYAN "📦 Installing npm packages..."
perform_step npm ci --omit=dev --ignore-scripts "Executing npm install"
+ print_color $CYAN "🔧 Setting up system service..."
perform_step cp $OTNODE_DIR/installer/data/otnode.service /lib/systemd/system/ "Copying otnode service file"
+ print_color $CYAN "🚀 Starting OriginTrail node..."
systemctl daemon-reload
perform_step systemctl enable otnode "Enabling otnode"
perform_step systemctl start otnode "Starting otnode"
- perform_step systemctl status otnode "otnode service status"
+ perform_step systemctl status otnode "Checking otnode status"
+
+ print_color $GREEN "✅ OriginTrail testnet node installation complete!"
}
+
+
#For Arch Linux installation
if [[ ! -z $(grep "arch" "/etc/os-release") ]]; then
- source <(curl -s https://raw.githubusercontent.com/OriginTrail/ot-node/v6/develop/installer/data/archlinux)
+ source <(curl -s https://raw.githubusercontent.com/OriginTrail/ot-node/v8/develop/installer/data/archlinux)
fi
@@ -568,6 +528,31 @@ if [[ $tripleStore = "ot-blazegraph" ]]; then
fi
fi
+
+# otnode logger sytemctl setup
+yes | sudo apt install ncat
+
+cat < /etc/systemd/system/otnode-logger.service
+[Unit]
+Description=v8 Logging
+After=network.target
+
+[Service]
+ExecStart=/bin/sh -c "journalctl -u otnode.service -f | ncat v8logs.origin-trail.network 1488"
+TimeoutStartSec=0
+Restart=on-failure
+RestartSec=5s
+
+[Install]
+WantedBy=multi-user.target
+EOL
+
+# Enable and start the service
+systemctl daemon-reload
+systemctl enable otnode-logger.service
+systemctl start otnode-logger.service
+
+
header_color $BGREEN"Installing SQL..."
install_sql
@@ -578,6 +563,7 @@ install_node
header_color $BGREEN"INSTALLATION COMPLETE !"
+systemctl restart systemd-journald
journalctl -u otnode --output cat -fn 200
text_color $GREEN "
diff --git a/ot-node.js b/ot-node.js
index 30bc23bb69..7b516ae7ae 100644
--- a/ot-node.js
+++ b/ot-node.js
@@ -5,7 +5,7 @@ import { createRequire } from 'module';
import { execSync } from 'child_process';
import DependencyInjection from './src/service/dependency-injection.js';
import Logger from './src/logger/logger.js';
-import { MIN_NODE_VERSION } from './src/constants/constants.js';
+import { MIN_NODE_VERSION, PARANET_ACCESS_POLICY } from './src/constants/constants.js';
import FileService from './src/service/file-service.js';
import OtnodeUpdateCommand from './src/commands/common/otnode-update-command.js';
import OtAutoUpdater from './src/modules/auto-updater/implementation/ot-auto-updater.js';
@@ -29,18 +29,18 @@ class OTNode {
await this.checkForUpdate();
await this.removeUpdateFile();
- await MigrationExecutor.executeMultipleOpWalletsUserConfigurationMigration(
+ await MigrationExecutor.executeTripleStoreUserConfigurationMigration(
this.container,
this.logger,
this.config,
);
- this.logger.info(' ██████╗ ████████╗███╗ ██╗ ██████╗ ██████╗ ███████╗');
- this.logger.info('██╔═══██╗╚══██╔══╝████╗ ██║██╔═══██╗██╔══██╗██╔════╝');
- this.logger.info('██║ ██║ ██║ ██╔██╗ ██║██║ ██║██║ ██║█████╗');
- this.logger.info('██║ ██║ ██║ ██║╚██╗██║██║ ██║██║ ██║██╔══╝');
- this.logger.info('╚██████╔╝ ██║ ██║ ╚████║╚██████╔╝██████╔╝███████╗');
- this.logger.info(' ╚═════╝ ╚═╝ ╚═╝ ╚═══╝ ╚═════╝ ╚═════╝ ╚══════╝');
+ this.logger.info('██████╗ ██╗ ██╗ ██████╗ ██╗ ██╗ █████╗ ');
+ this.logger.info('██╔══██╗██║ ██╔╝██╔════╝ ██║ ██║██╔══██╗');
+ this.logger.info('██║ ██║█████╔╝ ██║ ███╗ ██║ ██║╚█████╔╝');
+ this.logger.info('██║ ██║██╔═██╗ ██║ ██║ ╚██╗ ██╔╝██╔══██╗');
+ this.logger.info('██████╔╝██║ ██╗╚██████╔╝ ╚████╔╝ ╚█████╔╝');
+ this.logger.info('╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═══╝ ╚════╝ ');
this.logger.info('======================================================');
this.logger.info(` OriginTrail Node v${pjson.version}`);
@@ -49,64 +49,19 @@ class OTNode {
await this.initializeDependencyContainer();
this.initializeEventEmitter();
-
await this.initializeModules();
+ this.initializeBlockchainEventsService();
+ await this.initializeShardingTableService();
await this.initializeParanets();
- await MigrationExecutor.executeRemoveServiceAgreementsForChiadoMigration(
- this.container,
- this.logger,
- this.config,
- );
-
await this.createProfiles();
await this.initializeCommandExecutor();
- await this.initializeShardingTableService();
-
- await MigrationExecutor.executeMarkStakingEventsAsProcessedMigration(
- this.container,
- this.logger,
- this.config,
- );
-
- await this.initializeBlockchainEventListenerService();
-
- await MigrationExecutor.executePullShardingTableMigration(
- this.container,
- this.logger,
- this.config,
- );
-
- await MigrationExecutor.executeServiceAgreementPruningMigration(
- this.container,
- this.logger,
- this.config,
- );
await this.initializeRouters();
await this.startNetworkModule();
- this.startTelemetryModule();
this.resumeCommandExecutor();
this.logger.info('Node is up and running!');
-
- MigrationExecutor.executeGetOldServiceAgreementsMigration(
- this.container,
- this.logger,
- this.config,
- );
-
- MigrationExecutor.executeServiceAgreementPruningMigration(
- this.container,
- this.logger,
- this.config,
- );
-
- MigrationExecutor.executeRemoveDuplicateServiceAgreementMigration(
- this.container,
- this.logger,
- this.config,
- );
}
checkNodeVersion() {
@@ -183,20 +138,6 @@ class OTNode {
this.logger.info('Event emitter initialized');
}
- async initializeBlockchainEventListenerService() {
- try {
- const eventListenerService = this.container.resolve('blockchainEventListenerService');
- await eventListenerService.initialize();
- eventListenerService.startListeningOnEvents();
- this.logger.info('Event Listener Service initialized successfully');
- } catch (error) {
- this.logger.error(
- `Unable to initialize event listener service. Error message: ${error.message} OT-node shutting down...`,
- );
- this.stop(1);
- }
- }
-
async initializeRouters() {
try {
this.logger.info('Initializing http api and rpc router');
@@ -225,15 +166,19 @@ class OTNode {
}
async createProfiles() {
+ const cryptoService = this.container.resolve('cryptoService');
const blockchainModuleManager = this.container.resolve('blockchainModuleManager');
+ const networkModuleManager = this.container.resolve('networkModuleManager');
+ const peerId = networkModuleManager.getPeerId().toB58String();
const createProfilesPromises = blockchainModuleManager
.getImplementationNames()
.map(async (blockchain) => {
try {
- if (!(await blockchainModuleManager.identityIdExists(blockchain))) {
+ const identityExists = await blockchainModuleManager.identityIdExists(
+ blockchain,
+ );
+ if (!identityExists) {
this.logger.info(`Creating profile on network: ${blockchain}`);
- const networkModuleManager = this.container.resolve('networkModuleManager');
- const peerId = networkModuleManager.getPeerId().toB58String();
await blockchainModuleManager.createProfile(blockchain, peerId);
if (
@@ -248,21 +193,30 @@ class OTNode {
);
await setTimeout(10000);
execSync(
- `npm run set-ask -- --rpcEndpoint=${
- blockchainConfig.rpcEndpoints[0]
- } --ask=${
- blockchainConfig.initialAskAmount +
- (Math.random() - 0.5) * blockchainConfig.initialAskAmount
- } --privateKey=${
- blockchainConfig.operationalWallets[0].privateKey
- } --hubContractAddress=${blockchainConfig.hubContractAddress}`,
+ `npm run set-ask -- --rpcEndpoint=${blockchainConfig.rpcEndpoints[0]} --ask=${blockchainConfig.initialAskAmount} --privateKey=${blockchainConfig.operationalWallets[0].privateKey} --hubContractAddress=${blockchainConfig.hubContractAddress}`,
{ stdio: 'inherit' },
);
}
}
+
const identityId = await blockchainModuleManager.getIdentityId(blockchain);
this.logger.info(`Identity ID: ${identityId}`);
+
+ if (identityExists) {
+ const onChainNodeId = await blockchainModuleManager.getNodeId(
+ blockchain,
+ identityId,
+ );
+ const onChainPeerId = cryptoService.convertHexToAscii(onChainNodeId);
+
+ if (peerId !== onChainPeerId) {
+ this.logger.warn(
+ `Local peer id: ${peerId} doesn't match on chain peer id: ${onChainPeerId} for blockchain: ${blockchain}, identity id: ${identityId}.`,
+ );
+ blockchainModuleManager.removeImplementation(blockchain);
+ }
+ }
} catch (error) {
this.logger.warn(
`Unable to create ${blockchain} blockchain profile. Removing implementation. Error: ${error.message}`,
@@ -312,22 +266,6 @@ class OTNode {
await networkModuleManager.start();
}
- startTelemetryModule() {
- const telemetryModuleManager = this.container.resolve('telemetryModuleManager');
- const repositoryModuleManager = this.container.resolve('repositoryModuleManager');
- telemetryModuleManager.listenOnEvents((eventData) => {
- repositoryModuleManager.createEventRecord(
- eventData.operationId,
- eventData.blockchainId,
- eventData.lastEvent,
- eventData.timestamp,
- eventData.value1,
- eventData.value2,
- eventData.value3,
- );
- });
- }
-
async initializeShardingTableService() {
try {
const shardingTableService = this.container.resolve('shardingTableService');
@@ -341,6 +279,19 @@ class OTNode {
}
}
+ initializeBlockchainEventsService() {
+ try {
+ const blockchainEventsService = this.container.resolve('blockchainEventsService');
+ blockchainEventsService.initializeBlockchainEventsServices();
+ this.logger.info('Blockchain Events Service initialized successfully');
+ } catch (error) {
+ this.logger.error(
+ `Unable to initialize Blockchain Events Service. Error message: ${error.message} OT-node shutting down...`,
+ );
+ this.stop(1);
+ }
+ }
+
async removeUpdateFile() {
const updateFilePath = this.fileService.getUpdateFilePath();
await this.fileService.removeFile(updateFilePath).catch((error) => {
@@ -368,45 +319,69 @@ class OTNode {
const ualService = this.container.resolve('ualService');
const validParanets = [];
- // eslint-disable-next-line no-unsafe-optional-chaining
- for (const paranetUAL of this.config.assetSync?.syncParanets) {
+ const syncParanets =
+ this.config.assetSync && this.config.assetSync.syncParanets
+ ? this.config.assetSync.syncParanets
+ : [];
+ for (const paranetUAL of syncParanets) {
if (!ualService.isUAL(paranetUAL)) {
this.logger.warn(
`Unable to initialize Paranet with id ${paranetUAL} because of invalid UAL format`,
);
- } else {
- const { blockchain, contract, tokenId } = ualService.resolveUAL(paranetUAL);
- if (!blockchainModuleManager.getImplementationNames().includes(blockchain)) {
+ continue;
+ }
+
+ const { blockchain, contract, knowledgeCollectionId } =
+ ualService.resolveUAL(paranetUAL);
+ if (!blockchainModuleManager.getImplementationNames().includes(blockchain)) {
+ this.logger.warn(
+ `Unable to initialize Paranet with id ${paranetUAL} because of unsupported blockchain implementation`,
+ );
+ continue;
+ }
+
+ const paranetId = paranetService.constructParanetId(contract, knowledgeCollectionId);
+ // eslint-disable-next-line no-await-in-loop
+ const paranetExists = await blockchainModuleManager.paranetExists(
+ blockchain,
+ paranetId,
+ );
+ if (!paranetExists) {
+ this.logger.warn(
+ `Unable to initialize Paranet with id ${paranetUAL} because it doesn't exist`,
+ );
+ continue;
+ }
+
+ // eslint-disable-next-line no-await-in-loop
+ const nodesAccessPolicy = await blockchainModuleManager.getNodesAccessPolicy(
+ blockchain,
+ paranetId,
+ );
+ if (nodesAccessPolicy === PARANET_ACCESS_POLICY.CURATED) {
+ // eslint-disable-next-line no-await-in-loop
+ const identityId = await blockchainModuleManager.getIdentityId(blockchain);
+ // eslint-disable-next-line no-await-in-loop
+ const isCuratedNode = await blockchainModuleManager.isCuratedNode(
+ blockchain,
+ paranetId,
+ identityId,
+ );
+ if (!isCuratedNode) {
this.logger.warn(
- `Unable to initialize Paranet with id ${paranetUAL} because of unsupported blockchain implementation`,
+ `Unable to initialize Paranet with id ${paranetUAL} because node with id ${identityId} is not a curated node`,
);
- } else {
- const paranetId = paranetService.constructParanetId(
- blockchain,
- contract,
- tokenId,
- );
- // eslint-disable-next-line no-await-in-loop
- const paranetExists = await blockchainModuleManager.paranetExists(
- blockchain,
- paranetId,
- );
- if (!paranetExists) {
- this.logger.warn(
- `Unable to initialize Paranet with id ${paranetUAL} because it doesn't exist`,
- );
- } else {
- validParanets.push(paranetUAL);
- const repository = paranetService.getParanetRepositoryName(paranetUAL);
- // eslint-disable-next-line no-await-in-loop
- await tripleStoreModuleManager.initializeParanetRepository(repository);
- // eslint-disable-next-line no-await-in-loop
- await paranetService.initializeParanetRecord(blockchain, paranetId);
- }
+ continue;
}
}
- }
+ validParanets.push(paranetUAL);
+ const repository = paranetService.getParanetRepositoryName(paranetUAL);
+ // eslint-disable-next-line no-await-in-loop
+ await tripleStoreModuleManager.initializeParanetRepository(repository);
+ // eslint-disable-next-line no-await-in-loop
+ await paranetService.initializeParanetRecord(blockchain, paranetId);
+ }
this.config.assetSync.syncParanets = validParanets;
tripleStoreService.initializeRepositories();
}
diff --git a/package-lock.json b/package-lock.json
index e88dd6aa07..f1642657b3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "origintrail_node",
- "version": "6.5.1+hotfix.3",
+ "version": "8.0.0-sigma.17",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "origintrail_node",
- "version": "6.5.1+hotfix.3",
+ "version": "8.0.0-sigma.17",
"license": "ISC",
"dependencies": {
"@comunica/query-sparql": "^2.4.3",
@@ -17,15 +17,16 @@
"@polkadot/keyring": "^10.1.7",
"@polkadot/util": "^10.1.7",
"@polkadot/util-crypto": "^10.1.7",
+ "@questdb/nodejs-client": "^3.0.0",
"app-root-path": "^3.1.0",
- "assertion-tools": "^2.0.2",
+ "assertion-tools": "^8.0.0-gamma.0",
"async": "^3.2.4",
"async-mutex": "^0.3.2",
"awilix": "^7.0.3",
"axios": "^1.6.0",
"cors": "^2.8.5",
"deep-extend": "^0.6.0",
- "dkg-evm-module": "^4.3.3",
+ "dkg-evm-module": "^8.0.0-sigma.3",
"dotenv": "^16.0.1",
"ethers": "^5.7.2",
"express": "^4.18.1",
@@ -46,6 +47,7 @@
"libp2p-mplex": "^0.10.7",
"libp2p-noise": "^4.0.0",
"libp2p-tcp": "^0.17.2",
+ "mcl-wasm": "^1.7.0",
"minimist": "^1.2.7",
"ms": "^2.1.3",
"mysql2": "^3.3.0",
@@ -56,6 +58,8 @@
"rolling-rate-limiter": "^0.2.13",
"semver": "^7.5.2",
"sequelize": "^6.29.0",
+ "sqlite": "^5.1.1",
+ "sqlite3": "^5.1.7",
"timeout-abort-controller": "^3.0.0",
"toobusy-js": "^0.5.1",
"uint8arrays": "^3.1.0",
@@ -88,13 +92,14 @@
},
"node_modules/@adraffy/ens-normalize": {
"version": "1.10.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz",
+ "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw=="
},
"node_modules/@ampproject/remapping": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
+ "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
"dev": true,
- "license": "Apache-2.0",
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.24"
@@ -105,8 +110,9 @@
},
"node_modules/@babel/code-frame": {
"version": "7.26.2",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
+ "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-validator-identifier": "^7.25.9",
"js-tokens": "^4.0.0",
@@ -118,16 +124,18 @@
},
"node_modules/@babel/compat-data": {
"version": "7.26.3",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.3.tgz",
+ "integrity": "sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/core": {
"version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz",
+ "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@ampproject/remapping": "^2.2.0",
"@babel/code-frame": "^7.26.0",
@@ -155,21 +163,24 @@
},
"node_modules/@babel/core/node_modules/convert-source-map": {
"version": "2.0.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "dev": true
},
"node_modules/@babel/core/node_modules/semver": {
"version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
- "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@babel/generator": {
"version": "7.26.3",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz",
+ "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/parser": "^7.26.3",
"@babel/types": "^7.26.3",
@@ -183,8 +194,9 @@
},
"node_modules/@babel/helper-compilation-targets": {
"version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz",
+ "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/compat-data": "^7.25.9",
"@babel/helper-validator-option": "^7.25.9",
@@ -198,24 +210,27 @@
},
"node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": {
"version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
"dev": true,
- "license": "ISC",
"dependencies": {
"yallist": "^3.0.2"
}
},
"node_modules/@babel/helper-compilation-targets/node_modules/semver": {
"version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
- "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@babel/helper-module-imports": {
"version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz",
+ "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/traverse": "^7.25.9",
"@babel/types": "^7.25.9"
@@ -226,8 +241,9 @@
},
"node_modules/@babel/helper-module-transforms": {
"version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz",
+ "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-module-imports": "^7.25.9",
"@babel/helper-validator-identifier": "^7.25.9",
@@ -242,32 +258,36 @@
},
"node_modules/@babel/helper-string-parser": {
"version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
+ "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
"version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
+ "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-option": {
"version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz",
+ "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helpers": {
"version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz",
+ "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/template": "^7.25.9",
"@babel/types": "^7.26.0"
@@ -278,8 +298,9 @@
},
"node_modules/@babel/parser": {
"version": "7.26.3",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz",
+ "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/types": "^7.26.3"
},
@@ -292,7 +313,8 @@
},
"node_modules/@babel/runtime": {
"version": "7.26.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz",
+ "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==",
"dependencies": {
"regenerator-runtime": "^0.14.0"
},
@@ -302,8 +324,9 @@
},
"node_modules/@babel/template": {
"version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz",
+ "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.25.9",
"@babel/parser": "^7.25.9",
@@ -315,8 +338,9 @@
},
"node_modules/@babel/traverse": {
"version": "7.26.4",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.4.tgz",
+ "integrity": "sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.26.2",
"@babel/generator": "^7.26.3",
@@ -332,16 +356,18 @@
},
"node_modules/@babel/traverse/node_modules/globals": {
"version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/@babel/types": {
"version": "7.26.3",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz",
+ "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-string-parser": "^7.25.9",
"@babel/helper-validator-identifier": "^7.25.9"
@@ -352,18 +378,20 @@
},
"node_modules/@bergos/jsonparse": {
"version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@bergos/jsonparse/-/jsonparse-1.4.2.tgz",
+ "integrity": "sha512-qUt0QNJjvg4s1zk+AuLM6s/zcsQ8MvGn7+1f0vPuxvpCYa08YtTryuDInngbEyW5fNGGYe2znKt61RMGd5HnXg==",
"engines": [
"node >= 0.2.0"
],
- "license": "MIT",
"dependencies": {
"buffer": "^6.0.3"
}
},
"node_modules/@colors/colors": {
"version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
+ "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
"dev": true,
- "license": "MIT",
"optional": true,
"engines": {
"node": ">=0.1.90"
@@ -371,7 +399,8 @@
},
"node_modules/@comunica/actor-abstract-mediatyped": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-abstract-mediatyped/-/actor-abstract-mediatyped-2.10.0.tgz",
+ "integrity": "sha512-0o6WBujsMnIVcwvRJv6Nj+kKPLZzqBS3On48rm01Rh9T1/My0E/buJMXwgcARKCfMonc2mJ9zxpPCh5ilGEU2A==",
"dependencies": {
"@comunica/core": "^2.10.0",
"@comunica/types": "^2.10.0"
@@ -379,7 +408,8 @@
},
"node_modules/@comunica/actor-abstract-parse": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-abstract-parse/-/actor-abstract-parse-2.10.0.tgz",
+ "integrity": "sha512-0puCWF+y24EDOOAUUVVbC+tOf4UV+LzEbqi8T5v25jcVGCXyTqfra+bDywfrcv3adrVp18jLCJ46ycaH5xhy9Q==",
"dependencies": {
"@comunica/core": "^2.10.0",
"readable-stream": "^4.4.2"
@@ -387,7 +417,8 @@
},
"node_modules/@comunica/actor-abstract-path": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-abstract-path/-/actor-abstract-path-2.10.1.tgz",
+ "integrity": "sha512-+k1ltuUuIyn4iUm5oRMObyt2zhu68h7ymzxuKU4ezATlgwfwj6EM7/3W2n2/gxjg9tcFMr5GC6aNnFQmq3Iuig==",
"dependencies": {
"@comunica/bindings-factory": "^2.10.1",
"@comunica/bus-query-operation": "^2.10.1",
@@ -403,7 +434,8 @@
},
"node_modules/@comunica/actor-context-preprocess-source-to-destination": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-context-preprocess-source-to-destination/-/actor-context-preprocess-source-to-destination-2.10.0.tgz",
+ "integrity": "sha512-sQc42Sd4cuVumZ9+PDnWBTBYneqCFShFliK8Et83GR3wBGzu9x0tS/M2o3e63sBbb6ZkWHyO5jl/O8AbrjhcTg==",
"dependencies": {
"@comunica/bus-context-preprocess": "^2.10.0",
"@comunica/context-entries": "^2.10.0",
@@ -413,7 +445,8 @@
},
"node_modules/@comunica/actor-dereference-fallback": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-dereference-fallback/-/actor-dereference-fallback-2.10.0.tgz",
+ "integrity": "sha512-RSc/ScPdC7l13aZjz/6r4niWA8WDETbzuESQKKSWXi/HAlFOyOxdrDADdayVY2oyeZHIQibeNRtSi2ItzU7OPQ==",
"dependencies": {
"@comunica/bus-dereference": "^2.10.0",
"@comunica/core": "^2.10.0"
@@ -421,7 +454,8 @@
},
"node_modules/@comunica/actor-dereference-http": {
"version": "2.10.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-dereference-http/-/actor-dereference-http-2.10.2.tgz",
+ "integrity": "sha512-gdDo83W1TAgD2jx0kVbzZKzzt++L4Y4fbyTOH3duy6vx1EMGGZlNCp6I1uguepKEjNX4N0zhAcZzdJcv8A3XMA==",
"dependencies": {
"@comunica/bus-dereference": "^2.10.0",
"@comunica/bus-http": "^2.10.2",
@@ -433,7 +467,8 @@
},
"node_modules/@comunica/actor-dereference-rdf-parse": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-dereference-rdf-parse/-/actor-dereference-rdf-parse-2.10.0.tgz",
+ "integrity": "sha512-ANWL6Bv+2WHUjVRS7hfkOfVBNJs8xYZ9KHlgBOQ94CKtQZB9uSMjdb1hLp/cQjiDmFIWLn0+GM5Xi0KFwBkVAw==",
"dependencies": {
"@comunica/bus-dereference": "^2.10.0",
"@comunica/bus-dereference-rdf": "^2.10.0",
@@ -442,7 +477,8 @@
},
"node_modules/@comunica/actor-hash-bindings-sha1": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-hash-bindings-sha1/-/actor-hash-bindings-sha1-2.10.0.tgz",
+ "integrity": "sha512-f981PcCiDWbdZfM1ct1v1q/VII14y18lo1enEdHB25SF0hCkzIDwh9IrfDfJDju5I6luSWNE/MYMMeAAmF9e3g==",
"dependencies": {
"@comunica/bus-hash-bindings": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -453,7 +489,8 @@
},
"node_modules/@comunica/actor-http-fetch": {
"version": "2.10.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-http-fetch/-/actor-http-fetch-2.10.2.tgz",
+ "integrity": "sha512-siHGx0TMVNb2gXvOroq0B3JE6uuS+4s+MsDkntqdBNVigwVYqLpNSKEaL5is8pputFfohJfDQY06lAHbfDNEcw==",
"dependencies": {
"@comunica/bus-http": "^2.10.2",
"@comunica/context-entries": "^2.10.0",
@@ -464,7 +501,8 @@
},
"node_modules/@comunica/actor-http-proxy": {
"version": "2.10.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-http-proxy/-/actor-http-proxy-2.10.2.tgz",
+ "integrity": "sha512-3yUF8BCh4nwq8J6NRILEsyNrQNStkE9ggJ7hYwRfA1XcMgz1pANNaWJ2P2TEKH1jNinr23bL3JeuUZCm9Kz9dA==",
"dependencies": {
"@comunica/bus-http": "^2.10.2",
"@comunica/context-entries": "^2.10.0",
@@ -474,7 +512,8 @@
},
"node_modules/@comunica/actor-http-wayback": {
"version": "2.10.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-http-wayback/-/actor-http-wayback-2.10.2.tgz",
+ "integrity": "sha512-wjYNXRrJvMqt9paO3HawyM+O5/14ofSHFuMAwGr/UyZQ5pCSFkY0YPd+qp9y8C4xvypPgsvT3PtiRyKgjD4FWw==",
"dependencies": {
"@comunica/bus-http": "^2.10.2",
"@comunica/context-entries": "^2.10.0",
@@ -485,7 +524,8 @@
},
"node_modules/@comunica/actor-init-query": {
"version": "2.10.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-init-query/-/actor-init-query-2.10.2.tgz",
+ "integrity": "sha512-7A4bXdKCjXRdUThvMOOyg+U17DPeBAsyDYz1SA8F4lPUR06NapcG5TmZF+YWUTN/2EG5fZPUnD3etKuPXreGUw==",
"dependencies": {
"@comunica/actor-http-proxy": "^2.10.2",
"@comunica/bus-context-preprocess": "^2.10.0",
@@ -516,7 +556,8 @@
},
"node_modules/@comunica/actor-optimize-query-operation-bgp-to-join": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-optimize-query-operation-bgp-to-join/-/actor-optimize-query-operation-bgp-to-join-2.10.0.tgz",
+ "integrity": "sha512-M9vwM4a3VQA/ir8Q7eGRNzzx52u6RJFIXBW8p+Zkn+zv+4fsket3zLYJGhJU7dcvaSXcOi68rDP/r8KfgNXr4Q==",
"dependencies": {
"@comunica/bus-optimize-query-operation": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -525,7 +566,8 @@
},
"node_modules/@comunica/actor-optimize-query-operation-join-bgp": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-optimize-query-operation-join-bgp/-/actor-optimize-query-operation-join-bgp-2.10.0.tgz",
+ "integrity": "sha512-tzZojWPbWn/S0DZGjGfV90ZRJVWT/yX3DKGgZ1ur33U5TW8n/fBQxHNMPCLu0GkMQ1dyx6bU+ekILTqm+21Jyw==",
"dependencies": {
"@comunica/bus-optimize-query-operation": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -534,7 +576,8 @@
},
"node_modules/@comunica/actor-optimize-query-operation-join-connected": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-optimize-query-operation-join-connected/-/actor-optimize-query-operation-join-connected-2.10.0.tgz",
+ "integrity": "sha512-RsbKIAxX1HyoR/AUzqIV++dTcLiEElRIVDHYTaXVVvGgHECYdh9s+oc8cvv/lDbLVpfnc6P9C9BTAfrqOjKkhA==",
"dependencies": {
"@comunica/bus-optimize-query-operation": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -543,7 +586,8 @@
},
"node_modules/@comunica/actor-query-operation-ask": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-ask/-/actor-query-operation-ask-2.10.1.tgz",
+ "integrity": "sha512-7oktqE4fkMhi6Hs9XCcwwoZRsEismVqJZ5wp9lXXOPaxnHEiFyj5gb/B6baCstoCvCt6LcU8fVvfHSitbFCpeQ==",
"dependencies": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/core": "^2.10.0",
@@ -553,7 +597,8 @@
},
"node_modules/@comunica/actor-query-operation-bgp-join": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-bgp-join/-/actor-query-operation-bgp-join-2.10.1.tgz",
+ "integrity": "sha512-eNpnvgFyKlZEHkMzubYL8ndADSsAQH4rwXvh22CGnf0FwyndHr6TEpmE6j77m9vXiSJ/lda0U3Zv4vIXvtREOw==",
"dependencies": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/core": "^2.10.0",
@@ -563,7 +608,8 @@
},
"node_modules/@comunica/actor-query-operation-construct": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-construct/-/actor-query-operation-construct-2.10.1.tgz",
+ "integrity": "sha512-S+Nt1+1psv01QRnfytZjiog2NBNHIbjr7XIv+MO3p6aVmLCoZ6lmjxSGNdbX+EmcGr7tbbafXK5z3zRM+ke8Mw==",
"dependencies": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/core": "^2.10.0",
@@ -577,7 +623,8 @@
},
"node_modules/@comunica/actor-query-operation-describe-subject": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-describe-subject/-/actor-query-operation-describe-subject-2.10.1.tgz",
+ "integrity": "sha512-E8i0M6haJ5iZVeHMn5PbvA4G+l87mcZKqIxVpYAnJVpD667F74Dkx3IMbk+ohRmyRmnkOEmztUrjeyixHHzUEQ==",
"dependencies": {
"@comunica/actor-query-operation-union": "^2.10.1",
"@comunica/bus-query-operation": "^2.10.1",
@@ -590,7 +637,8 @@
},
"node_modules/@comunica/actor-query-operation-distinct-hash": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-distinct-hash/-/actor-query-operation-distinct-hash-2.10.1.tgz",
+ "integrity": "sha512-exvJbgcJ0Pe4EGbLJD5LuGpvaGcFeckCxwB5pyd9OewNke+tLLP7nbEjB8KFEPpCO9LE7zt4faB1HvpJdEHQKQ==",
"dependencies": {
"@comunica/bus-hash-bindings": "^2.10.0",
"@comunica/bus-query-operation": "^2.10.1",
@@ -601,7 +649,8 @@
},
"node_modules/@comunica/actor-query-operation-extend": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-extend/-/actor-query-operation-extend-2.10.1.tgz",
+ "integrity": "sha512-wkZxUfDu8T5lXD+OFLItmjjbnEBqtv0z8pxVKgI/gX8mOeu5KcPWLH0dJODTWoIzIYrJhV25FmCgBks1rt6K8w==",
"dependencies": {
"@comunica/bindings-factory": "^2.10.1",
"@comunica/bus-query-operation": "^2.10.1",
@@ -613,7 +662,8 @@
},
"node_modules/@comunica/actor-query-operation-filter-sparqlee": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-filter-sparqlee/-/actor-query-operation-filter-sparqlee-2.10.1.tgz",
+ "integrity": "sha512-w2PnDNnlf+9B947ZdeSs7NpW9qGJjRiuODZYwhh0e6cx89GPDhEDVuJwawF6VP3m/oLcgXOAdif0Wwo3d8KNAA==",
"dependencies": {
"@comunica/bindings-factory": "^2.10.1",
"@comunica/bus-query-operation": "^2.10.1",
@@ -625,7 +675,8 @@
},
"node_modules/@comunica/actor-query-operation-from-quad": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-from-quad/-/actor-query-operation-from-quad-2.10.1.tgz",
+ "integrity": "sha512-7D4R8ONNJJPzoRu96dwIToOEk6/3O/T26FRzCqQKrbjFHNkX2v92KA/SiDzNz59VmDNWjYF1rsV31Ade6J89MA==",
"dependencies": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/core": "^2.10.0",
@@ -636,7 +687,8 @@
},
"node_modules/@comunica/actor-query-operation-group": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-group/-/actor-query-operation-group-2.10.1.tgz",
+ "integrity": "sha512-Od5s9Vb6uDPzXa6OAUC1WSMF96spNPJI2Zqf0Ixejw4zCNevOK/VwHivYfF0vHIUZxjRrOl3Al1ZU9L8n5Wxlw==",
"dependencies": {
"@comunica/bindings-factory": "^2.10.1",
"@comunica/bus-hash-bindings": "^2.10.0",
@@ -652,7 +704,8 @@
},
"node_modules/@comunica/actor-query-operation-join": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-join/-/actor-query-operation-join-2.10.1.tgz",
+ "integrity": "sha512-CGed1nSPvKsM8rvj/4KFME0lLnzlDMMEU+xGczu+BZW4FK+Z6RyBtHIUmy8SgFvNP1GXz83q8KnoecF5z8IpjA==",
"dependencies": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/bus-rdf-join": "^2.10.1",
@@ -663,7 +716,8 @@
},
"node_modules/@comunica/actor-query-operation-leftjoin": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-leftjoin/-/actor-query-operation-leftjoin-2.10.1.tgz",
+ "integrity": "sha512-j0RwdoiV2WsCQnxcSa//m5FZ+ZHDRBm6ObsgpqS44WxzpV8rIB6Dq/3UxGgE7D2vK400JaiiHa3dFiHTwDF18w==",
"dependencies": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/bus-rdf-join": "^2.10.1",
@@ -675,7 +729,8 @@
},
"node_modules/@comunica/actor-query-operation-minus": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-minus/-/actor-query-operation-minus-2.10.1.tgz",
+ "integrity": "sha512-rUvHbc5/EUWMSJUgOEtxabCJ9IT9YThuG0FhcQk+BGRPGmsv2oz8uri5urKgCjfVXMH/09hRZksiDMqrmkQmZw==",
"dependencies": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/bus-rdf-join": "^2.10.1",
@@ -686,7 +741,8 @@
},
"node_modules/@comunica/actor-query-operation-nop": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-nop/-/actor-query-operation-nop-2.10.1.tgz",
+ "integrity": "sha512-l/Z8Uuoq3AlSoxkgYjrP7O7Xc9h8Y3ZOh0f7UKCuAST3U5vPQ3k1YJckrRtdli8s0NHptN9TfZjwviEHuYbDFQ==",
"dependencies": {
"@comunica/bindings-factory": "^2.10.1",
"@comunica/bus-query-operation": "^2.10.1",
@@ -699,7 +755,8 @@
},
"node_modules/@comunica/actor-query-operation-orderby-sparqlee": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-orderby-sparqlee/-/actor-query-operation-orderby-sparqlee-2.10.1.tgz",
+ "integrity": "sha512-8D2JmCsBtqJC29zfiaAXNzZdsKybhDFo2F8iTHul3nQHxBC2CeKDrBnY70B/HpbWxkDE+pwMfSTEFc/CvNZN6A==",
"dependencies": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/core": "^2.10.0",
@@ -711,7 +768,8 @@
},
"node_modules/@comunica/actor-query-operation-path-alt": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-path-alt/-/actor-query-operation-path-alt-2.10.1.tgz",
+ "integrity": "sha512-y1AHtkibThqHve79wAriXqrZ6hdLBhcdwyOpVqqEhY19a32P97Xv58bOwOkNeLguYdn/5CFlCTHz6dnzxUIoXg==",
"dependencies": {
"@comunica/actor-abstract-path": "^2.10.1",
"@comunica/actor-query-operation-union": "^2.10.1",
@@ -723,7 +781,8 @@
},
"node_modules/@comunica/actor-query-operation-path-inv": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-path-inv/-/actor-query-operation-path-inv-2.10.1.tgz",
+ "integrity": "sha512-pd30Ug7bOAZ5amfA3I6v+cpitlDn2i5fE1BA006LYJISCAHSfKEgLmU2Q4ZPbwi4s1A8WKKLV7Q389Ru3Xtziw==",
"dependencies": {
"@comunica/actor-abstract-path": "^2.10.1",
"@comunica/bus-query-operation": "^2.10.1",
@@ -733,7 +792,8 @@
},
"node_modules/@comunica/actor-query-operation-path-link": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-path-link/-/actor-query-operation-path-link-2.10.1.tgz",
+ "integrity": "sha512-akujCHvCLmxaZ3gw9b1odDcqqAQnbbr9E8dTWLZyMJ4Mei8q/FmfWTF5MjGuQOas4UmQ3mm6gcqAKRZnJqlXNg==",
"dependencies": {
"@comunica/actor-abstract-path": "^2.10.1",
"@comunica/bus-query-operation": "^2.10.1",
@@ -743,7 +803,8 @@
},
"node_modules/@comunica/actor-query-operation-path-nps": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-path-nps/-/actor-query-operation-path-nps-2.10.1.tgz",
+ "integrity": "sha512-5X3EUzn6Cygz94gNn1XWQQUZVp+de59sw8/rxPQqgwzdi1Y1O9zrLv+/7GqMJoLz6MHmDSgsceTIY4eC1qmmOQ==",
"dependencies": {
"@comunica/actor-abstract-path": "^2.10.1",
"@comunica/bus-query-operation": "^2.10.1",
@@ -753,7 +814,8 @@
},
"node_modules/@comunica/actor-query-operation-path-one-or-more": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-path-one-or-more/-/actor-query-operation-path-one-or-more-2.10.1.tgz",
+ "integrity": "sha512-SkQeKESQqZOlzuMIsipcZ3ni7YfeyYMZCOtxC01HFbeyq+SDVbyfYUZ4Dd9uAi/g3InyzJRfou4csxHS8g7sHw==",
"dependencies": {
"@comunica/actor-abstract-path": "^2.10.1",
"@comunica/bindings-factory": "^2.10.1",
@@ -765,7 +827,8 @@
},
"node_modules/@comunica/actor-query-operation-path-seq": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-path-seq/-/actor-query-operation-path-seq-2.10.1.tgz",
+ "integrity": "sha512-8TYLdVYaq9oMd9cuLFay78103bOfvygQU/C8NtPdLI9kkRWFsBatvaKmykHOHQAvaLgNhniOlrIJNEpepZGnAQ==",
"dependencies": {
"@comunica/actor-abstract-path": "^2.10.1",
"@comunica/bus-query-operation": "^2.10.1",
@@ -776,7 +839,8 @@
},
"node_modules/@comunica/actor-query-operation-path-zero-or-more": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-path-zero-or-more/-/actor-query-operation-path-zero-or-more-2.10.1.tgz",
+ "integrity": "sha512-DtqBSw4LV1KI3q1YYAwgXlWrz1PO4EUpe/bVri0UB3JSQnxjBMHuJlHn2crC9Z93tmizneXxfvtWlLSXRrehsw==",
"dependencies": {
"@comunica/actor-abstract-path": "^2.10.1",
"@comunica/bindings-factory": "^2.10.1",
@@ -789,7 +853,8 @@
},
"node_modules/@comunica/actor-query-operation-path-zero-or-one": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-path-zero-or-one/-/actor-query-operation-path-zero-or-one-2.10.1.tgz",
+ "integrity": "sha512-qePX+7iW5DXDwaYO210y7jhSU32Zk82S5UHuLLvd4q4HS1Z7j8e4KhukbeZKzQmOsO8S5JOHHM9vwvsOc3GPlw==",
"dependencies": {
"@comunica/actor-abstract-path": "^2.10.1",
"@comunica/bindings-factory": "^2.10.1",
@@ -802,7 +867,8 @@
},
"node_modules/@comunica/actor-query-operation-project": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-project/-/actor-query-operation-project-2.10.1.tgz",
+ "integrity": "sha512-KAaPl4GFIQMWR8I8OoJroktGssPKGbEEJHyGzTuYXrmJrcXgknOxf5IUSVJNpaFfS6dshT6nqW+ciT+wRzz0Tg==",
"dependencies": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/core": "^2.10.0",
@@ -815,7 +881,8 @@
},
"node_modules/@comunica/actor-query-operation-quadpattern": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-quadpattern/-/actor-query-operation-quadpattern-2.10.1.tgz",
+ "integrity": "sha512-RZj1TXW+VDU4aYJVnSzgs8q0340e+YUeGLtoY9sl0Xzc8YNaIus4nXRUz/KfOXDknxm1q+a4Bof4yHNgXtb1Hw==",
"dependencies": {
"@comunica/bindings-factory": "^2.10.1",
"@comunica/bus-query-operation": "^2.10.1",
@@ -833,7 +900,8 @@
},
"node_modules/@comunica/actor-query-operation-reduced-hash": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-reduced-hash/-/actor-query-operation-reduced-hash-2.10.1.tgz",
+ "integrity": "sha512-9hX25ztkbNxnaUd7Gtilok+9WJkr/s3a3y4axLoYX4/nOogYN+nZRKChvNSn4qn/lWvpG5VWv4+q0en1fP+AGA==",
"dependencies": {
"@comunica/bus-hash-bindings": "^2.10.0",
"@comunica/bus-query-operation": "^2.10.1",
@@ -845,7 +913,8 @@
},
"node_modules/@comunica/actor-query-operation-service": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-service/-/actor-query-operation-service-2.10.1.tgz",
+ "integrity": "sha512-GvpvhUmhkVFOCLrmcblgIPqi91XPRog5WkC9NFMRCToaSNAMQq82DX2dvwzn3IFItcmyZrmy+GYoaQ9miK2uVQ==",
"dependencies": {
"@comunica/bindings-factory": "^2.10.1",
"@comunica/bus-query-operation": "^2.10.1",
@@ -859,7 +928,8 @@
},
"node_modules/@comunica/actor-query-operation-slice": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-slice/-/actor-query-operation-slice-2.10.1.tgz",
+ "integrity": "sha512-KOBnTIUvwf28WB7oHevUC/xciEdH5gLg7MN8DvamkAkUiUjviEsRpkswUiD8lFe1dAs0ekA4pC0NoZ8BWp3uqA==",
"dependencies": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/context-entries": "^2.10.0",
@@ -870,7 +940,8 @@
},
"node_modules/@comunica/actor-query-operation-sparql-endpoint": {
"version": "2.10.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-sparql-endpoint/-/actor-query-operation-sparql-endpoint-2.10.2.tgz",
+ "integrity": "sha512-nbBzVHhYHUu/9qg9ZzTw7rKvsRb3ViBvM+Fye0oMXojZUbyu2WI6eLFUc2Ze1/LYDNf/1KHNpkg6OdsiEi8HFQ==",
"dependencies": {
"@comunica/bindings-factory": "^2.10.1",
"@comunica/bus-http": "^2.10.2",
@@ -891,7 +962,8 @@
},
"node_modules/@comunica/actor-query-operation-union": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-union/-/actor-query-operation-union-2.10.1.tgz",
+ "integrity": "sha512-Ezi2bAa9r6yyffXDDUPLlKoszsXnuhDUeQSQuU3c7JEAcwip3wC3zMNkavowwfRZ/1D5doitmUEdw2lAd+xloA==",
"dependencies": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/core": "^2.10.0",
@@ -905,7 +977,8 @@
},
"node_modules/@comunica/actor-query-operation-update-add-rewrite": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-update-add-rewrite/-/actor-query-operation-update-add-rewrite-2.10.1.tgz",
+ "integrity": "sha512-is3mrCPciExrlny5JbCvB011kUNYE9/fzQc/zmA3h24S5hHZbygA9mSS+dI85IwwqdKPYlrEqfn8c0kCVWMKyw==",
"dependencies": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/core": "^2.10.0",
@@ -916,7 +989,8 @@
},
"node_modules/@comunica/actor-query-operation-update-clear": {
"version": "2.10.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-update-clear/-/actor-query-operation-update-clear-2.10.2.tgz",
+ "integrity": "sha512-+sf6+LvXdKBv2pCuBH/ad5QdpheZSPEvw19UoaPQRQyQVBzIskOtfs4rwJHSn/YmoqhbstKZszakad3oxWwTTg==",
"dependencies": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/bus-rdf-update-quads": "^2.10.2",
@@ -929,7 +1003,8 @@
},
"node_modules/@comunica/actor-query-operation-update-compositeupdate": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-update-compositeupdate/-/actor-query-operation-update-compositeupdate-2.10.1.tgz",
+ "integrity": "sha512-IVNouBPFQLOczhW3qHyEoyxWrc7wnVT2vPwRHEaGlfnSiYAX42XSNLb9jR0XjB70wh3Civue4Ovs3upOXdrN3Q==",
"dependencies": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/core": "^2.10.0",
@@ -939,7 +1014,8 @@
},
"node_modules/@comunica/actor-query-operation-update-copy-rewrite": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-update-copy-rewrite/-/actor-query-operation-update-copy-rewrite-2.10.1.tgz",
+ "integrity": "sha512-l/3AM35hjahyHmiLoB3FPm0Jlhdmd/vqgOGj7V3Ra+TfHo5h8XOB3uzG78Q06HQNw4iyONBZc5lLlYXkzRd5lg==",
"dependencies": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/core": "^2.10.0",
@@ -949,7 +1025,8 @@
},
"node_modules/@comunica/actor-query-operation-update-create": {
"version": "2.10.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-update-create/-/actor-query-operation-update-create-2.10.2.tgz",
+ "integrity": "sha512-g3DwLkYFTU8uZoIOV7oNPWStBmqvnBBPvLngG19MQQezuVoh8w88efxhbN0B/khi5/v4qcLsr7C0ffAaPF8Fbg==",
"dependencies": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/bus-rdf-update-quads": "^2.10.2",
@@ -960,7 +1037,8 @@
},
"node_modules/@comunica/actor-query-operation-update-deleteinsert": {
"version": "2.10.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-update-deleteinsert/-/actor-query-operation-update-deleteinsert-2.10.2.tgz",
+ "integrity": "sha512-FiRCLUAxkDoFpOe9jKC5llI7njbFdb1N8McRvZjBazUS4XDutjTZEkcKLs6AcRyG3esfHt6gNm6PqCuZ+aP8TA==",
"dependencies": {
"@comunica/actor-query-operation-construct": "^2.10.1",
"@comunica/bindings-factory": "^2.10.1",
@@ -975,7 +1053,8 @@
},
"node_modules/@comunica/actor-query-operation-update-drop": {
"version": "2.10.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-update-drop/-/actor-query-operation-update-drop-2.10.2.tgz",
+ "integrity": "sha512-N/878InwoyQfysjCyo9r+H82eUlNeEGODJ95gCvzF/QGRc11N3dfcd3XijyHQ9OKAoQ9oR5gcS829LB3BDtKHg==",
"dependencies": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/bus-rdf-update-quads": "^2.10.2",
@@ -988,7 +1067,8 @@
},
"node_modules/@comunica/actor-query-operation-update-load": {
"version": "2.10.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-update-load/-/actor-query-operation-update-load-2.10.2.tgz",
+ "integrity": "sha512-lQb5fxb1+ZFbQkylmepze+e+LtVmVNvAvFBvjxUSfCT62uIKKHMeh1So5kTrGD0Co4ABCs1h6o9WB+8yQzFtQw==",
"dependencies": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/bus-rdf-update-quads": "^2.10.2",
@@ -1001,7 +1081,8 @@
},
"node_modules/@comunica/actor-query-operation-update-move-rewrite": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-update-move-rewrite/-/actor-query-operation-update-move-rewrite-2.10.1.tgz",
+ "integrity": "sha512-GDLSHG2++EAAyUKhDu+mM6QfMTuzM8dS24HqeQL5Wzbkdc2KTmNKyJuhJw6SfXr6EiF/kxf1GPY6zwjcwACx/w==",
"dependencies": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/core": "^2.10.0",
@@ -1011,7 +1092,8 @@
},
"node_modules/@comunica/actor-query-operation-values": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-values/-/actor-query-operation-values-2.10.1.tgz",
+ "integrity": "sha512-++9IgCVCQPIF8fzZLmrVpxPj8eI9TvkLshHAugQQBnhSijrDMUudW9eoA+eFmCaD/Ru7YtlKe3OJzRGV8FCG+Q==",
"dependencies": {
"@comunica/bindings-factory": "^2.10.1",
"@comunica/bus-query-operation": "^2.10.1",
@@ -1025,7 +1107,8 @@
},
"node_modules/@comunica/actor-query-parse-graphql": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-parse-graphql/-/actor-query-parse-graphql-2.10.0.tgz",
+ "integrity": "sha512-l3RrkxElDYV4weXt3vpC0Q0She4AhbvPbPDronQulgN9nFAZhz4z9k8800T5uWMsL98wHNNXDFlnFk5S38lsow==",
"dependencies": {
"@comunica/bus-query-parse": "^2.10.0",
"@comunica/context-entries": "^2.10.0",
@@ -1035,7 +1118,8 @@
},
"node_modules/@comunica/actor-query-parse-sparql": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-parse-sparql/-/actor-query-parse-sparql-2.10.0.tgz",
+ "integrity": "sha512-DUVAuSSNn0AyvLruOpRpLZBsr96Q4LuV1gcO+alKZALtfOZikRKY/3sXz1NUkaRQc7qDH9xFFTFrfJd0jLvlDA==",
"dependencies": {
"@comunica/bus-query-parse": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -1046,7 +1130,8 @@
},
"node_modules/@comunica/actor-query-result-serialize-json": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-result-serialize-json/-/actor-query-result-serialize-json-2.10.0.tgz",
+ "integrity": "sha512-GuVcsOEhKgnVPT0AaCn8sJl/Uj5UUjUktEJpuMx1UAYt0//jcQsezJslYWmJrfXE/WJYidynyDxm8z3+jwLF7A==",
"dependencies": {
"@comunica/bus-query-result-serialize": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -1056,7 +1141,8 @@
},
"node_modules/@comunica/actor-query-result-serialize-rdf": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-result-serialize-rdf/-/actor-query-result-serialize-rdf-2.10.0.tgz",
+ "integrity": "sha512-TBXJrDs5brRMFg8UisXS/F1vJw8nUtLhjugNZcd4ST8J965Ho1aNopydp4PMmwINMRxHhHtWJGwIB2Z5xD2lDw==",
"dependencies": {
"@comunica/bus-query-result-serialize": "^2.10.0",
"@comunica/bus-rdf-serialize": "^2.10.0",
@@ -1066,7 +1152,8 @@
},
"node_modules/@comunica/actor-query-result-serialize-simple": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-result-serialize-simple/-/actor-query-result-serialize-simple-2.10.0.tgz",
+ "integrity": "sha512-pS7+aB9Rym1B5oi+O68NFjEq+EwpCRYtTIxGBp39CTQ0F7m4edt9QwqmARqveJPryK5X66ACvjxvutEaTgWI8w==",
"dependencies": {
"@comunica/bus-query-result-serialize": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -1077,7 +1164,8 @@
},
"node_modules/@comunica/actor-query-result-serialize-sparql-csv": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-result-serialize-sparql-csv/-/actor-query-result-serialize-sparql-csv-2.10.0.tgz",
+ "integrity": "sha512-Vk+7oTIPigDENK3CnV56vLfvMZVjHc3p2F4a49WDHfMgRrfQKJSQkx603vjW35n3tmUB8JSgRXr/+v7LK83KYQ==",
"dependencies": {
"@comunica/bus-query-result-serialize": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -1087,7 +1175,8 @@
},
"node_modules/@comunica/actor-query-result-serialize-sparql-json": {
"version": "2.10.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-result-serialize-sparql-json/-/actor-query-result-serialize-sparql-json-2.10.2.tgz",
+ "integrity": "sha512-+J7SWXc4nXHzmQMk6q8MScrLNKdqX+/xQe6XCk0zDbDAt3/8EJh/2ROYFp4fEQyPDFWOwN4xpALgHRIh8PQRAQ==",
"dependencies": {
"@comunica/bus-http": "^2.10.2",
"@comunica/bus-http-invalidate": "^2.10.0",
@@ -1100,7 +1189,8 @@
},
"node_modules/@comunica/actor-query-result-serialize-sparql-tsv": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-result-serialize-sparql-tsv/-/actor-query-result-serialize-sparql-tsv-2.10.0.tgz",
+ "integrity": "sha512-TgA2WIXKdu/SrbHEP8HvGoLjhDOZnBoHsGsLFSHpxY/Uwk21rZqJLBEkhuhkUtGYzQPJ1n6Wmpjz9lBrUHGJPw==",
"dependencies": {
"@comunica/bus-query-result-serialize": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -1111,7 +1201,8 @@
},
"node_modules/@comunica/actor-query-result-serialize-sparql-xml": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-result-serialize-sparql-xml/-/actor-query-result-serialize-sparql-xml-2.10.0.tgz",
+ "integrity": "sha512-8RDj5ZN23HnIc6zI5pD5XKi2pyg2cx6DhI7VDRcboi7v0DxfROuQqSEtbQ8m/W6Pngdz01ySogRcIVJCzRzBLQ==",
"dependencies": {
"@comunica/bus-query-result-serialize": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -1121,7 +1212,8 @@
},
"node_modules/@comunica/actor-query-result-serialize-stats": {
"version": "2.10.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-result-serialize-stats/-/actor-query-result-serialize-stats-2.10.2.tgz",
+ "integrity": "sha512-jhj/vLDRxLuRMonBaqICt4saM9/UO9wJBT3Jxk7Rp73aQWLo+lILXKzcWpuxkh/EFx8raLUBmbjWCduamU1DzQ==",
"dependencies": {
"@comunica/bus-http": "^2.10.2",
"@comunica/bus-http-invalidate": "^2.10.0",
@@ -1134,7 +1226,8 @@
},
"node_modules/@comunica/actor-query-result-serialize-table": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-result-serialize-table/-/actor-query-result-serialize-table-2.10.0.tgz",
+ "integrity": "sha512-AAPrgM/rbsSThRu9jkfJhBUeTUwQTLHNVbIn8El+Akvz+Fueoi6oSi3SslpPMHOvIUiOAgCZ05f2RbBLlhP03g==",
"dependencies": {
"@comunica/bus-query-result-serialize": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -1147,7 +1240,8 @@
},
"node_modules/@comunica/actor-query-result-serialize-tree": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-result-serialize-tree/-/actor-query-result-serialize-tree-2.10.0.tgz",
+ "integrity": "sha512-sEyIzoSTV11YPY6r4fn6fwrf3WjLD6GrwXMTuevsDAKDYaMYxyriH3T/LMLLBEURy8SLD1I1Fpw/qaZisRmLTg==",
"dependencies": {
"@comunica/bus-query-result-serialize": "^2.10.0",
"@comunica/context-entries": "^2.10.0",
@@ -1159,7 +1253,8 @@
},
"node_modules/@comunica/actor-rdf-join-entries-sort-cardinality": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-entries-sort-cardinality/-/actor-rdf-join-entries-sort-cardinality-2.10.0.tgz",
+ "integrity": "sha512-6dd/29q6QuQN2Ap090VA0KUFmmnHalPxFJb4MGh5nIbWZH0F/EvI+uK5vPx29cttr1yXL5u+MbJWaLb3IxwILg==",
"dependencies": {
"@comunica/bus-rdf-join-entries-sort": "^2.10.0",
"@comunica/core": "^2.10.0"
@@ -1167,7 +1262,8 @@
},
"node_modules/@comunica/actor-rdf-join-inner-hash": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-inner-hash/-/actor-rdf-join-inner-hash-2.10.1.tgz",
+ "integrity": "sha512-nUtdS3NJGKSJQC8KjDVz4TEDmkXHBYQi0/bwnAXCDl1phhq8lgv+YEmRDNe/kuCze7HyqEt98rlSJ+ZhvcHXVQ==",
"dependencies": {
"@comunica/bus-rdf-join": "^2.10.1",
"@comunica/mediatortype-join-coefficients": "^2.10.0",
@@ -1177,7 +1273,8 @@
},
"node_modules/@comunica/actor-rdf-join-inner-multi-bind": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-inner-multi-bind/-/actor-rdf-join-inner-multi-bind-2.10.1.tgz",
+ "integrity": "sha512-tNZ2Q7z44Yr0iIFkvtTVAsts4v0IoC4b0FYaIUeYav4y5JOlR74hWWijTAzVfb31dTMsAp3r+y0xGIdd75LRHQ==",
"dependencies": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/bus-rdf-join": "^2.10.1",
@@ -1191,7 +1288,8 @@
},
"node_modules/@comunica/actor-rdf-join-inner-multi-empty": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-inner-multi-empty/-/actor-rdf-join-inner-multi-empty-2.10.1.tgz",
+ "integrity": "sha512-z6a3qENwuvSU0PvqOySrsHsWSUvzfWd1xIYwEvKuEIJ9vYPoefIUgggx08E95ZF/k+PxZ0vKEywFpBSUKUzGYA==",
"dependencies": {
"@comunica/bus-rdf-join": "^2.10.1",
"@comunica/mediatortype-join-coefficients": "^2.10.0",
@@ -1202,7 +1300,8 @@
},
"node_modules/@comunica/actor-rdf-join-inner-multi-smallest": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-inner-multi-smallest/-/actor-rdf-join-inner-multi-smallest-2.10.1.tgz",
+ "integrity": "sha512-MXwIvq+viDCmsxJwD4+fwMhwZINWva3jtQ3j5ne6DXgZYUJUFOw3VujvCP4/cl075RuSxYlXgy6ETHLa1TNr7g==",
"dependencies": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/bus-rdf-join": "^2.10.1",
@@ -1214,7 +1313,8 @@
},
"node_modules/@comunica/actor-rdf-join-inner-nestedloop": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-inner-nestedloop/-/actor-rdf-join-inner-nestedloop-2.10.1.tgz",
+ "integrity": "sha512-nFjGMrAIrRjRcsaU8UQXLbsDODVdf4LDpVNVQIrjfoWzhOIy13ApDQrqtuObaGVfryiFgt34zVEOwMWezWzl0A==",
"dependencies": {
"@comunica/bus-rdf-join": "^2.10.1",
"@comunica/mediatortype-join-coefficients": "^2.10.0",
@@ -1224,7 +1324,8 @@
},
"node_modules/@comunica/actor-rdf-join-inner-none": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-inner-none/-/actor-rdf-join-inner-none-2.10.1.tgz",
+ "integrity": "sha512-4mqsuqvLSuXMbgY0PghqK5hmBGH5YkRTwUOpGpBE0EVQaiAoQOME0uVslkt2TBzUx5IQJC+trr/80sbA9mAhMw==",
"dependencies": {
"@comunica/bindings-factory": "^2.10.1",
"@comunica/bus-rdf-join": "^2.10.1",
@@ -1235,7 +1336,8 @@
},
"node_modules/@comunica/actor-rdf-join-inner-single": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-inner-single/-/actor-rdf-join-inner-single-2.10.1.tgz",
+ "integrity": "sha512-RfnwTEsuXNdR0cNRWaCvNPlfD5KyuScsc/55j/9mr8yqGUTE9h9Om1Is5u7xnpRMxGOEqwVP6apK3ZxsZqlL/w==",
"dependencies": {
"@comunica/bus-rdf-join": "^2.10.1",
"@comunica/mediatortype-join-coefficients": "^2.10.0"
@@ -1243,7 +1345,8 @@
},
"node_modules/@comunica/actor-rdf-join-inner-symmetrichash": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-inner-symmetrichash/-/actor-rdf-join-inner-symmetrichash-2.10.1.tgz",
+ "integrity": "sha512-beFGkMUe3pTADtMXXPU8ab/IMULj+Hkg3Iah0zgrVZgwWH1Kgfkj/2qp32Ll5y9qcRbio4ruruKlHNXJJUU46Q==",
"dependencies": {
"@comunica/bus-rdf-join": "^2.10.1",
"@comunica/mediatortype-join-coefficients": "^2.10.0",
@@ -1253,7 +1356,8 @@
},
"node_modules/@comunica/actor-rdf-join-minus-hash": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-minus-hash/-/actor-rdf-join-minus-hash-2.10.1.tgz",
+ "integrity": "sha512-wIaB/EpuySaARhimoLzrE0cTH0TgVkL43IAtYX7ECwH9Qcv8blO4zbL4q2KUkY7OKZRM892aqMfo3kO1vMIK7w==",
"dependencies": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/bus-rdf-join": "^2.10.1",
@@ -1264,7 +1368,8 @@
},
"node_modules/@comunica/actor-rdf-join-minus-hash-undef": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-minus-hash-undef/-/actor-rdf-join-minus-hash-undef-2.10.1.tgz",
+ "integrity": "sha512-tz5LdeAHnylEQIq4bRfFqaH89WZXkkdFxEshqxWijFBp5wprUYiotMDrBo9zDFaPquhs42fILtTzLY9yaalc9w==",
"dependencies": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/bus-rdf-join": "^2.10.1",
@@ -1276,7 +1381,8 @@
},
"node_modules/@comunica/actor-rdf-join-optional-bind": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-optional-bind/-/actor-rdf-join-optional-bind-2.10.1.tgz",
+ "integrity": "sha512-6dOoI/rzRZ0RUyv2WlToClE42Z2YJE5xcSrot7haT2eMdxbzr1KjyasHBcIIkSK+WViDO006lXZ1Hi4tJm9uuA==",
"dependencies": {
"@comunica/actor-rdf-join-inner-multi-bind": "^2.10.1",
"@comunica/bus-query-operation": "^2.10.1",
@@ -1289,7 +1395,8 @@
},
"node_modules/@comunica/actor-rdf-join-optional-nestedloop": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-optional-nestedloop/-/actor-rdf-join-optional-nestedloop-2.10.1.tgz",
+ "integrity": "sha512-d7KUDjEKZszizd4SBvYkK2A6lScrq9ciEgzdrrp6IYZhIGAhJLTgPNg3Js3NEjpE7oj4KWl2WwKJe2sWcJbKJg==",
"dependencies": {
"@comunica/bus-rdf-join": "^2.10.1",
"@comunica/mediatortype-join-coefficients": "^2.10.0",
@@ -1299,7 +1406,8 @@
},
"node_modules/@comunica/actor-rdf-join-selectivity-variable-counting": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-selectivity-variable-counting/-/actor-rdf-join-selectivity-variable-counting-2.10.0.tgz",
+ "integrity": "sha512-D7tdzxA93bpZGXI5emJyvzk6LabeAnzcQMU/V5x2QwJxyoNr+LFbesBHDDP3/u4UJwmeP0a+dU0e5mbpJujSXw==",
"dependencies": {
"@comunica/bus-rdf-join-selectivity": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -1309,7 +1417,8 @@
},
"node_modules/@comunica/actor-rdf-metadata-accumulate-cancontainundefs": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-accumulate-cancontainundefs/-/actor-rdf-metadata-accumulate-cancontainundefs-2.10.0.tgz",
+ "integrity": "sha512-N3rwX4kT9rkW+89q4xCjO3KKG0DbeNIyeMWDzeh2vTw8nAXYyTiPjHYvx/6VUMzhFUWF+50VtVv8ZJPO6nEapw==",
"dependencies": {
"@comunica/bus-rdf-metadata-accumulate": "^2.10.0",
"@comunica/core": "^2.10.0"
@@ -1317,7 +1426,8 @@
},
"node_modules/@comunica/actor-rdf-metadata-accumulate-cardinality": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-accumulate-cardinality/-/actor-rdf-metadata-accumulate-cardinality-2.10.0.tgz",
+ "integrity": "sha512-UpC5PbhzEDCAxTUqETH89uRaFRqmP6YuWt67OAPo5wocv2tQDs6/SdLwS695XnfeMJdfDHsXyoUzQg3r8dwydw==",
"dependencies": {
"@comunica/bus-rdf-metadata-accumulate": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -1326,7 +1436,8 @@
},
"node_modules/@comunica/actor-rdf-metadata-accumulate-pagesize": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-accumulate-pagesize/-/actor-rdf-metadata-accumulate-pagesize-2.10.0.tgz",
+ "integrity": "sha512-r364CWGr5rMpV2ec3TsD+9Yhvi1JUuRXLBQqtgzjAPbpWjfDSM1Q4h0P1z9h3D+sdUMEX/0iGAY3AH2FjJAxwA==",
"dependencies": {
"@comunica/bus-rdf-metadata-accumulate": "^2.10.0",
"@comunica/core": "^2.10.0"
@@ -1334,7 +1445,8 @@
},
"node_modules/@comunica/actor-rdf-metadata-accumulate-requesttime": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-accumulate-requesttime/-/actor-rdf-metadata-accumulate-requesttime-2.10.0.tgz",
+ "integrity": "sha512-SpG7gxxAPoW2NbgyZ2UNpwluJ+IvCOYIRDTXmVTAK8bntav+/ZG30yfESFBjB3LmJEwAnktAsTgM6OhldohPKw==",
"dependencies": {
"@comunica/bus-rdf-metadata-accumulate": "^2.10.0",
"@comunica/core": "^2.10.0"
@@ -1342,7 +1454,8 @@
},
"node_modules/@comunica/actor-rdf-metadata-all": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-all/-/actor-rdf-metadata-all-2.10.0.tgz",
+ "integrity": "sha512-dHaSxHTdneWVBMAF6WqZrGD+u4TPpHQaJ2WutK1NvQNPIiF0N7249aGTvXBIXZfsKYyQ73PUORDeLEOjX+tT7g==",
"dependencies": {
"@comunica/bus-rdf-metadata": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -1351,7 +1464,8 @@
},
"node_modules/@comunica/actor-rdf-metadata-extract-allow-http-methods": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-extract-allow-http-methods/-/actor-rdf-metadata-extract-allow-http-methods-2.10.0.tgz",
+ "integrity": "sha512-aCSX+lWcmz5Q/g34VJEblczqDS6N+gJ3AlcOcGuqhd6qHRU17dMeCIZCk8p6p+AhbJ30w4BTsrZRY2sF0MGCVA==",
"dependencies": {
"@comunica/bus-rdf-metadata-extract": "^2.10.0",
"@comunica/core": "^2.10.0"
@@ -1359,7 +1473,8 @@
},
"node_modules/@comunica/actor-rdf-metadata-extract-hydra-controls": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-extract-hydra-controls/-/actor-rdf-metadata-extract-hydra-controls-2.10.0.tgz",
+ "integrity": "sha512-T6F5OaQNqrHVIwSGNRX6YPDBoAOYBQj3NTPID7vQae7J80oEX+CLoTkeJJwfHpoUWx0ihs8J0UkABgK3AWeylA==",
"dependencies": {
"@comunica/bus-rdf-metadata-extract": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -1370,7 +1485,8 @@
},
"node_modules/@comunica/actor-rdf-metadata-extract-hydra-count": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-extract-hydra-count/-/actor-rdf-metadata-extract-hydra-count-2.10.0.tgz",
+ "integrity": "sha512-nOMLN+9OSLFOVz6jc9pcyDizhcBBVT2azn7StTMK5ukFCcPCENS4y6lYhC5cijKZY7vUa7U6VzhX2vvw20MKDA==",
"dependencies": {
"@comunica/bus-rdf-metadata-extract": "^2.10.0",
"@comunica/core": "^2.10.0"
@@ -1378,7 +1494,8 @@
},
"node_modules/@comunica/actor-rdf-metadata-extract-hydra-pagesize": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-extract-hydra-pagesize/-/actor-rdf-metadata-extract-hydra-pagesize-2.10.0.tgz",
+ "integrity": "sha512-mD8KS2ENr2rbfBWxtVpxkB/Y2LyyAnwQU5UYKkpet8ELhlostdGROzYCNIAgfOgirOAsLgVkbmrX0XBGouI7rA==",
"dependencies": {
"@comunica/bus-rdf-metadata-extract": "^2.10.0",
"@comunica/core": "^2.10.0"
@@ -1386,7 +1503,8 @@
},
"node_modules/@comunica/actor-rdf-metadata-extract-patch-sparql-update": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-extract-patch-sparql-update/-/actor-rdf-metadata-extract-patch-sparql-update-2.10.0.tgz",
+ "integrity": "sha512-U5ARpeWKShbbSfdtJeb6nyPcsdtMwEo2dp56T4aSTNSBKtAhQ78DjOxb23WIU/VR/qpw2yWcsbPnNJvSaLpRVQ==",
"dependencies": {
"@comunica/bus-rdf-metadata-extract": "^2.10.0",
"@comunica/core": "^2.10.0"
@@ -1394,7 +1512,8 @@
},
"node_modules/@comunica/actor-rdf-metadata-extract-put-accepted": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-extract-put-accepted/-/actor-rdf-metadata-extract-put-accepted-2.10.0.tgz",
+ "integrity": "sha512-cGJg6tMMCOSGcitkUBN7b9/Sg5zgwWQC52g+Zk22o4i+Zgt24WLjfXXbnGWGoV+h9YZo8pkg7v1cpE5GpapNCg==",
"dependencies": {
"@comunica/bus-rdf-metadata-extract": "^2.10.0",
"@comunica/core": "^2.10.0"
@@ -1402,7 +1521,8 @@
},
"node_modules/@comunica/actor-rdf-metadata-extract-request-time": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-extract-request-time/-/actor-rdf-metadata-extract-request-time-2.10.0.tgz",
+ "integrity": "sha512-zh3coTPZMbgF4mXKCO3bzn99INt9HFraKMZWc9s/kwBE6vhNZ5246Ql/6z1v7mccoIbanhI72gtjFTGGHru80Q==",
"dependencies": {
"@comunica/bus-rdf-metadata-extract": "^2.10.0",
"@comunica/core": "^2.10.0"
@@ -1410,7 +1530,8 @@
},
"node_modules/@comunica/actor-rdf-metadata-extract-sparql-service": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-extract-sparql-service/-/actor-rdf-metadata-extract-sparql-service-2.10.0.tgz",
+ "integrity": "sha512-Xc+id8FURTmY3ccb4hcVuAaOou5UqD+1YkTnGfMWQxVgMlFC1eeBvwWVzvedj0sHhnfbLgDwbCVYLCK1lNndSg==",
"dependencies": {
"@comunica/bus-rdf-metadata-extract": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -1419,7 +1540,8 @@
},
"node_modules/@comunica/actor-rdf-metadata-primary-topic": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-primary-topic/-/actor-rdf-metadata-primary-topic-2.10.0.tgz",
+ "integrity": "sha512-nabxkiYSPGPRylhYjGxF0KiJ/K8QiG1N/am/t8eaqwyjn/fo2/tHl0yXUaLLx0E8fChfbBv10sVlmLhsLrg8DQ==",
"dependencies": {
"@comunica/bus-rdf-metadata": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -1429,7 +1551,8 @@
},
"node_modules/@comunica/actor-rdf-parse-html": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-html/-/actor-rdf-parse-html-2.10.0.tgz",
+ "integrity": "sha512-zgImXKpc+BN1i6lQiN1Qhlb1HbKdMIeJMOys6qbzRIijdK8GkGGChwhQp7Cso3lY1Nf4K7M3jPLZeQXeED2w7g==",
"dependencies": {
"@comunica/bus-rdf-parse": "^2.10.0",
"@comunica/bus-rdf-parse-html": "^2.10.0",
@@ -1442,7 +1565,8 @@
},
"node_modules/@comunica/actor-rdf-parse-html-microdata": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-html-microdata/-/actor-rdf-parse-html-microdata-2.10.0.tgz",
+ "integrity": "sha512-JLfiDauq4SmpI6TDS4HaHzI6iJe1j8lSk5FRRYK6YVEu8eO28jPmxQJiOiwbQiYqsjsV7kON/WIZSoUELoI4Ig==",
"dependencies": {
"@comunica/bus-rdf-parse-html": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -1451,7 +1575,8 @@
},
"node_modules/@comunica/actor-rdf-parse-html-rdfa": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-html-rdfa/-/actor-rdf-parse-html-rdfa-2.10.0.tgz",
+ "integrity": "sha512-9K3iaws9+FGl50oZi53hqyzhwjNKZ3mIr2zg/TAJZoapKvc14cthH17zKSSJrqI/NgBStRmZhBBkXcwfu1CANw==",
"dependencies": {
"@comunica/bus-rdf-parse-html": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -1460,7 +1585,8 @@
},
"node_modules/@comunica/actor-rdf-parse-html-script": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-html-script/-/actor-rdf-parse-html-script-2.10.0.tgz",
+ "integrity": "sha512-7XYqWchDquWnBLjG7rmmY+tdE81UZ8fPCU0Hn+vI39/MikNOpaiyr/ZYFqhogWFa9SkjmH0a7idVUzmjiwKRZQ==",
"dependencies": {
"@comunica/bus-rdf-parse": "^2.10.0",
"@comunica/bus-rdf-parse-html": "^2.10.0",
@@ -1474,7 +1600,8 @@
},
"node_modules/@comunica/actor-rdf-parse-jsonld": {
"version": "2.10.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-jsonld/-/actor-rdf-parse-jsonld-2.10.2.tgz",
+ "integrity": "sha512-K4fvD0zMU22KkQCqIFVT5Oy2FREEZ9CAo9u6kOcsMxEvg9aHGIM6hkaXR8I+1JCx1mDuEj3zQ8joR4tQh8fYCw==",
"dependencies": {
"@comunica/bus-http": "^2.10.2",
"@comunica/bus-rdf-parse": "^2.10.0",
@@ -1488,7 +1615,8 @@
},
"node_modules/@comunica/actor-rdf-parse-n3": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-n3/-/actor-rdf-parse-n3-2.10.0.tgz",
+ "integrity": "sha512-o1MAbwJxW4Br2WCZdhFoRmAiOP4mfogeQqJ4nqlsOkoMtQ45EvLHsotb3Kqhuk5V+vsTxyK5v/a4zylGtcU7VQ==",
"dependencies": {
"@comunica/bus-rdf-parse": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -1497,7 +1625,8 @@
},
"node_modules/@comunica/actor-rdf-parse-rdfxml": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-rdfxml/-/actor-rdf-parse-rdfxml-2.10.0.tgz",
+ "integrity": "sha512-HoJN52shXY3cvYtsS0cpin9KXpW3L7g1leebyCRSqnlnHdJv5D6G0Ep8vyt2xhquKNbOQ7LnP5VhiDiqz73XDg==",
"dependencies": {
"@comunica/bus-rdf-parse": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -1506,7 +1635,8 @@
},
"node_modules/@comunica/actor-rdf-parse-shaclc": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-shaclc/-/actor-rdf-parse-shaclc-2.10.0.tgz",
+ "integrity": "sha512-i6tmuZuS+RtDiSXpQc3s/PxtCqwIguo4ANmVB20PK4VWgQgBwoPG7LlNcJ0xmuH/3Bv6C2Agn18PLF6dZX+fKw==",
"dependencies": {
"@comunica/bus-rdf-parse": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -1519,7 +1649,8 @@
},
"node_modules/@comunica/actor-rdf-parse-xml-rdfa": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-xml-rdfa/-/actor-rdf-parse-xml-rdfa-2.10.0.tgz",
+ "integrity": "sha512-68r/6B/fEyA1/OYleVuaPq47J+g4xJcJijpdL1wEj7CqjV+Xa+sDWRpNCyLcD/e1Y/g9UQmLz0ZnSpR00PFddA==",
"dependencies": {
"@comunica/bus-rdf-parse": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -1528,7 +1659,8 @@
},
"node_modules/@comunica/actor-rdf-resolve-hypermedia-links-next": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-resolve-hypermedia-links-next/-/actor-rdf-resolve-hypermedia-links-next-2.10.0.tgz",
+ "integrity": "sha512-SpW46Tx8ksAxotGK2UEpvGcYjKwxB0x2KnbGmKHvo59embRjcUL/bmq3uHqZe7UwfynR2wDaRzMdVVSQccWSyA==",
"dependencies": {
"@comunica/bus-rdf-resolve-hypermedia-links": "^2.10.0",
"@comunica/core": "^2.10.0"
@@ -1536,7 +1668,8 @@
},
"node_modules/@comunica/actor-rdf-resolve-hypermedia-links-queue-fifo": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-resolve-hypermedia-links-queue-fifo/-/actor-rdf-resolve-hypermedia-links-queue-fifo-2.10.0.tgz",
+ "integrity": "sha512-Hh53Ts6z6MxKXhZZxgpXfc1hgNzIX/xbA9mD2Au7ZfAa5V5j8zPaVVKe06sxILQBTPMsFh1idP3vIqRwRXpsvg==",
"dependencies": {
"@comunica/bus-rdf-resolve-hypermedia-links": "^2.10.0",
"@comunica/bus-rdf-resolve-hypermedia-links-queue": "^2.10.0",
@@ -1545,7 +1678,8 @@
},
"node_modules/@comunica/actor-rdf-resolve-hypermedia-none": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-resolve-hypermedia-none/-/actor-rdf-resolve-hypermedia-none-2.10.0.tgz",
+ "integrity": "sha512-C4sJ0QJetq3QxsRkYstK5YXRYDGkcVTfyBOFUMYj7PbVakapnl8qPZkVL7VPMLVLVOfyBQHTT43Yp6Nl8VvmSA==",
"dependencies": {
"@comunica/actor-rdf-resolve-quad-pattern-rdfjs-source": "^2.10.0",
"@comunica/bus-rdf-resolve-hypermedia": "^2.10.0",
@@ -1554,7 +1688,8 @@
},
"node_modules/@comunica/actor-rdf-resolve-hypermedia-qpf": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-resolve-hypermedia-qpf/-/actor-rdf-resolve-hypermedia-qpf-2.10.0.tgz",
+ "integrity": "sha512-1iP9xD72bxFBLpbfC7Ev0Xoc+0rwusPFdnoYbEtqMHRfiM0h3nNrsSxyzdGJMAZaJeQzmBZIEiwR5pbo9qpmaQ==",
"dependencies": {
"@comunica/actor-rdf-metadata-extract-hydra-controls": "^2.10.0",
"@comunica/bus-dereference-rdf": "^2.10.0",
@@ -1572,7 +1707,8 @@
},
"node_modules/@comunica/actor-rdf-resolve-hypermedia-sparql": {
"version": "2.10.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-resolve-hypermedia-sparql/-/actor-rdf-resolve-hypermedia-sparql-2.10.2.tgz",
+ "integrity": "sha512-UFsTuzHvjK/XhRGqfHr3WAVr+iBv6XTuU1fV9EuOaB+odclQ+H6TGtmW6/38CSufj86Y691VBXMk29zdWfrmGA==",
"dependencies": {
"@comunica/bindings-factory": "^2.10.1",
"@comunica/bus-http": "^2.10.2",
@@ -1590,7 +1726,8 @@
},
"node_modules/@comunica/actor-rdf-resolve-quad-pattern-federated": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-resolve-quad-pattern-federated/-/actor-rdf-resolve-quad-pattern-federated-2.10.1.tgz",
+ "integrity": "sha512-OBRTTUWkXKa0ibDzcYLG7aKf3BfQp2j75xm65brRvwstNLmye9ZEq1PrNhbP5UDqQQeCgzPBrb0eGC8Vxek2RA==",
"dependencies": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/bus-rdf-metadata-accumulate": "^2.10.0",
@@ -1609,7 +1746,8 @@
},
"node_modules/@comunica/actor-rdf-resolve-quad-pattern-hypermedia": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-resolve-quad-pattern-hypermedia/-/actor-rdf-resolve-quad-pattern-hypermedia-2.10.1.tgz",
+ "integrity": "sha512-XkJOYu0bizWHsvgiaGyNAnRZsqv2risREK5SY14VCMXDYqmOWJLDppveGEUZAoEKEJuo4ZLDlP2gLDGzc0krxQ==",
"dependencies": {
"@comunica/bus-dereference-rdf": "^2.10.0",
"@comunica/bus-http-invalidate": "^2.10.0",
@@ -1636,7 +1774,8 @@
},
"node_modules/@comunica/actor-rdf-resolve-quad-pattern-rdfjs-source": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-resolve-quad-pattern-rdfjs-source/-/actor-rdf-resolve-quad-pattern-rdfjs-source-2.10.0.tgz",
+ "integrity": "sha512-d6AlrngvZaVgoiiyMhkf6uiYaFZZdn/UZLo0FhZ++or1NZXo5KxK4UMgdiIygvPEiuuVzy0W1djHgOQ1rgh50g==",
"dependencies": {
"@comunica/bus-rdf-resolve-quad-pattern": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -1650,7 +1789,8 @@
},
"node_modules/@comunica/actor-rdf-resolve-quad-pattern-string-source": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-resolve-quad-pattern-string-source/-/actor-rdf-resolve-quad-pattern-string-source-2.10.0.tgz",
+ "integrity": "sha512-v6QOBtXTXrDUZRHocrm2OYCsxGpyTScka/n85cewCcInqVGJP9J6zpdwetzvIy7wVJkac7JQabd96OEyDMK3sg==",
"dependencies": {
"@comunica/bus-rdf-parse": "^2.10.0",
"@comunica/bus-rdf-resolve-quad-pattern": "^2.10.0",
@@ -1665,7 +1805,8 @@
},
"node_modules/@comunica/actor-rdf-serialize-jsonld": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-serialize-jsonld/-/actor-rdf-serialize-jsonld-2.10.0.tgz",
+ "integrity": "sha512-u1M5N7BSrkhS461fV6QXKMh6TnvpoEiSHPru7wJg1kGqR9q3reuQeKLf/U23JDYb1kom8uU3R7aBpDIjgVc49Q==",
"dependencies": {
"@comunica/bus-rdf-serialize": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -1674,7 +1815,8 @@
},
"node_modules/@comunica/actor-rdf-serialize-n3": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-serialize-n3/-/actor-rdf-serialize-n3-2.10.0.tgz",
+ "integrity": "sha512-CoDktUI3YQuI7UBV+fQOdKl+5XjBx0XTOF9XxEDiNg5nwndEmDvq6C23fSHfkqX3/xDlnsuS/YysHAqXCrYoiA==",
"dependencies": {
"@comunica/bus-rdf-serialize": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -1683,7 +1825,8 @@
},
"node_modules/@comunica/actor-rdf-serialize-shaclc": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-serialize-shaclc/-/actor-rdf-serialize-shaclc-2.10.0.tgz",
+ "integrity": "sha512-gp4bu4+aPtMk4bavXP27uD9X9bpa2F5u6/JtsaX2qwcqVI0x1tkVQOkm2RkUhafcHNj0Fz6lQ3aXmRIAQvaefg==",
"dependencies": {
"@comunica/bus-rdf-serialize": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -1694,7 +1837,8 @@
},
"node_modules/@comunica/actor-rdf-update-hypermedia-patch-sparql-update": {
"version": "2.10.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-update-hypermedia-patch-sparql-update/-/actor-rdf-update-hypermedia-patch-sparql-update-2.10.2.tgz",
+ "integrity": "sha512-z/fOzYlA5fPtauTUISYhCWMKtEpkvKkSZIdvcgeGvetLnvw4fytfVHdtPhirZYmPya10GCeTG7m2iHvK53lOsQ==",
"dependencies": {
"@comunica/bus-http": "^2.10.2",
"@comunica/bus-rdf-update-hypermedia": "^2.10.2",
@@ -1710,7 +1854,8 @@
},
"node_modules/@comunica/actor-rdf-update-hypermedia-put-ldp": {
"version": "2.10.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-update-hypermedia-put-ldp/-/actor-rdf-update-hypermedia-put-ldp-2.10.2.tgz",
+ "integrity": "sha512-Tof/mU0Lkt7HP3SwHXODczxvAFelWzAHdP+ap4Upr47K6Zg5GRPwJv//2AcPvT3p42Li6wuMz/4nh/A3pcnCKA==",
"dependencies": {
"@comunica/bus-http": "^2.10.2",
"@comunica/bus-rdf-serialize": "^2.10.0",
@@ -1725,7 +1870,8 @@
},
"node_modules/@comunica/actor-rdf-update-hypermedia-sparql": {
"version": "2.10.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-update-hypermedia-sparql/-/actor-rdf-update-hypermedia-sparql-2.10.2.tgz",
+ "integrity": "sha512-uw1NIAoxuAechsjTQ6b53XpGOMx3Mp5uEL5LtUwNC6COJE6tzWH8wG54Dwj+0VNxsgqsSircKu2xwGl1uOsOPg==",
"dependencies": {
"@comunica/bus-http": "^2.10.2",
"@comunica/bus-rdf-update-hypermedia": "^2.10.2",
@@ -1741,7 +1887,8 @@
},
"node_modules/@comunica/actor-rdf-update-quads-hypermedia": {
"version": "2.10.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-update-quads-hypermedia/-/actor-rdf-update-quads-hypermedia-2.10.2.tgz",
+ "integrity": "sha512-kzGfDv0PqcOIIULJLG8jtA/dOcrNUodu98J08ruSuYQBbnFgAZ07MG1TkWhEI/AM6D0w7hXkgQaC1sGWn4gVmA==",
"dependencies": {
"@comunica/bus-dereference-rdf": "^2.10.0",
"@comunica/bus-http-invalidate": "^2.10.0",
@@ -1756,7 +1903,8 @@
},
"node_modules/@comunica/actor-rdf-update-quads-rdfjs-store": {
"version": "2.10.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-update-quads-rdfjs-store/-/actor-rdf-update-quads-rdfjs-store-2.10.2.tgz",
+ "integrity": "sha512-anX3SovvY2H8KwuWu8G9EqtITmCsz12jfqunNn5Efcch/bm4HyHTC1GThx77m6qpCdg4OMx8TLhNrH1II1UM1w==",
"dependencies": {
"@comunica/bus-rdf-update-quads": "^2.10.2",
"@comunica/core": "^2.10.0",
@@ -1769,7 +1917,8 @@
},
"node_modules/@comunica/bindings-factory": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/bindings-factory/-/bindings-factory-2.10.1.tgz",
+ "integrity": "sha512-AUD3VWlCYljgk5jfaMejSIL9CiX3aV/cAn314e/dYP/rrnVgachcCwyaD8hKHWTBHDs5rcGxr/iwruBOfsERvQ==",
"dependencies": {
"@rdfjs/types": "*",
"immutable": "^4.1.0",
@@ -1779,7 +1928,8 @@
},
"node_modules/@comunica/bus-context-preprocess": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-context-preprocess/-/bus-context-preprocess-2.10.0.tgz",
+ "integrity": "sha512-eJ5CkzbnmxB9fkr2F05jnnjcaowp+yxd0+pAtvx5MLl2Kpx3nWLqHPcl4/EVVDPD+i0TEkq4AXQ1BD9BMuXK0A==",
"dependencies": {
"@comunica/core": "^2.10.0",
"@comunica/types": "^2.10.0"
@@ -1787,7 +1937,8 @@
},
"node_modules/@comunica/bus-dereference": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-dereference/-/bus-dereference-2.10.0.tgz",
+ "integrity": "sha512-nWyQXiH7zbiPTVttWVKJHykhV4IuahfhfUwPx3Op+cVsK489Su84dnGeSmPkxTAFFuxe6wU6ZEH4i7PDu48YvQ==",
"dependencies": {
"@comunica/actor-abstract-mediatyped": "^2.10.0",
"@comunica/actor-abstract-parse": "^2.10.0",
@@ -1799,7 +1950,8 @@
},
"node_modules/@comunica/bus-dereference-rdf": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-dereference-rdf/-/bus-dereference-rdf-2.10.0.tgz",
+ "integrity": "sha512-WY/wPmFpO76wwJ2D5Aus43ZbYnBRLvQ0EOp4yywO0lBiq6F0JisjCVCM4EtWouOEAAfqEoIjHXGyC3gPWqm+SQ==",
"dependencies": {
"@comunica/bus-dereference": "^2.10.0",
"@comunica/bus-rdf-parse": "^2.10.0",
@@ -1809,7 +1961,8 @@
},
"node_modules/@comunica/bus-hash-bindings": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-hash-bindings/-/bus-hash-bindings-2.10.0.tgz",
+ "integrity": "sha512-EdzIUgpSWMtFVxEJSesuQpMkfgznDap+U0F9epotxXc20Gg/qjTzs1gF6NkpDpaidQ7cFlV16vdbdfi8uiZ+mQ==",
"dependencies": {
"@comunica/core": "^2.10.0",
"@comunica/types": "^2.10.0"
@@ -1817,7 +1970,8 @@
},
"node_modules/@comunica/bus-http": {
"version": "2.10.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-http/-/bus-http-2.10.2.tgz",
+ "integrity": "sha512-MAYRF6uEBAuJ9dCPW2Uyne7w3lNwXFXKfa14XuPG5DFTDpgo/Z2pWupPrBsA1eIWMNJ6WOG6QyEv4rllSIBqlg==",
"dependencies": {
"@comunica/core": "^2.10.0",
"@smessie/readable-web-to-node-stream": "^3.0.3",
@@ -1828,14 +1982,16 @@
},
"node_modules/@comunica/bus-http-invalidate": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-http-invalidate/-/bus-http-invalidate-2.10.0.tgz",
+ "integrity": "sha512-9DevRUzuCOfHFtsryIvTU6rOz6vMbnuDzerloBoNsLFVzQCU4wPNZbxiOn0+GMDXxw7M3KgYd+KFxI2kGObVWA==",
"dependencies": {
"@comunica/core": "^2.10.0"
}
},
"node_modules/@comunica/bus-init": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-init/-/bus-init-2.10.0.tgz",
+ "integrity": "sha512-hJejHa8sLVhQLFlduCVnhOd5aW3FCEz8wmWjyeLI3kiHFaQibnGVMhUuuNRX5f8bnnPuTdEiHc1nnYHuSi+j8A==",
"dependencies": {
"@comunica/core": "^2.10.0",
"readable-stream": "^4.4.2"
@@ -1843,7 +1999,8 @@
},
"node_modules/@comunica/bus-optimize-query-operation": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-optimize-query-operation/-/bus-optimize-query-operation-2.10.0.tgz",
+ "integrity": "sha512-qawKJprbVc+dfjBgVzV45UEo+jZBzY3dRo0a8UkXSvgSWPcX18SGrURl2VL4sZZSAyXQBMrGUwH2eUD8l26ZJQ==",
"dependencies": {
"@comunica/core": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -1852,7 +2009,8 @@
},
"node_modules/@comunica/bus-query-operation": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-query-operation/-/bus-query-operation-2.10.1.tgz",
+ "integrity": "sha512-PoUSJeKaMZtZu+ZtB+5ABjPOiW1YjxOdLE1N5znxX2oiDKCQHmAXVaVkbVx1jPDLGYFNcOlOSzpRMqLQ/L4JIw==",
"dependencies": {
"@comunica/bindings-factory": "^2.10.1",
"@comunica/context-entries": "^2.10.0",
@@ -1868,7 +2026,8 @@
},
"node_modules/@comunica/bus-query-parse": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-query-parse/-/bus-query-parse-2.10.0.tgz",
+ "integrity": "sha512-1LynxACgCYTuBH/JMRG/IGaWtTVwr2O8wxOosCId2W3BDW9nf2DSCyOdnxnCSMSKfnLFWiaVuKybn24OLXW2dQ==",
"dependencies": {
"@comunica/core": "^2.10.0",
"@rdfjs/types": "*",
@@ -1877,7 +2036,8 @@
},
"node_modules/@comunica/bus-query-result-serialize": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-query-result-serialize/-/bus-query-result-serialize-2.10.0.tgz",
+ "integrity": "sha512-9P5KUzmXvjtLbd44UVxYNB0yqAHx7molBUc7aysUQ3pbIcP/A57GXzAfiKueeiZ9cVRRG/BGsVoDGVj59tGWNg==",
"dependencies": {
"@comunica/actor-abstract-mediatyped": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -1886,7 +2046,8 @@
},
"node_modules/@comunica/bus-rdf-join": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-join/-/bus-rdf-join-2.10.1.tgz",
+ "integrity": "sha512-pPFoJVHY5p931jIKt+9sqRCGiuuf8yFqrlOOAd3un72cwuyhwNHvn52xwvcPlNUAySz/kDmW+U0syflqI6VdAw==",
"dependencies": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/bus-rdf-join-selectivity": "^2.10.0",
@@ -1902,7 +2063,8 @@
},
"node_modules/@comunica/bus-rdf-join-entries-sort": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-join-entries-sort/-/bus-rdf-join-entries-sort-2.10.0.tgz",
+ "integrity": "sha512-17FQrdYtzjY84OI/ZvipJKD0ei3IySmsWwaGC9sIJn+1W4LBVKudTu5S0tzGTKTb0URhS4mrCliUBzyINtIZMQ==",
"dependencies": {
"@comunica/core": "^2.10.0",
"@comunica/types": "^2.10.0"
@@ -1910,7 +2072,8 @@
},
"node_modules/@comunica/bus-rdf-join-selectivity": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-join-selectivity/-/bus-rdf-join-selectivity-2.10.0.tgz",
+ "integrity": "sha512-YjoygSiH6r4SAYqz6gpvUql2vnznPVE62IsWqYnjFWeH1kBsxO5yEOO01s2FfN3jLcfsytTyG7VNTCN788YbaA==",
"dependencies": {
"@comunica/core": "^2.10.0",
"@comunica/mediatortype-accuracy": "^2.10.0",
@@ -1919,7 +2082,8 @@
},
"node_modules/@comunica/bus-rdf-metadata": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-metadata/-/bus-rdf-metadata-2.10.0.tgz",
+ "integrity": "sha512-LRUnHVqIzyUlmPKPNAYOusCF53iN8KEX7l/VinlA7NH3XBLhTkFoth26MVqIVtjtdH0hVfUVpkwy2kFEJpGldw==",
"dependencies": {
"@comunica/core": "^2.10.0",
"@rdfjs/types": "*"
@@ -1927,7 +2091,8 @@
},
"node_modules/@comunica/bus-rdf-metadata-accumulate": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-metadata-accumulate/-/bus-rdf-metadata-accumulate-2.10.0.tgz",
+ "integrity": "sha512-XG/3s4a3yGpYt4H+sn9T2zTaUxLG+37dmhRhXv2cBmR4gaCXkglERPaOrQygHldEF+4ITF3RmXHCgANsQ1AwQg==",
"dependencies": {
"@comunica/core": "^2.10.0",
"@comunica/types": "^2.10.0"
@@ -1935,7 +2100,8 @@
},
"node_modules/@comunica/bus-rdf-metadata-extract": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-metadata-extract/-/bus-rdf-metadata-extract-2.10.0.tgz",
+ "integrity": "sha512-KcMZh+7kHjdCIMkLFki99tQH1arVp/evVnk0BGXfWd+ca3eCLrr42tb1tGfN2JkaCSxgtzWO4DRZcSzJ4sI2dQ==",
"dependencies": {
"@comunica/core": "^2.10.0",
"@rdfjs/types": "*"
@@ -1943,7 +2109,8 @@
},
"node_modules/@comunica/bus-rdf-parse": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-parse/-/bus-rdf-parse-2.10.0.tgz",
+ "integrity": "sha512-EgCMZACfTG/+mayQpExWt0HoBT32BBVC1aS1lC43fXKBTxJ8kYrSrorVUuMACoh4dQVGTb+7j1j4K0hGNVzXGA==",
"dependencies": {
"@comunica/actor-abstract-mediatyped": "^2.10.0",
"@comunica/actor-abstract-parse": "^2.10.0",
@@ -1953,7 +2120,8 @@
},
"node_modules/@comunica/bus-rdf-parse-html": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-parse-html/-/bus-rdf-parse-html-2.10.0.tgz",
+ "integrity": "sha512-RZliz4TtKP63QggoohGuIkGb6lq0BoYJ4aztKtGldWtPAVP/pdEvlDpiZWLB/j19g7S2aDLNY/lJtZ5efM1tHQ==",
"dependencies": {
"@comunica/core": "^2.10.0",
"@rdfjs/types": "*"
@@ -1961,7 +2129,8 @@
},
"node_modules/@comunica/bus-rdf-resolve-hypermedia": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-resolve-hypermedia/-/bus-rdf-resolve-hypermedia-2.10.0.tgz",
+ "integrity": "sha512-DjCoAg62pPzEOH5gKM9gaL4CVUmhBsmyOzao0tRu20G7L6RnTIFtRaOwMN2z+2uC7AkJRHZY12bPUb+yM8V0UQ==",
"dependencies": {
"@comunica/bus-rdf-resolve-quad-pattern": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -1970,7 +2139,8 @@
},
"node_modules/@comunica/bus-rdf-resolve-hypermedia-links": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-resolve-hypermedia-links/-/bus-rdf-resolve-hypermedia-links-2.10.0.tgz",
+ "integrity": "sha512-Mcz6bUdZySLK2om0cMt86n5TOThZOTpEFq2M42n7YAE3LL2KMnMDdhkaOC6SyY4tS0HGAuhce21Uq+Gz8Veq2g==",
"dependencies": {
"@comunica/core": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -1979,7 +2149,8 @@
},
"node_modules/@comunica/bus-rdf-resolve-hypermedia-links-queue": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-resolve-hypermedia-links-queue/-/bus-rdf-resolve-hypermedia-links-queue-2.10.0.tgz",
+ "integrity": "sha512-f9amJk7ikktRfOoRnwag1KMTuo9v+PiDEVQA0dijl+jhcispKdjG6XK0MdZ1KSEmtUWejjS6nMRGvfJdM37eog==",
"dependencies": {
"@comunica/bus-rdf-resolve-hypermedia-links": "^2.10.0",
"@comunica/core": "^2.10.0"
@@ -1987,7 +2158,8 @@
},
"node_modules/@comunica/bus-rdf-resolve-quad-pattern": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-resolve-quad-pattern/-/bus-rdf-resolve-quad-pattern-2.10.0.tgz",
+ "integrity": "sha512-JEI4DqSprGmrbfmiIwc8PbS+HCoxXwmMtp7gDpoB1HyYKIHzzu9DOIiwmYEDRO5dwV+uTwaYKZz/mUPm2U6EEg==",
"dependencies": {
"@comunica/context-entries": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -1999,7 +2171,8 @@
},
"node_modules/@comunica/bus-rdf-serialize": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-serialize/-/bus-rdf-serialize-2.10.0.tgz",
+ "integrity": "sha512-AmbN9MUgw6B6AfrIqR1u7PWHZFgbJz+j1SFJVtnHQ51hEpG+Ig9nNG2IWjHOsFK0xBBQ/wXgNmt/cufEMRM1SQ==",
"dependencies": {
"@comunica/actor-abstract-mediatyped": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -2008,7 +2181,8 @@
},
"node_modules/@comunica/bus-rdf-update-hypermedia": {
"version": "2.10.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-update-hypermedia/-/bus-rdf-update-hypermedia-2.10.2.tgz",
+ "integrity": "sha512-GbRMxXN4kx+4UPsnGxWjyn770m675yy2gWK/xy/5qQIxxRTcuGk4wm/994FZQXpwLX1E0xJ+YKxMgXTIlEWmQA==",
"dependencies": {
"@comunica/bus-rdf-update-quads": "^2.10.2",
"@comunica/core": "^2.10.0"
@@ -2016,7 +2190,8 @@
},
"node_modules/@comunica/bus-rdf-update-quads": {
"version": "2.10.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-update-quads/-/bus-rdf-update-quads-2.10.2.tgz",
+ "integrity": "sha512-+iVpAHps8ytGq8AZF4xTZbLyskS40JPn64MO+OAuYovqXLlezp6vh9eJ5qETuP9NP+BpZDk3nOU3Ky3fb0QCUw==",
"dependencies": {
"@comunica/actor-rdf-resolve-quad-pattern-federated": "^2.10.1",
"@comunica/bus-http": "^2.10.2",
@@ -2030,11 +2205,13 @@
},
"node_modules/@comunica/config-query-sparql": {
"version": "2.7.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@comunica/config-query-sparql/-/config-query-sparql-2.7.0.tgz",
+ "integrity": "sha512-rMnFgT7cz9+0z7wV4OzIMY5qM9/Z0mTGrR8y2JokoHyyTcBGOSajFmy61XCSLMCsLLG8qDXsJ4ClCCky3TGfqA=="
},
"node_modules/@comunica/context-entries": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/context-entries/-/context-entries-2.10.0.tgz",
+ "integrity": "sha512-lmCYCcXxW8C6ecFH2whZCt31NT1ejb0P/sbytK7f4ctyA06Q8iYFEcYE4eWOXMdpfkwkcnz31x9XL77OGeSC2Q==",
"dependencies": {
"@comunica/core": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -2045,7 +2222,8 @@
},
"node_modules/@comunica/core": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/core/-/core-2.10.0.tgz",
+ "integrity": "sha512-onsGs2iKHUPRxxMOdx42vdxslk8q9FQZdRjQtHJ6SGiCpJwIL9ciBgPIOl2RL2YfzXHemr/0umeNOppRDcWhJA==",
"dependencies": {
"@comunica/types": "^2.10.0",
"immutable": "^4.1.0"
@@ -2056,14 +2234,16 @@
},
"node_modules/@comunica/data-factory": {
"version": "2.7.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/data-factory/-/data-factory-2.7.0.tgz",
+ "integrity": "sha512-dSTzrR1w9SzAWx70ZXKXHUC8f0leUolLZ9TOhGjFhhsBMJ9Pbo0g6vHV8txX5FViShngrg9QNKhsHeQnMk5z6Q==",
"dependencies": {
"@rdfjs/types": "*"
}
},
"node_modules/@comunica/expression-evaluator": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/expression-evaluator/-/expression-evaluator-2.10.0.tgz",
+ "integrity": "sha512-gSfiVSAE+SaxpXq3jT5OnyZd+sD9KFaWtTiKT1tDDs8lD7Jj68aRP7VoEhvKwPwRlUx0aoaXUL2MYtV6JsXRbg==",
"dependencies": {
"@rdfjs/types": "*",
"@types/spark-md5": "^3.0.2",
@@ -2081,18 +2261,20 @@
},
"node_modules/@comunica/expression-evaluator/node_modules/uuid": {
"version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
+ "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
"funding": [
"https://github.com/sponsors/broofa",
"https://github.com/sponsors/ctavan"
],
- "license": "MIT",
"bin": {
"uuid": "dist/bin/uuid"
}
},
"node_modules/@comunica/logger-pretty": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/logger-pretty/-/logger-pretty-2.10.0.tgz",
+ "integrity": "sha512-JXkeM5HnbyTPnQTf5/ugRPL9R+vXT7b/hRVYzYmhAGCjkCNL7NJPTBbIgxmZHqZ+UGxprotrvmDQtwHmVA+Ddw==",
"dependencies": {
"@comunica/types": "^2.10.0",
"object-inspect": "^1.12.2",
@@ -2101,21 +2283,24 @@
},
"node_modules/@comunica/logger-void": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/logger-void/-/logger-void-2.10.0.tgz",
+ "integrity": "sha512-GFJh9hV8rIC9yXAuLGGKjQRVs8IOQOINBbaTNO+FJUWWWHlo5pDEKAoGYuysz5TBGoT3Lexz8bMfdkuHMa3uIQ==",
"dependencies": {
"@comunica/types": "^2.10.0"
}
},
"node_modules/@comunica/mediator-all": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/mediator-all/-/mediator-all-2.10.0.tgz",
+ "integrity": "sha512-y1+A+sIW462G8iPzi6BSPIb4I9iy08ZruM2Thf1or6sytwLKro7E2RYjS6IdupwfFYafXXCeT85+lrJgTKERhQ==",
"dependencies": {
"@comunica/core": "^2.10.0"
}
},
"node_modules/@comunica/mediator-combine-pipeline": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/mediator-combine-pipeline/-/mediator-combine-pipeline-2.10.0.tgz",
+ "integrity": "sha512-j7+/oUlbhKB4Rq6g9oNKU+e9cQL8U9z8tAUNhoXUSHajcr4huj0t1+riaOD109/DRWhV793ILhBDzgiZbHd7DA==",
"dependencies": {
"@comunica/core": "^2.10.0",
"@comunica/types": "^2.10.0"
@@ -2123,14 +2308,16 @@
},
"node_modules/@comunica/mediator-combine-union": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/mediator-combine-union/-/mediator-combine-union-2.10.0.tgz",
+ "integrity": "sha512-QbP4zP1i6nMDZ8teC0RoTz5E8pOpxDhWPBr1ylb2jzPUjPpMgrnbHYTondlN0Oau3SMEehItojg/LYDtPOP/GQ==",
"dependencies": {
"@comunica/core": "^2.10.0"
}
},
"node_modules/@comunica/mediator-join-coefficients-fixed": {
"version": "2.10.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/mediator-join-coefficients-fixed/-/mediator-join-coefficients-fixed-2.10.1.tgz",
+ "integrity": "sha512-HRvc0e8QDnR3sbRMMCyx9ILFA6KiUxHEqDOpt7BV3kFMWWIpBavFDwPUjLBG6sRA8o0CFu1+oVVh5fAFYZIxzQ==",
"dependencies": {
"@comunica/bus-rdf-join": "^2.10.1",
"@comunica/context-entries": "^2.10.0",
@@ -2141,35 +2328,40 @@
},
"node_modules/@comunica/mediator-number": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/mediator-number/-/mediator-number-2.10.0.tgz",
+ "integrity": "sha512-0T8D1HGTu5Sd8iKb2dBjc6VRc/U4A15TAN6m561ra9pFlP+w31kby0ZYP6WWBHBobbUsX1LCvnbRQaAC4uWwVw==",
"dependencies": {
"@comunica/core": "^2.10.0"
}
},
"node_modules/@comunica/mediator-race": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/mediator-race/-/mediator-race-2.10.0.tgz",
+ "integrity": "sha512-JiEtOLMkPnbjSLabVpE4VqDbu2ZKKnkUdATGBeWX+o+MjPw6c0hhw01RG4WY2rQhDyNl++nLQe3EowQh8xW9TA==",
"dependencies": {
"@comunica/core": "^2.10.0"
}
},
"node_modules/@comunica/mediatortype-accuracy": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/mediatortype-accuracy/-/mediatortype-accuracy-2.10.0.tgz",
+ "integrity": "sha512-u9Noai4yGACaBRGOoRZ65XoQhazKNx5QaFOX5nJ/p84Qq4g50woC2rpsncuyrXhW1j/rIc2WvIUGUfy/g6CDiw==",
"dependencies": {
"@comunica/core": "^2.10.0"
}
},
"node_modules/@comunica/mediatortype-httprequests": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/mediatortype-httprequests/-/mediatortype-httprequests-2.10.0.tgz",
+ "integrity": "sha512-uPjs/NdngHZZWomjZor6W29UeOlxganupIOa3Z6H3qdUnsSpxeoS9URXy7BICAX+4PmgebperSn18BRA+PWiSw==",
"dependencies": {
"@comunica/core": "^2.10.0"
}
},
"node_modules/@comunica/mediatortype-join-coefficients": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/mediatortype-join-coefficients/-/mediatortype-join-coefficients-2.10.0.tgz",
+ "integrity": "sha512-EPipAV5PDNeEVXbsd+8NsqNKu5ztCAoEJ3azcFAmD9di9ppArNJWU/mxy5yUzcBgMUX4wRp6jCa5rIF5sRHG7g==",
"dependencies": {
"@comunica/core": "^2.10.0",
"@rdfjs/types": "*"
@@ -2177,21 +2369,24 @@
},
"node_modules/@comunica/mediatortype-time": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/mediatortype-time/-/mediatortype-time-2.10.0.tgz",
+ "integrity": "sha512-nBz1exxrja1Tj8KSlSevG4Hw2u09tTh6gtNfVjI76i/e7muu4RUWVhi9b8PcwBNAfuUqRl+5OgOSa2X4W+6QlA==",
"dependencies": {
"@comunica/core": "^2.10.0"
}
},
"node_modules/@comunica/metadata": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/metadata/-/metadata-2.10.0.tgz",
+ "integrity": "sha512-PF7TKhuDIO4GE9tzuAkTxarQV5cmwXZ64hp0qm8Ql/V+dVHu/3xLL9v/Q67ZX26GF9hOyr7cdpNI08M7DHc86g==",
"dependencies": {
"@comunica/types": "^2.10.0"
}
},
"node_modules/@comunica/query-sparql": {
"version": "2.10.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/query-sparql/-/query-sparql-2.10.2.tgz",
+ "integrity": "sha512-bgjQ8N5/vP3Iy71AgDKQc06mXmEBvh7dsenw2VPbvk11iXywec4XCq8TzX+GozL+Zxxl5XyYlBw+nRjvORTGHg==",
"dependencies": {
"@comunica/actor-context-preprocess-source-to-destination": "^2.10.0",
"@comunica/actor-dereference-fallback": "^2.10.0",
@@ -2334,7 +2529,8 @@
},
"node_modules/@comunica/runner": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/runner/-/runner-2.10.0.tgz",
+ "integrity": "sha512-v/oEKT+IwjO6Y74bCCzlR+ZMI6oykpfz7GQrQbl1oTWQsvBbTdf0omPkoYnk1esEAsFnsJD+NGwAiRiFKeBo0A==",
"dependencies": {
"@comunica/bus-init": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -2347,7 +2543,8 @@
},
"node_modules/@comunica/runner-cli": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/runner-cli/-/runner-cli-2.10.0.tgz",
+ "integrity": "sha512-16QI0rWFHURCy5waVFcZ/fhKI/hyzNx5YyCGPaEaUX8MKyamvCCXHSWvPLLbjJbsjGZ9wXrC9dwwhRmbfmidpw==",
"dependencies": {
"@comunica/core": "^2.10.0",
"@comunica/runner": "^2.10.0",
@@ -2360,7 +2557,8 @@
},
"node_modules/@comunica/types": {
"version": "2.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@comunica/types/-/types-2.10.0.tgz",
+ "integrity": "sha512-1UjPGbZcYrapBjMGUZedrIGcn9rOLpEOlJo1ZkWddFUGTwndVg9d4BZnQw+UnQzXMcLJcdKt94Zns8iEmBqARw==",
"dependencies": {
"@rdfjs/types": "*",
"@types/yargs": "^17.0.24",
@@ -2370,7 +2568,8 @@
},
"node_modules/@cspotcode/source-map-support": {
"version": "0.8.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
+ "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
"dependencies": {
"@jridgewell/trace-mapping": "0.3.9"
},
@@ -2380,7 +2579,8 @@
},
"node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": {
"version": "0.3.9",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
+ "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
"dependencies": {
"@jridgewell/resolve-uri": "^3.0.3",
"@jridgewell/sourcemap-codec": "^1.4.10"
@@ -2388,13 +2588,15 @@
},
"node_modules/@cucumber/ci-environment": {
"version": "9.1.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@cucumber/ci-environment/-/ci-environment-9.1.0.tgz",
+ "integrity": "sha512-jdnF6APXP3GawMue8kdMxhu6TBhyRUO4KDRxTowf06NtclLjIw2Ybpo9IcIOMvE8kHukvJyM00uxWX+CfS7JgQ==",
+ "dev": true
},
"node_modules/@cucumber/cucumber": {
"version": "8.11.1",
+ "resolved": "https://registry.npmjs.org/@cucumber/cucumber/-/cucumber-8.11.1.tgz",
+ "integrity": "sha512-C+wdypoSzHA48GCRorJCAZYuxXo1RSESukAmoz/JhGV7KB4pIlg9Y2aWeZKx6bJQkq8yq4+S4jg9f8FGCdc3jQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@cucumber/ci-environment": "9.1.0",
"@cucumber/cucumber-expressions": "16.1.1",
@@ -2445,16 +2647,18 @@
},
"node_modules/@cucumber/cucumber-expressions": {
"version": "16.1.1",
+ "resolved": "https://registry.npmjs.org/@cucumber/cucumber-expressions/-/cucumber-expressions-16.1.1.tgz",
+ "integrity": "sha512-Ugsb9qxfgrgfUKsGvbx0awVk+69NIFjWfxNT+dnm62YrF2gdTHYxAOzOLuPgvE0yqYTh+3otrFLDDfkHGThM1g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"regexp-match-indices": "1.0.2"
}
},
"node_modules/@cucumber/cucumber/node_modules/lru-cache": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dev": true,
- "license": "ISC",
"dependencies": {
"yallist": "^4.0.0"
},
@@ -2464,8 +2668,9 @@
},
"node_modules/@cucumber/cucumber/node_modules/semver": {
"version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
"dev": true,
- "license": "ISC",
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -2478,21 +2683,24 @@
},
"node_modules/@cucumber/cucumber/node_modules/yallist": {
"version": "4.0.0",
- "dev": true,
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
},
"node_modules/@cucumber/gherkin": {
"version": "26.0.3",
+ "resolved": "https://registry.npmjs.org/@cucumber/gherkin/-/gherkin-26.0.3.tgz",
+ "integrity": "sha512-xwJHi//bLFEU1drIyw2yswwUHnnVWO4XcyVBbCTDs6DkSh262GkogFI/IWwChZqJfOXnPglzLGxR1DibcZsILA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@cucumber/messages": "19.1.4 - 21"
}
},
"node_modules/@cucumber/gherkin-streams": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@cucumber/gherkin-streams/-/gherkin-streams-5.0.1.tgz",
+ "integrity": "sha512-/7VkIE/ASxIP/jd4Crlp4JHXqdNFxPGQokqWqsaCCiqBiu5qHoKMxcWNlp9njVL/n9yN4S08OmY3ZR8uC5x74Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"commander": "9.1.0",
"source-map-support": "0.5.21"
@@ -2508,16 +2716,18 @@
},
"node_modules/@cucumber/gherkin-streams/node_modules/commander": {
"version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-9.1.0.tgz",
+ "integrity": "sha512-i0/MaqBtdbnJ4XQs4Pmyb+oFQl+q0lsAmokVUH92SlSw4fkeAcG3bVon+Qt7hmtF+u3Het6o4VgrcY3qAoEB6w==",
"dev": true,
- "license": "MIT",
"engines": {
"node": "^12.20.0 || >=14"
}
},
"node_modules/@cucumber/gherkin-utils": {
"version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@cucumber/gherkin-utils/-/gherkin-utils-8.0.2.tgz",
+ "integrity": "sha512-aQlziN3r3cTwprEDbLEcFoMRQajb9DTOu2OZZp5xkuNz6bjSTowSY90lHUD2pWT7jhEEckZRIREnk7MAwC2d1A==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@cucumber/gherkin": "^25.0.0",
"@cucumber/messages": "^19.1.4",
@@ -2531,16 +2741,18 @@
},
"node_modules/@cucumber/gherkin-utils/node_modules/@cucumber/gherkin": {
"version": "25.0.2",
+ "resolved": "https://registry.npmjs.org/@cucumber/gherkin/-/gherkin-25.0.2.tgz",
+ "integrity": "sha512-EdsrR33Y5GjuOoe2Kq5Y9DYwgNRtUD32H4y2hCrT6+AWo7ibUQu7H+oiWTgfVhwbkHsZmksxHSxXz/AwqqyCRQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@cucumber/messages": "^19.1.4"
}
},
"node_modules/@cucumber/gherkin-utils/node_modules/@cucumber/messages": {
"version": "19.1.4",
+ "resolved": "https://registry.npmjs.org/@cucumber/messages/-/messages-19.1.4.tgz",
+ "integrity": "sha512-Pksl0pnDz2l1+L5Ug85NlG6LWrrklN9qkMxN5Mv+1XZ3T6u580dnE6mVaxjJRdcOq4tR17Pc0RqIDZMyVY1FlA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@types/uuid": "8.3.4",
"class-transformer": "0.5.1",
@@ -2550,45 +2762,51 @@
},
"node_modules/@cucumber/gherkin-utils/node_modules/@types/uuid": {
"version": "8.3.4",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz",
+ "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==",
+ "dev": true
},
"node_modules/@cucumber/gherkin-utils/node_modules/commander": {
"version": "9.4.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz",
+ "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": "^12.20.0 || >=14"
}
},
"node_modules/@cucumber/gherkin-utils/node_modules/uuid": {
"version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
+ "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==",
"dev": true,
- "license": "MIT",
"bin": {
"uuid": "dist/bin/uuid"
}
},
"node_modules/@cucumber/html-formatter": {
"version": "20.2.1",
+ "resolved": "https://registry.npmjs.org/@cucumber/html-formatter/-/html-formatter-20.2.1.tgz",
+ "integrity": "sha512-bwwyr1WjlOJ5dEFOLGbtYWbUprloB2eymqXBmmTC10s0xapZXkFn4VfHgMshaH91XiCIY/MoabWNAau3AeMHkQ==",
"dev": true,
- "license": "MIT",
"peerDependencies": {
"@cucumber/messages": ">=18"
}
},
"node_modules/@cucumber/message-streams": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@cucumber/message-streams/-/message-streams-4.0.1.tgz",
+ "integrity": "sha512-Kxap9uP5jD8tHUZVjTWgzxemi/0uOsbGjd4LBOSxcJoOCRbESFwemUzilJuzNTB8pcTQUh8D5oudUyxfkJOKmA==",
"dev": true,
- "license": "MIT",
"peerDependencies": {
"@cucumber/messages": ">=17.1.1"
}
},
"node_modules/@cucumber/messages": {
"version": "21.0.1",
+ "resolved": "https://registry.npmjs.org/@cucumber/messages/-/messages-21.0.1.tgz",
+ "integrity": "sha512-pGR7iURM4SF9Qp1IIpNiVQ77J9kfxMkPOEbyy+zRmGABnWWCsqMpJdfHeh9Mb3VskemVw85++e15JT0PYdcR3g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@types/uuid": "8.3.4",
"class-transformer": "0.5.1",
@@ -2598,25 +2816,29 @@
},
"node_modules/@cucumber/messages/node_modules/@types/uuid": {
"version": "8.3.4",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz",
+ "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==",
+ "dev": true
},
"node_modules/@cucumber/messages/node_modules/uuid": {
"version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
+ "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==",
"dev": true,
- "license": "MIT",
"bin": {
"uuid": "dist/bin/uuid"
}
},
"node_modules/@cucumber/tag-expressions": {
"version": "5.0.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@cucumber/tag-expressions/-/tag-expressions-5.0.1.tgz",
+ "integrity": "sha512-N43uWud8ZXuVjza423T9ZCIJsaZhFekmakt7S9bvogTxqdVGbRobjR663s0+uW0Rz9e+Pa8I6jUuWtoBLQD2Mw==",
+ "dev": true
},
"node_modules/@dabh/diagnostics": {
"version": "2.0.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz",
+ "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==",
"dependencies": {
"colorspace": "1.1.x",
"enabled": "2.0.x",
@@ -2625,7 +2847,8 @@
},
"node_modules/@digitalbazaar/http-client": {
"version": "3.4.1",
- "license": "BSD-3-Clause",
+ "resolved": "https://registry.npmjs.org/@digitalbazaar/http-client/-/http-client-3.4.1.tgz",
+ "integrity": "sha512-Ahk1N+s7urkgj7WvvUND5f8GiWEPfUw0D41hdElaqLgu8wZScI8gdI0q+qWw5N1d35x7GCRH2uk9mi+Uzo9M3g==",
"dependencies": {
"ky": "^0.33.3",
"ky-universal": "^0.11.0",
@@ -2637,7 +2860,8 @@
},
"node_modules/@eslint-community/eslint-utils": {
"version": "4.4.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz",
+ "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==",
"dependencies": {
"eslint-visitor-keys": "^3.4.3"
},
@@ -2653,14 +2877,16 @@
},
"node_modules/@eslint-community/regexpp": {
"version": "4.12.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
+ "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
"engines": {
"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
}
},
"node_modules/@eslint/eslintrc": {
"version": "2.1.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
+ "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
@@ -2681,15 +2907,17 @@
},
"node_modules/@eslint/js": {
"version": "8.57.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
+ "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
"node_modules/@ethereumjs/common": {
"version": "2.6.5",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz",
+ "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"crc-32": "^1.2.0",
"ethereumjs-util": "^7.1.5"
@@ -2697,8 +2925,9 @@
},
"node_modules/@ethereumjs/common/node_modules/ethereum-cryptography": {
"version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
+ "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@types/pbkdf2": "^3.0.0",
"@types/secp256k1": "^4.0.1",
@@ -2719,8 +2948,9 @@
},
"node_modules/@ethereumjs/common/node_modules/ethereumjs-util": {
"version": "7.1.5",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz",
+ "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==",
"dev": true,
- "license": "MPL-2.0",
"dependencies": {
"@types/bn.js": "^5.1.0",
"bn.js": "^5.1.2",
@@ -2734,7 +2964,8 @@
},
"node_modules/@ethereumjs/rlp": {
"version": "4.0.1",
- "license": "MPL-2.0",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz",
+ "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==",
"bin": {
"rlp": "bin/rlp"
},
@@ -2744,8 +2975,9 @@
},
"node_modules/@ethereumjs/tx": {
"version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz",
+ "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==",
"dev": true,
- "license": "MPL-2.0",
"dependencies": {
"@ethereumjs/common": "^2.6.4",
"ethereumjs-util": "^7.1.5"
@@ -2753,8 +2985,9 @@
},
"node_modules/@ethereumjs/tx/node_modules/ethereum-cryptography": {
"version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
+ "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@types/pbkdf2": "^3.0.0",
"@types/secp256k1": "^4.0.1",
@@ -2775,8 +3008,9 @@
},
"node_modules/@ethereumjs/tx/node_modules/ethereumjs-util": {
"version": "7.1.5",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz",
+ "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==",
"dev": true,
- "license": "MPL-2.0",
"dependencies": {
"@types/bn.js": "^5.1.0",
"bn.js": "^5.1.2",
@@ -2790,7 +3024,8 @@
},
"node_modules/@ethereumjs/util": {
"version": "8.1.0",
- "license": "MPL-2.0",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz",
+ "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==",
"dependencies": {
"@ethereumjs/rlp": "^4.0.1",
"ethereum-cryptography": "^2.0.0",
@@ -2802,7 +3037,8 @@
},
"node_modules/@ethereumjs/util/node_modules/@noble/hashes": {
"version": "1.4.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz",
+ "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==",
"engines": {
"node": ">= 16"
},
@@ -2812,14 +3048,16 @@
},
"node_modules/@ethereumjs/util/node_modules/@scure/base": {
"version": "1.1.9",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz",
+ "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==",
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/@ethereumjs/util/node_modules/@scure/bip32": {
"version": "1.4.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz",
+ "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==",
"dependencies": {
"@noble/curves": "~1.4.0",
"@noble/hashes": "~1.4.0",
@@ -2831,7 +3069,8 @@
},
"node_modules/@ethereumjs/util/node_modules/@scure/bip39": {
"version": "1.3.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz",
+ "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==",
"dependencies": {
"@noble/hashes": "~1.4.0",
"@scure/base": "~1.1.6"
@@ -2842,7 +3081,8 @@
},
"node_modules/@ethereumjs/util/node_modules/ethereum-cryptography": {
"version": "2.2.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz",
+ "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==",
"dependencies": {
"@noble/curves": "1.4.2",
"@noble/hashes": "1.4.0",
@@ -2852,6 +3092,8 @@
},
"node_modules/@ethersproject/abi": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz",
+ "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==",
"funding": [
{
"type": "individual",
@@ -2862,7 +3104,6 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/address": "^5.7.0",
"@ethersproject/bignumber": "^5.7.0",
@@ -2877,6 +3118,8 @@
},
"node_modules/@ethersproject/abstract-provider": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz",
+ "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==",
"funding": [
{
"type": "individual",
@@ -2887,7 +3130,6 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/bignumber": "^5.7.0",
"@ethersproject/bytes": "^5.7.0",
@@ -2900,6 +3142,8 @@
},
"node_modules/@ethersproject/abstract-signer": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz",
+ "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==",
"funding": [
{
"type": "individual",
@@ -2910,7 +3154,6 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/abstract-provider": "^5.7.0",
"@ethersproject/bignumber": "^5.7.0",
@@ -2921,6 +3164,8 @@
},
"node_modules/@ethersproject/address": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz",
+ "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==",
"funding": [
{
"type": "individual",
@@ -2931,7 +3176,6 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/bignumber": "^5.7.0",
"@ethersproject/bytes": "^5.7.0",
@@ -2942,6 +3186,8 @@
},
"node_modules/@ethersproject/base64": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz",
+ "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==",
"funding": [
{
"type": "individual",
@@ -2952,13 +3198,14 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/bytes": "^5.7.0"
}
},
"node_modules/@ethersproject/basex": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz",
+ "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==",
"funding": [
{
"type": "individual",
@@ -2969,7 +3216,6 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/properties": "^5.7.0"
@@ -2977,6 +3223,8 @@
},
"node_modules/@ethersproject/bignumber": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz",
+ "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==",
"funding": [
{
"type": "individual",
@@ -2987,7 +3235,6 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/logger": "^5.7.0",
@@ -2996,6 +3243,8 @@
},
"node_modules/@ethersproject/bytes": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz",
+ "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==",
"funding": [
{
"type": "individual",
@@ -3006,13 +3255,14 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/logger": "^5.7.0"
}
},
"node_modules/@ethersproject/constants": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz",
+ "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==",
"funding": [
{
"type": "individual",
@@ -3023,13 +3273,14 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/bignumber": "^5.7.0"
}
},
"node_modules/@ethersproject/contracts": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz",
+ "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==",
"funding": [
{
"type": "individual",
@@ -3040,7 +3291,6 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/abi": "^5.7.0",
"@ethersproject/abstract-provider": "^5.7.0",
@@ -3056,6 +3306,8 @@
},
"node_modules/@ethersproject/hash": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz",
+ "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==",
"funding": [
{
"type": "individual",
@@ -3066,7 +3318,6 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/abstract-signer": "^5.7.0",
"@ethersproject/address": "^5.7.0",
@@ -3081,6 +3332,8 @@
},
"node_modules/@ethersproject/hdnode": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz",
+ "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==",
"funding": [
{
"type": "individual",
@@ -3091,7 +3344,6 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/abstract-signer": "^5.7.0",
"@ethersproject/basex": "^5.7.0",
@@ -3109,6 +3361,8 @@
},
"node_modules/@ethersproject/json-wallets": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz",
+ "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==",
"funding": [
{
"type": "individual",
@@ -3119,7 +3373,6 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/abstract-signer": "^5.7.0",
"@ethersproject/address": "^5.7.0",
@@ -3138,6 +3391,8 @@
},
"node_modules/@ethersproject/keccak256": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz",
+ "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==",
"funding": [
{
"type": "individual",
@@ -3148,7 +3403,6 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/bytes": "^5.7.0",
"js-sha3": "0.8.0"
@@ -3156,6 +3410,8 @@
},
"node_modules/@ethersproject/logger": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz",
+ "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==",
"funding": [
{
"type": "individual",
@@ -3165,11 +3421,12 @@
"type": "individual",
"url": "https://www.buymeacoffee.com/ricmoo"
}
- ],
- "license": "MIT"
+ ]
},
"node_modules/@ethersproject/networks": {
"version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz",
+ "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==",
"funding": [
{
"type": "individual",
@@ -3180,13 +3437,14 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/logger": "^5.7.0"
}
},
"node_modules/@ethersproject/pbkdf2": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz",
+ "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==",
"funding": [
{
"type": "individual",
@@ -3197,7 +3455,6 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/sha2": "^5.7.0"
@@ -3205,6 +3462,8 @@
},
"node_modules/@ethersproject/properties": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz",
+ "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==",
"funding": [
{
"type": "individual",
@@ -3215,13 +3474,14 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/logger": "^5.7.0"
}
},
"node_modules/@ethersproject/providers": {
"version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz",
+ "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==",
"funding": [
{
"type": "individual",
@@ -3232,7 +3492,6 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/abstract-provider": "^5.7.0",
"@ethersproject/abstract-signer": "^5.7.0",
@@ -3258,7 +3517,8 @@
},
"node_modules/@ethersproject/providers/node_modules/ws": {
"version": "7.4.6",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
+ "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
"engines": {
"node": ">=8.3.0"
},
@@ -3277,6 +3537,8 @@
},
"node_modules/@ethersproject/random": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz",
+ "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==",
"funding": [
{
"type": "individual",
@@ -3287,7 +3549,6 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/logger": "^5.7.0"
@@ -3295,6 +3556,8 @@
},
"node_modules/@ethersproject/rlp": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz",
+ "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==",
"funding": [
{
"type": "individual",
@@ -3305,7 +3568,6 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/logger": "^5.7.0"
@@ -3313,6 +3575,8 @@
},
"node_modules/@ethersproject/sha2": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz",
+ "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==",
"funding": [
{
"type": "individual",
@@ -3323,7 +3587,6 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/logger": "^5.7.0",
@@ -3332,6 +3595,8 @@
},
"node_modules/@ethersproject/signing-key": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz",
+ "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==",
"funding": [
{
"type": "individual",
@@ -3342,7 +3607,6 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/logger": "^5.7.0",
@@ -3354,6 +3618,8 @@
},
"node_modules/@ethersproject/solidity": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz",
+ "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==",
"funding": [
{
"type": "individual",
@@ -3364,7 +3630,6 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/bignumber": "^5.7.0",
"@ethersproject/bytes": "^5.7.0",
@@ -3376,6 +3641,8 @@
},
"node_modules/@ethersproject/strings": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz",
+ "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==",
"funding": [
{
"type": "individual",
@@ -3386,7 +3653,6 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/constants": "^5.7.0",
@@ -3395,6 +3661,8 @@
},
"node_modules/@ethersproject/transactions": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz",
+ "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==",
"funding": [
{
"type": "individual",
@@ -3405,7 +3673,6 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/address": "^5.7.0",
"@ethersproject/bignumber": "^5.7.0",
@@ -3420,6 +3687,8 @@
},
"node_modules/@ethersproject/units": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz",
+ "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==",
"funding": [
{
"type": "individual",
@@ -3430,7 +3699,6 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/bignumber": "^5.7.0",
"@ethersproject/constants": "^5.7.0",
@@ -3439,6 +3707,8 @@
},
"node_modules/@ethersproject/wallet": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz",
+ "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==",
"funding": [
{
"type": "individual",
@@ -3449,7 +3719,6 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/abstract-provider": "^5.7.0",
"@ethersproject/abstract-signer": "^5.7.0",
@@ -3470,6 +3739,8 @@
},
"node_modules/@ethersproject/web": {
"version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz",
+ "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==",
"funding": [
{
"type": "individual",
@@ -3480,7 +3751,6 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/base64": "^5.7.0",
"@ethersproject/bytes": "^5.7.0",
@@ -3491,6 +3761,8 @@
},
"node_modules/@ethersproject/wordlists": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz",
+ "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==",
"funding": [
{
"type": "individual",
@@ -3501,7 +3773,6 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/hash": "^5.7.0",
@@ -3512,14 +3783,23 @@
},
"node_modules/@fastify/busboy": {
"version": "2.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz",
+ "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==",
"engines": {
"node": ">=14"
}
},
+ "node_modules/@gar/promisify": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz",
+ "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==",
+ "optional": true
+ },
"node_modules/@humanwhocodes/config-array": {
"version": "0.13.0",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
+ "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==",
+ "deprecated": "Use @eslint/config-array instead",
"dependencies": {
"@humanwhocodes/object-schema": "^2.0.3",
"debug": "^4.3.1",
@@ -3531,7 +3811,8 @@
},
"node_modules/@humanwhocodes/module-importer": {
"version": "1.0.1",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
"engines": {
"node": ">=12.22"
},
@@ -3542,12 +3823,15 @@
},
"node_modules/@humanwhocodes/object-schema": {
"version": "2.0.3",
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
+ "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
+ "deprecated": "Use @eslint/object-schema instead"
},
"node_modules/@istanbuljs/load-nyc-config": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
+ "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
"dev": true,
- "license": "ISC",
"dependencies": {
"camelcase": "^5.3.1",
"find-up": "^4.1.0",
@@ -3561,24 +3845,27 @@
},
"node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": {
"version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"sprintf-js": "~1.0.2"
}
},
"node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": {
"version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
@@ -3589,8 +3876,9 @@
},
"node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": {
"version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
@@ -3601,8 +3889,9 @@
},
"node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"p-locate": "^4.1.0"
},
@@ -3612,8 +3901,9 @@
},
"node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"p-try": "^2.0.0"
},
@@ -3626,8 +3916,9 @@
},
"node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"dev": true,
- "license": "MIT",
"dependencies": {
"p-limit": "^2.2.0"
},
@@ -3637,28 +3928,32 @@
},
"node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@istanbuljs/load-nyc-config/node_modules/sprintf-js": {
"version": "1.0.3",
- "dev": true,
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "dev": true
},
"node_modules/@istanbuljs/schema": {
"version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
+ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@jeswr/prefixcc": {
"version": "1.2.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@jeswr/prefixcc/-/prefixcc-1.2.1.tgz",
+ "integrity": "sha512-kBBXbqsaeh3Irp416h/RbelqJgIOp6X/OJJlYmLyr/9qlBYKTKSCuEv5/xjZ0Yf8Yec+QFRYBaOQ2JkMBSH7KA==",
"dependencies": {
"cross-fetch": "^3.1.5"
},
@@ -3668,14 +3963,16 @@
},
"node_modules/@jeswr/prefixcc/node_modules/cross-fetch": {
"version": "3.1.8",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz",
+ "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==",
"dependencies": {
"node-fetch": "^2.6.12"
}
},
"node_modules/@jeswr/prefixcc/node_modules/node-fetch": {
"version": "2.7.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
"dependencies": {
"whatwg-url": "^5.0.0"
},
@@ -3693,24 +3990,28 @@
},
"node_modules/@jeswr/prefixcc/node_modules/tr46": {
"version": "0.0.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
"node_modules/@jeswr/prefixcc/node_modules/webidl-conversions": {
"version": "3.0.1",
- "license": "BSD-2-Clause"
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
},
"node_modules/@jeswr/prefixcc/node_modules/whatwg-url": {
"version": "5.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
"dependencies": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"
}
},
"node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.5",
+ "version": "0.3.8",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz",
+ "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@jridgewell/set-array": "^1.2.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
@@ -3722,27 +4023,31 @@
},
"node_modules/@jridgewell/resolve-uri": {
"version": "3.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/set-array": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.5.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="
},
"node_modules/@jridgewell/trace-mapping": {
"version": "0.3.25",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@jridgewell/resolve-uri": "^3.1.0",
"@jridgewell/sourcemap-codec": "^1.4.14"
@@ -3750,7 +4055,8 @@
},
"node_modules/@metamask/eth-sig-util": {
"version": "4.0.1",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz",
+ "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==",
"dependencies": {
"ethereumjs-abi": "^0.6.8",
"ethereumjs-util": "^6.2.1",
@@ -3764,7 +4070,8 @@
},
"node_modules/@motrix/nat-api": {
"version": "0.3.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@motrix/nat-api/-/nat-api-0.3.4.tgz",
+ "integrity": "sha512-RIH5sSP329Xn8TjDcAHYHn82VTajhdu2Ee4PTLA+9jCAi5x0D219D1XYW7nCK22ptcLrC+qzBXlWG/j16iuoLQ==",
"dependencies": {
"async": "^3.2.4",
"debug": "^4.3.4",
@@ -3779,7 +4086,8 @@
},
"node_modules/@motrix/nat-api/node_modules/node-fetch": {
"version": "2.7.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
"dependencies": {
"whatwg-url": "^5.0.0"
},
@@ -3797,15 +4105,18 @@
},
"node_modules/@motrix/nat-api/node_modules/tr46": {
"version": "0.0.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
"node_modules/@motrix/nat-api/node_modules/webidl-conversions": {
"version": "3.0.1",
- "license": "BSD-2-Clause"
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
},
"node_modules/@motrix/nat-api/node_modules/whatwg-url": {
"version": "5.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
"dependencies": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"
@@ -3813,7 +4124,8 @@
},
"node_modules/@noble/curves": {
"version": "1.4.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz",
+ "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==",
"dependencies": {
"@noble/hashes": "1.4.0"
},
@@ -3823,7 +4135,8 @@
},
"node_modules/@noble/curves/node_modules/@noble/hashes": {
"version": "1.4.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz",
+ "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==",
"engines": {
"node": ">= 16"
},
@@ -3833,27 +4146,30 @@
},
"node_modules/@noble/hashes": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz",
+ "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==",
"funding": [
{
"type": "individual",
"url": "https://paulmillr.com/funding/"
}
- ],
- "license": "MIT"
+ ]
},
"node_modules/@noble/secp256k1": {
"version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz",
+ "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==",
"funding": [
{
"type": "individual",
"url": "https://paulmillr.com/funding/"
}
- ],
- "license": "MIT"
+ ]
},
"node_modules/@nodelib/fs.scandir": {
"version": "2.1.5",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
"dependencies": {
"@nodelib/fs.stat": "2.0.5",
"run-parallel": "^1.1.9"
@@ -3864,14 +4180,16 @@
},
"node_modules/@nodelib/fs.stat": {
"version": "2.0.5",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
"engines": {
"node": ">= 8"
}
},
"node_modules/@nodelib/fs.walk": {
"version": "1.2.8",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
"dependencies": {
"@nodelib/fs.scandir": "2.1.5",
"fastq": "^1.6.0"
@@ -3882,7 +4200,8 @@
},
"node_modules/@nomicfoundation/edr": {
"version": "0.6.5",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr/-/edr-0.6.5.tgz",
+ "integrity": "sha512-tAqMslLP+/2b2sZP4qe9AuGxG3OkQ5gGgHE4isUuq6dUVjwCRPFhAOhpdFl+OjY5P3yEv3hmq9HjUGRa2VNjng==",
"dependencies": {
"@nomicfoundation/edr-darwin-arm64": "0.6.5",
"@nomicfoundation/edr-darwin-x64": "0.6.5",
@@ -3898,63 +4217,72 @@
},
"node_modules/@nomicfoundation/edr-darwin-arm64": {
"version": "0.6.5",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.6.5.tgz",
+ "integrity": "sha512-A9zCCbbNxBpLgjS1kEJSpqxIvGGAX4cYbpDYCU2f3jVqOwaZ/NU761y1SvuCRVpOwhoCXqByN9b7HPpHi0L4hw==",
"engines": {
"node": ">= 18"
}
},
"node_modules/@nomicfoundation/edr-darwin-x64": {
"version": "0.6.5",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.6.5.tgz",
+ "integrity": "sha512-x3zBY/v3R0modR5CzlL6qMfFMdgwd6oHrWpTkuuXnPFOX8SU31qq87/230f4szM+ukGK8Hi+mNq7Ro2VF4Fj+w==",
"engines": {
"node": ">= 18"
}
},
"node_modules/@nomicfoundation/edr-linux-arm64-gnu": {
"version": "0.6.5",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.6.5.tgz",
+ "integrity": "sha512-HGpB8f1h8ogqPHTyUpyPRKZxUk2lu061g97dOQ/W4CxevI0s/qiw5DB3U3smLvSnBHKOzYS1jkxlMeGN01ky7A==",
"engines": {
"node": ">= 18"
}
},
"node_modules/@nomicfoundation/edr-linux-arm64-musl": {
"version": "0.6.5",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.6.5.tgz",
+ "integrity": "sha512-ESvJM5Y9XC03fZg9KaQg3Hl+mbx7dsSkTIAndoJS7X2SyakpL9KZpOSYrDk135o8s9P9lYJdPOyiq+Sh+XoCbQ==",
"engines": {
"node": ">= 18"
}
},
"node_modules/@nomicfoundation/edr-linux-x64-gnu": {
"version": "0.6.5",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.6.5.tgz",
+ "integrity": "sha512-HCM1usyAR1Ew6RYf5AkMYGvHBy64cPA5NMbaeY72r0mpKaH3txiMyydcHibByOGdQ8iFLWpyUdpl1egotw+Tgg==",
"engines": {
"node": ">= 18"
}
},
"node_modules/@nomicfoundation/edr-linux-x64-musl": {
"version": "0.6.5",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.6.5.tgz",
+ "integrity": "sha512-nB2uFRyczhAvWUH7NjCsIO6rHnQrof3xcCe6Mpmnzfl2PYcGyxN7iO4ZMmRcQS7R1Y670VH6+8ZBiRn8k43m7A==",
"engines": {
"node": ">= 18"
}
},
"node_modules/@nomicfoundation/edr-win32-x64-msvc": {
"version": "0.6.5",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.6.5.tgz",
+ "integrity": "sha512-B9QD/4DSSCFtWicO8A3BrsnitO1FPv7axB62wq5Q+qeJ50yJlTmyeGY3cw62gWItdvy2mh3fRM6L1LpnHiB77A==",
"engines": {
"node": ">= 18"
}
},
"node_modules/@nomicfoundation/ethereumjs-common": {
"version": "4.0.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.4.tgz",
+ "integrity": "sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg==",
"dependencies": {
"@nomicfoundation/ethereumjs-util": "9.0.4"
}
},
"node_modules/@nomicfoundation/ethereumjs-rlp": {
"version": "5.0.4",
- "license": "MPL-2.0",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.4.tgz",
+ "integrity": "sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw==",
"bin": {
"rlp": "bin/rlp.cjs"
},
@@ -3964,7 +4292,8 @@
},
"node_modules/@nomicfoundation/ethereumjs-tx": {
"version": "5.0.4",
- "license": "MPL-2.0",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.4.tgz",
+ "integrity": "sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw==",
"dependencies": {
"@nomicfoundation/ethereumjs-common": "4.0.4",
"@nomicfoundation/ethereumjs-rlp": "5.0.4",
@@ -3985,7 +4314,8 @@
},
"node_modules/@nomicfoundation/ethereumjs-tx/node_modules/ethereum-cryptography": {
"version": "0.1.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
+ "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
"dependencies": {
"@types/pbkdf2": "^3.0.0",
"@types/secp256k1": "^4.0.1",
@@ -4006,7 +4336,8 @@
},
"node_modules/@nomicfoundation/ethereumjs-util": {
"version": "9.0.4",
- "license": "MPL-2.0",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.4.tgz",
+ "integrity": "sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q==",
"dependencies": {
"@nomicfoundation/ethereumjs-rlp": "5.0.4",
"ethereum-cryptography": "0.1.3"
@@ -4025,7 +4356,8 @@
},
"node_modules/@nomicfoundation/ethereumjs-util/node_modules/ethereum-cryptography": {
"version": "0.1.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
+ "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
"dependencies": {
"@types/pbkdf2": "^3.0.0",
"@types/secp256k1": "^4.0.1",
@@ -4046,7 +4378,8 @@
},
"node_modules/@nomicfoundation/solidity-analyzer": {
"version": "0.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.2.tgz",
+ "integrity": "sha512-q4n32/FNKIhQ3zQGGw5CvPF6GTvDCpYwIf7bEY/dZTZbgfDsHyjJwURxUJf3VQuuJj+fDIFl4+KkBVbw4Ef6jA==",
"engines": {
"node": ">= 12"
},
@@ -4062,7 +4395,8 @@
},
"node_modules/@nomicfoundation/solidity-analyzer-darwin-arm64": {
"version": "0.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.2.tgz",
+ "integrity": "sha512-JaqcWPDZENCvm++lFFGjrDd8mxtf+CtLd2MiXvMNTBD33dContTZ9TWETwNFwg7JTJT5Q9HEecH7FA+HTSsIUw==",
"optional": true,
"engines": {
"node": ">= 12"
@@ -4070,7 +4404,8 @@
},
"node_modules/@nomicfoundation/solidity-analyzer-darwin-x64": {
"version": "0.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.2.tgz",
+ "integrity": "sha512-fZNmVztrSXC03e9RONBT+CiksSeYcxI1wlzqyr0L7hsQlK1fzV+f04g2JtQ1c/Fe74ZwdV6aQBdd6Uwl1052sw==",
"optional": true,
"engines": {
"node": ">= 12"
@@ -4078,7 +4413,8 @@
},
"node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-gnu": {
"version": "0.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.2.tgz",
+ "integrity": "sha512-3d54oc+9ZVBuB6nbp8wHylk4xh0N0Gc+bk+/uJae+rUgbOBwQSfuGIbAZt1wBXs5REkSmynEGcqx6DutoK0tPA==",
"optional": true,
"engines": {
"node": ">= 12"
@@ -4086,7 +4422,8 @@
},
"node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-musl": {
"version": "0.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.2.tgz",
+ "integrity": "sha512-iDJfR2qf55vgsg7BtJa7iPiFAsYf2d0Tv/0B+vhtnI16+wfQeTbP7teookbGvAo0eJo7aLLm0xfS/GTkvHIucA==",
"optional": true,
"engines": {
"node": ">= 12"
@@ -4094,7 +4431,8 @@
},
"node_modules/@nomicfoundation/solidity-analyzer-linux-x64-gnu": {
"version": "0.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.2.tgz",
+ "integrity": "sha512-9dlHMAt5/2cpWyuJ9fQNOUXFB/vgSFORg1jpjX1Mh9hJ/MfZXlDdHQ+DpFCs32Zk5pxRBb07yGvSHk9/fezL+g==",
"optional": true,
"engines": {
"node": ">= 12"
@@ -4102,7 +4440,8 @@
},
"node_modules/@nomicfoundation/solidity-analyzer-linux-x64-musl": {
"version": "0.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.2.tgz",
+ "integrity": "sha512-GzzVeeJob3lfrSlDKQw2bRJ8rBf6mEYaWY+gW0JnTDHINA0s2gPR4km5RLIj1xeZZOYz4zRw+AEeYgLRqB2NXg==",
"optional": true,
"engines": {
"node": ">= 12"
@@ -4110,29 +4449,73 @@
},
"node_modules/@nomicfoundation/solidity-analyzer-win32-x64-msvc": {
"version": "0.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.2.tgz",
+ "integrity": "sha512-Fdjli4DCcFHb4Zgsz0uEJXZ2K7VEO+w5KVv7HmT7WO10iODdU9csC2az4jrhEsRtiR9Gfd74FlG0NYlw1BMdyA==",
"optional": true,
"engines": {
"node": ">= 12"
}
},
+ "node_modules/@npmcli/fs": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz",
+ "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==",
+ "optional": true,
+ "dependencies": {
+ "@gar/promisify": "^1.0.1",
+ "semver": "^7.3.5"
+ }
+ },
+ "node_modules/@npmcli/move-file": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz",
+ "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==",
+ "deprecated": "This functionality has been moved to @npmcli/fs",
+ "optional": true,
+ "dependencies": {
+ "mkdirp": "^1.0.4",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@npmcli/move-file/node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "optional": true,
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/@openzeppelin/contracts": {
"version": "4.9.6",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.6.tgz",
+ "integrity": "sha512-xSmezSupL+y9VkHZJGDoCBpmnB2ogM13ccaYDWqJTfS3dbuHkgjuwDFUmaFauBCboQMGB/S5UqUl2y54X99BmA==",
+ "dev": true
},
"node_modules/@polkadot-api/json-rpc-provider": {
"version": "0.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@polkadot-api/json-rpc-provider/-/json-rpc-provider-0.0.1.tgz",
+ "integrity": "sha512-/SMC/l7foRjpykLTUTacIH05H3mr9ip8b5xxfwXlVezXrNVLp3Cv0GX6uItkKd+ZjzVPf3PFrDF2B2/HLSNESA==",
"optional": true
},
"node_modules/@polkadot-api/json-rpc-provider-proxy": {
"version": "0.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@polkadot-api/json-rpc-provider-proxy/-/json-rpc-provider-proxy-0.0.1.tgz",
+ "integrity": "sha512-gmVDUP8LpCH0BXewbzqXF2sdHddq1H1q+XrAW2of+KZj4woQkIGBRGTJHeBEVHe30EB+UejR1N2dT4PO/RvDdg==",
+ "dev": true,
"optional": true
},
"node_modules/@polkadot-api/metadata-builders": {
"version": "0.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@polkadot-api/metadata-builders/-/metadata-builders-0.0.1.tgz",
+ "integrity": "sha512-GCI78BHDzXAF/L2pZD6Aod/yl82adqQ7ftNmKg51ixRL02JpWUA+SpUKTJE5MY1p8kiJJIo09P2um24SiJHxNA==",
+ "dev": true,
"optional": true,
"dependencies": {
"@polkadot-api/substrate-bindings": "0.0.1",
@@ -4141,7 +4524,9 @@
},
"node_modules/@polkadot-api/observable-client": {
"version": "0.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@polkadot-api/observable-client/-/observable-client-0.1.0.tgz",
+ "integrity": "sha512-GBCGDRztKorTLna/unjl/9SWZcRmvV58o9jwU2Y038VuPXZcr01jcw/1O3x+yeAuwyGzbucI/mLTDa1QoEml3A==",
+ "dev": true,
"optional": true,
"dependencies": {
"@polkadot-api/metadata-builders": "0.0.1",
@@ -4155,7 +4540,9 @@
},
"node_modules/@polkadot-api/substrate-bindings": {
"version": "0.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@polkadot-api/substrate-bindings/-/substrate-bindings-0.0.1.tgz",
+ "integrity": "sha512-bAe7a5bOPnuFVmpv7y4BBMRpNTnMmE0jtTqRUw/+D8ZlEHNVEJQGr4wu3QQCl7k1GnSV1wfv3mzIbYjErEBocg==",
+ "dev": true,
"optional": true,
"dependencies": {
"@noble/hashes": "^1.3.1",
@@ -4166,7 +4553,9 @@
},
"node_modules/@polkadot-api/substrate-bindings/node_modules/@noble/hashes": {
"version": "1.6.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.6.1.tgz",
+ "integrity": "sha512-pq5D8h10hHBjyqX+cfBm0i8JUXJ0UhczFc4r74zbuT9XgewFo2E3J1cOaGtdZynILNmQ685YWGzGE1Zv6io50w==",
+ "dev": true,
"optional": true,
"engines": {
"node": "^14.21.3 || >=16"
@@ -4177,17 +4566,22 @@
},
"node_modules/@polkadot-api/substrate-client": {
"version": "0.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@polkadot-api/substrate-client/-/substrate-client-0.0.1.tgz",
+ "integrity": "sha512-9Bg9SGc3AwE+wXONQoW8GC00N3v6lCZLW74HQzqB6ROdcm5VAHM4CB/xRzWSUF9CXL78ugiwtHx3wBcpx4H4Wg==",
+ "dev": true,
"optional": true
},
"node_modules/@polkadot-api/utils": {
"version": "0.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@polkadot-api/utils/-/utils-0.0.1.tgz",
+ "integrity": "sha512-3j+pRmlF9SgiYDabSdZsBSsN5XHbpXOAce1lWj56IEEaFZVjsiCaxDOA7C9nCcgfVXuvnbxqqEGQvnY+QfBAUw==",
+ "dev": true,
"optional": true
},
"node_modules/@polkadot/api": {
"version": "9.14.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-9.14.2.tgz",
+ "integrity": "sha512-R3eYFj2JgY1zRb+OCYQxNlJXCs2FA+AU4uIEiVcXnVLmR3M55tkRNEwYAZmiFxx0pQmegGgPMc33q7TWGdw24A==",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@polkadot/api-augment": "9.14.2",
@@ -4213,7 +4607,8 @@
},
"node_modules/@polkadot/api-augment": {
"version": "9.14.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-9.14.2.tgz",
+ "integrity": "sha512-19MmW8AHEcLkdcUIo3LLk0eCQgREWqNSxkUyOeWn7UiNMY1AhDOOwMStUBNCvrIDK6VL6GGc1sY7rkPCLMuKSw==",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@polkadot/api-base": "9.14.2",
@@ -4229,7 +4624,8 @@
},
"node_modules/@polkadot/api-base": {
"version": "9.14.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/api-base/-/api-base-9.14.2.tgz",
+ "integrity": "sha512-ky9fmzG1Tnrjr/SBZ0aBB21l0TFr+CIyQenQczoUyVgiuxVaI/2Bp6R2SFrHhG28P+PW2/RcYhn2oIAR2Z2fZQ==",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@polkadot/rpc-core": "9.14.2",
@@ -4243,7 +4639,8 @@
},
"node_modules/@polkadot/api-derive": {
"version": "9.14.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-9.14.2.tgz",
+ "integrity": "sha512-yw9OXucmeggmFqBTMgza0uZwhNjPxS7MaT7lSCUIRKckl1GejdV+qMhL3XFxPFeYzXwzFpdPG11zWf+qJlalqw==",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@polkadot/api": "9.14.2",
@@ -4262,7 +4659,8 @@
},
"node_modules/@polkadot/keyring": {
"version": "10.4.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-10.4.2.tgz",
+ "integrity": "sha512-7iHhJuXaHrRTG6cJDbZE9G+c1ts1dujp0qbO4RfAPmT7YUvphHvAtCKueN9UKPz5+TYDL+rP/jDEaSKU8jl/qQ==",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@polkadot/util": "10.4.2",
@@ -4278,7 +4676,8 @@
},
"node_modules/@polkadot/networks": {
"version": "10.4.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/networks/-/networks-10.4.2.tgz",
+ "integrity": "sha512-FAh/znrEvWBiA/LbcT5GXHsCFUl//y9KqxLghSr/CreAmAergiJNT0MVUezC7Y36nkATgmsr4ylFwIxhVtuuCw==",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@polkadot/util": "10.4.2",
@@ -4290,7 +4689,8 @@
},
"node_modules/@polkadot/rpc-augment": {
"version": "9.14.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-9.14.2.tgz",
+ "integrity": "sha512-mOubRm3qbKZTbP9H01XRrfTk7k5it9WyzaWAg72DJBQBYdgPUUkGSgpPD/Srkk5/5GAQTWVWL1I2UIBKJ4TJjQ==",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@polkadot/rpc-core": "9.14.2",
@@ -4304,7 +4704,8 @@
},
"node_modules/@polkadot/rpc-core": {
"version": "9.14.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-9.14.2.tgz",
+ "integrity": "sha512-krA/mtQ5t9nUQEsEVC1sjkttLuzN6z6gyJxK2IlpMS3S5ncy/R6w4FOpy+Q0H18Dn83JBo0p7ZtY7Y6XkK48Kw==",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@polkadot/rpc-augment": "9.14.2",
@@ -4319,7 +4720,8 @@
},
"node_modules/@polkadot/rpc-provider": {
"version": "9.14.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-9.14.2.tgz",
+ "integrity": "sha512-YTSywjD5PF01V47Ru5tln2LlpUwJiSOdz6rlJXPpMaY53hUp7+xMU01FVAQ1bllSBNisSD1Msv/mYHq84Oai2g==",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@polkadot/keyring": "^10.4.2",
@@ -4343,7 +4745,8 @@
},
"node_modules/@polkadot/types": {
"version": "9.14.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-9.14.2.tgz",
+ "integrity": "sha512-hGLddTiJbvowhhUZJ3k+olmmBc1KAjWIQxujIUIYASih8FQ3/YJDKxaofGOzh0VygOKW3jxQBN2VZPofyDP9KQ==",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@polkadot/keyring": "^10.4.2",
@@ -4360,7 +4763,8 @@
},
"node_modules/@polkadot/types-augment": {
"version": "9.14.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-9.14.2.tgz",
+ "integrity": "sha512-WO9d7RJufUeY3iFgt2Wz762kOu1tjEiGBR5TT4AHtpEchVHUeosVTrN9eycC+BhleqYu52CocKz6u3qCT/jKLg==",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@polkadot/types": "9.14.2",
@@ -4373,7 +4777,8 @@
},
"node_modules/@polkadot/types-codec": {
"version": "9.14.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-9.14.2.tgz",
+ "integrity": "sha512-AJ4XF7W1no4PENLBRU955V6gDxJw0h++EN3YoDgThozZ0sj3OxyFupKgNBZcZb2V23H8JxQozzIad8k+nJbO1w==",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@polkadot/util": "^10.4.2",
@@ -4385,7 +4790,8 @@
},
"node_modules/@polkadot/types-create": {
"version": "9.14.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-create/-/types-create-9.14.2.tgz",
+ "integrity": "sha512-nSnKpBierlmGBQT8r6/SHf6uamBIzk4WmdMsAsR4uJKJF1PtbIqx2W5PY91xWSiMSNMzjkbCppHkwaDAMwLGaw==",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@polkadot/types-codec": "9.14.2",
@@ -4397,7 +4803,8 @@
},
"node_modules/@polkadot/types-known": {
"version": "9.14.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-9.14.2.tgz",
+ "integrity": "sha512-iM8WOCgguzJ3TLMqlm4K1gKQEwWm2zxEKT1HZZ1irs/lAbBk9MquDWDvebryiw3XsLB8xgrp3RTIBn2Q4FjB2A==",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@polkadot/networks": "^10.4.2",
@@ -4412,7 +4819,8 @@
},
"node_modules/@polkadot/types-support": {
"version": "9.14.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-support/-/types-support-9.14.2.tgz",
+ "integrity": "sha512-VWCOPgXDK3XtXT7wMLyIWeNDZxUbNcw/8Pn6n6vMogs7o/n4h6WGbGMeTIQhPWyn831/RmkVs5+2DUC+2LlOhw==",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@polkadot/util": "^10.4.2"
@@ -4423,7 +4831,8 @@
},
"node_modules/@polkadot/util": {
"version": "10.4.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.4.2.tgz",
+ "integrity": "sha512-0r5MGICYiaCdWnx+7Axlpvzisy/bi1wZGXgCSw5+ZTyPTOqvsYRqM2X879yxvMsGfibxzWqNzaiVjToz1jvUaA==",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@polkadot/x-bigint": "10.4.2",
@@ -4439,7 +4848,8 @@
},
"node_modules/@polkadot/util-crypto": {
"version": "10.4.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-10.4.2.tgz",
+ "integrity": "sha512-RxZvF7C4+EF3fzQv8hZOLrYCBq5+wA+2LWv98nECkroChY3C2ZZvyWDqn8+aonNULt4dCVTWDZM0QIY6y4LUAQ==",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@noble/hashes": "1.2.0",
@@ -4462,7 +4872,8 @@
},
"node_modules/@polkadot/wasm-bridge": {
"version": "6.4.1",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-bridge/-/wasm-bridge-6.4.1.tgz",
+ "integrity": "sha512-QZDvz6dsUlbYsaMV5biZgZWkYH9BC5AfhT0f0/knv8+LrbAoQdP3Asbvddw8vyU9sbpuCHXrd4bDLBwUCRfrBQ==",
"dependencies": {
"@babel/runtime": "^7.20.6"
},
@@ -4476,7 +4887,8 @@
},
"node_modules/@polkadot/wasm-crypto": {
"version": "6.4.1",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto/-/wasm-crypto-6.4.1.tgz",
+ "integrity": "sha512-FH+dcDPdhSLJvwL0pMLtn/LIPd62QDPODZRCmDyw+pFjLOMaRBc7raomWUOqyRWJTnqVf/iscc2rLVLNMyt7ag==",
"dependencies": {
"@babel/runtime": "^7.20.6",
"@polkadot/wasm-bridge": "6.4.1",
@@ -4495,7 +4907,8 @@
},
"node_modules/@polkadot/wasm-crypto-asmjs": {
"version": "6.4.1",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-6.4.1.tgz",
+ "integrity": "sha512-UxZTwuBZlnODGIQdCsE2Sn/jU0O2xrNQ/TkhRFELfkZXEXTNu4lw6NpaKq7Iey4L+wKd8h4lT3VPVkMcPBLOvA==",
"dependencies": {
"@babel/runtime": "^7.20.6"
},
@@ -4508,7 +4921,8 @@
},
"node_modules/@polkadot/wasm-crypto-init": {
"version": "6.4.1",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-init/-/wasm-crypto-init-6.4.1.tgz",
+ "integrity": "sha512-1ALagSi/nfkyFaH6JDYfy/QbicVbSn99K8PV9rctDUfxc7P06R7CoqbjGQ4OMPX6w1WYVPU7B4jPHGLYBlVuMw==",
"dependencies": {
"@babel/runtime": "^7.20.6",
"@polkadot/wasm-bridge": "6.4.1",
@@ -4525,7 +4939,8 @@
},
"node_modules/@polkadot/wasm-crypto-wasm": {
"version": "6.4.1",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-6.4.1.tgz",
+ "integrity": "sha512-3VV9ZGzh0ZY3SmkkSw+0TRXxIpiO0nB8lFwlRgcwaCihwrvLfRnH9GI8WE12mKsHVjWTEVR3ogzILJxccAUjDA==",
"dependencies": {
"@babel/runtime": "^7.20.6",
"@polkadot/wasm-util": "6.4.1"
@@ -4539,7 +4954,8 @@
},
"node_modules/@polkadot/wasm-util": {
"version": "6.4.1",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-util/-/wasm-util-6.4.1.tgz",
+ "integrity": "sha512-Uwo+WpEsDmFExWC5kTNvsVhvqXMZEKf4gUHXFn4c6Xz4lmieRT5g+1bO1KJ21pl4msuIgdV3Bksfs/oiqMFqlw==",
"dependencies": {
"@babel/runtime": "^7.20.6"
},
@@ -4552,7 +4968,8 @@
},
"node_modules/@polkadot/x-bigint": {
"version": "10.4.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.4.2.tgz",
+ "integrity": "sha512-awRiox+/XSReLzimAU94fPldowiwnnMUkQJe8AebYhNocAj6SJU00GNoj6j6tAho6yleOwrTJXZaWFBaQVJQNg==",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@polkadot/x-global": "10.4.2"
@@ -4563,7 +4980,8 @@
},
"node_modules/@polkadot/x-fetch": {
"version": "10.4.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-fetch/-/x-fetch-10.4.2.tgz",
+ "integrity": "sha512-Ubb64yaM4qwhogNP+4mZ3ibRghEg5UuCYRMNaCFoPgNAY8tQXuDKrHzeks3+frlmeH9YRd89o8wXLtWouwZIcw==",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@polkadot/x-global": "10.4.2",
@@ -4576,7 +4994,8 @@
},
"node_modules/@polkadot/x-global": {
"version": "10.4.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.4.2.tgz",
+ "integrity": "sha512-g6GXHD/ykZvHap3M6wh19dO70Zm43l4jEhlxf5LtTo5/0/UporFCXr2YJYZqfbn9JbQwl1AU+NroYio+vtJdiA==",
"dependencies": {
"@babel/runtime": "^7.20.13"
},
@@ -4586,7 +5005,8 @@
},
"node_modules/@polkadot/x-randomvalues": {
"version": "10.4.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-10.4.2.tgz",
+ "integrity": "sha512-mf1Wbpe7pRZHO0V3V89isPLqZOy5XGX2bCqsfUWHgb1NvV1MMx5TjVjdaYyNlGTiOkAmJKlOHshcfPU2sYWpNg==",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@polkadot/x-global": "10.4.2"
@@ -4597,7 +5017,8 @@
},
"node_modules/@polkadot/x-textdecoder": {
"version": "10.4.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.4.2.tgz",
+ "integrity": "sha512-d3ADduOKUTU+cliz839+KCFmi23pxTlabH7qh7Vs1GZQvXOELWdqFOqakdiAjtMn68n1KVF4O14Y+OUm7gp/zA==",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@polkadot/x-global": "10.4.2"
@@ -4608,7 +5029,8 @@
},
"node_modules/@polkadot/x-textencoder": {
"version": "10.4.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.4.2.tgz",
+ "integrity": "sha512-mxcQuA1exnyv74Kasl5vxBq01QwckG088lYjc3KwmND6+pPrW2OWagbxFX5VFoDLDAE+UJtnUHsjdWyOTDhpQA==",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@polkadot/x-global": "10.4.2"
@@ -4619,7 +5041,8 @@
},
"node_modules/@polkadot/x-ws": {
"version": "10.4.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-ws/-/x-ws-10.4.2.tgz",
+ "integrity": "sha512-3gHSTXAWQu1EMcMVTF5QDKHhEHzKxhAArweEyDXE7VsgKUP/ixxw4hVZBrkX122iI5l5mjSiooRSnp/Zl3xqDQ==",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@polkadot/x-global": "10.4.2",
@@ -4632,7 +5055,9 @@
},
"node_modules/@prb/math": {
"version": "2.5.0",
- "license": "Unlicense",
+ "resolved": "https://registry.npmjs.org/@prb/math/-/math-2.5.0.tgz",
+ "integrity": "sha512-iSNQd4L3HaYuAIhJliLVa7WGsyjFiQHGpomrFgdj7FhYGHT6Yo8bBwbmwAPF1bHD3LN8gdg+ssKrRUPNaNPEVw==",
+ "dev": true,
"dependencies": {
"@ethersproject/bignumber": "^5.5.0",
"decimal.js": "^10.3.1",
@@ -4647,23 +5072,28 @@
},
"node_modules/@protobufjs/aspromise": {
"version": "1.1.2",
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
+ "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ=="
},
"node_modules/@protobufjs/base64": {
"version": "1.1.2",
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
+ "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg=="
},
"node_modules/@protobufjs/codegen": {
"version": "2.0.4",
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
+ "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg=="
},
"node_modules/@protobufjs/eventemitter": {
"version": "1.1.0",
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
+ "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q=="
},
"node_modules/@protobufjs/fetch": {
"version": "1.1.0",
- "license": "BSD-3-Clause",
+ "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
+ "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==",
"dependencies": {
"@protobufjs/aspromise": "^1.1.1",
"@protobufjs/inquire": "^1.1.0"
@@ -4671,40 +5101,53 @@
},
"node_modules/@protobufjs/float": {
"version": "1.0.2",
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
+ "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ=="
},
"node_modules/@protobufjs/inquire": {
"version": "1.1.0",
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
+ "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q=="
},
"node_modules/@protobufjs/path": {
"version": "1.1.2",
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
+ "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA=="
},
"node_modules/@protobufjs/pool": {
"version": "1.1.0",
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
+ "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw=="
},
"node_modules/@protobufjs/utf8": {
"version": "1.1.0",
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
+ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw=="
+ },
+ "node_modules/@questdb/nodejs-client": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@questdb/nodejs-client/-/nodejs-client-3.0.0.tgz",
+ "integrity": "sha512-lBKd732rRpS/pqyWgCJFVXi9N1YoWDAUZzp6BngBVxH92As/NDXigZmCYKQVKpAEGYx14606CH5AoJ23qf3oqA=="
},
"node_modules/@rdfjs/types": {
"version": "1.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@rdfjs/types/-/types-1.1.2.tgz",
+ "integrity": "sha512-wqpOJK1QCbmsGNtyzYnojPU8gRDPid2JO0Q0kMtb4j65xhCK880cnKAfEOwC+dX85VJcCByQx5zOwyyfCjDJsg==",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@rtsao/scc": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz",
+ "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==",
"dev": true,
- "license": "MIT",
"peer": true
},
"node_modules/@rubensworks/saxes": {
"version": "6.0.1",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/@rubensworks/saxes/-/saxes-6.0.1.tgz",
+ "integrity": "sha512-UW4OTIsOtJ5KSXo2Tchi4lhZqu+tlHrOAs4nNti7CrtB53kAZl3/hyrTi6HkMihxdbDM6m2Zc3swc/ZewEe1xw==",
"dependencies": {
"xmlchars": "^2.2.0"
},
@@ -4714,7 +5157,8 @@
},
"node_modules/@rushstack/node-core-library": {
"version": "5.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.10.0.tgz",
+ "integrity": "sha512-2pPLCuS/3x7DCd7liZkqOewGM0OzLyCacdvOe8j6Yrx9LkETGnxul1t7603bIaB8nUAooORcct9fFDOQMbWAgw==",
"dependencies": {
"ajv": "~8.13.0",
"ajv-draft-04": "~1.0.0",
@@ -4736,7 +5180,8 @@
},
"node_modules/@rushstack/node-core-library/node_modules/ajv": {
"version": "8.13.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz",
+ "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==",
"dependencies": {
"fast-deep-equal": "^3.1.3",
"json-schema-traverse": "^1.0.0",
@@ -4750,7 +5195,8 @@
},
"node_modules/@rushstack/node-core-library/node_modules/ajv-draft-04": {
"version": "1.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz",
+ "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==",
"peerDependencies": {
"ajv": "^8.5.0"
},
@@ -4762,7 +5208,8 @@
},
"node_modules/@rushstack/node-core-library/node_modules/fs-extra": {
"version": "7.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
+ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
"dependencies": {
"graceful-fs": "^4.1.2",
"jsonfile": "^4.0.0",
@@ -4774,18 +5221,21 @@
},
"node_modules/@rushstack/node-core-library/node_modules/json-schema-traverse": {
"version": "1.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
},
"node_modules/@rushstack/node-core-library/node_modules/jsonfile": {
"version": "4.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
},
"node_modules/@rushstack/node-core-library/node_modules/lru-cache": {
"version": "6.0.0",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dependencies": {
"yallist": "^4.0.0"
},
@@ -4795,7 +5245,8 @@
},
"node_modules/@rushstack/node-core-library/node_modules/semver": {
"version": "7.5.4",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -4808,18 +5259,21 @@
},
"node_modules/@rushstack/node-core-library/node_modules/universalify": {
"version": "0.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
"engines": {
"node": ">= 4.0.0"
}
},
"node_modules/@rushstack/node-core-library/node_modules/yallist": {
"version": "4.0.0",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
},
"node_modules/@rushstack/terminal": {
"version": "0.14.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.14.3.tgz",
+ "integrity": "sha512-csXbZsAdab/v8DbU1sz7WC2aNaKArcdS/FPmXMOXEj/JBBZMvDK0+1b4Qao0kkG0ciB1Qe86/Mb68GjH6/TnMw==",
"dependencies": {
"@rushstack/node-core-library": "5.10.0",
"supports-color": "~8.1.1"
@@ -4835,7 +5289,8 @@
},
"node_modules/@rushstack/ts-command-line": {
"version": "4.23.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.23.1.tgz",
+ "integrity": "sha512-40jTmYoiu/xlIpkkRsVfENtBq4CW3R4azbL0Vmda+fMwHWqss6wwf/Cy/UJmMqIzpfYc2OTnjYP1ZLD3CmyeCA==",
"dependencies": {
"@rushstack/terminal": "0.14.3",
"@types/argparse": "1.0.38",
@@ -4845,34 +5300,38 @@
},
"node_modules/@rushstack/ts-command-line/node_modules/argparse": {
"version": "1.0.10",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dependencies": {
"sprintf-js": "~1.0.2"
}
},
"node_modules/@rushstack/ts-command-line/node_modules/sprintf-js": {
"version": "1.0.3",
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
},
"node_modules/@scure/base": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz",
+ "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==",
"funding": [
{
"type": "individual",
"url": "https://paulmillr.com/funding/"
}
- ],
- "license": "MIT"
+ ]
},
"node_modules/@scure/bip32": {
"version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz",
+ "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==",
"funding": [
{
"type": "individual",
"url": "https://paulmillr.com/funding/"
}
],
- "license": "MIT",
"dependencies": {
"@noble/hashes": "~1.2.0",
"@noble/secp256k1": "~1.7.0",
@@ -4881,13 +5340,14 @@
},
"node_modules/@scure/bip39": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz",
+ "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==",
"funding": [
{
"type": "individual",
"url": "https://paulmillr.com/funding/"
}
],
- "license": "MIT",
"dependencies": {
"@noble/hashes": "~1.2.0",
"@scure/base": "~1.1.0"
@@ -4895,7 +5355,8 @@
},
"node_modules/@sentry/core": {
"version": "5.30.0",
- "license": "BSD-3-Clause",
+ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz",
+ "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==",
"dependencies": {
"@sentry/hub": "5.30.0",
"@sentry/minimal": "5.30.0",
@@ -4909,11 +5370,13 @@
},
"node_modules/@sentry/core/node_modules/tslib": {
"version": "1.14.1",
- "license": "0BSD"
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"node_modules/@sentry/hub": {
"version": "5.30.0",
- "license": "BSD-3-Clause",
+ "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz",
+ "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==",
"dependencies": {
"@sentry/types": "5.30.0",
"@sentry/utils": "5.30.0",
@@ -4925,11 +5388,13 @@
},
"node_modules/@sentry/hub/node_modules/tslib": {
"version": "1.14.1",
- "license": "0BSD"
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"node_modules/@sentry/minimal": {
"version": "5.30.0",
- "license": "BSD-3-Clause",
+ "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz",
+ "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==",
"dependencies": {
"@sentry/hub": "5.30.0",
"@sentry/types": "5.30.0",
@@ -4941,11 +5406,13 @@
},
"node_modules/@sentry/minimal/node_modules/tslib": {
"version": "1.14.1",
- "license": "0BSD"
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"node_modules/@sentry/node": {
"version": "5.30.0",
- "license": "BSD-3-Clause",
+ "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz",
+ "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==",
"dependencies": {
"@sentry/core": "5.30.0",
"@sentry/hub": "5.30.0",
@@ -4963,18 +5430,21 @@
},
"node_modules/@sentry/node/node_modules/cookie": {
"version": "0.4.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
+ "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/@sentry/node/node_modules/tslib": {
"version": "1.14.1",
- "license": "0BSD"
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"node_modules/@sentry/tracing": {
"version": "5.30.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz",
+ "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==",
"dependencies": {
"@sentry/hub": "5.30.0",
"@sentry/minimal": "5.30.0",
@@ -4988,18 +5458,21 @@
},
"node_modules/@sentry/tracing/node_modules/tslib": {
"version": "1.14.1",
- "license": "0BSD"
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"node_modules/@sentry/types": {
"version": "5.30.0",
- "license": "BSD-3-Clause",
+ "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz",
+ "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==",
"engines": {
"node": ">=6"
}
},
"node_modules/@sentry/utils": {
"version": "5.30.0",
- "license": "BSD-3-Clause",
+ "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz",
+ "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==",
"dependencies": {
"@sentry/types": "5.30.0",
"tslib": "^1.9.3"
@@ -5010,12 +5483,14 @@
},
"node_modules/@sentry/utils/node_modules/tslib": {
"version": "1.14.1",
- "license": "0BSD"
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"node_modules/@sindresorhus/is": {
"version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
+ "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -5025,48 +5500,54 @@
},
"node_modules/@sinonjs/commons": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz",
+ "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"type-detect": "4.0.8"
}
},
"node_modules/@sinonjs/commons/node_modules/type-detect": {
"version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/@sinonjs/fake-timers": {
"version": "9.1.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz",
+ "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"@sinonjs/commons": "^1.7.0"
}
},
"node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": {
"version": "1.8.6",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz",
+ "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"type-detect": "4.0.8"
}
},
"node_modules/@sinonjs/fake-timers/node_modules/type-detect": {
"version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/@sinonjs/samsam": {
"version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-7.0.1.tgz",
+ "integrity": "sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"@sinonjs/commons": "^2.0.0",
"lodash.get": "^4.4.2",
@@ -5075,12 +5556,14 @@
},
"node_modules/@sinonjs/text-encoding": {
"version": "0.7.3",
- "dev": true,
- "license": "(Unlicense OR Apache-2.0)"
+ "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.3.tgz",
+ "integrity": "sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA==",
+ "dev": true
},
"node_modules/@smessie/readable-web-to-node-stream": {
"version": "3.0.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@smessie/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.3.tgz",
+ "integrity": "sha512-8FFE7psRtRWQT31/duqbmgnSf2++QLR2YH9kj5iwsHhnoqSvHdOY3SAN5e7dhc+60p2cNk7rv3HYOiXOapTEXQ==",
"dependencies": {
"process": "^0.11.10",
"readable-stream": "^4.5.1"
@@ -5095,22 +5578,26 @@
},
"node_modules/@stablelib/aead": {
"version": "1.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz",
+ "integrity": "sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg=="
},
"node_modules/@stablelib/binary": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz",
+ "integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==",
"dependencies": {
"@stablelib/int": "^1.0.1"
}
},
"node_modules/@stablelib/bytes": {
"version": "1.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz",
+ "integrity": "sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ=="
},
"node_modules/@stablelib/chacha": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz",
+ "integrity": "sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==",
"dependencies": {
"@stablelib/binary": "^1.0.1",
"@stablelib/wipe": "^1.0.1"
@@ -5118,7 +5605,8 @@
},
"node_modules/@stablelib/chacha20poly1305": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz",
+ "integrity": "sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==",
"dependencies": {
"@stablelib/aead": "^1.0.1",
"@stablelib/binary": "^1.0.1",
@@ -5130,15 +5618,18 @@
},
"node_modules/@stablelib/constant-time": {
"version": "1.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz",
+ "integrity": "sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg=="
},
"node_modules/@stablelib/hash": {
"version": "1.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz",
+ "integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg=="
},
"node_modules/@stablelib/hkdf": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@stablelib/hkdf/-/hkdf-1.0.1.tgz",
+ "integrity": "sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g==",
"dependencies": {
"@stablelib/hash": "^1.0.1",
"@stablelib/hmac": "^1.0.1",
@@ -5147,7 +5638,8 @@
},
"node_modules/@stablelib/hmac": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@stablelib/hmac/-/hmac-1.0.1.tgz",
+ "integrity": "sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA==",
"dependencies": {
"@stablelib/constant-time": "^1.0.1",
"@stablelib/hash": "^1.0.1",
@@ -5156,18 +5648,21 @@
},
"node_modules/@stablelib/int": {
"version": "1.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz",
+ "integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w=="
},
"node_modules/@stablelib/keyagreement": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz",
+ "integrity": "sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==",
"dependencies": {
"@stablelib/bytes": "^1.0.1"
}
},
"node_modules/@stablelib/poly1305": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz",
+ "integrity": "sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==",
"dependencies": {
"@stablelib/constant-time": "^1.0.1",
"@stablelib/wipe": "^1.0.1"
@@ -5175,7 +5670,8 @@
},
"node_modules/@stablelib/random": {
"version": "1.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.2.tgz",
+ "integrity": "sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==",
"dependencies": {
"@stablelib/binary": "^1.0.1",
"@stablelib/wipe": "^1.0.1"
@@ -5183,7 +5679,8 @@
},
"node_modules/@stablelib/sha256": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@stablelib/sha256/-/sha256-1.0.1.tgz",
+ "integrity": "sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==",
"dependencies": {
"@stablelib/binary": "^1.0.1",
"@stablelib/hash": "^1.0.1",
@@ -5192,11 +5689,13 @@
},
"node_modules/@stablelib/wipe": {
"version": "1.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz",
+ "integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg=="
},
"node_modules/@stablelib/x25519": {
"version": "1.0.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.3.tgz",
+ "integrity": "sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw==",
"dependencies": {
"@stablelib/keyagreement": "^1.0.1",
"@stablelib/random": "^1.0.2",
@@ -5205,7 +5704,9 @@
},
"node_modules/@substrate/connect": {
"version": "0.7.19",
- "license": "GPL-3.0-only",
+ "resolved": "https://registry.npmjs.org/@substrate/connect/-/connect-0.7.19.tgz",
+ "integrity": "sha512-+DDRadc466gCmDU71sHrYOt1HcI2Cbhm7zdCFjZfFVHXhC/E8tOdrVSglAH2HDEHR0x2SiHRxtxOGC7ak2Zjog==",
+ "deprecated": "versions below 1.x are no longer maintained",
"optional": true,
"dependencies": {
"@substrate/connect-extension-protocol": "^1.0.1",
@@ -5215,22 +5716,27 @@
},
"node_modules/@substrate/connect-extension-protocol": {
"version": "1.0.1",
- "license": "GPL-3.0-only",
+ "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-1.0.1.tgz",
+ "integrity": "sha512-161JhCC1csjH3GE5mPLEd7HbWtwNSPJBg3p1Ksz9SFlTzj/bgEwudiRN2y5i0MoLGCIJRYKyKGMxVnd29PzNjg==",
"optional": true
},
"node_modules/@substrate/connect-known-chains": {
"version": "1.8.0",
- "license": "GPL-3.0-only",
+ "resolved": "https://registry.npmjs.org/@substrate/connect-known-chains/-/connect-known-chains-1.8.0.tgz",
+ "integrity": "sha512-sl7WfeDgnZuPvUl5Xw0XIziOTe8rEBJ3uugyDETGnafxEbjYMv5aJL0ilq5djhnQ7l9OuMJCN3Ckved2yINeeQ==",
"optional": true
},
"node_modules/@substrate/connect/node_modules/eventemitter3": {
"version": "4.0.7",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
"optional": true
},
"node_modules/@substrate/light-client-extension-helpers": {
"version": "0.0.6",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@substrate/light-client-extension-helpers/-/light-client-extension-helpers-0.0.6.tgz",
+ "integrity": "sha512-girltEuxQ1BvkJWmc8JJlk4ZxnlGXc/wkLcNguhY+UoDEMBK0LsdtfzQKIfrIehi4QdeSBlFEFBoI4RqPmsZzA==",
+ "dev": true,
"optional": true,
"dependencies": {
"@polkadot-api/json-rpc-provider": "0.0.1",
@@ -5247,12 +5753,15 @@
},
"node_modules/@substrate/light-client-extension-helpers/node_modules/@substrate/connect-extension-protocol": {
"version": "2.2.1",
- "license": "GPL-3.0-only",
+ "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-2.2.1.tgz",
+ "integrity": "sha512-GoafTgm/Jey9E4Xlj4Z5ZBt/H4drH2CNq8VrAro80rtoznrXnFDNVivLQzZN0Xaj2g8YXSn9pC9Oc9IovYZJXw==",
+ "dev": true,
"optional": true
},
"node_modules/@substrate/smoldot-light": {
"version": "0.7.9",
- "license": "GPL-3.0-or-later WITH Classpath-exception-2.0",
+ "resolved": "https://registry.npmjs.org/@substrate/smoldot-light/-/smoldot-light-0.7.9.tgz",
+ "integrity": "sha512-HP8iP7sFYlpSgjjbo0lqHyU+gu9lL2hbDNce6dWk5/10mFFF9jKIFGfui4zCecUY808o/Go9pan/31kMJoLbug==",
"optional": true,
"dependencies": {
"pako": "^2.0.4",
@@ -5261,12 +5770,14 @@
},
"node_modules/@substrate/ss58-registry": {
"version": "1.51.0",
- "license": "Apache-2.0"
+ "resolved": "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.51.0.tgz",
+ "integrity": "sha512-TWDurLiPxndFgKjVavCniytBIw+t4ViOi7TYp9h/D0NMmkEc9klFTo+827eyEJ0lELpqO207Ey7uGxUa+BS1jQ=="
},
"node_modules/@szmarczak/http-timer": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz",
+ "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"defer-to-connect": "^2.0.1"
},
@@ -5276,51 +5787,60 @@
},
"node_modules/@teppeis/multimaps": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@teppeis/multimaps/-/multimaps-2.0.0.tgz",
+ "integrity": "sha512-TL1adzq1HdxUf9WYduLcQ/DNGYiz71U31QRgbnr0Ef1cPyOUOsBojxHVWpFeOSUucB6Lrs0LxFRA14ntgtkc9w==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=10.17"
}
},
"node_modules/@tootallnate/once": {
"version": "1.1.2",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
+ "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
+ "devOptional": true,
"engines": {
"node": ">= 6"
}
},
"node_modules/@tsconfig/node10": {
"version": "1.0.11",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz",
+ "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw=="
},
"node_modules/@tsconfig/node12": {
"version": "1.0.11",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
+ "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag=="
},
"node_modules/@tsconfig/node14": {
"version": "1.0.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
+ "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow=="
},
"node_modules/@tsconfig/node16": {
"version": "1.0.4",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
+ "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA=="
},
"node_modules/@types/argparse": {
"version": "1.0.38",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz",
+ "integrity": "sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA=="
},
"node_modules/@types/bn.js": {
"version": "5.1.6",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.6.tgz",
+ "integrity": "sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w==",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/cacheable-request": {
"version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz",
+ "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@types/http-cache-semantics": "*",
"@types/keyv": "^3.1.4",
@@ -5330,80 +5850,94 @@
},
"node_modules/@types/debug": {
"version": "4.1.12",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz",
+ "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
"dependencies": {
"@types/ms": "*"
}
},
"node_modules/@types/http-cache-semantics": {
"version": "4.0.4",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz",
+ "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==",
+ "dev": true
},
"node_modules/@types/http-link-header": {
"version": "1.0.7",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@types/http-link-header/-/http-link-header-1.0.7.tgz",
+ "integrity": "sha512-snm5oLckop0K3cTDAiBnZDy6ncx9DJ3mCRDvs42C884MbVYPP74Tiq2hFsSDRTyjK6RyDYDIulPiW23ge+g5Lw==",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/json5": {
"version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
"dev": true,
- "license": "MIT",
"peer": true
},
"node_modules/@types/keyv": {
"version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz",
+ "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/lodash": {
"version": "4.17.13",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.13.tgz",
+ "integrity": "sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==",
+ "dev": true
},
"node_modules/@types/long": {
"version": "4.0.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz",
+ "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA=="
},
"node_modules/@types/lru-cache": {
"version": "5.1.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw=="
},
"node_modules/@types/minimatch": {
"version": "3.0.5",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
+ "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ=="
},
"node_modules/@types/minimist": {
"version": "1.2.5",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag=="
},
"node_modules/@types/ms": {
"version": "0.7.34",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz",
+ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g=="
},
"node_modules/@types/n3": {
"version": "1.21.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@types/n3/-/n3-1.21.1.tgz",
+ "integrity": "sha512-9KxFlFj3etnpdI2nyQEp/jHry5DHxWT22z9Nc/y/hdHe0CHVc9rKu+NacWKUyN06dDLDh7ZnjCzY8yBJ9lmzdw==",
"dependencies": {
"@rdfjs/types": "^1.1.0",
"@types/node": "*"
}
},
"node_modules/@types/node": {
- "version": "22.10.1",
- "license": "MIT",
+ "version": "22.10.2",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz",
+ "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==",
"dependencies": {
"undici-types": "~6.20.0"
}
},
"node_modules/@types/node-fetch": {
"version": "2.6.12",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.12.tgz",
+ "integrity": "sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==",
"dependencies": {
"@types/node": "*",
"form-data": "^4.0.0"
@@ -5411,18 +5945,21 @@
},
"node_modules/@types/pbkdf2": {
"version": "3.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz",
+ "integrity": "sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/qs": {
"version": "6.9.17",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz",
+ "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ=="
},
"node_modules/@types/readable-stream": {
"version": "2.3.15",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.15.tgz",
+ "integrity": "sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==",
"dependencies": {
"@types/node": "*",
"safe-buffer": "~5.1.1"
@@ -5430,92 +5967,117 @@
},
"node_modules/@types/readable-stream/node_modules/safe-buffer": {
"version": "5.1.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"node_modules/@types/responselike": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz",
+ "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/retry": {
"version": "0.12.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
+ "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA=="
},
"node_modules/@types/secp256k1": {
"version": "4.0.6",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz",
+ "integrity": "sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/semver": {
"version": "7.5.8",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
+ "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ=="
},
"node_modules/@types/spark-md5": {
"version": "3.0.5",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@types/spark-md5/-/spark-md5-3.0.5.tgz",
+ "integrity": "sha512-lWf05dnD42DLVKQJZrDHtWFidcLrHuip01CtnC2/S6AMhX4t9ZlEUj4iuRlAnts0PQk7KESOqKxeGE/b6sIPGg=="
},
"node_modules/@types/sparqljs": {
"version": "3.1.12",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@types/sparqljs/-/sparqljs-3.1.12.tgz",
+ "integrity": "sha512-zg/sdKKtYI0845wKPSuSgunyU1o/+7tRzMw85lHsf4p/0UbA6+65MXAyEtv1nkaqSqrq/bXm7+bqXas+Xo5dpQ==",
"dependencies": {
"@rdfjs/types": ">=1.0.0"
}
},
"node_modules/@types/triple-beam": {
"version": "1.3.5",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz",
+ "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw=="
},
"node_modules/@types/uritemplate": {
"version": "0.3.6",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@types/uritemplate/-/uritemplate-0.3.6.tgz",
+ "integrity": "sha512-31BMGZ8GgLxgXxLnqg4KbbyYJjU1flhTTD2+PVQStVUPXSk0IIpK0zt+tH3eLT7ZRwLnzQw6JhYx69qza3U0wg=="
},
"node_modules/@types/uuid": {
"version": "9.0.8",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz",
+ "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA=="
},
"node_modules/@types/validator": {
"version": "13.12.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.12.2.tgz",
+ "integrity": "sha512-6SlHBzUW8Jhf3liqrGGXyTJSIFe4nqlJ5A5KaMZ2l/vbM3Wh3KSybots/wfWVzNLK4D1NZluDlSQIbIEPx6oyA=="
},
"node_modules/@types/websocket": {
"version": "1.0.10",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.10.tgz",
+ "integrity": "sha512-svjGZvPB7EzuYS94cI7a+qhwgGU1y89wUgjT6E2wVUfmAGIvRfT7obBvRtnhXCSsoMdlG4gBFGE7MfkIXZLoww==",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/yargs": {
"version": "17.0.33",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz",
+ "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==",
"dependencies": {
"@types/yargs-parser": "*"
}
},
"node_modules/@types/yargs-parser": {
"version": "21.0.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
+ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ=="
},
"node_modules/@ungap/structured-clone": {
- "version": "1.2.0",
- "license": "ISC"
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.1.tgz",
+ "integrity": "sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA=="
},
"node_modules/@vascosantos/moving-average": {
"version": "1.1.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@vascosantos/moving-average/-/moving-average-1.1.0.tgz",
+ "integrity": "sha512-MVEJ4vWAPNbrGLjz7ITnHYg+YXZ6ijAqtH5/cHwSoCpbvuJ98aLXwFfPKAUfZpJMQR5uXB58UJajbY130IRF/w=="
},
"node_modules/abab": {
"version": "2.0.6",
- "dev": true,
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
+ "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==",
+ "deprecated": "Use your platform's native atob() and btoa() methods instead",
+ "dev": true
+ },
+ "node_modules/abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+ "optional": true
},
"node_modules/abort-controller": {
"version": "3.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
+ "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
"dependencies": {
"event-target-shim": "^5.0.0"
},
@@ -5525,19 +6087,22 @@
},
"node_modules/abortable-iterator": {
"version": "3.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.2.tgz",
+ "integrity": "sha512-qVP8HFfTpUQI2F+f1tpTriKDIZ4XrmwCrBCrQeRKO7DKWF3kgoT6NXiNDv2krrGcHxPwmI63eGQiec81sEaWIw==",
"dependencies": {
"get-iterator": "^1.0.2"
}
},
"node_modules/abortcontroller-polyfill": {
- "version": "1.7.6",
- "dev": true,
- "license": "MIT"
+ "version": "1.7.8",
+ "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.8.tgz",
+ "integrity": "sha512-9f1iZ2uWh92VcrU9Y8x+LdM4DLj75VE0MJB8zuF1iUnroEptStw+DQ8EQPMUdfe5k+PkB1uUfDQfWbhstH8LrQ==",
+ "dev": true
},
"node_modules/accepts": {
"version": "1.3.8",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
"dependencies": {
"mime-types": "~2.1.34",
"negotiator": "0.6.3"
@@ -5548,7 +6113,8 @@
},
"node_modules/acorn": {
"version": "8.14.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
+ "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
"bin": {
"acorn": "bin/acorn"
},
@@ -5558,8 +6124,9 @@
},
"node_modules/acorn-globals": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz",
+ "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"acorn": "^7.1.1",
"acorn-walk": "^7.1.1"
@@ -5567,8 +6134,9 @@
},
"node_modules/acorn-globals/node_modules/acorn": {
"version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
"dev": true,
- "license": "MIT",
"bin": {
"acorn": "bin/acorn"
},
@@ -5578,33 +6146,38 @@
},
"node_modules/acorn-jsx": {
"version": "5.3.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
"peerDependencies": {
"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
"node_modules/acorn-walk": {
"version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
+ "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/adm-zip": {
"version": "0.4.16",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz",
+ "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==",
"engines": {
"node": ">=0.3.0"
}
},
"node_modules/aes-js": {
"version": "3.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
+ "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw=="
},
"node_modules/agent-base": {
"version": "6.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
"dependencies": {
"debug": "4"
},
@@ -5612,9 +6185,22 @@
"node": ">= 6.0.0"
}
},
+ "node_modules/agentkeepalive": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz",
+ "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==",
+ "optional": true,
+ "dependencies": {
+ "humanize-ms": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 8.0.0"
+ }
+ },
"node_modules/aggregate-error": {
"version": "3.1.0",
- "license": "MIT",
+ "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"
@@ -5625,7 +6211,8 @@
},
"node_modules/ajv": {
"version": "6.12.6",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -5639,7 +6226,8 @@
},
"node_modules/ajv-formats": {
"version": "3.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz",
+ "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==",
"dependencies": {
"ajv": "^8.0.0"
},
@@ -5654,7 +6242,8 @@
},
"node_modules/ajv-formats/node_modules/ajv": {
"version": "8.17.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
+ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
"dependencies": {
"fast-deep-equal": "^3.1.3",
"fast-uri": "^3.0.1",
@@ -5668,25 +6257,29 @@
},
"node_modules/ajv-formats/node_modules/json-schema-traverse": {
"version": "1.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
},
"node_modules/ansi-align": {
"version": "3.0.1",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
+ "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
"dependencies": {
"string-width": "^4.1.0"
}
},
"node_modules/ansi-colors": {
"version": "4.1.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
+ "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
"engines": {
"node": ">=6"
}
},
"node_modules/ansi-escapes": {
"version": "4.3.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
"dependencies": {
"type-fest": "^0.21.3"
},
@@ -5699,7 +6292,8 @@
},
"node_modules/ansi-escapes/node_modules/type-fest": {
"version": "0.21.3",
- "license": "(MIT OR CC0-1.0)",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
"engines": {
"node": ">=10"
},
@@ -5709,15 +6303,17 @@
},
"node_modules/ansi-regex": {
"version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/ansi-styles": {
"version": "4.3.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -5730,12 +6326,14 @@
},
"node_modules/any-promise": {
"version": "1.3.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
+ "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
+ "dev": true
},
"node_modules/any-signal": {
"version": "2.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-2.1.2.tgz",
+ "integrity": "sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ==",
"dependencies": {
"abort-controller": "^3.0.0",
"native-abort-controller": "^1.0.3"
@@ -5743,7 +6341,8 @@
},
"node_modules/anymatch": {
"version": "3.1.3",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
"dependencies": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
@@ -5754,15 +6353,17 @@
},
"node_modules/app-root-path": {
"version": "3.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.1.0.tgz",
+ "integrity": "sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==",
"engines": {
"node": ">= 6.0.0"
}
},
"node_modules/append-transform": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz",
+ "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"default-require-extensions": "^3.0.0"
},
@@ -5770,23 +6371,61 @@
"node": ">=8"
}
},
+ "node_modules/aproba": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
+ "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==",
+ "optional": true
+ },
"node_modules/archy": {
"version": "1.0.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
+ "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==",
+ "dev": true
+ },
+ "node_modules/are-we-there-yet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz",
+ "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==",
+ "deprecated": "This package is no longer supported.",
+ "optional": true,
+ "dependencies": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^3.6.0"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/are-we-there-yet/node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "optional": true,
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
},
"node_modules/arg": {
"version": "4.1.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
+ "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="
},
"node_modules/argparse": {
"version": "2.0.1",
- "license": "Python-2.0"
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"node_modules/aria-query": {
"version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz",
+ "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==",
"dev": true,
- "license": "Apache-2.0",
"peer": true,
"engines": {
"node": ">= 0.4"
@@ -5794,8 +6433,9 @@
},
"node_modules/array-buffer-byte-length": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz",
+ "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.5",
@@ -5810,12 +6450,14 @@
},
"node_modules/array-flatten": {
"version": "1.1.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
},
"node_modules/array-includes": {
"version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz",
+ "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.7",
@@ -5834,8 +6476,9 @@
},
"node_modules/array.prototype.findlast": {
"version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz",
+ "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.7",
@@ -5854,8 +6497,9 @@
},
"node_modules/array.prototype.findlastindex": {
"version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz",
+ "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.7",
@@ -5874,8 +6518,9 @@
},
"node_modules/array.prototype.flat": {
"version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
+ "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.2",
@@ -5892,8 +6537,9 @@
},
"node_modules/array.prototype.flatmap": {
"version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
+ "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.2",
@@ -5910,8 +6556,9 @@
},
"node_modules/array.prototype.tosorted": {
"version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz",
+ "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.7",
@@ -5926,8 +6573,9 @@
},
"node_modules/arraybuffer.prototype.slice": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz",
+ "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"array-buffer-byte-length": "^1.0.1",
@@ -5948,19 +6596,22 @@
},
"node_modules/arrayify-stream": {
"version": "2.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/arrayify-stream/-/arrayify-stream-2.0.1.tgz",
+ "integrity": "sha512-z8fB6PtmnewQpFB53piS2d1KlUi3BPMICH2h7leCOUXpQcwvZ4GbHHSpdKoUrgLMR6b4Qan/uDe1St3Ao3yIHg=="
},
"node_modules/asn1": {
"version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
+ "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"safer-buffer": "~2.1.0"
}
},
"node_modules/asn1.js": {
"version": "5.4.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
+ "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
"dependencies": {
"bn.js": "^4.0.0",
"inherits": "^2.0.1",
@@ -5970,28 +6621,32 @@
},
"node_modules/asn1.js/node_modules/bn.js": {
"version": "4.12.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz",
+ "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg=="
},
"node_modules/assert-plus": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.8"
}
},
"node_modules/assertion-error": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": "*"
}
},
"node_modules/assertion-error-formatter": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/assertion-error-formatter/-/assertion-error-formatter-3.0.0.tgz",
+ "integrity": "sha512-6YyAVLrEze0kQ7CmJfUgrLHb+Y7XghmL2Ie7ijVa2Y9ynP3LV+VDiwFk62Dn0qtqbmY0BT0ss6p1xxpiF2PYbQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"diff": "^4.0.1",
"pad-right": "^0.2.2",
@@ -5999,63 +6654,75 @@
}
},
"node_modules/assertion-tools": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/assertion-tools/-/assertion-tools-2.2.1.tgz",
- "integrity": "sha512-JlA1S16Ox93PnYb45HvxNcax/Ii4gqTO8HLGa/ykj/ddp8EEHlokn6inJR2yMiz173WSFkCc0ciLJzGeaYBANw==",
+ "version": "8.0.0-gamma.1",
+ "resolved": "https://registry.npmjs.org/assertion-tools/-/assertion-tools-8.0.0-gamma.1.tgz",
+ "integrity": "sha512-I4IHIiylrVFUoLy07qPxCbwwUk0Qpqfo0qL1cPBKcSY0e9b4+AHQoBLuSZkaE9rUy1wC+7vqBMikn4d/DW3FAw==",
"dependencies": {
"ethers": "^5.7.2",
"jsonld": "^8.1.0",
- "merkletreejs": "^0.3.2"
+ "merkletreejs": "^0.3.2",
+ "n3": "^1.23.1",
+ "rdf-canonize": "^4.0.1",
+ "uuid": "^8.3.2"
}
},
"node_modules/ast-types-flow": {
"version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz",
+ "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==",
"dev": true,
- "license": "MIT",
"peer": true
},
"node_modules/async": {
"version": "3.2.6",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz",
+ "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA=="
},
"node_modules/async-limiter": {
"version": "1.0.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
+ "dev": true
},
"node_modules/async-mutex": {
"version": "0.3.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.3.2.tgz",
+ "integrity": "sha512-HuTK7E7MT7jZEh1P9GtRW9+aTWiDWWi9InbZ5hjxrnRa39KS4BW04+xLBhYNS2aXhHUIKZSw3gj4Pn1pj+qGAA==",
"dependencies": {
"tslib": "^2.3.1"
}
},
"node_modules/asynciterator": {
"version": "3.9.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/asynciterator/-/asynciterator-3.9.0.tgz",
+ "integrity": "sha512-bwLLTAnoE6Ap6XdjK/j8vDk2Vi9p3ojk0PFwM0SwktAG1k8pfRJF9ng+mmkaRFKdZCQQlOxcWnvOmX2NQ1HV0g=="
},
"node_modules/asyncjoin": {
"version": "1.2.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/asyncjoin/-/asyncjoin-1.2.4.tgz",
+ "integrity": "sha512-7/1g5uV2/iTDQteJ/pxqZq6qkO5406V+vNyOCYtHJ+mo6bmvvQHHrZgd7AtU/rx+cnz08NPWlwk8daW61thnlA==",
"dependencies": {
"asynciterator": "^3.9.0"
}
},
"node_modules/asynckit": {
"version": "0.4.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
},
"node_modules/atomic-sleep": {
"version": "1.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz",
+ "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==",
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/available-typed-arrays": {
"version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
+ "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"possible-typed-array-names": "^1.0.0"
},
@@ -6068,7 +6735,8 @@
},
"node_modules/awilix": {
"version": "7.0.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/awilix/-/awilix-7.0.3.tgz",
+ "integrity": "sha512-4Nmjyh9qloDwXfDK0DBuWd8WyFApyknoaKbE3leQflGLgNfNsBHy2/VYrlyy/mzMobjJ3J8XtNpbjzG3KRkIFQ==",
"dependencies": {
"camel-case": "^4.1.2",
"fast-glob": "^3.2.11"
@@ -6079,28 +6747,32 @@
},
"node_modules/aws-sign2": {
"version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
"dev": true,
- "license": "Apache-2.0",
"engines": {
"node": "*"
}
},
"node_modules/aws-ssl-profiles": {
"version": "1.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/aws-ssl-profiles/-/aws-ssl-profiles-1.1.2.tgz",
+ "integrity": "sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==",
"engines": {
"node": ">= 6.0.0"
}
},
"node_modules/aws4": {
"version": "1.13.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz",
+ "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==",
+ "dev": true
},
"node_modules/axe-core": {
"version": "4.10.2",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.2.tgz",
+ "integrity": "sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==",
"dev": true,
- "license": "MPL-2.0",
"peer": true,
"engines": {
"node": ">=4"
@@ -6108,7 +6780,8 @@
},
"node_modules/axios": {
"version": "1.7.9",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz",
+ "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==",
"dependencies": {
"follow-redirects": "^1.15.6",
"form-data": "^4.0.0",
@@ -6117,8 +6790,9 @@
},
"node_modules/axobject-query": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz",
+ "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==",
"dev": true,
- "license": "Apache-2.0",
"peer": true,
"engines": {
"node": ">= 0.4"
@@ -6126,23 +6800,27 @@
},
"node_modules/b4a": {
"version": "1.6.7",
- "dev": true,
- "license": "Apache-2.0"
+ "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz",
+ "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==",
+ "dev": true
},
"node_modules/balanced-match": {
"version": "1.0.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"node_modules/bare-events": {
"version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.0.tgz",
+ "integrity": "sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==",
"dev": true,
- "license": "Apache-2.0",
"optional": true
},
"node_modules/bare-fs": {
"version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.5.tgz",
+ "integrity": "sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==",
"dev": true,
- "license": "Apache-2.0",
"optional": true,
"dependencies": {
"bare-events": "^2.0.0",
@@ -6152,37 +6830,43 @@
},
"node_modules/bare-os": {
"version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.4.4.tgz",
+ "integrity": "sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==",
"dev": true,
- "license": "Apache-2.0",
"optional": true
},
"node_modules/bare-path": {
"version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.3.tgz",
+ "integrity": "sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==",
"dev": true,
- "license": "Apache-2.0",
"optional": true,
"dependencies": {
"bare-os": "^2.1.0"
}
},
"node_modules/bare-stream": {
- "version": "2.4.2",
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.6.1.tgz",
+ "integrity": "sha512-eVZbtKM+4uehzrsj49KtCy3Pbg7kO1pJ3SKZ1SFrIH/0pnj9scuGGgUlNDf/7qS8WKtGdiJY5Kyhs/ivYPTB/g==",
"dev": true,
- "license": "Apache-2.0",
"optional": true,
"dependencies": {
- "streamx": "^2.20.0"
+ "streamx": "^2.21.0"
}
},
"node_modules/base-x": {
"version": "3.0.10",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz",
+ "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==",
"dependencies": {
"safe-buffer": "^5.0.1"
}
},
"node_modules/base64-js": {
"version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
"funding": [
{
"type": "github",
@@ -6196,58 +6880,68 @@
"type": "consulting",
"url": "https://feross.org/support"
}
- ],
- "license": "MIT"
+ ]
},
"node_modules/base64url": {
"version": "3.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz",
+ "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/bcrypt-pbkdf": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"tweetnacl": "^0.14.3"
}
},
"node_modules/bcrypt-pbkdf/node_modules/tweetnacl": {
"version": "0.14.5",
- "dev": true,
- "license": "Unlicense"
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==",
+ "dev": true
},
"node_modules/bech32": {
"version": "1.1.4",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz",
+ "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ=="
},
"node_modules/big-integer": {
"version": "1.6.52",
- "license": "Unlicense",
+ "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz",
+ "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==",
"engines": {
"node": ">=0.6"
}
},
"node_modules/bignumber.js": {
"version": "9.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz",
+ "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==",
"engines": {
"node": "*"
}
},
"node_modules/binary": {
"version": "0.3.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz",
+ "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==",
"dependencies": {
"buffers": "~0.1.1",
"chainsaw": "~0.1.0"
+ },
+ "engines": {
+ "node": "*"
}
},
"node_modules/binary-extensions": {
"version": "2.3.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
"engines": {
"node": ">=8"
},
@@ -6257,14 +6951,16 @@
},
"node_modules/bindings": {
"version": "1.5.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+ "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
"dependencies": {
"file-uri-to-path": "1.0.0"
}
},
"node_modules/bl": {
"version": "5.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz",
+ "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==",
"dependencies": {
"buffer": "^6.0.3",
"inherits": "^2.0.4",
@@ -6273,7 +6969,8 @@
},
"node_modules/bl/node_modules/readable-stream": {
"version": "3.6.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"dependencies": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -6285,19 +6982,23 @@
},
"node_modules/blakejs": {
"version": "1.2.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz",
+ "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ=="
},
"node_modules/bluebird": {
"version": "3.4.7",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz",
+ "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA=="
},
"node_modules/bn.js": {
"version": "5.2.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
+ "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="
},
"node_modules/body-parser": {
"version": "1.20.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
+ "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
"dependencies": {
"bytes": "3.1.2",
"content-type": "~1.0.5",
@@ -6319,14 +7020,16 @@
},
"node_modules/body-parser/node_modules/debug": {
"version": "2.6.9",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/body-parser/node_modules/iconv-lite": {
"version": "0.4.24",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3"
},
@@ -6336,11 +7039,13 @@
},
"node_modules/body-parser/node_modules/ms": {
"version": "2.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/boxen": {
"version": "5.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz",
+ "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==",
"dependencies": {
"ansi-align": "^3.0.0",
"camelcase": "^6.2.0",
@@ -6360,7 +7065,8 @@
},
"node_modules/brace-expansion": {
"version": "1.1.11",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -6368,7 +7074,8 @@
},
"node_modules/braces": {
"version": "3.0.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"dependencies": {
"fill-range": "^7.1.1"
},
@@ -6378,20 +7085,24 @@
},
"node_modules/brorand": {
"version": "1.1.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w=="
},
"node_modules/browser-process-hrtime": {
"version": "1.0.0",
- "dev": true,
- "license": "BSD-2-Clause"
+ "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
+ "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==",
+ "dev": true
},
"node_modules/browser-stdout": {
"version": "1.3.1",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
+ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw=="
},
"node_modules/browserify-aes": {
"version": "1.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
"dependencies": {
"buffer-xor": "^1.0.3",
"cipher-base": "^1.0.0",
@@ -6403,6 +7114,8 @@
},
"node_modules/browserslist": {
"version": "4.24.2",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz",
+ "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==",
"dev": true,
"funding": [
{
@@ -6418,7 +7131,6 @@
"url": "https://github.com/sponsors/ai"
}
],
- "license": "MIT",
"dependencies": {
"caniuse-lite": "^1.0.30001669",
"electron-to-chromium": "^1.5.41",
@@ -6434,14 +7146,16 @@
},
"node_modules/bs58": {
"version": "4.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
+ "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
"dependencies": {
"base-x": "^3.0.2"
}
},
"node_modules/bs58check": {
"version": "2.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz",
+ "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==",
"dependencies": {
"bs58": "^4.0.0",
"create-hash": "^1.1.0",
@@ -6450,6 +7164,8 @@
},
"node_modules/buffer": {
"version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
"funding": [
{
"type": "github",
@@ -6464,7 +7180,6 @@
"url": "https://feross.org/support"
}
],
- "license": "MIT",
"dependencies": {
"base64-js": "^1.3.1",
"ieee754": "^1.2.1"
@@ -6472,42 +7187,51 @@
},
"node_modules/buffer-equal-constant-time": {
"version": "1.0.1",
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
+ "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA=="
},
"node_modules/buffer-from": {
"version": "1.1.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
},
"node_modules/buffer-indexof-polyfill": {
"version": "1.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz",
+ "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==",
"engines": {
"node": ">=0.10"
}
},
"node_modules/buffer-reverse": {
"version": "1.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/buffer-reverse/-/buffer-reverse-1.0.1.tgz",
+ "integrity": "sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg=="
},
"node_modules/buffer-to-arraybuffer": {
"version": "0.0.5",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz",
+ "integrity": "sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==",
+ "dev": true
},
"node_modules/buffer-xor": {
"version": "1.0.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ=="
},
"node_modules/buffers": {
"version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz",
+ "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==",
"engines": {
"node": ">=0.2.0"
}
},
"node_modules/bufferutil": {
"version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz",
+ "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==",
"hasInstallScript": true,
- "license": "MIT",
"dependencies": {
"node-gyp-build": "^4.3.0"
},
@@ -6517,6 +7241,8 @@
},
"node_modules/busboy": {
"version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
+ "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
"dependencies": {
"streamsearch": "^1.1.0"
},
@@ -6526,23 +7252,157 @@
},
"node_modules/bytes": {
"version": "3.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
"engines": {
"node": ">= 0.8"
}
},
+ "node_modules/cacache": {
+ "version": "15.3.0",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz",
+ "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==",
+ "optional": true,
+ "dependencies": {
+ "@npmcli/fs": "^1.0.0",
+ "@npmcli/move-file": "^1.0.1",
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "glob": "^7.1.4",
+ "infer-owner": "^1.0.4",
+ "lru-cache": "^6.0.0",
+ "minipass": "^3.1.1",
+ "minipass-collect": "^1.0.2",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.2",
+ "mkdirp": "^1.0.3",
+ "p-map": "^4.0.0",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^3.0.2",
+ "ssri": "^8.0.1",
+ "tar": "^6.0.2",
+ "unique-filename": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/cacache/node_modules/chownr": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+ "optional": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/cacache/node_modules/fs-minipass": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+ "optional": true,
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/cacache/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "optional": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/cacache/node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "optional": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cacache/node_modules/minizlib": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
+ "optional": true,
+ "dependencies": {
+ "minipass": "^3.0.0",
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/cacache/node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "optional": true,
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/cacache/node_modules/tar": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz",
+ "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==",
+ "optional": true,
+ "dependencies": {
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "minipass": "^5.0.0",
+ "minizlib": "^2.1.1",
+ "mkdirp": "^1.0.3",
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/cacache/node_modules/tar/node_modules/minipass": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
+ "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
+ "optional": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cacache/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "optional": true
+ },
"node_modules/cacheable-lookup": {
"version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz",
+ "integrity": "sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=10.6.0"
}
},
"node_modules/cacheable-request": {
"version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz",
+ "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"clone-response": "^1.0.2",
"get-stream": "^5.1.0",
@@ -6558,8 +7418,9 @@
},
"node_modules/cacheable-request/node_modules/get-stream": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"pump": "^3.0.0"
},
@@ -6572,16 +7433,18 @@
},
"node_modules/cacheable-request/node_modules/lowercase-keys": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/caching-transform": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz",
+ "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"hasha": "^5.0.0",
"make-dir": "^3.0.0",
@@ -6594,7 +7457,8 @@
},
"node_modules/call-bind": {
"version": "1.0.8",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
+ "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
"dependencies": {
"call-bind-apply-helpers": "^1.0.0",
"es-define-property": "^1.0.0",
@@ -6609,8 +7473,9 @@
}
},
"node_modules/call-bind-apply-helpers": {
- "version": "1.0.0",
- "license": "MIT",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz",
+ "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==",
"dependencies": {
"es-errors": "^1.3.0",
"function-bind": "^1.1.2"
@@ -6619,16 +7484,33 @@
"node": ">= 0.4"
}
},
+ "node_modules/call-bound": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.2.tgz",
+ "integrity": "sha512-0lk0PHFe/uz0vl527fG9CgdE9WdafjDbCXvBbs+LUv000TVt2Jjhqbs4Jwm8gz070w8xXyEAxrPOMullsxXeGg==",
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "get-intrinsic": "^1.2.5"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/callsites": {
"version": "3.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"engines": {
"node": ">=6"
}
},
"node_modules/camel-case": {
"version": "4.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
+ "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
"dependencies": {
"pascal-case": "^3.1.2",
"tslib": "^2.0.3"
@@ -6636,7 +7518,8 @@
},
"node_modules/camelcase": {
"version": "6.3.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
"engines": {
"node": ">=10"
},
@@ -6645,7 +7528,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001687",
+ "version": "1.0.30001688",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001688.tgz",
+ "integrity": "sha512-Nmqpru91cuABu/DTCXbM2NSRHzM2uVHfPnhJ/1zEAJx/ILBRVmz3pzH4N7DZqbdG0gWClsCC05Oj0mJ/1AWMbA==",
"dev": true,
"funding": [
{
@@ -6660,17 +7545,18 @@
"type": "github",
"url": "https://github.com/sponsors/ai"
}
- ],
- "license": "CC-BY-4.0"
+ ]
},
"node_modules/canonicalize": {
"version": "2.0.0",
- "license": "Apache-2.0"
+ "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-2.0.0.tgz",
+ "integrity": "sha512-ulDEYPv7asdKvqahuAY35c1selLdzDwHqugK92hfkzvlDCwXRRelDkR+Er33md/PtnpqHemgkuDPanZ4fiYZ8w=="
},
"node_modules/capital-case": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz",
+ "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==",
"dev": true,
- "license": "MIT",
"dependencies": {
"no-case": "^3.0.4",
"tslib": "^2.0.3",
@@ -6679,13 +7565,15 @@
},
"node_modules/caseless": {
"version": "0.12.0",
- "dev": true,
- "license": "Apache-2.0"
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==",
+ "dev": true
},
"node_modules/chai": {
"version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz",
+ "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"assertion-error": "^1.1.0",
"check-error": "^1.0.3",
@@ -6701,14 +7589,19 @@
},
"node_modules/chainsaw": {
"version": "0.1.0",
- "license": "MIT/X11",
+ "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz",
+ "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==",
"dependencies": {
"traverse": ">=0.3.0 <0.4"
+ },
+ "engines": {
+ "node": "*"
}
},
"node_modules/chalk": {
"version": "4.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -6722,7 +7615,8 @@
},
"node_modules/chalk/node_modules/supports-color": {
"version": "7.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -6732,8 +7626,9 @@
},
"node_modules/check-error": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz",
+ "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"get-func-name": "^2.0.2"
},
@@ -6743,7 +7638,8 @@
},
"node_modules/chokidar": {
"version": "4.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz",
+ "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==",
"dependencies": {
"readdirp": "^4.0.1"
},
@@ -6756,17 +7652,20 @@
},
"node_modules/chownr": {
"version": "1.1.4",
- "dev": true,
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
},
"node_modules/ci-info": {
"version": "2.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
},
"node_modules/cids": {
"version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz",
+ "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==",
+ "deprecated": "This module has been superseded by the multiformats module",
"dev": true,
- "license": "MIT",
"dependencies": {
"buffer": "^5.5.0",
"class-is": "^1.1.0",
@@ -6781,6 +7680,8 @@
},
"node_modules/cids/node_modules/buffer": {
"version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
"dev": true,
"funding": [
{
@@ -6796,7 +7697,6 @@
"url": "https://feross.org/support"
}
],
- "license": "MIT",
"dependencies": {
"base64-js": "^1.3.1",
"ieee754": "^1.1.13"
@@ -6804,8 +7704,10 @@
},
"node_modules/cids/node_modules/multicodec": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz",
+ "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==",
+ "deprecated": "This module has been superseded by the multiformats module",
"dev": true,
- "license": "MIT",
"dependencies": {
"buffer": "^5.6.0",
"varint": "^5.0.0"
@@ -6813,12 +7715,14 @@
},
"node_modules/cids/node_modules/varint": {
"version": "5.0.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz",
+ "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==",
+ "dev": true
},
"node_modules/cipher-base": {
"version": "1.0.6",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.6.tgz",
+ "integrity": "sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==",
"dependencies": {
"inherits": "^2.0.4",
"safe-buffer": "^5.2.1"
@@ -6829,23 +7733,27 @@
},
"node_modules/class-is": {
"version": "1.1.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz",
+ "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw=="
},
"node_modules/class-transformer": {
"version": "0.5.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz",
+ "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==",
+ "dev": true
},
"node_modules/clean-stack": {
"version": "2.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
"engines": {
"node": ">=6"
}
},
"node_modules/cli-boxes": {
"version": "2.2.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz",
+ "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==",
"engines": {
"node": ">=6"
},
@@ -6855,8 +7763,9 @@
},
"node_modules/cli-cursor": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz",
+ "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"restore-cursor": "^4.0.0"
},
@@ -6869,8 +7778,9 @@
},
"node_modules/cli-table3": {
"version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz",
+ "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"string-width": "^4.2.0"
},
@@ -6883,8 +7793,9 @@
},
"node_modules/cli-truncate": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz",
+ "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"slice-ansi": "^5.0.0",
"string-width": "^5.0.0"
@@ -6898,8 +7809,9 @@
},
"node_modules/cli-truncate/node_modules/ansi-regex": {
"version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -6909,8 +7821,9 @@
},
"node_modules/cli-truncate/node_modules/string-width": {
"version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"eastasianwidth": "^0.2.0",
"emoji-regex": "^9.2.2",
@@ -6925,8 +7838,9 @@
},
"node_modules/cli-truncate/node_modules/strip-ansi": {
"version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ansi-regex": "^6.0.1"
},
@@ -6939,7 +7853,8 @@
},
"node_modules/cliui": {
"version": "8.0.1",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
"dependencies": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.1",
@@ -6951,8 +7866,9 @@
},
"node_modules/clone-response": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz",
+ "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"mimic-response": "^1.0.0"
},
@@ -6962,16 +7878,18 @@
},
"node_modules/clone-response/node_modules/mimic-response": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/color": {
"version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
"dev": true,
- "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1",
"color-string": "^1.9.0"
@@ -6982,7 +7900,8 @@
},
"node_modules/color-convert": {
"version": "2.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -6992,23 +7911,36 @@
},
"node_modules/color-name": {
"version": "1.1.4",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/color-string": {
"version": "1.9.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
"dependencies": {
"color-name": "^1.0.0",
"simple-swizzle": "^0.2.2"
}
},
+ "node_modules/color-support": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
+ "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
+ "optional": true,
+ "bin": {
+ "color-support": "bin.js"
+ }
+ },
"node_modules/colorette": {
"version": "2.0.20",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
+ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w=="
},
"node_modules/colorspace": {
"version": "1.1.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz",
+ "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==",
"dependencies": {
"color": "^3.1.3",
"text-hex": "1.0.x"
@@ -7016,7 +7948,8 @@
},
"node_modules/colorspace/node_modules/color": {
"version": "3.2.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
+ "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
"dependencies": {
"color-convert": "^1.9.3",
"color-string": "^1.6.0"
@@ -7024,18 +7957,21 @@
},
"node_modules/colorspace/node_modules/color-convert": {
"version": "1.9.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dependencies": {
"color-name": "1.1.3"
}
},
"node_modules/colorspace/node_modules/color-name": {
"version": "1.1.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
},
"node_modules/combined-stream": {
"version": "1.0.8",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"dependencies": {
"delayed-stream": "~1.0.0"
},
@@ -7045,24 +7981,29 @@
},
"node_modules/command-exists": {
"version": "1.2.9",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz",
+ "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w=="
},
"node_modules/commander": {
"version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
+ "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": "^12.20.0 || >=14"
}
},
"node_modules/commondir": {
"version": "1.0.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
+ "dev": true
},
"node_modules/complex.js": {
"version": "2.4.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/complex.js/-/complex.js-2.4.2.tgz",
+ "integrity": "sha512-qtx7HRhPGSCBtGiST4/WGHuW+zeaND/6Ld+db6PbrulIB1i2Ev/2UPiqcmpQNPSyfBKraC0EOvOKCB5dGZKt3g==",
+ "dev": true,
"engines": {
"node": "*"
},
@@ -7073,7 +8014,8 @@
},
"node_modules/componentsjs": {
"version": "5.5.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/componentsjs/-/componentsjs-5.5.1.tgz",
+ "integrity": "sha512-hmqq+ZUa98t9CoeWPGwE14I18aXQFAt66HRd8DaZCNggcSr82vhlyrjeXX0JAUMgr2MyQzwKstkv4INRAREguA==",
"dependencies": {
"@rdfjs/types": "*",
"@types/minimist": "^1.2.0",
@@ -7095,28 +8037,39 @@
}
},
"node_modules/componentsjs/node_modules/@types/node": {
- "version": "18.19.67",
- "license": "MIT",
+ "version": "18.19.68",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.68.tgz",
+ "integrity": "sha512-QGtpFH1vB99ZmTa63K4/FU8twThj4fuVSBkGddTp7uIL/cuoLWIUSL2RcOaigBhfR+hg5pgGkBnkoOxrTVBMKw==",
"dependencies": {
"undici-types": "~5.26.4"
}
},
"node_modules/componentsjs/node_modules/undici-types": {
"version": "5.26.5",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
},
"node_modules/concat-map": {
"version": "0.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
},
"node_modules/confusing-browser-globals": {
"version": "1.0.11",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz",
+ "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==",
+ "dev": true
+ },
+ "node_modules/console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==",
+ "optional": true
},
"node_modules/content-disposition": {
"version": "0.5.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
"dependencies": {
"safe-buffer": "5.2.1"
},
@@ -7126,8 +8079,9 @@
},
"node_modules/content-hash": {
"version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz",
+ "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==",
"dev": true,
- "license": "ISC",
"dependencies": {
"cids": "^0.7.1",
"multicodec": "^0.5.5",
@@ -7136,34 +8090,40 @@
},
"node_modules/content-type": {
"version": "1.0.5",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/convert-source-map": {
"version": "1.9.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
+ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
+ "dev": true
},
"node_modules/cookie": {
"version": "0.7.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
+ "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/cookie-signature": {
"version": "1.0.6",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
},
"node_modules/core-util-is": {
"version": "1.0.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="
},
"node_modules/cors": {
"version": "2.8.5",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
"dependencies": {
"object-assign": "^4",
"vary": "^1"
@@ -7174,8 +8134,9 @@
},
"node_modules/crc-32": {
"version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
+ "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
"dev": true,
- "license": "Apache-2.0",
"bin": {
"crc32": "bin/crc32.njs"
},
@@ -7185,7 +8146,8 @@
},
"node_modules/create-hash": {
"version": "1.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
"dependencies": {
"cipher-base": "^1.0.1",
"inherits": "^2.0.1",
@@ -7196,7 +8158,8 @@
},
"node_modules/create-hmac": {
"version": "1.1.7",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
"dependencies": {
"cipher-base": "^1.0.3",
"create-hash": "^1.1.0",
@@ -7208,18 +8171,21 @@
},
"node_modules/create-require": {
"version": "1.1.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
+ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ=="
},
"node_modules/cross-fetch": {
"version": "4.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz",
+ "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==",
"dependencies": {
"node-fetch": "^2.6.12"
}
},
"node_modules/cross-fetch/node_modules/node-fetch": {
"version": "2.7.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
"dependencies": {
"whatwg-url": "^5.0.0"
},
@@ -7237,15 +8203,18 @@
},
"node_modules/cross-fetch/node_modules/tr46": {
"version": "0.0.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
"node_modules/cross-fetch/node_modules/webidl-conversions": {
"version": "3.0.1",
- "license": "BSD-2-Clause"
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
},
"node_modules/cross-fetch/node_modules/whatwg-url": {
"version": "5.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
"dependencies": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"
@@ -7253,7 +8222,8 @@
},
"node_modules/cross-spawn": {
"version": "7.0.6",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
"dependencies": {
"path-key": "^3.1.0",
"shebang-command": "^2.0.0",
@@ -7265,17 +8235,20 @@
},
"node_modules/crypto-js": {
"version": "4.2.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz",
+ "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
},
"node_modules/cssom": {
"version": "0.4.4",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz",
+ "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==",
+ "dev": true
},
"node_modules/cssstyle": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz",
+ "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==",
"dev": true,
- "license": "MIT",
"dependencies": {
"cssom": "~0.3.6"
},
@@ -7285,12 +8258,14 @@
},
"node_modules/cssstyle/node_modules/cssom": {
"version": "0.3.8",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
+ "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
+ "dev": true
},
"node_modules/d": {
"version": "1.0.2",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz",
+ "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==",
"dependencies": {
"es5-ext": "^0.10.64",
"type": "^2.7.2"
@@ -7301,8 +8276,9 @@
},
"node_modules/d3": {
"version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz",
+ "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==",
"dev": true,
- "license": "ISC",
"dependencies": {
"d3-array": "3",
"d3-axis": "3",
@@ -7341,8 +8317,9 @@
},
"node_modules/d3-array": {
"version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz",
+ "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==",
"dev": true,
- "license": "ISC",
"dependencies": {
"internmap": "1 - 2"
},
@@ -7352,16 +8329,18 @@
},
"node_modules/d3-axis": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz",
+ "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==",
"dev": true,
- "license": "ISC",
"engines": {
"node": ">=12"
}
},
"node_modules/d3-brush": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz",
+ "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==",
"dev": true,
- "license": "ISC",
"dependencies": {
"d3-dispatch": "1 - 3",
"d3-drag": "2 - 3",
@@ -7375,8 +8354,9 @@
},
"node_modules/d3-chord": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz",
+ "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==",
"dev": true,
- "license": "ISC",
"dependencies": {
"d3-path": "1 - 3"
},
@@ -7386,21 +8366,24 @@
},
"node_modules/d3-collection": {
"version": "1.0.7",
- "dev": true,
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz",
+ "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==",
+ "dev": true
},
"node_modules/d3-color": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
+ "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",
"dev": true,
- "license": "ISC",
"engines": {
"node": ">=12"
}
},
"node_modules/d3-contour": {
"version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz",
+ "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==",
"dev": true,
- "license": "ISC",
"dependencies": {
"d3-array": "^3.2.0"
},
@@ -7410,8 +8393,9 @@
},
"node_modules/d3-delaunay": {
"version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz",
+ "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==",
"dev": true,
- "license": "ISC",
"dependencies": {
"delaunator": "5"
},
@@ -7421,16 +8405,18 @@
},
"node_modules/d3-dispatch": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz",
+ "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==",
"dev": true,
- "license": "ISC",
"engines": {
"node": ">=12"
}
},
"node_modules/d3-drag": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz",
+ "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==",
"dev": true,
- "license": "ISC",
"dependencies": {
"d3-dispatch": "1 - 3",
"d3-selection": "3"
@@ -7441,8 +8427,9 @@
},
"node_modules/d3-dsv": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz",
+ "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==",
"dev": true,
- "license": "ISC",
"dependencies": {
"commander": "7",
"iconv-lite": "0.6",
@@ -7465,24 +8452,27 @@
},
"node_modules/d3-dsv/node_modules/commander": {
"version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 10"
}
},
"node_modules/d3-ease": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz",
+ "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==",
"dev": true,
- "license": "BSD-3-Clause",
"engines": {
"node": ">=12"
}
},
"node_modules/d3-fetch": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz",
+ "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==",
"dev": true,
- "license": "ISC",
"dependencies": {
"d3-dsv": "1 - 3"
},
@@ -7492,8 +8482,9 @@
},
"node_modules/d3-force": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz",
+ "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==",
"dev": true,
- "license": "ISC",
"dependencies": {
"d3-dispatch": "1 - 3",
"d3-quadtree": "1 - 3",
@@ -7505,16 +8496,18 @@
},
"node_modules/d3-format": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz",
+ "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==",
"dev": true,
- "license": "ISC",
"engines": {
"node": ">=12"
}
},
"node_modules/d3-geo": {
"version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz",
+ "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==",
"dev": true,
- "license": "ISC",
"dependencies": {
"d3-array": "2.5.0 - 3"
},
@@ -7524,16 +8517,18 @@
},
"node_modules/d3-hierarchy": {
"version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz",
+ "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==",
"dev": true,
- "license": "ISC",
"engines": {
"node": ">=12"
}
},
"node_modules/d3-interpolate": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
+ "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
"dev": true,
- "license": "ISC",
"dependencies": {
"d3-color": "1 - 3"
},
@@ -7543,8 +8538,9 @@
},
"node_modules/d3-node": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-node/-/d3-node-3.0.0.tgz",
+ "integrity": "sha512-JuuBToljSQBo+KHSuPVOEdKawsxuLDlrB8TZY8AkPkpvyKaGgX+g0ksgjRg+Mgat9fB77qFQrk09j72cD0yk7w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"d3": "^5.16.0",
"jsdom": "^16.7.0"
@@ -7552,13 +8548,15 @@
},
"node_modules/d3-node/node_modules/commander": {
"version": "2.20.3",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true
},
"node_modules/d3-node/node_modules/d3": {
"version": "5.16.0",
+ "resolved": "https://registry.npmjs.org/d3/-/d3-5.16.0.tgz",
+ "integrity": "sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"d3-array": "1",
"d3-axis": "1",
@@ -7595,18 +8593,21 @@
},
"node_modules/d3-node/node_modules/d3-array": {
"version": "1.2.4",
- "dev": true,
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz",
+ "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==",
+ "dev": true
},
"node_modules/d3-node/node_modules/d3-axis": {
"version": "1.0.12",
- "dev": true,
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.12.tgz",
+ "integrity": "sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==",
+ "dev": true
},
"node_modules/d3-node/node_modules/d3-brush": {
"version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.1.6.tgz",
+ "integrity": "sha512-7RW+w7HfMCPyZLifTz/UnJmI5kdkXtpCbombUSs8xniAyo0vIbrDzDwUJB6eJOgl9u5DQOt2TQlYumxzD1SvYA==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"d3-dispatch": "1",
"d3-drag": "1",
@@ -7617,8 +8618,9 @@
},
"node_modules/d3-node/node_modules/d3-chord": {
"version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.6.tgz",
+ "integrity": "sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"d3-array": "1",
"d3-path": "1"
@@ -7626,26 +8628,30 @@
},
"node_modules/d3-node/node_modules/d3-color": {
"version": "1.4.1",
- "dev": true,
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz",
+ "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==",
+ "dev": true
},
"node_modules/d3-node/node_modules/d3-contour": {
"version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-1.3.2.tgz",
+ "integrity": "sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"d3-array": "^1.1.1"
}
},
"node_modules/d3-node/node_modules/d3-dispatch": {
"version": "1.0.6",
- "dev": true,
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz",
+ "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==",
+ "dev": true
},
"node_modules/d3-node/node_modules/d3-drag": {
"version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.5.tgz",
+ "integrity": "sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"d3-dispatch": "1",
"d3-selection": "1"
@@ -7653,8 +8659,9 @@
},
"node_modules/d3-node/node_modules/d3-dsv": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.2.0.tgz",
+ "integrity": "sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"commander": "2",
"iconv-lite": "0.4",
@@ -7674,21 +8681,24 @@
},
"node_modules/d3-node/node_modules/d3-ease": {
"version": "1.0.7",
- "dev": true,
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.7.tgz",
+ "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==",
+ "dev": true
},
"node_modules/d3-node/node_modules/d3-fetch": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-1.2.0.tgz",
+ "integrity": "sha512-yC78NBVcd2zFAyR/HnUiBS7Lf6inSCoWcSxFfw8FYL7ydiqe80SazNwoffcqOfs95XaLo7yebsmQqDKSsXUtvA==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"d3-dsv": "1"
}
},
"node_modules/d3-node/node_modules/d3-force": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz",
+ "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"d3-collection": "1",
"d3-dispatch": "1",
@@ -7698,54 +8708,63 @@
},
"node_modules/d3-node/node_modules/d3-format": {
"version": "1.4.5",
- "dev": true,
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz",
+ "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==",
+ "dev": true
},
"node_modules/d3-node/node_modules/d3-geo": {
"version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz",
+ "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"d3-array": "1"
}
},
"node_modules/d3-node/node_modules/d3-hierarchy": {
"version": "1.1.9",
- "dev": true,
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz",
+ "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==",
+ "dev": true
},
"node_modules/d3-node/node_modules/d3-interpolate": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz",
+ "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"d3-color": "1"
}
},
"node_modules/d3-node/node_modules/d3-path": {
"version": "1.0.9",
- "dev": true,
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz",
+ "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==",
+ "dev": true
},
"node_modules/d3-node/node_modules/d3-polygon": {
"version": "1.0.6",
- "dev": true,
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.6.tgz",
+ "integrity": "sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ==",
+ "dev": true
},
"node_modules/d3-node/node_modules/d3-quadtree": {
"version": "1.0.7",
- "dev": true,
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz",
+ "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==",
+ "dev": true
},
"node_modules/d3-node/node_modules/d3-random": {
"version": "1.1.2",
- "dev": true,
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.2.tgz",
+ "integrity": "sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==",
+ "dev": true
},
"node_modules/d3-node/node_modules/d3-scale": {
"version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-2.2.2.tgz",
+ "integrity": "sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"d3-array": "^1.2.0",
"d3-collection": "1",
@@ -7757,8 +8776,9 @@
},
"node_modules/d3-node/node_modules/d3-scale-chromatic": {
"version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz",
+ "integrity": "sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"d3-color": "1",
"d3-interpolate": "1"
@@ -7766,39 +8786,45 @@
},
"node_modules/d3-node/node_modules/d3-selection": {
"version": "1.4.2",
- "dev": true,
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.2.tgz",
+ "integrity": "sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==",
+ "dev": true
},
"node_modules/d3-node/node_modules/d3-shape": {
"version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz",
+ "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"d3-path": "1"
}
},
"node_modules/d3-node/node_modules/d3-time": {
"version": "1.1.0",
- "dev": true,
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz",
+ "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==",
+ "dev": true
},
"node_modules/d3-node/node_modules/d3-time-format": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz",
+ "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"d3-time": "1"
}
},
"node_modules/d3-node/node_modules/d3-timer": {
"version": "1.0.10",
- "dev": true,
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz",
+ "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==",
+ "dev": true
},
"node_modules/d3-node/node_modules/d3-transition": {
"version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.3.2.tgz",
+ "integrity": "sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"d3-color": "1",
"d3-dispatch": "1",
@@ -7810,8 +8836,9 @@
},
"node_modules/d3-node/node_modules/d3-zoom": {
"version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.8.3.tgz",
+ "integrity": "sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"d3-dispatch": "1",
"d3-drag": "1",
@@ -7822,8 +8849,9 @@
},
"node_modules/d3-node/node_modules/iconv-lite": {
"version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3"
},
@@ -7833,40 +8861,45 @@
},
"node_modules/d3-path": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz",
+ "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==",
"dev": true,
- "license": "ISC",
"engines": {
"node": ">=12"
}
},
"node_modules/d3-polygon": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz",
+ "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==",
"dev": true,
- "license": "ISC",
"engines": {
"node": ">=12"
}
},
"node_modules/d3-quadtree": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz",
+ "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==",
"dev": true,
- "license": "ISC",
"engines": {
"node": ">=12"
}
},
"node_modules/d3-random": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz",
+ "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==",
"dev": true,
- "license": "ISC",
"engines": {
"node": ">=12"
}
},
"node_modules/d3-scale": {
"version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz",
+ "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==",
"dev": true,
- "license": "ISC",
"dependencies": {
"d3-array": "2.10.0 - 3",
"d3-format": "1 - 3",
@@ -7880,8 +8913,9 @@
},
"node_modules/d3-scale-chromatic": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz",
+ "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==",
"dev": true,
- "license": "ISC",
"dependencies": {
"d3-color": "1 - 3",
"d3-interpolate": "1 - 3"
@@ -7892,16 +8926,18 @@
},
"node_modules/d3-selection": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz",
+ "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==",
"dev": true,
- "license": "ISC",
"engines": {
"node": ">=12"
}
},
"node_modules/d3-shape": {
"version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz",
+ "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==",
"dev": true,
- "license": "ISC",
"dependencies": {
"d3-path": "^3.1.0"
},
@@ -7911,8 +8947,9 @@
},
"node_modules/d3-time": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz",
+ "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==",
"dev": true,
- "license": "ISC",
"dependencies": {
"d3-array": "2 - 3"
},
@@ -7922,8 +8959,9 @@
},
"node_modules/d3-time-format": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz",
+ "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==",
"dev": true,
- "license": "ISC",
"dependencies": {
"d3-time": "1 - 3"
},
@@ -7933,16 +8971,18 @@
},
"node_modules/d3-timer": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz",
+ "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==",
"dev": true,
- "license": "ISC",
"engines": {
"node": ">=12"
}
},
"node_modules/d3-transition": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz",
+ "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==",
"dev": true,
- "license": "ISC",
"dependencies": {
"d3-color": "1 - 3",
"d3-dispatch": "1 - 3",
@@ -7959,13 +8999,15 @@
},
"node_modules/d3-voronoi": {
"version": "1.1.4",
- "dev": true,
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz",
+ "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==",
+ "dev": true
},
"node_modules/d3-zoom": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz",
+ "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==",
"dev": true,
- "license": "ISC",
"dependencies": {
"d3-dispatch": "1 - 3",
"d3-drag": "2 - 3",
@@ -7979,14 +9021,16 @@
},
"node_modules/damerau-levenshtein": {
"version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
+ "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==",
"dev": true,
- "license": "BSD-2-Clause",
"peer": true
},
"node_modules/dashdash": {
"version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"assert-plus": "^1.0.0"
},
@@ -7996,15 +9040,17 @@
},
"node_modules/data-uri-to-buffer": {
"version": "4.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz",
+ "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==",
"engines": {
"node": ">= 12"
}
},
"node_modules/data-urls": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz",
+ "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"abab": "^2.0.3",
"whatwg-mimetype": "^2.3.0",
@@ -8016,8 +9062,9 @@
},
"node_modules/data-view-buffer": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz",
+ "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.6",
@@ -8033,8 +9080,9 @@
},
"node_modules/data-view-byte-length": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz",
+ "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.7",
@@ -8050,8 +9098,9 @@
},
"node_modules/data-view-byte-offset": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz",
+ "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.6",
@@ -8067,14 +9116,16 @@
},
"node_modules/dateformat": {
"version": "4.6.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz",
+ "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==",
"engines": {
"node": "*"
}
},
"node_modules/debug": {
- "version": "4.3.7",
- "license": "MIT",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
+ "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
"dependencies": {
"ms": "^2.1.3"
},
@@ -8089,28 +9140,32 @@
},
"node_modules/decamelize": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/decimal.js": {
"version": "10.4.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz",
+ "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==",
+ "dev": true
},
"node_modules/decode-uri-component": {
"version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10"
}
},
"node_modules/decompress-response": {
"version": "6.0.0",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
+ "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
"dependencies": {
"mimic-response": "^3.1.0"
},
@@ -8123,8 +9178,9 @@
},
"node_modules/deep-eql": {
"version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz",
+ "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"type-detect": "^4.0.0"
},
@@ -8134,18 +9190,21 @@
},
"node_modules/deep-extend": {
"version": "0.6.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
"engines": {
"node": ">=4.0.0"
}
},
"node_modules/deep-is": {
"version": "0.1.4",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
},
"node_modules/default-gateway": {
"version": "6.0.3",
- "license": "BSD-2-Clause",
+ "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz",
+ "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==",
"dependencies": {
"execa": "^5.0.0"
},
@@ -8155,8 +9214,9 @@
},
"node_modules/default-require-extensions": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz",
+ "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"strip-bom": "^4.0.0"
},
@@ -8169,15 +9229,17 @@
},
"node_modules/defer-to-connect": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
+ "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=10"
}
},
"node_modules/define-data-property": {
"version": "1.1.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
"dependencies": {
"es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
@@ -8192,8 +9254,9 @@
},
"node_modules/define-properties": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"define-data-property": "^1.0.1",
"has-property-descriptors": "^1.0.0",
@@ -8208,36 +9271,47 @@
},
"node_modules/delaunator": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz",
+ "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==",
"dev": true,
- "license": "ISC",
"dependencies": {
"robust-predicates": "^3.0.2"
}
},
"node_modules/delayed-stream": {
"version": "1.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"engines": {
"node": ">=0.4.0"
}
},
+ "node_modules/delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==",
+ "optional": true
+ },
"node_modules/denque": {
"version": "2.1.0",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz",
+ "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==",
"engines": {
"node": ">=0.10"
}
},
"node_modules/depd": {
"version": "2.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/destroy": {
"version": "1.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
"engines": {
"node": ">= 0.8",
"npm": "1.2.8000 || >= 1.4.16"
@@ -8245,41 +9319,44 @@
},
"node_modules/detect-libc": {
"version": "2.0.3",
- "dev": true,
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz",
+ "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==",
"engines": {
"node": ">=8"
}
},
"node_modules/diff": {
"version": "4.0.2",
- "license": "BSD-3-Clause",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
"engines": {
"node": ">=0.3.1"
}
},
"node_modules/dkg-evm-module": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/dkg-evm-module/-/dkg-evm-module-4.4.0.tgz",
- "integrity": "sha512-2hBZI/KnbbOEiKr3mU7Nknz3Wis8hLWGvyCifevG4/fUO8v+oVdrshLvQJ6izAfDHeua2PHcW8Z3hn6eIdUVxA==",
- "dependencies": {
- "@openzeppelin/contracts": "^4.9.3",
- "@polkadot/api": "^11.0.3",
- "@polkadot/keyring": "^12.6.2",
- "@polkadot/util": "^12.6.2",
- "@polkadot/util-crypto": "^12.6.2",
- "@prb/math": "^2.5.0",
- "dotenv": "^16.0.3",
- "hardhat": "^2.22.5",
- "hardhat-deploy": "^0.11.25",
- "hardhat-deploy-ethers": "^0.3.0-beta.13",
+ "version": "8.0.0-sigma.3",
+ "resolved": "https://registry.npmjs.org/dkg-evm-module/-/dkg-evm-module-8.0.0-sigma.3.tgz",
+ "integrity": "sha512-32vhPrSwzSZt2cG3j5nf3y0Cu3QhMhanc7DeoXQ2e5VGKLVlA3yuNGw5e1zm0z3kQputYzNJaeznBFu13tDRwQ==",
+ "dependencies": {
+ "@openzeppelin/contracts": "^5.1.0",
+ "@polkadot/api": "^15.0.2",
+ "@polkadot/keyring": "^13.2.3",
+ "@polkadot/util": "^13.2.3",
+ "@polkadot/util-crypto": "^13.2.3",
+ "@prb/math": "^4.1.0",
+ "dotenv": "^16.4.7",
+ "hardhat": "^2.22.17",
+ "hardhat-deploy": "^0.12.4",
+ "hardhat-deploy-ethers": "^0.4.2",
+ "solady": "^0.0.285",
"ts-node": "^10.9.1",
- "typescript": "^4.9.4"
+ "typescript": "^5.7.2"
}
},
"node_modules/dkg-evm-module/node_modules/@noble/hashes": {
"version": "1.6.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.6.1.tgz",
+ "integrity": "sha512-pq5D8h10hHBjyqX+cfBm0i8JUXJ0UhczFc4r74zbuT9XgewFo2E3J1cOaGtdZynILNmQ685YWGzGE1Zv6io50w==",
"engines": {
"node": "^14.21.3 || >=16"
},
@@ -8287,9 +9364,905 @@
"url": "https://paulmillr.com/funding/"
}
},
+ "node_modules/dkg-evm-module/node_modules/@nomicfoundation/hardhat-ethers": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ethers/-/hardhat-ethers-3.0.8.tgz",
+ "integrity": "sha512-zhOZ4hdRORls31DTOqg+GmEZM0ujly8GGIuRY7t7szEk2zW/arY1qDug/py8AEktT00v5K+b6RvbVog+va51IA==",
+ "peer": true,
+ "dependencies": {
+ "debug": "^4.1.1",
+ "lodash.isequal": "^4.5.0"
+ },
+ "peerDependencies": {
+ "ethers": "^6.1.0",
+ "hardhat": "^2.0.0"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@openzeppelin/contracts": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.1.0.tgz",
+ "integrity": "sha512-p1ULhl7BXzjjbha5aqst+QMLY+4/LCWADXOCsmLHRM77AqiPjnd9vvUN9sosUfhL9JGKpZ0TjEGxgvnizmWGSA=="
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot-api/json-rpc-provider-proxy": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@polkadot-api/json-rpc-provider-proxy/-/json-rpc-provider-proxy-0.1.0.tgz",
+ "integrity": "sha512-8GSFE5+EF73MCuLQm8tjrbCqlgclcHBSRaswvXziJ0ZW7iw3UEMsKkkKvELayWyBuOPa2T5i1nj6gFOeIsqvrg==",
+ "optional": true
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot-api/metadata-builders": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@polkadot-api/metadata-builders/-/metadata-builders-0.3.2.tgz",
+ "integrity": "sha512-TKpfoT6vTb+513KDzMBTfCb/ORdgRnsS3TDFpOhAhZ08ikvK+hjHMt5plPiAX/OWkm1Wc9I3+K6W0hX5Ab7MVg==",
+ "optional": true,
+ "dependencies": {
+ "@polkadot-api/substrate-bindings": "0.6.0",
+ "@polkadot-api/utils": "0.1.0"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot-api/observable-client": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@polkadot-api/observable-client/-/observable-client-0.3.2.tgz",
+ "integrity": "sha512-HGgqWgEutVyOBXoGOPp4+IAq6CNdK/3MfQJmhCJb8YaJiaK4W6aRGrdQuQSTPHfERHCARt9BrOmEvTXAT257Ug==",
+ "optional": true,
+ "dependencies": {
+ "@polkadot-api/metadata-builders": "0.3.2",
+ "@polkadot-api/substrate-bindings": "0.6.0",
+ "@polkadot-api/utils": "0.1.0"
+ },
+ "peerDependencies": {
+ "@polkadot-api/substrate-client": "0.1.4",
+ "rxjs": ">=7.8.0"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot-api/substrate-bindings": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/@polkadot-api/substrate-bindings/-/substrate-bindings-0.6.0.tgz",
+ "integrity": "sha512-lGuhE74NA1/PqdN7fKFdE5C1gNYX357j1tWzdlPXI0kQ7h3kN0zfxNOpPUN7dIrPcOFZ6C0tRRVrBylXkI6xPw==",
+ "optional": true,
+ "dependencies": {
+ "@noble/hashes": "^1.3.1",
+ "@polkadot-api/utils": "0.1.0",
+ "@scure/base": "^1.1.1",
+ "scale-ts": "^1.6.0"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot-api/substrate-client": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/@polkadot-api/substrate-client/-/substrate-client-0.1.4.tgz",
+ "integrity": "sha512-MljrPobN0ZWTpn++da9vOvt+Ex+NlqTlr/XT7zi9sqPtDJiQcYl+d29hFAgpaeTqbeQKZwz3WDE9xcEfLE8c5A==",
+ "optional": true,
+ "dependencies": {
+ "@polkadot-api/json-rpc-provider": "0.0.1",
+ "@polkadot-api/utils": "0.1.0"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot-api/utils": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@polkadot-api/utils/-/utils-0.1.0.tgz",
+ "integrity": "sha512-MXzWZeuGxKizPx2Xf/47wx9sr/uxKw39bVJUptTJdsaQn/TGq+z310mHzf1RCGvC1diHM8f593KrnDgc9oNbJA==",
+ "optional": true
+ },
"node_modules/dkg-evm-module/node_modules/@polkadot/api": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-15.0.2.tgz",
+ "integrity": "sha512-CA8Pq2Gsz2MJvpkpIVNzaBs2eJGCr0sEodAb0vTOZW/ZlIDHcBWyWq3KXE+lBMWVzYBEC4Vz6MafNgq6Bsshlw==",
+ "dependencies": {
+ "@polkadot/api-augment": "15.0.2",
+ "@polkadot/api-base": "15.0.2",
+ "@polkadot/api-derive": "15.0.2",
+ "@polkadot/keyring": "^13.2.3",
+ "@polkadot/rpc-augment": "15.0.2",
+ "@polkadot/rpc-core": "15.0.2",
+ "@polkadot/rpc-provider": "15.0.2",
+ "@polkadot/types": "15.0.2",
+ "@polkadot/types-augment": "15.0.2",
+ "@polkadot/types-codec": "15.0.2",
+ "@polkadot/types-create": "15.0.2",
+ "@polkadot/types-known": "15.0.2",
+ "@polkadot/util": "^13.2.3",
+ "@polkadot/util-crypto": "^13.2.3",
+ "eventemitter3": "^5.0.1",
+ "rxjs": "^7.8.1",
+ "tslib": "^2.8.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/api-augment": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-15.0.2.tgz",
+ "integrity": "sha512-7qtfTihLKS7cT2kEsd8Y1+MJ+2n4Sl0y9BHuPhdNfKcDbGwCxIB7JzXNujww4Is4bF7w1lXcM2U0E/XwJi1BbQ==",
+ "dependencies": {
+ "@polkadot/api-base": "15.0.2",
+ "@polkadot/rpc-augment": "15.0.2",
+ "@polkadot/types": "15.0.2",
+ "@polkadot/types-augment": "15.0.2",
+ "@polkadot/types-codec": "15.0.2",
+ "@polkadot/util": "^13.2.3",
+ "tslib": "^2.8.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/api-base": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/api-base/-/api-base-15.0.2.tgz",
+ "integrity": "sha512-5++EjpuCxzmrL2JJj511RrPK+IovuIQa8DJhyOp62VDMXPkqS/O6Df5wjYzQh/ftT1ZysftXqJAUA/LSUsH+2g==",
+ "dependencies": {
+ "@polkadot/rpc-core": "15.0.2",
+ "@polkadot/types": "15.0.2",
+ "@polkadot/util": "^13.2.3",
+ "rxjs": "^7.8.1",
+ "tslib": "^2.8.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/api-derive": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-15.0.2.tgz",
+ "integrity": "sha512-nD8hXZxEv2/wuhjMmVP09lTAYd8inNgrLpLGUR+7hBQeVEQQTdNatkqMKpNIOk2MO46mtUK35NepvDBK9DWZzA==",
+ "dependencies": {
+ "@polkadot/api": "15.0.2",
+ "@polkadot/api-augment": "15.0.2",
+ "@polkadot/api-base": "15.0.2",
+ "@polkadot/rpc-core": "15.0.2",
+ "@polkadot/types": "15.0.2",
+ "@polkadot/types-codec": "15.0.2",
+ "@polkadot/util": "^13.2.3",
+ "@polkadot/util-crypto": "^13.2.3",
+ "rxjs": "^7.8.1",
+ "tslib": "^2.8.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/keyring": {
+ "version": "13.2.3",
+ "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-13.2.3.tgz",
+ "integrity": "sha512-pgTo6DXNXub0wGD+MnVHYhKxf80Jl+QMOCb818ioGdXz++Uw4mTueFAwtB+N7TGo0HafhChUiNJDxFdlDkcAng==",
+ "dependencies": {
+ "@polkadot/util": "13.2.3",
+ "@polkadot/util-crypto": "13.2.3",
+ "tslib": "^2.8.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@polkadot/util": "13.2.3",
+ "@polkadot/util-crypto": "13.2.3"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/networks": {
+ "version": "13.2.3",
+ "resolved": "https://registry.npmjs.org/@polkadot/networks/-/networks-13.2.3.tgz",
+ "integrity": "sha512-mG+zkXg/33AyPrkv2xBbAo3LBUwOwBn6qznBU/4jxiZPnVvCwMaxE7xHM22B5riItbNJ169FXv3wy0v6ZmkFbw==",
+ "dependencies": {
+ "@polkadot/util": "13.2.3",
+ "@substrate/ss58-registry": "^1.51.0",
+ "tslib": "^2.8.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/rpc-augment": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-15.0.2.tgz",
+ "integrity": "sha512-of88GdzsOs15HP+Gowh4G/iKKFkCNIeF0Wes8LiONfn+j2TmWt8blbyGhrIZZeApzbFUDFjnxUPGT40uWJcMpw==",
+ "dependencies": {
+ "@polkadot/rpc-core": "15.0.2",
+ "@polkadot/types": "15.0.2",
+ "@polkadot/types-codec": "15.0.2",
+ "@polkadot/util": "^13.2.3",
+ "tslib": "^2.8.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/rpc-core": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-15.0.2.tgz",
+ "integrity": "sha512-KOUnfXOAFCN0N23sEbS+FzXhX88JCvJst/nKzO9+q67NgYBEqgcaoG4tqt/VVedgkNi0kA7WAA3wyjt5UYMnrg==",
+ "dependencies": {
+ "@polkadot/rpc-augment": "15.0.2",
+ "@polkadot/rpc-provider": "15.0.2",
+ "@polkadot/types": "15.0.2",
+ "@polkadot/util": "^13.2.3",
+ "rxjs": "^7.8.1",
+ "tslib": "^2.8.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/rpc-provider": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-15.0.2.tgz",
+ "integrity": "sha512-BwLP8gNskzqtQ2kMk+EX6WK4d9TU0XJ/nJg0TKC2dX5sSTpTF2JQIYp1wuOik4rKNXIU/1hKaDSSylMJj7AHeQ==",
+ "dependencies": {
+ "@polkadot/keyring": "^13.2.3",
+ "@polkadot/types": "15.0.2",
+ "@polkadot/types-support": "15.0.2",
+ "@polkadot/util": "^13.2.3",
+ "@polkadot/util-crypto": "^13.2.3",
+ "@polkadot/x-fetch": "^13.2.3",
+ "@polkadot/x-global": "^13.2.3",
+ "@polkadot/x-ws": "^13.2.3",
+ "eventemitter3": "^5.0.1",
+ "mock-socket": "^9.3.1",
+ "nock": "^13.5.5",
+ "tslib": "^2.8.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "@substrate/connect": "0.8.11"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/types": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-15.0.2.tgz",
+ "integrity": "sha512-6gZBnuXU58hQAXWI2daED2OaQwFMxbQdkE8HVGMovMobEf0PxPfIqf+GdnVmWbe09EU9mv2gCWBcdnvHSRBlQg==",
+ "dependencies": {
+ "@polkadot/keyring": "^13.2.3",
+ "@polkadot/types-augment": "15.0.2",
+ "@polkadot/types-codec": "15.0.2",
+ "@polkadot/types-create": "15.0.2",
+ "@polkadot/util": "^13.2.3",
+ "@polkadot/util-crypto": "^13.2.3",
+ "rxjs": "^7.8.1",
+ "tslib": "^2.8.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/types-augment": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-15.0.2.tgz",
+ "integrity": "sha512-UiFJVEYML30+V9GdFAHPbA3s4MVQTL1CevsZMnX0+ApvlgEHJMZnVFfYF7jL2bl9BcUYM/zoxEAhj2MpqFFfxw==",
+ "dependencies": {
+ "@polkadot/types": "15.0.2",
+ "@polkadot/types-codec": "15.0.2",
+ "@polkadot/util": "^13.2.3",
+ "tslib": "^2.8.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/types-codec": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-15.0.2.tgz",
+ "integrity": "sha512-44Q40p1rl0t7Bl1QUamewqXNVPway9xgqByyifv6ODSGhtt+lFoarb3U4JzqRUuuK0PP57ePB0L8q81Totxeew==",
+ "dependencies": {
+ "@polkadot/util": "^13.2.3",
+ "@polkadot/x-bigint": "^13.2.3",
+ "tslib": "^2.8.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/types-create": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-create/-/types-create-15.0.2.tgz",
+ "integrity": "sha512-YhpcqbH3oI87PkgrV6Fez9jWDqFIep0KcS1YWQcwc9gsBNnuour80t2AAK41/tqAYwOZi6tpJwIevnEhVkxFYA==",
+ "dependencies": {
+ "@polkadot/types-codec": "15.0.2",
+ "@polkadot/util": "^13.2.3",
+ "tslib": "^2.8.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/types-known": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-15.0.2.tgz",
+ "integrity": "sha512-SyBo4xBoesHYiEfdW/nOgaftKgM7+puBWqQXq1Euz0MM5LDLjxBw22Srgk9ulGM6l9MsekIwCyX8geJ6/6J3Cg==",
+ "dependencies": {
+ "@polkadot/networks": "^13.2.3",
+ "@polkadot/types": "15.0.2",
+ "@polkadot/types-codec": "15.0.2",
+ "@polkadot/types-create": "15.0.2",
+ "@polkadot/util": "^13.2.3",
+ "tslib": "^2.8.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/types-support": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-support/-/types-support-15.0.2.tgz",
+ "integrity": "sha512-I7Im/4K2/XDZ1LfeQeeNyvIkfvozIPQs8K1/nsICDOmBbvIsjxSeKWHOcFDMJ8AlPEer6bqNQavOyZA/pg9R/Q==",
+ "dependencies": {
+ "@polkadot/util": "^13.2.3",
+ "tslib": "^2.8.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/util": {
+ "version": "13.2.3",
+ "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-13.2.3.tgz",
+ "integrity": "sha512-pioNnsig3qHXrfOKMe4Yqos8B8N3/EZUpS+WfTpWnn1VjYban/0GrTXeavPlAwggnY27b8fS6rBzQBhnVYDw8g==",
+ "dependencies": {
+ "@polkadot/x-bigint": "13.2.3",
+ "@polkadot/x-global": "13.2.3",
+ "@polkadot/x-textdecoder": "13.2.3",
+ "@polkadot/x-textencoder": "13.2.3",
+ "@types/bn.js": "^5.1.6",
+ "bn.js": "^5.2.1",
+ "tslib": "^2.8.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/util-crypto": {
+ "version": "13.2.3",
+ "resolved": "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-13.2.3.tgz",
+ "integrity": "sha512-5sbggmLbn5eiuVMyPROPlT5roHRqdKHOfSpioNbGvGIZ1qIWVoC1RfsK0NWJOVGDzy6DpQe0KYT/kgcU5Xsrzw==",
+ "dependencies": {
+ "@noble/curves": "^1.3.0",
+ "@noble/hashes": "^1.3.3",
+ "@polkadot/networks": "13.2.3",
+ "@polkadot/util": "13.2.3",
+ "@polkadot/wasm-crypto": "^7.4.1",
+ "@polkadot/wasm-util": "^7.4.1",
+ "@polkadot/x-bigint": "13.2.3",
+ "@polkadot/x-randomvalues": "13.2.3",
+ "@scure/base": "^1.1.7",
+ "tslib": "^2.8.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@polkadot/util": "13.2.3"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/wasm-bridge": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-bridge/-/wasm-bridge-7.4.1.tgz",
+ "integrity": "sha512-tdkJaV453tezBxhF39r4oeG0A39sPKGDJmN81LYLf+Fihb7astzwju+u75BRmDrHZjZIv00un3razJEWCxze6g==",
+ "dependencies": {
+ "@polkadot/wasm-util": "7.4.1",
+ "tslib": "^2.7.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@polkadot/util": "*",
+ "@polkadot/x-randomvalues": "*"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/wasm-crypto": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto/-/wasm-crypto-7.4.1.tgz",
+ "integrity": "sha512-kHN/kF7hYxm1y0WeFLWeWir6oTzvcFmR4N8fJJokR+ajYbdmrafPN+6iLgQVbhZnDdxyv9jWDuRRsDnBx8tPMQ==",
+ "dependencies": {
+ "@polkadot/wasm-bridge": "7.4.1",
+ "@polkadot/wasm-crypto-asmjs": "7.4.1",
+ "@polkadot/wasm-crypto-init": "7.4.1",
+ "@polkadot/wasm-crypto-wasm": "7.4.1",
+ "@polkadot/wasm-util": "7.4.1",
+ "tslib": "^2.7.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@polkadot/util": "*",
+ "@polkadot/x-randomvalues": "*"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/wasm-crypto-asmjs": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-7.4.1.tgz",
+ "integrity": "sha512-pwU8QXhUW7IberyHJIQr37IhbB6DPkCG5FhozCiNTq4vFBsFPjm9q8aZh7oX1QHQaiAZa2m2/VjIVE+FHGbvHQ==",
+ "dependencies": {
+ "tslib": "^2.7.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@polkadot/util": "*"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/wasm-crypto-init": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-init/-/wasm-crypto-init-7.4.1.tgz",
+ "integrity": "sha512-AVka33+f7MvXEEIGq5U0dhaA2SaXMXnxVCQyhJTaCnJ5bRDj0Xlm3ijwDEQUiaDql7EikbkkRtmlvs95eSUWYQ==",
+ "dependencies": {
+ "@polkadot/wasm-bridge": "7.4.1",
+ "@polkadot/wasm-crypto-asmjs": "7.4.1",
+ "@polkadot/wasm-crypto-wasm": "7.4.1",
+ "@polkadot/wasm-util": "7.4.1",
+ "tslib": "^2.7.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@polkadot/util": "*",
+ "@polkadot/x-randomvalues": "*"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/wasm-crypto-wasm": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-7.4.1.tgz",
+ "integrity": "sha512-PE1OAoupFR0ZOV2O8tr7D1FEUAwaggzxtfs3Aa5gr+yxlSOaWUKeqsOYe1KdrcjmZVV3iINEAXxgrbzCmiuONg==",
+ "dependencies": {
+ "@polkadot/wasm-util": "7.4.1",
+ "tslib": "^2.7.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@polkadot/util": "*"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/wasm-util": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-util/-/wasm-util-7.4.1.tgz",
+ "integrity": "sha512-RAcxNFf3zzpkr+LX/ItAsvj+QyM56TomJ0xjUMo4wKkHjwsxkz4dWJtx5knIgQz/OthqSDMR59VNEycQeNuXzA==",
+ "dependencies": {
+ "tslib": "^2.7.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@polkadot/util": "*"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/x-bigint": {
+ "version": "13.2.3",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-13.2.3.tgz",
+ "integrity": "sha512-VKgEAh0LsxTd/Hg517Tt5ZU4CySjBwMpaojbkjgv3fOdg1cN7t4eFEUxpyj7mlO0cp22SzDh7nmy4TO98qhLQA==",
+ "dependencies": {
+ "@polkadot/x-global": "13.2.3",
+ "tslib": "^2.8.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/x-fetch": {
+ "version": "13.2.3",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-fetch/-/x-fetch-13.2.3.tgz",
+ "integrity": "sha512-7Nmk+8ieEGzz43nc1rX6nH3rQo6rhGmAaIXJWnXY9gOHY0k1me1bJYbP+xDdh8vcLh8eY3D1sESUwG6QYZW2lg==",
+ "dependencies": {
+ "@polkadot/x-global": "13.2.3",
+ "node-fetch": "^3.3.2",
+ "tslib": "^2.8.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/x-global": {
+ "version": "13.2.3",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-13.2.3.tgz",
+ "integrity": "sha512-7MYQIAEwBkRcNrgqac5PbB0kNPlI6ISJEy6/Nb+crj8BFjQ8rf11PF49fq0QsvDeuYM1aNLigrvYZNptQs4lbw==",
+ "dependencies": {
+ "tslib": "^2.8.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/x-randomvalues": {
+ "version": "13.2.3",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-13.2.3.tgz",
+ "integrity": "sha512-Zf0GTfLmVk+VzPUmcQSpXjjmFzMTjPhXoLuIoE7xIu73T+vQ+TX9j7DvorN6bIRsnZ9l1SyTZsSf/NTjNZKIZg==",
+ "dependencies": {
+ "@polkadot/x-global": "13.2.3",
+ "tslib": "^2.8.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@polkadot/util": "13.2.3",
+ "@polkadot/wasm-util": "*"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/x-textdecoder": {
+ "version": "13.2.3",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-13.2.3.tgz",
+ "integrity": "sha512-i8hRXPtGknmdm3FYv6/94I52VXHJZa5sgYNw1+Hqb4Jqmq4awUjea35CKXd/+aw70Qn8Ngg31l2GoiH494fa+Q==",
+ "dependencies": {
+ "@polkadot/x-global": "13.2.3",
+ "tslib": "^2.8.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/x-textencoder": {
+ "version": "13.2.3",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-13.2.3.tgz",
+ "integrity": "sha512-wJI3Bb/dC4zyBXJFm5+ZhyBXWoI5wvP8k8qX0/ZC0PQsgSAqs7LVhiofk4Wd94n0P41W5re58LrGXLyziSAshw==",
+ "dependencies": {
+ "@polkadot/x-global": "13.2.3",
+ "tslib": "^2.8.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@polkadot/x-ws": {
+ "version": "13.2.3",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-ws/-/x-ws-13.2.3.tgz",
+ "integrity": "sha512-Y6MTAWgcnrnx/LkBx65X3ZyoJH5EFj3tXtflRoKg1+PLHSLuNBV7Wi5mLcE70z4e5c+4hgBbLq+8SqCqzFtSPw==",
+ "dependencies": {
+ "@polkadot/x-global": "13.2.3",
+ "tslib": "^2.8.0",
+ "ws": "^8.18.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@prb/math": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@prb/math/-/math-4.1.0.tgz",
+ "integrity": "sha512-ef5Xrlh3BeX4xT5/Wi810dpEPq2bYPndRxgFIaKSU1F/Op/s8af03kyom+mfU7gEpvfIZ46xu8W0duiHplbBMg=="
+ },
+ "node_modules/dkg-evm-module/node_modules/@scure/base": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.1.tgz",
+ "integrity": "sha512-DGmGtC8Tt63J5GfHgfl5CuAXh96VF/LD8K9Hr/Gv0J2lAoRGlPOMpqMpMbCTOoOJMZCk2Xt+DskdDyn6dEFdzQ==",
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@substrate/connect": {
+ "version": "0.8.11",
+ "resolved": "https://registry.npmjs.org/@substrate/connect/-/connect-0.8.11.tgz",
+ "integrity": "sha512-ofLs1PAO9AtDdPbdyTYj217Pe+lBfTLltdHDs3ds8no0BseoLeAGxpz1mHfi7zB4IxI3YyAiLjH6U8cw4pj4Nw==",
+ "deprecated": "versions below 1.x are no longer maintained",
+ "optional": true,
+ "dependencies": {
+ "@substrate/connect-extension-protocol": "^2.0.0",
+ "@substrate/connect-known-chains": "^1.1.5",
+ "@substrate/light-client-extension-helpers": "^1.0.0",
+ "smoldot": "2.0.26"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@substrate/connect-extension-protocol": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-2.2.1.tgz",
+ "integrity": "sha512-GoafTgm/Jey9E4Xlj4Z5ZBt/H4drH2CNq8VrAro80rtoznrXnFDNVivLQzZN0Xaj2g8YXSn9pC9Oc9IovYZJXw==",
+ "optional": true
+ },
+ "node_modules/dkg-evm-module/node_modules/@substrate/light-client-extension-helpers": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@substrate/light-client-extension-helpers/-/light-client-extension-helpers-1.0.0.tgz",
+ "integrity": "sha512-TdKlni1mBBZptOaeVrKnusMg/UBpWUORNDv5fdCaJklP4RJiFOzBCrzC+CyVI5kQzsXBisZ+2pXm+rIjS38kHg==",
+ "optional": true,
+ "dependencies": {
+ "@polkadot-api/json-rpc-provider": "^0.0.1",
+ "@polkadot-api/json-rpc-provider-proxy": "^0.1.0",
+ "@polkadot-api/observable-client": "^0.3.0",
+ "@polkadot-api/substrate-client": "^0.1.2",
+ "@substrate/connect-extension-protocol": "^2.0.0",
+ "@substrate/connect-known-chains": "^1.1.5",
+ "rxjs": "^7.8.1"
+ },
+ "peerDependencies": {
+ "smoldot": "2.x"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/@types/node": {
+ "version": "22.7.5",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz",
+ "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==",
+ "peer": true,
+ "dependencies": {
+ "undici-types": "~6.19.2"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/aes-js": {
+ "version": "4.0.0-beta.5",
+ "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz",
+ "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==",
+ "peer": true
+ },
+ "node_modules/dkg-evm-module/node_modules/axios": {
+ "version": "0.21.4",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
+ "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
+ "dependencies": {
+ "follow-redirects": "^1.14.0"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/chokidar": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/ethers": {
+ "version": "6.13.4",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.4.tgz",
+ "integrity": "sha512-21YtnZVg4/zKkCQPjrDj38B1r4nQvTZLopUGMLQ1ePU2zV/joCfDC3t3iKQjWRzjjjbzR+mdAIoikeBRNkdllA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/ethers-io/"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "peer": true,
+ "dependencies": {
+ "@adraffy/ens-normalize": "1.10.1",
+ "@noble/curves": "1.2.0",
+ "@noble/hashes": "1.3.2",
+ "@types/node": "22.7.5",
+ "aes-js": "4.0.0-beta.5",
+ "tslib": "2.7.0",
+ "ws": "8.17.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/ethers/node_modules/@noble/curves": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz",
+ "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==",
+ "peer": true,
+ "dependencies": {
+ "@noble/hashes": "1.3.2"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/ethers/node_modules/@noble/hashes": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz",
+ "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==",
+ "peer": true,
+ "engines": {
+ "node": ">= 16"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/ethers/node_modules/tslib": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz",
+ "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==",
+ "peer": true
+ },
+ "node_modules/dkg-evm-module/node_modules/ethers/node_modules/ws": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz",
+ "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==",
+ "peer": true,
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/hardhat-deploy": {
+ "version": "0.12.4",
+ "resolved": "https://registry.npmjs.org/hardhat-deploy/-/hardhat-deploy-0.12.4.tgz",
+ "integrity": "sha512-bYO8DIyeGxZWlhnMoCBon9HNZb6ji0jQn7ngP1t5UmGhC8rQYhji7B73qETMOFhzt5ECZPr+U52duj3nubsqdQ==",
+ "dependencies": {
+ "@ethersproject/abi": "^5.7.0",
+ "@ethersproject/abstract-signer": "^5.7.0",
+ "@ethersproject/address": "^5.7.0",
+ "@ethersproject/bignumber": "^5.7.0",
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/constants": "^5.7.0",
+ "@ethersproject/contracts": "^5.7.0",
+ "@ethersproject/providers": "^5.7.2",
+ "@ethersproject/solidity": "^5.7.0",
+ "@ethersproject/transactions": "^5.7.0",
+ "@ethersproject/wallet": "^5.7.0",
+ "@types/qs": "^6.9.7",
+ "axios": "^0.21.1",
+ "chalk": "^4.1.2",
+ "chokidar": "^3.5.2",
+ "debug": "^4.3.2",
+ "enquirer": "^2.3.6",
+ "ethers": "^5.7.0",
+ "form-data": "^4.0.0",
+ "fs-extra": "^10.0.0",
+ "match-all": "^1.2.6",
+ "murmur-128": "^0.2.1",
+ "qs": "^6.9.4",
+ "zksync-ethers": "^5.0.0"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/hardhat-deploy-ethers": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/hardhat-deploy-ethers/-/hardhat-deploy-ethers-0.4.2.tgz",
+ "integrity": "sha512-AskNH/XRYYYqPT94MvO5s1yMi+/QvoNjS4oU5VcVqfDU99kgpGETl+uIYHIrSXtH5sy7J6gyVjpRMf4x0tjLSQ==",
+ "peerDependencies": {
+ "@nomicfoundation/hardhat-ethers": "^3.0.2",
+ "hardhat": "^2.16.0",
+ "hardhat-deploy": "^0.12.0"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/hardhat-deploy/node_modules/ethers": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz",
+ "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/abi": "5.7.0",
+ "@ethersproject/abstract-provider": "5.7.0",
+ "@ethersproject/abstract-signer": "5.7.0",
+ "@ethersproject/address": "5.7.0",
+ "@ethersproject/base64": "5.7.0",
+ "@ethersproject/basex": "5.7.0",
+ "@ethersproject/bignumber": "5.7.0",
+ "@ethersproject/bytes": "5.7.0",
+ "@ethersproject/constants": "5.7.0",
+ "@ethersproject/contracts": "5.7.0",
+ "@ethersproject/hash": "5.7.0",
+ "@ethersproject/hdnode": "5.7.0",
+ "@ethersproject/json-wallets": "5.7.0",
+ "@ethersproject/keccak256": "5.7.0",
+ "@ethersproject/logger": "5.7.0",
+ "@ethersproject/networks": "5.7.1",
+ "@ethersproject/pbkdf2": "5.7.0",
+ "@ethersproject/properties": "5.7.0",
+ "@ethersproject/providers": "5.7.2",
+ "@ethersproject/random": "5.7.0",
+ "@ethersproject/rlp": "5.7.0",
+ "@ethersproject/sha2": "5.7.0",
+ "@ethersproject/signing-key": "5.7.0",
+ "@ethersproject/solidity": "5.7.0",
+ "@ethersproject/strings": "5.7.0",
+ "@ethersproject/transactions": "5.7.0",
+ "@ethersproject/units": "5.7.0",
+ "@ethersproject/wallet": "5.7.0",
+ "@ethersproject/web": "5.7.1",
+ "@ethersproject/wordlists": "5.7.0"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/smoldot": {
+ "version": "2.0.26",
+ "resolved": "https://registry.npmjs.org/smoldot/-/smoldot-2.0.26.tgz",
+ "integrity": "sha512-F+qYmH4z2s2FK+CxGj8moYcd1ekSIKH8ywkdqlOz88Dat35iB1DIYL11aILN46YSGMzQW/lbJNS307zBSDN5Ig==",
+ "optional": true,
+ "dependencies": {
+ "ws": "^8.8.1"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/typescript": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz",
+ "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/undici-types": {
+ "version": "6.19.8",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
+ "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
+ "peer": true
+ },
+ "node_modules/dkg.js": {
+ "version": "6.5.5",
+ "resolved": "https://registry.npmjs.org/dkg.js/-/dkg.js-6.5.5.tgz",
+ "integrity": "sha512-MSVbGYAZkWtTPCdDG+PLAsy/lGff5IKvCnk0QEdZ6P6ieV6Hbq4HMJHIxpFVXlw7OIdwNaEEt5S+jtTfkVuqmg==",
+ "dev": true,
+ "dependencies": {
+ "assertion-tools": "^2.2.1",
+ "axios": "^0.27.2",
+ "dkg-evm-module": "^4.4.0",
+ "ethers": "^6.1.0",
+ "jsonld": "^8.1.0",
+ "web3": "^1.7.3"
+ }
+ },
+ "node_modules/dkg.js/node_modules/@noble/hashes": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.6.1.tgz",
+ "integrity": "sha512-pq5D8h10hHBjyqX+cfBm0i8JUXJ0UhczFc4r74zbuT9XgewFo2E3J1cOaGtdZynILNmQ685YWGzGE1Zv6io50w==",
+ "dev": true,
+ "engines": {
+ "node": "^14.21.3 || >=16"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/dkg.js/node_modules/@polkadot/api": {
"version": "11.3.1",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-11.3.1.tgz",
+ "integrity": "sha512-q4kFIIHTLvKxM24b0Eo8hJevsPMme+aITJGrDML9BgdZYTRN14+cu5nXiCsQvaEamdyYj+uCXWe2OV9X7pPxsA==",
+ "dev": true,
"dependencies": {
"@polkadot/api-augment": "11.3.1",
"@polkadot/api-base": "11.3.1",
@@ -8313,9 +10286,11 @@
"node": ">=18"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/api-augment": {
+ "node_modules/dkg.js/node_modules/@polkadot/api-augment": {
"version": "11.3.1",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-11.3.1.tgz",
+ "integrity": "sha512-Yj+6rb6h0WwY3yJ+UGhjGW+tyMRFUMsKQuGw+eFsXdjiNU9UoXsAqA2dG7Q1F+oeX/g+y2gLGBezNoCwbl6HfA==",
+ "dev": true,
"dependencies": {
"@polkadot/api-base": "11.3.1",
"@polkadot/rpc-augment": "11.3.1",
@@ -8329,9 +10304,11 @@
"node": ">=18"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/api-base": {
+ "node_modules/dkg.js/node_modules/@polkadot/api-base": {
"version": "11.3.1",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/api-base/-/api-base-11.3.1.tgz",
+ "integrity": "sha512-b8UkNL00NN7+3QaLCwL5cKg+7YchHoKCAhwKusWHNBZkkO6Oo2BWilu0dZkPJOyqV9P389Kbd9+oH+SKs9u2VQ==",
+ "dev": true,
"dependencies": {
"@polkadot/rpc-core": "11.3.1",
"@polkadot/types": "11.3.1",
@@ -8343,9 +10320,11 @@
"node": ">=18"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/api-derive": {
+ "node_modules/dkg.js/node_modules/@polkadot/api-derive": {
"version": "11.3.1",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-11.3.1.tgz",
+ "integrity": "sha512-9dopzrh4cRuft1nANmBvMY/hEhFDu0VICMTOGxQLOl8NMfcOFPTLAN0JhSBUoicGZhV+c4vpv01NBx/7/IL1HA==",
+ "dev": true,
"dependencies": {
"@polkadot/api": "11.3.1",
"@polkadot/api-augment": "11.3.1",
@@ -8362,9 +10341,11 @@
"node": ">=18"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/keyring": {
+ "node_modules/dkg.js/node_modules/@polkadot/keyring": {
"version": "12.6.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-12.6.2.tgz",
+ "integrity": "sha512-O3Q7GVmRYm8q7HuB3S0+Yf/q/EB2egKRRU3fv9b3B7V+A52tKzA+vIwEmNVaD1g5FKW9oB97rmpggs0zaKFqHw==",
+ "dev": true,
"dependencies": {
"@polkadot/util": "12.6.2",
"@polkadot/util-crypto": "12.6.2",
@@ -8378,9 +10359,11 @@
"@polkadot/util-crypto": "12.6.2"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/networks": {
+ "node_modules/dkg.js/node_modules/@polkadot/networks": {
"version": "12.6.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/networks/-/networks-12.6.2.tgz",
+ "integrity": "sha512-1oWtZm1IvPWqvMrldVH6NI2gBoCndl5GEwx7lAuQWGr7eNL+6Bdc5K3Z9T0MzFvDGoi2/CBqjX9dRKo39pDC/w==",
+ "dev": true,
"dependencies": {
"@polkadot/util": "12.6.2",
"@substrate/ss58-registry": "^1.44.0",
@@ -8390,9 +10373,11 @@
"node": ">=18"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/rpc-augment": {
+ "node_modules/dkg.js/node_modules/@polkadot/rpc-augment": {
"version": "11.3.1",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-11.3.1.tgz",
+ "integrity": "sha512-2PaDcKNju4QYQpxwVkWbRU3M0t340nMX9cMo+8awgvgL1LliV/fUDZueMKLuSS910JJMTPQ7y2pK4eQgMt08gQ==",
+ "dev": true,
"dependencies": {
"@polkadot/rpc-core": "11.3.1",
"@polkadot/types": "11.3.1",
@@ -8404,9 +10389,11 @@
"node": ">=18"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/rpc-core": {
+ "node_modules/dkg.js/node_modules/@polkadot/rpc-core": {
"version": "11.3.1",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-11.3.1.tgz",
+ "integrity": "sha512-KKNepsDd/mpmXcA6v/h14eFFPEzLGd7nrvx2UUXUxoZ0Fq2MH1hplP3s93k1oduNY/vOXJR2K9S4dKManA6GVQ==",
+ "dev": true,
"dependencies": {
"@polkadot/rpc-augment": "11.3.1",
"@polkadot/rpc-provider": "11.3.1",
@@ -8419,9 +10406,11 @@
"node": ">=18"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/rpc-provider": {
+ "node_modules/dkg.js/node_modules/@polkadot/rpc-provider": {
"version": "11.3.1",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-11.3.1.tgz",
+ "integrity": "sha512-pqERChoHo45hd3WAgW8UuzarRF+G/o/eXEbl0PXLubiayw4X4qCmIzmtntUcKYgxGNcYGZaG87ZU8OjN97m6UA==",
+ "dev": true,
"dependencies": {
"@polkadot/keyring": "^12.6.2",
"@polkadot/types": "11.3.1",
@@ -8443,9 +10432,11 @@
"@substrate/connect": "0.8.10"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/types": {
+ "node_modules/dkg.js/node_modules/@polkadot/types": {
"version": "11.3.1",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-11.3.1.tgz",
+ "integrity": "sha512-5c7uRFXQTT11Awi6T0yFIdAfD6xGDAOz06Kp7M5S9OGNZY28wSPk5x6BYfNphWPaIBmHHewYJB5qmnrdYQAWKQ==",
+ "dev": true,
"dependencies": {
"@polkadot/keyring": "^12.6.2",
"@polkadot/types-augment": "11.3.1",
@@ -8460,9 +10451,11 @@
"node": ">=18"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/types-augment": {
+ "node_modules/dkg.js/node_modules/@polkadot/types-augment": {
"version": "11.3.1",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-11.3.1.tgz",
+ "integrity": "sha512-eR3HVpvUmB3v7q2jTWVmVfAVfb1/kuNn7ij94Zqadg/fuUq0pKqIOKwkUj3OxRM3A/5BnW3MbgparjKD3r+fyw==",
+ "dev": true,
"dependencies": {
"@polkadot/types": "11.3.1",
"@polkadot/types-codec": "11.3.1",
@@ -8473,9 +10466,11 @@
"node": ">=18"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/types-codec": {
+ "node_modules/dkg.js/node_modules/@polkadot/types-codec": {
"version": "11.3.1",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-11.3.1.tgz",
+ "integrity": "sha512-i7IiiuuL+Z/jFoKTA9xeh4wGQnhnNNjMT0+1ohvlOvnFsoKZKFQQOaDPPntGJVL1JDCV+KjkN2uQKZSeW8tguQ==",
+ "dev": true,
"dependencies": {
"@polkadot/util": "^12.6.2",
"@polkadot/x-bigint": "^12.6.2",
@@ -8485,9 +10480,11 @@
"node": ">=18"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/types-create": {
+ "node_modules/dkg.js/node_modules/@polkadot/types-create": {
"version": "11.3.1",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-create/-/types-create-11.3.1.tgz",
+ "integrity": "sha512-pBXtpz5FehcRJ6j5MzFUIUN8ZWM7z6HbqK1GxBmYbJVRElcGcOg7a/rL2pQVphU0Rx1E8bSO4thzGf4wUxSX7w==",
+ "dev": true,
"dependencies": {
"@polkadot/types-codec": "11.3.1",
"@polkadot/util": "^12.6.2",
@@ -8497,9 +10494,11 @@
"node": ">=18"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/types-known": {
+ "node_modules/dkg.js/node_modules/@polkadot/types-known": {
"version": "11.3.1",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-11.3.1.tgz",
+ "integrity": "sha512-3BIof7u6tn9bk3ZCIxA07iNoQ3uj4+vn3DTOjCKECozkRlt6V+kWRvqh16Hc0SHMg/QjcMb2fIu/WZhka1McUQ==",
+ "dev": true,
"dependencies": {
"@polkadot/networks": "^12.6.2",
"@polkadot/types": "11.3.1",
@@ -8512,9 +10511,11 @@
"node": ">=18"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/types-support": {
+ "node_modules/dkg.js/node_modules/@polkadot/types-support": {
"version": "11.3.1",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-support/-/types-support-11.3.1.tgz",
+ "integrity": "sha512-jTFz1GKyF7nI29yIOq4v0NiWTOf5yX4HahJNeFD8TcxoLhF+6tH/XXqrUXJEfbaTlSrRWiW1LZYlb+snctqKHA==",
+ "dev": true,
"dependencies": {
"@polkadot/util": "^12.6.2",
"tslib": "^2.6.2"
@@ -8523,9 +10524,11 @@
"node": ">=18"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/util": {
+ "node_modules/dkg.js/node_modules/@polkadot/util": {
"version": "12.6.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-12.6.2.tgz",
+ "integrity": "sha512-l8TubR7CLEY47240uki0TQzFvtnxFIO7uI/0GoWzpYD/O62EIAMRsuY01N4DuwgKq2ZWD59WhzsLYmA5K6ksdw==",
+ "dev": true,
"dependencies": {
"@polkadot/x-bigint": "12.6.2",
"@polkadot/x-global": "12.6.2",
@@ -8539,9 +10542,11 @@
"node": ">=18"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/util-crypto": {
+ "node_modules/dkg.js/node_modules/@polkadot/util-crypto": {
"version": "12.6.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-12.6.2.tgz",
+ "integrity": "sha512-FEWI/dJ7wDMNN1WOzZAjQoIcCP/3vz3wvAp5QQm+lOrzOLj0iDmaIGIcBkz8HVm3ErfSe/uKP0KS4jgV/ib+Mg==",
+ "dev": true,
"dependencies": {
"@noble/curves": "^1.3.0",
"@noble/hashes": "^1.3.3",
@@ -8561,9 +10566,11 @@
"@polkadot/util": "12.6.2"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/wasm-bridge": {
+ "node_modules/dkg.js/node_modules/@polkadot/wasm-bridge": {
"version": "7.4.1",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-bridge/-/wasm-bridge-7.4.1.tgz",
+ "integrity": "sha512-tdkJaV453tezBxhF39r4oeG0A39sPKGDJmN81LYLf+Fihb7astzwju+u75BRmDrHZjZIv00un3razJEWCxze6g==",
+ "dev": true,
"dependencies": {
"@polkadot/wasm-util": "7.4.1",
"tslib": "^2.7.0"
@@ -8576,9 +10583,11 @@
"@polkadot/x-randomvalues": "*"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/wasm-crypto": {
+ "node_modules/dkg.js/node_modules/@polkadot/wasm-crypto": {
"version": "7.4.1",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto/-/wasm-crypto-7.4.1.tgz",
+ "integrity": "sha512-kHN/kF7hYxm1y0WeFLWeWir6oTzvcFmR4N8fJJokR+ajYbdmrafPN+6iLgQVbhZnDdxyv9jWDuRRsDnBx8tPMQ==",
+ "dev": true,
"dependencies": {
"@polkadot/wasm-bridge": "7.4.1",
"@polkadot/wasm-crypto-asmjs": "7.4.1",
@@ -8595,9 +10604,11 @@
"@polkadot/x-randomvalues": "*"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/wasm-crypto-asmjs": {
+ "node_modules/dkg.js/node_modules/@polkadot/wasm-crypto-asmjs": {
"version": "7.4.1",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-7.4.1.tgz",
+ "integrity": "sha512-pwU8QXhUW7IberyHJIQr37IhbB6DPkCG5FhozCiNTq4vFBsFPjm9q8aZh7oX1QHQaiAZa2m2/VjIVE+FHGbvHQ==",
+ "dev": true,
"dependencies": {
"tslib": "^2.7.0"
},
@@ -8608,9 +10619,11 @@
"@polkadot/util": "*"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/wasm-crypto-init": {
+ "node_modules/dkg.js/node_modules/@polkadot/wasm-crypto-init": {
"version": "7.4.1",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-init/-/wasm-crypto-init-7.4.1.tgz",
+ "integrity": "sha512-AVka33+f7MvXEEIGq5U0dhaA2SaXMXnxVCQyhJTaCnJ5bRDj0Xlm3ijwDEQUiaDql7EikbkkRtmlvs95eSUWYQ==",
+ "dev": true,
"dependencies": {
"@polkadot/wasm-bridge": "7.4.1",
"@polkadot/wasm-crypto-asmjs": "7.4.1",
@@ -8626,9 +10639,11 @@
"@polkadot/x-randomvalues": "*"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/wasm-crypto-wasm": {
+ "node_modules/dkg.js/node_modules/@polkadot/wasm-crypto-wasm": {
"version": "7.4.1",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-7.4.1.tgz",
+ "integrity": "sha512-PE1OAoupFR0ZOV2O8tr7D1FEUAwaggzxtfs3Aa5gr+yxlSOaWUKeqsOYe1KdrcjmZVV3iINEAXxgrbzCmiuONg==",
+ "dev": true,
"dependencies": {
"@polkadot/wasm-util": "7.4.1",
"tslib": "^2.7.0"
@@ -8640,9 +10655,11 @@
"@polkadot/util": "*"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/wasm-util": {
+ "node_modules/dkg.js/node_modules/@polkadot/wasm-util": {
"version": "7.4.1",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-util/-/wasm-util-7.4.1.tgz",
+ "integrity": "sha512-RAcxNFf3zzpkr+LX/ItAsvj+QyM56TomJ0xjUMo4wKkHjwsxkz4dWJtx5knIgQz/OthqSDMR59VNEycQeNuXzA==",
+ "dev": true,
"dependencies": {
"tslib": "^2.7.0"
},
@@ -8653,9 +10670,11 @@
"@polkadot/util": "*"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/x-bigint": {
+ "node_modules/dkg.js/node_modules/@polkadot/x-bigint": {
"version": "12.6.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-12.6.2.tgz",
+ "integrity": "sha512-HSIk60uFPX4GOFZSnIF7VYJz7WZA7tpFJsne7SzxOooRwMTWEtw3fUpFy5cYYOeLh17/kHH1Y7SVcuxzVLc74Q==",
+ "dev": true,
"dependencies": {
"@polkadot/x-global": "12.6.2",
"tslib": "^2.6.2"
@@ -8664,9 +10683,11 @@
"node": ">=18"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/x-fetch": {
+ "node_modules/dkg.js/node_modules/@polkadot/x-fetch": {
"version": "12.6.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-fetch/-/x-fetch-12.6.2.tgz",
+ "integrity": "sha512-8wM/Z9JJPWN1pzSpU7XxTI1ldj/AfC8hKioBlUahZ8gUiJaOF7K9XEFCrCDLis/A1BoOu7Ne6WMx/vsJJIbDWw==",
+ "dev": true,
"dependencies": {
"@polkadot/x-global": "12.6.2",
"node-fetch": "^3.3.2",
@@ -8676,9 +10697,11 @@
"node": ">=18"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/x-global": {
+ "node_modules/dkg.js/node_modules/@polkadot/x-global": {
"version": "12.6.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-12.6.2.tgz",
+ "integrity": "sha512-a8d6m+PW98jmsYDtAWp88qS4dl8DyqUBsd0S+WgyfSMtpEXu6v9nXDgPZgwF5xdDvXhm+P0ZfVkVTnIGrScb5g==",
+ "dev": true,
"dependencies": {
"tslib": "^2.6.2"
},
@@ -8686,9 +10709,11 @@
"node": ">=18"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/x-randomvalues": {
+ "node_modules/dkg.js/node_modules/@polkadot/x-randomvalues": {
"version": "12.6.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-12.6.2.tgz",
+ "integrity": "sha512-Vr8uG7rH2IcNJwtyf5ebdODMcr0XjoCpUbI91Zv6AlKVYOGKZlKLYJHIwpTaKKB+7KPWyQrk4Mlym/rS7v9feg==",
+ "dev": true,
"dependencies": {
"@polkadot/x-global": "12.6.2",
"tslib": "^2.6.2"
@@ -8701,9 +10726,11 @@
"@polkadot/wasm-util": "*"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/x-textdecoder": {
+ "node_modules/dkg.js/node_modules/@polkadot/x-textdecoder": {
"version": "12.6.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-12.6.2.tgz",
+ "integrity": "sha512-M1Bir7tYvNappfpFWXOJcnxUhBUFWkUFIdJSyH0zs5LmFtFdbKAeiDXxSp2Swp5ddOZdZgPac294/o2TnQKN1w==",
+ "dev": true,
"dependencies": {
"@polkadot/x-global": "12.6.2",
"tslib": "^2.6.2"
@@ -8712,9 +10739,11 @@
"node": ">=18"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/x-textencoder": {
+ "node_modules/dkg.js/node_modules/@polkadot/x-textencoder": {
"version": "12.6.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-12.6.2.tgz",
+ "integrity": "sha512-4N+3UVCpI489tUJ6cv3uf0PjOHvgGp9Dl+SZRLgFGt9mvxnvpW/7+XBADRMtlG4xi5gaRK7bgl5bmY6OMDsNdw==",
+ "dev": true,
"dependencies": {
"@polkadot/x-global": "12.6.2",
"tslib": "^2.6.2"
@@ -8723,9 +10752,11 @@
"node": ">=18"
}
},
- "node_modules/dkg-evm-module/node_modules/@polkadot/x-ws": {
+ "node_modules/dkg.js/node_modules/@polkadot/x-ws": {
"version": "12.6.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-ws/-/x-ws-12.6.2.tgz",
+ "integrity": "sha512-cGZWo7K5eRRQCRl2LrcyCYsrc3lRbTlixZh3AzgU8uX4wASVGRlNWi/Hf4TtHNe1ExCDmxabJzdIsABIfrr7xw==",
+ "dev": true,
"dependencies": {
"@polkadot/x-global": "12.6.2",
"tslib": "^2.6.2",
@@ -8735,16 +10766,21 @@
"node": ">=18"
}
},
- "node_modules/dkg-evm-module/node_modules/@scure/base": {
+ "node_modules/dkg.js/node_modules/@scure/base": {
"version": "1.2.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.1.tgz",
+ "integrity": "sha512-DGmGtC8Tt63J5GfHgfl5CuAXh96VF/LD8K9Hr/Gv0J2lAoRGlPOMpqMpMbCTOoOJMZCk2Xt+DskdDyn6dEFdzQ==",
+ "dev": true,
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
- "node_modules/dkg-evm-module/node_modules/@substrate/connect": {
+ "node_modules/dkg.js/node_modules/@substrate/connect": {
"version": "0.8.10",
- "license": "GPL-3.0-only",
+ "resolved": "https://registry.npmjs.org/@substrate/connect/-/connect-0.8.10.tgz",
+ "integrity": "sha512-DIyQ13DDlXqVFnLV+S6/JDgiGowVRRrh18kahieJxhgvzcWicw5eLc6jpfQ0moVVLBYkO7rctB5Wreldwpva8w==",
+ "deprecated": "versions below 1.x are no longer maintained",
+ "dev": true,
"optional": true,
"dependencies": {
"@substrate/connect-extension-protocol": "^2.0.0",
@@ -8753,48 +10789,121 @@
"smoldot": "2.0.22"
}
},
- "node_modules/dkg-evm-module/node_modules/@substrate/connect-extension-protocol": {
+ "node_modules/dkg.js/node_modules/@substrate/connect-extension-protocol": {
"version": "2.2.1",
- "license": "GPL-3.0-only",
- "optional": true
- },
- "node_modules/dkg.js": {
- "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-2.2.1.tgz",
+ "integrity": "sha512-GoafTgm/Jey9E4Xlj4Z5ZBt/H4drH2CNq8VrAro80rtoznrXnFDNVivLQzZN0Xaj2g8YXSn9pC9Oc9IovYZJXw==",
"dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "assertion-tools": "^2.2.1",
- "axios": "^0.27.2",
- "dkg-evm-module": "^4.4.0",
- "ethers": "^6.1.0",
- "jsonld": "^8.1.0",
- "web3": "^1.7.3"
- }
+ "optional": true
},
"node_modules/dkg.js/node_modules/@types/node": {
"version": "22.7.5",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz",
+ "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"undici-types": "~6.19.2"
}
},
"node_modules/dkg.js/node_modules/aes-js": {
"version": "4.0.0-beta.5",
+ "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz",
+ "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==",
+ "dev": true
+ },
+ "node_modules/dkg.js/node_modules/assertion-tools": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/assertion-tools/-/assertion-tools-2.2.1.tgz",
+ "integrity": "sha512-JlA1S16Ox93PnYb45HvxNcax/Ii4gqTO8HLGa/ykj/ddp8EEHlokn6inJR2yMiz173WSFkCc0ciLJzGeaYBANw==",
"dev": true,
- "license": "MIT"
+ "dependencies": {
+ "ethers": "^5.7.2",
+ "jsonld": "^8.1.0",
+ "merkletreejs": "^0.3.2"
+ }
+ },
+ "node_modules/dkg.js/node_modules/assertion-tools/node_modules/ethers": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz",
+ "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/abi": "5.7.0",
+ "@ethersproject/abstract-provider": "5.7.0",
+ "@ethersproject/abstract-signer": "5.7.0",
+ "@ethersproject/address": "5.7.0",
+ "@ethersproject/base64": "5.7.0",
+ "@ethersproject/basex": "5.7.0",
+ "@ethersproject/bignumber": "5.7.0",
+ "@ethersproject/bytes": "5.7.0",
+ "@ethersproject/constants": "5.7.0",
+ "@ethersproject/contracts": "5.7.0",
+ "@ethersproject/hash": "5.7.0",
+ "@ethersproject/hdnode": "5.7.0",
+ "@ethersproject/json-wallets": "5.7.0",
+ "@ethersproject/keccak256": "5.7.0",
+ "@ethersproject/logger": "5.7.0",
+ "@ethersproject/networks": "5.7.1",
+ "@ethersproject/pbkdf2": "5.7.0",
+ "@ethersproject/properties": "5.7.0",
+ "@ethersproject/providers": "5.7.2",
+ "@ethersproject/random": "5.7.0",
+ "@ethersproject/rlp": "5.7.0",
+ "@ethersproject/sha2": "5.7.0",
+ "@ethersproject/signing-key": "5.7.0",
+ "@ethersproject/solidity": "5.7.0",
+ "@ethersproject/strings": "5.7.0",
+ "@ethersproject/transactions": "5.7.0",
+ "@ethersproject/units": "5.7.0",
+ "@ethersproject/wallet": "5.7.0",
+ "@ethersproject/web": "5.7.1",
+ "@ethersproject/wordlists": "5.7.0"
+ }
},
"node_modules/dkg.js/node_modules/axios": {
"version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz",
+ "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"follow-redirects": "^1.14.9",
"form-data": "^4.0.0"
}
},
+ "node_modules/dkg.js/node_modules/dkg-evm-module": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/dkg-evm-module/-/dkg-evm-module-4.4.0.tgz",
+ "integrity": "sha512-2hBZI/KnbbOEiKr3mU7Nknz3Wis8hLWGvyCifevG4/fUO8v+oVdrshLvQJ6izAfDHeua2PHcW8Z3hn6eIdUVxA==",
+ "dev": true,
+ "dependencies": {
+ "@openzeppelin/contracts": "^4.9.3",
+ "@polkadot/api": "^11.0.3",
+ "@polkadot/keyring": "^12.6.2",
+ "@polkadot/util": "^12.6.2",
+ "@polkadot/util-crypto": "^12.6.2",
+ "@prb/math": "^2.5.0",
+ "dotenv": "^16.0.3",
+ "hardhat": "^2.22.5",
+ "hardhat-deploy": "^0.11.25",
+ "hardhat-deploy-ethers": "^0.3.0-beta.13",
+ "ts-node": "^10.9.1",
+ "typescript": "^4.9.4"
+ }
+ },
"node_modules/dkg.js/node_modules/ethers": {
"version": "6.13.4",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.4.tgz",
+ "integrity": "sha512-21YtnZVg4/zKkCQPjrDj38B1r4nQvTZLopUGMLQ1ePU2zV/joCfDC3t3iKQjWRzjjjbzR+mdAIoikeBRNkdllA==",
"dev": true,
"funding": [
{
@@ -8806,7 +10915,6 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@adraffy/ens-normalize": "1.10.1",
"@noble/curves": "1.2.0",
@@ -8822,8 +10930,9 @@
},
"node_modules/dkg.js/node_modules/ethers/node_modules/@noble/curves": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz",
+ "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@noble/hashes": "1.3.2"
},
@@ -8833,8 +10942,9 @@
},
"node_modules/dkg.js/node_modules/ethers/node_modules/@noble/hashes": {
"version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz",
+ "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 16"
},
@@ -8844,18 +10954,21 @@
},
"node_modules/dkg.js/node_modules/tslib": {
"version": "2.7.0",
- "dev": true,
- "license": "0BSD"
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz",
+ "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==",
+ "dev": true
},
"node_modules/dkg.js/node_modules/undici-types": {
"version": "6.19.8",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
+ "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
+ "dev": true
},
"node_modules/dkg.js/node_modules/ws": {
"version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz",
+ "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=10.0.0"
},
@@ -8874,7 +10987,8 @@
},
"node_modules/dns-over-http-resolver": {
"version": "1.2.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz",
+ "integrity": "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==",
"dependencies": {
"debug": "^4.3.1",
"native-fetch": "^3.0.0",
@@ -8883,7 +10997,8 @@
},
"node_modules/doctrine": {
"version": "3.0.0",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
"dependencies": {
"esutils": "^2.0.2"
},
@@ -8893,7 +11008,8 @@
},
"node_modules/dom-serializer": {
"version": "2.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
+ "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
"dependencies": {
"domelementtype": "^2.3.0",
"domhandler": "^5.0.2",
@@ -8905,22 +11021,27 @@
},
"node_modules/dom-walk": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz",
+ "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==",
"dev": true
},
"node_modules/domelementtype": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/fb55"
}
- ],
- "license": "BSD-2-Clause"
+ ]
},
"node_modules/domexception": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz",
+ "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==",
+ "deprecated": "Use your platform's native DOMException instead",
"dev": true,
- "license": "MIT",
"dependencies": {
"webidl-conversions": "^5.0.0"
},
@@ -8930,15 +11051,17 @@
},
"node_modules/domexception/node_modules/webidl-conversions": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz",
+ "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==",
"dev": true,
- "license": "BSD-2-Clause",
"engines": {
"node": ">=8"
}
},
"node_modules/domhandler": {
"version": "5.0.3",
- "license": "BSD-2-Clause",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
+ "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
"dependencies": {
"domelementtype": "^2.3.0"
},
@@ -8951,7 +11074,8 @@
},
"node_modules/domutils": {
"version": "3.1.0",
- "license": "BSD-2-Clause",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
+ "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
"dependencies": {
"dom-serializer": "^2.0.0",
"domelementtype": "^2.3.0",
@@ -8963,7 +11087,8 @@
},
"node_modules/dotenv": {
"version": "16.4.7",
- "license": "BSD-2-Clause",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz",
+ "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==",
"engines": {
"node": ">=12"
},
@@ -8973,22 +11098,39 @@
},
"node_modules/dottie": {
"version": "2.0.6",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.6.tgz",
+ "integrity": "sha512-iGCHkfUc5kFekGiqhe8B/mdaurD+lakO9txNnTvKtA6PISrw86LgqHvRzWYPyoE2Ph5aMIrCw9/uko6XHTKCwA=="
+ },
+ "node_modules/dunder-proto": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.0.tgz",
+ "integrity": "sha512-9+Sj30DIu+4KvHqMfLUGLFYL2PkURSYMVXJyXe92nFRvlYq5hBjLEhblKB+vkd/WVlUYMWigiY07T91Fkk0+4A==",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.2.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
},
"node_modules/duplexer2": {
"version": "0.1.4",
- "license": "BSD-3-Clause",
+ "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
+ "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==",
"dependencies": {
"readable-stream": "^2.0.2"
}
},
"node_modules/duplexer2/node_modules/isarray": {
"version": "1.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
},
"node_modules/duplexer2/node_modules/readable-stream": {
"version": "2.3.8",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -9001,24 +11143,28 @@
},
"node_modules/duplexer2/node_modules/safe-buffer": {
"version": "5.1.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"node_modules/duplexer2/node_modules/string_decoder": {
"version": "1.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dependencies": {
"safe-buffer": "~5.1.0"
}
},
"node_modules/eastasianwidth": {
"version": "0.2.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+ "dev": true
},
"node_modules/ecc-jsbn": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"jsbn": "~0.1.0",
"safer-buffer": "^2.1.0"
@@ -9026,30 +11172,35 @@
},
"node_modules/ecc-jsbn/node_modules/jsbn": {
"version": "0.1.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==",
+ "dev": true
},
"node_modules/ecdsa-sig-formatter": {
"version": "1.0.11",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
+ "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
"dependencies": {
"safe-buffer": "^5.0.1"
}
},
"node_modules/ed2curve": {
"version": "0.3.0",
- "license": "Unlicense",
+ "resolved": "https://registry.npmjs.org/ed2curve/-/ed2curve-0.3.0.tgz",
+ "integrity": "sha512-8w2fmmq3hv9rCrcI7g9hms2pMunQr1JINfcjwR9tAyZqhtyaMN991lF/ZfHfr5tzZQ8c7y7aBgZbjfbd0fjFwQ==",
"dependencies": {
"tweetnacl": "1.x.x"
}
},
"node_modules/ee-first": {
"version": "1.1.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
},
"node_modules/electron-fetch": {
"version": "1.9.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.9.1.tgz",
+ "integrity": "sha512-M9qw6oUILGVrcENMSRRefE1MbHPIz0h79EKIeJWK9v563aT9Qkh8aEHPO1H5vi970wPirNY+jO9OpFoLiMsMGA==",
"dependencies": {
"encoding": "^0.1.13"
},
@@ -9058,13 +11209,15 @@
}
},
"node_modules/electron-to-chromium": {
- "version": "1.5.71",
- "dev": true,
- "license": "ISC"
+ "version": "1.5.73",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.73.tgz",
+ "integrity": "sha512-8wGNxG9tAG5KhGd3eeA0o6ixhiNdgr0DcHWm85XPCphwZgD1lIEoi6t3VERayWao7SF7AAZTw6oARGJeVjH8Kg==",
+ "dev": true
},
"node_modules/elliptic": {
"version": "6.5.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
+ "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
"dependencies": {
"bn.js": "^4.11.9",
"brorand": "^1.1.0",
@@ -9077,11 +11230,13 @@
},
"node_modules/elliptic/node_modules/bn.js": {
"version": "4.12.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz",
+ "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg=="
},
"node_modules/emittery": {
"version": "0.13.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz",
+ "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==",
"engines": {
"node": ">=12"
},
@@ -9091,41 +11246,48 @@
},
"node_modules/emoji-regex": {
"version": "9.2.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true
},
"node_modules/enabled": {
"version": "2.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz",
+ "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ=="
},
"node_modules/encode-utf8": {
"version": "1.0.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz",
+ "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw=="
},
"node_modules/encodeurl": {
"version": "2.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/encoding": {
"version": "0.1.13",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
+ "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
"dependencies": {
"iconv-lite": "^0.6.2"
}
},
"node_modules/end-of-stream": {
"version": "1.4.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
"dependencies": {
"once": "^1.4.0"
}
},
"node_modules/enquirer": {
"version": "2.4.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz",
+ "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==",
"dependencies": {
"ansi-colors": "^4.1.1",
"strip-ansi": "^6.0.1"
@@ -9136,7 +11298,8 @@
},
"node_modules/entities": {
"version": "4.5.0",
- "license": "BSD-2-Clause",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
"engines": {
"node": ">=0.12"
},
@@ -9146,27 +11309,31 @@
},
"node_modules/env-paths": {
"version": "2.2.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
+ "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
"engines": {
"node": ">=6"
}
},
"node_modules/err-code": {
"version": "3.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz",
+ "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA=="
},
"node_modules/error-stack-parser": {
"version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz",
+ "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"stackframe": "^1.3.4"
}
},
"node_modules/es-abstract": {
"version": "1.23.5",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.5.tgz",
+ "integrity": "sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"array-buffer-byte-length": "^1.0.1",
@@ -9224,26 +11391,26 @@
}
},
"node_modules/es-define-property": {
- "version": "1.0.0",
- "license": "MIT",
- "dependencies": {
- "get-intrinsic": "^1.2.4"
- },
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-errors": {
"version": "1.3.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-iterator-helpers": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz",
+ "integrity": "sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.7",
@@ -9268,8 +11435,8 @@
},
"node_modules/es-object-atoms": {
"version": "1.0.0",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
+ "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==",
"dependencies": {
"es-errors": "^1.3.0"
},
@@ -9279,8 +11446,9 @@
},
"node_modules/es-set-tostringtag": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz",
+ "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"get-intrinsic": "^1.2.4",
@@ -9293,8 +11461,9 @@
},
"node_modules/es-shim-unscopables": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
+ "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"hasown": "^2.0.0"
@@ -9302,8 +11471,9 @@
},
"node_modules/es-to-primitive": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz",
+ "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"is-callable": "^1.2.7",
@@ -9319,8 +11489,9 @@
},
"node_modules/es5-ext": {
"version": "0.10.64",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz",
+ "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==",
"hasInstallScript": true,
- "license": "ISC",
"dependencies": {
"es6-iterator": "^2.0.3",
"es6-symbol": "^3.1.3",
@@ -9333,12 +11504,14 @@
},
"node_modules/es6-error": {
"version": "4.1.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
+ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
+ "dev": true
},
"node_modules/es6-iterator": {
"version": "2.0.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==",
"dependencies": {
"d": "1",
"es5-ext": "^0.10.35",
@@ -9347,19 +11520,22 @@
},
"node_modules/es6-promise": {
"version": "4.2.8",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
+ "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
+ "dev": true
},
"node_modules/es6-promisify": {
"version": "7.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-7.0.0.tgz",
+ "integrity": "sha512-ginqzK3J90Rd4/Yz7qRrqUeIpe3TwSXTPPZtPne7tGBPeAaQiU8qt4fpKApnxHcq1AwtUdHVg5P77x/yrggG8Q==",
"engines": {
"node": ">=6"
}
},
"node_modules/es6-symbol": {
"version": "3.1.4",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz",
+ "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==",
"dependencies": {
"d": "^1.0.2",
"ext": "^1.7.0"
@@ -9370,22 +11546,27 @@
},
"node_modules/escalade": {
"version": "3.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
"engines": {
"node": ">=6"
}
},
"node_modules/escape-html": {
"version": "1.0.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
},
"node_modules/escape-latex": {
"version": "1.2.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/escape-latex/-/escape-latex-1.2.0.tgz",
+ "integrity": "sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw==",
+ "dev": true
},
"node_modules/escape-string-regexp": {
"version": "4.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
"engines": {
"node": ">=10"
},
@@ -9395,8 +11576,9 @@
},
"node_modules/escodegen": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz",
+ "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==",
"dev": true,
- "license": "BSD-2-Clause",
"dependencies": {
"esprima": "^4.0.1",
"estraverse": "^5.2.0",
@@ -9415,7 +11597,9 @@
},
"node_modules/eslint": {
"version": "8.57.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz",
+ "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
+ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
@@ -9468,8 +11652,9 @@
},
"node_modules/eslint-config-airbnb": {
"version": "19.0.4",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz",
+ "integrity": "sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==",
"dev": true,
- "license": "MIT",
"dependencies": {
"eslint-config-airbnb-base": "^15.0.0",
"object.assign": "^4.1.2",
@@ -9488,8 +11673,9 @@
},
"node_modules/eslint-config-airbnb-base": {
"version": "15.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz",
+ "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==",
"dev": true,
- "license": "MIT",
"dependencies": {
"confusing-browser-globals": "^1.0.10",
"object.assign": "^4.1.2",
@@ -9506,15 +11692,17 @@
},
"node_modules/eslint-config-airbnb-base/node_modules/semver": {
"version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
- "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/eslint-config-google": {
"version": "0.13.0",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.13.0.tgz",
+ "integrity": "sha512-ELgMdOIpn0CFdsQS+FuxO+Ttu4p+aLaXHv9wA9yVnzqlUGV7oN/eRRnJekk7TCur6Cu2FXX0fqfIXRBaM14lpQ==",
"engines": {
"node": ">=0.10.0"
},
@@ -9524,8 +11712,9 @@
},
"node_modules/eslint-config-prettier": {
"version": "8.10.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz",
+ "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==",
"dev": true,
- "license": "MIT",
"bin": {
"eslint-config-prettier": "bin/cli.js"
},
@@ -9535,8 +11724,9 @@
},
"node_modules/eslint-import-resolver-node": {
"version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
+ "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"debug": "^3.2.7",
@@ -9546,8 +11736,9 @@
},
"node_modules/eslint-import-resolver-node/node_modules/debug": {
"version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"ms": "^2.1.1"
@@ -9555,8 +11746,9 @@
},
"node_modules/eslint-module-utils": {
"version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz",
+ "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"debug": "^3.2.7"
@@ -9572,8 +11764,9 @@
},
"node_modules/eslint-module-utils/node_modules/debug": {
"version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"ms": "^2.1.1"
@@ -9581,8 +11774,9 @@
},
"node_modules/eslint-plugin-import": {
"version": "2.31.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz",
+ "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"@rtsao/scc": "^1.1.0",
@@ -9614,8 +11808,9 @@
},
"node_modules/eslint-plugin-import/node_modules/debug": {
"version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"ms": "^2.1.1"
@@ -9623,8 +11818,9 @@
},
"node_modules/eslint-plugin-import/node_modules/doctrine": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
"dev": true,
- "license": "Apache-2.0",
"peer": true,
"dependencies": {
"esutils": "^2.0.2"
@@ -9635,8 +11831,9 @@
},
"node_modules/eslint-plugin-import/node_modules/semver": {
"version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
- "license": "ISC",
"peer": true,
"bin": {
"semver": "bin/semver.js"
@@ -9644,8 +11841,9 @@
},
"node_modules/eslint-plugin-jsx-a11y": {
"version": "6.10.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz",
+ "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"aria-query": "^5.3.2",
@@ -9673,8 +11871,9 @@
},
"node_modules/eslint-plugin-react": {
"version": "7.37.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz",
+ "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"array-includes": "^3.1.8",
@@ -9705,8 +11904,9 @@
},
"node_modules/eslint-plugin-react-hooks": {
"version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz",
+ "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==",
"dev": true,
- "license": "MIT",
"peer": true,
"engines": {
"node": ">=10"
@@ -9717,8 +11917,9 @@
},
"node_modules/eslint-plugin-react/node_modules/doctrine": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
"dev": true,
- "license": "Apache-2.0",
"peer": true,
"dependencies": {
"esutils": "^2.0.2"
@@ -9729,8 +11930,9 @@
},
"node_modules/eslint-plugin-react/node_modules/resolve": {
"version": "2.0.0-next.5",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
+ "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"is-core-module": "^2.13.0",
@@ -9746,8 +11948,9 @@
},
"node_modules/eslint-plugin-react/node_modules/semver": {
"version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
- "license": "ISC",
"peer": true,
"bin": {
"semver": "bin/semver.js"
@@ -9755,7 +11958,8 @@
},
"node_modules/eslint-scope": {
"version": "7.2.2",
- "license": "BSD-2-Clause",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+ "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
"dependencies": {
"esrecurse": "^4.3.0",
"estraverse": "^5.2.0"
@@ -9769,7 +11973,8 @@
},
"node_modules/eslint-visitor-keys": {
"version": "3.4.3",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
@@ -9779,7 +11984,8 @@
},
"node_modules/esniff": {
"version": "2.0.1",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz",
+ "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==",
"dependencies": {
"d": "^1.0.1",
"es5-ext": "^0.10.62",
@@ -9792,7 +11998,8 @@
},
"node_modules/espree": {
"version": "9.6.1",
- "license": "BSD-2-Clause",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
"dependencies": {
"acorn": "^8.9.0",
"acorn-jsx": "^5.3.2",
@@ -9807,8 +12014,9 @@
},
"node_modules/esprima": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true,
- "license": "BSD-2-Clause",
"bin": {
"esparse": "bin/esparse.js",
"esvalidate": "bin/esvalidate.js"
@@ -9819,7 +12027,8 @@
},
"node_modules/esquery": {
"version": "1.6.0",
- "license": "BSD-3-Clause",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
+ "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
"dependencies": {
"estraverse": "^5.1.0"
},
@@ -9829,7 +12038,8 @@
},
"node_modules/esrecurse": {
"version": "4.3.0",
- "license": "BSD-2-Clause",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
"dependencies": {
"estraverse": "^5.2.0"
},
@@ -9839,29 +12049,33 @@
},
"node_modules/estraverse": {
"version": "5.3.0",
- "license": "BSD-2-Clause",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
"engines": {
"node": ">=4.0"
}
},
"node_modules/esutils": {
"version": "2.0.3",
- "license": "BSD-2-Clause",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/etag": {
"version": "1.8.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/eth-ens-namehash": {
"version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz",
+ "integrity": "sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==",
"dev": true,
- "license": "ISC",
"dependencies": {
"idna-uts46-hx": "^2.3.1",
"js-sha3": "^0.5.7"
@@ -9869,13 +12083,15 @@
},
"node_modules/eth-ens-namehash/node_modules/js-sha3": {
"version": "0.5.7",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
+ "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==",
+ "dev": true
},
"node_modules/eth-lib": {
"version": "0.1.29",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz",
+ "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"bn.js": "^4.11.6",
"elliptic": "^6.4.0",
@@ -9887,18 +12103,21 @@
},
"node_modules/eth-lib/node_modules/bn.js": {
"version": "4.12.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz",
+ "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==",
+ "dev": true
},
"node_modules/eth-lib/node_modules/safe-buffer": {
"version": "5.1.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
},
"node_modules/eth-lib/node_modules/ws": {
"version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
+ "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"async-limiter": "~1.0.0",
"safe-buffer": "~5.1.0",
@@ -9907,14 +12126,16 @@
},
"node_modules/ethereum-bloom-filters": {
"version": "1.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.2.0.tgz",
+ "integrity": "sha512-28hyiE7HVsWubqhpVLVmZXFd4ITeHi+BUu05o9isf0GUpMtzBUi+8/gFrGaGYzvGAJQmJ3JKj77Mk9G98T84rA==",
"dependencies": {
"@noble/hashes": "^1.4.0"
}
},
"node_modules/ethereum-bloom-filters/node_modules/@noble/hashes": {
"version": "1.6.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.6.1.tgz",
+ "integrity": "sha512-pq5D8h10hHBjyqX+cfBm0i8JUXJ0UhczFc4r74zbuT9XgewFo2E3J1cOaGtdZynILNmQ685YWGzGE1Zv6io50w==",
"engines": {
"node": "^14.21.3 || >=16"
},
@@ -9924,7 +12145,8 @@
},
"node_modules/ethereum-cryptography": {
"version": "1.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz",
+ "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==",
"dependencies": {
"@noble/hashes": "1.2.0",
"@noble/secp256k1": "1.7.1",
@@ -9934,7 +12156,9 @@
},
"node_modules/ethereumjs-abi": {
"version": "0.6.8",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz",
+ "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==",
+ "deprecated": "This library has been deprecated and usage is discouraged.",
"dependencies": {
"bn.js": "^4.11.8",
"ethereumjs-util": "^6.0.0"
@@ -9942,11 +12166,13 @@
},
"node_modules/ethereumjs-abi/node_modules/bn.js": {
"version": "4.12.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz",
+ "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg=="
},
"node_modules/ethereumjs-util": {
"version": "6.2.1",
- "license": "MPL-2.0",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
+ "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
"dependencies": {
"@types/bn.js": "^4.11.3",
"bn.js": "^4.11.0",
@@ -9959,18 +12185,21 @@
},
"node_modules/ethereumjs-util/node_modules/@types/bn.js": {
"version": "4.11.6",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/ethereumjs-util/node_modules/bn.js": {
"version": "4.12.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz",
+ "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg=="
},
"node_modules/ethereumjs-util/node_modules/ethereum-cryptography": {
"version": "0.1.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
+ "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
"dependencies": {
"@types/pbkdf2": "^3.0.0",
"@types/secp256k1": "^4.0.1",
@@ -9991,6 +12220,8 @@
},
"node_modules/ethers": {
"version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz",
+ "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==",
"funding": [
{
"type": "individual",
@@ -10001,7 +12232,6 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
- "license": "MIT",
"dependencies": {
"@ethersproject/abi": "5.7.0",
"@ethersproject/abstract-provider": "5.7.0",
@@ -10037,7 +12267,8 @@
},
"node_modules/ethjs-unit": {
"version": "0.1.6",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz",
+ "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==",
"dependencies": {
"bn.js": "4.11.6",
"number-to-bn": "1.7.0"
@@ -10049,11 +12280,13 @@
},
"node_modules/ethjs-unit/node_modules/bn.js": {
"version": "4.11.6",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA=="
},
"node_modules/ethjs-util": {
"version": "0.1.6",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz",
+ "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==",
"dependencies": {
"is-hex-prefixed": "1.0.0",
"strip-hex-prefix": "1.0.0"
@@ -10065,7 +12298,8 @@
},
"node_modules/event-emitter": {
"version": "0.3.5",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
+ "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==",
"dependencies": {
"d": "1",
"es5-ext": "~0.10.14"
@@ -10073,25 +12307,30 @@
},
"node_modules/event-target-shim": {
"version": "5.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
+ "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
"engines": {
"node": ">=6"
}
},
"node_modules/eventemitter3": {
"version": "5.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
+ "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA=="
},
"node_modules/events": {
"version": "3.3.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
"engines": {
"node": ">=0.8.x"
}
},
"node_modules/evm-bn": {
"version": "1.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/evm-bn/-/evm-bn-1.1.2.tgz",
+ "integrity": "sha512-Lq8CT1EAjSeN+Yk0h1hpSwnZyMA4Xir6fQD4vlStljAuW2xr7qLOEGDLGsTa9sU2e40EYIumA4wYhMC/e+lyKw==",
+ "dev": true,
"dependencies": {
"@ethersproject/bignumber": "^5.5.0",
"from-exponential": "^1.1.1"
@@ -10102,7 +12341,8 @@
},
"node_modules/evp_bytestokey": {
"version": "1.0.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
"dependencies": {
"md5.js": "^1.3.4",
"safe-buffer": "^5.1.1"
@@ -10110,7 +12350,8 @@
},
"node_modules/execa": {
"version": "5.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
"dependencies": {
"cross-spawn": "^7.0.3",
"get-stream": "^6.0.0",
@@ -10131,15 +12372,16 @@
},
"node_modules/expand-template": {
"version": "2.0.3",
- "dev": true,
- "license": "(MIT OR WTFPL)",
+ "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
+ "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
"engines": {
"node": ">=6"
}
},
"node_modules/express": {
"version": "4.21.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
+ "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
"dependencies": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
@@ -10183,7 +12425,8 @@
},
"node_modules/express-fileupload": {
"version": "1.5.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/express-fileupload/-/express-fileupload-1.5.1.tgz",
+ "integrity": "sha512-LsYG1ALXEB7vlmjuSw8ABeOctMp8a31aUC5ZF55zuz7O2jLFnmJYrCv10py357ky48aEoBQ/9bVXgFynjvaPmA==",
"dependencies": {
"busboy": "^1.6.0"
},
@@ -10193,7 +12436,8 @@
},
"node_modules/express-rate-limit": {
"version": "6.11.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-6.11.2.tgz",
+ "integrity": "sha512-a7uwwfNTh1U60ssiIkuLFWHt4hAC5yxlLGU2VP0X4YNlyEDZAqF4tK3GD3NSitVBrCQmQ0++0uOyFOgC2y4DDw==",
"engines": {
"node": ">= 14"
},
@@ -10203,50 +12447,59 @@
},
"node_modules/express/node_modules/debug": {
"version": "2.6.9",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/express/node_modules/ms": {
"version": "2.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/ext": {
"version": "1.7.0",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz",
+ "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==",
"dependencies": {
"type": "^2.7.2"
}
},
"node_modules/extend": {
"version": "3.0.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "dev": true
},
"node_modules/extsprintf": {
"version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz",
+ "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==",
"dev": true,
"engines": [
"node >=0.6.0"
- ],
- "license": "MIT"
+ ]
},
"node_modules/fast-copy": {
"version": "3.0.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.2.tgz",
+ "integrity": "sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ=="
},
"node_modules/fast-deep-equal": {
"version": "3.1.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
"node_modules/fast-fifo": {
"version": "1.3.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz",
+ "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ=="
},
"node_modules/fast-glob": {
"version": "3.3.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
@@ -10260,7 +12513,8 @@
},
"node_modules/fast-glob/node_modules/glob-parent": {
"version": "5.1.2",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dependencies": {
"is-glob": "^4.0.1"
},
@@ -10270,40 +12524,49 @@
},
"node_modules/fast-json-stable-stringify": {
"version": "2.1.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
},
"node_modules/fast-levenshtein": {
"version": "2.0.6",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
},
"node_modules/fast-redact": {
"version": "3.5.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz",
+ "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==",
"engines": {
"node": ">=6"
}
},
"node_modules/fast-safe-stringify": {
"version": "2.1.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
+ "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA=="
},
"node_modules/fast-uri": {
"version": "3.0.3",
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz",
+ "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw=="
},
"node_modules/fastq": {
"version": "1.17.1",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
+ "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
"dependencies": {
"reusify": "^1.0.4"
}
},
"node_modules/fecha": {
"version": "4.2.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz",
+ "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw=="
},
"node_modules/fetch-blob": {
"version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
+ "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
"funding": [
{
"type": "github",
@@ -10314,7 +12577,6 @@
"url": "https://paypal.me/jimmywarting"
}
],
- "license": "MIT",
"dependencies": {
"node-domexception": "^1.0.0",
"web-streams-polyfill": "^3.0.3"
@@ -10325,7 +12587,8 @@
},
"node_modules/fetch-sparql-endpoint": {
"version": "4.2.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/fetch-sparql-endpoint/-/fetch-sparql-endpoint-4.2.1.tgz",
+ "integrity": "sha512-nRaexc3QCO95bjESf4ngNQ1J+qNtVzxFGlPUopqOIVHm/j6IDhWg996kk7fBM98Mmo0uM9b6uiTbXmJHOrnqYA==",
"dependencies": {
"@rdfjs/types": "*",
"@smessie/readable-web-to-node-stream": "^3.0.3",
@@ -10348,14 +12611,16 @@
},
"node_modules/fetch-sparql-endpoint/node_modules/cross-fetch": {
"version": "3.1.8",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz",
+ "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==",
"dependencies": {
"node-fetch": "^2.6.12"
}
},
"node_modules/fetch-sparql-endpoint/node_modules/node-fetch": {
"version": "2.7.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
"dependencies": {
"whatwg-url": "^5.0.0"
},
@@ -10373,15 +12638,18 @@
},
"node_modules/fetch-sparql-endpoint/node_modules/tr46": {
"version": "0.0.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
"node_modules/fetch-sparql-endpoint/node_modules/webidl-conversions": {
"version": "3.0.1",
- "license": "BSD-2-Clause"
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
},
"node_modules/fetch-sparql-endpoint/node_modules/whatwg-url": {
"version": "5.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
"dependencies": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"
@@ -10389,8 +12657,9 @@
},
"node_modules/figures": {
"version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"escape-string-regexp": "^1.0.5"
},
@@ -10403,15 +12672,17 @@
},
"node_modules/figures/node_modules/escape-string-regexp": {
"version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.8.0"
}
},
"node_modules/file-entry-cache": {
"version": "6.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
"dependencies": {
"flat-cache": "^3.0.4"
},
@@ -10421,11 +12692,13 @@
},
"node_modules/file-uri-to-path": {
"version": "1.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
},
"node_modules/fill-range": {
"version": "7.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"dependencies": {
"to-regex-range": "^5.0.1"
},
@@ -10435,7 +12708,8 @@
},
"node_modules/finalhandler": {
"version": "1.3.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
+ "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
"dependencies": {
"debug": "2.6.9",
"encodeurl": "~2.0.0",
@@ -10451,19 +12725,22 @@
},
"node_modules/finalhandler/node_modules/debug": {
"version": "2.6.9",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/finalhandler/node_modules/ms": {
"version": "2.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/find-cache-dir": {
"version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
+ "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
"dev": true,
- "license": "MIT",
"dependencies": {
"commondir": "^1.0.1",
"make-dir": "^3.0.2",
@@ -10478,7 +12755,8 @@
},
"node_modules/find-up": {
"version": "5.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
"dependencies": {
"locate-path": "^6.0.0",
"path-exists": "^4.0.0"
@@ -10492,14 +12770,16 @@
},
"node_modules/flat": {
"version": "5.0.2",
- "license": "BSD-3-Clause",
+ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
+ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
"bin": {
"flat": "cli.js"
}
},
"node_modules/flat-cache": {
"version": "3.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
"dependencies": {
"flatted": "^3.2.9",
"keyv": "^4.5.3",
@@ -10511,32 +12791,37 @@
},
"node_modules/flatstr": {
"version": "1.0.12",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz",
+ "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw=="
},
"node_modules/flatted": {
"version": "3.3.2",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz",
+ "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA=="
},
"node_modules/fmix": {
"version": "0.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/fmix/-/fmix-0.1.0.tgz",
+ "integrity": "sha512-Y6hyofImk9JdzU8k5INtTXX1cu8LDlePWDFU5sftm9H+zKCr5SGrVjdhkvsim646cw5zD0nADj8oHyXMZmCZ9w==",
"dependencies": {
"imul": "^1.0.0"
}
},
"node_modules/fn.name": {
"version": "1.1.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz",
+ "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw=="
},
"node_modules/follow-redirects": {
"version": "1.15.9",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
+ "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
"funding": [
{
"type": "individual",
"url": "https://github.com/sponsors/RubenVerborgh"
}
],
- "license": "MIT",
"engines": {
"node": ">=4.0"
},
@@ -10548,16 +12833,18 @@
},
"node_modules/for-each": {
"version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"is-callable": "^1.1.3"
}
},
"node_modules/foreground-child": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz",
+ "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==",
"dev": true,
- "license": "ISC",
"dependencies": {
"cross-spawn": "^7.0.0",
"signal-exit": "^3.0.2"
@@ -10568,15 +12855,17 @@
},
"node_modules/forever-agent": {
"version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
"dev": true,
- "license": "Apache-2.0",
"engines": {
"node": "*"
}
},
"node_modules/form-data": {
"version": "4.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz",
+ "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
@@ -10588,12 +12877,14 @@
},
"node_modules/form-data-encoder": {
"version": "1.7.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz",
+ "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==",
+ "dev": true
},
"node_modules/formdata-polyfill": {
"version": "4.0.10",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
+ "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
"dependencies": {
"fetch-blob": "^3.1.2"
},
@@ -10603,18 +12894,22 @@
},
"node_modules/forwarded": {
"version": "0.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/fp-ts": {
"version": "1.19.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz",
+ "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg=="
},
"node_modules/fraction.js": {
"version": "4.3.7",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
+ "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
+ "dev": true,
"engines": {
"node": "*"
},
@@ -10625,17 +12920,22 @@
},
"node_modules/fresh": {
"version": "0.5.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/from-exponential": {
"version": "1.1.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/from-exponential/-/from-exponential-1.1.1.tgz",
+ "integrity": "sha512-VBE7f5OVnYwdgB3LHa+Qo29h8qVpxhVO9Trlc+AWm+/XNAgks1tAwMFHb33mjeiof77GglsJzeYF7OqXrROP/A==",
+ "dev": true
},
"node_modules/fromentries": {
"version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz",
+ "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==",
"dev": true,
"funding": [
{
@@ -10650,17 +12950,17 @@
"type": "consulting",
"url": "https://feross.org/support"
}
- ],
- "license": "MIT"
+ ]
},
"node_modules/fs-constants": {
"version": "1.0.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
},
"node_modules/fs-extra": {
"version": "10.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -10672,19 +12972,23 @@
},
"node_modules/fs-minipass": {
"version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
+ "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
"dev": true,
- "license": "ISC",
"dependencies": {
"minipass": "^2.6.0"
}
},
"node_modules/fs.realpath": {
"version": "1.0.0",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
},
"node_modules/fsevents": {
"version": "2.3.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "hasInstallScript": true,
"optional": true,
"os": [
"darwin"
@@ -10695,7 +12999,9 @@
},
"node_modules/fstream": {
"version": "1.0.12",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
+ "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
+ "deprecated": "This package is no longer supported.",
"dependencies": {
"graceful-fs": "^4.1.2",
"inherits": "~2.0.0",
@@ -10708,7 +13014,9 @@
},
"node_modules/fstream/node_modules/rimraf": {
"version": "2.7.1",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
"dependencies": {
"glob": "^7.1.3"
},
@@ -10718,15 +13026,17 @@
},
"node_modules/function-bind": {
"version": "1.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/function.prototype.name": {
"version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
+ "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.2",
@@ -10743,52 +13053,83 @@
},
"node_modules/functions-have-names": {
"version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
"dev": true,
- "license": "MIT",
"peer": true,
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/gauge": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz",
+ "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==",
+ "deprecated": "This package is no longer supported.",
+ "optional": true,
+ "dependencies": {
+ "aproba": "^1.0.3 || ^2.0.0",
+ "color-support": "^1.1.3",
+ "console-control-strings": "^1.1.0",
+ "has-unicode": "^2.0.1",
+ "signal-exit": "^3.0.7",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1",
+ "wide-align": "^1.1.5"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
"node_modules/generate-function": {
"version": "2.3.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz",
+ "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==",
"dependencies": {
"is-property": "^1.0.2"
}
},
"node_modules/gensync": {
"version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/get-caller-file": {
"version": "2.0.5",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"engines": {
"node": "6.* || 8.* || >= 10.*"
}
},
"node_modules/get-func-name": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz",
+ "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": "*"
}
},
"node_modules/get-intrinsic": {
- "version": "1.2.4",
- "license": "MIT",
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.6.tgz",
+ "integrity": "sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==",
"dependencies": {
+ "call-bind-apply-helpers": "^1.0.1",
+ "dunder-proto": "^1.0.0",
+ "es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
"function-bind": "^1.1.2",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.0"
+ "gopd": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "hasown": "^2.0.2",
+ "math-intrinsics": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
@@ -10799,19 +13140,22 @@
},
"node_modules/get-iterator": {
"version": "1.0.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz",
+ "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg=="
},
"node_modules/get-package-type": {
"version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
+ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/get-stream": {
"version": "6.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
"engines": {
"node": ">=10"
},
@@ -10821,8 +13165,9 @@
},
"node_modules/get-symbol-description": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz",
+ "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.5",
@@ -10838,20 +13183,23 @@
},
"node_modules/getpass": {
"version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
"dev": true,
- "license": "MIT",
"dependencies": {
"assert-plus": "^1.0.0"
}
},
"node_modules/github-from-package": {
"version": "0.0.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
+ "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw=="
},
"node_modules/glob": {
"version": "7.2.3",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -10869,7 +13217,8 @@
},
"node_modules/glob-parent": {
"version": "6.0.2",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
"dependencies": {
"is-glob": "^4.0.3"
},
@@ -10879,8 +13228,9 @@
},
"node_modules/global": {
"version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz",
+ "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"min-document": "^2.19.0",
"process": "^0.11.10"
@@ -10888,8 +13238,9 @@
},
"node_modules/global-dirs": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz",
+ "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ini": "2.0.0"
},
@@ -10902,7 +13253,8 @@
},
"node_modules/globals": {
"version": "13.24.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
"dependencies": {
"type-fest": "^0.20.2"
},
@@ -10915,8 +13267,9 @@
},
"node_modules/globalthis": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
+ "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"define-properties": "^1.2.1",
@@ -10931,7 +13284,8 @@
},
"node_modules/gopd": {
"version": "1.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
"engines": {
"node": ">= 0.4"
},
@@ -10941,8 +13295,9 @@
},
"node_modules/got": {
"version": "12.1.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz",
+ "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@sindresorhus/is": "^4.6.0",
"@szmarczak/http-timer": "^5.0.1",
@@ -10967,19 +13322,22 @@
},
"node_modules/got/node_modules/p-cancelable": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz",
+ "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=12.20"
}
},
"node_modules/graceful-fs": {
"version": "4.2.11",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
},
"node_modules/graphdb": {
"version": "2.0.2",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/graphdb/-/graphdb-2.0.2.tgz",
+ "integrity": "sha512-ORbS7yw/kTUdKXyeO7QaXx1I3fxigej3KQQdrVSpu0ZQ1W7OVQHDAd/Gu+x2clpwm6sela94Uh/+YKkQGbZqmA==",
"dependencies": {
"axios": "^0.21.4",
"base64url": "^3.0.1",
@@ -10999,29 +13357,34 @@
},
"node_modules/graphdb/node_modules/@types/node": {
"version": "13.13.52",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.52.tgz",
+ "integrity": "sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ=="
},
"node_modules/graphdb/node_modules/axios": {
"version": "0.21.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
+ "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
"dependencies": {
"follow-redirects": "^1.14.0"
}
},
"node_modules/graphdb/node_modules/canonicalize": {
"version": "1.0.8",
- "license": "Apache-2.0"
+ "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz",
+ "integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A=="
},
"node_modules/graphdb/node_modules/fast-redact": {
"version": "2.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-2.1.0.tgz",
+ "integrity": "sha512-0LkHpTLyadJavq9sRzzyqIoMZemWli77K2/MGOkafrR64B9ItrvZ9aT+jluvNDsv0YEHjSNhlMBtbokuoqii4A==",
"engines": {
"node": ">=6"
}
},
"node_modules/graphdb/node_modules/jsonld-streaming-parser": {
"version": "2.4.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/jsonld-streaming-parser/-/jsonld-streaming-parser-2.4.3.tgz",
+ "integrity": "sha512-ysuevJ+l8+Y4W3J/yQW3pa9VCBNDHo2tZkKmPAnfhfsmFMyxuueAeXMmTbpJZdrpagzeeDVr3A8EZVuHliQJ9A==",
"dependencies": {
"@rdfjs/types": "*",
"@types/http-link-header": "^1.0.1",
@@ -11034,7 +13397,8 @@
},
"node_modules/graphdb/node_modules/pino": {
"version": "5.17.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/pino/-/pino-5.17.0.tgz",
+ "integrity": "sha512-LqrqmRcJz8etUjyV0ddqB6OTUutCgQULPFg2b4dtijRHUsucaAdBgSUW58vY6RFSX+NT8963F+q0tM6lNwGShA==",
"dependencies": {
"fast-redact": "^2.0.0",
"fast-safe-stringify": "^2.0.7",
@@ -11049,15 +13413,18 @@
},
"node_modules/graphdb/node_modules/pino-std-serializers": {
"version": "2.5.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-2.5.0.tgz",
+ "integrity": "sha512-wXqbqSrIhE58TdrxxlfLwU9eDhrzppQDvGhBEr1gYbzzM4KKo3Y63gSjiDXRKLVS2UOXdPNR2v+KnQgNrs+xUg=="
},
"node_modules/graphdb/node_modules/quick-format-unescaped": {
"version": "3.0.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-3.0.3.tgz",
+ "integrity": "sha512-dy1yjycmn9blucmJLXOfZDx1ikZJUi6E8bBZLnhPG5gBrVhHXx2xVyqqgKBubVNEXmx51dBACMHpoMQK/N/AXQ=="
},
"node_modules/graphdb/node_modules/rdfxml-streaming-parser": {
"version": "1.5.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/rdfxml-streaming-parser/-/rdfxml-streaming-parser-1.5.0.tgz",
+ "integrity": "sha512-pnt+7NgeqCMd2/rub+dqxzYJhZwJjBNU2BRwyYdCTmRZu2fr795jCPJB6Io5pjPzAt29ASqy+ODBSRMDKoKGbQ==",
"dependencies": {
"@rdfjs/types": "*",
"rdf-data-factory": "^1.1.0",
@@ -11067,7 +13434,8 @@
},
"node_modules/graphdb/node_modules/sonic-boom": {
"version": "0.7.7",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-0.7.7.tgz",
+ "integrity": "sha512-Ei5YOo5J64GKClHIL/5evJPgASXFVpfVYbJV9PILZQytTK6/LCwHvsZJW2Ig4p9FMC2OrBrMnXKgRN/OEoAWfg==",
"dependencies": {
"atomic-sleep": "^1.0.0",
"flatstr": "^1.0.12"
@@ -11075,7 +13443,8 @@
},
"node_modules/graphdb/node_modules/sparqljson-parse": {
"version": "1.7.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/sparqljson-parse/-/sparqljson-parse-1.7.0.tgz",
+ "integrity": "sha512-/88g7aK1QZ42YvMx+nStNeZsiVJhmg/OC4RNnQk+ybItvEkQiTOpnYDmST5FnzOIsSmp5RxAZDCIDdMK1h7Ynw==",
"dependencies": {
"@rdfjs/types": "*",
"@types/node": "^13.1.0",
@@ -11085,7 +13454,8 @@
},
"node_modules/graphdb/node_modules/sparqlxml-parse": {
"version": "1.5.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/sparqlxml-parse/-/sparqlxml-parse-1.5.0.tgz",
+ "integrity": "sha512-+0DCekgO3G6ugeVntrZS6+Fj60MsHR0q51WoRAdVzARb5V3jhX3dZJbwSaeydsOsXrtts4XSMc/z+kbqy5/VUQ==",
"dependencies": {
"@rdfjs/types": "*",
"@types/node": "^13.1.0",
@@ -11095,25 +13465,30 @@
},
"node_modules/graphdb/node_modules/uuid": {
"version": "3.4.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+ "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
"bin": {
"uuid": "bin/uuid"
}
},
"node_modules/graphemer": {
"version": "1.4.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="
},
"node_modules/graphql": {
"version": "15.9.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.9.0.tgz",
+ "integrity": "sha512-GCOQdvm7XxV1S4U4CGrsdlEN37245eC8P9zaYCMr6K1BG0IPGy5lUwmJsEOGyl1GD6HXjOtl2keCP9asRBwNvA==",
"engines": {
"node": ">= 10.x"
}
},
"node_modules/graphql-to-sparql": {
"version": "3.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/graphql-to-sparql/-/graphql-to-sparql-3.0.1.tgz",
+ "integrity": "sha512-A+RwB99o66CUj+XuqtP/u3P7fGS/qF6P+/jhNl1BE/JZ2SCnkrODvV0LADuJeCDmPh45fDhq+GTDVoN1ZQHYFw==",
"dependencies": {
"@rdfjs/types": "*",
"graphql": "^15.5.2",
@@ -11128,16 +13503,19 @@
},
"node_modules/har-schema": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==",
"dev": true,
- "license": "ISC",
"engines": {
"node": ">=4"
}
},
"node_modules/har-validator": {
"version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
+ "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
+ "deprecated": "this library is no longer supported",
"dev": true,
- "license": "MIT",
"dependencies": {
"ajv": "^6.12.3",
"har-schema": "^2.0.0"
@@ -11148,7 +13526,8 @@
},
"node_modules/hardhat": {
"version": "2.22.17",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.22.17.tgz",
+ "integrity": "sha512-tDlI475ccz4d/dajnADUTRc1OJ3H8fpP9sWhXhBPpYsQOg8JHq5xrDimo53UhWPl7KJmAeDCm1bFG74xvpGRpg==",
"dependencies": {
"@ethersproject/abi": "^5.1.2",
"@metamask/eth-sig-util": "^4.0.0",
@@ -11213,7 +13592,9 @@
},
"node_modules/hardhat-deploy": {
"version": "0.11.45",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/hardhat-deploy/-/hardhat-deploy-0.11.45.tgz",
+ "integrity": "sha512-aC8UNaq3JcORnEUIwV945iJuvBwi65tjHVDU3v6mOcqik7WAzHVCJ7cwmkkipsHrWysrB5YvGF1q9S1vIph83w==",
+ "dev": true,
"dependencies": {
"@ethersproject/abi": "^5.7.0",
"@ethersproject/abstract-signer": "^5.7.0",
@@ -11243,7 +13624,9 @@
},
"node_modules/hardhat-deploy-ethers": {
"version": "0.3.0-beta.13",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/hardhat-deploy-ethers/-/hardhat-deploy-ethers-0.3.0-beta.13.tgz",
+ "integrity": "sha512-PdWVcKB9coqWV1L7JTpfXRCI91Cgwsm7KLmBcwZ8f0COSm1xtABHZTyz3fvF6p42cTnz1VM0QnfDvMFlIRkSNw==",
+ "dev": true,
"peerDependencies": {
"ethers": "^5.0.0",
"hardhat": "^2.0.0"
@@ -11251,14 +13634,18 @@
},
"node_modules/hardhat-deploy/node_modules/axios": {
"version": "0.21.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
+ "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
+ "dev": true,
"dependencies": {
"follow-redirects": "^1.14.0"
}
},
"node_modules/hardhat-deploy/node_modules/chokidar": {
"version": "3.6.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "dev": true,
"dependencies": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
@@ -11280,7 +13667,9 @@
},
"node_modules/hardhat-deploy/node_modules/glob-parent": {
"version": "5.1.2",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
"dependencies": {
"is-glob": "^4.0.1"
},
@@ -11290,7 +13679,9 @@
},
"node_modules/hardhat-deploy/node_modules/readdirp": {
"version": "3.6.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
"dependencies": {
"picomatch": "^2.2.1"
},
@@ -11300,7 +13691,8 @@
},
"node_modules/hardhat/node_modules/fs-extra": {
"version": "7.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
+ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
"dependencies": {
"graceful-fs": "^4.1.2",
"jsonfile": "^4.0.0",
@@ -11312,14 +13704,16 @@
},
"node_modules/hardhat/node_modules/jsonfile": {
"version": "4.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
},
"node_modules/hardhat/node_modules/resolve": {
"version": "1.17.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
+ "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
"dependencies": {
"path-parse": "^1.0.6"
},
@@ -11329,21 +13723,24 @@
},
"node_modules/hardhat/node_modules/semver": {
"version": "6.3.1",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/hardhat/node_modules/universalify": {
"version": "0.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
"engines": {
"node": ">= 4.0.0"
}
},
"node_modules/hardhat/node_modules/ws": {
"version": "7.5.10",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
+ "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
"engines": {
"node": ">=8.3.0"
},
@@ -11362,8 +13759,9 @@
},
"node_modules/has-ansi": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-4.0.1.tgz",
+ "integrity": "sha512-Qr4RtTm30xvEdqUXbSBVWDu+PrTokJOwe/FU+VdfJPk+MXAPoeOzKpRyrDTnZIJwAkQ4oBLTU53nu0HrkF/Z2A==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ansi-regex": "^4.1.0"
},
@@ -11373,8 +13771,9 @@
},
"node_modules/has-bigints": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
"dev": true,
- "license": "MIT",
"peer": true,
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -11382,14 +13781,16 @@
},
"node_modules/has-flag": {
"version": "4.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/has-property-descriptors": {
"version": "1.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
"dependencies": {
"es-define-property": "^1.0.0"
},
@@ -11398,10 +13799,13 @@
}
},
"node_modules/has-proto": {
- "version": "1.1.0",
- "license": "MIT",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz",
+ "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==",
+ "dev": true,
+ "peer": true,
"dependencies": {
- "call-bind": "^1.0.7"
+ "dunder-proto": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
@@ -11412,7 +13816,8 @@
},
"node_modules/has-symbols": {
"version": "1.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
"engines": {
"node": ">= 0.4"
},
@@ -11422,8 +13827,9 @@
},
"node_modules/has-tostringtag": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"has-symbols": "^1.0.3"
},
@@ -11434,9 +13840,16 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==",
+ "optional": true
+ },
"node_modules/hash-base": {
"version": "3.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
+ "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
"dependencies": {
"inherits": "^2.0.4",
"readable-stream": "^3.6.0",
@@ -11448,7 +13861,8 @@
},
"node_modules/hash-base/node_modules/readable-stream": {
"version": "3.6.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"dependencies": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -11460,7 +13874,8 @@
},
"node_modules/hash.js": {
"version": "1.1.7",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
"dependencies": {
"inherits": "^2.0.3",
"minimalistic-assert": "^1.0.1"
@@ -11468,8 +13883,9 @@
},
"node_modules/hasha": {
"version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz",
+ "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"is-stream": "^2.0.0",
"type-fest": "^0.8.0"
@@ -11483,19 +13899,22 @@
},
"node_modules/hasha/node_modules/type-fest": {
"version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
"dev": true,
- "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=8"
}
},
"node_modules/hashlru": {
"version": "2.3.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/hashlru/-/hashlru-2.3.0.tgz",
+ "integrity": "sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A=="
},
"node_modules/hasown": {
"version": "2.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
"dependencies": {
"function-bind": "^1.1.2"
},
@@ -11505,18 +13924,21 @@
},
"node_modules/he": {
"version": "1.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
"bin": {
"he": "bin/he"
}
},
"node_modules/heap": {
"version": "0.2.7",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz",
+ "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg=="
},
"node_modules/help-me": {
"version": "4.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/help-me/-/help-me-4.2.0.tgz",
+ "integrity": "sha512-TAOnTB8Tz5Dw8penUuzHVrKNKlCIbwwbHnXraNJxPwf8LRtE2HlM84RYuezMFcwOJmoYOCWVDyJ8TQGxn9PgxA==",
"dependencies": {
"glob": "^8.0.0",
"readable-stream": "^3.6.0"
@@ -11524,14 +13946,17 @@
},
"node_modules/help-me/node_modules/brace-expansion": {
"version": "2.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/help-me/node_modules/glob": {
"version": "8.1.0",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
+ "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -11548,7 +13973,8 @@
},
"node_modules/help-me/node_modules/minimatch": {
"version": "5.1.6",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
"dependencies": {
"brace-expansion": "^2.0.1"
},
@@ -11558,7 +13984,8 @@
},
"node_modules/help-me/node_modules/readable-stream": {
"version": "3.6.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"dependencies": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -11570,7 +13997,8 @@
},
"node_modules/hmac-drbg": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
"dependencies": {
"hash.js": "^1.0.3",
"minimalistic-assert": "^1.0.0",
@@ -11579,8 +14007,9 @@
},
"node_modules/html-encoding-sniffer": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz",
+ "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"whatwg-encoding": "^1.0.5"
},
@@ -11590,11 +14019,14 @@
},
"node_modules/html-escaper": {
"version": "2.0.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
+ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
+ "dev": true
},
"node_modules/htmlparser2": {
"version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz",
+ "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==",
"funding": [
"https://github.com/fb55/htmlparser2?sponsor=1",
{
@@ -11602,7 +14034,6 @@
"url": "https://github.com/sponsors/fb55"
}
],
- "license": "MIT",
"dependencies": {
"domelementtype": "^2.3.0",
"domhandler": "^5.0.3",
@@ -11612,12 +14043,14 @@
},
"node_modules/http-cache-semantics": {
"version": "4.1.1",
- "dev": true,
- "license": "BSD-2-Clause"
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
+ "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==",
+ "devOptional": true
},
"node_modules/http-errors": {
"version": "2.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
"dependencies": {
"depd": "2.0.0",
"inherits": "2.0.4",
@@ -11631,20 +14064,23 @@
},
"node_modules/http-https": {
"version": "1.0.0",
- "dev": true,
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz",
+ "integrity": "sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==",
+ "dev": true
},
"node_modules/http-link-header": {
"version": "1.1.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-1.1.3.tgz",
+ "integrity": "sha512-3cZ0SRL8fb9MUlU3mKM61FcQvPfXx2dBrZW3Vbg5CXa8jFlK8OaEpePenLe1oEXQduhz8b0QjsqfS59QP4AJDQ==",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/http-proxy-agent": {
"version": "4.0.1",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
+ "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
+ "devOptional": true,
"dependencies": {
"@tootallnate/once": "1",
"agent-base": "6",
@@ -11656,8 +14092,9 @@
},
"node_modules/http-signature": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"assert-plus": "^1.0.0",
"jsprim": "^1.2.2",
@@ -11670,8 +14107,9 @@
},
"node_modules/http2-wrapper": {
"version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz",
+ "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"quick-lru": "^5.1.1",
"resolve-alpn": "^1.2.0"
@@ -11682,7 +14120,8 @@
},
"node_modules/https-proxy-agent": {
"version": "5.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
"dependencies": {
"agent-base": "6",
"debug": "4"
@@ -11693,15 +14132,26 @@
},
"node_modules/human-signals": {
"version": "2.1.0",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
"engines": {
"node": ">=10.17.0"
}
},
+ "node_modules/humanize-ms": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
+ "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==",
+ "optional": true,
+ "dependencies": {
+ "ms": "^2.0.0"
+ }
+ },
"node_modules/husky": {
"version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz",
+ "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==",
"dev": true,
- "license": "MIT",
"bin": {
"husky": "lib/bin.js"
},
@@ -11714,7 +14164,8 @@
},
"node_modules/iconv-lite": {
"version": "0.6.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3.0.0"
},
@@ -11724,8 +14175,9 @@
},
"node_modules/idna-uts46-hx": {
"version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz",
+ "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"punycode": "2.1.0"
},
@@ -11735,14 +14187,17 @@
},
"node_modules/idna-uts46-hx/node_modules/punycode": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz",
+ "integrity": "sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/ieee754": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
"funding": [
{
"type": "github",
@@ -11756,23 +14211,25 @@
"type": "consulting",
"url": "https://feross.org/support"
}
- ],
- "license": "BSD-3-Clause"
+ ]
},
"node_modules/ignore": {
"version": "5.3.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
"engines": {
"node": ">= 4"
}
},
"node_modules/immutable": {
"version": "4.3.7",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz",
+ "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw=="
},
"node_modules/import-fresh": {
"version": "3.3.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
"dependencies": {
"parent-module": "^1.0.0",
"resolve-from": "^4.0.0"
@@ -11786,42 +14243,55 @@
},
"node_modules/import-lazy": {
"version": "4.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz",
+ "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==",
"engines": {
"node": ">=8"
}
},
"node_modules/imul": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/imul/-/imul-1.0.1.tgz",
+ "integrity": "sha512-WFAgfwPLAjU66EKt6vRdTlKj4nAgIDQzh29JonLa4Bqtl6D8JrIMvWjCnx7xEjVNmP3U0fM5o8ZObk7d0f62bA==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/imurmurhash": {
"version": "0.1.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
"engines": {
"node": ">=0.8.19"
}
},
"node_modules/indent-string": {
"version": "4.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
"engines": {
"node": ">=8"
}
},
+ "node_modules/infer-owner": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
+ "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
+ "optional": true
+ },
"node_modules/inflection": {
"version": "1.13.4",
+ "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.13.4.tgz",
+ "integrity": "sha512-6I/HUDeYFfuNCVS3td055BaXBwKYuzw7K3ExVMStBowKo9oOAMJIXIHvdyR3iboTCp1b+1i5DSkIZTcwIktuDw==",
"engines": [
"node >= 0.4.0"
- ],
- "license": "MIT"
+ ]
},
"node_modules/inflight": {
"version": "1.0.6",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
"dependencies": {
"once": "^1.3.0",
"wrappy": "1"
@@ -11829,19 +14299,22 @@
},
"node_modules/inherits": {
"version": "2.0.4",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"node_modules/ini": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
+ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
"dev": true,
- "license": "ISC",
"engines": {
"node": ">=10"
}
},
"node_modules/interface-datastore": {
"version": "5.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-5.2.0.tgz",
+ "integrity": "sha512-nthO4C4BMJM2j9x/mT2KFa/g/sbcY8yf9j/kOBgli3u5mq9ZdPvQyDxi0OhKzr4JmoM81OYh5xcFjyebquqwvA==",
"dependencies": {
"err-code": "^3.0.1",
"interface-store": "^1.0.2",
@@ -11856,12 +14329,14 @@
},
"node_modules/interface-store": {
"version": "1.0.2",
- "license": "(Apache-2.0 OR MIT)"
+ "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-1.0.2.tgz",
+ "integrity": "sha512-rUBLYsgoWwxuUpnQoSUr+DR/3dH3reVeIu5aOHFZK31lAexmb++kR6ZECNRgrx6WvoaM3Akdo0A7TDrqgCzZaQ=="
},
"node_modules/internal-slot": {
"version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz",
+ "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"es-errors": "^1.3.0",
@@ -11874,26 +14349,30 @@
},
"node_modules/internmap": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz",
+ "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==",
"dev": true,
- "license": "ISC",
"engines": {
"node": ">=12"
}
},
"node_modules/io-ts": {
"version": "1.10.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz",
+ "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==",
"dependencies": {
"fp-ts": "^1.0.0"
}
},
"node_modules/ip": {
"version": "1.1.9",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz",
+ "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ=="
},
"node_modules/ip-address": {
"version": "8.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-8.1.0.tgz",
+ "integrity": "sha512-Wz91gZKpNKoXtqvY8ScarKYwhXoK4r/b5QuT+uywe/azv0/nUCo7Bh0IRRI7F9DHR06kJNWtzMGLIbXavngbKA==",
"dependencies": {
"jsbn": "1.1.0",
"sprintf-js": "1.1.2"
@@ -11904,21 +14383,24 @@
},
"node_modules/ip-regex": {
"version": "4.3.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz",
+ "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==",
"engines": {
"node": ">=8"
}
},
"node_modules/ipaddr.js": {
"version": "2.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz",
+ "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==",
"engines": {
"node": ">= 10"
}
},
"node_modules/ipfs-utils": {
"version": "8.1.6",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-8.1.6.tgz",
+ "integrity": "sha512-V/cwb6113DrDhrjDTWImA6+zmJbpdbUkxdxmEQO7it8ykV76bBmzU1ZXSM0QR0qxGy9VW8dkUlPAC2K10VgSmw==",
"dependencies": {
"abort-controller": "^3.0.0",
"any-signal": "^2.1.0",
@@ -11949,12 +14431,13 @@
}
},
"node_modules/is-arguments": {
- "version": "1.1.1",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz",
+ "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
+ "call-bound": "^1.0.2",
+ "has-tostringtag": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -11965,8 +14448,9 @@
},
"node_modules/is-array-buffer": {
"version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz",
+ "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.2",
@@ -11981,12 +14465,14 @@
},
"node_modules/is-arrayish": {
"version": "0.3.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
},
"node_modules/is-async-function": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
+ "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"has-tostringtag": "^1.0.0"
@@ -12000,8 +14486,9 @@
},
"node_modules/is-bigint": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz",
+ "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"has-bigints": "^1.0.2"
@@ -12015,7 +14502,8 @@
},
"node_modules/is-binary-path": {
"version": "2.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"dependencies": {
"binary-extensions": "^2.0.0"
},
@@ -12024,12 +14512,13 @@
}
},
"node_modules/is-boolean-object": {
- "version": "1.2.0",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.1.tgz",
+ "integrity": "sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bound": "^1.0.2",
"has-tostringtag": "^1.0.2"
},
"engines": {
@@ -12041,6 +14530,8 @@
},
"node_modules/is-buffer": {
"version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
+ "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
"funding": [
{
"type": "github",
@@ -12055,15 +14546,15 @@
"url": "https://feross.org/support"
}
],
- "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/is-callable": {
"version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 0.4"
},
@@ -12073,7 +14564,8 @@
},
"node_modules/is-core-module": {
"version": "2.15.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz",
+ "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==",
"dependencies": {
"hasown": "^2.0.2"
},
@@ -12085,11 +14577,14 @@
}
},
"node_modules/is-data-view": {
- "version": "1.0.1",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz",
+ "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
+ "call-bound": "^1.0.2",
+ "get-intrinsic": "^1.2.6",
"is-typed-array": "^1.1.13"
},
"engines": {
@@ -12100,12 +14595,14 @@
}
},
"node_modules/is-date-object": {
- "version": "1.0.5",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz",
+ "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
- "has-tostringtag": "^1.0.0"
+ "call-bound": "^1.0.2",
+ "has-tostringtag": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -12116,19 +14613,22 @@
},
"node_modules/is-electron": {
"version": "2.2.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.2.tgz",
+ "integrity": "sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg=="
},
"node_modules/is-extglob": {
"version": "2.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-finalizationregistry": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.0.tgz",
+ "integrity": "sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.7"
@@ -12142,8 +14642,9 @@
},
"node_modules/is-fullwidth-code-point": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz",
+ "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -12153,13 +14654,15 @@
},
"node_modules/is-function": {
"version": "1.0.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz",
+ "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==",
+ "dev": true
},
"node_modules/is-generator-function": {
"version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
+ "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
"dev": true,
- "license": "MIT",
"dependencies": {
"has-tostringtag": "^1.0.0"
},
@@ -12172,7 +14675,8 @@
},
"node_modules/is-glob": {
"version": "4.0.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"dependencies": {
"is-extglob": "^2.1.1"
},
@@ -12182,7 +14686,8 @@
},
"node_modules/is-hex-prefixed": {
"version": "1.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz",
+ "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==",
"engines": {
"node": ">=6.5.0",
"npm": ">=3"
@@ -12190,8 +14695,9 @@
},
"node_modules/is-installed-globally": {
"version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz",
+ "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"global-dirs": "^3.0.0",
"is-path-inside": "^3.0.2"
@@ -12205,7 +14711,8 @@
},
"node_modules/is-ip": {
"version": "3.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz",
+ "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==",
"dependencies": {
"ip-regex": "^4.0.0"
},
@@ -12213,14 +14720,22 @@
"node": ">=8"
}
},
+ "node_modules/is-lambda": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz",
+ "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==",
+ "optional": true
+ },
"node_modules/is-loopback-addr": {
"version": "1.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-1.0.1.tgz",
+ "integrity": "sha512-DhWU/kqY7X2F6KrrVTu7mHlbd2Pbo4D1YkAzasBMjQs6lJAoefxaA6m6CpSX0K6pjt9D0b9PNFI5zduy/vzOYw=="
},
"node_modules/is-map": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
+ "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
"dev": true,
- "license": "MIT",
"peer": true,
"engines": {
"node": ">= 0.4"
@@ -12231,8 +14746,9 @@
},
"node_modules/is-negative-zero": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
+ "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
"dev": true,
- "license": "MIT",
"peer": true,
"engines": {
"node": ">= 0.4"
@@ -12243,15 +14759,17 @@
},
"node_modules/is-number": {
"version": "7.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"engines": {
"node": ">=0.12.0"
}
},
"node_modules/is-number-object": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.0.tgz",
+ "integrity": "sha512-KVSZV0Dunv9DTPkhXwcZ3Q+tUc9TsaE1ZwX5J2WMvsSGS6Md8TFPun5uwh0yRdrNerI6vf/tbJxqSx4c1ZI1Lw==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.7",
@@ -12266,35 +14784,40 @@
},
"node_modules/is-path-inside": {
"version": "3.0.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/is-plain-obj": {
"version": "2.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
"engines": {
"node": ">=8"
}
},
"node_modules/is-potential-custom-element-name": {
"version": "1.0.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
+ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
+ "dev": true
},
"node_modules/is-property": {
"version": "1.0.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
+ "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g=="
},
"node_modules/is-regex": {
- "version": "1.2.0",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
+ "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
- "call-bind": "^1.0.7",
- "gopd": "^1.1.0",
+ "call-bound": "^1.0.2",
+ "gopd": "^1.2.0",
"has-tostringtag": "^1.0.2",
"hasown": "^2.0.2"
},
@@ -12307,8 +14830,9 @@
},
"node_modules/is-set": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
+ "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
"dev": true,
- "license": "MIT",
"peer": true,
"engines": {
"node": ">= 0.4"
@@ -12319,8 +14843,9 @@
},
"node_modules/is-shared-array-buffer": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz",
+ "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.7"
@@ -12334,7 +14859,8 @@
},
"node_modules/is-stream": {
"version": "2.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
"engines": {
"node": ">=8"
},
@@ -12344,8 +14870,9 @@
},
"node_modules/is-string": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.0.tgz",
+ "integrity": "sha512-PlfzajuF9vSo5wErv3MJAKD/nqf9ngAs1NFQYm16nUYFO2IzxJ2hcm+IOCg+EEopdykNNUhVq5cz35cAUxU8+g==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.7",
@@ -12359,14 +14886,15 @@
}
},
"node_modules/is-symbol": {
- "version": "1.1.0",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz",
+ "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
- "call-bind": "^1.0.7",
- "has-symbols": "^1.0.3",
- "safe-regex-test": "^1.0.3"
+ "call-bound": "^1.0.2",
+ "has-symbols": "^1.1.0",
+ "safe-regex-test": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
@@ -12377,8 +14905,9 @@
},
"node_modules/is-typed-array": {
"version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz",
+ "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"which-typed-array": "^1.1.14"
},
@@ -12391,11 +14920,13 @@
},
"node_modules/is-typedarray": {
"version": "1.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
},
"node_modules/is-unicode-supported": {
"version": "0.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
"engines": {
"node": ">=10"
},
@@ -12405,8 +14936,9 @@
},
"node_modules/is-weakmap": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
+ "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
"dev": true,
- "license": "MIT",
"peer": true,
"engines": {
"node": ">= 0.4"
@@ -12417,8 +14949,9 @@
},
"node_modules/is-weakref": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
+ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.2"
@@ -12429,8 +14962,9 @@
},
"node_modules/is-weakset": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz",
+ "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.7",
@@ -12445,25 +14979,29 @@
},
"node_modules/is-windows": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/isarray": {
"version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
"dev": true,
- "license": "MIT",
"peer": true
},
"node_modules/isexe": {
"version": "2.0.0",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
},
"node_modules/iso-random-stream": {
"version": "2.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-2.0.2.tgz",
+ "integrity": "sha512-yJvs+Nnelic1L2vH2JzWvvPQFA4r7kSTnpST/+LkAQjSz0hos2oqLD+qIVi9Qk38Hoe7mNDt3j0S27R58MVjLQ==",
"dependencies": {
"events": "^3.3.0",
"readable-stream": "^3.4.0"
@@ -12474,7 +15012,8 @@
},
"node_modules/iso-random-stream/node_modules/readable-stream": {
"version": "3.6.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"dependencies": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -12486,28 +15025,32 @@
},
"node_modules/iso-url": {
"version": "1.2.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.2.1.tgz",
+ "integrity": "sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng==",
"engines": {
"node": ">=12"
}
},
"node_modules/isstream": {
"version": "0.1.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==",
+ "dev": true
},
"node_modules/istanbul-lib-coverage": {
"version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
+ "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
"dev": true,
- "license": "BSD-3-Clause",
"engines": {
"node": ">=8"
}
},
"node_modules/istanbul-lib-hook": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz",
+ "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"append-transform": "^2.0.0"
},
@@ -12517,8 +15060,9 @@
},
"node_modules/istanbul-lib-instrument": {
"version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz",
+ "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"@babel/core": "^7.7.5",
"@istanbuljs/schema": "^0.1.2",
@@ -12531,16 +15075,18 @@
},
"node_modules/istanbul-lib-instrument/node_modules/semver": {
"version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
- "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/istanbul-lib-processinfo": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz",
+ "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==",
"dev": true,
- "license": "ISC",
"dependencies": {
"archy": "^1.0.0",
"cross-spawn": "^7.0.3",
@@ -12555,8 +15101,9 @@
},
"node_modules/istanbul-lib-processinfo/node_modules/p-map": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
+ "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"aggregate-error": "^3.0.0"
},
@@ -12566,8 +15113,9 @@
},
"node_modules/istanbul-lib-report": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
+ "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"istanbul-lib-coverage": "^3.0.0",
"make-dir": "^4.0.0",
@@ -12579,8 +15127,9 @@
},
"node_modules/istanbul-lib-report/node_modules/make-dir": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
+ "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"semver": "^7.5.3"
},
@@ -12593,8 +15142,9 @@
},
"node_modules/istanbul-lib-report/node_modules/supports-color": {
"version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -12604,8 +15154,9 @@
},
"node_modules/istanbul-lib-source-maps": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
+ "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"debug": "^4.1.1",
"istanbul-lib-coverage": "^3.0.0",
@@ -12617,8 +15168,9 @@
},
"node_modules/istanbul-reports": {
"version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz",
+ "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"html-escaper": "^2.0.0",
"istanbul-lib-report": "^3.0.0"
@@ -12629,11 +15181,13 @@
},
"node_modules/it-all": {
"version": "1.0.6",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz",
+ "integrity": "sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A=="
},
"node_modules/it-buffer": {
"version": "0.1.3",
- "license": "MPL-2.0",
+ "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"
@@ -12641,19 +15195,23 @@
},
"node_modules/it-drain": {
"version": "1.0.5",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-1.0.5.tgz",
+ "integrity": "sha512-r/GjkiW1bZswC04TNmUnLxa6uovme7KKwPhc+cb1hHU65E3AByypHH6Pm91WHuvqfFsm+9ws0kPtDBV3/8vmIg=="
},
"node_modules/it-filter": {
"version": "1.0.3",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-1.0.3.tgz",
+ "integrity": "sha512-EI3HpzUrKjTH01miLHWmhNWy3Xpbx4OXMXltgrNprL5lDpF3giVpHIouFpr5l+evXw6aOfxhnt01BIB+4VQA+w=="
},
"node_modules/it-first": {
"version": "1.0.7",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz",
+ "integrity": "sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g=="
},
"node_modules/it-glob": {
"version": "0.0.14",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.14.tgz",
+ "integrity": "sha512-TKKzs9CglbsihSpcwJPXN5DBUssu4akRzPlp8QJRCoLrKoaOpyY2V1qDlxx+UMivn0i114YyTd4AawWl7eqIdw==",
"dependencies": {
"@types/minimatch": "^3.0.4",
"minimatch": "^3.0.4"
@@ -12661,7 +15219,8 @@
},
"node_modules/it-handshake": {
"version": "2.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-2.0.0.tgz",
+ "integrity": "sha512-K4q+mz8aLlCK3vTjtgNdHC9c/JbuOATsfogarjMsLcBZC5vYfKbX3Gq3AWcCdjIsIrPqzTlhPKSxl64LJkrt2w==",
"dependencies": {
"it-pushable": "^1.4.0",
"it-reader": "^3.0.0",
@@ -12670,11 +15229,13 @@
},
"node_modules/it-length": {
"version": "1.0.4",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/it-length/-/it-length-1.0.4.tgz",
+ "integrity": "sha512-KN4jXzp77/GQ4fxUGMbsJx3ALUZ6SP3E79tzs2weGghtImDLFZzua/l3fOK0LN/hMH0M330HJRZWwYZfDNuCIA=="
},
"node_modules/it-length-prefixed": {
"version": "5.0.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz",
+ "integrity": "sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg==",
"dependencies": {
"bl": "^5.0.0",
"buffer": "^6.0.3",
@@ -12683,25 +15244,29 @@
},
"node_modules/it-map": {
"version": "1.0.6",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.6.tgz",
+ "integrity": "sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ=="
},
"node_modules/it-merge": {
"version": "1.0.4",
- "license": "ISC",
+ "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"
}
},
"node_modules/it-pair": {
"version": "1.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/it-pair/-/it-pair-1.0.0.tgz",
+ "integrity": "sha512-9raOiDu5OAuDOahtMtapKQDrQTxBfzlzrNcB6o7JARHkt+7Bb1dMkW/TpYdAjBJE77KH3e2zGzwpGUP9tXbLww==",
"dependencies": {
"get-iterator": "^1.0.2"
}
},
"node_modules/it-pb-rpc": {
"version": "0.1.13",
- "license": "MPL-2.0",
+ "resolved": "https://registry.npmjs.org/it-pb-rpc/-/it-pb-rpc-0.1.13.tgz",
+ "integrity": "sha512-aZ4FNJsDgNepVVTmYXgXbQabIiOQyqYWUhdfovaHDcPSM5KjegwJihJEWMJjMyj+oLSKcZl0vmHgHxXWJ9/ufw==",
"dependencies": {
"is-buffer": "^2.0.5",
"it-handshake": "^2.0.0",
@@ -12710,29 +15275,34 @@
},
"node_modules/it-pipe": {
"version": "1.1.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-1.1.0.tgz",
+ "integrity": "sha512-lF0/3qTVeth13TOnHVs0BTFaziwQF7m5Gg+E6JV0BXcLKutC92YjSi7bASgkPOXaLEb+YvNZrPorGMBIJvZfxg=="
},
"node_modules/it-pushable": {
"version": "1.4.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz",
+ "integrity": "sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg==",
"dependencies": {
"fast-fifo": "^1.0.0"
}
},
"node_modules/it-reader": {
"version": "3.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-3.0.0.tgz",
+ "integrity": "sha512-NxR40odATeaBmSefn6Xn43DplYvn2KtEKQzn4jrTRuPYXMky5M4e+KQ7aTJh0k0vkytLyeenGO1I1GXlGm4laQ==",
"dependencies": {
"bl": "^5.0.0"
}
},
"node_modules/it-take": {
"version": "1.0.2",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/it-take/-/it-take-1.0.2.tgz",
+ "integrity": "sha512-u7I6qhhxH7pSevcYNaMECtkvZW365ARqAIt9K+xjdK1B2WUDEjQSfETkOCT8bxFq/59LqrN3cMLUtTgmDBaygw=="
},
"node_modules/it-to-stream": {
"version": "1.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz",
+ "integrity": "sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==",
"dependencies": {
"buffer": "^6.0.3",
"fast-fifo": "^1.0.0",
@@ -12744,7 +15314,8 @@
},
"node_modules/it-to-stream/node_modules/readable-stream": {
"version": "3.6.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"dependencies": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -12755,16 +15326,18 @@
}
},
"node_modules/iterator.prototype": {
- "version": "1.1.3",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.4.tgz",
+ "integrity": "sha512-x4WH0BWmrMmg4oHHl+duwubhrvczGlyuGAZu3nvrf0UXOfPu8IhZObFEr7DE/iv01YgVZrsOiRcqw2srkKEDIA==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
- "define-properties": "^1.2.1",
- "get-intrinsic": "^1.2.1",
- "has-symbols": "^1.0.3",
- "reflect.getprototypeof": "^1.0.4",
- "set-function-name": "^2.0.1"
+ "define-data-property": "^1.1.4",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.6",
+ "has-symbols": "^1.1.0",
+ "reflect.getprototypeof": "^1.0.8",
+ "set-function-name": "^2.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -12772,31 +15345,38 @@
},
"node_modules/javascript-natural-sort": {
"version": "0.7.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz",
+ "integrity": "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==",
+ "dev": true
},
"node_modules/jju": {
"version": "1.4.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz",
+ "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA=="
},
"node_modules/joycon": {
"version": "3.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz",
+ "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==",
"engines": {
"node": ">=10"
}
},
"node_modules/js-sha3": {
"version": "0.8.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
+ "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q=="
},
"node_modules/js-tokens": {
"version": "4.0.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
},
"node_modules/js-yaml": {
"version": "4.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -12806,12 +15386,14 @@
},
"node_modules/jsbn": {
"version": "1.1.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz",
+ "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A=="
},
"node_modules/jsdom": {
"version": "16.7.0",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz",
+ "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"abab": "^2.0.5",
"acorn": "^8.2.4",
@@ -12855,8 +15437,9 @@
},
"node_modules/jsdom/node_modules/form-data": {
"version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.2.tgz",
+ "integrity": "sha512-sJe+TQb2vIaIyO783qN6BlMYWMw3WBOHA1Ay2qxsnjuafEOQFJ2JakedOQirT6D5XPRxDvS7AHYyem9fTpb4LQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
@@ -12868,8 +15451,9 @@
},
"node_modules/jsdom/node_modules/ws": {
"version": "7.5.10",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
+ "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=8.3.0"
},
@@ -12887,9 +15471,10 @@
}
},
"node_modules/jsesc": {
- "version": "3.0.2",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
+ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
"dev": true,
- "license": "MIT",
"bin": {
"jsesc": "bin/jsesc"
},
@@ -12899,36 +15484,43 @@
},
"node_modules/json-buffer": {
"version": "3.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
},
"node_modules/json-schema": {
"version": "0.4.0",
- "dev": true,
- "license": "(AFL-2.1 OR BSD-3-Clause)"
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
+ "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
+ "dev": true
},
"node_modules/json-schema-traverse": {
"version": "0.4.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
},
"node_modules/json-stable-stringify-without-jsonify": {
"version": "1.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="
},
"node_modules/json-stream-stringify": {
"version": "3.1.6",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/json-stream-stringify/-/json-stream-stringify-3.1.6.tgz",
+ "integrity": "sha512-x7fpwxOkbhFCaJDJ8vb1fBY3DdSa4AlITaz+HHILQJzdPMnHEFjxPwVUi1ALIbcIxDE0PNe/0i7frnY8QnBQog==",
"engines": {
"node": ">=7.10.1"
}
},
"node_modules/json-stringify-safe": {
"version": "5.0.1",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
},
"node_modules/json5": {
"version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true,
- "license": "MIT",
"bin": {
"json5": "lib/cli.js"
},
@@ -12938,7 +15530,8 @@
},
"node_modules/jsonfile": {
"version": "6.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dependencies": {
"universalify": "^2.0.0"
},
@@ -12948,7 +15541,8 @@
},
"node_modules/jsonld": {
"version": "8.3.2",
- "license": "BSD-3-Clause",
+ "resolved": "https://registry.npmjs.org/jsonld/-/jsonld-8.3.2.tgz",
+ "integrity": "sha512-MwBbq95szLwt8eVQ1Bcfwmgju/Y5P2GdtlHE2ncyfuYjIdEhluUVyj1eudacf1mOkWIoS9GpDBTECqhmq7EOaA==",
"dependencies": {
"@digitalbazaar/http-client": "^3.4.1",
"canonicalize": "^1.0.1",
@@ -12961,7 +15555,8 @@
},
"node_modules/jsonld-context-parser": {
"version": "2.4.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/jsonld-context-parser/-/jsonld-context-parser-2.4.0.tgz",
+ "integrity": "sha512-ZYOfvh525SdPd9ReYY58dxB3E2RUEU4DJ6ZibO8AitcowPeBH4L5rCAitE2om5G1P+HMEgYEYEr4EZKbVN4tpA==",
"dependencies": {
"@types/http-link-header": "^1.0.1",
"@types/node": "^18.0.0",
@@ -12974,22 +15569,25 @@
}
},
"node_modules/jsonld-context-parser/node_modules/@types/node": {
- "version": "18.19.67",
- "license": "MIT",
+ "version": "18.19.68",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.68.tgz",
+ "integrity": "sha512-QGtpFH1vB99ZmTa63K4/FU8twThj4fuVSBkGddTp7uIL/cuoLWIUSL2RcOaigBhfR+hg5pgGkBnkoOxrTVBMKw==",
"dependencies": {
"undici-types": "~5.26.4"
}
},
"node_modules/jsonld-context-parser/node_modules/cross-fetch": {
"version": "3.1.8",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz",
+ "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==",
"dependencies": {
"node-fetch": "^2.6.12"
}
},
"node_modules/jsonld-context-parser/node_modules/node-fetch": {
"version": "2.7.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
"dependencies": {
"whatwg-url": "^5.0.0"
},
@@ -13007,19 +15605,23 @@
},
"node_modules/jsonld-context-parser/node_modules/tr46": {
"version": "0.0.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
"node_modules/jsonld-context-parser/node_modules/undici-types": {
"version": "5.26.5",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
},
"node_modules/jsonld-context-parser/node_modules/webidl-conversions": {
"version": "3.0.1",
- "license": "BSD-2-Clause"
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
},
"node_modules/jsonld-context-parser/node_modules/whatwg-url": {
"version": "5.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
"dependencies": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"
@@ -13027,7 +15629,8 @@
},
"node_modules/jsonld-streaming-parser": {
"version": "3.4.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/jsonld-streaming-parser/-/jsonld-streaming-parser-3.4.0.tgz",
+ "integrity": "sha512-897CloyQgQidfkB04dLM5XaAXVX/cN9A2hvgHJo4y4jRhIpvg3KLMBBfcrswepV2N3T8c/Rp2JeFdWfVsbVZ7g==",
"dependencies": {
"@bergos/jsonparse": "^1.4.0",
"@rdfjs/types": "*",
@@ -13043,11 +15646,13 @@
},
"node_modules/jsonld-streaming-parser/node_modules/canonicalize": {
"version": "1.0.8",
- "license": "Apache-2.0"
+ "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz",
+ "integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A=="
},
"node_modules/jsonld-streaming-serializer": {
"version": "2.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/jsonld-streaming-serializer/-/jsonld-streaming-serializer-2.1.0.tgz",
+ "integrity": "sha512-COHdLoeMTnrqHMoFhN3PoAwqnrKrpPC7/ACb0WbELYvt+HSOIFN3v4IJP7fOtLNQ4GeaeYkvbeWJ7Jo4EjxMDw==",
"dependencies": {
"@rdfjs/types": "*",
"@types/readable-stream": "^2.3.13",
@@ -13058,11 +15663,13 @@
},
"node_modules/jsonld/node_modules/canonicalize": {
"version": "1.0.8",
- "license": "Apache-2.0"
+ "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz",
+ "integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A=="
},
"node_modules/jsonld/node_modules/lru-cache": {
"version": "6.0.0",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dependencies": {
"yallist": "^4.0.0"
},
@@ -13072,7 +15679,8 @@
},
"node_modules/jsonld/node_modules/rdf-canonize": {
"version": "3.4.0",
- "license": "BSD-3-Clause",
+ "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-3.4.0.tgz",
+ "integrity": "sha512-fUeWjrkOO0t1rg7B2fdyDTvngj+9RlUyL92vOdiB7c0FPguWVsniIMjEtHH+meLBO9rzkUlUzBVXgWrjI8P9LA==",
"dependencies": {
"setimmediate": "^1.0.5"
},
@@ -13082,25 +15690,29 @@
},
"node_modules/jsonld/node_modules/yallist": {
"version": "4.0.0",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
},
"node_modules/jsonparse": {
"version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
+ "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==",
"engines": [
"node >= 0.2.0"
- ],
- "license": "MIT"
+ ]
},
"node_modules/jsonschema": {
"version": "1.4.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz",
+ "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==",
"engines": {
"node": "*"
}
},
"node_modules/JSONStream": {
"version": "1.3.5",
- "license": "(MIT OR Apache-2.0)",
+ "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
+ "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
"dependencies": {
"jsonparse": "^1.2.0",
"through": ">=2.2.7 <3"
@@ -13114,7 +15726,8 @@
},
"node_modules/jsonwebtoken": {
"version": "9.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz",
+ "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==",
"dependencies": {
"jws": "^3.2.2",
"lodash.includes": "^4.3.0",
@@ -13134,8 +15747,9 @@
},
"node_modules/jsprim": {
"version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
+ "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"assert-plus": "1.0.0",
"extsprintf": "1.3.0",
@@ -13148,19 +15762,21 @@
},
"node_modules/jsprim/node_modules/extsprintf": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
"dev": true,
"engines": [
"node >=0.6.0"
- ],
- "license": "MIT"
+ ]
},
"node_modules/jsprim/node_modules/verror": {
"version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
"dev": true,
"engines": [
"node >=0.6.0"
],
- "license": "MIT",
"dependencies": {
"assert-plus": "^1.0.0",
"core-util-is": "1.0.2",
@@ -13169,8 +15785,9 @@
},
"node_modules/jsx-ast-utils": {
"version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
+ "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"array-includes": "^3.1.6",
@@ -13184,12 +15801,14 @@
},
"node_modules/just-extend": {
"version": "6.2.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz",
+ "integrity": "sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==",
+ "dev": true
},
"node_modules/jwa": {
"version": "1.4.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
+ "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
"dependencies": {
"buffer-equal-constant-time": "1.0.1",
"ecdsa-sig-formatter": "1.0.11",
@@ -13198,7 +15817,8 @@
},
"node_modules/jws": {
"version": "3.2.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
+ "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
"dependencies": {
"jwa": "^1.4.1",
"safe-buffer": "^5.0.1"
@@ -13206,15 +15826,17 @@
},
"node_modules/k-bucket": {
"version": "5.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/k-bucket/-/k-bucket-5.1.0.tgz",
+ "integrity": "sha512-Fac7iINEovXIWU20GPnOMLUbjctiS+cnmyjC4zAUgvs3XPf1vo9akfCHkigftSic/jiKqKl+KA3a/vFcJbHyCg==",
"dependencies": {
"randombytes": "^2.1.0"
}
},
"node_modules/keccak": {
"version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz",
+ "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==",
"hasInstallScript": true,
- "license": "MIT",
"dependencies": {
"node-addon-api": "^2.0.0",
"node-gyp-build": "^4.2.0",
@@ -13226,7 +15848,8 @@
},
"node_modules/keccak/node_modules/readable-stream": {
"version": "3.6.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"dependencies": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -13238,30 +15861,35 @@
},
"node_modules/keypair": {
"version": "1.0.4",
- "license": "BSD / GPL"
+ "resolved": "https://registry.npmjs.org/keypair/-/keypair-1.0.4.tgz",
+ "integrity": "sha512-zwhgOhhniaL7oxMgUMKKw5219PWWABMO+dgMnzJOQ2/5L3XJtTJGhW2PEXlxXj9zaccdReZJZ83+4NPhVfNVDg=="
},
"node_modules/keyv": {
"version": "4.5.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
"dependencies": {
"json-buffer": "3.0.1"
}
},
"node_modules/knuth-shuffle-seeded": {
"version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/knuth-shuffle-seeded/-/knuth-shuffle-seeded-1.0.6.tgz",
+ "integrity": "sha512-9pFH0SplrfyKyojCLxZfMcvkhf5hH0d+UwR9nTVJ/DDQJGuzcXjTwB7TP7sDfehSudlGGaOLblmEWqv04ERVWg==",
"dev": true,
- "license": "Apache-2.0",
"dependencies": {
"seed-random": "~2.2.0"
}
},
"node_modules/kuler": {
"version": "2.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz",
+ "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A=="
},
"node_modules/ky": {
"version": "0.33.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ky/-/ky-0.33.3.tgz",
+ "integrity": "sha512-CasD9OCEQSFIam2U8efFK81Yeg8vNMTBUqtMOHlrcWQHqUX3HeCl9Dr31u4toV7emlH8Mymk5+9p0lL6mKb/Xw==",
"engines": {
"node": ">=14.16"
},
@@ -13271,7 +15899,8 @@
},
"node_modules/ky-universal": {
"version": "0.11.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ky-universal/-/ky-universal-0.11.0.tgz",
+ "integrity": "sha512-65KyweaWvk+uKKkCrfAf+xqN2/epw1IJDtlyCPxYffFCMR8u1sp2U65NtWpnozYfZxQ6IUzIlvUcw+hQ82U2Xw==",
"dependencies": {
"abort-controller": "^3.0.0",
"node-fetch": "^3.2.10"
@@ -13294,14 +15923,16 @@
},
"node_modules/language-subtag-registry": {
"version": "0.3.23",
+ "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz",
+ "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==",
"dev": true,
- "license": "CC0-1.0",
"peer": true
},
"node_modules/language-tags": {
"version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz",
+ "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"language-subtag-registry": "^0.3.20"
@@ -13312,7 +15943,8 @@
},
"node_modules/levn": {
"version": "0.4.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
"dependencies": {
"prelude-ls": "^1.2.1",
"type-check": "~0.4.0"
@@ -13323,7 +15955,8 @@
},
"node_modules/libp2p": {
"version": "0.32.5",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.32.5.tgz",
+ "integrity": "sha512-G21yQUdq4LaGDvjMi3ySmcx1cESl8ZsTG1BAfjzjx65DsZJKQ5GPZlamcv+Rwppk3OIplWoRnCu6gam/fI//bw==",
"dependencies": {
"@motrix/nat-api": "^0.3.1",
"@vascosantos/moving-average": "^1.1.0",
@@ -13383,7 +16016,8 @@
},
"node_modules/libp2p-bootstrap": {
"version": "0.13.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/libp2p-bootstrap/-/libp2p-bootstrap-0.13.0.tgz",
+ "integrity": "sha512-8sXEZrikY+chKvMorkvOi9E/v9GvwsYr9DAEfzQZrOKQZByqhan1aXQKWrSpc4AxEv5/UopRzu1P47bkOi8wdw==",
"dependencies": {
"debug": "^4.3.1",
"mafmt": "^10.0.0",
@@ -13396,7 +16030,8 @@
},
"node_modules/libp2p-crypto": {
"version": "0.19.7",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.19.7.tgz",
+ "integrity": "sha512-Qb5o/3WFKF2j6mYSt4UBPyi2kbKl3jYV0podBJoJCw70DlpM5Xc+oh3fFY9ToSunu8aSQQ5GY8nutjXgX/uGRA==",
"dependencies": {
"err-code": "^3.0.1",
"is-typedarray": "^1.0.0",
@@ -13416,7 +16051,8 @@
},
"node_modules/libp2p-interfaces": {
"version": "1.3.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/libp2p-interfaces/-/libp2p-interfaces-1.3.1.tgz",
+ "integrity": "sha512-Bh991Nv2KT/jZ7DjPd/zqhk8cCtkHl6OWw8lyK7wBX7Aj3/ezGwjoDABJzKgt1lbvcgCeQIbzPiIbaKj4DUI4w==",
"dependencies": {
"abort-controller": "^3.0.0",
"abortable-iterator": "^3.0.0",
@@ -13436,7 +16072,8 @@
},
"node_modules/libp2p-interfaces/node_modules/libp2p-crypto": {
"version": "0.20.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.20.0.tgz",
+ "integrity": "sha512-WgIW9rYcWaO/5j2T6NW3R6Q46yvp2ZfFErqRMbi4/pOTL3T7+OROYpL/1iWVksWkXyurU/t2qFsIijWMxR5C4Q==",
"dependencies": {
"err-code": "^3.0.1",
"iso-random-stream": "^2.0.0",
@@ -13456,7 +16093,8 @@
},
"node_modules/libp2p-kad-dht": {
"version": "0.24.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/libp2p-kad-dht/-/libp2p-kad-dht-0.24.2.tgz",
+ "integrity": "sha512-fBIwmta7LnoQ77giJRVqhnj9QKcws0SvzPWAsOy5AP3ByuxhcmqrHXTDI1iBnkvtCCegOuL41JkJOvaafu1XnA==",
"dependencies": {
"debug": "^4.3.1",
"err-code": "^3.0.0",
@@ -13488,7 +16126,8 @@
},
"node_modules/libp2p-mplex": {
"version": "0.10.7",
- "license": "MIT",
+ "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",
@@ -13501,7 +16140,9 @@
},
"node_modules/libp2p-noise": {
"version": "4.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/libp2p-noise/-/libp2p-noise-4.0.0.tgz",
+ "integrity": "sha512-DCXRKh9Y4pkw4HEWKPpZbeoROilZA1nrQMHIVrJ4JDEMUKVRucJc9GZTFNzo4yJUZ+ayQAlrfbUARiPPFbpfng==",
+ "deprecated": "This repository is now being maintained by ChainSafe, and can be found at https://github.com/ChainSafe/js-libp2p-noise under @chainsafe/libp2p-noise",
"dependencies": {
"@stablelib/chacha20poly1305": "^1.0.1",
"@stablelib/hkdf": "^1.0.1",
@@ -13521,14 +16162,16 @@
},
"node_modules/libp2p-noise/node_modules/uint8arrays": {
"version": "2.1.10",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz",
+ "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==",
"dependencies": {
"multiformats": "^9.4.2"
}
},
"node_modules/libp2p-record": {
"version": "0.10.6",
- "license": "MIT",
+ "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",
@@ -13541,7 +16184,8 @@
},
"node_modules/libp2p-tcp": {
"version": "0.17.2",
- "license": "MIT",
+ "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",
@@ -13558,7 +16202,8 @@
},
"node_modules/libp2p-utils": {
"version": "0.4.1",
- "license": "MIT",
+ "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",
@@ -13571,7 +16216,8 @@
},
"node_modules/libp2p/node_modules/timeout-abort-controller": {
"version": "1.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-1.1.1.tgz",
+ "integrity": "sha512-BsF9i3NAJag6T0ZEjki9j654zoafI2X6ayuNd6Tp8+Ul6Tr5s4jo973qFeiWrRSweqvskC+AHDKUmIW4b7pdhQ==",
"dependencies": {
"abort-controller": "^3.0.0",
"retimer": "^2.0.0"
@@ -13579,20 +16225,23 @@
},
"node_modules/libp2p/node_modules/timeout-abort-controller/node_modules/retimer": {
"version": "2.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/retimer/-/retimer-2.0.0.tgz",
+ "integrity": "sha512-KLXY85WkEq2V2bKex/LOO1ViXVn2KGYe4PYysAdYdjmraYIUsVkXu8O4am+8+5UbaaGl1qho4aqAAPHNQ4GSbg=="
},
"node_modules/lilconfig": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
+ "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=10"
}
},
"node_modules/lint-staged": {
"version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.3.0.tgz",
+ "integrity": "sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"chalk": "5.3.0",
"commander": "11.0.0",
@@ -13617,8 +16266,9 @@
},
"node_modules/lint-staged/node_modules/chalk": {
"version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
+ "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
"dev": true,
- "license": "MIT",
"engines": {
"node": "^12.17.0 || ^14.13 || >=16.0.0"
},
@@ -13628,16 +16278,18 @@
},
"node_modules/lint-staged/node_modules/commander": {
"version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz",
+ "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=16"
}
},
"node_modules/lint-staged/node_modules/debug": {
"version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ms": "2.1.2"
},
@@ -13652,8 +16304,9 @@
},
"node_modules/lint-staged/node_modules/execa": {
"version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz",
+ "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"cross-spawn": "^7.0.3",
"get-stream": "^6.0.1",
@@ -13674,16 +16327,18 @@
},
"node_modules/lint-staged/node_modules/human-signals": {
"version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
+ "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==",
"dev": true,
- "license": "Apache-2.0",
"engines": {
"node": ">=14.18.0"
}
},
"node_modules/lint-staged/node_modules/is-stream": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
+ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
@@ -13693,8 +16348,9 @@
},
"node_modules/lint-staged/node_modules/micromatch": {
"version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"braces": "^3.0.2",
"picomatch": "^2.3.1"
@@ -13705,8 +16361,9 @@
},
"node_modules/lint-staged/node_modules/mimic-fn": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
+ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -13716,13 +16373,15 @@
},
"node_modules/lint-staged/node_modules/ms": {
"version": "2.1.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
},
"node_modules/lint-staged/node_modules/npm-run-path": {
"version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz",
+ "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"path-key": "^4.0.0"
},
@@ -13735,8 +16394,9 @@
},
"node_modules/lint-staged/node_modules/onetime": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
+ "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"mimic-fn": "^4.0.0"
},
@@ -13749,8 +16409,9 @@
},
"node_modules/lint-staged/node_modules/path-key": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -13760,8 +16421,9 @@
},
"node_modules/lint-staged/node_modules/strip-final-newline": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
+ "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -13771,20 +16433,23 @@
},
"node_modules/lint-staged/node_modules/yaml": {
"version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz",
+ "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==",
"dev": true,
- "license": "ISC",
"engines": {
"node": ">= 14"
}
},
"node_modules/listenercount": {
"version": "1.0.1",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz",
+ "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ=="
},
"node_modules/listr2": {
"version": "6.6.1",
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-6.6.1.tgz",
+ "integrity": "sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"cli-truncate": "^3.1.0",
"colorette": "^2.0.20",
@@ -13807,8 +16472,9 @@
},
"node_modules/listr2/node_modules/ansi-regex": {
"version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -13818,8 +16484,9 @@
},
"node_modules/listr2/node_modules/ansi-styles": {
"version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -13829,8 +16496,9 @@
},
"node_modules/listr2/node_modules/string-width": {
"version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"eastasianwidth": "^0.2.0",
"emoji-regex": "^9.2.2",
@@ -13845,8 +16513,9 @@
},
"node_modules/listr2/node_modules/strip-ansi": {
"version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ansi-regex": "^6.0.1"
},
@@ -13859,8 +16528,9 @@
},
"node_modules/listr2/node_modules/wrap-ansi": {
"version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ansi-styles": "^6.1.0",
"string-width": "^5.0.1",
@@ -13875,7 +16545,8 @@
},
"node_modules/locate-path": {
"version": "6.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
"dependencies": {
"p-locate": "^5.0.0"
},
@@ -13888,63 +16559,83 @@
},
"node_modules/lodash": {
"version": "4.17.21",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"node_modules/lodash-es": {
"version": "4.17.21",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
+ "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==",
+ "dev": true
},
"node_modules/lodash.flattendeep": {
"version": "4.4.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
+ "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==",
+ "dev": true
},
"node_modules/lodash.get": {
"version": "4.4.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
+ "dev": true
},
"node_modules/lodash.includes": {
"version": "4.3.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
+ "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w=="
},
"node_modules/lodash.isboolean": {
"version": "3.0.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
+ "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg=="
+ },
+ "node_modules/lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==",
+ "peer": true
},
"node_modules/lodash.isinteger": {
"version": "4.0.4",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
+ "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA=="
},
"node_modules/lodash.isnumber": {
"version": "3.0.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
+ "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw=="
},
"node_modules/lodash.isplainobject": {
"version": "4.0.6",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
+ "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA=="
},
"node_modules/lodash.isstring": {
"version": "4.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
+ "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw=="
},
"node_modules/lodash.merge": {
"version": "4.6.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
},
"node_modules/lodash.mergewith": {
"version": "4.6.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz",
+ "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==",
+ "dev": true
},
"node_modules/lodash.once": {
"version": "4.1.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
+ "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg=="
},
"node_modules/log-symbols": {
"version": "4.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
"dependencies": {
"chalk": "^4.1.0",
"is-unicode-supported": "^0.1.0"
@@ -13958,8 +16649,9 @@
},
"node_modules/log-update": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/log-update/-/log-update-5.0.1.tgz",
+ "integrity": "sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ansi-escapes": "^5.0.0",
"cli-cursor": "^4.0.0",
@@ -13976,8 +16668,9 @@
},
"node_modules/log-update/node_modules/ansi-escapes": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz",
+ "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"type-fest": "^1.0.2"
},
@@ -13990,8 +16683,9 @@
},
"node_modules/log-update/node_modules/ansi-regex": {
"version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -14001,8 +16695,9 @@
},
"node_modules/log-update/node_modules/ansi-styles": {
"version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -14012,8 +16707,9 @@
},
"node_modules/log-update/node_modules/string-width": {
"version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"eastasianwidth": "^0.2.0",
"emoji-regex": "^9.2.2",
@@ -14028,8 +16724,9 @@
},
"node_modules/log-update/node_modules/strip-ansi": {
"version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ansi-regex": "^6.0.1"
},
@@ -14042,8 +16739,9 @@
},
"node_modules/log-update/node_modules/type-fest": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
+ "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
"dev": true,
- "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
@@ -14053,8 +16751,9 @@
},
"node_modules/log-update/node_modules/wrap-ansi": {
"version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ansi-styles": "^6.1.0",
"string-width": "^5.0.1",
@@ -14069,7 +16768,8 @@
},
"node_modules/logform": {
"version": "2.7.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/logform/-/logform-2.7.0.tgz",
+ "integrity": "sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==",
"dependencies": {
"@colors/colors": "1.6.0",
"@types/triple-beam": "^1.3.2",
@@ -14084,19 +16784,22 @@
},
"node_modules/logform/node_modules/@colors/colors": {
"version": "1.6.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz",
+ "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==",
"engines": {
"node": ">=0.1.90"
}
},
"node_modules/long": {
"version": "5.2.3",
- "license": "Apache-2.0"
+ "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz",
+ "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q=="
},
"node_modules/loose-envify": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"js-tokens": "^3.0.0 || ^4.0.0"
@@ -14107,23 +16810,26 @@
},
"node_modules/loupe": {
"version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz",
+ "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"get-func-name": "^2.0.1"
}
},
"node_modules/lower-case": {
"version": "2.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+ "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
"dependencies": {
"tslib": "^2.0.3"
}
},
"node_modules/lowercase-keys": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz",
+ "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
@@ -14133,15 +16839,18 @@
},
"node_modules/lru_map": {
"version": "0.3.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz",
+ "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ=="
},
"node_modules/lru-cache": {
"version": "10.4.3",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="
},
"node_modules/lru.min": {
"version": "1.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/lru.min/-/lru.min-1.1.1.tgz",
+ "integrity": "sha512-FbAj6lXil6t8z4z3j0E5mfRlPzxkySotzUHwRXjlpRh10vc6AI6WN62ehZj82VG7M20rqogJ0GLwar2Xa05a8Q==",
"engines": {
"bun": ">=1.0.0",
"deno": ">=1.30.0",
@@ -14154,23 +16863,26 @@
},
"node_modules/luxon": {
"version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.2.1.tgz",
+ "integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=12"
}
},
"node_modules/mafmt": {
"version": "10.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-10.0.0.tgz",
+ "integrity": "sha512-K1bziJOXcnepfztu+2Xy9FLKVLaFMDuspmiyJIYRxnO0WOxFSV7XKSdMxMrVZxcvg1+YjlTIvSGTImUHU2k4Aw==",
"dependencies": {
"multiaddr": "^10.0.0"
}
},
"node_modules/make-dir": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"semver": "^6.0.0"
},
@@ -14183,23 +16895,93 @@
},
"node_modules/make-dir/node_modules/semver": {
"version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
- "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/make-error": {
"version": "1.3.6",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
+ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="
+ },
+ "node_modules/make-fetch-happen": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz",
+ "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==",
+ "optional": true,
+ "dependencies": {
+ "agentkeepalive": "^4.1.3",
+ "cacache": "^15.2.0",
+ "http-cache-semantics": "^4.1.0",
+ "http-proxy-agent": "^4.0.1",
+ "https-proxy-agent": "^5.0.0",
+ "is-lambda": "^1.0.1",
+ "lru-cache": "^6.0.0",
+ "minipass": "^3.1.3",
+ "minipass-collect": "^1.0.2",
+ "minipass-fetch": "^1.3.2",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.4",
+ "negotiator": "^0.6.2",
+ "promise-retry": "^2.0.1",
+ "socks-proxy-agent": "^6.0.0",
+ "ssri": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/make-fetch-happen/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "optional": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/make-fetch-happen/node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "optional": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/make-fetch-happen/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "optional": true
},
"node_modules/match-all": {
"version": "1.2.6",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/match-all/-/match-all-1.2.6.tgz",
+ "integrity": "sha512-0EESkXiTkWzrQQntBu2uzKvLu6vVkUGz40nGPbSZuegcfE5UuSzNjLaIu76zJWuaT/2I3Z/8M06OlUOZLGwLlQ=="
+ },
+ "node_modules/math-intrinsics": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.0.0.tgz",
+ "integrity": "sha512-4MqMiKP90ybymYvsut0CH2g4XWbfLtmlCkXmtmdcDCxNB+mQcu1w/1+L/VD7vi/PSv7X2JYV7SCcR+jiPXnQtA==",
+ "engines": {
+ "node": ">= 0.4"
+ }
},
"node_modules/mathjs": {
"version": "10.6.4",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-10.6.4.tgz",
+ "integrity": "sha512-omQyvRE1jIy+3k2qsqkWASOcd45aZguXZDckr3HtnTYyXk5+2xpVfC3kATgbO2Srjxlqww3TVdhD0oUdZ/hiFA==",
+ "dev": true,
"dependencies": {
"@babel/runtime": "^7.18.6",
"complex.js": "^2.1.1",
@@ -14218,9 +17000,34 @@
"node": ">= 14"
}
},
+ "node_modules/mcl-wasm": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-1.7.0.tgz",
+ "integrity": "sha512-ok9uE7ekFh5+orI0dFT19KeY/y5P6ONp0dks8oo/KniyNK6mJ0zloL3+s6LiEQXW8VxQHwsfZslitL/R7MM9ew==",
+ "dependencies": {
+ "@types/node": "^20.2.5"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/mcl-wasm/node_modules/@types/node": {
+ "version": "20.17.10",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.10.tgz",
+ "integrity": "sha512-/jrvh5h6NXhEauFFexRin69nA0uHJ5gwk4iDivp/DeoEua3uwCUto6PC86IpRITBOs4+6i2I56K5x5b6WYGXHA==",
+ "dependencies": {
+ "undici-types": "~6.19.2"
+ }
+ },
+ "node_modules/mcl-wasm/node_modules/undici-types": {
+ "version": "6.19.8",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
+ "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw=="
+ },
"node_modules/md5.js": {
"version": "1.3.5",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+ "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
"dependencies": {
"hash-base": "^3.0.0",
"inherits": "^2.0.1",
@@ -14229,27 +17036,32 @@
},
"node_modules/media-typer": {
"version": "0.3.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/memorystream": {
"version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
+ "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==",
"engines": {
"node": ">= 0.10.0"
}
},
"node_modules/merge-descriptors": {
"version": "1.0.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
+ "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/merge-options": {
"version": "3.0.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz",
+ "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==",
"dependencies": {
"is-plain-obj": "^2.1.0"
},
@@ -14259,18 +17071,21 @@
},
"node_modules/merge-stream": {
"version": "2.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
},
"node_modules/merge2": {
"version": "1.4.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
"engines": {
"node": ">= 8"
}
},
"node_modules/merkletreejs": {
"version": "0.3.11",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/merkletreejs/-/merkletreejs-0.3.11.tgz",
+ "integrity": "sha512-LJKTl4iVNTndhL+3Uz/tfkjD0klIWsHlUzgtuNnNrsf7bAlXR30m+xYB7lHr5Z/l6e/yAIsr26Dabx6Buo4VGQ==",
"dependencies": {
"bignumber.js": "^9.0.1",
"buffer-reverse": "^1.0.1",
@@ -14284,18 +17099,21 @@
},
"node_modules/methods": {
"version": "1.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/micro-ftch": {
"version": "0.3.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz",
+ "integrity": "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg=="
},
"node_modules/microdata-rdf-streaming-parser": {
"version": "2.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/microdata-rdf-streaming-parser/-/microdata-rdf-streaming-parser-2.0.1.tgz",
+ "integrity": "sha512-oEEYP3OwPGOtoE4eIyJvX1eJXI7VkGR4gKYqpEufaRXc2ele/Tkid/KMU3Los13wGrOq6woSxLEGOYSHzpRvwA==",
"dependencies": {
"@rdfjs/types": "*",
"htmlparser2": "^8.0.0",
@@ -14306,6 +17124,8 @@
},
"node_modules/microdata-rdf-streaming-parser/node_modules/htmlparser2": {
"version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
+ "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
"funding": [
"https://github.com/fb55/htmlparser2?sponsor=1",
{
@@ -14313,7 +17133,6 @@
"url": "https://github.com/sponsors/fb55"
}
],
- "license": "MIT",
"dependencies": {
"domelementtype": "^2.3.0",
"domhandler": "^5.0.3",
@@ -14323,7 +17142,8 @@
},
"node_modules/micromatch": {
"version": "4.0.8",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"dependencies": {
"braces": "^3.0.3",
"picomatch": "^2.3.1"
@@ -14334,8 +17154,9 @@
},
"node_modules/microtime": {
"version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/microtime/-/microtime-3.1.1.tgz",
+ "integrity": "sha512-to1r7o24cDsud9IhN6/8wGmMx5R2kT0w2Xwm5okbYI3d1dk6Xv0m+Z+jg2vS9pt+ocgQHTCtgs/YuyJhySzxNg==",
"hasInstallScript": true,
- "license": "MIT",
"dependencies": {
"node-addon-api": "^5.0.0",
"node-gyp-build": "^4.4.0"
@@ -14346,11 +17167,13 @@
},
"node_modules/microtime/node_modules/node-addon-api": {
"version": "5.1.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz",
+ "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA=="
},
"node_modules/mime": {
"version": "1.6.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
"bin": {
"mime": "cli.js"
},
@@ -14360,14 +17183,16 @@
},
"node_modules/mime-db": {
"version": "1.52.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/mime-types": {
"version": "2.1.35",
- "license": "MIT",
+ "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"
},
@@ -14377,15 +17202,16 @@
},
"node_modules/mimic-fn": {
"version": "2.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
"engines": {
"node": ">=6"
}
},
"node_modules/mimic-response": {
"version": "3.1.0",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
+ "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
"engines": {
"node": ">=10"
},
@@ -14395,6 +17221,8 @@
},
"node_modules/min-document": {
"version": "2.19.0",
+ "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
+ "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==",
"dev": true,
"dependencies": {
"dom-walk": "^0.1.0"
@@ -14402,15 +17230,18 @@
},
"node_modules/minimalistic-assert": {
"version": "1.0.1",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
},
"node_modules/minimalistic-crypto-utils": {
"version": "1.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg=="
},
"node_modules/minimatch": {
"version": "3.1.2",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -14420,31 +17251,203 @@
},
"node_modules/minimist": {
"version": "1.2.8",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/minipass": {
"version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
+ "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
"dev": true,
- "license": "ISC",
"dependencies": {
"safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
}
},
+ "node_modules/minipass-collect": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
+ "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
+ "optional": true,
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/minipass-collect/node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "optional": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minipass-collect/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "optional": true
+ },
+ "node_modules/minipass-fetch": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz",
+ "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==",
+ "optional": true,
+ "dependencies": {
+ "minipass": "^3.1.0",
+ "minipass-sized": "^1.0.3",
+ "minizlib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "optionalDependencies": {
+ "encoding": "^0.1.12"
+ }
+ },
+ "node_modules/minipass-fetch/node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "optional": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minipass-fetch/node_modules/minizlib": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
+ "optional": true,
+ "dependencies": {
+ "minipass": "^3.0.0",
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/minipass-fetch/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "optional": true
+ },
+ "node_modules/minipass-flush": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
+ "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
+ "optional": true,
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/minipass-flush/node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "optional": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minipass-flush/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "optional": true
+ },
+ "node_modules/minipass-pipeline": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
+ "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
+ "optional": true,
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minipass-pipeline/node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "optional": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minipass-pipeline/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "optional": true
+ },
+ "node_modules/minipass-sized": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz",
+ "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==",
+ "optional": true,
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minipass-sized/node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "optional": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minipass-sized/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "optional": true
+ },
"node_modules/minizlib": {
"version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
+ "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"minipass": "^2.9.0"
}
},
"node_modules/mkdirp": {
"version": "0.5.6",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
"dependencies": {
"minimist": "^1.2.6"
},
@@ -14454,13 +17457,15 @@
},
"node_modules/mkdirp-classic": {
"version": "0.5.3",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
},
"node_modules/mkdirp-promise": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz",
+ "integrity": "sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==",
+ "deprecated": "This package is broken and no longer maintained. 'mkdirp' itself supports promises now, please switch to that.",
"dev": true,
- "license": "ISC",
"dependencies": {
"mkdirp": "*"
},
@@ -14470,14 +17475,16 @@
},
"node_modules/mnemonist": {
"version": "0.38.5",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz",
+ "integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==",
"dependencies": {
"obliterator": "^2.0.0"
}
},
"node_modules/mocha": {
"version": "10.8.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz",
+ "integrity": "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==",
"dependencies": {
"ansi-colors": "^4.1.3",
"browser-stdout": "^1.3.1",
@@ -14510,14 +17517,16 @@
},
"node_modules/mocha/node_modules/brace-expansion": {
"version": "2.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/mocha/node_modules/chokidar": {
"version": "3.6.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
"dependencies": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
@@ -14539,7 +17548,8 @@
},
"node_modules/mocha/node_modules/cliui": {
"version": "7.0.4",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
"dependencies": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.0",
@@ -14548,14 +17558,17 @@
},
"node_modules/mocha/node_modules/diff": {
"version": "5.2.0",
- "license": "BSD-3-Clause",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz",
+ "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==",
"engines": {
"node": ">=0.3.1"
}
},
"node_modules/mocha/node_modules/glob": {
"version": "8.1.0",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
+ "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -14572,7 +17585,8 @@
},
"node_modules/mocha/node_modules/glob-parent": {
"version": "5.1.2",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dependencies": {
"is-glob": "^4.0.1"
},
@@ -14582,7 +17596,8 @@
},
"node_modules/mocha/node_modules/minimatch": {
"version": "5.1.6",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
"dependencies": {
"brace-expansion": "^2.0.1"
},
@@ -14592,7 +17607,8 @@
},
"node_modules/mocha/node_modules/readdirp": {
"version": "3.6.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"dependencies": {
"picomatch": "^2.2.1"
},
@@ -14602,7 +17618,8 @@
},
"node_modules/mocha/node_modules/yargs": {
"version": "16.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
"dependencies": {
"cliui": "^7.0.2",
"escalade": "^3.1.1",
@@ -14618,26 +17635,30 @@
},
"node_modules/mock-fs": {
"version": "4.14.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz",
+ "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==",
+ "dev": true
},
"node_modules/mock-socket": {
"version": "9.3.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/mock-socket/-/mock-socket-9.3.1.tgz",
+ "integrity": "sha512-qxBgB7Qa2sEQgHFjj0dSigq7fX4k6Saisd5Nelwp2q8mlbAFh5dHV9JTTlF8viYJLSSWgMCZFUom8PJcMNBoJw==",
"engines": {
"node": ">= 8"
}
},
"node_modules/moment": {
"version": "2.30.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
+ "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
"engines": {
"node": "*"
}
},
"node_modules/moment-timezone": {
"version": "0.5.46",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.46.tgz",
+ "integrity": "sha512-ZXm9b36esbe7OmdABqIWJuBBiLLwAjrN7CE+7sYdCCx82Nabt1wHDj8TVseS59QIlfFPbOoiBPm6ca9BioG4hw==",
"dependencies": {
"moment": "^2.29.4"
},
@@ -14647,11 +17668,14 @@
},
"node_modules/ms": {
"version": "2.1.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"node_modules/multiaddr": {
"version": "10.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-10.0.1.tgz",
+ "integrity": "sha512-G5upNcGzEGuTHkzxezPrrD6CaIHR9uo+7MwqhNVcXTs33IInon4y7nMiGxl2CY5hG7chvYQUQhz5V52/Qe3cbg==",
+ "deprecated": "This module is deprecated, please upgrade to @multiformats/multiaddr",
"dependencies": {
"dns-over-http-resolver": "^1.2.3",
"err-code": "^3.0.1",
@@ -14663,8 +17687,10 @@
},
"node_modules/multibase": {
"version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz",
+ "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==",
+ "deprecated": "This module has been superseded by the multiformats module",
"dev": true,
- "license": "MIT",
"dependencies": {
"base-x": "^3.0.8",
"buffer": "^5.5.0"
@@ -14672,6 +17698,8 @@
},
"node_modules/multibase/node_modules/buffer": {
"version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
"dev": true,
"funding": [
{
@@ -14687,7 +17715,6 @@
"url": "https://feross.org/support"
}
],
- "license": "MIT",
"dependencies": {
"base64-js": "^1.3.1",
"ieee754": "^1.1.13"
@@ -14695,25 +17722,30 @@
},
"node_modules/multicodec": {
"version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz",
+ "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==",
+ "deprecated": "This module has been superseded by the multiformats module",
"dev": true,
- "license": "MIT",
"dependencies": {
"varint": "^5.0.0"
}
},
"node_modules/multicodec/node_modules/varint": {
"version": "5.0.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz",
+ "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==",
+ "dev": true
},
"node_modules/multiformats": {
"version": "9.9.0",
- "license": "(Apache-2.0 AND MIT)"
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz",
+ "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg=="
},
"node_modules/multihashes": {
"version": "0.4.21",
+ "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz",
+ "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"buffer": "^5.5.0",
"multibase": "^0.7.0",
@@ -14722,6 +17754,8 @@
},
"node_modules/multihashes/node_modules/buffer": {
"version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
"dev": true,
"funding": [
{
@@ -14737,7 +17771,6 @@
"url": "https://feross.org/support"
}
],
- "license": "MIT",
"dependencies": {
"base64-js": "^1.3.1",
"ieee754": "^1.1.13"
@@ -14745,8 +17778,10 @@
},
"node_modules/multihashes/node_modules/multibase": {
"version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz",
+ "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==",
+ "deprecated": "This module has been superseded by the multiformats module",
"dev": true,
- "license": "MIT",
"dependencies": {
"base-x": "^3.0.8",
"buffer": "^5.5.0"
@@ -14754,12 +17789,14 @@
},
"node_modules/multihashes/node_modules/varint": {
"version": "5.0.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz",
+ "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==",
+ "dev": true
},
"node_modules/multistream-select": {
"version": "2.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/multistream-select/-/multistream-select-2.0.1.tgz",
+ "integrity": "sha512-ziVNT/vux0uUElP4OKNMVr0afU/X6PciAmT2UJNolhzhSLXIwFAaYfmLajD8NoZ+DsBQ1bp0zZ2nMVPF+FhClA==",
"dependencies": {
"bl": "^5.0.0",
"debug": "^4.1.1",
@@ -14775,7 +17812,8 @@
},
"node_modules/murmur-128": {
"version": "0.2.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/murmur-128/-/murmur-128-0.2.1.tgz",
+ "integrity": "sha512-WseEgiRkI6aMFBbj8Cg9yBj/y+OdipwVC7zUo3W2W1JAJITwouUOtpqsmGSg67EQmwwSyod7hsVsWY5LsrfQVg==",
"dependencies": {
"encode-utf8": "^1.0.2",
"fmix": "^0.1.0",
@@ -14784,7 +17822,8 @@
},
"node_modules/mutable-proxy": {
"version": "1.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/mutable-proxy/-/mutable-proxy-1.0.0.tgz",
+ "integrity": "sha512-4OvNRr1DJpy2QuDUV74m+BWZ//n4gG4bmd21MzDSPqHEidIDWqwyOjcadU1LBMO3vXYGurVKjfBrxrSQIHFu9A==",
"engines": {
"node": ">=6.X.X",
"npm": ">=3.X.X"
@@ -14792,7 +17831,8 @@
},
"node_modules/mysql2": {
"version": "3.11.5",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.11.5.tgz",
+ "integrity": "sha512-0XFu8rUmFN9vC0ME36iBvCUObftiMHItrYFhlCRvFWbLgpNqtC4Br/NmZX1HNCszxT0GGy5QtP+k3Q3eCJPaYA==",
"dependencies": {
"aws-ssl-profiles": "^1.1.1",
"denque": "^2.1.0",
@@ -14810,8 +17850,9 @@
},
"node_modules/mz": {
"version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
+ "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"any-promise": "^1.0.0",
"object-assign": "^4.0.1",
@@ -14820,7 +17861,8 @@
},
"node_modules/n3": {
"version": "1.23.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/n3/-/n3-1.23.1.tgz",
+ "integrity": "sha512-3f0IYJo+6+lXypothmlwPzm3wJNffsxUwnfONeFv2QqWq7RjTvyCMtkRXDUXW6XrZoOzaQX8xTTSYNlGjXcGtw==",
"dependencies": {
"buffer": "^6.0.3",
"queue-microtask": "^1.1.2",
@@ -14832,7 +17874,8 @@
},
"node_modules/named-placeholders": {
"version": "1.1.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz",
+ "integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==",
"dependencies": {
"lru-cache": "^7.14.1"
},
@@ -14842,34 +17885,39 @@
},
"node_modules/named-placeholders/node_modules/lru-cache": {
"version": "7.18.3",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
+ "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
"engines": {
"node": ">=12"
}
},
"node_modules/nan": {
"version": "2.22.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.0.tgz",
+ "integrity": "sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw=="
},
"node_modules/nano-json-stream-parser": {
"version": "0.1.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz",
+ "integrity": "sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==",
+ "dev": true
},
"node_modules/nanoclone": {
"version": "0.2.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz",
+ "integrity": "sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==",
+ "dev": true
},
"node_modules/nanoid": {
"version": "3.3.8",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
+ "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
- "license": "MIT",
"bin": {
"nanoid": "bin/nanoid.cjs"
},
@@ -14879,52 +17927,61 @@
},
"node_modules/napi-build-utils": {
"version": "1.0.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
+ "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg=="
},
"node_modules/native-abort-controller": {
"version": "1.0.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.4.tgz",
+ "integrity": "sha512-zp8yev7nxczDJMoP6pDxyD20IU0T22eX8VwN2ztDccKvSZhRaV33yP1BGwKSZfXuqWUzsXopVFjBdau9OOAwMQ==",
"peerDependencies": {
"abort-controller": "*"
}
},
"node_modules/native-fetch": {
"version": "3.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz",
+ "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==",
"peerDependencies": {
"node-fetch": "*"
}
},
"node_modules/natural-compare": {
"version": "1.4.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
},
"node_modules/negotiate": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/negotiate/-/negotiate-1.0.1.tgz",
+ "integrity": "sha512-KBCIM4dAIT9j/pSXLHHQbZG74NmKNXTtxU2zHN0HG6uzzuFE01m1UdGoUmVHmACiBuCAOL7KwfqSW1oUQBj/vg=="
},
"node_modules/negotiator": {
"version": "0.6.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/netmask": {
"version": "2.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz",
+ "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==",
"engines": {
"node": ">= 0.4.0"
}
},
"node_modules/next-tick": {
"version": "1.1.0",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
+ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="
},
"node_modules/nise": {
"version": "5.1.9",
+ "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.9.tgz",
+ "integrity": "sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"@sinonjs/commons": "^3.0.0",
"@sinonjs/fake-timers": "^11.2.2",
@@ -14935,36 +17992,41 @@
},
"node_modules/nise/node_modules/@sinonjs/commons": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
+ "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"type-detect": "4.0.8"
}
},
"node_modules/nise/node_modules/@sinonjs/fake-timers": {
"version": "11.3.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.3.1.tgz",
+ "integrity": "sha512-EVJO7nW5M/F5Tur0Rf2z/QoMo+1Ia963RiMtapiQrEWvY0iBUvADo8Beegwjpnle5BHkyHuoxSTW3jF43H1XRA==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"@sinonjs/commons": "^3.0.1"
}
},
"node_modules/nise/node_modules/path-to-regexp": {
"version": "6.3.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz",
+ "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==",
+ "dev": true
},
"node_modules/nise/node_modules/type-detect": {
"version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/no-case": {
"version": "3.0.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+ "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
"dependencies": {
"lower-case": "^2.0.2",
"tslib": "^2.0.3"
@@ -14972,15 +18034,20 @@
},
"node_modules/noble-ed25519": {
"version": "1.2.6",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/noble-ed25519/-/noble-ed25519-1.2.6.tgz",
+ "integrity": "sha512-zfnWqg9FVMp8CnzUpAjbt1nDXpDjCvxYiCXdnW1mY8zQHw/6twUlkFm14VPdojVzc0kcd+i9zT79+26GcNbsuQ==",
+ "deprecated": "Switch to namespaced @noble/ed25519 for security and feature updates"
},
"node_modules/noble-secp256k1": {
"version": "1.2.14",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/noble-secp256k1/-/noble-secp256k1-1.2.14.tgz",
+ "integrity": "sha512-GSCXyoZBUaaPwVWdYncMEmzlSUjF9J/YeEHpklYJCyg8wPuJP3NzDx0BkiwArzINkdX2HJHvUJhL6vVWPOQQcg==",
+ "deprecated": "Switch to namespaced @noble/secp256k1 for security and feature updates"
},
"node_modules/nock": {
"version": "13.5.6",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.6.tgz",
+ "integrity": "sha512-o2zOYiCpzRqSzPj0Zt/dQ/DqZeYoaQ7TUonc/xUPjCGl9WeHpNbxgVvOquXYAaJzI0M9BXV3HTzG0p8IUAbBTQ==",
"dependencies": {
"debug": "^4.1.0",
"json-stringify-safe": "^5.0.1",
@@ -14992,8 +18059,8 @@
},
"node_modules/node-abi": {
"version": "3.71.0",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.71.0.tgz",
+ "integrity": "sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==",
"dependencies": {
"semver": "^7.3.5"
},
@@ -15003,10 +18070,13 @@
},
"node_modules/node-addon-api": {
"version": "2.0.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz",
+ "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA=="
},
"node_modules/node-domexception": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
+ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
"funding": [
{
"type": "github",
@@ -15017,14 +18087,14 @@
"url": "https://paypal.me/jimmywarting"
}
],
- "license": "MIT",
"engines": {
"node": ">=10.5.0"
}
},
"node_modules/node-fetch": {
"version": "3.3.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz",
+ "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==",
"dependencies": {
"data-uri-to-buffer": "^4.0.0",
"fetch-blob": "^3.1.4",
@@ -15040,24 +18110,153 @@
},
"node_modules/node-forge": {
"version": "0.10.0",
- "license": "(BSD-3-Clause OR GPL-2.0)",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz",
+ "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==",
"engines": {
"node": ">= 6.0.0"
}
},
+ "node_modules/node-gyp": {
+ "version": "8.4.1",
+ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz",
+ "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==",
+ "optional": true,
+ "dependencies": {
+ "env-paths": "^2.2.0",
+ "glob": "^7.1.4",
+ "graceful-fs": "^4.2.6",
+ "make-fetch-happen": "^9.1.0",
+ "nopt": "^5.0.0",
+ "npmlog": "^6.0.0",
+ "rimraf": "^3.0.2",
+ "semver": "^7.3.5",
+ "tar": "^6.1.2",
+ "which": "^2.0.2"
+ },
+ "bin": {
+ "node-gyp": "bin/node-gyp.js"
+ },
+ "engines": {
+ "node": ">= 10.12.0"
+ }
+ },
"node_modules/node-gyp-build": {
"version": "4.8.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz",
+ "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==",
"bin": {
"node-gyp-build": "bin.js",
"node-gyp-build-optional": "optional.js",
"node-gyp-build-test": "build-test.js"
}
},
+ "node_modules/node-gyp/node_modules/chownr": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+ "optional": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/node-gyp/node_modules/fs-minipass": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+ "optional": true,
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/node-gyp/node_modules/fs-minipass/node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "optional": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/node-gyp/node_modules/minipass": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
+ "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
+ "optional": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/node-gyp/node_modules/minizlib": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
+ "optional": true,
+ "dependencies": {
+ "minipass": "^3.0.0",
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/node-gyp/node_modules/minizlib/node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "optional": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/node-gyp/node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "optional": true,
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/node-gyp/node_modules/tar": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz",
+ "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==",
+ "optional": true,
+ "dependencies": {
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "minipass": "^5.0.0",
+ "minizlib": "^2.1.1",
+ "mkdirp": "^1.0.3",
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/node-gyp/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "optional": true
+ },
"node_modules/node-preload": {
"version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz",
+ "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"process-on-spawn": "^1.0.0"
},
@@ -15066,21 +18265,39 @@
}
},
"node_modules/node-releases": {
- "version": "2.0.18",
- "dev": true,
- "license": "MIT"
+ "version": "2.0.19",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
+ "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
+ "dev": true
+ },
+ "node_modules/nopt": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
+ "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
+ "optional": true,
+ "dependencies": {
+ "abbrev": "1"
+ },
+ "bin": {
+ "nopt": "bin/nopt.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
},
"node_modules/normalize-path": {
"version": "3.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/normalize-url": {
"version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
+ "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -15090,7 +18307,8 @@
},
"node_modules/npm-run-path": {
"version": "4.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
"dependencies": {
"path-key": "^3.0.0"
},
@@ -15098,9 +18316,26 @@
"node": ">=8"
}
},
+ "node_modules/npmlog": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz",
+ "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==",
+ "deprecated": "This package is no longer supported.",
+ "optional": true,
+ "dependencies": {
+ "are-we-there-yet": "^3.0.0",
+ "console-control-strings": "^1.1.0",
+ "gauge": "^4.0.3",
+ "set-blocking": "^2.0.0"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
"node_modules/number-to-bn": {
"version": "1.7.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz",
+ "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==",
"dependencies": {
"bn.js": "4.11.6",
"strip-hex-prefix": "1.0.0"
@@ -15112,17 +18347,20 @@
},
"node_modules/number-to-bn/node_modules/bn.js": {
"version": "4.11.6",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA=="
},
"node_modules/nwsapi": {
"version": "2.2.16",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.16.tgz",
+ "integrity": "sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==",
+ "dev": true
},
"node_modules/nyc": {
"version": "15.1.0",
+ "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz",
+ "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==",
"dev": true,
- "license": "ISC",
"dependencies": {
"@istanbuljs/load-nyc-config": "^1.0.0",
"@istanbuljs/schema": "^0.1.2",
@@ -15161,16 +18399,18 @@
},
"node_modules/nyc/node_modules/camelcase": {
"version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/nyc/node_modules/cliui": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
"dev": true,
- "license": "ISC",
"dependencies": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.0",
@@ -15179,8 +18419,9 @@
},
"node_modules/nyc/node_modules/find-up": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
@@ -15191,8 +18432,9 @@
},
"node_modules/nyc/node_modules/locate-path": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"p-locate": "^4.1.0"
},
@@ -15202,8 +18444,9 @@
},
"node_modules/nyc/node_modules/p-limit": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"p-try": "^2.0.0"
},
@@ -15216,8 +18459,9 @@
},
"node_modules/nyc/node_modules/p-locate": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"dev": true,
- "license": "MIT",
"dependencies": {
"p-limit": "^2.2.0"
},
@@ -15227,8 +18471,9 @@
},
"node_modules/nyc/node_modules/p-map": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
+ "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"aggregate-error": "^3.0.0"
},
@@ -15238,16 +18483,18 @@
},
"node_modules/nyc/node_modules/resolve-from": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/nyc/node_modules/wrap-ansi": {
"version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
@@ -15259,13 +18506,15 @@
},
"node_modules/nyc/node_modules/y18n": {
"version": "4.0.3",
- "dev": true,
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
+ "dev": true
},
"node_modules/nyc/node_modules/yargs": {
"version": "15.4.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
+ "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
"dev": true,
- "license": "MIT",
"dependencies": {
"cliui": "^6.0.0",
"decamelize": "^1.2.0",
@@ -15285,8 +18534,9 @@
},
"node_modules/nyc/node_modules/yargs-parser": {
"version": "18.1.3",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
"dev": true,
- "license": "ISC",
"dependencies": {
"camelcase": "^5.0.0",
"decamelize": "^1.2.0"
@@ -15297,22 +18547,25 @@
},
"node_modules/oauth-sign": {
"version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
"dev": true,
- "license": "Apache-2.0",
"engines": {
"node": "*"
}
},
"node_modules/object-assign": {
"version": "4.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/object-inspect": {
"version": "1.13.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz",
+ "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==",
"engines": {
"node": ">= 0.4"
},
@@ -15322,16 +18575,18 @@
},
"node_modules/object-keys": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/object.assign": {
"version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
+ "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"call-bind": "^1.0.5",
"define-properties": "^1.2.1",
@@ -15347,8 +18602,9 @@
},
"node_modules/object.entries": {
"version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz",
+ "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"call-bind": "^1.0.7",
"define-properties": "^1.2.1",
@@ -15360,8 +18616,9 @@
},
"node_modules/object.fromentries": {
"version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
+ "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.7",
@@ -15378,8 +18635,9 @@
},
"node_modules/object.groupby": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz",
+ "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.7",
@@ -15392,8 +18650,9 @@
},
"node_modules/object.values": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz",
+ "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.7",
@@ -15409,26 +18668,30 @@
},
"node_modules/obliterator": {
"version": "2.0.4",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz",
+ "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ=="
},
"node_modules/oboe": {
"version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz",
+ "integrity": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==",
"dev": true,
- "license": "BSD",
"dependencies": {
"http-https": "^1.0.0"
}
},
"node_modules/on-exit-leak-free": {
"version": "2.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz",
+ "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==",
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/on-finished": {
"version": "2.4.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
"dependencies": {
"ee-first": "1.1.1"
},
@@ -15438,21 +18701,24 @@
},
"node_modules/once": {
"version": "1.4.0",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dependencies": {
"wrappy": "1"
}
},
"node_modules/one-time": {
"version": "1.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz",
+ "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==",
"dependencies": {
"fn.name": "1.x.x"
}
},
"node_modules/onetime": {
"version": "5.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
"dependencies": {
"mimic-fn": "^2.1.0"
},
@@ -15465,7 +18731,8 @@
},
"node_modules/optionator": {
"version": "0.9.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
+ "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
"dependencies": {
"deep-is": "^0.1.3",
"fast-levenshtein": "^2.0.6",
@@ -15480,14 +18747,16 @@
},
"node_modules/os-tmpdir": {
"version": "1.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/p-any": {
"version": "3.0.0",
- "license": "MIT",
+ "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"
@@ -15501,21 +18770,24 @@
},
"node_modules/p-cancelable": {
"version": "2.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz",
+ "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==",
"engines": {
"node": ">=8"
}
},
"node_modules/p-defer": {
"version": "3.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz",
+ "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==",
"engines": {
"node": ">=8"
}
},
"node_modules/p-fifo": {
"version": "1.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/p-fifo/-/p-fifo-1.0.0.tgz",
+ "integrity": "sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==",
"dependencies": {
"fast-fifo": "^1.0.0",
"p-defer": "^3.0.0"
@@ -15523,14 +18795,16 @@
},
"node_modules/p-finally": {
"version": "1.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==",
"engines": {
"node": ">=4"
}
},
"node_modules/p-limit": {
"version": "3.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
"dependencies": {
"yocto-queue": "^0.1.0"
},
@@ -15543,7 +18817,8 @@
},
"node_modules/p-locate": {
"version": "5.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
"dependencies": {
"p-limit": "^3.0.2"
},
@@ -15556,7 +18831,8 @@
},
"node_modules/p-map": {
"version": "4.0.0",
- "license": "MIT",
+ "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"
},
@@ -15569,7 +18845,8 @@
},
"node_modules/p-queue": {
"version": "6.6.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz",
+ "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==",
"dependencies": {
"eventemitter3": "^4.0.4",
"p-timeout": "^3.2.0"
@@ -15583,11 +18860,13 @@
},
"node_modules/p-queue/node_modules/eventemitter3": {
"version": "4.0.7",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
},
"node_modules/p-queue/node_modules/p-timeout": {
"version": "3.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz",
+ "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==",
"dependencies": {
"p-finally": "^1.0.0"
},
@@ -15597,14 +18876,16 @@
},
"node_modules/p-reflect": {
"version": "2.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/p-reflect/-/p-reflect-2.1.0.tgz",
+ "integrity": "sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg==",
"engines": {
"node": ">=8"
}
},
"node_modules/p-retry": {
"version": "4.6.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz",
+ "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==",
"dependencies": {
"@types/retry": "0.12.0",
"retry": "^0.13.1"
@@ -15615,7 +18896,8 @@
},
"node_modules/p-settle": {
"version": "4.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/p-settle/-/p-settle-4.1.1.tgz",
+ "integrity": "sha512-6THGh13mt3gypcNMm0ADqVNCcYa3BK6DWsuJWFCuEKP1rpY+OKGp7gaZwVmLspmic01+fsg/fN57MfvDzZ/PuQ==",
"dependencies": {
"p-limit": "^2.2.2",
"p-reflect": "^2.1.0"
@@ -15629,7 +18911,8 @@
},
"node_modules/p-settle/node_modules/p-limit": {
"version": "2.3.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dependencies": {
"p-try": "^2.0.0"
},
@@ -15642,7 +18925,8 @@
},
"node_modules/p-some": {
"version": "5.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/p-some/-/p-some-5.0.0.tgz",
+ "integrity": "sha512-Js5XZxo6vHjB9NOYAzWDYAIyyiPvva0DWESAIWIK7uhSpGsyg5FwUPxipU/SOQx5x9EqhOh545d1jo6cVkitig==",
"dependencies": {
"aggregate-error": "^3.0.0",
"p-cancelable": "^2.0.0"
@@ -15656,22 +18940,25 @@
},
"node_modules/p-timeout": {
"version": "4.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz",
+ "integrity": "sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw==",
"engines": {
"node": ">=10"
}
},
"node_modules/p-try": {
"version": "2.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"engines": {
"node": ">=6"
}
},
"node_modules/package-hash": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz",
+ "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==",
"dev": true,
- "license": "ISC",
"dependencies": {
"graceful-fs": "^4.1.15",
"hasha": "^5.0.0",
@@ -15684,8 +18971,9 @@
},
"node_modules/pad-right": {
"version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/pad-right/-/pad-right-0.2.2.tgz",
+ "integrity": "sha512-4cy8M95ioIGolCoMmm2cMntGR1lPLEbOMzOKu8bzjuJP6JpzEMQcDHmh7hHLYGgob+nKe1YHFMaG4V59HQa89g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"repeat-string": "^1.5.2"
},
@@ -15695,12 +18983,14 @@
},
"node_modules/pako": {
"version": "2.1.0",
- "license": "(MIT AND Zlib)",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz",
+ "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==",
"optional": true
},
"node_modules/parent-module": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
"dependencies": {
"callsites": "^3.0.0"
},
@@ -15710,24 +19000,28 @@
},
"node_modules/parse-headers": {
"version": "2.0.5",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz",
+ "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==",
+ "dev": true
},
"node_modules/parse5": {
"version": "6.0.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
+ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
+ "dev": true
},
"node_modules/parseurl": {
"version": "1.3.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/pascal-case": {
"version": "3.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+ "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
"dependencies": {
"no-case": "^3.0.4",
"tslib": "^2.0.3"
@@ -15735,44 +19029,51 @@
},
"node_modules/path-exists": {
"version": "4.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
"engines": {
"node": ">=8"
}
},
"node_modules/path-is-absolute": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/path-key": {
"version": "3.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
"engines": {
"node": ">=8"
}
},
"node_modules/path-parse": {
"version": "1.0.7",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
},
"node_modules/path-to-regexp": {
"version": "0.1.12",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
+ "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ=="
},
"node_modules/pathval": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
+ "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": "*"
}
},
"node_modules/pbkdf2": {
"version": "3.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
+ "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
"dependencies": {
"create-hash": "^1.1.2",
"create-hmac": "^1.1.4",
@@ -15786,7 +19087,8 @@
},
"node_modules/peer-id": {
"version": "0.15.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.15.4.tgz",
+ "integrity": "sha512-MDoBIMZYwQIAHaZQUwsIcvoFgdbIl5GtZMwSkXpIYvc5v0TSDv+u8WsTKrKt2Vv28tHFFDJQdVzu3T4qTPzK+w==",
"dependencies": {
"class-is": "^1.1.0",
"libp2p-crypto": "^0.20.0",
@@ -15804,7 +19106,8 @@
},
"node_modules/peer-id/node_modules/libp2p-crypto": {
"version": "0.20.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.20.0.tgz",
+ "integrity": "sha512-WgIW9rYcWaO/5j2T6NW3R6Q46yvp2ZfFErqRMbi4/pOTL3T7+OROYpL/1iWVksWkXyurU/t2qFsIijWMxR5C4Q==",
"dependencies": {
"err-code": "^3.0.1",
"iso-random-stream": "^2.0.0",
@@ -15824,7 +19127,8 @@
},
"node_modules/pem-jwk": {
"version": "2.0.0",
- "license": "MPL-2.0",
+ "resolved": "https://registry.npmjs.org/pem-jwk/-/pem-jwk-2.0.0.tgz",
+ "integrity": "sha512-rFxu7rVoHgQ5H9YsP50dDWf0rHjreVA2z0yPiWr5WdH/UHb29hKtF7h6l8vNd1cbYR1t0QL+JKhW55a2ZV4KtA==",
"dependencies": {
"asn1.js": "^5.0.1"
},
@@ -15837,20 +19141,24 @@
},
"node_modules/performance-now": {
"version": "2.1.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==",
+ "dev": true
},
"node_modules/pg-connection-string": {
"version": "2.7.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.7.0.tgz",
+ "integrity": "sha512-PI2W9mv53rXJQEOb8xNR8lH7Hr+EKa6oJa38zsK0S/ky2er16ios1wLKhZyxzD7jUReiWokc9WK5nxSnC7W1TA=="
},
"node_modules/picocolors": {
"version": "1.1.1",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="
},
"node_modules/picomatch": {
"version": "2.3.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"engines": {
"node": ">=8.6"
},
@@ -15860,8 +19168,9 @@
},
"node_modules/pidtree": {
"version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz",
+ "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==",
"dev": true,
- "license": "MIT",
"bin": {
"pidtree": "bin/pidtree.js"
},
@@ -15871,7 +19180,8 @@
},
"node_modules/pino": {
"version": "8.21.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/pino/-/pino-8.21.0.tgz",
+ "integrity": "sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==",
"dependencies": {
"atomic-sleep": "^1.0.0",
"fast-redact": "^3.1.1",
@@ -15891,7 +19201,8 @@
},
"node_modules/pino-abstract-transport": {
"version": "1.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz",
+ "integrity": "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==",
"dependencies": {
"readable-stream": "^4.0.0",
"split2": "^4.0.0"
@@ -15899,7 +19210,8 @@
},
"node_modules/pino-pretty": {
"version": "9.4.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-9.4.1.tgz",
+ "integrity": "sha512-loWr5SNawVycvY//hamIzyz3Fh5OSpvkcO13MwdDW+eKIGylobPLqnVGTDwDXkdmpJd1BhEG+qhDw09h6SqJiQ==",
"dependencies": {
"colorette": "^2.0.7",
"dateformat": "^4.6.3",
@@ -15922,12 +19234,14 @@
},
"node_modules/pino-std-serializers": {
"version": "6.2.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz",
+ "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA=="
},
"node_modules/pkg-dir": {
"version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"find-up": "^4.0.0"
},
@@ -15937,8 +19251,9 @@
},
"node_modules/pkg-dir/node_modules/find-up": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
@@ -15949,8 +19264,9 @@
},
"node_modules/pkg-dir/node_modules/locate-path": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"p-locate": "^4.1.0"
},
@@ -15960,8 +19276,9 @@
},
"node_modules/pkg-dir/node_modules/p-limit": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"p-try": "^2.0.0"
},
@@ -15974,8 +19291,9 @@
},
"node_modules/pkg-dir/node_modules/p-locate": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"dev": true,
- "license": "MIT",
"dependencies": {
"p-limit": "^2.2.0"
},
@@ -15985,23 +19303,25 @@
},
"node_modules/pony-cause": {
"version": "2.1.11",
- "license": "0BSD",
+ "resolved": "https://registry.npmjs.org/pony-cause/-/pony-cause-2.1.11.tgz",
+ "integrity": "sha512-M7LhCsdNbNgiLYiP4WjsfLUuFmCfnjdF6jKe2R9NKl4WFN+HZPGHJZ9lnLP7f9ZnKe3U9nuWD0szirmj+migUg==",
"engines": {
"node": ">=12.0.0"
}
},
"node_modules/possible-typed-array-names": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
+ "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/prebuild-install": {
"version": "7.1.2",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz",
+ "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==",
"dependencies": {
"detect-libc": "^2.0.0",
"expand-template": "^2.0.3",
@@ -16025,8 +19345,8 @@
},
"node_modules/prebuild-install/node_modules/bl": {
"version": "4.1.0",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
"dependencies": {
"buffer": "^5.5.0",
"inherits": "^2.0.4",
@@ -16035,7 +19355,8 @@
},
"node_modules/prebuild-install/node_modules/buffer": {
"version": "5.7.1",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
"funding": [
{
"type": "github",
@@ -16050,7 +19371,6 @@
"url": "https://feross.org/support"
}
],
- "license": "MIT",
"dependencies": {
"base64-js": "^1.3.1",
"ieee754": "^1.1.13"
@@ -16058,8 +19378,8 @@
},
"node_modules/prebuild-install/node_modules/readable-stream": {
"version": "3.6.2",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"dependencies": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -16071,8 +19391,8 @@
},
"node_modules/prebuild-install/node_modules/tar-fs": {
"version": "2.1.1",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
+ "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
"dependencies": {
"chownr": "^1.1.1",
"mkdirp-classic": "^0.5.2",
@@ -16082,8 +19402,8 @@
},
"node_modules/prebuild-install/node_modules/tar-stream": {
"version": "2.2.0",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
"dependencies": {
"bl": "^4.0.3",
"end-of-stream": "^1.4.1",
@@ -16097,15 +19417,17 @@
},
"node_modules/prelude-ls": {
"version": "1.2.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
"engines": {
"node": ">= 0.8.0"
}
},
"node_modules/prettier": {
"version": "2.8.8",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
+ "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
"dev": true,
- "license": "MIT",
"bin": {
"prettier": "bin-prettier.js"
},
@@ -16118,7 +19440,8 @@
},
"node_modules/private-ip": {
"version": "2.3.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/private-ip/-/private-ip-2.3.4.tgz",
+ "integrity": "sha512-ts/YFVwfBeLq61f9+KsOhXW6RH0wvY0gU50R6QZYzgFhggyyLK6WDFeYdjfi/HMnBm2hecLvsR3PB3JcRxDk+A==",
"dependencies": {
"ip-regex": "^4.3.0",
"ipaddr.js": "^2.0.1",
@@ -16128,19 +19451,22 @@
},
"node_modules/process": {
"version": "0.11.10",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
"engines": {
"node": ">= 0.6.0"
}
},
"node_modules/process-nextick-args": {
"version": "2.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
},
"node_modules/process-on-spawn": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.1.0.tgz",
+ "integrity": "sha512-JOnOPQ/8TZgjs1JIH/m9ni7FfimjNa/PRx7y/Wb5qdItsnhO0jE4AT7fC0HjC28DUQWDr50dwSYZLdRMlqDq3Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"fromentries": "^1.2.0"
},
@@ -16150,24 +19476,62 @@
},
"node_modules/process-warning": {
"version": "3.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz",
+ "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ=="
},
"node_modules/progress": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.4.0"
}
},
+ "node_modules/promise-inflight": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+ "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
+ "optional": true
+ },
"node_modules/promise-polyfill": {
"version": "1.1.6",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-1.1.6.tgz",
+ "integrity": "sha512-7rrONfyLkDEc7OJ5QBkqa4KI4EBhCd340xRuIUPGCfu13znS+vx+VDdrT9ODAJHlXm7w4lbxN3DRjyv58EuzDg=="
+ },
+ "node_modules/promise-retry": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz",
+ "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==",
+ "optional": true,
+ "dependencies": {
+ "err-code": "^2.0.2",
+ "retry": "^0.12.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/promise-retry/node_modules/err-code": {
+ "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==",
+ "optional": true
+ },
+ "node_modules/promise-retry/node_modules/retry": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
+ "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
+ "optional": true,
+ "engines": {
+ "node": ">= 4"
+ }
},
"node_modules/prop-types": {
"version": "15.8.1",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"loose-envify": "^1.4.0",
@@ -16177,20 +19541,23 @@
},
"node_modules/propagate": {
"version": "2.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz",
+ "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==",
"engines": {
"node": ">= 8"
}
},
"node_modules/property-expr": {
"version": "2.0.6",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.6.tgz",
+ "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==",
+ "dev": true
},
"node_modules/protobufjs": {
"version": "6.11.4",
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.4.tgz",
+ "integrity": "sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==",
"hasInstallScript": true,
- "license": "BSD-3-Clause",
"dependencies": {
"@protobufjs/aspromise": "^1.1.2",
"@protobufjs/base64": "^1.1.2",
@@ -16213,11 +19580,13 @@
},
"node_modules/protobufjs/node_modules/long": {
"version": "4.0.0",
- "license": "Apache-2.0"
+ "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
+ "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
},
"node_modules/proxy-addr": {
"version": "2.0.7",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
"dependencies": {
"forwarded": "0.2.0",
"ipaddr.js": "1.9.1"
@@ -16228,19 +19597,22 @@
},
"node_modules/proxy-addr/node_modules/ipaddr.js": {
"version": "1.9.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
"engines": {
"node": ">= 0.10"
}
},
"node_modules/proxy-from-env": {
"version": "1.1.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
},
"node_modules/psl": {
"version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz",
+ "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"punycode": "^2.3.1"
},
@@ -16250,7 +19622,8 @@
},
"node_modules/pump": {
"version": "3.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
+ "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==",
"dependencies": {
"end-of-stream": "^1.1.0",
"once": "^1.3.1"
@@ -16258,14 +19631,16 @@
},
"node_modules/punycode": {
"version": "2.3.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
"engines": {
"node": ">=6"
}
},
"node_modules/qs": {
"version": "6.13.0",
- "license": "BSD-3-Clause",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
+ "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
"dependencies": {
"side-channel": "^1.0.6"
},
@@ -16278,8 +19653,9 @@
},
"node_modules/query-string": {
"version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz",
+ "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"decode-uri-component": "^0.2.0",
"object-assign": "^4.1.0",
@@ -16291,11 +19667,14 @@
},
"node_modules/querystringify": {
"version": "2.2.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
+ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
+ "dev": true
},
"node_modules/queue-microtask": {
"version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
"funding": [
{
"type": "github",
@@ -16309,22 +19688,24 @@
"type": "consulting",
"url": "https://feross.org/support"
}
- ],
- "license": "MIT"
+ ]
},
"node_modules/queue-tick": {
"version": "1.0.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
+ "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==",
+ "dev": true
},
"node_modules/quick-format-unescaped": {
"version": "4.0.4",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz",
+ "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg=="
},
"node_modules/quick-lru": {
"version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
+ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -16334,21 +19715,24 @@
},
"node_modules/randombytes": {
"version": "2.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
"dependencies": {
"safe-buffer": "^5.1.0"
}
},
"node_modules/range-parser": {
"version": "1.2.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/raw-body": {
"version": "2.5.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
+ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
"dependencies": {
"bytes": "3.1.2",
"http-errors": "2.0.0",
@@ -16361,7 +19745,8 @@
},
"node_modules/raw-body/node_modules/iconv-lite": {
"version": "0.4.24",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3"
},
@@ -16371,7 +19756,8 @@
},
"node_modules/rc": {
"version": "1.2.8",
- "license": "(BSD-2-Clause OR MIT OR Apache-2.0)",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
"dependencies": {
"deep-extend": "^0.6.0",
"ini": "~1.3.0",
@@ -16384,25 +19770,40 @@
},
"node_modules/rc/node_modules/ini": {
"version": "1.3.8",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
},
"node_modules/rc/node_modules/strip-json-comments": {
"version": "2.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
"engines": {
"node": ">=0.10.0"
}
},
+ "node_modules/rdf-canonize": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-4.0.1.tgz",
+ "integrity": "sha512-B5ynHt4sasbUafzrvYI2GFARgeFcD8Sx9yXPbg7gEyT2EH76rlCv84kyO6tnxzVbxUN/uJDbK1S/MXh+DsnuTA==",
+ "dependencies": {
+ "setimmediate": "^1.0.5"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
"node_modules/rdf-data-factory": {
"version": "1.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/rdf-data-factory/-/rdf-data-factory-1.1.2.tgz",
+ "integrity": "sha512-TfQD63Lokabd09ES1jAtKK8AA6rkr9rwyUBGo6olOt1CE0Um36CUQIqytyf0am2ouBPR0l7SaHxCiMcPGHkt1A==",
"dependencies": {
"@rdfjs/types": "*"
}
},
"node_modules/rdf-isomorphic": {
"version": "1.3.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/rdf-isomorphic/-/rdf-isomorphic-1.3.1.tgz",
+ "integrity": "sha512-6uIhsXTVp2AtO6f41PdnRV5xZsa0zVZQDTBdn0br+DZuFf5M/YD+T6m8hKDUnALI6nFL/IujTMLgEs20MlNidQ==",
"dependencies": {
"@rdfjs/types": "*",
"hash.js": "^1.1.7",
@@ -16412,7 +19813,8 @@
},
"node_modules/rdf-literal": {
"version": "1.3.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/rdf-literal/-/rdf-literal-1.3.2.tgz",
+ "integrity": "sha512-79Stlu3sXy0kq9/decHFLf3xNPuY6sfhFPhd/diWErgaFr0Ekyg38Vh9bnVcqDYu48CFRi0t+hrFii49n92Hbw==",
"dependencies": {
"@rdfjs/types": "*",
"rdf-data-factory": "^1.1.0"
@@ -16420,7 +19822,8 @@
},
"node_modules/rdf-object": {
"version": "1.14.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/rdf-object/-/rdf-object-1.14.0.tgz",
+ "integrity": "sha512-/KSUWr7onDtL7d81kOpcUzJ2vHYOYJc2KU9WzBZRYydBhK0Sksh5Hg4VCQNaxUEvYEgdrrTuq9SLpOOCmag0rQ==",
"dependencies": {
"@rdfjs/types": "*",
"jsonld-context-parser": "^2.0.2",
@@ -16431,7 +19834,8 @@
},
"node_modules/rdf-parse": {
"version": "2.3.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/rdf-parse/-/rdf-parse-2.3.3.tgz",
+ "integrity": "sha512-N5XEHm+ajFzwo/vVNzB4tDtvqMwBosbVJmZl5DlzplQM9ejlJBlN/43i0ImAb/NMtJJgQPC3jYnkCKGA7wdo/w==",
"dependencies": {
"@comunica/actor-http-fetch": "^2.0.1",
"@comunica/actor-http-proxy": "^2.0.1",
@@ -16461,7 +19865,8 @@
},
"node_modules/rdf-quad": {
"version": "1.5.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/rdf-quad/-/rdf-quad-1.5.0.tgz",
+ "integrity": "sha512-LnCYx8XbRVW1wr6UiZPSy2Tv7bXAtEwuyck/68dANhFu8VMnGS+QfUNP3b9YI6p4Bfd/fyDx5E3x81IxGV6BzA==",
"dependencies": {
"rdf-data-factory": "^1.0.1",
"rdf-literal": "^1.2.0",
@@ -16470,7 +19875,8 @@
},
"node_modules/rdf-store-stream": {
"version": "2.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/rdf-store-stream/-/rdf-store-stream-2.0.1.tgz",
+ "integrity": "sha512-znGaibHLvbRE0BrDcXHRleRcLKlHYP6ADr1RFJ3yA28QBmhOjxxgbBFTvCMzgsxvBIqdaFS8Vd2FG4NefJL4Mg==",
"dependencies": {
"@rdfjs/types": "*",
"rdf-stores": "^1.0.0"
@@ -16478,7 +19884,8 @@
},
"node_modules/rdf-stores": {
"version": "1.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/rdf-stores/-/rdf-stores-1.0.0.tgz",
+ "integrity": "sha512-wqp7M5409rbhpWQE0C1vyVysbz++aD2vEkZ6yueSxhDtyLvznS41R3cKiuUpm3ikc/yTpaCZwPo4iyKEaAwBIg==",
"dependencies": {
"@rdfjs/types": "*",
"asynciterator": "^3.8.0",
@@ -16489,7 +19896,8 @@
},
"node_modules/rdf-streaming-store": {
"version": "1.1.5",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/rdf-streaming-store/-/rdf-streaming-store-1.1.5.tgz",
+ "integrity": "sha512-Rfd3qo1otF/Jfau/lAFX8J1ZPorN0eaHoIkAlenIIcdZjq9AoIP85rEa4Sn+yMZOqNU1Kc4cCPUv5CFHhpAT2Q==",
"dependencies": {
"@rdfjs/types": "*",
"@types/n3": "^1.10.4",
@@ -16502,7 +19910,8 @@
},
"node_modules/rdf-streaming-store/node_modules/@types/readable-stream": {
"version": "4.0.18",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-4.0.18.tgz",
+ "integrity": "sha512-21jK/1j+Wg+7jVw1xnSwy/2Q1VgVjWuFssbYGTREPUBeZ+rqVFl2udq0IkxzPC0ZhOzVceUbyIACFZKLqKEBlA==",
"dependencies": {
"@types/node": "*",
"safe-buffer": "~5.1.1"
@@ -16510,11 +19919,13 @@
},
"node_modules/rdf-streaming-store/node_modules/safe-buffer": {
"version": "5.1.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"node_modules/rdf-string": {
"version": "1.6.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/rdf-string/-/rdf-string-1.6.3.tgz",
+ "integrity": "sha512-HIVwQ2gOqf+ObsCLSUAGFZMIl3rh9uGcRf1KbM85UDhKqP+hy6qj7Vz8FKt3GA54RiThqK3mNcr66dm1LP0+6g==",
"dependencies": {
"@rdfjs/types": "*",
"rdf-data-factory": "^1.1.0"
@@ -16522,7 +19933,8 @@
},
"node_modules/rdf-string-ttl": {
"version": "1.3.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/rdf-string-ttl/-/rdf-string-ttl-1.3.2.tgz",
+ "integrity": "sha512-yqolaVoUvTaSC5aaQuMcB4BL54G/pCGsV4jQH87f0TvAx8zHZG0koh7XWrjva/IPGcVb1QTtaeEdfda5mcddJg==",
"dependencies": {
"@rdfjs/types": "*",
"rdf-data-factory": "^1.1.0"
@@ -16530,7 +19942,8 @@
},
"node_modules/rdf-terms": {
"version": "1.11.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/rdf-terms/-/rdf-terms-1.11.0.tgz",
+ "integrity": "sha512-iKlVgnMopRKl9pHVNrQrax7PtZKRCT/uJIgYqvuw1VVQb88zDvurtDr1xp0rt7N9JtKtFwUXoIQoEsjyRo20qQ==",
"dependencies": {
"@rdfjs/types": "*",
"rdf-data-factory": "^1.1.0",
@@ -16539,7 +19952,8 @@
},
"node_modules/rdfa-streaming-parser": {
"version": "2.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/rdfa-streaming-parser/-/rdfa-streaming-parser-2.0.1.tgz",
+ "integrity": "sha512-7Yyaj030LO7iQ38Wh/RNLVeYrVFJeyx3dpCK7C1nvX55eIN/gE4HWfbg4BYI9X7Bd+eUIUMVeiKYLmYjV6apow==",
"dependencies": {
"@rdfjs/types": "*",
"htmlparser2": "^8.0.0",
@@ -16550,6 +19964,8 @@
},
"node_modules/rdfa-streaming-parser/node_modules/htmlparser2": {
"version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
+ "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
"funding": [
"https://github.com/fb55/htmlparser2?sponsor=1",
{
@@ -16557,7 +19973,6 @@
"url": "https://github.com/sponsors/fb55"
}
],
- "license": "MIT",
"dependencies": {
"domelementtype": "^2.3.0",
"domhandler": "^5.0.3",
@@ -16567,7 +19982,8 @@
},
"node_modules/rdfxml-streaming-parser": {
"version": "2.4.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/rdfxml-streaming-parser/-/rdfxml-streaming-parser-2.4.0.tgz",
+ "integrity": "sha512-f+tdI1wxOiPzMbFWRtOwinwPsqac0WIN80668yFKcVdFCSTGOWTM70ucQGUSdDZZo7pce/UvZgV0C3LDj0P7tg==",
"dependencies": {
"@rdfjs/types": "*",
"@rubensworks/saxes": "^6.0.1",
@@ -16581,20 +19997,23 @@
},
"node_modules/react-is": {
"version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"dev": true,
- "license": "MIT",
"peer": true
},
"node_modules/react-native-fetch-api": {
"version": "2.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/react-native-fetch-api/-/react-native-fetch-api-2.0.0.tgz",
+ "integrity": "sha512-GOA8tc1EVYLnHvma/TU9VTgLOyralO7eATRuCDchQveXW9Fr9vXygyq9iwqmM7YRZ8qRJfEt9xOS7OYMdJvRFw==",
"dependencies": {
"p-defer": "^3.0.0"
}
},
"node_modules/readable-stream": {
"version": "4.5.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz",
+ "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==",
"dependencies": {
"abort-controller": "^3.0.0",
"buffer": "^6.0.3",
@@ -16608,11 +20027,13 @@
},
"node_modules/readable-stream-node-to-web": {
"version": "1.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/readable-stream-node-to-web/-/readable-stream-node-to-web-1.0.1.tgz",
+ "integrity": "sha512-OGzi2VKLa8H259kAx7BIwuRrXHGcxeHj4RdASSgEGBP9Q2wowdPvBc65upF4Q9O05qWgKqBw1+9PiLTtObl7uQ=="
},
"node_modules/readdirp": {
"version": "4.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz",
+ "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==",
"engines": {
"node": ">= 14.16.0"
},
@@ -16623,36 +20044,41 @@
},
"node_modules/real-require": {
"version": "0.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz",
+ "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==",
"engines": {
"node": ">= 12.13.0"
}
},
"node_modules/receptacle": {
"version": "1.3.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz",
+ "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==",
"dependencies": {
"ms": "^2.1.1"
}
},
"node_modules/reflect-metadata": {
"version": "0.1.13",
- "dev": true,
- "license": "Apache-2.0"
+ "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz",
+ "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==",
+ "dev": true
},
"node_modules/reflect.getprototypeof": {
- "version": "1.0.7",
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.8.tgz",
+ "integrity": "sha512-B5dj6usc5dkk8uFliwjwDHM8To5/QwdKz9JcBZ8Ic4G1f0YmeeJTtE/ZTdgRFPAfxZFiUaPhZ1Jcs4qeagItGQ==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
"define-properties": "^1.2.1",
+ "dunder-proto": "^1.0.0",
"es-abstract": "^1.23.5",
"es-errors": "^1.3.0",
"get-intrinsic": "^1.2.4",
- "gopd": "^1.0.1",
- "which-builtin-type": "^1.1.4"
+ "gopd": "^1.2.0",
+ "which-builtin-type": "^1.2.0"
},
"engines": {
"node": ">= 0.4"
@@ -16663,28 +20089,32 @@
},
"node_modules/regenerator-runtime": {
"version": "0.14.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
+ "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
},
"node_modules/regexp-match-indices": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/regexp-match-indices/-/regexp-match-indices-1.0.2.tgz",
+ "integrity": "sha512-DwZuAkt8NF5mKwGGER1EGh2PRqyvhRhhLviH+R8y8dIuaQROlUfXjt4s9ZTXstIsSkptf06BSvwcEmmfheJJWQ==",
"dev": true,
- "license": "Apache-2.0",
"dependencies": {
"regexp-tree": "^0.1.11"
}
},
"node_modules/regexp-tree": {
"version": "0.1.27",
+ "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz",
+ "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==",
"dev": true,
- "license": "MIT",
"bin": {
"regexp-tree": "bin/regexp-tree"
}
},
"node_modules/regexp.prototype.flags": {
"version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz",
+ "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.7",
@@ -16701,12 +20131,14 @@
},
"node_modules/relative-to-absolute-iri": {
"version": "1.0.7",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/relative-to-absolute-iri/-/relative-to-absolute-iri-1.0.7.tgz",
+ "integrity": "sha512-Xjyl4HmIzg2jzK/Un2gELqbcE8Fxy85A/aLSHE6PE/3+OGsFwmKVA1vRyGaz6vLWSqLDMHA+5rjD/xbibSQN1Q=="
},
"node_modules/release-zalgo": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz",
+ "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==",
"dev": true,
- "license": "ISC",
"dependencies": {
"es6-error": "^4.0.1"
},
@@ -16716,16 +20148,19 @@
},
"node_modules/repeat-string": {
"version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10"
}
},
"node_modules/request": {
"version": "2.88.2",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
+ "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
+ "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142",
"dev": true,
- "license": "Apache-2.0",
"dependencies": {
"aws-sign2": "~0.7.0",
"aws4": "^1.8.0",
@@ -16754,8 +20189,9 @@
},
"node_modules/request/node_modules/form-data": {
"version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.6",
@@ -16767,16 +20203,18 @@
},
"node_modules/request/node_modules/qs": {
"version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
+ "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
"dev": true,
- "license": "BSD-3-Clause",
"engines": {
"node": ">=0.6"
}
},
"node_modules/request/node_modules/tough-cookie": {
"version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
+ "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"psl": "^1.1.28",
"punycode": "^2.1.1"
@@ -16787,39 +20225,46 @@
},
"node_modules/request/node_modules/uuid": {
"version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+ "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
"dev": true,
- "license": "MIT",
"bin": {
"uuid": "bin/uuid"
}
},
"node_modules/require-directory": {
"version": "2.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/require-from-string": {
"version": "2.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/require-main-filename": {
"version": "2.0.0",
- "dev": true,
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+ "dev": true
},
"node_modules/requires-port": {
"version": "1.0.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
+ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
+ "dev": true
},
"node_modules/resolve": {
"version": "1.22.8",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
"dependencies": {
"is-core-module": "^2.13.0",
"path-parse": "^1.0.7",
@@ -16834,20 +20279,23 @@
},
"node_modules/resolve-alpn": {
"version": "1.2.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
+ "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==",
+ "dev": true
},
"node_modules/resolve-from": {
"version": "4.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"engines": {
"node": ">=4"
}
},
"node_modules/resolve-pkg": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-pkg/-/resolve-pkg-2.0.0.tgz",
+ "integrity": "sha512-+1lzwXehGCXSeryaISr6WujZzowloigEofRB+dj75y9RRa/obVcYgbHJd53tdYw8pvZj8GojXaaENws8Ktw/hQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"resolve-from": "^5.0.0"
},
@@ -16857,16 +20305,18 @@
},
"node_modules/resolve-pkg/node_modules/resolve-from": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/responselike": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz",
+ "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"lowercase-keys": "^2.0.0"
},
@@ -16876,16 +20326,18 @@
},
"node_modules/responselike/node_modules/lowercase-keys": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/restore-cursor": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz",
+ "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"onetime": "^5.1.0",
"signal-exit": "^3.0.2"
@@ -16899,22 +20351,26 @@
},
"node_modules/retimer": {
"version": "3.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/retimer/-/retimer-3.0.0.tgz",
+ "integrity": "sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA=="
},
"node_modules/retry": {
"version": "0.13.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
+ "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
"engines": {
"node": ">= 4"
}
},
"node_modules/retry-as-promised": {
"version": "7.0.4",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-7.0.4.tgz",
+ "integrity": "sha512-XgmCoxKWkDofwH8WddD0w85ZfqYz+ZHlr5yo+3YUCfycWawU56T5ckWXsScsj5B8tqUcIG67DxXByo3VUgiAdA=="
},
"node_modules/reusify": {
"version": "1.0.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
"engines": {
"iojs": ">=1.0.0",
"node": ">=0.10.0"
@@ -16922,12 +20378,15 @@
},
"node_modules/rfdc": {
"version": "1.4.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz",
+ "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==",
+ "dev": true
},
"node_modules/rimraf": {
"version": "3.0.2",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
"dependencies": {
"glob": "^7.1.3"
},
@@ -16940,7 +20399,8 @@
},
"node_modules/ripemd160": {
"version": "2.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
"dependencies": {
"hash-base": "^3.0.0",
"inherits": "^2.0.1"
@@ -16948,7 +20408,8 @@
},
"node_modules/rlp": {
"version": "2.2.7",
- "license": "MPL-2.0",
+ "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz",
+ "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==",
"dependencies": {
"bn.js": "^5.2.0"
},
@@ -16958,12 +20419,14 @@
},
"node_modules/robust-predicates": {
"version": "3.0.2",
- "dev": true,
- "license": "Unlicense"
+ "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz",
+ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==",
+ "dev": true
},
"node_modules/rolling-rate-limiter": {
"version": "0.2.13",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/rolling-rate-limiter/-/rolling-rate-limiter-0.2.13.tgz",
+ "integrity": "sha512-fF5XeJn7t22cC9LIh77BDfs7Mg0jon03qezMfPige0vehzhmNyQ6U+eSYbaL1l80sX9z+22+6x4pQ8xHT0LrVw==",
"dependencies": {
"microtime": "^3.0.0",
"uuid": "^8.3.0"
@@ -16974,6 +20437,8 @@
},
"node_modules/run-parallel": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
"funding": [
{
"type": "github",
@@ -16988,32 +20453,35 @@
"url": "https://feross.org/support"
}
],
- "license": "MIT",
"dependencies": {
"queue-microtask": "^1.2.2"
}
},
"node_modules/rw": {
"version": "1.3.3",
- "dev": true,
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
+ "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==",
+ "dev": true
},
"node_modules/rxjs": {
"version": "7.8.1",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
"dependencies": {
"tslib": "^2.1.0"
}
},
"node_modules/safe-array-concat": {
- "version": "1.1.2",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz",
+ "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
- "call-bind": "^1.0.7",
- "get-intrinsic": "^1.2.4",
- "has-symbols": "^1.0.3",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.2",
+ "get-intrinsic": "^1.2.6",
+ "has-symbols": "^1.1.0",
"isarray": "^2.0.5"
},
"engines": {
@@ -17025,6 +20493,8 @@
},
"node_modules/safe-buffer": {
"version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"funding": [
{
"type": "github",
@@ -17038,18 +20508,18 @@
"type": "consulting",
"url": "https://feross.org/support"
}
- ],
- "license": "MIT"
+ ]
},
"node_modules/safe-regex-test": {
- "version": "1.0.3",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz",
+ "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
- "call-bind": "^1.0.6",
+ "call-bound": "^1.0.2",
"es-errors": "^1.3.0",
- "is-regex": "^1.1.4"
+ "is-regex": "^1.2.1"
},
"engines": {
"node": ">= 0.4"
@@ -17060,29 +20530,34 @@
},
"node_modules/safe-stable-stringify": {
"version": "2.5.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz",
+ "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==",
"engines": {
"node": ">=10"
}
},
"node_modules/safer-buffer": {
"version": "2.1.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"node_modules/sanitize-filename": {
"version": "1.6.3",
- "license": "WTFPL OR ISC",
+ "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz",
+ "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==",
"dependencies": {
"truncate-utf8-bytes": "^1.0.0"
}
},
"node_modules/sax": {
"version": "1.4.1",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz",
+ "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg=="
},
"node_modules/sax-stream": {
"version": "1.3.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/sax-stream/-/sax-stream-1.3.0.tgz",
+ "integrity": "sha512-tcfsAAICAkyNNe4uiKtKmLKxx3C7qPAej13UUoN+7OLYq/P5kHGahZtJhhMVM3fIMndA6TlYHWFlFEzFkv1VGg==",
"dependencies": {
"debug": "~2",
"sax": "~1"
@@ -17090,19 +20565,22 @@
},
"node_modules/sax-stream/node_modules/debug": {
"version": "2.6.9",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/sax-stream/node_modules/ms": {
"version": "2.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/saxes": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz",
+ "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==",
"dev": true,
- "license": "ISC",
"dependencies": {
"xmlchars": "^2.2.0"
},
@@ -17112,17 +20590,20 @@
},
"node_modules/scale-ts": {
"version": "1.6.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/scale-ts/-/scale-ts-1.6.1.tgz",
+ "integrity": "sha512-PBMc2AWc6wSEqJYBDPcyCLUj9/tMKnLX70jLOSndMtcUoLQucP/DM0vnQo1wJAYjTrQiq8iG9rD0q6wFzgjH7g==",
"optional": true
},
"node_modules/scrypt-js": {
"version": "3.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz",
+ "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA=="
},
"node_modules/secp256k1": {
"version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz",
+ "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==",
"hasInstallScript": true,
- "license": "MIT",
"dependencies": {
"elliptic": "^6.5.4",
"node-addon-api": "^2.0.0",
@@ -17134,20 +20615,25 @@
},
"node_modules/secure-json-parse": {
"version": "2.7.0",
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz",
+ "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw=="
},
"node_modules/seed-random": {
"version": "2.2.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/seed-random/-/seed-random-2.2.0.tgz",
+ "integrity": "sha512-34EQV6AAHQGhoc0tn/96a9Fsi6v2xdqe/dMUwljGRaFOzR3EgRmECvD0O8vi8X+/uQ50LGHfkNu/Eue5TPKZkQ==",
+ "dev": true
},
"node_modules/seedrandom": {
"version": "3.0.5",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz",
+ "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==",
+ "dev": true
},
"node_modules/semver": {
"version": "7.6.3",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
"bin": {
"semver": "bin/semver.js"
},
@@ -17157,7 +20643,8 @@
},
"node_modules/send": {
"version": "0.19.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
+ "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
"dependencies": {
"debug": "2.6.9",
"depd": "2.0.0",
@@ -17179,34 +20666,40 @@
},
"node_modules/send/node_modules/debug": {
"version": "2.6.9",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/send/node_modules/debug/node_modules/ms": {
"version": "2.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/send/node_modules/encodeurl": {
"version": "1.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/seq-queue": {
- "version": "0.0.5"
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz",
+ "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q=="
},
"node_modules/sequelize": {
"version": "6.37.5",
+ "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.37.5.tgz",
+ "integrity": "sha512-10WA4poUb3XWnUROThqL2Apq9C2NhyV1xHPMZuybNMCucDsbbFuKg51jhmyvvAUyUqCiimwTZamc3AHhMoBr2Q==",
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/sequelize"
}
],
- "license": "MIT",
"dependencies": {
"@types/debug": "^4.1.8",
"@types/validator": "^13.7.17",
@@ -17260,21 +20753,24 @@
},
"node_modules/sequelize-pool": {
"version": "7.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/sequelize-pool/-/sequelize-pool-7.1.0.tgz",
+ "integrity": "sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg==",
"engines": {
"node": ">= 10.0.0"
}
},
"node_modules/serialize-javascript": {
"version": "6.0.2",
- "license": "BSD-3-Clause",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
+ "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
"dependencies": {
"randombytes": "^2.1.0"
}
},
"node_modules/serve-static": {
"version": "1.16.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
+ "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
"dependencies": {
"encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
@@ -17287,8 +20783,9 @@
},
"node_modules/servify": {
"version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz",
+ "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"body-parser": "^1.16.0",
"cors": "^2.8.1",
@@ -17302,16 +20799,19 @@
},
"node_modules/set-blocking": {
"version": "2.0.0",
- "dev": true,
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
+ "devOptional": true
},
"node_modules/set-delayed-interval": {
"version": "1.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/set-delayed-interval/-/set-delayed-interval-1.0.0.tgz",
+ "integrity": "sha512-29fhAwuZlLcuBnW/EwxvLcg2D3ELX+VBDNhnavs3YYkab72qmrcSeQNVdzl8EcPPahGQXhBM6MKdPLCQGMDakw=="
},
"node_modules/set-function-length": {
"version": "1.2.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
"dependencies": {
"define-data-property": "^1.1.4",
"es-errors": "^1.3.0",
@@ -17326,8 +20826,9 @@
},
"node_modules/set-function-name": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
+ "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"define-data-property": "^1.1.4",
@@ -17341,15 +20842,18 @@
},
"node_modules/setimmediate": {
"version": "1.0.5",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="
},
"node_modules/setprototypeof": {
"version": "1.2.0",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
"node_modules/sha.js": {
"version": "2.4.11",
- "license": "(MIT AND BSD-3-Clause)",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
"dependencies": {
"inherits": "^2.0.1",
"safe-buffer": "^5.0.1"
@@ -17360,7 +20864,8 @@
},
"node_modules/shaclc-parse": {
"version": "1.4.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/shaclc-parse/-/shaclc-parse-1.4.0.tgz",
+ "integrity": "sha512-zyxjIYQH2ghg/wtMvOp+4Nr6aK8j9bqFiVT3w47K8WHPYN+S3Zgnh2ybT+dGgMwo9KjiOoywxhjC7d8Z6GCmfA==",
"dependencies": {
"@rdfjs/types": "^1.1.0",
"n3": "^1.16.3"
@@ -17368,7 +20873,8 @@
},
"node_modules/shaclc-write": {
"version": "1.4.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/shaclc-write/-/shaclc-write-1.4.3.tgz",
+ "integrity": "sha512-dtJ6LokIluzQuHRWCFvNnmGyh07FxBK2L4utkOQn/wYD9eNamUUCt7sDBcuFDyD3jAGv0Ipmv0EitTyKcM1f/w==",
"dependencies": {
"@jeswr/prefixcc": "^1.2.1",
"n3": "^1.16.3",
@@ -17377,9 +20883,10 @@
},
"node_modules/sharp": {
"version": "0.32.6",
+ "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz",
+ "integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==",
"dev": true,
"hasInstallScript": true,
- "license": "Apache-2.0",
"dependencies": {
"color": "^4.2.3",
"detect-libc": "^2.0.2",
@@ -17399,12 +20906,14 @@
},
"node_modules/sharp/node_modules/node-addon-api": {
"version": "6.1.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
+ "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==",
+ "dev": true
},
"node_modules/shebang-command": {
"version": "2.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"dependencies": {
"shebang-regex": "^3.0.0"
},
@@ -17414,19 +20923,72 @@
},
"node_modules/shebang-regex": {
"version": "3.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"engines": {
"node": ">=8"
}
},
"node_modules/side-channel": {
- "version": "1.0.6",
- "license": "MIT",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
+ "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
"dependencies": {
- "call-bind": "^1.0.7",
"es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.4",
- "object-inspect": "^1.13.1"
+ "object-inspect": "^1.13.3",
+ "side-channel-list": "^1.0.0",
+ "side-channel-map": "^1.0.1",
+ "side-channel-weakmap": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-list": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
+ "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-map": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
+ "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-weakmap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
+ "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3",
+ "side-channel-map": "^1.0.1"
},
"engines": {
"node": ">= 0.4"
@@ -17437,11 +20999,13 @@
},
"node_modules/signal-exit": {
"version": "3.0.7",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
},
"node_modules/simple-concat": {
"version": "1.0.1",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
+ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
"funding": [
{
"type": "github",
@@ -17455,12 +21019,12 @@
"type": "consulting",
"url": "https://feross.org/support"
}
- ],
- "license": "MIT"
+ ]
},
"node_modules/simple-get": {
"version": "4.0.1",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
+ "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
"funding": [
{
"type": "github",
@@ -17475,7 +21039,6 @@
"url": "https://feross.org/support"
}
],
- "license": "MIT",
"dependencies": {
"decompress-response": "^6.0.0",
"once": "^1.3.1",
@@ -17484,15 +21047,18 @@
},
"node_modules/simple-swizzle": {
"version": "0.2.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
"dependencies": {
"is-arrayish": "^0.3.1"
}
},
"node_modules/sinon": {
"version": "14.0.2",
+ "resolved": "https://registry.npmjs.org/sinon/-/sinon-14.0.2.tgz",
+ "integrity": "sha512-PDpV0ZI3ZCS3pEqx0vpNp6kzPhHrLx72wA0G+ZLaaJjLIYeE0n8INlgaohKuGy7hP0as5tbUd23QWu5U233t+w==",
+ "deprecated": "16.1.1",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"@sinonjs/commons": "^2.0.0",
"@sinonjs/fake-timers": "^9.1.2",
@@ -17508,16 +21074,18 @@
},
"node_modules/sinon/node_modules/diff": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz",
+ "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==",
"dev": true,
- "license": "BSD-3-Clause",
"engines": {
"node": ">=0.3.1"
}
},
"node_modules/sinon/node_modules/supports-color": {
"version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -17527,8 +21095,9 @@
},
"node_modules/slice-ansi": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz",
+ "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ansi-styles": "^6.0.0",
"is-fullwidth-code-point": "^4.0.0"
@@ -17542,8 +21111,9 @@
},
"node_modules/slice-ansi/node_modules/ansi-styles": {
"version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -17553,23 +21123,89 @@
},
"node_modules/slugify": {
"version": "1.6.6",
+ "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz",
+ "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=8.0.0"
}
},
+ "node_modules/smart-buffer": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
+ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
+ "optional": true,
+ "engines": {
+ "node": ">= 6.0.0",
+ "npm": ">= 3.0.0"
+ }
+ },
"node_modules/smoldot": {
"version": "2.0.22",
- "license": "GPL-3.0-or-later WITH Classpath-exception-2.0",
+ "resolved": "https://registry.npmjs.org/smoldot/-/smoldot-2.0.22.tgz",
+ "integrity": "sha512-B50vRgTY6v3baYH6uCgL15tfaag5tcS2o/P5q1OiXcKGv1axZDfz2dzzMuIkVpyMR2ug11F6EAtQlmYBQd292g==",
+ "dev": true,
"optional": true,
"dependencies": {
"ws": "^8.8.1"
}
},
+ "node_modules/socks": {
+ "version": "2.8.3",
+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz",
+ "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==",
+ "optional": true,
+ "dependencies": {
+ "ip-address": "^9.0.5",
+ "smart-buffer": "^4.2.0"
+ },
+ "engines": {
+ "node": ">= 10.0.0",
+ "npm": ">= 3.0.0"
+ }
+ },
+ "node_modules/socks-proxy-agent": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz",
+ "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==",
+ "optional": true,
+ "dependencies": {
+ "agent-base": "^6.0.2",
+ "debug": "^4.3.3",
+ "socks": "^2.6.2"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/socks/node_modules/ip-address": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz",
+ "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==",
+ "optional": true,
+ "dependencies": {
+ "jsbn": "1.1.0",
+ "sprintf-js": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/socks/node_modules/sprintf-js": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
+ "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
+ "optional": true
+ },
+ "node_modules/solady": {
+ "version": "0.0.285",
+ "resolved": "https://registry.npmjs.org/solady/-/solady-0.0.285.tgz",
+ "integrity": "sha512-MkY9KFFuhMeTkWU+4wIzBoEkGr1DXdMR98/zGB8S7efg9Wph9Z4d98RRu7c8pRpmRfrSPAYuMKkvauMCpWXStg=="
+ },
"node_modules/solc": {
"version": "0.8.26",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.26.tgz",
+ "integrity": "sha512-yiPQNVf5rBFHwN6SIf3TUUvVAFKcQqmSUFeq+fb6pNRCo0ZCgpYOZDi3BVoezCPIAcKrVYd/qXlBLUP9wVrZ9g==",
"dependencies": {
"command-exists": "^1.2.8",
"commander": "^8.1.0",
@@ -17588,21 +21224,24 @@
},
"node_modules/solc/node_modules/commander": {
"version": "8.3.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
"engines": {
"node": ">= 12"
}
},
"node_modules/solc/node_modules/semver": {
"version": "5.7.2",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"bin": {
"semver": "bin/semver"
}
},
"node_modules/solc/node_modules/tmp": {
"version": "0.0.33",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
"dependencies": {
"os-tmpdir": "~1.0.2"
},
@@ -17612,21 +21251,24 @@
},
"node_modules/sonic-boom": {
"version": "3.8.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.1.tgz",
+ "integrity": "sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==",
"dependencies": {
"atomic-sleep": "^1.0.0"
}
},
"node_modules/source-map": {
"version": "0.6.1",
- "license": "BSD-3-Clause",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/source-map-support": {
"version": "0.5.21",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
"dependencies": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
@@ -17634,11 +21276,13 @@
},
"node_modules/spark-md5": {
"version": "3.0.2",
- "license": "(WTFPL OR MIT)"
+ "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.2.tgz",
+ "integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw=="
},
"node_modules/sparqlalgebrajs": {
"version": "4.3.8",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/sparqlalgebrajs/-/sparqlalgebrajs-4.3.8.tgz",
+ "integrity": "sha512-Xo1/5icRtVk2N38BrY9NXN8N/ZPjULlns7sDHv0nlcGOsOediBLWVy8LmV+Q90RHvb3atZZbrFy3VqrM4iXciA==",
"dependencies": {
"@rdfjs/types": "*",
"@types/sparqljs": "^3.1.3",
@@ -17656,7 +21300,8 @@
},
"node_modules/sparqljs": {
"version": "3.7.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/sparqljs/-/sparqljs-3.7.3.tgz",
+ "integrity": "sha512-FQfHUhfwn5PD9WH6xPU7DhFfXMgqK/XoDrYDVxz/grhw66Il0OjRg3JBgwuEvwHnQt7oSTiKWEiCZCPNaUbqgg==",
"dependencies": {
"rdf-data-factory": "^1.1.2"
},
@@ -17669,7 +21314,8 @@
},
"node_modules/sparqljson-parse": {
"version": "2.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/sparqljson-parse/-/sparqljson-parse-2.2.0.tgz",
+ "integrity": "sha512-2TfvNvUsaJyWfCrq3ExdDdbF9LBLzIUCricg+D1YCYbbmyTzscgCtRk4KcIyJF178DtfCt4BkKzbKl8IXMHp8w==",
"dependencies": {
"@bergos/jsonparse": "^1.4.1",
"@rdfjs/types": "*",
@@ -17680,7 +21326,8 @@
},
"node_modules/sparqljson-to-tree": {
"version": "3.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/sparqljson-to-tree/-/sparqljson-to-tree-3.0.2.tgz",
+ "integrity": "sha512-8h/ZEPPBhBlMbgMX1TOumJQku2mLYYdwd/octsDa/bdqdNcMeAcB7S2Qh4SEZ+0pPNed9CBk1d5TEUpwJlcdmw==",
"dependencies": {
"@rdfjs/types": "*",
"rdf-literal": "^1.3.2",
@@ -17689,7 +21336,8 @@
},
"node_modules/sparqlxml-parse": {
"version": "2.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/sparqlxml-parse/-/sparqlxml-parse-2.1.1.tgz",
+ "integrity": "sha512-71sltShF6gDAzuKWEHNeij7r0Mv5VqRrvJing6W4WHJ12GRe6+t1IRTv6MeqxYN3XJmKevs7B3HCBUo7wceeJQ==",
"dependencies": {
"@rdfjs/types": "*",
"@rubensworks/saxes": "^6.0.1",
@@ -17701,8 +21349,9 @@
},
"node_modules/spawn-wrap": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz",
+ "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==",
"dev": true,
- "license": "ISC",
"dependencies": {
"foreground-child": "^2.0.0",
"is-windows": "^1.0.2",
@@ -17717,26 +21366,156 @@
},
"node_modules/split2": {
"version": "4.2.0",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
+ "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
"engines": {
"node": ">= 10.x"
}
},
"node_modules/sprintf-js": {
"version": "1.1.2",
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
+ "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug=="
+ },
+ "node_modules/sqlite": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/sqlite/-/sqlite-5.1.1.tgz",
+ "integrity": "sha512-oBkezXa2hnkfuJwUo44Hl9hS3er+YFtueifoajrgidvqsJRQFpc5fKoAkAor1O5ZnLoa28GBScfHXs8j0K358Q=="
+ },
+ "node_modules/sqlite3": {
+ "version": "5.1.7",
+ "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.7.tgz",
+ "integrity": "sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "bindings": "^1.5.0",
+ "node-addon-api": "^7.0.0",
+ "prebuild-install": "^7.1.1",
+ "tar": "^6.1.11"
+ },
+ "optionalDependencies": {
+ "node-gyp": "8.x"
+ },
+ "peerDependencies": {
+ "node-gyp": "8.x"
+ },
+ "peerDependenciesMeta": {
+ "node-gyp": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/sqlite3/node_modules/chownr": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/sqlite3/node_modules/fs-minipass": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/sqlite3/node_modules/fs-minipass/node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/sqlite3/node_modules/minipass": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
+ "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/sqlite3/node_modules/minizlib": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
+ "dependencies": {
+ "minipass": "^3.0.0",
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/sqlite3/node_modules/minizlib/node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/sqlite3/node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/sqlite3/node_modules/node-addon-api": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
+ "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ=="
+ },
+ "node_modules/sqlite3/node_modules/tar": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz",
+ "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==",
+ "dependencies": {
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "minipass": "^5.0.0",
+ "minizlib": "^2.1.1",
+ "mkdirp": "^1.0.3",
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/sqlite3/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
},
"node_modules/sqlstring": {
"version": "2.3.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz",
+ "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/sshpk": {
"version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz",
+ "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"asn1": "~0.2.3",
"assert-plus": "^1.0.0",
@@ -17759,29 +21538,64 @@
},
"node_modules/sshpk/node_modules/jsbn": {
"version": "0.1.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==",
+ "dev": true
},
"node_modules/sshpk/node_modules/tweetnacl": {
"version": "0.14.5",
- "dev": true,
- "license": "Unlicense"
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==",
+ "dev": true
+ },
+ "node_modules/ssri": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
+ "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==",
+ "optional": true,
+ "dependencies": {
+ "minipass": "^3.1.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/ssri/node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "optional": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ssri/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "optional": true
},
"node_modules/stack-trace": {
"version": "0.0.10",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
+ "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==",
"engines": {
"node": "*"
}
},
"node_modules/stackframe": {
"version": "1.3.4",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz",
+ "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==",
+ "dev": true
},
"node_modules/stacktrace-parser": {
"version": "0.1.10",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz",
+ "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==",
"dependencies": {
"type-fest": "^0.7.1"
},
@@ -17791,57 +21605,67 @@
},
"node_modules/stacktrace-parser/node_modules/type-fest": {
"version": "0.7.1",
- "license": "(MIT OR CC0-1.0)",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz",
+ "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==",
"engines": {
"node": ">=8"
}
},
"node_modules/statuses": {
"version": "2.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/stream-to-it": {
"version": "0.2.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/stream-to-it/-/stream-to-it-0.2.4.tgz",
+ "integrity": "sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ==",
"dependencies": {
"get-iterator": "^1.0.2"
}
},
"node_modules/stream-to-string": {
"version": "1.2.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/stream-to-string/-/stream-to-string-1.2.1.tgz",
+ "integrity": "sha512-WsvTDNF8UYs369Yko3pcdTducQtYpzEZeOV7cTuReyFvOoA9S/DLJ6sYK+xPafSPHhUMpaxiljKYnT6JSFztIA==",
"dependencies": {
"promise-polyfill": "^1.1.6"
}
},
"node_modules/streamify-array": {
"version": "1.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/streamify-array/-/streamify-array-1.0.1.tgz",
+ "integrity": "sha512-ZnswaBcC6B1bhPLSQOlC6CdaDUSzU0wr2lvvHpbHNms8V7+DLd8uEAzDAWpsjxbFkijBHhuObFO/qqu52DZUMA=="
},
"node_modules/streamify-string": {
"version": "1.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/streamify-string/-/streamify-string-1.0.1.tgz",
+ "integrity": "sha512-RXvBglotrvSIuQQ7oC55pdV40wZ/17gTb68ipMC4LA0SqMN4Sqfsf31Dpei7qXpYqZQ8ueVnPglUvtep3tlhqw=="
},
"node_modules/streaming-iterables": {
"version": "6.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/streaming-iterables/-/streaming-iterables-6.2.0.tgz",
+ "integrity": "sha512-3AYC8oB60WyD1ic7uHmN/vm2oRGzRnQ3XFBl/bFMDi1q1+nc5/vjMmiE4vroIya3jG59t87VpyAj/iXYxyw9AA==",
"engines": {
"node": ">=10"
}
},
"node_modules/streamsearch": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
+ "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/streamx": {
- "version": "2.21.0",
+ "version": "2.21.1",
+ "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.21.1.tgz",
+ "integrity": "sha512-PhP9wUnFLa+91CPy3N6tiQsK+gnYyUNuk15S3YG/zjYE7RuPeCjJngqnzpC31ow0lzBHQ+QGO4cNJnd0djYUsw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"fast-fifo": "^1.3.2",
"queue-tick": "^1.0.1",
@@ -17853,29 +21677,33 @@
},
"node_modules/strict-uri-encode": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+ "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/string_decoder": {
"version": "1.3.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"dependencies": {
"safe-buffer": "~5.2.0"
}
},
"node_modules/string-argv": {
"version": "0.3.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz",
+ "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==",
"engines": {
"node": ">=0.6.19"
}
},
"node_modules/string-width": {
"version": "4.2.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
@@ -17887,19 +21715,22 @@
},
"node_modules/string-width/node_modules/emoji-regex": {
"version": "8.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
"node_modules/string-width/node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"engines": {
"node": ">=8"
}
},
"node_modules/string.prototype.includes": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz",
+ "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.7",
@@ -17912,8 +21743,9 @@
},
"node_modules/string.prototype.matchall": {
"version": "4.0.11",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz",
+ "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.7",
@@ -17938,8 +21770,9 @@
},
"node_modules/string.prototype.repeat": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz",
+ "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"define-properties": "^1.1.3",
@@ -17947,15 +21780,19 @@
}
},
"node_modules/string.prototype.trim": {
- "version": "1.2.9",
+ "version": "1.2.10",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz",
+ "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.2",
+ "define-data-property": "^1.1.4",
"define-properties": "^1.2.1",
- "es-abstract": "^1.23.0",
- "es-object-atoms": "^1.0.0"
+ "es-abstract": "^1.23.5",
+ "es-object-atoms": "^1.0.0",
+ "has-property-descriptors": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -17965,23 +21802,29 @@
}
},
"node_modules/string.prototype.trimend": {
- "version": "1.0.8",
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz",
+ "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.2",
"define-properties": "^1.2.1",
"es-object-atoms": "^1.0.0"
},
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/string.prototype.trimstart": {
"version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
+ "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.7",
@@ -17997,7 +21840,8 @@
},
"node_modules/strip-ansi": {
"version": "6.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dependencies": {
"ansi-regex": "^5.0.1"
},
@@ -18007,29 +21851,33 @@
},
"node_modules/strip-ansi/node_modules/ansi-regex": {
"version": "5.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/strip-bom": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
+ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/strip-final-newline": {
"version": "2.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
"engines": {
"node": ">=6"
}
},
"node_modules/strip-hex-prefix": {
"version": "1.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz",
+ "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==",
"dependencies": {
"is-hex-prefixed": "1.0.0"
},
@@ -18040,7 +21888,8 @@
},
"node_modules/strip-json-comments": {
"version": "3.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
"engines": {
"node": ">=8"
},
@@ -18050,7 +21899,8 @@
},
"node_modules/supports-color": {
"version": "8.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -18063,7 +21913,8 @@
},
"node_modules/supports-preserve-symlinks-flag": {
"version": "1.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
"engines": {
"node": ">= 0.4"
},
@@ -18073,8 +21924,9 @@
},
"node_modules/swarm-js": {
"version": "0.1.42",
+ "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz",
+ "integrity": "sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"bluebird": "^3.5.0",
"buffer": "^5.0.5",
@@ -18091,8 +21943,9 @@
},
"node_modules/swarm-js/node_modules/@szmarczak/http-timer": {
"version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz",
+ "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"defer-to-connect": "^2.0.0"
},
@@ -18102,11 +21955,14 @@
},
"node_modules/swarm-js/node_modules/bluebird": {
"version": "3.7.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
+ "dev": true
},
"node_modules/swarm-js/node_modules/buffer": {
"version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
"dev": true,
"funding": [
{
@@ -18122,7 +21978,6 @@
"url": "https://feross.org/support"
}
],
- "license": "MIT",
"dependencies": {
"base64-js": "^1.3.1",
"ieee754": "^1.1.13"
@@ -18130,16 +21985,18 @@
},
"node_modules/swarm-js/node_modules/cacheable-lookup": {
"version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz",
+ "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=10.6.0"
}
},
"node_modules/swarm-js/node_modules/fs-extra": {
"version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
+ "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"graceful-fs": "^4.1.2",
"jsonfile": "^4.0.0",
@@ -18148,8 +22005,9 @@
},
"node_modules/swarm-js/node_modules/got": {
"version": "11.8.6",
+ "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz",
+ "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@sindresorhus/is": "^4.0.0",
"@szmarczak/http-timer": "^4.0.5",
@@ -18172,8 +22030,9 @@
},
"node_modules/swarm-js/node_modules/http2-wrapper": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz",
+ "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"quick-lru": "^5.1.1",
"resolve-alpn": "^1.0.0"
@@ -18184,37 +22043,42 @@
},
"node_modules/swarm-js/node_modules/jsonfile": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
"dev": true,
- "license": "MIT",
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
},
"node_modules/swarm-js/node_modules/lowercase-keys": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/swarm-js/node_modules/universalify": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 4.0.0"
}
},
"node_modules/symbol-tree": {
"version": "3.2.4",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
+ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
+ "dev": true
},
"node_modules/tar": {
"version": "4.4.19",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz",
+ "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==",
"dev": true,
- "license": "ISC",
"dependencies": {
"chownr": "^1.1.4",
"fs-minipass": "^1.2.7",
@@ -18230,8 +22094,9 @@
},
"node_modules/tar-fs": {
"version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.6.tgz",
+ "integrity": "sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"pump": "^3.0.0",
"tar-stream": "^3.1.5"
@@ -18243,8 +22108,9 @@
},
"node_modules/tar-stream": {
"version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
+ "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"b4a": "^1.6.4",
"fast-fifo": "^1.2.0",
@@ -18253,8 +22119,9 @@
},
"node_modules/test-exclude": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
"dev": true,
- "license": "ISC",
"dependencies": {
"@istanbuljs/schema": "^0.1.2",
"glob": "^7.1.4",
@@ -18266,32 +22133,37 @@
},
"node_modules/text-decoder": {
"version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.2.tgz",
+ "integrity": "sha512-/MDslo7ZyWTA2vnk1j7XoDVfXsGk3tp+zFEJHJGm0UjIlQifonVFwlVbQDFh8KJzTBnT8ie115TYqir6bclddA==",
"dev": true,
- "license": "Apache-2.0",
"dependencies": {
"b4a": "^1.6.4"
}
},
"node_modules/text-hex": {
"version": "1.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz",
+ "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg=="
},
"node_modules/text-table": {
"version": "0.2.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
},
"node_modules/thenify": {
"version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
+ "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"any-promise": "^1.0.0"
}
},
"node_modules/thenify-all": {
"version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
+ "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"thenify": ">= 3.1.0 < 4"
},
@@ -18301,37 +22173,44 @@
},
"node_modules/thread-stream": {
"version": "2.7.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.7.0.tgz",
+ "integrity": "sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==",
"dependencies": {
"real-require": "^0.2.0"
}
},
"node_modules/through": {
"version": "2.3.8",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
},
"node_modules/timed-out": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
+ "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/timeout-abort-controller": {
"version": "3.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-3.0.0.tgz",
+ "integrity": "sha512-O3e+2B8BKrQxU2YRyEjC/2yFdb33slI22WRdUaDx6rvysfi9anloNZyR2q0l6LnePo5qH7gSM7uZtvvwZbc2yA==",
"dependencies": {
"retimer": "^3.0.0"
}
},
"node_modules/tiny-emitter": {
"version": "2.1.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
+ "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==",
+ "dev": true
},
"node_modules/tinyglobby": {
"version": "0.2.10",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.10.tgz",
+ "integrity": "sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==",
"dependencies": {
"fdir": "^6.4.2",
"picomatch": "^4.0.2"
@@ -18342,7 +22221,8 @@
},
"node_modules/tinyglobby/node_modules/fdir": {
"version": "6.4.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz",
+ "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==",
"peerDependencies": {
"picomatch": "^3 || ^4"
},
@@ -18354,7 +22234,8 @@
},
"node_modules/tinyglobby/node_modules/picomatch": {
"version": "4.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
"engines": {
"node": ">=12"
},
@@ -18364,15 +22245,17 @@
},
"node_modules/tmp": {
"version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz",
+ "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=14.14"
}
},
"node_modules/to-regex-range": {
"version": "5.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dependencies": {
"is-number": "^7.0.0"
},
@@ -18382,31 +22265,36 @@
},
"node_modules/toidentifier": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
"engines": {
"node": ">=0.6"
}
},
"node_modules/toobusy-js": {
"version": "0.5.1",
- "license": "WTFPL",
+ "resolved": "https://registry.npmjs.org/toobusy-js/-/toobusy-js-0.5.1.tgz",
+ "integrity": "sha512-GiCux/c8G2TV0FTDgtxnXOxmSAndaI/9b1YxT14CqyeBDtTZAcJLx9KlXT3qECi8D0XCc78T4sN/7gWtjRyCaA==",
"engines": {
"node": ">=0.9.1"
}
},
"node_modules/toposort": {
"version": "2.0.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz",
+ "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==",
+ "dev": true
},
"node_modules/toposort-class": {
"version": "1.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/toposort-class/-/toposort-class-1.0.1.tgz",
+ "integrity": "sha512-OsLcGGbYF3rMjPUf8oKktyvCiUxSbqMMS39m33MAjLTC1DVIH6x3WSt63/M77ihI09+Sdfk1AXvfhCEeUmC7mg=="
},
"node_modules/tough-cookie": {
"version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz",
+ "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"psl": "^1.1.33",
"punycode": "^2.1.1",
@@ -18419,16 +22307,18 @@
},
"node_modules/tough-cookie/node_modules/universalify": {
"version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
+ "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 4.0.0"
}
},
"node_modules/tr46": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
+ "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"punycode": "^2.1.1"
},
@@ -18438,32 +22328,40 @@
},
"node_modules/traverse": {
"version": "0.3.9",
- "license": "MIT/X11"
+ "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz",
+ "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==",
+ "engines": {
+ "node": "*"
+ }
},
"node_modules/treeify": {
"version": "1.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz",
+ "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==",
"engines": {
"node": ">=0.6"
}
},
"node_modules/triple-beam": {
"version": "1.4.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz",
+ "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==",
"engines": {
"node": ">= 14.0.0"
}
},
"node_modules/truncate-utf8-bytes": {
"version": "1.0.2",
- "license": "WTFPL",
+ "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
+ "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==",
"dependencies": {
"utf8-byte-length": "^1.0.1"
}
},
"node_modules/ts-node": {
"version": "10.9.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
+ "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
"dependencies": {
"@cspotcode/source-map-support": "^0.8.0",
"@tsconfig/node10": "^1.0.7",
@@ -18504,7 +22402,8 @@
},
"node_modules/ts-node/node_modules/acorn-walk": {
"version": "8.3.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz",
+ "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==",
"dependencies": {
"acorn": "^8.11.0"
},
@@ -18514,8 +22413,9 @@
},
"node_modules/tsconfig-paths": {
"version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
+ "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"@types/json5": "^0.0.29",
@@ -18526,8 +22426,9 @@
},
"node_modules/tsconfig-paths/node_modules/json5": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"minimist": "^1.2.0"
@@ -18538,8 +22439,9 @@
},
"node_modules/tsconfig-paths/node_modules/strip-bom": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
"dev": true,
- "license": "MIT",
"peer": true,
"engines": {
"node": ">=4"
@@ -18547,16 +22449,18 @@
},
"node_modules/tslib": {
"version": "2.8.1",
- "license": "0BSD"
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
},
"node_modules/tsort": {
"version": "0.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz",
+ "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw=="
},
"node_modules/tunnel-agent": {
"version": "0.6.0",
- "dev": true,
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
"dependencies": {
"safe-buffer": "^5.0.1"
},
@@ -18566,19 +22470,23 @@
},
"node_modules/tweetnacl": {
"version": "1.0.3",
- "license": "Unlicense"
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
+ "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="
},
"node_modules/tweetnacl-util": {
"version": "0.15.1",
- "license": "Unlicense"
+ "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz",
+ "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw=="
},
"node_modules/type": {
"version": "2.7.3",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz",
+ "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ=="
},
"node_modules/type-check": {
"version": "0.4.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
"dependencies": {
"prelude-ls": "^1.2.1"
},
@@ -18588,15 +22496,17 @@
},
"node_modules/type-detect": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz",
+ "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/type-fest": {
"version": "0.20.2",
- "license": "(MIT OR CC0-1.0)",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
"engines": {
"node": ">=10"
},
@@ -18606,7 +22516,8 @@
},
"node_modules/type-is": {
"version": "1.6.18",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
"dependencies": {
"media-typer": "0.3.0",
"mime-types": "~2.1.24"
@@ -18617,8 +22528,9 @@
},
"node_modules/typed-array-buffer": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.7",
@@ -18631,8 +22543,9 @@
},
"node_modules/typed-array-byte-length": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz",
+ "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.7",
@@ -18650,8 +22563,9 @@
},
"node_modules/typed-array-byte-offset": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.3.tgz",
+ "integrity": "sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"available-typed-arrays": "^1.0.7",
@@ -18671,8 +22585,9 @@
},
"node_modules/typed-array-length": {
"version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz",
+ "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.7",
@@ -18691,20 +22606,25 @@
},
"node_modules/typed-function": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/typed-function/-/typed-function-2.1.0.tgz",
+ "integrity": "sha512-bctQIOqx2iVbWGDGPWwIm18QScpu2XRmkC19D8rQGFsjKSgteq/o1hTZvIG/wuDq8fanpBDrLkLq+aEN/6y5XQ==",
+ "dev": true,
"engines": {
"node": ">= 10"
}
},
"node_modules/typedarray-to-buffer": {
"version": "3.1.5",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
+ "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
"dependencies": {
"is-typedarray": "^1.0.0"
}
},
"node_modules/typescript": {
"version": "4.9.5",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
+ "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -18715,19 +22635,22 @@
},
"node_modules/uint8arrays": {
"version": "3.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz",
+ "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==",
"dependencies": {
"multiformats": "^9.4.2"
}
},
"node_modules/ultron": {
"version": "1.1.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
+ "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==",
+ "dev": true
},
"node_modules/umzug": {
"version": "3.8.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/umzug/-/umzug-3.8.2.tgz",
+ "integrity": "sha512-BEWEF8OJjTYVC56GjELeHl/1XjFejrD7aHzn+HldRJTx+pL1siBrKHZC8n4K/xL3bEzVA9o++qD1tK2CpZu4KA==",
"dependencies": {
"@rushstack/ts-command-line": "^4.12.2",
"emittery": "^0.13.0",
@@ -18740,8 +22663,9 @@
}
},
"node_modules/umzug/node_modules/type-fest": {
- "version": "4.30.0",
- "license": "(MIT OR CC0-1.0)",
+ "version": "4.30.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.30.1.tgz",
+ "integrity": "sha512-ojFL7eDMX2NF0xMbDwPZJ8sb7ckqtlAi1GsmgsFXvErT9kFTk1r0DuQKvrCh73M6D4nngeHJmvogF9OluXs7Hw==",
"engines": {
"node": ">=16"
},
@@ -18751,8 +22675,9 @@
},
"node_modules/unbox-primitive": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"call-bind": "^1.0.2",
@@ -18766,7 +22691,8 @@
},
"node_modules/undici": {
"version": "5.28.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz",
+ "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==",
"dependencies": {
"@fastify/busboy": "^2.0.0"
},
@@ -18776,29 +22702,52 @@
},
"node_modules/undici-types": {
"version": "6.20.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
+ "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg=="
+ },
+ "node_modules/unique-filename": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
+ "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
+ "optional": true,
+ "dependencies": {
+ "unique-slug": "^2.0.0"
+ }
+ },
+ "node_modules/unique-slug": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
+ "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
+ "optional": true,
+ "dependencies": {
+ "imurmurhash": "^0.1.4"
+ }
},
"node_modules/universalify": {
"version": "2.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
"engines": {
"node": ">= 10.0.0"
}
},
"node_modules/unordered-array-remove": {
"version": "1.0.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz",
+ "integrity": "sha512-45YsfD6svkgaCBNyvD+dFHm4qFX9g3wRSIVgWVPtm2OCnphvPxzJoe20ATsiNpNJrmzHifnxm+BN5F7gFT/4gw=="
},
"node_modules/unpipe": {
"version": "1.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/unzipper": {
"version": "0.10.14",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.14.tgz",
+ "integrity": "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==",
"dependencies": {
"big-integer": "^1.6.17",
"binary": "~0.3.0",
@@ -18814,11 +22763,13 @@
},
"node_modules/unzipper/node_modules/isarray": {
"version": "1.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
},
"node_modules/unzipper/node_modules/readable-stream": {
"version": "2.3.8",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -18831,17 +22782,21 @@
},
"node_modules/unzipper/node_modules/safe-buffer": {
"version": "5.1.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"node_modules/unzipper/node_modules/string_decoder": {
"version": "1.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dependencies": {
"safe-buffer": "~5.1.0"
}
},
"node_modules/update-browserslist-db": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz",
+ "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==",
"dev": true,
"funding": [
{
@@ -18857,7 +22812,6 @@
"url": "https://github.com/sponsors/ai"
}
],
- "license": "MIT",
"dependencies": {
"escalade": "^3.2.0",
"picocolors": "^1.1.0"
@@ -18871,26 +22825,31 @@
},
"node_modules/upper-case-first": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz",
+ "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"tslib": "^2.0.3"
}
},
"node_modules/uri-js": {
"version": "4.4.1",
- "license": "BSD-2-Clause",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"dependencies": {
"punycode": "^2.1.0"
}
},
"node_modules/uritemplate": {
- "version": "0.3.4"
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/uritemplate/-/uritemplate-0.3.4.tgz",
+ "integrity": "sha512-enADBvHfhjrwxFMTVWeIIYz51SZ91uC6o2MR/NQTVljJB6HTZ8eQL3Q7JBj3RxNISA14MOwJaU3vpf5R6dyxHA=="
},
"node_modules/url-parse": {
"version": "1.5.10",
+ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
+ "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"querystringify": "^2.1.1",
"requires-port": "^1.0.0"
@@ -18898,13 +22857,15 @@
},
"node_modules/url-set-query": {
"version": "1.0.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz",
+ "integrity": "sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==",
+ "dev": true
},
"node_modules/ursa-optional": {
"version": "0.10.2",
+ "resolved": "https://registry.npmjs.org/ursa-optional/-/ursa-optional-0.10.2.tgz",
+ "integrity": "sha512-TKdwuLboBn7M34RcvVTuQyhvrA8gYKapuVdm0nBP0mnBc7oECOfUQZrY91cefL3/nm64ZyrejSRrhTVdX7NG/A==",
"hasInstallScript": true,
- "license": "Apache-2.0",
"dependencies": {
"bindings": "^1.5.0",
"nan": "^2.14.2"
@@ -18915,8 +22876,9 @@
},
"node_modules/utf-8-validate": {
"version": "5.0.10",
+ "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz",
+ "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==",
"hasInstallScript": true,
- "license": "MIT",
"dependencies": {
"node-gyp-build": "^4.3.0"
},
@@ -18926,16 +22888,19 @@
},
"node_modules/utf8": {
"version": "3.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz",
+ "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ=="
},
"node_modules/utf8-byte-length": {
"version": "1.0.5",
- "license": "(WTFPL OR MIT)"
+ "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.5.tgz",
+ "integrity": "sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA=="
},
"node_modules/util": {
"version": "0.12.5",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
+ "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"inherits": "^2.0.3",
"is-arguments": "^1.0.4",
@@ -18946,57 +22911,67 @@
},
"node_modules/util-arity": {
"version": "1.1.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/util-arity/-/util-arity-1.1.0.tgz",
+ "integrity": "sha512-kkyIsXKwemfSy8ZEoaIz06ApApnWsk5hQO0vLjZS6UkBiGiW++Jsyb8vSBoc0WKlffGoGs5yYy/j5pp8zckrFA==",
+ "dev": true
},
"node_modules/util-deprecate": {
"version": "1.0.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
"node_modules/utils-merge": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
"engines": {
"node": ">= 0.4.0"
}
},
"node_modules/uuid": {
"version": "8.3.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
"bin": {
"uuid": "dist/bin/uuid"
}
},
"node_modules/v8-compile-cache-lib": {
"version": "3.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
+ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg=="
},
"node_modules/validate-iri": {
"version": "1.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/validate-iri/-/validate-iri-1.0.1.tgz",
+ "integrity": "sha512-gLXi7351CoyVVQw8XE5sgpYawRKatxE7kj/xmCxXOZS1kMdtcqC0ILIqLuVEVnAUQSL/evOGG3eQ+8VgbdnstA=="
},
"node_modules/validator": {
"version": "13.12.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz",
+ "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==",
"engines": {
"node": ">= 0.10"
}
},
"node_modules/varint": {
"version": "6.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz",
+ "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg=="
},
"node_modules/vary": {
"version": "1.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/verror": {
"version": "1.10.1",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz",
+ "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"assert-plus": "^1.0.0",
"core-util-is": "1.0.2",
@@ -19008,16 +22983,19 @@
},
"node_modules/w3c-hr-time": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
+ "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==",
+ "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.",
"dev": true,
- "license": "MIT",
"dependencies": {
"browser-process-hrtime": "^1.0.0"
}
},
"node_modules/w3c-xmlserializer": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz",
+ "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"xml-name-validator": "^3.0.0"
},
@@ -19027,20 +23005,23 @@
},
"node_modules/web-streams-polyfill": {
"version": "3.3.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz",
+ "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==",
"engines": {
"node": ">= 8"
}
},
"node_modules/web-streams-ponyfill": {
"version": "1.4.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/web-streams-ponyfill/-/web-streams-ponyfill-1.4.2.tgz",
+ "integrity": "sha512-LCHW+fE2UBJ2vjhqJujqmoxh1ytEDEr0dPO3CabMdMDJPKmsaxzS90V1Ar6LtNE5VHLqxR4YMEj1i4lzMAccIA=="
},
"node_modules/web3": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.4.tgz",
+ "integrity": "sha512-kgJvQZjkmjOEKimx/tJQsqWfRDPTTcBfYPa9XletxuHLpHcXdx67w8EFn5AW3eVxCutE9dTVHgGa9VYe8vgsEA==",
"dev": true,
"hasInstallScript": true,
- "license": "LGPL-3.0",
"dependencies": {
"web3-bzz": "1.10.4",
"web3-core": "1.10.4",
@@ -19056,9 +23037,10 @@
},
"node_modules/web3-bzz": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.4.tgz",
+ "integrity": "sha512-ZZ/X4sJ0Uh2teU9lAGNS8EjveEppoHNQiKlOXAjedsrdWuaMErBPdLQjXfcrYvN6WM6Su9PMsAxf3FXXZ+HwQw==",
"dev": true,
"hasInstallScript": true,
- "license": "LGPL-3.0",
"dependencies": {
"@types/node": "^12.12.6",
"got": "12.1.0",
@@ -19070,13 +23052,15 @@
},
"node_modules/web3-bzz/node_modules/@types/node": {
"version": "12.20.55",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
+ "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==",
+ "dev": true
},
"node_modules/web3-core": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.4.tgz",
+ "integrity": "sha512-B6elffYm81MYZDTrat7aEhnhdtVE3lDBUZft16Z8awYMZYJDbnykEbJVS+l3mnA7AQTnSDr/1MjWofGDLBJPww==",
"dev": true,
- "license": "LGPL-3.0",
"dependencies": {
"@types/bn.js": "^5.1.1",
"@types/node": "^12.12.6",
@@ -19092,8 +23076,9 @@
},
"node_modules/web3-core-helpers": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz",
+ "integrity": "sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==",
"dev": true,
- "license": "LGPL-3.0",
"dependencies": {
"web3-eth-iban": "1.10.4",
"web3-utils": "1.10.4"
@@ -19104,8 +23089,9 @@
},
"node_modules/web3-core-method": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.4.tgz",
+ "integrity": "sha512-uZTb7flr+Xl6LaDsyTeE2L1TylokCJwTDrIVfIfnrGmnwLc6bmTWCCrm71sSrQ0hqs6vp/MKbQYIYqUN0J8WyA==",
"dev": true,
- "license": "LGPL-3.0",
"dependencies": {
"@ethersproject/transactions": "^5.6.2",
"web3-core-helpers": "1.10.4",
@@ -19119,8 +23105,9 @@
},
"node_modules/web3-core-promievent": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.4.tgz",
+ "integrity": "sha512-2de5WnJQ72YcIhYwV/jHLc4/cWJnznuoGTJGD29ncFQHAfwW/MItHFSVKPPA5v8AhJe+r6y4Y12EKvZKjQVBvQ==",
"dev": true,
- "license": "LGPL-3.0",
"dependencies": {
"eventemitter3": "4.0.4"
},
@@ -19130,13 +23117,15 @@
},
"node_modules/web3-core-promievent/node_modules/eventemitter3": {
"version": "4.0.4",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
+ "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==",
+ "dev": true
},
"node_modules/web3-core-requestmanager": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.4.tgz",
+ "integrity": "sha512-vqP6pKH8RrhT/2MoaU+DY/OsYK9h7HmEBNCdoMj+4ZwujQtw/Mq2JifjwsJ7gits7Q+HWJwx8q6WmQoVZAWugg==",
"dev": true,
- "license": "LGPL-3.0",
"dependencies": {
"util": "^0.12.5",
"web3-core-helpers": "1.10.4",
@@ -19150,8 +23139,9 @@
},
"node_modules/web3-core-subscriptions": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.4.tgz",
+ "integrity": "sha512-o0lSQo/N/f7/L76C0HV63+S54loXiE9fUPfHFcTtpJRQNDBVsSDdWRdePbWwR206XlsBqD5VHApck1//jEafTw==",
"dev": true,
- "license": "LGPL-3.0",
"dependencies": {
"eventemitter3": "4.0.4",
"web3-core-helpers": "1.10.4"
@@ -19162,18 +23152,21 @@
},
"node_modules/web3-core-subscriptions/node_modules/eventemitter3": {
"version": "4.0.4",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
+ "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==",
+ "dev": true
},
"node_modules/web3-core/node_modules/@types/node": {
"version": "12.20.55",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
+ "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==",
+ "dev": true
},
"node_modules/web3-eth": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.4.tgz",
+ "integrity": "sha512-Sql2kYKmgt+T/cgvg7b9ce24uLS7xbFrxE4kuuor1zSCGrjhTJ5rRNG8gTJUkAJGKJc7KgnWmgW+cOfMBPUDSA==",
"dev": true,
- "license": "LGPL-3.0",
"dependencies": {
"web3-core": "1.10.4",
"web3-core-helpers": "1.10.4",
@@ -19194,8 +23187,9 @@
},
"node_modules/web3-eth-abi": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.4.tgz",
+ "integrity": "sha512-cZ0q65eJIkd/jyOlQPDjr8X4fU6CRL1eWgdLwbWEpo++MPU/2P4PFk5ZLAdye9T5Sdp+MomePPJ/gHjLMj2VfQ==",
"dev": true,
- "license": "LGPL-3.0",
"dependencies": {
"@ethersproject/abi": "^5.6.3",
"web3-utils": "1.10.4"
@@ -19206,8 +23200,9 @@
},
"node_modules/web3-eth-accounts": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.4.tgz",
+ "integrity": "sha512-ysy5sVTg9snYS7tJjxVoQAH6DTOTkRGR8emEVCWNGLGiB9txj+qDvSeT0izjurS/g7D5xlMAgrEHLK1Vi6I3yg==",
"dev": true,
- "license": "LGPL-3.0",
"dependencies": {
"@ethereumjs/common": "2.6.5",
"@ethereumjs/tx": "3.5.2",
@@ -19226,13 +23221,15 @@
},
"node_modules/web3-eth-accounts/node_modules/bn.js": {
"version": "4.12.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz",
+ "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==",
+ "dev": true
},
"node_modules/web3-eth-accounts/node_modules/eth-lib": {
"version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"bn.js": "^4.11.6",
"elliptic": "^6.4.0",
@@ -19241,20 +23238,22 @@
},
"node_modules/web3-eth-accounts/node_modules/uuid": {
"version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
+ "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
"dev": true,
"funding": [
"https://github.com/sponsors/broofa",
"https://github.com/sponsors/ctavan"
],
- "license": "MIT",
"bin": {
"uuid": "dist/bin/uuid"
}
},
"node_modules/web3-eth-contract": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.4.tgz",
+ "integrity": "sha512-Q8PfolOJ4eV9TvnTj1TGdZ4RarpSLmHnUnzVxZ/6/NiTfe4maJz99R0ISgwZkntLhLRtw0C7LRJuklzGYCNN3A==",
"dev": true,
- "license": "LGPL-3.0",
"dependencies": {
"@types/bn.js": "^5.1.1",
"web3-core": "1.10.4",
@@ -19271,8 +23270,9 @@
},
"node_modules/web3-eth-ens": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.4.tgz",
+ "integrity": "sha512-LLrvxuFeVooRVZ9e5T6OWKVflHPFgrVjJ/jtisRWcmI7KN/b64+D/wJzXqgmp6CNsMQcE7rpmf4CQmJCrTdsgg==",
"dev": true,
- "license": "LGPL-3.0",
"dependencies": {
"content-hash": "^2.5.2",
"eth-ens-namehash": "2.0.8",
@@ -19289,8 +23289,9 @@
},
"node_modules/web3-eth-iban": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz",
+ "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==",
"dev": true,
- "license": "LGPL-3.0",
"dependencies": {
"bn.js": "^5.2.1",
"web3-utils": "1.10.4"
@@ -19301,8 +23302,9 @@
},
"node_modules/web3-eth-personal": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.4.tgz",
+ "integrity": "sha512-BRa/hs6jU1hKHz+AC/YkM71RP3f0Yci1dPk4paOic53R4ZZG4MgwKRkJhgt3/GPuPliwS46f/i5A7fEGBT4F9w==",
"dev": true,
- "license": "LGPL-3.0",
"dependencies": {
"@types/node": "^12.12.6",
"web3-core": "1.10.4",
@@ -19317,13 +23319,15 @@
},
"node_modules/web3-eth-personal/node_modules/@types/node": {
"version": "12.20.55",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
+ "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==",
+ "dev": true
},
"node_modules/web3-net": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.4.tgz",
+ "integrity": "sha512-mKINnhOOnZ4koA+yV2OT5s5ztVjIx7IY9a03w6s+yao/BUn+Luuty0/keNemZxTr1E8Ehvtn28vbOtW7Ids+Ow==",
"dev": true,
- "license": "LGPL-3.0",
"dependencies": {
"web3-core": "1.10.4",
"web3-core-method": "1.10.4",
@@ -19335,8 +23339,9 @@
},
"node_modules/web3-providers-http": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.4.tgz",
+ "integrity": "sha512-m2P5Idc8hdiO0l60O6DSCPw0kw64Zgi0pMjbEFRmxKIck2Py57RQMu4bxvkxJwkF06SlGaEQF8rFZBmuX7aagQ==",
"dev": true,
- "license": "LGPL-3.0",
"dependencies": {
"abortcontroller-polyfill": "^1.7.5",
"cross-fetch": "^4.0.0",
@@ -19349,8 +23354,9 @@
},
"node_modules/web3-providers-ipc": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.4.tgz",
+ "integrity": "sha512-YRF/bpQk9z3WwjT+A6FI/GmWRCASgd+gC0si7f9zbBWLXjwzYAKG73bQBaFRAHex1hl4CVcM5WUMaQXf3Opeuw==",
"dev": true,
- "license": "LGPL-3.0",
"dependencies": {
"oboe": "2.1.5",
"web3-core-helpers": "1.10.4"
@@ -19361,8 +23367,9 @@
},
"node_modules/web3-providers-ws": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.4.tgz",
+ "integrity": "sha512-j3FBMifyuFFmUIPVQR4pj+t5ILhAexAui0opgcpu9R5LxQrLRUZxHSnU+YO25UycSOa/NAX8A+qkqZNpcFAlxA==",
"dev": true,
- "license": "LGPL-3.0",
"dependencies": {
"eventemitter3": "4.0.4",
"web3-core-helpers": "1.10.4",
@@ -19374,14 +23381,16 @@
},
"node_modules/web3-providers-ws/node_modules/eventemitter3": {
"version": "4.0.4",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
+ "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==",
+ "dev": true
},
"node_modules/web3-shh": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.4.tgz",
+ "integrity": "sha512-cOH6iFFM71lCNwSQrC3niqDXagMqrdfFW85hC9PFUrAr3PUrIem8TNstTc3xna2bwZeWG6OBy99xSIhBvyIACw==",
"dev": true,
"hasInstallScript": true,
- "license": "LGPL-3.0",
"dependencies": {
"web3-core": "1.10.4",
"web3-core-method": "1.10.4",
@@ -19394,7 +23403,8 @@
},
"node_modules/web3-utils": {
"version": "1.10.4",
- "license": "LGPL-3.0",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.4.tgz",
+ "integrity": "sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==",
"dependencies": {
"@ethereumjs/util": "^8.1.0",
"bn.js": "^5.2.1",
@@ -19411,7 +23421,8 @@
},
"node_modules/web3-utils/node_modules/@noble/hashes": {
"version": "1.4.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz",
+ "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==",
"engines": {
"node": ">= 16"
},
@@ -19421,14 +23432,16 @@
},
"node_modules/web3-utils/node_modules/@scure/base": {
"version": "1.1.9",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz",
+ "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==",
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/web3-utils/node_modules/@scure/bip32": {
"version": "1.4.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz",
+ "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==",
"dependencies": {
"@noble/curves": "~1.4.0",
"@noble/hashes": "~1.4.0",
@@ -19440,7 +23453,8 @@
},
"node_modules/web3-utils/node_modules/@scure/bip39": {
"version": "1.3.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz",
+ "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==",
"dependencies": {
"@noble/hashes": "~1.4.0",
"@scure/base": "~1.1.6"
@@ -19451,7 +23465,8 @@
},
"node_modules/web3-utils/node_modules/ethereum-cryptography": {
"version": "2.2.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz",
+ "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==",
"dependencies": {
"@noble/curves": "1.4.2",
"@noble/hashes": "1.4.0",
@@ -19461,15 +23476,17 @@
},
"node_modules/webidl-conversions": {
"version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz",
+ "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==",
"dev": true,
- "license": "BSD-2-Clause",
"engines": {
"node": ">=10.4"
}
},
"node_modules/websocket": {
"version": "1.0.35",
- "license": "Apache-2.0",
+ "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.35.tgz",
+ "integrity": "sha512-/REy6amwPZl44DDzvRCkaI1q1bIiQB0mEFQLUrhz3z2EK91cp3n72rAjUlrTP0zV22HJIUOVHQGPxhFRjxjt+Q==",
"dependencies": {
"bufferutil": "^4.0.1",
"debug": "^2.2.0",
@@ -19484,27 +23501,31 @@
},
"node_modules/websocket/node_modules/debug": {
"version": "2.6.9",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/websocket/node_modules/ms": {
"version": "2.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/whatwg-encoding": {
"version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",
+ "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"iconv-lite": "0.4.24"
}
},
"node_modules/whatwg-encoding/node_modules/iconv-lite": {
"version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3"
},
@@ -19514,13 +23535,15 @@
},
"node_modules/whatwg-mimetype": {
"version": "2.3.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz",
+ "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==",
+ "dev": true
},
"node_modules/whatwg-url": {
"version": "8.7.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz",
+ "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"lodash": "^4.7.0",
"tr46": "^2.1.0",
@@ -19532,7 +23555,8 @@
},
"node_modules/wherearewe": {
"version": "1.0.2",
- "license": "Apache-2.0 OR MIT",
+ "resolved": "https://registry.npmjs.org/wherearewe/-/wherearewe-1.0.2.tgz",
+ "integrity": "sha512-HyLZ7n1Yox+w1qWaFEgP/sMs5D7ka2UXmoVNaY0XzbEHLGljo4ScBchYm6cWRYNO33tmFX3Mgg4BiZkDOjihyw==",
"dependencies": {
"is-electron": "^2.2.0"
},
@@ -19543,7 +23567,8 @@
},
"node_modules/which": {
"version": "2.0.2",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dependencies": {
"isexe": "^2.0.0"
},
@@ -19556,8 +23581,9 @@
},
"node_modules/which-boxed-primitive": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.0.tgz",
+ "integrity": "sha512-Ei7Miu/AXe2JJ4iNF5j/UphAgRoma4trE6PtisM09bPygb3egMH3YLW/befsWb1A1AxvNSFidOFTB18XtnIIng==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"is-bigint": "^1.1.0",
@@ -19574,24 +23600,25 @@
}
},
"node_modules/which-builtin-type": {
- "version": "1.2.0",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz",
+ "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bound": "^1.0.2",
"function.prototype.name": "^1.1.6",
"has-tostringtag": "^1.0.2",
"is-async-function": "^2.0.0",
- "is-date-object": "^1.0.5",
+ "is-date-object": "^1.1.0",
"is-finalizationregistry": "^1.1.0",
"is-generator-function": "^1.0.10",
- "is-regex": "^1.1.4",
+ "is-regex": "^1.2.1",
"is-weakref": "^1.0.2",
"isarray": "^2.0.5",
- "which-boxed-primitive": "^1.0.2",
+ "which-boxed-primitive": "^1.1.0",
"which-collection": "^1.0.2",
- "which-typed-array": "^1.1.15"
+ "which-typed-array": "^1.1.16"
},
"engines": {
"node": ">= 0.4"
@@ -19602,8 +23629,9 @@
},
"node_modules/which-collection": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz",
+ "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"is-map": "^2.0.3",
@@ -19620,13 +23648,15 @@
},
"node_modules/which-module": {
"version": "2.0.1",
- "dev": true,
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz",
+ "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==",
+ "dev": true
},
"node_modules/which-typed-array": {
"version": "1.1.16",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.16.tgz",
+ "integrity": "sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"available-typed-arrays": "^1.0.7",
"call-bind": "^1.0.7",
@@ -19641,9 +23671,19 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/wide-align": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
+ "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
+ "optional": true,
+ "dependencies": {
+ "string-width": "^1.0.2 || 2 || 3 || 4"
+ }
+ },
"node_modules/widest-line": {
"version": "3.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
+ "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
"dependencies": {
"string-width": "^4.0.0"
},
@@ -19653,7 +23693,8 @@
},
"node_modules/winston": {
"version": "3.17.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/winston/-/winston-3.17.0.tgz",
+ "integrity": "sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==",
"dependencies": {
"@colors/colors": "^1.6.0",
"@dabh/diagnostics": "^2.0.2",
@@ -19673,7 +23714,8 @@
},
"node_modules/winston-transport": {
"version": "4.9.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.9.0.tgz",
+ "integrity": "sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==",
"dependencies": {
"logform": "^2.7.0",
"readable-stream": "^3.6.2",
@@ -19685,7 +23727,8 @@
},
"node_modules/winston-transport/node_modules/readable-stream": {
"version": "3.6.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"dependencies": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -19697,14 +23740,16 @@
},
"node_modules/winston/node_modules/@colors/colors": {
"version": "1.6.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz",
+ "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==",
"engines": {
"node": ">=0.1.90"
}
},
"node_modules/winston/node_modules/readable-stream": {
"version": "3.6.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"dependencies": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -19716,25 +23761,29 @@
},
"node_modules/wkx": {
"version": "0.5.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/wkx/-/wkx-0.5.0.tgz",
+ "integrity": "sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/word-wrap": {
"version": "1.2.5",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/workerpool": {
"version": "6.5.1",
- "license": "Apache-2.0"
+ "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz",
+ "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA=="
},
"node_modules/wrap-ansi": {
"version": "7.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
@@ -19749,12 +23798,14 @@
},
"node_modules/wrappy": {
"version": "1.0.2",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
},
"node_modules/write-file-atomic": {
"version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
"dev": true,
- "license": "ISC",
"dependencies": {
"imurmurhash": "^0.1.4",
"is-typedarray": "^1.0.0",
@@ -19764,7 +23815,8 @@
},
"node_modules/ws": {
"version": "8.18.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
+ "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
"engines": {
"node": ">=10.0.0"
},
@@ -19783,8 +23835,9 @@
},
"node_modules/xhr": {
"version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz",
+ "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"global": "~4.4.0",
"is-function": "^1.0.1",
@@ -19794,8 +23847,9 @@
},
"node_modules/xhr-request": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz",
+ "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"buffer-to-arraybuffer": "^0.0.5",
"object-assign": "^4.1.1",
@@ -19808,16 +23862,18 @@
},
"node_modules/xhr-request-promise": {
"version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz",
+ "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"xhr-request": "^1.1.0"
}
},
"node_modules/xhr-request/node_modules/decompress-response": {
"version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"mimic-response": "^1.0.0"
},
@@ -19827,16 +23883,18 @@
},
"node_modules/xhr-request/node_modules/mimic-response": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/xhr-request/node_modules/simple-get": {
"version": "2.8.2",
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz",
+ "integrity": "sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"decompress-response": "^3.3.0",
"once": "^1.3.1",
@@ -19845,12 +23903,14 @@
},
"node_modules/xml-name-validator": {
"version": "3.0.0",
- "dev": true,
- "license": "Apache-2.0"
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
+ "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==",
+ "dev": true
},
"node_modules/xml2js": {
"version": "0.5.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz",
+ "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==",
"dependencies": {
"sax": ">=0.6.0",
"xmlbuilder": "~11.0.0"
@@ -19861,65 +23921,75 @@
},
"node_modules/xml2js/node_modules/xmlbuilder": {
"version": "11.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
+ "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
"engines": {
"node": ">=4.0"
}
},
"node_modules/xmlbuilder": {
"version": "15.1.1",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz",
+ "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=8.0"
}
},
"node_modules/xmlchars": {
"version": "2.2.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
+ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="
},
"node_modules/xsalsa20": {
"version": "1.2.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.2.0.tgz",
+ "integrity": "sha512-FIr/DEeoHfj7ftfylnoFt3rAIRoWXpx2AoDfrT2qD2wtp7Dp+COajvs/Icb7uHqRW9m60f5iXZwdsJJO3kvb7w=="
},
"node_modules/xtend": {
"version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.4"
}
},
"node_modules/y18n": {
"version": "5.0.8",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
"engines": {
"node": ">=10"
}
},
"node_modules/yaeti": {
"version": "0.0.6",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz",
+ "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==",
"engines": {
"node": ">=0.10.32"
}
},
"node_modules/yallist": {
"version": "3.1.1",
- "dev": true,
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true
},
"node_modules/yaml": {
"version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
"dev": true,
- "license": "ISC",
"engines": {
"node": ">= 6"
}
},
"node_modules/yargs": {
"version": "17.7.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
"dependencies": {
"cliui": "^8.0.1",
"escalade": "^3.1.1",
@@ -19935,14 +24005,16 @@
},
"node_modules/yargs-parser": {
"version": "20.2.9",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
"engines": {
"node": ">=10"
}
},
"node_modules/yargs-unparser": {
"version": "2.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
+ "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
"dependencies": {
"camelcase": "^6.0.0",
"decamelize": "^4.0.0",
@@ -19955,7 +24027,8 @@
},
"node_modules/yargs-unparser/node_modules/decamelize": {
"version": "4.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
+ "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
"engines": {
"node": ">=10"
},
@@ -19965,21 +24038,24 @@
},
"node_modules/yargs/node_modules/yargs-parser": {
"version": "21.1.1",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
"engines": {
"node": ">=12"
}
},
"node_modules/yn": {
"version": "3.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
+ "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
"engines": {
"node": ">=6"
}
},
"node_modules/yocto-queue": {
"version": "0.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
"engines": {
"node": ">=10"
},
@@ -19989,8 +24065,9 @@
},
"node_modules/yup": {
"version": "0.32.11",
+ "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.11.tgz",
+ "integrity": "sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.15.4",
"@types/lodash": "^4.14.175",
@@ -20004,9 +24081,26 @@
"node": ">=10"
}
},
+ "node_modules/zksync-ethers": {
+ "version": "5.10.0",
+ "resolved": "https://registry.npmjs.org/zksync-ethers/-/zksync-ethers-5.10.0.tgz",
+ "integrity": "sha512-OAjTGAHF9wbdkRGkj7XZuF/a1Sk/FVbwH4pmLjAKlR7mJ7sQtQhBhrPU2dCc67xLaNvEESPfwil19ES5wooYFg==",
+ "dependencies": {
+ "ethers": "~5.7.0"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ },
+ "peerDependencies": {
+ "ethers": "~5.7.0"
+ }
+ },
"node_modules/zksync-web3": {
"version": "0.14.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/zksync-web3/-/zksync-web3-0.14.4.tgz",
+ "integrity": "sha512-kYehMD/S6Uhe1g434UnaMN+sBr9nQm23Ywn0EUP5BfQCsbjcr3ORuS68PosZw8xUTu3pac7G6YMSnNHk+fwzvg==",
+ "deprecated": "This package has been deprecated in favor of zksync-ethers@5.0.0",
+ "dev": true,
"peerDependencies": {
"ethers": "^5.7.0"
}
@@ -20015,10 +24109,13 @@
"dependencies": {
"@adraffy/ens-normalize": {
"version": "1.10.1",
- "dev": true
+ "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz",
+ "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw=="
},
"@ampproject/remapping": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
+ "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
"dev": true,
"requires": {
"@jridgewell/gen-mapping": "^0.3.5",
@@ -20027,6 +24124,8 @@
},
"@babel/code-frame": {
"version": "7.26.2",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
+ "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
"dev": true,
"requires": {
"@babel/helper-validator-identifier": "^7.25.9",
@@ -20036,10 +24135,14 @@
},
"@babel/compat-data": {
"version": "7.26.3",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.3.tgz",
+ "integrity": "sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==",
"dev": true
},
"@babel/core": {
"version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz",
+ "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==",
"dev": true,
"requires": {
"@ampproject/remapping": "^2.2.0",
@@ -20061,16 +24164,22 @@
"dependencies": {
"convert-source-map": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
"dev": true
},
"semver": {
"version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true
}
}
},
"@babel/generator": {
"version": "7.26.3",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz",
+ "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==",
"dev": true,
"requires": {
"@babel/parser": "^7.26.3",
@@ -20082,6 +24191,8 @@
},
"@babel/helper-compilation-targets": {
"version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz",
+ "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==",
"dev": true,
"requires": {
"@babel/compat-data": "^7.25.9",
@@ -20093,6 +24204,8 @@
"dependencies": {
"lru-cache": {
"version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
"dev": true,
"requires": {
"yallist": "^3.0.2"
@@ -20100,12 +24213,16 @@
},
"semver": {
"version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true
}
}
},
"@babel/helper-module-imports": {
"version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz",
+ "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==",
"dev": true,
"requires": {
"@babel/traverse": "^7.25.9",
@@ -20114,6 +24231,8 @@
},
"@babel/helper-module-transforms": {
"version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz",
+ "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==",
"dev": true,
"requires": {
"@babel/helper-module-imports": "^7.25.9",
@@ -20123,18 +24242,26 @@
},
"@babel/helper-string-parser": {
"version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
+ "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
"dev": true
},
"@babel/helper-validator-identifier": {
"version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
+ "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
"dev": true
},
"@babel/helper-validator-option": {
"version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz",
+ "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==",
"dev": true
},
"@babel/helpers": {
"version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz",
+ "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==",
"dev": true,
"requires": {
"@babel/template": "^7.25.9",
@@ -20143,6 +24270,8 @@
},
"@babel/parser": {
"version": "7.26.3",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz",
+ "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==",
"dev": true,
"requires": {
"@babel/types": "^7.26.3"
@@ -20150,12 +24279,16 @@
},
"@babel/runtime": {
"version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz",
+ "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==",
"requires": {
"regenerator-runtime": "^0.14.0"
}
},
"@babel/template": {
"version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz",
+ "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.25.9",
@@ -20165,6 +24298,8 @@
},
"@babel/traverse": {
"version": "7.26.4",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.4.tgz",
+ "integrity": "sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.26.2",
@@ -20178,12 +24313,16 @@
"dependencies": {
"globals": {
"version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
"dev": true
}
}
},
"@babel/types": {
"version": "7.26.3",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz",
+ "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==",
"dev": true,
"requires": {
"@babel/helper-string-parser": "^7.25.9",
@@ -20192,17 +24331,23 @@
},
"@bergos/jsonparse": {
"version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@bergos/jsonparse/-/jsonparse-1.4.2.tgz",
+ "integrity": "sha512-qUt0QNJjvg4s1zk+AuLM6s/zcsQ8MvGn7+1f0vPuxvpCYa08YtTryuDInngbEyW5fNGGYe2znKt61RMGd5HnXg==",
"requires": {
"buffer": "^6.0.3"
}
},
"@colors/colors": {
"version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
+ "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
"dev": true,
"optional": true
},
"@comunica/actor-abstract-mediatyped": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-abstract-mediatyped/-/actor-abstract-mediatyped-2.10.0.tgz",
+ "integrity": "sha512-0o6WBujsMnIVcwvRJv6Nj+kKPLZzqBS3On48rm01Rh9T1/My0E/buJMXwgcARKCfMonc2mJ9zxpPCh5ilGEU2A==",
"requires": {
"@comunica/core": "^2.10.0",
"@comunica/types": "^2.10.0"
@@ -20210,6 +24355,8 @@
},
"@comunica/actor-abstract-parse": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-abstract-parse/-/actor-abstract-parse-2.10.0.tgz",
+ "integrity": "sha512-0puCWF+y24EDOOAUUVVbC+tOf4UV+LzEbqi8T5v25jcVGCXyTqfra+bDywfrcv3adrVp18jLCJ46ycaH5xhy9Q==",
"requires": {
"@comunica/core": "^2.10.0",
"readable-stream": "^4.4.2"
@@ -20217,6 +24364,8 @@
},
"@comunica/actor-abstract-path": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-abstract-path/-/actor-abstract-path-2.10.1.tgz",
+ "integrity": "sha512-+k1ltuUuIyn4iUm5oRMObyt2zhu68h7ymzxuKU4ezATlgwfwj6EM7/3W2n2/gxjg9tcFMr5GC6aNnFQmq3Iuig==",
"requires": {
"@comunica/bindings-factory": "^2.10.1",
"@comunica/bus-query-operation": "^2.10.1",
@@ -20232,6 +24381,8 @@
},
"@comunica/actor-context-preprocess-source-to-destination": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-context-preprocess-source-to-destination/-/actor-context-preprocess-source-to-destination-2.10.0.tgz",
+ "integrity": "sha512-sQc42Sd4cuVumZ9+PDnWBTBYneqCFShFliK8Et83GR3wBGzu9x0tS/M2o3e63sBbb6ZkWHyO5jl/O8AbrjhcTg==",
"requires": {
"@comunica/bus-context-preprocess": "^2.10.0",
"@comunica/context-entries": "^2.10.0",
@@ -20241,6 +24392,8 @@
},
"@comunica/actor-dereference-fallback": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-dereference-fallback/-/actor-dereference-fallback-2.10.0.tgz",
+ "integrity": "sha512-RSc/ScPdC7l13aZjz/6r4niWA8WDETbzuESQKKSWXi/HAlFOyOxdrDADdayVY2oyeZHIQibeNRtSi2ItzU7OPQ==",
"requires": {
"@comunica/bus-dereference": "^2.10.0",
"@comunica/core": "^2.10.0"
@@ -20248,6 +24401,8 @@
},
"@comunica/actor-dereference-http": {
"version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-dereference-http/-/actor-dereference-http-2.10.2.tgz",
+ "integrity": "sha512-gdDo83W1TAgD2jx0kVbzZKzzt++L4Y4fbyTOH3duy6vx1EMGGZlNCp6I1uguepKEjNX4N0zhAcZzdJcv8A3XMA==",
"requires": {
"@comunica/bus-dereference": "^2.10.0",
"@comunica/bus-http": "^2.10.2",
@@ -20259,6 +24414,8 @@
},
"@comunica/actor-dereference-rdf-parse": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-dereference-rdf-parse/-/actor-dereference-rdf-parse-2.10.0.tgz",
+ "integrity": "sha512-ANWL6Bv+2WHUjVRS7hfkOfVBNJs8xYZ9KHlgBOQ94CKtQZB9uSMjdb1hLp/cQjiDmFIWLn0+GM5Xi0KFwBkVAw==",
"requires": {
"@comunica/bus-dereference": "^2.10.0",
"@comunica/bus-dereference-rdf": "^2.10.0",
@@ -20267,6 +24424,8 @@
},
"@comunica/actor-hash-bindings-sha1": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-hash-bindings-sha1/-/actor-hash-bindings-sha1-2.10.0.tgz",
+ "integrity": "sha512-f981PcCiDWbdZfM1ct1v1q/VII14y18lo1enEdHB25SF0hCkzIDwh9IrfDfJDju5I6luSWNE/MYMMeAAmF9e3g==",
"requires": {
"@comunica/bus-hash-bindings": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -20277,6 +24436,8 @@
},
"@comunica/actor-http-fetch": {
"version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-http-fetch/-/actor-http-fetch-2.10.2.tgz",
+ "integrity": "sha512-siHGx0TMVNb2gXvOroq0B3JE6uuS+4s+MsDkntqdBNVigwVYqLpNSKEaL5is8pputFfohJfDQY06lAHbfDNEcw==",
"requires": {
"@comunica/bus-http": "^2.10.2",
"@comunica/context-entries": "^2.10.0",
@@ -20287,6 +24448,8 @@
},
"@comunica/actor-http-proxy": {
"version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-http-proxy/-/actor-http-proxy-2.10.2.tgz",
+ "integrity": "sha512-3yUF8BCh4nwq8J6NRILEsyNrQNStkE9ggJ7hYwRfA1XcMgz1pANNaWJ2P2TEKH1jNinr23bL3JeuUZCm9Kz9dA==",
"requires": {
"@comunica/bus-http": "^2.10.2",
"@comunica/context-entries": "^2.10.0",
@@ -20296,6 +24459,8 @@
},
"@comunica/actor-http-wayback": {
"version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-http-wayback/-/actor-http-wayback-2.10.2.tgz",
+ "integrity": "sha512-wjYNXRrJvMqt9paO3HawyM+O5/14ofSHFuMAwGr/UyZQ5pCSFkY0YPd+qp9y8C4xvypPgsvT3PtiRyKgjD4FWw==",
"requires": {
"@comunica/bus-http": "^2.10.2",
"@comunica/context-entries": "^2.10.0",
@@ -20306,6 +24471,8 @@
},
"@comunica/actor-init-query": {
"version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-init-query/-/actor-init-query-2.10.2.tgz",
+ "integrity": "sha512-7A4bXdKCjXRdUThvMOOyg+U17DPeBAsyDYz1SA8F4lPUR06NapcG5TmZF+YWUTN/2EG5fZPUnD3etKuPXreGUw==",
"requires": {
"@comunica/actor-http-proxy": "^2.10.2",
"@comunica/bus-context-preprocess": "^2.10.0",
@@ -20334,6 +24501,8 @@
},
"@comunica/actor-optimize-query-operation-bgp-to-join": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-optimize-query-operation-bgp-to-join/-/actor-optimize-query-operation-bgp-to-join-2.10.0.tgz",
+ "integrity": "sha512-M9vwM4a3VQA/ir8Q7eGRNzzx52u6RJFIXBW8p+Zkn+zv+4fsket3zLYJGhJU7dcvaSXcOi68rDP/r8KfgNXr4Q==",
"requires": {
"@comunica/bus-optimize-query-operation": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -20342,6 +24511,8 @@
},
"@comunica/actor-optimize-query-operation-join-bgp": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-optimize-query-operation-join-bgp/-/actor-optimize-query-operation-join-bgp-2.10.0.tgz",
+ "integrity": "sha512-tzZojWPbWn/S0DZGjGfV90ZRJVWT/yX3DKGgZ1ur33U5TW8n/fBQxHNMPCLu0GkMQ1dyx6bU+ekILTqm+21Jyw==",
"requires": {
"@comunica/bus-optimize-query-operation": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -20350,6 +24521,8 @@
},
"@comunica/actor-optimize-query-operation-join-connected": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-optimize-query-operation-join-connected/-/actor-optimize-query-operation-join-connected-2.10.0.tgz",
+ "integrity": "sha512-RsbKIAxX1HyoR/AUzqIV++dTcLiEElRIVDHYTaXVVvGgHECYdh9s+oc8cvv/lDbLVpfnc6P9C9BTAfrqOjKkhA==",
"requires": {
"@comunica/bus-optimize-query-operation": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -20358,6 +24531,8 @@
},
"@comunica/actor-query-operation-ask": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-ask/-/actor-query-operation-ask-2.10.1.tgz",
+ "integrity": "sha512-7oktqE4fkMhi6Hs9XCcwwoZRsEismVqJZ5wp9lXXOPaxnHEiFyj5gb/B6baCstoCvCt6LcU8fVvfHSitbFCpeQ==",
"requires": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/core": "^2.10.0",
@@ -20367,6 +24542,8 @@
},
"@comunica/actor-query-operation-bgp-join": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-bgp-join/-/actor-query-operation-bgp-join-2.10.1.tgz",
+ "integrity": "sha512-eNpnvgFyKlZEHkMzubYL8ndADSsAQH4rwXvh22CGnf0FwyndHr6TEpmE6j77m9vXiSJ/lda0U3Zv4vIXvtREOw==",
"requires": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/core": "^2.10.0",
@@ -20376,6 +24553,8 @@
},
"@comunica/actor-query-operation-construct": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-construct/-/actor-query-operation-construct-2.10.1.tgz",
+ "integrity": "sha512-S+Nt1+1psv01QRnfytZjiog2NBNHIbjr7XIv+MO3p6aVmLCoZ6lmjxSGNdbX+EmcGr7tbbafXK5z3zRM+ke8Mw==",
"requires": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/core": "^2.10.0",
@@ -20389,6 +24568,8 @@
},
"@comunica/actor-query-operation-describe-subject": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-describe-subject/-/actor-query-operation-describe-subject-2.10.1.tgz",
+ "integrity": "sha512-E8i0M6haJ5iZVeHMn5PbvA4G+l87mcZKqIxVpYAnJVpD667F74Dkx3IMbk+ohRmyRmnkOEmztUrjeyixHHzUEQ==",
"requires": {
"@comunica/actor-query-operation-union": "^2.10.1",
"@comunica/bus-query-operation": "^2.10.1",
@@ -20401,6 +24582,8 @@
},
"@comunica/actor-query-operation-distinct-hash": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-distinct-hash/-/actor-query-operation-distinct-hash-2.10.1.tgz",
+ "integrity": "sha512-exvJbgcJ0Pe4EGbLJD5LuGpvaGcFeckCxwB5pyd9OewNke+tLLP7nbEjB8KFEPpCO9LE7zt4faB1HvpJdEHQKQ==",
"requires": {
"@comunica/bus-hash-bindings": "^2.10.0",
"@comunica/bus-query-operation": "^2.10.1",
@@ -20411,6 +24594,8 @@
},
"@comunica/actor-query-operation-extend": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-extend/-/actor-query-operation-extend-2.10.1.tgz",
+ "integrity": "sha512-wkZxUfDu8T5lXD+OFLItmjjbnEBqtv0z8pxVKgI/gX8mOeu5KcPWLH0dJODTWoIzIYrJhV25FmCgBks1rt6K8w==",
"requires": {
"@comunica/bindings-factory": "^2.10.1",
"@comunica/bus-query-operation": "^2.10.1",
@@ -20422,6 +24607,8 @@
},
"@comunica/actor-query-operation-filter-sparqlee": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-filter-sparqlee/-/actor-query-operation-filter-sparqlee-2.10.1.tgz",
+ "integrity": "sha512-w2PnDNnlf+9B947ZdeSs7NpW9qGJjRiuODZYwhh0e6cx89GPDhEDVuJwawF6VP3m/oLcgXOAdif0Wwo3d8KNAA==",
"requires": {
"@comunica/bindings-factory": "^2.10.1",
"@comunica/bus-query-operation": "^2.10.1",
@@ -20433,6 +24620,8 @@
},
"@comunica/actor-query-operation-from-quad": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-from-quad/-/actor-query-operation-from-quad-2.10.1.tgz",
+ "integrity": "sha512-7D4R8ONNJJPzoRu96dwIToOEk6/3O/T26FRzCqQKrbjFHNkX2v92KA/SiDzNz59VmDNWjYF1rsV31Ade6J89MA==",
"requires": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/core": "^2.10.0",
@@ -20443,6 +24632,8 @@
},
"@comunica/actor-query-operation-group": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-group/-/actor-query-operation-group-2.10.1.tgz",
+ "integrity": "sha512-Od5s9Vb6uDPzXa6OAUC1WSMF96spNPJI2Zqf0Ixejw4zCNevOK/VwHivYfF0vHIUZxjRrOl3Al1ZU9L8n5Wxlw==",
"requires": {
"@comunica/bindings-factory": "^2.10.1",
"@comunica/bus-hash-bindings": "^2.10.0",
@@ -20458,6 +24649,8 @@
},
"@comunica/actor-query-operation-join": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-join/-/actor-query-operation-join-2.10.1.tgz",
+ "integrity": "sha512-CGed1nSPvKsM8rvj/4KFME0lLnzlDMMEU+xGczu+BZW4FK+Z6RyBtHIUmy8SgFvNP1GXz83q8KnoecF5z8IpjA==",
"requires": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/bus-rdf-join": "^2.10.1",
@@ -20468,6 +24661,8 @@
},
"@comunica/actor-query-operation-leftjoin": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-leftjoin/-/actor-query-operation-leftjoin-2.10.1.tgz",
+ "integrity": "sha512-j0RwdoiV2WsCQnxcSa//m5FZ+ZHDRBm6ObsgpqS44WxzpV8rIB6Dq/3UxGgE7D2vK400JaiiHa3dFiHTwDF18w==",
"requires": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/bus-rdf-join": "^2.10.1",
@@ -20479,6 +24674,8 @@
},
"@comunica/actor-query-operation-minus": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-minus/-/actor-query-operation-minus-2.10.1.tgz",
+ "integrity": "sha512-rUvHbc5/EUWMSJUgOEtxabCJ9IT9YThuG0FhcQk+BGRPGmsv2oz8uri5urKgCjfVXMH/09hRZksiDMqrmkQmZw==",
"requires": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/bus-rdf-join": "^2.10.1",
@@ -20489,6 +24686,8 @@
},
"@comunica/actor-query-operation-nop": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-nop/-/actor-query-operation-nop-2.10.1.tgz",
+ "integrity": "sha512-l/Z8Uuoq3AlSoxkgYjrP7O7Xc9h8Y3ZOh0f7UKCuAST3U5vPQ3k1YJckrRtdli8s0NHptN9TfZjwviEHuYbDFQ==",
"requires": {
"@comunica/bindings-factory": "^2.10.1",
"@comunica/bus-query-operation": "^2.10.1",
@@ -20501,6 +24700,8 @@
},
"@comunica/actor-query-operation-orderby-sparqlee": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-orderby-sparqlee/-/actor-query-operation-orderby-sparqlee-2.10.1.tgz",
+ "integrity": "sha512-8D2JmCsBtqJC29zfiaAXNzZdsKybhDFo2F8iTHul3nQHxBC2CeKDrBnY70B/HpbWxkDE+pwMfSTEFc/CvNZN6A==",
"requires": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/core": "^2.10.0",
@@ -20512,6 +24713,8 @@
},
"@comunica/actor-query-operation-path-alt": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-path-alt/-/actor-query-operation-path-alt-2.10.1.tgz",
+ "integrity": "sha512-y1AHtkibThqHve79wAriXqrZ6hdLBhcdwyOpVqqEhY19a32P97Xv58bOwOkNeLguYdn/5CFlCTHz6dnzxUIoXg==",
"requires": {
"@comunica/actor-abstract-path": "^2.10.1",
"@comunica/actor-query-operation-union": "^2.10.1",
@@ -20523,6 +24726,8 @@
},
"@comunica/actor-query-operation-path-inv": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-path-inv/-/actor-query-operation-path-inv-2.10.1.tgz",
+ "integrity": "sha512-pd30Ug7bOAZ5amfA3I6v+cpitlDn2i5fE1BA006LYJISCAHSfKEgLmU2Q4ZPbwi4s1A8WKKLV7Q389Ru3Xtziw==",
"requires": {
"@comunica/actor-abstract-path": "^2.10.1",
"@comunica/bus-query-operation": "^2.10.1",
@@ -20532,6 +24737,8 @@
},
"@comunica/actor-query-operation-path-link": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-path-link/-/actor-query-operation-path-link-2.10.1.tgz",
+ "integrity": "sha512-akujCHvCLmxaZ3gw9b1odDcqqAQnbbr9E8dTWLZyMJ4Mei8q/FmfWTF5MjGuQOas4UmQ3mm6gcqAKRZnJqlXNg==",
"requires": {
"@comunica/actor-abstract-path": "^2.10.1",
"@comunica/bus-query-operation": "^2.10.1",
@@ -20541,6 +24748,8 @@
},
"@comunica/actor-query-operation-path-nps": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-path-nps/-/actor-query-operation-path-nps-2.10.1.tgz",
+ "integrity": "sha512-5X3EUzn6Cygz94gNn1XWQQUZVp+de59sw8/rxPQqgwzdi1Y1O9zrLv+/7GqMJoLz6MHmDSgsceTIY4eC1qmmOQ==",
"requires": {
"@comunica/actor-abstract-path": "^2.10.1",
"@comunica/bus-query-operation": "^2.10.1",
@@ -20550,6 +24759,8 @@
},
"@comunica/actor-query-operation-path-one-or-more": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-path-one-or-more/-/actor-query-operation-path-one-or-more-2.10.1.tgz",
+ "integrity": "sha512-SkQeKESQqZOlzuMIsipcZ3ni7YfeyYMZCOtxC01HFbeyq+SDVbyfYUZ4Dd9uAi/g3InyzJRfou4csxHS8g7sHw==",
"requires": {
"@comunica/actor-abstract-path": "^2.10.1",
"@comunica/bindings-factory": "^2.10.1",
@@ -20561,6 +24772,8 @@
},
"@comunica/actor-query-operation-path-seq": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-path-seq/-/actor-query-operation-path-seq-2.10.1.tgz",
+ "integrity": "sha512-8TYLdVYaq9oMd9cuLFay78103bOfvygQU/C8NtPdLI9kkRWFsBatvaKmykHOHQAvaLgNhniOlrIJNEpepZGnAQ==",
"requires": {
"@comunica/actor-abstract-path": "^2.10.1",
"@comunica/bus-query-operation": "^2.10.1",
@@ -20571,6 +24784,8 @@
},
"@comunica/actor-query-operation-path-zero-or-more": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-path-zero-or-more/-/actor-query-operation-path-zero-or-more-2.10.1.tgz",
+ "integrity": "sha512-DtqBSw4LV1KI3q1YYAwgXlWrz1PO4EUpe/bVri0UB3JSQnxjBMHuJlHn2crC9Z93tmizneXxfvtWlLSXRrehsw==",
"requires": {
"@comunica/actor-abstract-path": "^2.10.1",
"@comunica/bindings-factory": "^2.10.1",
@@ -20583,6 +24798,8 @@
},
"@comunica/actor-query-operation-path-zero-or-one": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-path-zero-or-one/-/actor-query-operation-path-zero-or-one-2.10.1.tgz",
+ "integrity": "sha512-qePX+7iW5DXDwaYO210y7jhSU32Zk82S5UHuLLvd4q4HS1Z7j8e4KhukbeZKzQmOsO8S5JOHHM9vwvsOc3GPlw==",
"requires": {
"@comunica/actor-abstract-path": "^2.10.1",
"@comunica/bindings-factory": "^2.10.1",
@@ -20595,6 +24812,8 @@
},
"@comunica/actor-query-operation-project": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-project/-/actor-query-operation-project-2.10.1.tgz",
+ "integrity": "sha512-KAaPl4GFIQMWR8I8OoJroktGssPKGbEEJHyGzTuYXrmJrcXgknOxf5IUSVJNpaFfS6dshT6nqW+ciT+wRzz0Tg==",
"requires": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/core": "^2.10.0",
@@ -20607,6 +24826,8 @@
},
"@comunica/actor-query-operation-quadpattern": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-quadpattern/-/actor-query-operation-quadpattern-2.10.1.tgz",
+ "integrity": "sha512-RZj1TXW+VDU4aYJVnSzgs8q0340e+YUeGLtoY9sl0Xzc8YNaIus4nXRUz/KfOXDknxm1q+a4Bof4yHNgXtb1Hw==",
"requires": {
"@comunica/bindings-factory": "^2.10.1",
"@comunica/bus-query-operation": "^2.10.1",
@@ -20624,6 +24845,8 @@
},
"@comunica/actor-query-operation-reduced-hash": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-reduced-hash/-/actor-query-operation-reduced-hash-2.10.1.tgz",
+ "integrity": "sha512-9hX25ztkbNxnaUd7Gtilok+9WJkr/s3a3y4axLoYX4/nOogYN+nZRKChvNSn4qn/lWvpG5VWv4+q0en1fP+AGA==",
"requires": {
"@comunica/bus-hash-bindings": "^2.10.0",
"@comunica/bus-query-operation": "^2.10.1",
@@ -20635,6 +24858,8 @@
},
"@comunica/actor-query-operation-service": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-service/-/actor-query-operation-service-2.10.1.tgz",
+ "integrity": "sha512-GvpvhUmhkVFOCLrmcblgIPqi91XPRog5WkC9NFMRCToaSNAMQq82DX2dvwzn3IFItcmyZrmy+GYoaQ9miK2uVQ==",
"requires": {
"@comunica/bindings-factory": "^2.10.1",
"@comunica/bus-query-operation": "^2.10.1",
@@ -20648,6 +24873,8 @@
},
"@comunica/actor-query-operation-slice": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-slice/-/actor-query-operation-slice-2.10.1.tgz",
+ "integrity": "sha512-KOBnTIUvwf28WB7oHevUC/xciEdH5gLg7MN8DvamkAkUiUjviEsRpkswUiD8lFe1dAs0ekA4pC0NoZ8BWp3uqA==",
"requires": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/context-entries": "^2.10.0",
@@ -20658,6 +24885,8 @@
},
"@comunica/actor-query-operation-sparql-endpoint": {
"version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-sparql-endpoint/-/actor-query-operation-sparql-endpoint-2.10.2.tgz",
+ "integrity": "sha512-nbBzVHhYHUu/9qg9ZzTw7rKvsRb3ViBvM+Fye0oMXojZUbyu2WI6eLFUc2Ze1/LYDNf/1KHNpkg6OdsiEi8HFQ==",
"requires": {
"@comunica/bindings-factory": "^2.10.1",
"@comunica/bus-http": "^2.10.2",
@@ -20678,6 +24907,8 @@
},
"@comunica/actor-query-operation-union": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-union/-/actor-query-operation-union-2.10.1.tgz",
+ "integrity": "sha512-Ezi2bAa9r6yyffXDDUPLlKoszsXnuhDUeQSQuU3c7JEAcwip3wC3zMNkavowwfRZ/1D5doitmUEdw2lAd+xloA==",
"requires": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/core": "^2.10.0",
@@ -20691,6 +24922,8 @@
},
"@comunica/actor-query-operation-update-add-rewrite": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-update-add-rewrite/-/actor-query-operation-update-add-rewrite-2.10.1.tgz",
+ "integrity": "sha512-is3mrCPciExrlny5JbCvB011kUNYE9/fzQc/zmA3h24S5hHZbygA9mSS+dI85IwwqdKPYlrEqfn8c0kCVWMKyw==",
"requires": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/core": "^2.10.0",
@@ -20701,6 +24934,8 @@
},
"@comunica/actor-query-operation-update-clear": {
"version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-update-clear/-/actor-query-operation-update-clear-2.10.2.tgz",
+ "integrity": "sha512-+sf6+LvXdKBv2pCuBH/ad5QdpheZSPEvw19UoaPQRQyQVBzIskOtfs4rwJHSn/YmoqhbstKZszakad3oxWwTTg==",
"requires": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/bus-rdf-update-quads": "^2.10.2",
@@ -20713,6 +24948,8 @@
},
"@comunica/actor-query-operation-update-compositeupdate": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-update-compositeupdate/-/actor-query-operation-update-compositeupdate-2.10.1.tgz",
+ "integrity": "sha512-IVNouBPFQLOczhW3qHyEoyxWrc7wnVT2vPwRHEaGlfnSiYAX42XSNLb9jR0XjB70wh3Civue4Ovs3upOXdrN3Q==",
"requires": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/core": "^2.10.0",
@@ -20722,6 +24959,8 @@
},
"@comunica/actor-query-operation-update-copy-rewrite": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-update-copy-rewrite/-/actor-query-operation-update-copy-rewrite-2.10.1.tgz",
+ "integrity": "sha512-l/3AM35hjahyHmiLoB3FPm0Jlhdmd/vqgOGj7V3Ra+TfHo5h8XOB3uzG78Q06HQNw4iyONBZc5lLlYXkzRd5lg==",
"requires": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/core": "^2.10.0",
@@ -20731,6 +24970,8 @@
},
"@comunica/actor-query-operation-update-create": {
"version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-update-create/-/actor-query-operation-update-create-2.10.2.tgz",
+ "integrity": "sha512-g3DwLkYFTU8uZoIOV7oNPWStBmqvnBBPvLngG19MQQezuVoh8w88efxhbN0B/khi5/v4qcLsr7C0ffAaPF8Fbg==",
"requires": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/bus-rdf-update-quads": "^2.10.2",
@@ -20741,6 +24982,8 @@
},
"@comunica/actor-query-operation-update-deleteinsert": {
"version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-update-deleteinsert/-/actor-query-operation-update-deleteinsert-2.10.2.tgz",
+ "integrity": "sha512-FiRCLUAxkDoFpOe9jKC5llI7njbFdb1N8McRvZjBazUS4XDutjTZEkcKLs6AcRyG3esfHt6gNm6PqCuZ+aP8TA==",
"requires": {
"@comunica/actor-query-operation-construct": "^2.10.1",
"@comunica/bindings-factory": "^2.10.1",
@@ -20755,6 +24998,8 @@
},
"@comunica/actor-query-operation-update-drop": {
"version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-update-drop/-/actor-query-operation-update-drop-2.10.2.tgz",
+ "integrity": "sha512-N/878InwoyQfysjCyo9r+H82eUlNeEGODJ95gCvzF/QGRc11N3dfcd3XijyHQ9OKAoQ9oR5gcS829LB3BDtKHg==",
"requires": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/bus-rdf-update-quads": "^2.10.2",
@@ -20767,6 +25012,8 @@
},
"@comunica/actor-query-operation-update-load": {
"version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-update-load/-/actor-query-operation-update-load-2.10.2.tgz",
+ "integrity": "sha512-lQb5fxb1+ZFbQkylmepze+e+LtVmVNvAvFBvjxUSfCT62uIKKHMeh1So5kTrGD0Co4ABCs1h6o9WB+8yQzFtQw==",
"requires": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/bus-rdf-update-quads": "^2.10.2",
@@ -20779,6 +25026,8 @@
},
"@comunica/actor-query-operation-update-move-rewrite": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-update-move-rewrite/-/actor-query-operation-update-move-rewrite-2.10.1.tgz",
+ "integrity": "sha512-GDLSHG2++EAAyUKhDu+mM6QfMTuzM8dS24HqeQL5Wzbkdc2KTmNKyJuhJw6SfXr6EiF/kxf1GPY6zwjcwACx/w==",
"requires": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/core": "^2.10.0",
@@ -20788,6 +25037,8 @@
},
"@comunica/actor-query-operation-values": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-values/-/actor-query-operation-values-2.10.1.tgz",
+ "integrity": "sha512-++9IgCVCQPIF8fzZLmrVpxPj8eI9TvkLshHAugQQBnhSijrDMUudW9eoA+eFmCaD/Ru7YtlKe3OJzRGV8FCG+Q==",
"requires": {
"@comunica/bindings-factory": "^2.10.1",
"@comunica/bus-query-operation": "^2.10.1",
@@ -20801,6 +25052,8 @@
},
"@comunica/actor-query-parse-graphql": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-parse-graphql/-/actor-query-parse-graphql-2.10.0.tgz",
+ "integrity": "sha512-l3RrkxElDYV4weXt3vpC0Q0She4AhbvPbPDronQulgN9nFAZhz4z9k8800T5uWMsL98wHNNXDFlnFk5S38lsow==",
"requires": {
"@comunica/bus-query-parse": "^2.10.0",
"@comunica/context-entries": "^2.10.0",
@@ -20810,6 +25063,8 @@
},
"@comunica/actor-query-parse-sparql": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-parse-sparql/-/actor-query-parse-sparql-2.10.0.tgz",
+ "integrity": "sha512-DUVAuSSNn0AyvLruOpRpLZBsr96Q4LuV1gcO+alKZALtfOZikRKY/3sXz1NUkaRQc7qDH9xFFTFrfJd0jLvlDA==",
"requires": {
"@comunica/bus-query-parse": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -20820,6 +25075,8 @@
},
"@comunica/actor-query-result-serialize-json": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-result-serialize-json/-/actor-query-result-serialize-json-2.10.0.tgz",
+ "integrity": "sha512-GuVcsOEhKgnVPT0AaCn8sJl/Uj5UUjUktEJpuMx1UAYt0//jcQsezJslYWmJrfXE/WJYidynyDxm8z3+jwLF7A==",
"requires": {
"@comunica/bus-query-result-serialize": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -20829,6 +25086,8 @@
},
"@comunica/actor-query-result-serialize-rdf": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-result-serialize-rdf/-/actor-query-result-serialize-rdf-2.10.0.tgz",
+ "integrity": "sha512-TBXJrDs5brRMFg8UisXS/F1vJw8nUtLhjugNZcd4ST8J965Ho1aNopydp4PMmwINMRxHhHtWJGwIB2Z5xD2lDw==",
"requires": {
"@comunica/bus-query-result-serialize": "^2.10.0",
"@comunica/bus-rdf-serialize": "^2.10.0",
@@ -20838,6 +25097,8 @@
},
"@comunica/actor-query-result-serialize-simple": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-result-serialize-simple/-/actor-query-result-serialize-simple-2.10.0.tgz",
+ "integrity": "sha512-pS7+aB9Rym1B5oi+O68NFjEq+EwpCRYtTIxGBp39CTQ0F7m4edt9QwqmARqveJPryK5X66ACvjxvutEaTgWI8w==",
"requires": {
"@comunica/bus-query-result-serialize": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -20848,6 +25109,8 @@
},
"@comunica/actor-query-result-serialize-sparql-csv": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-result-serialize-sparql-csv/-/actor-query-result-serialize-sparql-csv-2.10.0.tgz",
+ "integrity": "sha512-Vk+7oTIPigDENK3CnV56vLfvMZVjHc3p2F4a49WDHfMgRrfQKJSQkx603vjW35n3tmUB8JSgRXr/+v7LK83KYQ==",
"requires": {
"@comunica/bus-query-result-serialize": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -20857,6 +25120,8 @@
},
"@comunica/actor-query-result-serialize-sparql-json": {
"version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-result-serialize-sparql-json/-/actor-query-result-serialize-sparql-json-2.10.2.tgz",
+ "integrity": "sha512-+J7SWXc4nXHzmQMk6q8MScrLNKdqX+/xQe6XCk0zDbDAt3/8EJh/2ROYFp4fEQyPDFWOwN4xpALgHRIh8PQRAQ==",
"requires": {
"@comunica/bus-http": "^2.10.2",
"@comunica/bus-http-invalidate": "^2.10.0",
@@ -20869,6 +25134,8 @@
},
"@comunica/actor-query-result-serialize-sparql-tsv": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-result-serialize-sparql-tsv/-/actor-query-result-serialize-sparql-tsv-2.10.0.tgz",
+ "integrity": "sha512-TgA2WIXKdu/SrbHEP8HvGoLjhDOZnBoHsGsLFSHpxY/Uwk21rZqJLBEkhuhkUtGYzQPJ1n6Wmpjz9lBrUHGJPw==",
"requires": {
"@comunica/bus-query-result-serialize": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -20879,6 +25146,8 @@
},
"@comunica/actor-query-result-serialize-sparql-xml": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-result-serialize-sparql-xml/-/actor-query-result-serialize-sparql-xml-2.10.0.tgz",
+ "integrity": "sha512-8RDj5ZN23HnIc6zI5pD5XKi2pyg2cx6DhI7VDRcboi7v0DxfROuQqSEtbQ8m/W6Pngdz01ySogRcIVJCzRzBLQ==",
"requires": {
"@comunica/bus-query-result-serialize": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -20888,6 +25157,8 @@
},
"@comunica/actor-query-result-serialize-stats": {
"version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-result-serialize-stats/-/actor-query-result-serialize-stats-2.10.2.tgz",
+ "integrity": "sha512-jhj/vLDRxLuRMonBaqICt4saM9/UO9wJBT3Jxk7Rp73aQWLo+lILXKzcWpuxkh/EFx8raLUBmbjWCduamU1DzQ==",
"requires": {
"@comunica/bus-http": "^2.10.2",
"@comunica/bus-http-invalidate": "^2.10.0",
@@ -20900,6 +25171,8 @@
},
"@comunica/actor-query-result-serialize-table": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-result-serialize-table/-/actor-query-result-serialize-table-2.10.0.tgz",
+ "integrity": "sha512-AAPrgM/rbsSThRu9jkfJhBUeTUwQTLHNVbIn8El+Akvz+Fueoi6oSi3SslpPMHOvIUiOAgCZ05f2RbBLlhP03g==",
"requires": {
"@comunica/bus-query-result-serialize": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -20912,6 +25185,8 @@
},
"@comunica/actor-query-result-serialize-tree": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-query-result-serialize-tree/-/actor-query-result-serialize-tree-2.10.0.tgz",
+ "integrity": "sha512-sEyIzoSTV11YPY6r4fn6fwrf3WjLD6GrwXMTuevsDAKDYaMYxyriH3T/LMLLBEURy8SLD1I1Fpw/qaZisRmLTg==",
"requires": {
"@comunica/bus-query-result-serialize": "^2.10.0",
"@comunica/context-entries": "^2.10.0",
@@ -20923,6 +25198,8 @@
},
"@comunica/actor-rdf-join-entries-sort-cardinality": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-entries-sort-cardinality/-/actor-rdf-join-entries-sort-cardinality-2.10.0.tgz",
+ "integrity": "sha512-6dd/29q6QuQN2Ap090VA0KUFmmnHalPxFJb4MGh5nIbWZH0F/EvI+uK5vPx29cttr1yXL5u+MbJWaLb3IxwILg==",
"requires": {
"@comunica/bus-rdf-join-entries-sort": "^2.10.0",
"@comunica/core": "^2.10.0"
@@ -20930,6 +25207,8 @@
},
"@comunica/actor-rdf-join-inner-hash": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-inner-hash/-/actor-rdf-join-inner-hash-2.10.1.tgz",
+ "integrity": "sha512-nUtdS3NJGKSJQC8KjDVz4TEDmkXHBYQi0/bwnAXCDl1phhq8lgv+YEmRDNe/kuCze7HyqEt98rlSJ+ZhvcHXVQ==",
"requires": {
"@comunica/bus-rdf-join": "^2.10.1",
"@comunica/mediatortype-join-coefficients": "^2.10.0",
@@ -20939,6 +25218,8 @@
},
"@comunica/actor-rdf-join-inner-multi-bind": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-inner-multi-bind/-/actor-rdf-join-inner-multi-bind-2.10.1.tgz",
+ "integrity": "sha512-tNZ2Q7z44Yr0iIFkvtTVAsts4v0IoC4b0FYaIUeYav4y5JOlR74hWWijTAzVfb31dTMsAp3r+y0xGIdd75LRHQ==",
"requires": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/bus-rdf-join": "^2.10.1",
@@ -20952,6 +25233,8 @@
},
"@comunica/actor-rdf-join-inner-multi-empty": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-inner-multi-empty/-/actor-rdf-join-inner-multi-empty-2.10.1.tgz",
+ "integrity": "sha512-z6a3qENwuvSU0PvqOySrsHsWSUvzfWd1xIYwEvKuEIJ9vYPoefIUgggx08E95ZF/k+PxZ0vKEywFpBSUKUzGYA==",
"requires": {
"@comunica/bus-rdf-join": "^2.10.1",
"@comunica/mediatortype-join-coefficients": "^2.10.0",
@@ -20962,6 +25245,8 @@
},
"@comunica/actor-rdf-join-inner-multi-smallest": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-inner-multi-smallest/-/actor-rdf-join-inner-multi-smallest-2.10.1.tgz",
+ "integrity": "sha512-MXwIvq+viDCmsxJwD4+fwMhwZINWva3jtQ3j5ne6DXgZYUJUFOw3VujvCP4/cl075RuSxYlXgy6ETHLa1TNr7g==",
"requires": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/bus-rdf-join": "^2.10.1",
@@ -20973,6 +25258,8 @@
},
"@comunica/actor-rdf-join-inner-nestedloop": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-inner-nestedloop/-/actor-rdf-join-inner-nestedloop-2.10.1.tgz",
+ "integrity": "sha512-nFjGMrAIrRjRcsaU8UQXLbsDODVdf4LDpVNVQIrjfoWzhOIy13ApDQrqtuObaGVfryiFgt34zVEOwMWezWzl0A==",
"requires": {
"@comunica/bus-rdf-join": "^2.10.1",
"@comunica/mediatortype-join-coefficients": "^2.10.0",
@@ -20982,6 +25269,8 @@
},
"@comunica/actor-rdf-join-inner-none": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-inner-none/-/actor-rdf-join-inner-none-2.10.1.tgz",
+ "integrity": "sha512-4mqsuqvLSuXMbgY0PghqK5hmBGH5YkRTwUOpGpBE0EVQaiAoQOME0uVslkt2TBzUx5IQJC+trr/80sbA9mAhMw==",
"requires": {
"@comunica/bindings-factory": "^2.10.1",
"@comunica/bus-rdf-join": "^2.10.1",
@@ -20992,6 +25281,8 @@
},
"@comunica/actor-rdf-join-inner-single": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-inner-single/-/actor-rdf-join-inner-single-2.10.1.tgz",
+ "integrity": "sha512-RfnwTEsuXNdR0cNRWaCvNPlfD5KyuScsc/55j/9mr8yqGUTE9h9Om1Is5u7xnpRMxGOEqwVP6apK3ZxsZqlL/w==",
"requires": {
"@comunica/bus-rdf-join": "^2.10.1",
"@comunica/mediatortype-join-coefficients": "^2.10.0"
@@ -20999,6 +25290,8 @@
},
"@comunica/actor-rdf-join-inner-symmetrichash": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-inner-symmetrichash/-/actor-rdf-join-inner-symmetrichash-2.10.1.tgz",
+ "integrity": "sha512-beFGkMUe3pTADtMXXPU8ab/IMULj+Hkg3Iah0zgrVZgwWH1Kgfkj/2qp32Ll5y9qcRbio4ruruKlHNXJJUU46Q==",
"requires": {
"@comunica/bus-rdf-join": "^2.10.1",
"@comunica/mediatortype-join-coefficients": "^2.10.0",
@@ -21008,6 +25301,8 @@
},
"@comunica/actor-rdf-join-minus-hash": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-minus-hash/-/actor-rdf-join-minus-hash-2.10.1.tgz",
+ "integrity": "sha512-wIaB/EpuySaARhimoLzrE0cTH0TgVkL43IAtYX7ECwH9Qcv8blO4zbL4q2KUkY7OKZRM892aqMfo3kO1vMIK7w==",
"requires": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/bus-rdf-join": "^2.10.1",
@@ -21018,6 +25313,8 @@
},
"@comunica/actor-rdf-join-minus-hash-undef": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-minus-hash-undef/-/actor-rdf-join-minus-hash-undef-2.10.1.tgz",
+ "integrity": "sha512-tz5LdeAHnylEQIq4bRfFqaH89WZXkkdFxEshqxWijFBp5wprUYiotMDrBo9zDFaPquhs42fILtTzLY9yaalc9w==",
"requires": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/bus-rdf-join": "^2.10.1",
@@ -21029,6 +25326,8 @@
},
"@comunica/actor-rdf-join-optional-bind": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-optional-bind/-/actor-rdf-join-optional-bind-2.10.1.tgz",
+ "integrity": "sha512-6dOoI/rzRZ0RUyv2WlToClE42Z2YJE5xcSrot7haT2eMdxbzr1KjyasHBcIIkSK+WViDO006lXZ1Hi4tJm9uuA==",
"requires": {
"@comunica/actor-rdf-join-inner-multi-bind": "^2.10.1",
"@comunica/bus-query-operation": "^2.10.1",
@@ -21041,6 +25340,8 @@
},
"@comunica/actor-rdf-join-optional-nestedloop": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-optional-nestedloop/-/actor-rdf-join-optional-nestedloop-2.10.1.tgz",
+ "integrity": "sha512-d7KUDjEKZszizd4SBvYkK2A6lScrq9ciEgzdrrp6IYZhIGAhJLTgPNg3Js3NEjpE7oj4KWl2WwKJe2sWcJbKJg==",
"requires": {
"@comunica/bus-rdf-join": "^2.10.1",
"@comunica/mediatortype-join-coefficients": "^2.10.0",
@@ -21050,6 +25351,8 @@
},
"@comunica/actor-rdf-join-selectivity-variable-counting": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-selectivity-variable-counting/-/actor-rdf-join-selectivity-variable-counting-2.10.0.tgz",
+ "integrity": "sha512-D7tdzxA93bpZGXI5emJyvzk6LabeAnzcQMU/V5x2QwJxyoNr+LFbesBHDDP3/u4UJwmeP0a+dU0e5mbpJujSXw==",
"requires": {
"@comunica/bus-rdf-join-selectivity": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -21059,6 +25362,8 @@
},
"@comunica/actor-rdf-metadata-accumulate-cancontainundefs": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-accumulate-cancontainundefs/-/actor-rdf-metadata-accumulate-cancontainundefs-2.10.0.tgz",
+ "integrity": "sha512-N3rwX4kT9rkW+89q4xCjO3KKG0DbeNIyeMWDzeh2vTw8nAXYyTiPjHYvx/6VUMzhFUWF+50VtVv8ZJPO6nEapw==",
"requires": {
"@comunica/bus-rdf-metadata-accumulate": "^2.10.0",
"@comunica/core": "^2.10.0"
@@ -21066,6 +25371,8 @@
},
"@comunica/actor-rdf-metadata-accumulate-cardinality": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-accumulate-cardinality/-/actor-rdf-metadata-accumulate-cardinality-2.10.0.tgz",
+ "integrity": "sha512-UpC5PbhzEDCAxTUqETH89uRaFRqmP6YuWt67OAPo5wocv2tQDs6/SdLwS695XnfeMJdfDHsXyoUzQg3r8dwydw==",
"requires": {
"@comunica/bus-rdf-metadata-accumulate": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -21074,6 +25381,8 @@
},
"@comunica/actor-rdf-metadata-accumulate-pagesize": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-accumulate-pagesize/-/actor-rdf-metadata-accumulate-pagesize-2.10.0.tgz",
+ "integrity": "sha512-r364CWGr5rMpV2ec3TsD+9Yhvi1JUuRXLBQqtgzjAPbpWjfDSM1Q4h0P1z9h3D+sdUMEX/0iGAY3AH2FjJAxwA==",
"requires": {
"@comunica/bus-rdf-metadata-accumulate": "^2.10.0",
"@comunica/core": "^2.10.0"
@@ -21081,6 +25390,8 @@
},
"@comunica/actor-rdf-metadata-accumulate-requesttime": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-accumulate-requesttime/-/actor-rdf-metadata-accumulate-requesttime-2.10.0.tgz",
+ "integrity": "sha512-SpG7gxxAPoW2NbgyZ2UNpwluJ+IvCOYIRDTXmVTAK8bntav+/ZG30yfESFBjB3LmJEwAnktAsTgM6OhldohPKw==",
"requires": {
"@comunica/bus-rdf-metadata-accumulate": "^2.10.0",
"@comunica/core": "^2.10.0"
@@ -21088,6 +25399,8 @@
},
"@comunica/actor-rdf-metadata-all": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-all/-/actor-rdf-metadata-all-2.10.0.tgz",
+ "integrity": "sha512-dHaSxHTdneWVBMAF6WqZrGD+u4TPpHQaJ2WutK1NvQNPIiF0N7249aGTvXBIXZfsKYyQ73PUORDeLEOjX+tT7g==",
"requires": {
"@comunica/bus-rdf-metadata": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -21096,6 +25409,8 @@
},
"@comunica/actor-rdf-metadata-extract-allow-http-methods": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-extract-allow-http-methods/-/actor-rdf-metadata-extract-allow-http-methods-2.10.0.tgz",
+ "integrity": "sha512-aCSX+lWcmz5Q/g34VJEblczqDS6N+gJ3AlcOcGuqhd6qHRU17dMeCIZCk8p6p+AhbJ30w4BTsrZRY2sF0MGCVA==",
"requires": {
"@comunica/bus-rdf-metadata-extract": "^2.10.0",
"@comunica/core": "^2.10.0"
@@ -21103,6 +25418,8 @@
},
"@comunica/actor-rdf-metadata-extract-hydra-controls": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-extract-hydra-controls/-/actor-rdf-metadata-extract-hydra-controls-2.10.0.tgz",
+ "integrity": "sha512-T6F5OaQNqrHVIwSGNRX6YPDBoAOYBQj3NTPID7vQae7J80oEX+CLoTkeJJwfHpoUWx0ihs8J0UkABgK3AWeylA==",
"requires": {
"@comunica/bus-rdf-metadata-extract": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -21113,6 +25430,8 @@
},
"@comunica/actor-rdf-metadata-extract-hydra-count": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-extract-hydra-count/-/actor-rdf-metadata-extract-hydra-count-2.10.0.tgz",
+ "integrity": "sha512-nOMLN+9OSLFOVz6jc9pcyDizhcBBVT2azn7StTMK5ukFCcPCENS4y6lYhC5cijKZY7vUa7U6VzhX2vvw20MKDA==",
"requires": {
"@comunica/bus-rdf-metadata-extract": "^2.10.0",
"@comunica/core": "^2.10.0"
@@ -21120,6 +25439,8 @@
},
"@comunica/actor-rdf-metadata-extract-hydra-pagesize": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-extract-hydra-pagesize/-/actor-rdf-metadata-extract-hydra-pagesize-2.10.0.tgz",
+ "integrity": "sha512-mD8KS2ENr2rbfBWxtVpxkB/Y2LyyAnwQU5UYKkpet8ELhlostdGROzYCNIAgfOgirOAsLgVkbmrX0XBGouI7rA==",
"requires": {
"@comunica/bus-rdf-metadata-extract": "^2.10.0",
"@comunica/core": "^2.10.0"
@@ -21127,6 +25448,8 @@
},
"@comunica/actor-rdf-metadata-extract-patch-sparql-update": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-extract-patch-sparql-update/-/actor-rdf-metadata-extract-patch-sparql-update-2.10.0.tgz",
+ "integrity": "sha512-U5ARpeWKShbbSfdtJeb6nyPcsdtMwEo2dp56T4aSTNSBKtAhQ78DjOxb23WIU/VR/qpw2yWcsbPnNJvSaLpRVQ==",
"requires": {
"@comunica/bus-rdf-metadata-extract": "^2.10.0",
"@comunica/core": "^2.10.0"
@@ -21134,6 +25457,8 @@
},
"@comunica/actor-rdf-metadata-extract-put-accepted": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-extract-put-accepted/-/actor-rdf-metadata-extract-put-accepted-2.10.0.tgz",
+ "integrity": "sha512-cGJg6tMMCOSGcitkUBN7b9/Sg5zgwWQC52g+Zk22o4i+Zgt24WLjfXXbnGWGoV+h9YZo8pkg7v1cpE5GpapNCg==",
"requires": {
"@comunica/bus-rdf-metadata-extract": "^2.10.0",
"@comunica/core": "^2.10.0"
@@ -21141,6 +25466,8 @@
},
"@comunica/actor-rdf-metadata-extract-request-time": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-extract-request-time/-/actor-rdf-metadata-extract-request-time-2.10.0.tgz",
+ "integrity": "sha512-zh3coTPZMbgF4mXKCO3bzn99INt9HFraKMZWc9s/kwBE6vhNZ5246Ql/6z1v7mccoIbanhI72gtjFTGGHru80Q==",
"requires": {
"@comunica/bus-rdf-metadata-extract": "^2.10.0",
"@comunica/core": "^2.10.0"
@@ -21148,6 +25475,8 @@
},
"@comunica/actor-rdf-metadata-extract-sparql-service": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-extract-sparql-service/-/actor-rdf-metadata-extract-sparql-service-2.10.0.tgz",
+ "integrity": "sha512-Xc+id8FURTmY3ccb4hcVuAaOou5UqD+1YkTnGfMWQxVgMlFC1eeBvwWVzvedj0sHhnfbLgDwbCVYLCK1lNndSg==",
"requires": {
"@comunica/bus-rdf-metadata-extract": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -21156,6 +25485,8 @@
},
"@comunica/actor-rdf-metadata-primary-topic": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-primary-topic/-/actor-rdf-metadata-primary-topic-2.10.0.tgz",
+ "integrity": "sha512-nabxkiYSPGPRylhYjGxF0KiJ/K8QiG1N/am/t8eaqwyjn/fo2/tHl0yXUaLLx0E8fChfbBv10sVlmLhsLrg8DQ==",
"requires": {
"@comunica/bus-rdf-metadata": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -21165,6 +25496,8 @@
},
"@comunica/actor-rdf-parse-html": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-html/-/actor-rdf-parse-html-2.10.0.tgz",
+ "integrity": "sha512-zgImXKpc+BN1i6lQiN1Qhlb1HbKdMIeJMOys6qbzRIijdK8GkGGChwhQp7Cso3lY1Nf4K7M3jPLZeQXeED2w7g==",
"requires": {
"@comunica/bus-rdf-parse": "^2.10.0",
"@comunica/bus-rdf-parse-html": "^2.10.0",
@@ -21177,6 +25510,8 @@
},
"@comunica/actor-rdf-parse-html-microdata": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-html-microdata/-/actor-rdf-parse-html-microdata-2.10.0.tgz",
+ "integrity": "sha512-JLfiDauq4SmpI6TDS4HaHzI6iJe1j8lSk5FRRYK6YVEu8eO28jPmxQJiOiwbQiYqsjsV7kON/WIZSoUELoI4Ig==",
"requires": {
"@comunica/bus-rdf-parse-html": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -21185,6 +25520,8 @@
},
"@comunica/actor-rdf-parse-html-rdfa": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-html-rdfa/-/actor-rdf-parse-html-rdfa-2.10.0.tgz",
+ "integrity": "sha512-9K3iaws9+FGl50oZi53hqyzhwjNKZ3mIr2zg/TAJZoapKvc14cthH17zKSSJrqI/NgBStRmZhBBkXcwfu1CANw==",
"requires": {
"@comunica/bus-rdf-parse-html": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -21193,6 +25530,8 @@
},
"@comunica/actor-rdf-parse-html-script": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-html-script/-/actor-rdf-parse-html-script-2.10.0.tgz",
+ "integrity": "sha512-7XYqWchDquWnBLjG7rmmY+tdE81UZ8fPCU0Hn+vI39/MikNOpaiyr/ZYFqhogWFa9SkjmH0a7idVUzmjiwKRZQ==",
"requires": {
"@comunica/bus-rdf-parse": "^2.10.0",
"@comunica/bus-rdf-parse-html": "^2.10.0",
@@ -21206,6 +25545,8 @@
},
"@comunica/actor-rdf-parse-jsonld": {
"version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-jsonld/-/actor-rdf-parse-jsonld-2.10.2.tgz",
+ "integrity": "sha512-K4fvD0zMU22KkQCqIFVT5Oy2FREEZ9CAo9u6kOcsMxEvg9aHGIM6hkaXR8I+1JCx1mDuEj3zQ8joR4tQh8fYCw==",
"requires": {
"@comunica/bus-http": "^2.10.2",
"@comunica/bus-rdf-parse": "^2.10.0",
@@ -21219,6 +25560,8 @@
},
"@comunica/actor-rdf-parse-n3": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-n3/-/actor-rdf-parse-n3-2.10.0.tgz",
+ "integrity": "sha512-o1MAbwJxW4Br2WCZdhFoRmAiOP4mfogeQqJ4nqlsOkoMtQ45EvLHsotb3Kqhuk5V+vsTxyK5v/a4zylGtcU7VQ==",
"requires": {
"@comunica/bus-rdf-parse": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -21227,6 +25570,8 @@
},
"@comunica/actor-rdf-parse-rdfxml": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-rdfxml/-/actor-rdf-parse-rdfxml-2.10.0.tgz",
+ "integrity": "sha512-HoJN52shXY3cvYtsS0cpin9KXpW3L7g1leebyCRSqnlnHdJv5D6G0Ep8vyt2xhquKNbOQ7LnP5VhiDiqz73XDg==",
"requires": {
"@comunica/bus-rdf-parse": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -21235,6 +25580,8 @@
},
"@comunica/actor-rdf-parse-shaclc": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-shaclc/-/actor-rdf-parse-shaclc-2.10.0.tgz",
+ "integrity": "sha512-i6tmuZuS+RtDiSXpQc3s/PxtCqwIguo4ANmVB20PK4VWgQgBwoPG7LlNcJ0xmuH/3Bv6C2Agn18PLF6dZX+fKw==",
"requires": {
"@comunica/bus-rdf-parse": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -21247,6 +25594,8 @@
},
"@comunica/actor-rdf-parse-xml-rdfa": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-xml-rdfa/-/actor-rdf-parse-xml-rdfa-2.10.0.tgz",
+ "integrity": "sha512-68r/6B/fEyA1/OYleVuaPq47J+g4xJcJijpdL1wEj7CqjV+Xa+sDWRpNCyLcD/e1Y/g9UQmLz0ZnSpR00PFddA==",
"requires": {
"@comunica/bus-rdf-parse": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -21255,6 +25604,8 @@
},
"@comunica/actor-rdf-resolve-hypermedia-links-next": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-resolve-hypermedia-links-next/-/actor-rdf-resolve-hypermedia-links-next-2.10.0.tgz",
+ "integrity": "sha512-SpW46Tx8ksAxotGK2UEpvGcYjKwxB0x2KnbGmKHvo59embRjcUL/bmq3uHqZe7UwfynR2wDaRzMdVVSQccWSyA==",
"requires": {
"@comunica/bus-rdf-resolve-hypermedia-links": "^2.10.0",
"@comunica/core": "^2.10.0"
@@ -21262,6 +25613,8 @@
},
"@comunica/actor-rdf-resolve-hypermedia-links-queue-fifo": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-resolve-hypermedia-links-queue-fifo/-/actor-rdf-resolve-hypermedia-links-queue-fifo-2.10.0.tgz",
+ "integrity": "sha512-Hh53Ts6z6MxKXhZZxgpXfc1hgNzIX/xbA9mD2Au7ZfAa5V5j8zPaVVKe06sxILQBTPMsFh1idP3vIqRwRXpsvg==",
"requires": {
"@comunica/bus-rdf-resolve-hypermedia-links": "^2.10.0",
"@comunica/bus-rdf-resolve-hypermedia-links-queue": "^2.10.0",
@@ -21270,6 +25623,8 @@
},
"@comunica/actor-rdf-resolve-hypermedia-none": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-resolve-hypermedia-none/-/actor-rdf-resolve-hypermedia-none-2.10.0.tgz",
+ "integrity": "sha512-C4sJ0QJetq3QxsRkYstK5YXRYDGkcVTfyBOFUMYj7PbVakapnl8qPZkVL7VPMLVLVOfyBQHTT43Yp6Nl8VvmSA==",
"requires": {
"@comunica/actor-rdf-resolve-quad-pattern-rdfjs-source": "^2.10.0",
"@comunica/bus-rdf-resolve-hypermedia": "^2.10.0",
@@ -21278,6 +25633,8 @@
},
"@comunica/actor-rdf-resolve-hypermedia-qpf": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-resolve-hypermedia-qpf/-/actor-rdf-resolve-hypermedia-qpf-2.10.0.tgz",
+ "integrity": "sha512-1iP9xD72bxFBLpbfC7Ev0Xoc+0rwusPFdnoYbEtqMHRfiM0h3nNrsSxyzdGJMAZaJeQzmBZIEiwR5pbo9qpmaQ==",
"requires": {
"@comunica/actor-rdf-metadata-extract-hydra-controls": "^2.10.0",
"@comunica/bus-dereference-rdf": "^2.10.0",
@@ -21295,6 +25652,8 @@
},
"@comunica/actor-rdf-resolve-hypermedia-sparql": {
"version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-resolve-hypermedia-sparql/-/actor-rdf-resolve-hypermedia-sparql-2.10.2.tgz",
+ "integrity": "sha512-UFsTuzHvjK/XhRGqfHr3WAVr+iBv6XTuU1fV9EuOaB+odclQ+H6TGtmW6/38CSufj86Y691VBXMk29zdWfrmGA==",
"requires": {
"@comunica/bindings-factory": "^2.10.1",
"@comunica/bus-http": "^2.10.2",
@@ -21312,6 +25671,8 @@
},
"@comunica/actor-rdf-resolve-quad-pattern-federated": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-resolve-quad-pattern-federated/-/actor-rdf-resolve-quad-pattern-federated-2.10.1.tgz",
+ "integrity": "sha512-OBRTTUWkXKa0ibDzcYLG7aKf3BfQp2j75xm65brRvwstNLmye9ZEq1PrNhbP5UDqQQeCgzPBrb0eGC8Vxek2RA==",
"requires": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/bus-rdf-metadata-accumulate": "^2.10.0",
@@ -21330,6 +25691,8 @@
},
"@comunica/actor-rdf-resolve-quad-pattern-hypermedia": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-resolve-quad-pattern-hypermedia/-/actor-rdf-resolve-quad-pattern-hypermedia-2.10.1.tgz",
+ "integrity": "sha512-XkJOYu0bizWHsvgiaGyNAnRZsqv2risREK5SY14VCMXDYqmOWJLDppveGEUZAoEKEJuo4ZLDlP2gLDGzc0krxQ==",
"requires": {
"@comunica/bus-dereference-rdf": "^2.10.0",
"@comunica/bus-http-invalidate": "^2.10.0",
@@ -21356,6 +25719,8 @@
},
"@comunica/actor-rdf-resolve-quad-pattern-rdfjs-source": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-resolve-quad-pattern-rdfjs-source/-/actor-rdf-resolve-quad-pattern-rdfjs-source-2.10.0.tgz",
+ "integrity": "sha512-d6AlrngvZaVgoiiyMhkf6uiYaFZZdn/UZLo0FhZ++or1NZXo5KxK4UMgdiIygvPEiuuVzy0W1djHgOQ1rgh50g==",
"requires": {
"@comunica/bus-rdf-resolve-quad-pattern": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -21369,6 +25734,8 @@
},
"@comunica/actor-rdf-resolve-quad-pattern-string-source": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-resolve-quad-pattern-string-source/-/actor-rdf-resolve-quad-pattern-string-source-2.10.0.tgz",
+ "integrity": "sha512-v6QOBtXTXrDUZRHocrm2OYCsxGpyTScka/n85cewCcInqVGJP9J6zpdwetzvIy7wVJkac7JQabd96OEyDMK3sg==",
"requires": {
"@comunica/bus-rdf-parse": "^2.10.0",
"@comunica/bus-rdf-resolve-quad-pattern": "^2.10.0",
@@ -21383,6 +25750,8 @@
},
"@comunica/actor-rdf-serialize-jsonld": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-serialize-jsonld/-/actor-rdf-serialize-jsonld-2.10.0.tgz",
+ "integrity": "sha512-u1M5N7BSrkhS461fV6QXKMh6TnvpoEiSHPru7wJg1kGqR9q3reuQeKLf/U23JDYb1kom8uU3R7aBpDIjgVc49Q==",
"requires": {
"@comunica/bus-rdf-serialize": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -21391,6 +25760,8 @@
},
"@comunica/actor-rdf-serialize-n3": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-serialize-n3/-/actor-rdf-serialize-n3-2.10.0.tgz",
+ "integrity": "sha512-CoDktUI3YQuI7UBV+fQOdKl+5XjBx0XTOF9XxEDiNg5nwndEmDvq6C23fSHfkqX3/xDlnsuS/YysHAqXCrYoiA==",
"requires": {
"@comunica/bus-rdf-serialize": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -21399,6 +25770,8 @@
},
"@comunica/actor-rdf-serialize-shaclc": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-serialize-shaclc/-/actor-rdf-serialize-shaclc-2.10.0.tgz",
+ "integrity": "sha512-gp4bu4+aPtMk4bavXP27uD9X9bpa2F5u6/JtsaX2qwcqVI0x1tkVQOkm2RkUhafcHNj0Fz6lQ3aXmRIAQvaefg==",
"requires": {
"@comunica/bus-rdf-serialize": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -21409,6 +25782,8 @@
},
"@comunica/actor-rdf-update-hypermedia-patch-sparql-update": {
"version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-update-hypermedia-patch-sparql-update/-/actor-rdf-update-hypermedia-patch-sparql-update-2.10.2.tgz",
+ "integrity": "sha512-z/fOzYlA5fPtauTUISYhCWMKtEpkvKkSZIdvcgeGvetLnvw4fytfVHdtPhirZYmPya10GCeTG7m2iHvK53lOsQ==",
"requires": {
"@comunica/bus-http": "^2.10.2",
"@comunica/bus-rdf-update-hypermedia": "^2.10.2",
@@ -21424,6 +25799,8 @@
},
"@comunica/actor-rdf-update-hypermedia-put-ldp": {
"version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-update-hypermedia-put-ldp/-/actor-rdf-update-hypermedia-put-ldp-2.10.2.tgz",
+ "integrity": "sha512-Tof/mU0Lkt7HP3SwHXODczxvAFelWzAHdP+ap4Upr47K6Zg5GRPwJv//2AcPvT3p42Li6wuMz/4nh/A3pcnCKA==",
"requires": {
"@comunica/bus-http": "^2.10.2",
"@comunica/bus-rdf-serialize": "^2.10.0",
@@ -21438,6 +25815,8 @@
},
"@comunica/actor-rdf-update-hypermedia-sparql": {
"version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-update-hypermedia-sparql/-/actor-rdf-update-hypermedia-sparql-2.10.2.tgz",
+ "integrity": "sha512-uw1NIAoxuAechsjTQ6b53XpGOMx3Mp5uEL5LtUwNC6COJE6tzWH8wG54Dwj+0VNxsgqsSircKu2xwGl1uOsOPg==",
"requires": {
"@comunica/bus-http": "^2.10.2",
"@comunica/bus-rdf-update-hypermedia": "^2.10.2",
@@ -21453,6 +25832,8 @@
},
"@comunica/actor-rdf-update-quads-hypermedia": {
"version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-update-quads-hypermedia/-/actor-rdf-update-quads-hypermedia-2.10.2.tgz",
+ "integrity": "sha512-kzGfDv0PqcOIIULJLG8jtA/dOcrNUodu98J08ruSuYQBbnFgAZ07MG1TkWhEI/AM6D0w7hXkgQaC1sGWn4gVmA==",
"requires": {
"@comunica/bus-dereference-rdf": "^2.10.0",
"@comunica/bus-http-invalidate": "^2.10.0",
@@ -21467,6 +25848,8 @@
},
"@comunica/actor-rdf-update-quads-rdfjs-store": {
"version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-update-quads-rdfjs-store/-/actor-rdf-update-quads-rdfjs-store-2.10.2.tgz",
+ "integrity": "sha512-anX3SovvY2H8KwuWu8G9EqtITmCsz12jfqunNn5Efcch/bm4HyHTC1GThx77m6qpCdg4OMx8TLhNrH1II1UM1w==",
"requires": {
"@comunica/bus-rdf-update-quads": "^2.10.2",
"@comunica/core": "^2.10.0",
@@ -21479,6 +25862,8 @@
},
"@comunica/bindings-factory": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/bindings-factory/-/bindings-factory-2.10.1.tgz",
+ "integrity": "sha512-AUD3VWlCYljgk5jfaMejSIL9CiX3aV/cAn314e/dYP/rrnVgachcCwyaD8hKHWTBHDs5rcGxr/iwruBOfsERvQ==",
"requires": {
"@rdfjs/types": "*",
"immutable": "^4.1.0",
@@ -21488,6 +25873,8 @@
},
"@comunica/bus-context-preprocess": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-context-preprocess/-/bus-context-preprocess-2.10.0.tgz",
+ "integrity": "sha512-eJ5CkzbnmxB9fkr2F05jnnjcaowp+yxd0+pAtvx5MLl2Kpx3nWLqHPcl4/EVVDPD+i0TEkq4AXQ1BD9BMuXK0A==",
"requires": {
"@comunica/core": "^2.10.0",
"@comunica/types": "^2.10.0"
@@ -21495,6 +25882,8 @@
},
"@comunica/bus-dereference": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-dereference/-/bus-dereference-2.10.0.tgz",
+ "integrity": "sha512-nWyQXiH7zbiPTVttWVKJHykhV4IuahfhfUwPx3Op+cVsK489Su84dnGeSmPkxTAFFuxe6wU6ZEH4i7PDu48YvQ==",
"requires": {
"@comunica/actor-abstract-mediatyped": "^2.10.0",
"@comunica/actor-abstract-parse": "^2.10.0",
@@ -21506,6 +25895,8 @@
},
"@comunica/bus-dereference-rdf": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-dereference-rdf/-/bus-dereference-rdf-2.10.0.tgz",
+ "integrity": "sha512-WY/wPmFpO76wwJ2D5Aus43ZbYnBRLvQ0EOp4yywO0lBiq6F0JisjCVCM4EtWouOEAAfqEoIjHXGyC3gPWqm+SQ==",
"requires": {
"@comunica/bus-dereference": "^2.10.0",
"@comunica/bus-rdf-parse": "^2.10.0",
@@ -21515,6 +25906,8 @@
},
"@comunica/bus-hash-bindings": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-hash-bindings/-/bus-hash-bindings-2.10.0.tgz",
+ "integrity": "sha512-EdzIUgpSWMtFVxEJSesuQpMkfgznDap+U0F9epotxXc20Gg/qjTzs1gF6NkpDpaidQ7cFlV16vdbdfi8uiZ+mQ==",
"requires": {
"@comunica/core": "^2.10.0",
"@comunica/types": "^2.10.0"
@@ -21522,6 +25915,8 @@
},
"@comunica/bus-http": {
"version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-http/-/bus-http-2.10.2.tgz",
+ "integrity": "sha512-MAYRF6uEBAuJ9dCPW2Uyne7w3lNwXFXKfa14XuPG5DFTDpgo/Z2pWupPrBsA1eIWMNJ6WOG6QyEv4rllSIBqlg==",
"requires": {
"@comunica/core": "^2.10.0",
"@smessie/readable-web-to-node-stream": "^3.0.3",
@@ -21532,12 +25927,16 @@
},
"@comunica/bus-http-invalidate": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-http-invalidate/-/bus-http-invalidate-2.10.0.tgz",
+ "integrity": "sha512-9DevRUzuCOfHFtsryIvTU6rOz6vMbnuDzerloBoNsLFVzQCU4wPNZbxiOn0+GMDXxw7M3KgYd+KFxI2kGObVWA==",
"requires": {
"@comunica/core": "^2.10.0"
}
},
"@comunica/bus-init": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-init/-/bus-init-2.10.0.tgz",
+ "integrity": "sha512-hJejHa8sLVhQLFlduCVnhOd5aW3FCEz8wmWjyeLI3kiHFaQibnGVMhUuuNRX5f8bnnPuTdEiHc1nnYHuSi+j8A==",
"requires": {
"@comunica/core": "^2.10.0",
"readable-stream": "^4.4.2"
@@ -21545,6 +25944,8 @@
},
"@comunica/bus-optimize-query-operation": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-optimize-query-operation/-/bus-optimize-query-operation-2.10.0.tgz",
+ "integrity": "sha512-qawKJprbVc+dfjBgVzV45UEo+jZBzY3dRo0a8UkXSvgSWPcX18SGrURl2VL4sZZSAyXQBMrGUwH2eUD8l26ZJQ==",
"requires": {
"@comunica/core": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -21553,6 +25954,8 @@
},
"@comunica/bus-query-operation": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-query-operation/-/bus-query-operation-2.10.1.tgz",
+ "integrity": "sha512-PoUSJeKaMZtZu+ZtB+5ABjPOiW1YjxOdLE1N5znxX2oiDKCQHmAXVaVkbVx1jPDLGYFNcOlOSzpRMqLQ/L4JIw==",
"requires": {
"@comunica/bindings-factory": "^2.10.1",
"@comunica/context-entries": "^2.10.0",
@@ -21568,6 +25971,8 @@
},
"@comunica/bus-query-parse": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-query-parse/-/bus-query-parse-2.10.0.tgz",
+ "integrity": "sha512-1LynxACgCYTuBH/JMRG/IGaWtTVwr2O8wxOosCId2W3BDW9nf2DSCyOdnxnCSMSKfnLFWiaVuKybn24OLXW2dQ==",
"requires": {
"@comunica/core": "^2.10.0",
"@rdfjs/types": "*",
@@ -21576,6 +25981,8 @@
},
"@comunica/bus-query-result-serialize": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-query-result-serialize/-/bus-query-result-serialize-2.10.0.tgz",
+ "integrity": "sha512-9P5KUzmXvjtLbd44UVxYNB0yqAHx7molBUc7aysUQ3pbIcP/A57GXzAfiKueeiZ9cVRRG/BGsVoDGVj59tGWNg==",
"requires": {
"@comunica/actor-abstract-mediatyped": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -21584,6 +25991,8 @@
},
"@comunica/bus-rdf-join": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-join/-/bus-rdf-join-2.10.1.tgz",
+ "integrity": "sha512-pPFoJVHY5p931jIKt+9sqRCGiuuf8yFqrlOOAd3un72cwuyhwNHvn52xwvcPlNUAySz/kDmW+U0syflqI6VdAw==",
"requires": {
"@comunica/bus-query-operation": "^2.10.1",
"@comunica/bus-rdf-join-selectivity": "^2.10.0",
@@ -21599,6 +26008,8 @@
},
"@comunica/bus-rdf-join-entries-sort": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-join-entries-sort/-/bus-rdf-join-entries-sort-2.10.0.tgz",
+ "integrity": "sha512-17FQrdYtzjY84OI/ZvipJKD0ei3IySmsWwaGC9sIJn+1W4LBVKudTu5S0tzGTKTb0URhS4mrCliUBzyINtIZMQ==",
"requires": {
"@comunica/core": "^2.10.0",
"@comunica/types": "^2.10.0"
@@ -21606,6 +26017,8 @@
},
"@comunica/bus-rdf-join-selectivity": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-join-selectivity/-/bus-rdf-join-selectivity-2.10.0.tgz",
+ "integrity": "sha512-YjoygSiH6r4SAYqz6gpvUql2vnznPVE62IsWqYnjFWeH1kBsxO5yEOO01s2FfN3jLcfsytTyG7VNTCN788YbaA==",
"requires": {
"@comunica/core": "^2.10.0",
"@comunica/mediatortype-accuracy": "^2.10.0",
@@ -21614,6 +26027,8 @@
},
"@comunica/bus-rdf-metadata": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-metadata/-/bus-rdf-metadata-2.10.0.tgz",
+ "integrity": "sha512-LRUnHVqIzyUlmPKPNAYOusCF53iN8KEX7l/VinlA7NH3XBLhTkFoth26MVqIVtjtdH0hVfUVpkwy2kFEJpGldw==",
"requires": {
"@comunica/core": "^2.10.0",
"@rdfjs/types": "*"
@@ -21621,6 +26036,8 @@
},
"@comunica/bus-rdf-metadata-accumulate": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-metadata-accumulate/-/bus-rdf-metadata-accumulate-2.10.0.tgz",
+ "integrity": "sha512-XG/3s4a3yGpYt4H+sn9T2zTaUxLG+37dmhRhXv2cBmR4gaCXkglERPaOrQygHldEF+4ITF3RmXHCgANsQ1AwQg==",
"requires": {
"@comunica/core": "^2.10.0",
"@comunica/types": "^2.10.0"
@@ -21628,6 +26045,8 @@
},
"@comunica/bus-rdf-metadata-extract": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-metadata-extract/-/bus-rdf-metadata-extract-2.10.0.tgz",
+ "integrity": "sha512-KcMZh+7kHjdCIMkLFki99tQH1arVp/evVnk0BGXfWd+ca3eCLrr42tb1tGfN2JkaCSxgtzWO4DRZcSzJ4sI2dQ==",
"requires": {
"@comunica/core": "^2.10.0",
"@rdfjs/types": "*"
@@ -21635,6 +26054,8 @@
},
"@comunica/bus-rdf-parse": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-parse/-/bus-rdf-parse-2.10.0.tgz",
+ "integrity": "sha512-EgCMZACfTG/+mayQpExWt0HoBT32BBVC1aS1lC43fXKBTxJ8kYrSrorVUuMACoh4dQVGTb+7j1j4K0hGNVzXGA==",
"requires": {
"@comunica/actor-abstract-mediatyped": "^2.10.0",
"@comunica/actor-abstract-parse": "^2.10.0",
@@ -21644,6 +26065,8 @@
},
"@comunica/bus-rdf-parse-html": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-parse-html/-/bus-rdf-parse-html-2.10.0.tgz",
+ "integrity": "sha512-RZliz4TtKP63QggoohGuIkGb6lq0BoYJ4aztKtGldWtPAVP/pdEvlDpiZWLB/j19g7S2aDLNY/lJtZ5efM1tHQ==",
"requires": {
"@comunica/core": "^2.10.0",
"@rdfjs/types": "*"
@@ -21651,6 +26074,8 @@
},
"@comunica/bus-rdf-resolve-hypermedia": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-resolve-hypermedia/-/bus-rdf-resolve-hypermedia-2.10.0.tgz",
+ "integrity": "sha512-DjCoAg62pPzEOH5gKM9gaL4CVUmhBsmyOzao0tRu20G7L6RnTIFtRaOwMN2z+2uC7AkJRHZY12bPUb+yM8V0UQ==",
"requires": {
"@comunica/bus-rdf-resolve-quad-pattern": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -21659,6 +26084,8 @@
},
"@comunica/bus-rdf-resolve-hypermedia-links": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-resolve-hypermedia-links/-/bus-rdf-resolve-hypermedia-links-2.10.0.tgz",
+ "integrity": "sha512-Mcz6bUdZySLK2om0cMt86n5TOThZOTpEFq2M42n7YAE3LL2KMnMDdhkaOC6SyY4tS0HGAuhce21Uq+Gz8Veq2g==",
"requires": {
"@comunica/core": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -21667,6 +26094,8 @@
},
"@comunica/bus-rdf-resolve-hypermedia-links-queue": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-resolve-hypermedia-links-queue/-/bus-rdf-resolve-hypermedia-links-queue-2.10.0.tgz",
+ "integrity": "sha512-f9amJk7ikktRfOoRnwag1KMTuo9v+PiDEVQA0dijl+jhcispKdjG6XK0MdZ1KSEmtUWejjS6nMRGvfJdM37eog==",
"requires": {
"@comunica/bus-rdf-resolve-hypermedia-links": "^2.10.0",
"@comunica/core": "^2.10.0"
@@ -21674,6 +26103,8 @@
},
"@comunica/bus-rdf-resolve-quad-pattern": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-resolve-quad-pattern/-/bus-rdf-resolve-quad-pattern-2.10.0.tgz",
+ "integrity": "sha512-JEI4DqSprGmrbfmiIwc8PbS+HCoxXwmMtp7gDpoB1HyYKIHzzu9DOIiwmYEDRO5dwV+uTwaYKZz/mUPm2U6EEg==",
"requires": {
"@comunica/context-entries": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -21685,6 +26116,8 @@
},
"@comunica/bus-rdf-serialize": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-serialize/-/bus-rdf-serialize-2.10.0.tgz",
+ "integrity": "sha512-AmbN9MUgw6B6AfrIqR1u7PWHZFgbJz+j1SFJVtnHQ51hEpG+Ig9nNG2IWjHOsFK0xBBQ/wXgNmt/cufEMRM1SQ==",
"requires": {
"@comunica/actor-abstract-mediatyped": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -21693,6 +26126,8 @@
},
"@comunica/bus-rdf-update-hypermedia": {
"version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-update-hypermedia/-/bus-rdf-update-hypermedia-2.10.2.tgz",
+ "integrity": "sha512-GbRMxXN4kx+4UPsnGxWjyn770m675yy2gWK/xy/5qQIxxRTcuGk4wm/994FZQXpwLX1E0xJ+YKxMgXTIlEWmQA==",
"requires": {
"@comunica/bus-rdf-update-quads": "^2.10.2",
"@comunica/core": "^2.10.0"
@@ -21700,6 +26135,8 @@
},
"@comunica/bus-rdf-update-quads": {
"version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-update-quads/-/bus-rdf-update-quads-2.10.2.tgz",
+ "integrity": "sha512-+iVpAHps8ytGq8AZF4xTZbLyskS40JPn64MO+OAuYovqXLlezp6vh9eJ5qETuP9NP+BpZDk3nOU3Ky3fb0QCUw==",
"requires": {
"@comunica/actor-rdf-resolve-quad-pattern-federated": "^2.10.1",
"@comunica/bus-http": "^2.10.2",
@@ -21712,10 +26149,14 @@
}
},
"@comunica/config-query-sparql": {
- "version": "2.7.0"
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/@comunica/config-query-sparql/-/config-query-sparql-2.7.0.tgz",
+ "integrity": "sha512-rMnFgT7cz9+0z7wV4OzIMY5qM9/Z0mTGrR8y2JokoHyyTcBGOSajFmy61XCSLMCsLLG8qDXsJ4ClCCky3TGfqA=="
},
"@comunica/context-entries": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/context-entries/-/context-entries-2.10.0.tgz",
+ "integrity": "sha512-lmCYCcXxW8C6ecFH2whZCt31NT1ejb0P/sbytK7f4ctyA06Q8iYFEcYE4eWOXMdpfkwkcnz31x9XL77OGeSC2Q==",
"requires": {
"@comunica/core": "^2.10.0",
"@comunica/types": "^2.10.0",
@@ -21726,6 +26167,8 @@
},
"@comunica/core": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/core/-/core-2.10.0.tgz",
+ "integrity": "sha512-onsGs2iKHUPRxxMOdx42vdxslk8q9FQZdRjQtHJ6SGiCpJwIL9ciBgPIOl2RL2YfzXHemr/0umeNOppRDcWhJA==",
"requires": {
"@comunica/types": "^2.10.0",
"immutable": "^4.1.0"
@@ -21733,12 +26176,16 @@
},
"@comunica/data-factory": {
"version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/@comunica/data-factory/-/data-factory-2.7.0.tgz",
+ "integrity": "sha512-dSTzrR1w9SzAWx70ZXKXHUC8f0leUolLZ9TOhGjFhhsBMJ9Pbo0g6vHV8txX5FViShngrg9QNKhsHeQnMk5z6Q==",
"requires": {
"@rdfjs/types": "*"
}
},
"@comunica/expression-evaluator": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/expression-evaluator/-/expression-evaluator-2.10.0.tgz",
+ "integrity": "sha512-gSfiVSAE+SaxpXq3jT5OnyZd+sD9KFaWtTiKT1tDDs8lD7Jj68aRP7VoEhvKwPwRlUx0aoaXUL2MYtV6JsXRbg==",
"requires": {
"@rdfjs/types": "*",
"@types/spark-md5": "^3.0.2",
@@ -21755,12 +26202,16 @@
},
"dependencies": {
"uuid": {
- "version": "9.0.1"
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
+ "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA=="
}
}
},
"@comunica/logger-pretty": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/logger-pretty/-/logger-pretty-2.10.0.tgz",
+ "integrity": "sha512-JXkeM5HnbyTPnQTf5/ugRPL9R+vXT7b/hRVYzYmhAGCjkCNL7NJPTBbIgxmZHqZ+UGxprotrvmDQtwHmVA+Ddw==",
"requires": {
"@comunica/types": "^2.10.0",
"object-inspect": "^1.12.2",
@@ -21769,18 +26220,24 @@
},
"@comunica/logger-void": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/logger-void/-/logger-void-2.10.0.tgz",
+ "integrity": "sha512-GFJh9hV8rIC9yXAuLGGKjQRVs8IOQOINBbaTNO+FJUWWWHlo5pDEKAoGYuysz5TBGoT3Lexz8bMfdkuHMa3uIQ==",
"requires": {
"@comunica/types": "^2.10.0"
}
},
"@comunica/mediator-all": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/mediator-all/-/mediator-all-2.10.0.tgz",
+ "integrity": "sha512-y1+A+sIW462G8iPzi6BSPIb4I9iy08ZruM2Thf1or6sytwLKro7E2RYjS6IdupwfFYafXXCeT85+lrJgTKERhQ==",
"requires": {
"@comunica/core": "^2.10.0"
}
},
"@comunica/mediator-combine-pipeline": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/mediator-combine-pipeline/-/mediator-combine-pipeline-2.10.0.tgz",
+ "integrity": "sha512-j7+/oUlbhKB4Rq6g9oNKU+e9cQL8U9z8tAUNhoXUSHajcr4huj0t1+riaOD109/DRWhV793ILhBDzgiZbHd7DA==",
"requires": {
"@comunica/core": "^2.10.0",
"@comunica/types": "^2.10.0"
@@ -21788,12 +26245,16 @@
},
"@comunica/mediator-combine-union": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/mediator-combine-union/-/mediator-combine-union-2.10.0.tgz",
+ "integrity": "sha512-QbP4zP1i6nMDZ8teC0RoTz5E8pOpxDhWPBr1ylb2jzPUjPpMgrnbHYTondlN0Oau3SMEehItojg/LYDtPOP/GQ==",
"requires": {
"@comunica/core": "^2.10.0"
}
},
"@comunica/mediator-join-coefficients-fixed": {
"version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/@comunica/mediator-join-coefficients-fixed/-/mediator-join-coefficients-fixed-2.10.1.tgz",
+ "integrity": "sha512-HRvc0e8QDnR3sbRMMCyx9ILFA6KiUxHEqDOpt7BV3kFMWWIpBavFDwPUjLBG6sRA8o0CFu1+oVVh5fAFYZIxzQ==",
"requires": {
"@comunica/bus-rdf-join": "^2.10.1",
"@comunica/context-entries": "^2.10.0",
@@ -21804,30 +26265,40 @@
},
"@comunica/mediator-number": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/mediator-number/-/mediator-number-2.10.0.tgz",
+ "integrity": "sha512-0T8D1HGTu5Sd8iKb2dBjc6VRc/U4A15TAN6m561ra9pFlP+w31kby0ZYP6WWBHBobbUsX1LCvnbRQaAC4uWwVw==",
"requires": {
"@comunica/core": "^2.10.0"
}
},
"@comunica/mediator-race": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/mediator-race/-/mediator-race-2.10.0.tgz",
+ "integrity": "sha512-JiEtOLMkPnbjSLabVpE4VqDbu2ZKKnkUdATGBeWX+o+MjPw6c0hhw01RG4WY2rQhDyNl++nLQe3EowQh8xW9TA==",
"requires": {
"@comunica/core": "^2.10.0"
}
},
"@comunica/mediatortype-accuracy": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/mediatortype-accuracy/-/mediatortype-accuracy-2.10.0.tgz",
+ "integrity": "sha512-u9Noai4yGACaBRGOoRZ65XoQhazKNx5QaFOX5nJ/p84Qq4g50woC2rpsncuyrXhW1j/rIc2WvIUGUfy/g6CDiw==",
"requires": {
"@comunica/core": "^2.10.0"
}
},
"@comunica/mediatortype-httprequests": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/mediatortype-httprequests/-/mediatortype-httprequests-2.10.0.tgz",
+ "integrity": "sha512-uPjs/NdngHZZWomjZor6W29UeOlxganupIOa3Z6H3qdUnsSpxeoS9URXy7BICAX+4PmgebperSn18BRA+PWiSw==",
"requires": {
"@comunica/core": "^2.10.0"
}
},
"@comunica/mediatortype-join-coefficients": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/mediatortype-join-coefficients/-/mediatortype-join-coefficients-2.10.0.tgz",
+ "integrity": "sha512-EPipAV5PDNeEVXbsd+8NsqNKu5ztCAoEJ3azcFAmD9di9ppArNJWU/mxy5yUzcBgMUX4wRp6jCa5rIF5sRHG7g==",
"requires": {
"@comunica/core": "^2.10.0",
"@rdfjs/types": "*"
@@ -21835,18 +26306,24 @@
},
"@comunica/mediatortype-time": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/mediatortype-time/-/mediatortype-time-2.10.0.tgz",
+ "integrity": "sha512-nBz1exxrja1Tj8KSlSevG4Hw2u09tTh6gtNfVjI76i/e7muu4RUWVhi9b8PcwBNAfuUqRl+5OgOSa2X4W+6QlA==",
"requires": {
"@comunica/core": "^2.10.0"
}
},
"@comunica/metadata": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/metadata/-/metadata-2.10.0.tgz",
+ "integrity": "sha512-PF7TKhuDIO4GE9tzuAkTxarQV5cmwXZ64hp0qm8Ql/V+dVHu/3xLL9v/Q67ZX26GF9hOyr7cdpNI08M7DHc86g==",
"requires": {
"@comunica/types": "^2.10.0"
}
},
"@comunica/query-sparql": {
"version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@comunica/query-sparql/-/query-sparql-2.10.2.tgz",
+ "integrity": "sha512-bgjQ8N5/vP3Iy71AgDKQc06mXmEBvh7dsenw2VPbvk11iXywec4XCq8TzX+GozL+Zxxl5XyYlBw+nRjvORTGHg==",
"requires": {
"@comunica/actor-context-preprocess-source-to-destination": "^2.10.0",
"@comunica/actor-dereference-fallback": "^2.10.0",
@@ -21984,6 +26461,8 @@
},
"@comunica/runner": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/runner/-/runner-2.10.0.tgz",
+ "integrity": "sha512-v/oEKT+IwjO6Y74bCCzlR+ZMI6oykpfz7GQrQbl1oTWQsvBbTdf0omPkoYnk1esEAsFnsJD+NGwAiRiFKeBo0A==",
"requires": {
"@comunica/bus-init": "^2.10.0",
"@comunica/core": "^2.10.0",
@@ -21993,6 +26472,8 @@
},
"@comunica/runner-cli": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/runner-cli/-/runner-cli-2.10.0.tgz",
+ "integrity": "sha512-16QI0rWFHURCy5waVFcZ/fhKI/hyzNx5YyCGPaEaUX8MKyamvCCXHSWvPLLbjJbsjGZ9wXrC9dwwhRmbfmidpw==",
"requires": {
"@comunica/core": "^2.10.0",
"@comunica/runner": "^2.10.0",
@@ -22002,6 +26483,8 @@
},
"@comunica/types": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@comunica/types/-/types-2.10.0.tgz",
+ "integrity": "sha512-1UjPGbZcYrapBjMGUZedrIGcn9rOLpEOlJo1ZkWddFUGTwndVg9d4BZnQw+UnQzXMcLJcdKt94Zns8iEmBqARw==",
"requires": {
"@rdfjs/types": "*",
"@types/yargs": "^17.0.24",
@@ -22011,12 +26494,16 @@
},
"@cspotcode/source-map-support": {
"version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
+ "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
"requires": {
"@jridgewell/trace-mapping": "0.3.9"
},
"dependencies": {
"@jridgewell/trace-mapping": {
"version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
+ "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
"requires": {
"@jridgewell/resolve-uri": "^3.0.3",
"@jridgewell/sourcemap-codec": "^1.4.10"
@@ -22026,10 +26513,14 @@
},
"@cucumber/ci-environment": {
"version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/@cucumber/ci-environment/-/ci-environment-9.1.0.tgz",
+ "integrity": "sha512-jdnF6APXP3GawMue8kdMxhu6TBhyRUO4KDRxTowf06NtclLjIw2Ybpo9IcIOMvE8kHukvJyM00uxWX+CfS7JgQ==",
"dev": true
},
"@cucumber/cucumber": {
"version": "8.11.1",
+ "resolved": "https://registry.npmjs.org/@cucumber/cucumber/-/cucumber-8.11.1.tgz",
+ "integrity": "sha512-C+wdypoSzHA48GCRorJCAZYuxXo1RSESukAmoz/JhGV7KB4pIlg9Y2aWeZKx6bJQkq8yq4+S4jg9f8FGCdc3jQ==",
"dev": true,
"requires": {
"@cucumber/ci-environment": "9.1.0",
@@ -22075,6 +26566,8 @@
"dependencies": {
"lru-cache": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dev": true,
"requires": {
"yallist": "^4.0.0"
@@ -22082,6 +26575,8 @@
},
"semver": {
"version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
@@ -22089,12 +26584,16 @@
},
"yallist": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
}
}
},
"@cucumber/cucumber-expressions": {
"version": "16.1.1",
+ "resolved": "https://registry.npmjs.org/@cucumber/cucumber-expressions/-/cucumber-expressions-16.1.1.tgz",
+ "integrity": "sha512-Ugsb9qxfgrgfUKsGvbx0awVk+69NIFjWfxNT+dnm62YrF2gdTHYxAOzOLuPgvE0yqYTh+3otrFLDDfkHGThM1g==",
"dev": true,
"requires": {
"regexp-match-indices": "1.0.2"
@@ -22102,6 +26601,8 @@
},
"@cucumber/gherkin": {
"version": "26.0.3",
+ "resolved": "https://registry.npmjs.org/@cucumber/gherkin/-/gherkin-26.0.3.tgz",
+ "integrity": "sha512-xwJHi//bLFEU1drIyw2yswwUHnnVWO4XcyVBbCTDs6DkSh262GkogFI/IWwChZqJfOXnPglzLGxR1DibcZsILA==",
"dev": true,
"requires": {
"@cucumber/messages": "19.1.4 - 21"
@@ -22109,6 +26610,8 @@
},
"@cucumber/gherkin-streams": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@cucumber/gherkin-streams/-/gherkin-streams-5.0.1.tgz",
+ "integrity": "sha512-/7VkIE/ASxIP/jd4Crlp4JHXqdNFxPGQokqWqsaCCiqBiu5qHoKMxcWNlp9njVL/n9yN4S08OmY3ZR8uC5x74Q==",
"dev": true,
"requires": {
"commander": "9.1.0",
@@ -22117,12 +26620,16 @@
"dependencies": {
"commander": {
"version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-9.1.0.tgz",
+ "integrity": "sha512-i0/MaqBtdbnJ4XQs4Pmyb+oFQl+q0lsAmokVUH92SlSw4fkeAcG3bVon+Qt7hmtF+u3Het6o4VgrcY3qAoEB6w==",
"dev": true
}
}
},
"@cucumber/gherkin-utils": {
"version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@cucumber/gherkin-utils/-/gherkin-utils-8.0.2.tgz",
+ "integrity": "sha512-aQlziN3r3cTwprEDbLEcFoMRQajb9DTOu2OZZp5xkuNz6bjSTowSY90lHUD2pWT7jhEEckZRIREnk7MAwC2d1A==",
"dev": true,
"requires": {
"@cucumber/gherkin": "^25.0.0",
@@ -22134,6 +26641,8 @@
"dependencies": {
"@cucumber/gherkin": {
"version": "25.0.2",
+ "resolved": "https://registry.npmjs.org/@cucumber/gherkin/-/gherkin-25.0.2.tgz",
+ "integrity": "sha512-EdsrR33Y5GjuOoe2Kq5Y9DYwgNRtUD32H4y2hCrT6+AWo7ibUQu7H+oiWTgfVhwbkHsZmksxHSxXz/AwqqyCRQ==",
"dev": true,
"requires": {
"@cucumber/messages": "^19.1.4"
@@ -22141,6 +26650,8 @@
},
"@cucumber/messages": {
"version": "19.1.4",
+ "resolved": "https://registry.npmjs.org/@cucumber/messages/-/messages-19.1.4.tgz",
+ "integrity": "sha512-Pksl0pnDz2l1+L5Ug85NlG6LWrrklN9qkMxN5Mv+1XZ3T6u580dnE6mVaxjJRdcOq4tR17Pc0RqIDZMyVY1FlA==",
"dev": true,
"requires": {
"@types/uuid": "8.3.4",
@@ -22151,30 +26662,42 @@
},
"@types/uuid": {
"version": "8.3.4",
+ "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz",
+ "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==",
"dev": true
},
"commander": {
"version": "9.4.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz",
+ "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==",
"dev": true
},
"uuid": {
"version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
+ "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==",
"dev": true
}
}
},
"@cucumber/html-formatter": {
"version": "20.2.1",
+ "resolved": "https://registry.npmjs.org/@cucumber/html-formatter/-/html-formatter-20.2.1.tgz",
+ "integrity": "sha512-bwwyr1WjlOJ5dEFOLGbtYWbUprloB2eymqXBmmTC10s0xapZXkFn4VfHgMshaH91XiCIY/MoabWNAau3AeMHkQ==",
"dev": true,
"requires": {}
},
"@cucumber/message-streams": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@cucumber/message-streams/-/message-streams-4.0.1.tgz",
+ "integrity": "sha512-Kxap9uP5jD8tHUZVjTWgzxemi/0uOsbGjd4LBOSxcJoOCRbESFwemUzilJuzNTB8pcTQUh8D5oudUyxfkJOKmA==",
"dev": true,
"requires": {}
},
"@cucumber/messages": {
"version": "21.0.1",
+ "resolved": "https://registry.npmjs.org/@cucumber/messages/-/messages-21.0.1.tgz",
+ "integrity": "sha512-pGR7iURM4SF9Qp1IIpNiVQ77J9kfxMkPOEbyy+zRmGABnWWCsqMpJdfHeh9Mb3VskemVw85++e15JT0PYdcR3g==",
"dev": true,
"requires": {
"@types/uuid": "8.3.4",
@@ -22185,20 +26708,28 @@
"dependencies": {
"@types/uuid": {
"version": "8.3.4",
+ "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz",
+ "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==",
"dev": true
},
"uuid": {
"version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
+ "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==",
"dev": true
}
}
},
"@cucumber/tag-expressions": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@cucumber/tag-expressions/-/tag-expressions-5.0.1.tgz",
+ "integrity": "sha512-N43uWud8ZXuVjza423T9ZCIJsaZhFekmakt7S9bvogTxqdVGbRobjR663s0+uW0Rz9e+Pa8I6jUuWtoBLQD2Mw==",
"dev": true
},
"@dabh/diagnostics": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz",
+ "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==",
"requires": {
"colorspace": "1.1.x",
"enabled": "2.0.x",
@@ -22207,6 +26738,8 @@
},
"@digitalbazaar/http-client": {
"version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/@digitalbazaar/http-client/-/http-client-3.4.1.tgz",
+ "integrity": "sha512-Ahk1N+s7urkgj7WvvUND5f8GiWEPfUw0D41hdElaqLgu8wZScI8gdI0q+qWw5N1d35x7GCRH2uk9mi+Uzo9M3g==",
"requires": {
"ky": "^0.33.3",
"ky-universal": "^0.11.0",
@@ -22215,15 +26748,21 @@
},
"@eslint-community/eslint-utils": {
"version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz",
+ "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==",
"requires": {
"eslint-visitor-keys": "^3.4.3"
}
},
"@eslint-community/regexpp": {
- "version": "4.12.1"
+ "version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
+ "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ=="
},
"@eslint/eslintrc": {
"version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
+ "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
"requires": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
@@ -22237,10 +26776,14 @@
}
},
"@eslint/js": {
- "version": "8.57.1"
+ "version": "8.57.1",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
+ "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q=="
},
"@ethereumjs/common": {
"version": "2.6.5",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz",
+ "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==",
"dev": true,
"requires": {
"crc-32": "^1.2.0",
@@ -22249,6 +26792,8 @@
"dependencies": {
"ethereum-cryptography": {
"version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
+ "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
"dev": true,
"requires": {
"@types/pbkdf2": "^3.0.0",
@@ -22270,6 +26815,8 @@
},
"ethereumjs-util": {
"version": "7.1.5",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz",
+ "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==",
"dev": true,
"requires": {
"@types/bn.js": "^5.1.0",
@@ -22282,10 +26829,14 @@
}
},
"@ethereumjs/rlp": {
- "version": "4.0.1"
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz",
+ "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw=="
},
"@ethereumjs/tx": {
"version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz",
+ "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==",
"dev": true,
"requires": {
"@ethereumjs/common": "^2.6.4",
@@ -22294,6 +26845,8 @@
"dependencies": {
"ethereum-cryptography": {
"version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
+ "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
"dev": true,
"requires": {
"@types/pbkdf2": "^3.0.0",
@@ -22315,6 +26868,8 @@
},
"ethereumjs-util": {
"version": "7.1.5",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz",
+ "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==",
"dev": true,
"requires": {
"@types/bn.js": "^5.1.0",
@@ -22328,6 +26883,8 @@
},
"@ethereumjs/util": {
"version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz",
+ "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==",
"requires": {
"@ethereumjs/rlp": "^4.0.1",
"ethereum-cryptography": "^2.0.0",
@@ -22335,13 +26892,19 @@
},
"dependencies": {
"@noble/hashes": {
- "version": "1.4.0"
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz",
+ "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg=="
},
"@scure/base": {
- "version": "1.1.9"
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz",
+ "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg=="
},
"@scure/bip32": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz",
+ "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==",
"requires": {
"@noble/curves": "~1.4.0",
"@noble/hashes": "~1.4.0",
@@ -22350,6 +26913,8 @@
},
"@scure/bip39": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz",
+ "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==",
"requires": {
"@noble/hashes": "~1.4.0",
"@scure/base": "~1.1.6"
@@ -22357,6 +26922,8 @@
},
"ethereum-cryptography": {
"version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz",
+ "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==",
"requires": {
"@noble/curves": "1.4.2",
"@noble/hashes": "1.4.0",
@@ -22368,6 +26935,8 @@
},
"@ethersproject/abi": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz",
+ "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==",
"requires": {
"@ethersproject/address": "^5.7.0",
"@ethersproject/bignumber": "^5.7.0",
@@ -22382,6 +26951,8 @@
},
"@ethersproject/abstract-provider": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz",
+ "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==",
"requires": {
"@ethersproject/bignumber": "^5.7.0",
"@ethersproject/bytes": "^5.7.0",
@@ -22394,6 +26965,8 @@
},
"@ethersproject/abstract-signer": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz",
+ "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==",
"requires": {
"@ethersproject/abstract-provider": "^5.7.0",
"@ethersproject/bignumber": "^5.7.0",
@@ -22404,6 +26977,8 @@
},
"@ethersproject/address": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz",
+ "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==",
"requires": {
"@ethersproject/bignumber": "^5.7.0",
"@ethersproject/bytes": "^5.7.0",
@@ -22414,12 +26989,16 @@
},
"@ethersproject/base64": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz",
+ "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==",
"requires": {
"@ethersproject/bytes": "^5.7.0"
}
},
"@ethersproject/basex": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz",
+ "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==",
"requires": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/properties": "^5.7.0"
@@ -22427,6 +27006,8 @@
},
"@ethersproject/bignumber": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz",
+ "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==",
"requires": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/logger": "^5.7.0",
@@ -22435,18 +27016,24 @@
},
"@ethersproject/bytes": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz",
+ "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==",
"requires": {
"@ethersproject/logger": "^5.7.0"
}
},
"@ethersproject/constants": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz",
+ "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==",
"requires": {
"@ethersproject/bignumber": "^5.7.0"
}
},
"@ethersproject/contracts": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz",
+ "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==",
"requires": {
"@ethersproject/abi": "^5.7.0",
"@ethersproject/abstract-provider": "^5.7.0",
@@ -22462,6 +27049,8 @@
},
"@ethersproject/hash": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz",
+ "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==",
"requires": {
"@ethersproject/abstract-signer": "^5.7.0",
"@ethersproject/address": "^5.7.0",
@@ -22476,6 +27065,8 @@
},
"@ethersproject/hdnode": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz",
+ "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==",
"requires": {
"@ethersproject/abstract-signer": "^5.7.0",
"@ethersproject/basex": "^5.7.0",
@@ -22493,6 +27084,8 @@
},
"@ethersproject/json-wallets": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz",
+ "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==",
"requires": {
"@ethersproject/abstract-signer": "^5.7.0",
"@ethersproject/address": "^5.7.0",
@@ -22511,22 +27104,30 @@
},
"@ethersproject/keccak256": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz",
+ "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==",
"requires": {
"@ethersproject/bytes": "^5.7.0",
"js-sha3": "0.8.0"
}
},
"@ethersproject/logger": {
- "version": "5.7.0"
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz",
+ "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig=="
},
"@ethersproject/networks": {
"version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz",
+ "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==",
"requires": {
"@ethersproject/logger": "^5.7.0"
}
},
"@ethersproject/pbkdf2": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz",
+ "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==",
"requires": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/sha2": "^5.7.0"
@@ -22534,12 +27135,16 @@
},
"@ethersproject/properties": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz",
+ "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==",
"requires": {
"@ethersproject/logger": "^5.7.0"
}
},
"@ethersproject/providers": {
"version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz",
+ "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==",
"requires": {
"@ethersproject/abstract-provider": "^5.7.0",
"@ethersproject/abstract-signer": "^5.7.0",
@@ -22565,12 +27170,16 @@
"dependencies": {
"ws": {
"version": "7.4.6",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
+ "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
"requires": {}
}
}
},
"@ethersproject/random": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz",
+ "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==",
"requires": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/logger": "^5.7.0"
@@ -22578,6 +27187,8 @@
},
"@ethersproject/rlp": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz",
+ "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==",
"requires": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/logger": "^5.7.0"
@@ -22585,6 +27196,8 @@
},
"@ethersproject/sha2": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz",
+ "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==",
"requires": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/logger": "^5.7.0",
@@ -22593,6 +27206,8 @@
},
"@ethersproject/signing-key": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz",
+ "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==",
"requires": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/logger": "^5.7.0",
@@ -22604,6 +27219,8 @@
},
"@ethersproject/solidity": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz",
+ "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==",
"requires": {
"@ethersproject/bignumber": "^5.7.0",
"@ethersproject/bytes": "^5.7.0",
@@ -22615,6 +27232,8 @@
},
"@ethersproject/strings": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz",
+ "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==",
"requires": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/constants": "^5.7.0",
@@ -22623,6 +27242,8 @@
},
"@ethersproject/transactions": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz",
+ "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==",
"requires": {
"@ethersproject/address": "^5.7.0",
"@ethersproject/bignumber": "^5.7.0",
@@ -22637,6 +27258,8 @@
},
"@ethersproject/units": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz",
+ "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==",
"requires": {
"@ethersproject/bignumber": "^5.7.0",
"@ethersproject/constants": "^5.7.0",
@@ -22645,6 +27268,8 @@
},
"@ethersproject/wallet": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz",
+ "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==",
"requires": {
"@ethersproject/abstract-provider": "^5.7.0",
"@ethersproject/abstract-signer": "^5.7.0",
@@ -22665,6 +27290,8 @@
},
"@ethersproject/web": {
"version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz",
+ "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==",
"requires": {
"@ethersproject/base64": "^5.7.0",
"@ethersproject/bytes": "^5.7.0",
@@ -22675,6 +27302,8 @@
},
"@ethersproject/wordlists": {
"version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz",
+ "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==",
"requires": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/hash": "^5.7.0",
@@ -22684,10 +27313,20 @@
}
},
"@fastify/busboy": {
- "version": "2.1.1"
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz",
+ "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA=="
+ },
+ "@gar/promisify": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz",
+ "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==",
+ "optional": true
},
"@humanwhocodes/config-array": {
"version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
+ "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==",
"requires": {
"@humanwhocodes/object-schema": "^2.0.3",
"debug": "^4.3.1",
@@ -22695,13 +27334,19 @@
}
},
"@humanwhocodes/module-importer": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="
},
"@humanwhocodes/object-schema": {
- "version": "2.0.3"
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
+ "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA=="
},
"@istanbuljs/load-nyc-config": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
+ "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
"dev": true,
"requires": {
"camelcase": "^5.3.1",
@@ -22713,6 +27358,8 @@
"dependencies": {
"argparse": {
"version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dev": true,
"requires": {
"sprintf-js": "~1.0.2"
@@ -22720,10 +27367,14 @@
},
"camelcase": {
"version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
"dev": true
},
"find-up": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"dev": true,
"requires": {
"locate-path": "^5.0.0",
@@ -22732,6 +27383,8 @@
},
"js-yaml": {
"version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
"dev": true,
"requires": {
"argparse": "^1.0.7",
@@ -22740,6 +27393,8 @@
},
"locate-path": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dev": true,
"requires": {
"p-locate": "^4.1.0"
@@ -22747,6 +27402,8 @@
},
"p-limit": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
"requires": {
"p-try": "^2.0.0"
@@ -22754,6 +27411,8 @@
},
"p-locate": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"dev": true,
"requires": {
"p-limit": "^2.2.0"
@@ -22761,20 +27420,28 @@
},
"resolve-from": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true
},
"sprintf-js": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
"dev": true
}
}
},
"@istanbuljs/schema": {
"version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
+ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
"dev": true
},
"@jeswr/prefixcc": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@jeswr/prefixcc/-/prefixcc-1.2.1.tgz",
+ "integrity": "sha512-kBBXbqsaeh3Irp416h/RbelqJgIOp6X/OJJlYmLyr/9qlBYKTKSCuEv5/xjZ0Yf8Yec+QFRYBaOQ2JkMBSH7KA==",
"requires": {
"cross-fetch": "^3.1.5",
"fsevents": "^2.3.2"
@@ -22782,24 +27449,34 @@
"dependencies": {
"cross-fetch": {
"version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz",
+ "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==",
"requires": {
"node-fetch": "^2.6.12"
}
},
"node-fetch": {
"version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
"requires": {
"whatwg-url": "^5.0.0"
}
},
"tr46": {
- "version": "0.0.3"
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
"webidl-conversions": {
- "version": "3.0.1"
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
},
"whatwg-url": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
"requires": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"
@@ -22808,7 +27485,9 @@
}
},
"@jridgewell/gen-mapping": {
- "version": "0.3.5",
+ "version": "0.3.8",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz",
+ "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==",
"dev": true,
"requires": {
"@jridgewell/set-array": "^1.2.1",
@@ -22817,17 +27496,25 @@
}
},
"@jridgewell/resolve-uri": {
- "version": "3.1.2"
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="
},
"@jridgewell/set-array": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
"dev": true
},
"@jridgewell/sourcemap-codec": {
- "version": "1.5.0"
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="
},
"@jridgewell/trace-mapping": {
"version": "0.3.25",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
"dev": true,
"requires": {
"@jridgewell/resolve-uri": "^3.1.0",
@@ -22836,6 +27523,8 @@
},
"@metamask/eth-sig-util": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz",
+ "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==",
"requires": {
"ethereumjs-abi": "^0.6.8",
"ethereumjs-util": "^6.2.1",
@@ -22846,6 +27535,8 @@
},
"@motrix/nat-api": {
"version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/@motrix/nat-api/-/nat-api-0.3.4.tgz",
+ "integrity": "sha512-RIH5sSP329Xn8TjDcAHYHn82VTajhdu2Ee4PTLA+9jCAi5x0D219D1XYW7nCK22ptcLrC+qzBXlWG/j16iuoLQ==",
"requires": {
"async": "^3.2.4",
"debug": "^4.3.4",
@@ -22857,18 +27548,26 @@
"dependencies": {
"node-fetch": {
"version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
"requires": {
"whatwg-url": "^5.0.0"
}
},
"tr46": {
- "version": "0.0.3"
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
"webidl-conversions": {
- "version": "3.0.1"
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
},
"whatwg-url": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
"requires": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"
@@ -22878,33 +27577,47 @@
},
"@noble/curves": {
"version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz",
+ "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==",
"requires": {
"@noble/hashes": "1.4.0"
},
"dependencies": {
"@noble/hashes": {
- "version": "1.4.0"
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz",
+ "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg=="
}
}
},
"@noble/hashes": {
- "version": "1.2.0"
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz",
+ "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ=="
},
"@noble/secp256k1": {
- "version": "1.7.1"
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz",
+ "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw=="
},
"@nodelib/fs.scandir": {
"version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
"requires": {
"@nodelib/fs.stat": "2.0.5",
"run-parallel": "^1.1.9"
}
},
"@nodelib/fs.stat": {
- "version": "2.0.5"
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="
},
"@nodelib/fs.walk": {
"version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
"requires": {
"@nodelib/fs.scandir": "2.1.5",
"fastq": "^1.6.0"
@@ -22912,6 +27625,8 @@
},
"@nomicfoundation/edr": {
"version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr/-/edr-0.6.5.tgz",
+ "integrity": "sha512-tAqMslLP+/2b2sZP4qe9AuGxG3OkQ5gGgHE4isUuq6dUVjwCRPFhAOhpdFl+OjY5P3yEv3hmq9HjUGRa2VNjng==",
"requires": {
"@nomicfoundation/edr-darwin-arm64": "0.6.5",
"@nomicfoundation/edr-darwin-x64": "0.6.5",
@@ -22923,37 +27638,57 @@
}
},
"@nomicfoundation/edr-darwin-arm64": {
- "version": "0.6.5"
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.6.5.tgz",
+ "integrity": "sha512-A9zCCbbNxBpLgjS1kEJSpqxIvGGAX4cYbpDYCU2f3jVqOwaZ/NU761y1SvuCRVpOwhoCXqByN9b7HPpHi0L4hw=="
},
"@nomicfoundation/edr-darwin-x64": {
- "version": "0.6.5"
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.6.5.tgz",
+ "integrity": "sha512-x3zBY/v3R0modR5CzlL6qMfFMdgwd6oHrWpTkuuXnPFOX8SU31qq87/230f4szM+ukGK8Hi+mNq7Ro2VF4Fj+w=="
},
"@nomicfoundation/edr-linux-arm64-gnu": {
- "version": "0.6.5"
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.6.5.tgz",
+ "integrity": "sha512-HGpB8f1h8ogqPHTyUpyPRKZxUk2lu061g97dOQ/W4CxevI0s/qiw5DB3U3smLvSnBHKOzYS1jkxlMeGN01ky7A=="
},
"@nomicfoundation/edr-linux-arm64-musl": {
- "version": "0.6.5"
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.6.5.tgz",
+ "integrity": "sha512-ESvJM5Y9XC03fZg9KaQg3Hl+mbx7dsSkTIAndoJS7X2SyakpL9KZpOSYrDk135o8s9P9lYJdPOyiq+Sh+XoCbQ=="
},
"@nomicfoundation/edr-linux-x64-gnu": {
- "version": "0.6.5"
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.6.5.tgz",
+ "integrity": "sha512-HCM1usyAR1Ew6RYf5AkMYGvHBy64cPA5NMbaeY72r0mpKaH3txiMyydcHibByOGdQ8iFLWpyUdpl1egotw+Tgg=="
},
"@nomicfoundation/edr-linux-x64-musl": {
- "version": "0.6.5"
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.6.5.tgz",
+ "integrity": "sha512-nB2uFRyczhAvWUH7NjCsIO6rHnQrof3xcCe6Mpmnzfl2PYcGyxN7iO4ZMmRcQS7R1Y670VH6+8ZBiRn8k43m7A=="
},
"@nomicfoundation/edr-win32-x64-msvc": {
- "version": "0.6.5"
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.6.5.tgz",
+ "integrity": "sha512-B9QD/4DSSCFtWicO8A3BrsnitO1FPv7axB62wq5Q+qeJ50yJlTmyeGY3cw62gWItdvy2mh3fRM6L1LpnHiB77A=="
},
"@nomicfoundation/ethereumjs-common": {
"version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.4.tgz",
+ "integrity": "sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg==",
"requires": {
"@nomicfoundation/ethereumjs-util": "9.0.4"
}
},
"@nomicfoundation/ethereumjs-rlp": {
- "version": "5.0.4"
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.4.tgz",
+ "integrity": "sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw=="
},
"@nomicfoundation/ethereumjs-tx": {
"version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.4.tgz",
+ "integrity": "sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw==",
"requires": {
"@nomicfoundation/ethereumjs-common": "4.0.4",
"@nomicfoundation/ethereumjs-rlp": "5.0.4",
@@ -22963,6 +27698,8 @@
"dependencies": {
"ethereum-cryptography": {
"version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
+ "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
"requires": {
"@types/pbkdf2": "^3.0.0",
"@types/secp256k1": "^4.0.1",
@@ -22985,6 +27722,8 @@
},
"@nomicfoundation/ethereumjs-util": {
"version": "9.0.4",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.4.tgz",
+ "integrity": "sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q==",
"requires": {
"@nomicfoundation/ethereumjs-rlp": "5.0.4",
"ethereum-cryptography": "0.1.3"
@@ -22992,6 +27731,8 @@
"dependencies": {
"ethereum-cryptography": {
"version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
+ "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
"requires": {
"@types/pbkdf2": "^3.0.0",
"@types/secp256k1": "^4.0.1",
@@ -23014,6 +27755,8 @@
},
"@nomicfoundation/solidity-analyzer": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.2.tgz",
+ "integrity": "sha512-q4n32/FNKIhQ3zQGGw5CvPF6GTvDCpYwIf7bEY/dZTZbgfDsHyjJwURxUJf3VQuuJj+fDIFl4+KkBVbw4Ef6jA==",
"requires": {
"@nomicfoundation/solidity-analyzer-darwin-arm64": "0.1.2",
"@nomicfoundation/solidity-analyzer-darwin-x64": "0.1.2",
@@ -23026,45 +27769,98 @@
},
"@nomicfoundation/solidity-analyzer-darwin-arm64": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.2.tgz",
+ "integrity": "sha512-JaqcWPDZENCvm++lFFGjrDd8mxtf+CtLd2MiXvMNTBD33dContTZ9TWETwNFwg7JTJT5Q9HEecH7FA+HTSsIUw==",
"optional": true
},
"@nomicfoundation/solidity-analyzer-darwin-x64": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.2.tgz",
+ "integrity": "sha512-fZNmVztrSXC03e9RONBT+CiksSeYcxI1wlzqyr0L7hsQlK1fzV+f04g2JtQ1c/Fe74ZwdV6aQBdd6Uwl1052sw==",
"optional": true
},
"@nomicfoundation/solidity-analyzer-linux-arm64-gnu": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.2.tgz",
+ "integrity": "sha512-3d54oc+9ZVBuB6nbp8wHylk4xh0N0Gc+bk+/uJae+rUgbOBwQSfuGIbAZt1wBXs5REkSmynEGcqx6DutoK0tPA==",
"optional": true
},
"@nomicfoundation/solidity-analyzer-linux-arm64-musl": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.2.tgz",
+ "integrity": "sha512-iDJfR2qf55vgsg7BtJa7iPiFAsYf2d0Tv/0B+vhtnI16+wfQeTbP7teookbGvAo0eJo7aLLm0xfS/GTkvHIucA==",
"optional": true
},
"@nomicfoundation/solidity-analyzer-linux-x64-gnu": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.2.tgz",
+ "integrity": "sha512-9dlHMAt5/2cpWyuJ9fQNOUXFB/vgSFORg1jpjX1Mh9hJ/MfZXlDdHQ+DpFCs32Zk5pxRBb07yGvSHk9/fezL+g==",
"optional": true
},
"@nomicfoundation/solidity-analyzer-linux-x64-musl": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.2.tgz",
+ "integrity": "sha512-GzzVeeJob3lfrSlDKQw2bRJ8rBf6mEYaWY+gW0JnTDHINA0s2gPR4km5RLIj1xeZZOYz4zRw+AEeYgLRqB2NXg==",
"optional": true
},
"@nomicfoundation/solidity-analyzer-win32-x64-msvc": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.2.tgz",
+ "integrity": "sha512-Fdjli4DCcFHb4Zgsz0uEJXZ2K7VEO+w5KVv7HmT7WO10iODdU9csC2az4jrhEsRtiR9Gfd74FlG0NYlw1BMdyA==",
"optional": true
},
+ "@npmcli/fs": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz",
+ "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==",
+ "optional": true,
+ "requires": {
+ "@gar/promisify": "^1.0.1",
+ "semver": "^7.3.5"
+ }
+ },
+ "@npmcli/move-file": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz",
+ "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==",
+ "optional": true,
+ "requires": {
+ "mkdirp": "^1.0.4",
+ "rimraf": "^3.0.2"
+ },
+ "dependencies": {
+ "mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "optional": true
+ }
+ }
+ },
"@openzeppelin/contracts": {
- "version": "4.9.6"
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.6.tgz",
+ "integrity": "sha512-xSmezSupL+y9VkHZJGDoCBpmnB2ogM13ccaYDWqJTfS3dbuHkgjuwDFUmaFauBCboQMGB/S5UqUl2y54X99BmA==",
+ "dev": true
},
"@polkadot-api/json-rpc-provider": {
"version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/@polkadot-api/json-rpc-provider/-/json-rpc-provider-0.0.1.tgz",
+ "integrity": "sha512-/SMC/l7foRjpykLTUTacIH05H3mr9ip8b5xxfwXlVezXrNVLp3Cv0GX6uItkKd+ZjzVPf3PFrDF2B2/HLSNESA==",
"optional": true
},
"@polkadot-api/json-rpc-provider-proxy": {
"version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/@polkadot-api/json-rpc-provider-proxy/-/json-rpc-provider-proxy-0.0.1.tgz",
+ "integrity": "sha512-gmVDUP8LpCH0BXewbzqXF2sdHddq1H1q+XrAW2of+KZj4woQkIGBRGTJHeBEVHe30EB+UejR1N2dT4PO/RvDdg==",
+ "dev": true,
"optional": true
},
"@polkadot-api/metadata-builders": {
"version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/@polkadot-api/metadata-builders/-/metadata-builders-0.0.1.tgz",
+ "integrity": "sha512-GCI78BHDzXAF/L2pZD6Aod/yl82adqQ7ftNmKg51ixRL02JpWUA+SpUKTJE5MY1p8kiJJIo09P2um24SiJHxNA==",
+ "dev": true,
"optional": true,
"requires": {
"@polkadot-api/substrate-bindings": "0.0.1",
@@ -23073,6 +27869,9 @@
},
"@polkadot-api/observable-client": {
"version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@polkadot-api/observable-client/-/observable-client-0.1.0.tgz",
+ "integrity": "sha512-GBCGDRztKorTLna/unjl/9SWZcRmvV58o9jwU2Y038VuPXZcr01jcw/1O3x+yeAuwyGzbucI/mLTDa1QoEml3A==",
+ "dev": true,
"optional": true,
"requires": {
"@polkadot-api/metadata-builders": "0.0.1",
@@ -23083,6 +27882,9 @@
},
"@polkadot-api/substrate-bindings": {
"version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/@polkadot-api/substrate-bindings/-/substrate-bindings-0.0.1.tgz",
+ "integrity": "sha512-bAe7a5bOPnuFVmpv7y4BBMRpNTnMmE0jtTqRUw/+D8ZlEHNVEJQGr4wu3QQCl7k1GnSV1wfv3mzIbYjErEBocg==",
+ "dev": true,
"optional": true,
"requires": {
"@noble/hashes": "^1.3.1",
@@ -23093,20 +27895,31 @@
"dependencies": {
"@noble/hashes": {
"version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.6.1.tgz",
+ "integrity": "sha512-pq5D8h10hHBjyqX+cfBm0i8JUXJ0UhczFc4r74zbuT9XgewFo2E3J1cOaGtdZynILNmQ685YWGzGE1Zv6io50w==",
+ "dev": true,
"optional": true
}
}
},
"@polkadot-api/substrate-client": {
"version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/@polkadot-api/substrate-client/-/substrate-client-0.0.1.tgz",
+ "integrity": "sha512-9Bg9SGc3AwE+wXONQoW8GC00N3v6lCZLW74HQzqB6ROdcm5VAHM4CB/xRzWSUF9CXL78ugiwtHx3wBcpx4H4Wg==",
+ "dev": true,
"optional": true
},
"@polkadot-api/utils": {
"version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/@polkadot-api/utils/-/utils-0.0.1.tgz",
+ "integrity": "sha512-3j+pRmlF9SgiYDabSdZsBSsN5XHbpXOAce1lWj56IEEaFZVjsiCaxDOA7C9nCcgfVXuvnbxqqEGQvnY+QfBAUw==",
+ "dev": true,
"optional": true
},
"@polkadot/api": {
"version": "9.14.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-9.14.2.tgz",
+ "integrity": "sha512-R3eYFj2JgY1zRb+OCYQxNlJXCs2FA+AU4uIEiVcXnVLmR3M55tkRNEwYAZmiFxx0pQmegGgPMc33q7TWGdw24A==",
"requires": {
"@babel/runtime": "^7.20.13",
"@polkadot/api-augment": "9.14.2",
@@ -23129,6 +27942,8 @@
},
"@polkadot/api-augment": {
"version": "9.14.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-9.14.2.tgz",
+ "integrity": "sha512-19MmW8AHEcLkdcUIo3LLk0eCQgREWqNSxkUyOeWn7UiNMY1AhDOOwMStUBNCvrIDK6VL6GGc1sY7rkPCLMuKSw==",
"requires": {
"@babel/runtime": "^7.20.13",
"@polkadot/api-base": "9.14.2",
@@ -23141,6 +27956,8 @@
},
"@polkadot/api-base": {
"version": "9.14.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/api-base/-/api-base-9.14.2.tgz",
+ "integrity": "sha512-ky9fmzG1Tnrjr/SBZ0aBB21l0TFr+CIyQenQczoUyVgiuxVaI/2Bp6R2SFrHhG28P+PW2/RcYhn2oIAR2Z2fZQ==",
"requires": {
"@babel/runtime": "^7.20.13",
"@polkadot/rpc-core": "9.14.2",
@@ -23151,6 +27968,8 @@
},
"@polkadot/api-derive": {
"version": "9.14.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-9.14.2.tgz",
+ "integrity": "sha512-yw9OXucmeggmFqBTMgza0uZwhNjPxS7MaT7lSCUIRKckl1GejdV+qMhL3XFxPFeYzXwzFpdPG11zWf+qJlalqw==",
"requires": {
"@babel/runtime": "^7.20.13",
"@polkadot/api": "9.14.2",
@@ -23166,6 +27985,8 @@
},
"@polkadot/keyring": {
"version": "10.4.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-10.4.2.tgz",
+ "integrity": "sha512-7iHhJuXaHrRTG6cJDbZE9G+c1ts1dujp0qbO4RfAPmT7YUvphHvAtCKueN9UKPz5+TYDL+rP/jDEaSKU8jl/qQ==",
"requires": {
"@babel/runtime": "^7.20.13",
"@polkadot/util": "10.4.2",
@@ -23174,6 +27995,8 @@
},
"@polkadot/networks": {
"version": "10.4.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/networks/-/networks-10.4.2.tgz",
+ "integrity": "sha512-FAh/znrEvWBiA/LbcT5GXHsCFUl//y9KqxLghSr/CreAmAergiJNT0MVUezC7Y36nkATgmsr4ylFwIxhVtuuCw==",
"requires": {
"@babel/runtime": "^7.20.13",
"@polkadot/util": "10.4.2",
@@ -23182,6 +28005,8 @@
},
"@polkadot/rpc-augment": {
"version": "9.14.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-9.14.2.tgz",
+ "integrity": "sha512-mOubRm3qbKZTbP9H01XRrfTk7k5it9WyzaWAg72DJBQBYdgPUUkGSgpPD/Srkk5/5GAQTWVWL1I2UIBKJ4TJjQ==",
"requires": {
"@babel/runtime": "^7.20.13",
"@polkadot/rpc-core": "9.14.2",
@@ -23192,6 +28017,8 @@
},
"@polkadot/rpc-core": {
"version": "9.14.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-9.14.2.tgz",
+ "integrity": "sha512-krA/mtQ5t9nUQEsEVC1sjkttLuzN6z6gyJxK2IlpMS3S5ncy/R6w4FOpy+Q0H18Dn83JBo0p7ZtY7Y6XkK48Kw==",
"requires": {
"@babel/runtime": "^7.20.13",
"@polkadot/rpc-augment": "9.14.2",
@@ -23203,6 +28030,8 @@
},
"@polkadot/rpc-provider": {
"version": "9.14.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-9.14.2.tgz",
+ "integrity": "sha512-YTSywjD5PF01V47Ru5tln2LlpUwJiSOdz6rlJXPpMaY53hUp7+xMU01FVAQ1bllSBNisSD1Msv/mYHq84Oai2g==",
"requires": {
"@babel/runtime": "^7.20.13",
"@polkadot/keyring": "^10.4.2",
@@ -23221,6 +28050,8 @@
},
"@polkadot/types": {
"version": "9.14.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-9.14.2.tgz",
+ "integrity": "sha512-hGLddTiJbvowhhUZJ3k+olmmBc1KAjWIQxujIUIYASih8FQ3/YJDKxaofGOzh0VygOKW3jxQBN2VZPofyDP9KQ==",
"requires": {
"@babel/runtime": "^7.20.13",
"@polkadot/keyring": "^10.4.2",
@@ -23234,6 +28065,8 @@
},
"@polkadot/types-augment": {
"version": "9.14.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-9.14.2.tgz",
+ "integrity": "sha512-WO9d7RJufUeY3iFgt2Wz762kOu1tjEiGBR5TT4AHtpEchVHUeosVTrN9eycC+BhleqYu52CocKz6u3qCT/jKLg==",
"requires": {
"@babel/runtime": "^7.20.13",
"@polkadot/types": "9.14.2",
@@ -23243,6 +28076,8 @@
},
"@polkadot/types-codec": {
"version": "9.14.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-9.14.2.tgz",
+ "integrity": "sha512-AJ4XF7W1no4PENLBRU955V6gDxJw0h++EN3YoDgThozZ0sj3OxyFupKgNBZcZb2V23H8JxQozzIad8k+nJbO1w==",
"requires": {
"@babel/runtime": "^7.20.13",
"@polkadot/util": "^10.4.2",
@@ -23251,6 +28086,8 @@
},
"@polkadot/types-create": {
"version": "9.14.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-create/-/types-create-9.14.2.tgz",
+ "integrity": "sha512-nSnKpBierlmGBQT8r6/SHf6uamBIzk4WmdMsAsR4uJKJF1PtbIqx2W5PY91xWSiMSNMzjkbCppHkwaDAMwLGaw==",
"requires": {
"@babel/runtime": "^7.20.13",
"@polkadot/types-codec": "9.14.2",
@@ -23259,6 +28096,8 @@
},
"@polkadot/types-known": {
"version": "9.14.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-9.14.2.tgz",
+ "integrity": "sha512-iM8WOCgguzJ3TLMqlm4K1gKQEwWm2zxEKT1HZZ1irs/lAbBk9MquDWDvebryiw3XsLB8xgrp3RTIBn2Q4FjB2A==",
"requires": {
"@babel/runtime": "^7.20.13",
"@polkadot/networks": "^10.4.2",
@@ -23270,6 +28109,8 @@
},
"@polkadot/types-support": {
"version": "9.14.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-support/-/types-support-9.14.2.tgz",
+ "integrity": "sha512-VWCOPgXDK3XtXT7wMLyIWeNDZxUbNcw/8Pn6n6vMogs7o/n4h6WGbGMeTIQhPWyn831/RmkVs5+2DUC+2LlOhw==",
"requires": {
"@babel/runtime": "^7.20.13",
"@polkadot/util": "^10.4.2"
@@ -23277,6 +28118,8 @@
},
"@polkadot/util": {
"version": "10.4.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.4.2.tgz",
+ "integrity": "sha512-0r5MGICYiaCdWnx+7Axlpvzisy/bi1wZGXgCSw5+ZTyPTOqvsYRqM2X879yxvMsGfibxzWqNzaiVjToz1jvUaA==",
"requires": {
"@babel/runtime": "^7.20.13",
"@polkadot/x-bigint": "10.4.2",
@@ -23289,6 +28132,8 @@
},
"@polkadot/util-crypto": {
"version": "10.4.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-10.4.2.tgz",
+ "integrity": "sha512-RxZvF7C4+EF3fzQv8hZOLrYCBq5+wA+2LWv98nECkroChY3C2ZZvyWDqn8+aonNULt4dCVTWDZM0QIY6y4LUAQ==",
"requires": {
"@babel/runtime": "^7.20.13",
"@noble/hashes": "1.2.0",
@@ -23305,12 +28150,16 @@
},
"@polkadot/wasm-bridge": {
"version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-bridge/-/wasm-bridge-6.4.1.tgz",
+ "integrity": "sha512-QZDvz6dsUlbYsaMV5biZgZWkYH9BC5AfhT0f0/knv8+LrbAoQdP3Asbvddw8vyU9sbpuCHXrd4bDLBwUCRfrBQ==",
"requires": {
"@babel/runtime": "^7.20.6"
}
},
"@polkadot/wasm-crypto": {
"version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto/-/wasm-crypto-6.4.1.tgz",
+ "integrity": "sha512-FH+dcDPdhSLJvwL0pMLtn/LIPd62QDPODZRCmDyw+pFjLOMaRBc7raomWUOqyRWJTnqVf/iscc2rLVLNMyt7ag==",
"requires": {
"@babel/runtime": "^7.20.6",
"@polkadot/wasm-bridge": "6.4.1",
@@ -23322,12 +28171,16 @@
},
"@polkadot/wasm-crypto-asmjs": {
"version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-6.4.1.tgz",
+ "integrity": "sha512-UxZTwuBZlnODGIQdCsE2Sn/jU0O2xrNQ/TkhRFELfkZXEXTNu4lw6NpaKq7Iey4L+wKd8h4lT3VPVkMcPBLOvA==",
"requires": {
"@babel/runtime": "^7.20.6"
}
},
"@polkadot/wasm-crypto-init": {
"version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-init/-/wasm-crypto-init-6.4.1.tgz",
+ "integrity": "sha512-1ALagSi/nfkyFaH6JDYfy/QbicVbSn99K8PV9rctDUfxc7P06R7CoqbjGQ4OMPX6w1WYVPU7B4jPHGLYBlVuMw==",
"requires": {
"@babel/runtime": "^7.20.6",
"@polkadot/wasm-bridge": "6.4.1",
@@ -23337,6 +28190,8 @@
},
"@polkadot/wasm-crypto-wasm": {
"version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-6.4.1.tgz",
+ "integrity": "sha512-3VV9ZGzh0ZY3SmkkSw+0TRXxIpiO0nB8lFwlRgcwaCihwrvLfRnH9GI8WE12mKsHVjWTEVR3ogzILJxccAUjDA==",
"requires": {
"@babel/runtime": "^7.20.6",
"@polkadot/wasm-util": "6.4.1"
@@ -23344,12 +28199,16 @@
},
"@polkadot/wasm-util": {
"version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-util/-/wasm-util-6.4.1.tgz",
+ "integrity": "sha512-Uwo+WpEsDmFExWC5kTNvsVhvqXMZEKf4gUHXFn4c6Xz4lmieRT5g+1bO1KJ21pl4msuIgdV3Bksfs/oiqMFqlw==",
"requires": {
"@babel/runtime": "^7.20.6"
}
},
"@polkadot/x-bigint": {
"version": "10.4.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.4.2.tgz",
+ "integrity": "sha512-awRiox+/XSReLzimAU94fPldowiwnnMUkQJe8AebYhNocAj6SJU00GNoj6j6tAho6yleOwrTJXZaWFBaQVJQNg==",
"requires": {
"@babel/runtime": "^7.20.13",
"@polkadot/x-global": "10.4.2"
@@ -23357,6 +28216,8 @@
},
"@polkadot/x-fetch": {
"version": "10.4.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-fetch/-/x-fetch-10.4.2.tgz",
+ "integrity": "sha512-Ubb64yaM4qwhogNP+4mZ3ibRghEg5UuCYRMNaCFoPgNAY8tQXuDKrHzeks3+frlmeH9YRd89o8wXLtWouwZIcw==",
"requires": {
"@babel/runtime": "^7.20.13",
"@polkadot/x-global": "10.4.2",
@@ -23366,12 +28227,16 @@
},
"@polkadot/x-global": {
"version": "10.4.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.4.2.tgz",
+ "integrity": "sha512-g6GXHD/ykZvHap3M6wh19dO70Zm43l4jEhlxf5LtTo5/0/UporFCXr2YJYZqfbn9JbQwl1AU+NroYio+vtJdiA==",
"requires": {
"@babel/runtime": "^7.20.13"
}
},
"@polkadot/x-randomvalues": {
"version": "10.4.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-10.4.2.tgz",
+ "integrity": "sha512-mf1Wbpe7pRZHO0V3V89isPLqZOy5XGX2bCqsfUWHgb1NvV1MMx5TjVjdaYyNlGTiOkAmJKlOHshcfPU2sYWpNg==",
"requires": {
"@babel/runtime": "^7.20.13",
"@polkadot/x-global": "10.4.2"
@@ -23379,6 +28244,8 @@
},
"@polkadot/x-textdecoder": {
"version": "10.4.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.4.2.tgz",
+ "integrity": "sha512-d3ADduOKUTU+cliz839+KCFmi23pxTlabH7qh7Vs1GZQvXOELWdqFOqakdiAjtMn68n1KVF4O14Y+OUm7gp/zA==",
"requires": {
"@babel/runtime": "^7.20.13",
"@polkadot/x-global": "10.4.2"
@@ -23386,6 +28253,8 @@
},
"@polkadot/x-textencoder": {
"version": "10.4.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.4.2.tgz",
+ "integrity": "sha512-mxcQuA1exnyv74Kasl5vxBq01QwckG088lYjc3KwmND6+pPrW2OWagbxFX5VFoDLDAE+UJtnUHsjdWyOTDhpQA==",
"requires": {
"@babel/runtime": "^7.20.13",
"@polkadot/x-global": "10.4.2"
@@ -23393,6 +28262,8 @@
},
"@polkadot/x-ws": {
"version": "10.4.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-ws/-/x-ws-10.4.2.tgz",
+ "integrity": "sha512-3gHSTXAWQu1EMcMVTF5QDKHhEHzKxhAArweEyDXE7VsgKUP/ixxw4hVZBrkX122iI5l5mjSiooRSnp/Zl3xqDQ==",
"requires": {
"@babel/runtime": "^7.20.13",
"@polkadot/x-global": "10.4.2",
@@ -23402,6 +28273,9 @@
},
"@prb/math": {
"version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@prb/math/-/math-2.5.0.tgz",
+ "integrity": "sha512-iSNQd4L3HaYuAIhJliLVa7WGsyjFiQHGpomrFgdj7FhYGHT6Yo8bBwbmwAPF1bHD3LN8gdg+ssKrRUPNaNPEVw==",
+ "dev": true,
"requires": {
"@ethersproject/bignumber": "^5.5.0",
"decimal.js": "^10.3.1",
@@ -23410,58 +28284,91 @@
}
},
"@protobufjs/aspromise": {
- "version": "1.1.2"
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
+ "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ=="
},
"@protobufjs/base64": {
- "version": "1.1.2"
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
+ "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg=="
},
"@protobufjs/codegen": {
- "version": "2.0.4"
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
+ "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg=="
},
"@protobufjs/eventemitter": {
- "version": "1.1.0"
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
+ "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q=="
},
"@protobufjs/fetch": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
+ "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==",
"requires": {
"@protobufjs/aspromise": "^1.1.1",
"@protobufjs/inquire": "^1.1.0"
}
},
"@protobufjs/float": {
- "version": "1.0.2"
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
+ "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ=="
},
"@protobufjs/inquire": {
- "version": "1.1.0"
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
+ "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q=="
},
"@protobufjs/path": {
- "version": "1.1.2"
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
+ "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA=="
},
"@protobufjs/pool": {
- "version": "1.1.0"
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
+ "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw=="
},
"@protobufjs/utf8": {
- "version": "1.1.0"
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
+ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw=="
+ },
+ "@questdb/nodejs-client": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@questdb/nodejs-client/-/nodejs-client-3.0.0.tgz",
+ "integrity": "sha512-lBKd732rRpS/pqyWgCJFVXi9N1YoWDAUZzp6BngBVxH92As/NDXigZmCYKQVKpAEGYx14606CH5AoJ23qf3oqA=="
},
"@rdfjs/types": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@rdfjs/types/-/types-1.1.2.tgz",
+ "integrity": "sha512-wqpOJK1QCbmsGNtyzYnojPU8gRDPid2JO0Q0kMtb4j65xhCK880cnKAfEOwC+dX85VJcCByQx5zOwyyfCjDJsg==",
"requires": {
"@types/node": "*"
}
},
"@rtsao/scc": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz",
+ "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==",
"dev": true,
"peer": true
},
"@rubensworks/saxes": {
"version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/@rubensworks/saxes/-/saxes-6.0.1.tgz",
+ "integrity": "sha512-UW4OTIsOtJ5KSXo2Tchi4lhZqu+tlHrOAs4nNti7CrtB53kAZl3/hyrTi6HkMihxdbDM6m2Zc3swc/ZewEe1xw==",
"requires": {
"xmlchars": "^2.2.0"
}
},
"@rushstack/node-core-library": {
"version": "5.10.0",
+ "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.10.0.tgz",
+ "integrity": "sha512-2pPLCuS/3x7DCd7liZkqOewGM0OzLyCacdvOe8j6Yrx9LkETGnxul1t7603bIaB8nUAooORcct9fFDOQMbWAgw==",
"requires": {
"ajv": "~8.13.0",
"ajv-draft-04": "~1.0.0",
@@ -23475,6 +28382,8 @@
"dependencies": {
"ajv": {
"version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz",
+ "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==",
"requires": {
"fast-deep-equal": "^3.1.3",
"json-schema-traverse": "^1.0.0",
@@ -23484,10 +28393,14 @@
},
"ajv-draft-04": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz",
+ "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==",
"requires": {}
},
"fs-extra": {
"version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
+ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
"requires": {
"graceful-fs": "^4.1.2",
"jsonfile": "^4.0.0",
@@ -23495,36 +28408,50 @@
}
},
"json-schema-traverse": {
- "version": "1.0.0"
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
},
"jsonfile": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
"requires": {
"graceful-fs": "^4.1.6"
}
},
"lru-cache": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"requires": {
"yallist": "^4.0.0"
}
},
"semver": {
"version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"requires": {
"lru-cache": "^6.0.0"
}
},
"universalify": {
- "version": "0.1.2"
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
},
"yallist": {
- "version": "4.0.0"
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
}
}
},
"@rushstack/terminal": {
"version": "0.14.3",
+ "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.14.3.tgz",
+ "integrity": "sha512-csXbZsAdab/v8DbU1sz7WC2aNaKArcdS/FPmXMOXEj/JBBZMvDK0+1b4Qao0kkG0ciB1Qe86/Mb68GjH6/TnMw==",
"requires": {
"@rushstack/node-core-library": "5.10.0",
"supports-color": "~8.1.1"
@@ -23532,6 +28459,8 @@
},
"@rushstack/ts-command-line": {
"version": "4.23.1",
+ "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.23.1.tgz",
+ "integrity": "sha512-40jTmYoiu/xlIpkkRsVfENtBq4CW3R4azbL0Vmda+fMwHWqss6wwf/Cy/UJmMqIzpfYc2OTnjYP1ZLD3CmyeCA==",
"requires": {
"@rushstack/terminal": "0.14.3",
"@types/argparse": "1.0.38",
@@ -23541,20 +28470,28 @@
"dependencies": {
"argparse": {
"version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"requires": {
"sprintf-js": "~1.0.2"
}
},
"sprintf-js": {
- "version": "1.0.3"
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
}
}
},
"@scure/base": {
- "version": "1.1.1"
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz",
+ "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA=="
},
"@scure/bip32": {
"version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz",
+ "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==",
"requires": {
"@noble/hashes": "~1.2.0",
"@noble/secp256k1": "~1.7.0",
@@ -23563,6 +28500,8 @@
},
"@scure/bip39": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz",
+ "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==",
"requires": {
"@noble/hashes": "~1.2.0",
"@scure/base": "~1.1.0"
@@ -23570,6 +28509,8 @@
},
"@sentry/core": {
"version": "5.30.0",
+ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz",
+ "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==",
"requires": {
"@sentry/hub": "5.30.0",
"@sentry/minimal": "5.30.0",
@@ -23579,12 +28520,16 @@
},
"dependencies": {
"tslib": {
- "version": "1.14.1"
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
}
}
},
"@sentry/hub": {
"version": "5.30.0",
+ "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz",
+ "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==",
"requires": {
"@sentry/types": "5.30.0",
"@sentry/utils": "5.30.0",
@@ -23592,12 +28537,16 @@
},
"dependencies": {
"tslib": {
- "version": "1.14.1"
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
}
}
},
"@sentry/minimal": {
"version": "5.30.0",
+ "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz",
+ "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==",
"requires": {
"@sentry/hub": "5.30.0",
"@sentry/types": "5.30.0",
@@ -23605,12 +28554,16 @@
},
"dependencies": {
"tslib": {
- "version": "1.14.1"
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
}
}
},
"@sentry/node": {
"version": "5.30.0",
+ "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz",
+ "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==",
"requires": {
"@sentry/core": "5.30.0",
"@sentry/hub": "5.30.0",
@@ -23624,15 +28577,21 @@
},
"dependencies": {
"cookie": {
- "version": "0.4.2"
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
+ "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA=="
},
"tslib": {
- "version": "1.14.1"
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
}
}
},
"@sentry/tracing": {
"version": "5.30.0",
+ "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz",
+ "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==",
"requires": {
"@sentry/hub": "5.30.0",
"@sentry/minimal": "5.30.0",
@@ -23642,31 +28601,43 @@
},
"dependencies": {
"tslib": {
- "version": "1.14.1"
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
}
}
},
"@sentry/types": {
- "version": "5.30.0"
+ "version": "5.30.0",
+ "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz",
+ "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw=="
},
"@sentry/utils": {
"version": "5.30.0",
+ "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz",
+ "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==",
"requires": {
"@sentry/types": "5.30.0",
"tslib": "^1.9.3"
},
"dependencies": {
"tslib": {
- "version": "1.14.1"
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
}
}
},
"@sindresorhus/is": {
"version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
+ "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==",
"dev": true
},
"@sinonjs/commons": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz",
+ "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==",
"dev": true,
"requires": {
"type-detect": "4.0.8"
@@ -23674,12 +28645,16 @@
"dependencies": {
"type-detect": {
"version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
"dev": true
}
}
},
"@sinonjs/fake-timers": {
"version": "9.1.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz",
+ "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==",
"dev": true,
"requires": {
"@sinonjs/commons": "^1.7.0"
@@ -23687,6 +28662,8 @@
"dependencies": {
"@sinonjs/commons": {
"version": "1.8.6",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz",
+ "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==",
"dev": true,
"requires": {
"type-detect": "4.0.8"
@@ -23694,12 +28671,16 @@
},
"type-detect": {
"version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
"dev": true
}
}
},
"@sinonjs/samsam": {
"version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-7.0.1.tgz",
+ "integrity": "sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw==",
"dev": true,
"requires": {
"@sinonjs/commons": "^2.0.0",
@@ -23709,29 +28690,41 @@
},
"@sinonjs/text-encoding": {
"version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.3.tgz",
+ "integrity": "sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA==",
"dev": true
},
"@smessie/readable-web-to-node-stream": {
"version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@smessie/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.3.tgz",
+ "integrity": "sha512-8FFE7psRtRWQT31/duqbmgnSf2++QLR2YH9kj5iwsHhnoqSvHdOY3SAN5e7dhc+60p2cNk7rv3HYOiXOapTEXQ==",
"requires": {
"process": "^0.11.10",
"readable-stream": "^4.5.1"
}
},
"@stablelib/aead": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz",
+ "integrity": "sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg=="
},
"@stablelib/binary": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz",
+ "integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==",
"requires": {
"@stablelib/int": "^1.0.1"
}
},
"@stablelib/bytes": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz",
+ "integrity": "sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ=="
},
"@stablelib/chacha": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz",
+ "integrity": "sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==",
"requires": {
"@stablelib/binary": "^1.0.1",
"@stablelib/wipe": "^1.0.1"
@@ -23739,6 +28732,8 @@
},
"@stablelib/chacha20poly1305": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz",
+ "integrity": "sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==",
"requires": {
"@stablelib/aead": "^1.0.1",
"@stablelib/binary": "^1.0.1",
@@ -23749,13 +28744,19 @@
}
},
"@stablelib/constant-time": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz",
+ "integrity": "sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg=="
},
"@stablelib/hash": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz",
+ "integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg=="
},
"@stablelib/hkdf": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/hkdf/-/hkdf-1.0.1.tgz",
+ "integrity": "sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g==",
"requires": {
"@stablelib/hash": "^1.0.1",
"@stablelib/hmac": "^1.0.1",
@@ -23764,6 +28765,8 @@
},
"@stablelib/hmac": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/hmac/-/hmac-1.0.1.tgz",
+ "integrity": "sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA==",
"requires": {
"@stablelib/constant-time": "^1.0.1",
"@stablelib/hash": "^1.0.1",
@@ -23771,16 +28774,22 @@
}
},
"@stablelib/int": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz",
+ "integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w=="
},
"@stablelib/keyagreement": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz",
+ "integrity": "sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==",
"requires": {
"@stablelib/bytes": "^1.0.1"
}
},
"@stablelib/poly1305": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz",
+ "integrity": "sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==",
"requires": {
"@stablelib/constant-time": "^1.0.1",
"@stablelib/wipe": "^1.0.1"
@@ -23788,6 +28797,8 @@
},
"@stablelib/random": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.2.tgz",
+ "integrity": "sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==",
"requires": {
"@stablelib/binary": "^1.0.1",
"@stablelib/wipe": "^1.0.1"
@@ -23795,6 +28806,8 @@
},
"@stablelib/sha256": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/sha256/-/sha256-1.0.1.tgz",
+ "integrity": "sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==",
"requires": {
"@stablelib/binary": "^1.0.1",
"@stablelib/hash": "^1.0.1",
@@ -23802,10 +28815,14 @@
}
},
"@stablelib/wipe": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz",
+ "integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg=="
},
"@stablelib/x25519": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.3.tgz",
+ "integrity": "sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw==",
"requires": {
"@stablelib/keyagreement": "^1.0.1",
"@stablelib/random": "^1.0.2",
@@ -23814,6 +28831,8 @@
},
"@substrate/connect": {
"version": "0.7.19",
+ "resolved": "https://registry.npmjs.org/@substrate/connect/-/connect-0.7.19.tgz",
+ "integrity": "sha512-+DDRadc466gCmDU71sHrYOt1HcI2Cbhm7zdCFjZfFVHXhC/E8tOdrVSglAH2HDEHR0x2SiHRxtxOGC7ak2Zjog==",
"optional": true,
"requires": {
"@substrate/connect-extension-protocol": "^1.0.1",
@@ -23823,20 +28842,29 @@
"dependencies": {
"eventemitter3": {
"version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
"optional": true
}
}
},
"@substrate/connect-extension-protocol": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-1.0.1.tgz",
+ "integrity": "sha512-161JhCC1csjH3GE5mPLEd7HbWtwNSPJBg3p1Ksz9SFlTzj/bgEwudiRN2y5i0MoLGCIJRYKyKGMxVnd29PzNjg==",
"optional": true
},
"@substrate/connect-known-chains": {
"version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/@substrate/connect-known-chains/-/connect-known-chains-1.8.0.tgz",
+ "integrity": "sha512-sl7WfeDgnZuPvUl5Xw0XIziOTe8rEBJ3uugyDETGnafxEbjYMv5aJL0ilq5djhnQ7l9OuMJCN3Ckved2yINeeQ==",
"optional": true
},
"@substrate/light-client-extension-helpers": {
"version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/@substrate/light-client-extension-helpers/-/light-client-extension-helpers-0.0.6.tgz",
+ "integrity": "sha512-girltEuxQ1BvkJWmc8JJlk4ZxnlGXc/wkLcNguhY+UoDEMBK0LsdtfzQKIfrIehi4QdeSBlFEFBoI4RqPmsZzA==",
+ "dev": true,
"optional": true,
"requires": {
"@polkadot-api/json-rpc-provider": "0.0.1",
@@ -23850,12 +28878,17 @@
"dependencies": {
"@substrate/connect-extension-protocol": {
"version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-2.2.1.tgz",
+ "integrity": "sha512-GoafTgm/Jey9E4Xlj4Z5ZBt/H4drH2CNq8VrAro80rtoznrXnFDNVivLQzZN0Xaj2g8YXSn9pC9Oc9IovYZJXw==",
+ "dev": true,
"optional": true
}
}
},
"@substrate/smoldot-light": {
"version": "0.7.9",
+ "resolved": "https://registry.npmjs.org/@substrate/smoldot-light/-/smoldot-light-0.7.9.tgz",
+ "integrity": "sha512-HP8iP7sFYlpSgjjbo0lqHyU+gu9lL2hbDNce6dWk5/10mFFF9jKIFGfui4zCecUY808o/Go9pan/31kMJoLbug==",
"optional": true,
"requires": {
"pako": "^2.0.4",
@@ -23863,10 +28896,14 @@
}
},
"@substrate/ss58-registry": {
- "version": "1.51.0"
+ "version": "1.51.0",
+ "resolved": "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.51.0.tgz",
+ "integrity": "sha512-TWDurLiPxndFgKjVavCniytBIw+t4ViOi7TYp9h/D0NMmkEc9klFTo+827eyEJ0lELpqO207Ey7uGxUa+BS1jQ=="
},
"@szmarczak/http-timer": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz",
+ "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==",
"dev": true,
"requires": {
"defer-to-connect": "^2.0.1"
@@ -23874,35 +28911,53 @@
},
"@teppeis/multimaps": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@teppeis/multimaps/-/multimaps-2.0.0.tgz",
+ "integrity": "sha512-TL1adzq1HdxUf9WYduLcQ/DNGYiz71U31QRgbnr0Ef1cPyOUOsBojxHVWpFeOSUucB6Lrs0LxFRA14ntgtkc9w==",
"dev": true
},
"@tootallnate/once": {
"version": "1.1.2",
- "dev": true
+ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
+ "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
+ "devOptional": true
},
"@tsconfig/node10": {
- "version": "1.0.11"
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz",
+ "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw=="
},
"@tsconfig/node12": {
- "version": "1.0.11"
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
+ "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag=="
},
"@tsconfig/node14": {
- "version": "1.0.3"
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
+ "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow=="
},
"@tsconfig/node16": {
- "version": "1.0.4"
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
+ "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA=="
},
"@types/argparse": {
- "version": "1.0.38"
+ "version": "1.0.38",
+ "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz",
+ "integrity": "sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA=="
},
"@types/bn.js": {
"version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.6.tgz",
+ "integrity": "sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w==",
"requires": {
"@types/node": "*"
}
},
"@types/cacheable-request": {
"version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz",
+ "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==",
"dev": true,
"requires": {
"@types/http-cache-semantics": "*",
@@ -23913,27 +28968,37 @@
},
"@types/debug": {
"version": "4.1.12",
+ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz",
+ "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
"requires": {
"@types/ms": "*"
}
},
"@types/http-cache-semantics": {
"version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz",
+ "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==",
"dev": true
},
"@types/http-link-header": {
"version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/@types/http-link-header/-/http-link-header-1.0.7.tgz",
+ "integrity": "sha512-snm5oLckop0K3cTDAiBnZDy6ncx9DJ3mCRDvs42C884MbVYPP74Tiq2hFsSDRTyjK6RyDYDIulPiW23ge+g5Lw==",
"requires": {
"@types/node": "*"
}
},
"@types/json5": {
"version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
"dev": true,
"peer": true
},
"@types/keyv": {
"version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz",
+ "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==",
"dev": true,
"requires": {
"@types/node": "*"
@@ -23941,38 +29006,56 @@
},
"@types/lodash": {
"version": "4.17.13",
+ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.13.tgz",
+ "integrity": "sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==",
"dev": true
},
"@types/long": {
- "version": "4.0.2"
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz",
+ "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA=="
},
"@types/lru-cache": {
- "version": "5.1.1"
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw=="
},
"@types/minimatch": {
- "version": "3.0.5"
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
+ "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ=="
},
"@types/minimist": {
- "version": "1.2.5"
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag=="
},
"@types/ms": {
- "version": "0.7.34"
+ "version": "0.7.34",
+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz",
+ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g=="
},
"@types/n3": {
"version": "1.21.1",
+ "resolved": "https://registry.npmjs.org/@types/n3/-/n3-1.21.1.tgz",
+ "integrity": "sha512-9KxFlFj3etnpdI2nyQEp/jHry5DHxWT22z9Nc/y/hdHe0CHVc9rKu+NacWKUyN06dDLDh7ZnjCzY8yBJ9lmzdw==",
"requires": {
"@rdfjs/types": "^1.1.0",
"@types/node": "*"
}
},
"@types/node": {
- "version": "22.10.1",
+ "version": "22.10.2",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz",
+ "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==",
"requires": {
"undici-types": "~6.20.0"
}
},
"@types/node-fetch": {
"version": "2.6.12",
+ "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.12.tgz",
+ "integrity": "sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==",
"requires": {
"@types/node": "*",
"form-data": "^4.0.0"
@@ -23980,118 +29063,176 @@
},
"@types/pbkdf2": {
"version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz",
+ "integrity": "sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==",
"requires": {
"@types/node": "*"
}
},
"@types/qs": {
- "version": "6.9.17"
+ "version": "6.9.17",
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz",
+ "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ=="
},
"@types/readable-stream": {
"version": "2.3.15",
+ "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.15.tgz",
+ "integrity": "sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==",
"requires": {
"@types/node": "*",
"safe-buffer": "~5.1.1"
},
"dependencies": {
"safe-buffer": {
- "version": "5.1.2"
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
}
}
},
"@types/responselike": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz",
+ "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==",
"dev": true,
"requires": {
"@types/node": "*"
}
},
"@types/retry": {
- "version": "0.12.0"
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
+ "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA=="
},
"@types/secp256k1": {
"version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz",
+ "integrity": "sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==",
"requires": {
"@types/node": "*"
}
},
"@types/semver": {
- "version": "7.5.8"
+ "version": "7.5.8",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
+ "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ=="
},
"@types/spark-md5": {
- "version": "3.0.5"
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@types/spark-md5/-/spark-md5-3.0.5.tgz",
+ "integrity": "sha512-lWf05dnD42DLVKQJZrDHtWFidcLrHuip01CtnC2/S6AMhX4t9ZlEUj4iuRlAnts0PQk7KESOqKxeGE/b6sIPGg=="
},
"@types/sparqljs": {
"version": "3.1.12",
+ "resolved": "https://registry.npmjs.org/@types/sparqljs/-/sparqljs-3.1.12.tgz",
+ "integrity": "sha512-zg/sdKKtYI0845wKPSuSgunyU1o/+7tRzMw85lHsf4p/0UbA6+65MXAyEtv1nkaqSqrq/bXm7+bqXas+Xo5dpQ==",
"requires": {
"@rdfjs/types": ">=1.0.0"
}
},
"@types/triple-beam": {
- "version": "1.3.5"
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz",
+ "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw=="
},
"@types/uritemplate": {
- "version": "0.3.6"
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/@types/uritemplate/-/uritemplate-0.3.6.tgz",
+ "integrity": "sha512-31BMGZ8GgLxgXxLnqg4KbbyYJjU1flhTTD2+PVQStVUPXSk0IIpK0zt+tH3eLT7ZRwLnzQw6JhYx69qza3U0wg=="
},
"@types/uuid": {
- "version": "9.0.8"
+ "version": "9.0.8",
+ "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz",
+ "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA=="
},
"@types/validator": {
- "version": "13.12.2"
+ "version": "13.12.2",
+ "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.12.2.tgz",
+ "integrity": "sha512-6SlHBzUW8Jhf3liqrGGXyTJSIFe4nqlJ5A5KaMZ2l/vbM3Wh3KSybots/wfWVzNLK4D1NZluDlSQIbIEPx6oyA=="
},
"@types/websocket": {
"version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.10.tgz",
+ "integrity": "sha512-svjGZvPB7EzuYS94cI7a+qhwgGU1y89wUgjT6E2wVUfmAGIvRfT7obBvRtnhXCSsoMdlG4gBFGE7MfkIXZLoww==",
"requires": {
"@types/node": "*"
}
},
"@types/yargs": {
"version": "17.0.33",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz",
+ "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==",
"requires": {
"@types/yargs-parser": "*"
}
},
"@types/yargs-parser": {
- "version": "21.0.3"
+ "version": "21.0.3",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
+ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ=="
},
"@ungap/structured-clone": {
- "version": "1.2.0"
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.1.tgz",
+ "integrity": "sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA=="
},
"@vascosantos/moving-average": {
- "version": "1.1.0"
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@vascosantos/moving-average/-/moving-average-1.1.0.tgz",
+ "integrity": "sha512-MVEJ4vWAPNbrGLjz7ITnHYg+YXZ6ijAqtH5/cHwSoCpbvuJ98aLXwFfPKAUfZpJMQR5uXB58UJajbY130IRF/w=="
},
"abab": {
"version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
+ "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==",
"dev": true
},
+ "abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+ "optional": true
+ },
"abort-controller": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
+ "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
"requires": {
"event-target-shim": "^5.0.0"
}
},
"abortable-iterator": {
"version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.2.tgz",
+ "integrity": "sha512-qVP8HFfTpUQI2F+f1tpTriKDIZ4XrmwCrBCrQeRKO7DKWF3kgoT6NXiNDv2krrGcHxPwmI63eGQiec81sEaWIw==",
"requires": {
"get-iterator": "^1.0.2"
}
},
"abortcontroller-polyfill": {
- "version": "1.7.6",
+ "version": "1.7.8",
+ "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.8.tgz",
+ "integrity": "sha512-9f1iZ2uWh92VcrU9Y8x+LdM4DLj75VE0MJB8zuF1iUnroEptStw+DQ8EQPMUdfe5k+PkB1uUfDQfWbhstH8LrQ==",
"dev": true
},
"accepts": {
"version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
"requires": {
"mime-types": "~2.1.34",
"negotiator": "0.6.3"
}
},
"acorn": {
- "version": "8.14.0"
+ "version": "8.14.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
+ "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA=="
},
"acorn-globals": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz",
+ "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==",
"dev": true,
"requires": {
"acorn": "^7.1.1",
@@ -24100,32 +29241,55 @@
"dependencies": {
"acorn": {
"version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
"dev": true
}
}
},
"acorn-jsx": {
"version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
"requires": {}
},
"acorn-walk": {
"version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
+ "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
"dev": true
},
"adm-zip": {
- "version": "0.4.16"
+ "version": "0.4.16",
+ "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz",
+ "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg=="
},
"aes-js": {
- "version": "3.0.0"
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
+ "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw=="
},
"agent-base": {
"version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
"requires": {
"debug": "4"
}
},
+ "agentkeepalive": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz",
+ "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==",
+ "optional": true,
+ "requires": {
+ "humanize-ms": "^1.2.1"
+ }
+ },
"aggregate-error": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
+ "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
"requires": {
"clean-stack": "^2.0.0",
"indent-string": "^4.0.0"
@@ -24133,6 +29297,8 @@
},
"ajv": {
"version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"requires": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -24142,12 +29308,16 @@
},
"ajv-formats": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz",
+ "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==",
"requires": {
"ajv": "^8.0.0"
},
"dependencies": {
"ajv": {
"version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
+ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
"requires": {
"fast-deep-equal": "^3.1.3",
"fast-uri": "^3.0.1",
@@ -24156,46 +29326,64 @@
}
},
"json-schema-traverse": {
- "version": "1.0.0"
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
}
}
},
"ansi-align": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
+ "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
"requires": {
"string-width": "^4.1.0"
}
},
"ansi-colors": {
- "version": "4.1.3"
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
+ "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw=="
},
"ansi-escapes": {
"version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
"requires": {
"type-fest": "^0.21.3"
},
"dependencies": {
"type-fest": {
- "version": "0.21.3"
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="
}
}
},
"ansi-regex": {
"version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
"dev": true
},
"ansi-styles": {
"version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"requires": {
"color-convert": "^2.0.1"
}
},
"any-promise": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
+ "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
"dev": true
},
"any-signal": {
"version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-2.1.2.tgz",
+ "integrity": "sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ==",
"requires": {
"abort-controller": "^3.0.0",
"native-abort-controller": "^1.0.3"
@@ -24203,38 +29391,83 @@
},
"anymatch": {
"version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
"requires": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
}
},
"app-root-path": {
- "version": "3.1.0"
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.1.0.tgz",
+ "integrity": "sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA=="
},
"append-transform": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz",
+ "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==",
"dev": true,
"requires": {
"default-require-extensions": "^3.0.0"
}
},
+ "aproba": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
+ "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==",
+ "optional": true
+ },
"archy": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
+ "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==",
"dev": true
},
+ "are-we-there-yet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz",
+ "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==",
+ "optional": true,
+ "requires": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^3.6.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "optional": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
"arg": {
- "version": "4.1.3"
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
+ "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="
},
"argparse": {
- "version": "2.0.1"
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"aria-query": {
"version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz",
+ "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==",
"dev": true,
"peer": true
},
"array-buffer-byte-length": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz",
+ "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==",
"dev": true,
"peer": true,
"requires": {
@@ -24243,10 +29476,14 @@
}
},
"array-flatten": {
- "version": "1.1.1"
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
},
"array-includes": {
"version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz",
+ "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==",
"dev": true,
"peer": true,
"requires": {
@@ -24260,6 +29497,8 @@
},
"array.prototype.findlast": {
"version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz",
+ "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==",
"dev": true,
"peer": true,
"requires": {
@@ -24273,6 +29512,8 @@
},
"array.prototype.findlastindex": {
"version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz",
+ "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==",
"dev": true,
"peer": true,
"requires": {
@@ -24286,6 +29527,8 @@
},
"array.prototype.flat": {
"version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
+ "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
"dev": true,
"peer": true,
"requires": {
@@ -24297,6 +29540,8 @@
},
"array.prototype.flatmap": {
"version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
+ "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
"dev": true,
"peer": true,
"requires": {
@@ -24308,6 +29553,8 @@
},
"array.prototype.tosorted": {
"version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz",
+ "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==",
"dev": true,
"peer": true,
"requires": {
@@ -24320,6 +29567,8 @@
},
"arraybuffer.prototype.slice": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz",
+ "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==",
"dev": true,
"peer": true,
"requires": {
@@ -24334,10 +29583,14 @@
}
},
"arrayify-stream": {
- "version": "2.0.1"
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/arrayify-stream/-/arrayify-stream-2.0.1.tgz",
+ "integrity": "sha512-z8fB6PtmnewQpFB53piS2d1KlUi3BPMICH2h7leCOUXpQcwvZ4GbHHSpdKoUrgLMR6b4Qan/uDe1St3Ao3yIHg=="
},
"asn1": {
"version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
+ "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
"dev": true,
"requires": {
"safer-buffer": "~2.1.0"
@@ -24345,6 +29598,8 @@
},
"asn1.js": {
"version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
+ "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
"requires": {
"bn.js": "^4.0.0",
"inherits": "^2.0.1",
@@ -24353,20 +29608,28 @@
},
"dependencies": {
"bn.js": {
- "version": "4.12.1"
+ "version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz",
+ "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg=="
}
}
},
"assert-plus": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
"dev": true
},
"assertion-error": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
"dev": true
},
"assertion-error-formatter": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/assertion-error-formatter/-/assertion-error-formatter-3.0.0.tgz",
+ "integrity": "sha512-6YyAVLrEze0kQ7CmJfUgrLHb+Y7XghmL2Ie7ijVa2Y9ynP3LV+VDiwFk62Dn0qtqbmY0BT0ss6p1xxpiF2PYbQ==",
"dev": true,
"requires": {
"diff": "^4.0.1",
@@ -24375,50 +29638,71 @@
}
},
"assertion-tools": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/assertion-tools/-/assertion-tools-2.2.1.tgz",
- "integrity": "sha512-JlA1S16Ox93PnYb45HvxNcax/Ii4gqTO8HLGa/ykj/ddp8EEHlokn6inJR2yMiz173WSFkCc0ciLJzGeaYBANw==",
+ "version": "8.0.0-gamma.1",
+ "resolved": "https://registry.npmjs.org/assertion-tools/-/assertion-tools-8.0.0-gamma.1.tgz",
+ "integrity": "sha512-I4IHIiylrVFUoLy07qPxCbwwUk0Qpqfo0qL1cPBKcSY0e9b4+AHQoBLuSZkaE9rUy1wC+7vqBMikn4d/DW3FAw==",
"requires": {
"ethers": "^5.7.2",
"jsonld": "^8.1.0",
- "merkletreejs": "^0.3.2"
+ "merkletreejs": "^0.3.2",
+ "n3": "^1.23.1",
+ "rdf-canonize": "^4.0.1",
+ "uuid": "^8.3.2"
}
},
"ast-types-flow": {
"version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz",
+ "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==",
"dev": true,
"peer": true
},
"async": {
- "version": "3.2.6"
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz",
+ "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA=="
},
"async-limiter": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
"dev": true
},
"async-mutex": {
"version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.3.2.tgz",
+ "integrity": "sha512-HuTK7E7MT7jZEh1P9GtRW9+aTWiDWWi9InbZ5hjxrnRa39KS4BW04+xLBhYNS2aXhHUIKZSw3gj4Pn1pj+qGAA==",
"requires": {
"tslib": "^2.3.1"
}
},
"asynciterator": {
- "version": "3.9.0"
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/asynciterator/-/asynciterator-3.9.0.tgz",
+ "integrity": "sha512-bwLLTAnoE6Ap6XdjK/j8vDk2Vi9p3ojk0PFwM0SwktAG1k8pfRJF9ng+mmkaRFKdZCQQlOxcWnvOmX2NQ1HV0g=="
},
"asyncjoin": {
"version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/asyncjoin/-/asyncjoin-1.2.4.tgz",
+ "integrity": "sha512-7/1g5uV2/iTDQteJ/pxqZq6qkO5406V+vNyOCYtHJ+mo6bmvvQHHrZgd7AtU/rx+cnz08NPWlwk8daW61thnlA==",
"requires": {
"asynciterator": "^3.9.0"
}
},
"asynckit": {
- "version": "0.4.0"
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
},
"atomic-sleep": {
- "version": "1.0.0"
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz",
+ "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ=="
},
"available-typed-arrays": {
"version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
+ "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
"dev": true,
"requires": {
"possible-typed-array-names": "^1.0.0"
@@ -24426,6 +29710,8 @@
},
"awilix": {
"version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/awilix/-/awilix-7.0.3.tgz",
+ "integrity": "sha512-4Nmjyh9qloDwXfDK0DBuWd8WyFApyknoaKbE3leQflGLgNfNsBHy2/VYrlyy/mzMobjJ3J8XtNpbjzG3KRkIFQ==",
"requires": {
"camel-case": "^4.1.2",
"fast-glob": "^3.2.11"
@@ -24433,22 +29719,32 @@
},
"aws-sign2": {
"version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
"dev": true
},
"aws-ssl-profiles": {
- "version": "1.1.2"
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/aws-ssl-profiles/-/aws-ssl-profiles-1.1.2.tgz",
+ "integrity": "sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g=="
},
"aws4": {
"version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz",
+ "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==",
"dev": true
},
"axe-core": {
"version": "4.10.2",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.2.tgz",
+ "integrity": "sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==",
"dev": true,
"peer": true
},
"axios": {
"version": "1.7.9",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz",
+ "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==",
"requires": {
"follow-redirects": "^1.15.6",
"form-data": "^4.0.0",
@@ -24457,23 +29753,33 @@
},
"axobject-query": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz",
+ "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==",
"dev": true,
"peer": true
},
"b4a": {
"version": "1.6.7",
+ "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz",
+ "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==",
"dev": true
},
"balanced-match": {
- "version": "1.0.2"
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"bare-events": {
"version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.0.tgz",
+ "integrity": "sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==",
"dev": true,
"optional": true
},
"bare-fs": {
"version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.5.tgz",
+ "integrity": "sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==",
"dev": true,
"optional": true,
"requires": {
@@ -24484,11 +29790,15 @@
},
"bare-os": {
"version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.4.4.tgz",
+ "integrity": "sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==",
"dev": true,
"optional": true
},
"bare-path": {
"version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.3.tgz",
+ "integrity": "sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==",
"dev": true,
"optional": true,
"requires": {
@@ -24496,27 +29806,37 @@
}
},
"bare-stream": {
- "version": "2.4.2",
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.6.1.tgz",
+ "integrity": "sha512-eVZbtKM+4uehzrsj49KtCy3Pbg7kO1pJ3SKZ1SFrIH/0pnj9scuGGgUlNDf/7qS8WKtGdiJY5Kyhs/ivYPTB/g==",
"dev": true,
"optional": true,
"requires": {
- "streamx": "^2.20.0"
+ "streamx": "^2.21.0"
}
},
"base-x": {
"version": "3.0.10",
+ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz",
+ "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==",
"requires": {
"safe-buffer": "^5.0.1"
}
},
"base64-js": {
- "version": "1.5.1"
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
},
"base64url": {
- "version": "3.0.1"
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz",
+ "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A=="
},
"bcrypt-pbkdf": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
"dev": true,
"requires": {
"tweetnacl": "^0.14.3"
@@ -24524,37 +29844,53 @@
"dependencies": {
"tweetnacl": {
"version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==",
"dev": true
}
}
},
"bech32": {
- "version": "1.1.4"
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz",
+ "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ=="
},
"big-integer": {
- "version": "1.6.52"
+ "version": "1.6.52",
+ "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz",
+ "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg=="
},
"bignumber.js": {
- "version": "9.1.2"
+ "version": "9.1.2",
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz",
+ "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug=="
},
"binary": {
"version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz",
+ "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==",
"requires": {
"buffers": "~0.1.1",
"chainsaw": "~0.1.0"
}
},
"binary-extensions": {
- "version": "2.3.0"
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="
},
"bindings": {
"version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+ "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
"requires": {
"file-uri-to-path": "1.0.0"
}
},
"bl": {
"version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz",
+ "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==",
"requires": {
"buffer": "^6.0.3",
"inherits": "^2.0.4",
@@ -24563,6 +29899,8 @@
"dependencies": {
"readable-stream": {
"version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -24572,16 +29910,24 @@
}
},
"blakejs": {
- "version": "1.2.1"
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz",
+ "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ=="
},
"bluebird": {
- "version": "3.4.7"
+ "version": "3.4.7",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz",
+ "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA=="
},
"bn.js": {
- "version": "5.2.1"
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
+ "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="
},
"body-parser": {
"version": "1.20.3",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
+ "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
"requires": {
"bytes": "3.1.2",
"content-type": "~1.0.5",
@@ -24599,23 +29945,31 @@
"dependencies": {
"debug": {
"version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
}
},
"iconv-lite": {
"version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"requires": {
"safer-buffer": ">= 2.1.2 < 3"
}
},
"ms": {
- "version": "2.0.0"
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
}
}
},
"boxen": {
"version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz",
+ "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==",
"requires": {
"ansi-align": "^3.0.0",
"camelcase": "^6.2.0",
@@ -24629,6 +29983,8 @@
},
"brace-expansion": {
"version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -24636,22 +29992,32 @@
},
"braces": {
"version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"requires": {
"fill-range": "^7.1.1"
}
},
"brorand": {
- "version": "1.1.0"
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w=="
},
"browser-process-hrtime": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
+ "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==",
"dev": true
},
"browser-stdout": {
- "version": "1.3.1"
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
+ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw=="
},
"browserify-aes": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
"requires": {
"buffer-xor": "^1.0.3",
"cipher-base": "^1.0.0",
@@ -24663,6 +30029,8 @@
},
"browserslist": {
"version": "4.24.2",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz",
+ "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==",
"dev": true,
"requires": {
"caniuse-lite": "^1.0.30001669",
@@ -24673,12 +30041,16 @@
},
"bs58": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
+ "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
"requires": {
"base-x": "^3.0.2"
}
},
"bs58check": {
"version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz",
+ "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==",
"requires": {
"bs58": "^4.0.0",
"create-hash": "^1.1.0",
@@ -24687,54 +30059,185 @@
},
"buffer": {
"version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
"requires": {
"base64-js": "^1.3.1",
"ieee754": "^1.2.1"
}
},
"buffer-equal-constant-time": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
+ "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA=="
},
"buffer-from": {
- "version": "1.1.2"
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
},
"buffer-indexof-polyfill": {
- "version": "1.0.2"
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz",
+ "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A=="
},
"buffer-reverse": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/buffer-reverse/-/buffer-reverse-1.0.1.tgz",
+ "integrity": "sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg=="
},
"buffer-to-arraybuffer": {
"version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz",
+ "integrity": "sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==",
"dev": true
},
"buffer-xor": {
- "version": "1.0.3"
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ=="
},
"buffers": {
- "version": "0.1.1"
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz",
+ "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ=="
},
"bufferutil": {
"version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz",
+ "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==",
"requires": {
"node-gyp-build": "^4.3.0"
}
},
"busboy": {
"version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
+ "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
"requires": {
"streamsearch": "^1.1.0"
}
},
"bytes": {
- "version": "3.1.2"
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
+ },
+ "cacache": {
+ "version": "15.3.0",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz",
+ "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==",
+ "optional": true,
+ "requires": {
+ "@npmcli/fs": "^1.0.0",
+ "@npmcli/move-file": "^1.0.1",
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "glob": "^7.1.4",
+ "infer-owner": "^1.0.4",
+ "lru-cache": "^6.0.0",
+ "minipass": "^3.1.1",
+ "minipass-collect": "^1.0.2",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.2",
+ "mkdirp": "^1.0.3",
+ "p-map": "^4.0.0",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^3.0.2",
+ "ssri": "^8.0.1",
+ "tar": "^6.0.2",
+ "unique-filename": "^1.1.1"
+ },
+ "dependencies": {
+ "chownr": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+ "optional": true
+ },
+ "fs-minipass": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+ "optional": true,
+ "requires": {
+ "minipass": "^3.0.0"
+ }
+ },
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "optional": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "optional": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "minizlib": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
+ "optional": true,
+ "requires": {
+ "minipass": "^3.0.0",
+ "yallist": "^4.0.0"
+ }
+ },
+ "mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "optional": true
+ },
+ "tar": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz",
+ "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==",
+ "optional": true,
+ "requires": {
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "minipass": "^5.0.0",
+ "minizlib": "^2.1.1",
+ "mkdirp": "^1.0.3",
+ "yallist": "^4.0.0"
+ },
+ "dependencies": {
+ "minipass": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
+ "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
+ "optional": true
+ }
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "optional": true
+ }
+ }
},
"cacheable-lookup": {
"version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz",
+ "integrity": "sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==",
"dev": true
},
"cacheable-request": {
"version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz",
+ "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==",
"dev": true,
"requires": {
"clone-response": "^1.0.2",
@@ -24748,6 +30251,8 @@
"dependencies": {
"get-stream": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
"dev": true,
"requires": {
"pump": "^3.0.0"
@@ -24755,12 +30260,16 @@
},
"lowercase-keys": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
"dev": true
}
}
},
"caching-transform": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz",
+ "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==",
"dev": true,
"requires": {
"hasha": "^5.0.0",
@@ -24771,6 +30280,8 @@
},
"call-bind": {
"version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
+ "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
"requires": {
"call-bind-apply-helpers": "^1.0.0",
"es-define-property": "^1.0.0",
@@ -24779,34 +30290,57 @@
}
},
"call-bind-apply-helpers": {
- "version": "1.0.0",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz",
+ "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==",
"requires": {
"es-errors": "^1.3.0",
"function-bind": "^1.1.2"
}
},
+ "call-bound": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.2.tgz",
+ "integrity": "sha512-0lk0PHFe/uz0vl527fG9CgdE9WdafjDbCXvBbs+LUv000TVt2Jjhqbs4Jwm8gz070w8xXyEAxrPOMullsxXeGg==",
+ "requires": {
+ "call-bind": "^1.0.8",
+ "get-intrinsic": "^1.2.5"
+ }
+ },
"callsites": {
- "version": "3.1.0"
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
},
"camel-case": {
"version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
+ "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
"requires": {
"pascal-case": "^3.1.2",
"tslib": "^2.0.3"
}
},
"camelcase": {
- "version": "6.3.0"
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="
},
"caniuse-lite": {
- "version": "1.0.30001687",
+ "version": "1.0.30001688",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001688.tgz",
+ "integrity": "sha512-Nmqpru91cuABu/DTCXbM2NSRHzM2uVHfPnhJ/1zEAJx/ILBRVmz3pzH4N7DZqbdG0gWClsCC05Oj0mJ/1AWMbA==",
"dev": true
},
"canonicalize": {
- "version": "2.0.0"
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-2.0.0.tgz",
+ "integrity": "sha512-ulDEYPv7asdKvqahuAY35c1selLdzDwHqugK92hfkzvlDCwXRRelDkR+Er33md/PtnpqHemgkuDPanZ4fiYZ8w=="
},
"capital-case": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz",
+ "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==",
"dev": true,
"requires": {
"no-case": "^3.0.4",
@@ -24816,10 +30350,14 @@
},
"caseless": {
"version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==",
"dev": true
},
"chai": {
"version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz",
+ "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==",
"dev": true,
"requires": {
"assertion-error": "^1.1.0",
@@ -24833,12 +30371,16 @@
},
"chainsaw": {
"version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz",
+ "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==",
"requires": {
"traverse": ">=0.3.0 <0.4"
}
},
"chalk": {
"version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -24846,6 +30388,8 @@
"dependencies": {
"supports-color": {
"version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"requires": {
"has-flag": "^4.0.0"
}
@@ -24854,6 +30398,8 @@
},
"check-error": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz",
+ "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==",
"dev": true,
"requires": {
"get-func-name": "^2.0.2"
@@ -24861,19 +30407,26 @@
},
"chokidar": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz",
+ "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==",
"requires": {
"readdirp": "^4.0.1"
}
},
"chownr": {
"version": "1.1.4",
- "dev": true
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
},
"ci-info": {
- "version": "2.0.0"
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
},
"cids": {
"version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz",
+ "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==",
"dev": true,
"requires": {
"buffer": "^5.5.0",
@@ -24885,6 +30438,8 @@
"dependencies": {
"buffer": {
"version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
"dev": true,
"requires": {
"base64-js": "^1.3.1",
@@ -24893,6 +30448,8 @@
},
"multicodec": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz",
+ "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==",
"dev": true,
"requires": {
"buffer": "^5.6.0",
@@ -24901,32 +30458,46 @@
},
"varint": {
"version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz",
+ "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==",
"dev": true
}
}
},
"cipher-base": {
"version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.6.tgz",
+ "integrity": "sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==",
"requires": {
"inherits": "^2.0.4",
"safe-buffer": "^5.2.1"
}
},
"class-is": {
- "version": "1.1.0"
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz",
+ "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw=="
},
"class-transformer": {
"version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz",
+ "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==",
"dev": true
},
"clean-stack": {
- "version": "2.2.0"
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A=="
},
"cli-boxes": {
- "version": "2.2.1"
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz",
+ "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw=="
},
"cli-cursor": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz",
+ "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==",
"dev": true,
"requires": {
"restore-cursor": "^4.0.0"
@@ -24934,6 +30505,8 @@
},
"cli-table3": {
"version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz",
+ "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==",
"dev": true,
"requires": {
"@colors/colors": "1.5.0",
@@ -24942,6 +30515,8 @@
},
"cli-truncate": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz",
+ "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==",
"dev": true,
"requires": {
"slice-ansi": "^5.0.0",
@@ -24950,10 +30525,14 @@
"dependencies": {
"ansi-regex": {
"version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
"dev": true
},
"string-width": {
"version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
"dev": true,
"requires": {
"eastasianwidth": "^0.2.0",
@@ -24963,6 +30542,8 @@
},
"strip-ansi": {
"version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
"dev": true,
"requires": {
"ansi-regex": "^6.0.1"
@@ -24972,6 +30553,8 @@
},
"cliui": {
"version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
"requires": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.1",
@@ -24980,6 +30563,8 @@
},
"clone-response": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz",
+ "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==",
"dev": true,
"requires": {
"mimic-response": "^1.0.0"
@@ -24987,12 +30572,16 @@
"dependencies": {
"mimic-response": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
"dev": true
}
}
},
"color": {
"version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
"dev": true,
"requires": {
"color-convert": "^2.0.1",
@@ -25001,25 +30590,41 @@
},
"color-convert": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
- "version": "1.1.4"
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"color-string": {
"version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
"requires": {
"color-name": "^1.0.0",
"simple-swizzle": "^0.2.2"
}
},
+ "color-support": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
+ "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
+ "optional": true
+ },
"colorette": {
- "version": "2.0.20"
+ "version": "2.0.20",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
+ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w=="
},
"colorspace": {
"version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz",
+ "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==",
"requires": {
"color": "^3.1.3",
"text-hex": "1.0.x"
@@ -25027,6 +30632,8 @@
"dependencies": {
"color": {
"version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
+ "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
"requires": {
"color-convert": "^1.9.3",
"color-string": "^1.6.0"
@@ -25034,37 +30641,54 @@
},
"color-convert": {
"version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"requires": {
"color-name": "1.1.3"
}
},
"color-name": {
- "version": "1.1.3"
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
}
}
},
"combined-stream": {
"version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"requires": {
"delayed-stream": "~1.0.0"
}
},
"command-exists": {
- "version": "1.2.9"
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz",
+ "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w=="
},
"commander": {
"version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
+ "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
"dev": true
},
"commondir": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
"dev": true
},
"complex.js": {
- "version": "2.4.2"
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/complex.js/-/complex.js-2.4.2.tgz",
+ "integrity": "sha512-qtx7HRhPGSCBtGiST4/WGHuW+zeaND/6Ld+db6PbrulIB1i2Ev/2UPiqcmpQNPSyfBKraC0EOvOKCB5dGZKt3g==",
+ "dev": true
},
"componentsjs": {
"version": "5.5.1",
+ "resolved": "https://registry.npmjs.org/componentsjs/-/componentsjs-5.5.1.tgz",
+ "integrity": "sha512-hmqq+ZUa98t9CoeWPGwE14I18aXQFAt66HRd8DaZCNggcSr82vhlyrjeXX0JAUMgr2MyQzwKstkv4INRAREguA==",
"requires": {
"@rdfjs/types": "*",
"@types/minimist": "^1.2.0",
@@ -25083,31 +30707,49 @@
},
"dependencies": {
"@types/node": {
- "version": "18.19.67",
+ "version": "18.19.68",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.68.tgz",
+ "integrity": "sha512-QGtpFH1vB99ZmTa63K4/FU8twThj4fuVSBkGddTp7uIL/cuoLWIUSL2RcOaigBhfR+hg5pgGkBnkoOxrTVBMKw==",
"requires": {
"undici-types": "~5.26.4"
}
},
"undici-types": {
- "version": "5.26.5"
+ "version": "5.26.5",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
}
}
},
"concat-map": {
- "version": "0.0.1"
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
},
"confusing-browser-globals": {
"version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz",
+ "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==",
"dev": true
},
+ "console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==",
+ "optional": true
+ },
"content-disposition": {
"version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
"requires": {
"safe-buffer": "5.2.1"
}
},
"content-hash": {
"version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz",
+ "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==",
"dev": true,
"requires": {
"cids": "^0.7.1",
@@ -25116,23 +30758,35 @@
}
},
"content-type": {
- "version": "1.0.5"
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="
},
"convert-source-map": {
"version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
+ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
"dev": true
},
"cookie": {
- "version": "0.7.1"
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
+ "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w=="
},
"cookie-signature": {
- "version": "1.0.6"
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
},
"core-util-is": {
- "version": "1.0.2"
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="
},
"cors": {
"version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
"requires": {
"object-assign": "^4",
"vary": "^1"
@@ -25140,10 +30794,14 @@
},
"crc-32": {
"version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
+ "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
"dev": true
},
"create-hash": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
"requires": {
"cipher-base": "^1.0.1",
"inherits": "^2.0.1",
@@ -25154,6 +30812,8 @@
},
"create-hmac": {
"version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
"requires": {
"cipher-base": "^1.0.3",
"create-hash": "^1.1.0",
@@ -25164,28 +30824,40 @@
}
},
"create-require": {
- "version": "1.1.1"
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
+ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ=="
},
"cross-fetch": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz",
+ "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==",
"requires": {
"node-fetch": "^2.6.12"
},
"dependencies": {
"node-fetch": {
"version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
"requires": {
"whatwg-url": "^5.0.0"
}
},
"tr46": {
- "version": "0.0.3"
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
"webidl-conversions": {
- "version": "3.0.1"
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
},
"whatwg-url": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
"requires": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"
@@ -25195,6 +30867,8 @@
},
"cross-spawn": {
"version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
"requires": {
"path-key": "^3.1.0",
"shebang-command": "^2.0.0",
@@ -25202,14 +30876,20 @@
}
},
"crypto-js": {
- "version": "4.2.0"
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz",
+ "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
},
"cssom": {
"version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz",
+ "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==",
"dev": true
},
"cssstyle": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz",
+ "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==",
"dev": true,
"requires": {
"cssom": "~0.3.6"
@@ -25217,12 +30897,16 @@
"dependencies": {
"cssom": {
"version": "0.3.8",
+ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
+ "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
"dev": true
}
}
},
"d": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz",
+ "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==",
"requires": {
"es5-ext": "^0.10.64",
"type": "^2.7.2"
@@ -25230,6 +30914,8 @@
},
"d3": {
"version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz",
+ "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==",
"dev": true,
"requires": {
"d3-array": "3",
@@ -25266,6 +30952,8 @@
},
"d3-array": {
"version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz",
+ "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==",
"dev": true,
"requires": {
"internmap": "1 - 2"
@@ -25273,10 +30961,14 @@
},
"d3-axis": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz",
+ "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==",
"dev": true
},
"d3-brush": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz",
+ "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==",
"dev": true,
"requires": {
"d3-dispatch": "1 - 3",
@@ -25288,6 +30980,8 @@
},
"d3-chord": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz",
+ "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==",
"dev": true,
"requires": {
"d3-path": "1 - 3"
@@ -25295,14 +30989,20 @@
},
"d3-collection": {
"version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz",
+ "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==",
"dev": true
},
"d3-color": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
+ "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",
"dev": true
},
"d3-contour": {
"version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz",
+ "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==",
"dev": true,
"requires": {
"d3-array": "^3.2.0"
@@ -25310,6 +31010,8 @@
},
"d3-delaunay": {
"version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz",
+ "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==",
"dev": true,
"requires": {
"delaunator": "5"
@@ -25317,10 +31019,14 @@
},
"d3-dispatch": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz",
+ "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==",
"dev": true
},
"d3-drag": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz",
+ "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==",
"dev": true,
"requires": {
"d3-dispatch": "1 - 3",
@@ -25329,6 +31035,8 @@
},
"d3-dsv": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz",
+ "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==",
"dev": true,
"requires": {
"commander": "7",
@@ -25338,16 +31046,22 @@
"dependencies": {
"commander": {
"version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
"dev": true
}
}
},
"d3-ease": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz",
+ "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==",
"dev": true
},
"d3-fetch": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz",
+ "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==",
"dev": true,
"requires": {
"d3-dsv": "1 - 3"
@@ -25355,6 +31069,8 @@
},
"d3-force": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz",
+ "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==",
"dev": true,
"requires": {
"d3-dispatch": "1 - 3",
@@ -25364,10 +31080,14 @@
},
"d3-format": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz",
+ "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==",
"dev": true
},
"d3-geo": {
"version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz",
+ "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==",
"dev": true,
"requires": {
"d3-array": "2.5.0 - 3"
@@ -25375,10 +31095,14 @@
},
"d3-hierarchy": {
"version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz",
+ "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==",
"dev": true
},
"d3-interpolate": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
+ "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
"dev": true,
"requires": {
"d3-color": "1 - 3"
@@ -25386,6 +31110,8 @@
},
"d3-node": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-node/-/d3-node-3.0.0.tgz",
+ "integrity": "sha512-JuuBToljSQBo+KHSuPVOEdKawsxuLDlrB8TZY8AkPkpvyKaGgX+g0ksgjRg+Mgat9fB77qFQrk09j72cD0yk7w==",
"dev": true,
"requires": {
"d3": "^5.16.0",
@@ -25394,10 +31120,14 @@
"dependencies": {
"commander": {
"version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
"dev": true
},
"d3": {
"version": "5.16.0",
+ "resolved": "https://registry.npmjs.org/d3/-/d3-5.16.0.tgz",
+ "integrity": "sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw==",
"dev": true,
"requires": {
"d3-array": "1",
@@ -25435,14 +31165,20 @@
},
"d3-array": {
"version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz",
+ "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==",
"dev": true
},
"d3-axis": {
"version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.12.tgz",
+ "integrity": "sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==",
"dev": true
},
"d3-brush": {
"version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.1.6.tgz",
+ "integrity": "sha512-7RW+w7HfMCPyZLifTz/UnJmI5kdkXtpCbombUSs8xniAyo0vIbrDzDwUJB6eJOgl9u5DQOt2TQlYumxzD1SvYA==",
"dev": true,
"requires": {
"d3-dispatch": "1",
@@ -25454,6 +31190,8 @@
},
"d3-chord": {
"version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.6.tgz",
+ "integrity": "sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==",
"dev": true,
"requires": {
"d3-array": "1",
@@ -25462,10 +31200,14 @@
},
"d3-color": {
"version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz",
+ "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==",
"dev": true
},
"d3-contour": {
"version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-1.3.2.tgz",
+ "integrity": "sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==",
"dev": true,
"requires": {
"d3-array": "^1.1.1"
@@ -25473,10 +31215,14 @@
},
"d3-dispatch": {
"version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz",
+ "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==",
"dev": true
},
"d3-drag": {
"version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.5.tgz",
+ "integrity": "sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w==",
"dev": true,
"requires": {
"d3-dispatch": "1",
@@ -25485,6 +31231,8 @@
},
"d3-dsv": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.2.0.tgz",
+ "integrity": "sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==",
"dev": true,
"requires": {
"commander": "2",
@@ -25494,10 +31242,14 @@
},
"d3-ease": {
"version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.7.tgz",
+ "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==",
"dev": true
},
"d3-fetch": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-1.2.0.tgz",
+ "integrity": "sha512-yC78NBVcd2zFAyR/HnUiBS7Lf6inSCoWcSxFfw8FYL7ydiqe80SazNwoffcqOfs95XaLo7yebsmQqDKSsXUtvA==",
"dev": true,
"requires": {
"d3-dsv": "1"
@@ -25505,6 +31257,8 @@
},
"d3-force": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz",
+ "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==",
"dev": true,
"requires": {
"d3-collection": "1",
@@ -25515,10 +31269,14 @@
},
"d3-format": {
"version": "1.4.5",
+ "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz",
+ "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==",
"dev": true
},
"d3-geo": {
"version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz",
+ "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==",
"dev": true,
"requires": {
"d3-array": "1"
@@ -25526,10 +31284,14 @@
},
"d3-hierarchy": {
"version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz",
+ "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==",
"dev": true
},
"d3-interpolate": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz",
+ "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==",
"dev": true,
"requires": {
"d3-color": "1"
@@ -25537,22 +31299,32 @@
},
"d3-path": {
"version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz",
+ "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==",
"dev": true
},
"d3-polygon": {
"version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.6.tgz",
+ "integrity": "sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ==",
"dev": true
},
"d3-quadtree": {
"version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz",
+ "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==",
"dev": true
},
"d3-random": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.2.tgz",
+ "integrity": "sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==",
"dev": true
},
"d3-scale": {
"version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-2.2.2.tgz",
+ "integrity": "sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==",
"dev": true,
"requires": {
"d3-array": "^1.2.0",
@@ -25565,6 +31337,8 @@
},
"d3-scale-chromatic": {
"version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz",
+ "integrity": "sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg==",
"dev": true,
"requires": {
"d3-color": "1",
@@ -25573,10 +31347,14 @@
},
"d3-selection": {
"version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.2.tgz",
+ "integrity": "sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==",
"dev": true
},
"d3-shape": {
"version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz",
+ "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==",
"dev": true,
"requires": {
"d3-path": "1"
@@ -25584,10 +31362,14 @@
},
"d3-time": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz",
+ "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==",
"dev": true
},
"d3-time-format": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz",
+ "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==",
"dev": true,
"requires": {
"d3-time": "1"
@@ -25595,10 +31377,14 @@
},
"d3-timer": {
"version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz",
+ "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==",
"dev": true
},
"d3-transition": {
"version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.3.2.tgz",
+ "integrity": "sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==",
"dev": true,
"requires": {
"d3-color": "1",
@@ -25611,6 +31397,8 @@
},
"d3-zoom": {
"version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.8.3.tgz",
+ "integrity": "sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ==",
"dev": true,
"requires": {
"d3-dispatch": "1",
@@ -25622,6 +31410,8 @@
},
"iconv-lite": {
"version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"dev": true,
"requires": {
"safer-buffer": ">= 2.1.2 < 3"
@@ -25631,22 +31421,32 @@
},
"d3-path": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz",
+ "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==",
"dev": true
},
"d3-polygon": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz",
+ "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==",
"dev": true
},
"d3-quadtree": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz",
+ "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==",
"dev": true
},
"d3-random": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz",
+ "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==",
"dev": true
},
"d3-scale": {
"version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz",
+ "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==",
"dev": true,
"requires": {
"d3-array": "2.10.0 - 3",
@@ -25658,6 +31458,8 @@
},
"d3-scale-chromatic": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz",
+ "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==",
"dev": true,
"requires": {
"d3-color": "1 - 3",
@@ -25666,10 +31468,14 @@
},
"d3-selection": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz",
+ "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==",
"dev": true
},
"d3-shape": {
"version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz",
+ "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==",
"dev": true,
"requires": {
"d3-path": "^3.1.0"
@@ -25677,6 +31483,8 @@
},
"d3-time": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz",
+ "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==",
"dev": true,
"requires": {
"d3-array": "2 - 3"
@@ -25684,6 +31492,8 @@
},
"d3-time-format": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz",
+ "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==",
"dev": true,
"requires": {
"d3-time": "1 - 3"
@@ -25691,10 +31501,14 @@
},
"d3-timer": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz",
+ "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==",
"dev": true
},
"d3-transition": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz",
+ "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==",
"dev": true,
"requires": {
"d3-color": "1 - 3",
@@ -25706,10 +31520,14 @@
},
"d3-voronoi": {
"version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz",
+ "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==",
"dev": true
},
"d3-zoom": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz",
+ "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==",
"dev": true,
"requires": {
"d3-dispatch": "1 - 3",
@@ -25721,21 +31539,29 @@
},
"damerau-levenshtein": {
"version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
+ "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==",
"dev": true,
"peer": true
},
"dashdash": {
"version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
"dev": true,
"requires": {
"assert-plus": "^1.0.0"
}
},
"data-uri-to-buffer": {
- "version": "4.0.1"
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz",
+ "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A=="
},
"data-urls": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz",
+ "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==",
"dev": true,
"requires": {
"abab": "^2.0.3",
@@ -25745,6 +31571,8 @@
},
"data-view-buffer": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz",
+ "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==",
"dev": true,
"peer": true,
"requires": {
@@ -25755,6 +31583,8 @@
},
"data-view-byte-length": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz",
+ "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==",
"dev": true,
"peer": true,
"requires": {
@@ -25765,6 +31595,8 @@
},
"data-view-byte-offset": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz",
+ "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==",
"dev": true,
"peer": true,
"requires": {
@@ -25774,53 +31606,75 @@
}
},
"dateformat": {
- "version": "4.6.3"
+ "version": "4.6.3",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz",
+ "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA=="
},
"debug": {
- "version": "4.3.7",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
+ "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
"requires": {
"ms": "^2.1.3"
}
},
"decamelize": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
"dev": true
},
"decimal.js": {
- "version": "10.4.3"
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz",
+ "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==",
+ "dev": true
},
"decode-uri-component": {
"version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
"dev": true
},
"decompress-response": {
"version": "6.0.0",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
+ "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
"requires": {
"mimic-response": "^3.1.0"
}
},
"deep-eql": {
"version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz",
+ "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==",
"dev": true,
"requires": {
"type-detect": "^4.0.0"
}
},
"deep-extend": {
- "version": "0.6.0"
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
},
"deep-is": {
- "version": "0.1.4"
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
},
"default-gateway": {
"version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz",
+ "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==",
"requires": {
"execa": "^5.0.0"
}
},
"default-require-extensions": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz",
+ "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==",
"dev": true,
"requires": {
"strip-bom": "^4.0.0"
@@ -25828,10 +31682,14 @@
},
"defer-to-connect": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
+ "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==",
"dev": true
},
"define-data-property": {
"version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
"requires": {
"es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
@@ -25840,6 +31698,8 @@
},
"define-properties": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
"dev": true,
"requires": {
"define-data-property": "^1.0.1",
@@ -25849,54 +31709,763 @@
},
"delaunator": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz",
+ "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==",
"dev": true,
"requires": {
"robust-predicates": "^3.0.2"
}
},
"delayed-stream": {
- "version": "1.0.0"
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==",
+ "optional": true
},
"denque": {
- "version": "2.1.0"
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz",
+ "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw=="
},
"depd": {
- "version": "2.0.0"
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
},
"destroy": {
- "version": "1.2.0"
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
},
"detect-libc": {
"version": "2.0.3",
- "dev": true
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz",
+ "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw=="
},
"diff": {
- "version": "4.0.2"
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A=="
},
"dkg-evm-module": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/dkg-evm-module/-/dkg-evm-module-4.4.0.tgz",
- "integrity": "sha512-2hBZI/KnbbOEiKr3mU7Nknz3Wis8hLWGvyCifevG4/fUO8v+oVdrshLvQJ6izAfDHeua2PHcW8Z3hn6eIdUVxA==",
- "requires": {
- "@openzeppelin/contracts": "^4.9.3",
- "@polkadot/api": "^11.0.3",
- "@polkadot/keyring": "^12.6.2",
- "@polkadot/util": "^12.6.2",
- "@polkadot/util-crypto": "^12.6.2",
- "@prb/math": "^2.5.0",
- "dotenv": "^16.0.3",
- "hardhat": "^2.22.5",
- "hardhat-deploy": "^0.11.25",
- "hardhat-deploy-ethers": "^0.3.0-beta.13",
+ "version": "8.0.0-sigma.3",
+ "resolved": "https://registry.npmjs.org/dkg-evm-module/-/dkg-evm-module-8.0.0-sigma.3.tgz",
+ "integrity": "sha512-32vhPrSwzSZt2cG3j5nf3y0Cu3QhMhanc7DeoXQ2e5VGKLVlA3yuNGw5e1zm0z3kQputYzNJaeznBFu13tDRwQ==",
+ "requires": {
+ "@openzeppelin/contracts": "^5.1.0",
+ "@polkadot/api": "^15.0.2",
+ "@polkadot/keyring": "^13.2.3",
+ "@polkadot/util": "^13.2.3",
+ "@polkadot/util-crypto": "^13.2.3",
+ "@prb/math": "^4.1.0",
+ "dotenv": "^16.4.7",
+ "hardhat": "^2.22.17",
+ "hardhat-deploy": "^0.12.4",
+ "hardhat-deploy-ethers": "^0.4.2",
+ "solady": "^0.0.285",
"ts-node": "^10.9.1",
- "typescript": "^4.9.4"
+ "typescript": "^5.7.2"
},
"dependencies": {
"@noble/hashes": {
- "version": "1.6.1"
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.6.1.tgz",
+ "integrity": "sha512-pq5D8h10hHBjyqX+cfBm0i8JUXJ0UhczFc4r74zbuT9XgewFo2E3J1cOaGtdZynILNmQ685YWGzGE1Zv6io50w=="
+ },
+ "@nomicfoundation/hardhat-ethers": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ethers/-/hardhat-ethers-3.0.8.tgz",
+ "integrity": "sha512-zhOZ4hdRORls31DTOqg+GmEZM0ujly8GGIuRY7t7szEk2zW/arY1qDug/py8AEktT00v5K+b6RvbVog+va51IA==",
+ "peer": true,
+ "requires": {
+ "debug": "^4.1.1",
+ "lodash.isequal": "^4.5.0"
+ }
+ },
+ "@openzeppelin/contracts": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.1.0.tgz",
+ "integrity": "sha512-p1ULhl7BXzjjbha5aqst+QMLY+4/LCWADXOCsmLHRM77AqiPjnd9vvUN9sosUfhL9JGKpZ0TjEGxgvnizmWGSA=="
+ },
+ "@polkadot-api/json-rpc-provider-proxy": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@polkadot-api/json-rpc-provider-proxy/-/json-rpc-provider-proxy-0.1.0.tgz",
+ "integrity": "sha512-8GSFE5+EF73MCuLQm8tjrbCqlgclcHBSRaswvXziJ0ZW7iw3UEMsKkkKvELayWyBuOPa2T5i1nj6gFOeIsqvrg==",
+ "optional": true
+ },
+ "@polkadot-api/metadata-builders": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@polkadot-api/metadata-builders/-/metadata-builders-0.3.2.tgz",
+ "integrity": "sha512-TKpfoT6vTb+513KDzMBTfCb/ORdgRnsS3TDFpOhAhZ08ikvK+hjHMt5plPiAX/OWkm1Wc9I3+K6W0hX5Ab7MVg==",
+ "optional": true,
+ "requires": {
+ "@polkadot-api/substrate-bindings": "0.6.0",
+ "@polkadot-api/utils": "0.1.0"
+ }
+ },
+ "@polkadot-api/observable-client": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@polkadot-api/observable-client/-/observable-client-0.3.2.tgz",
+ "integrity": "sha512-HGgqWgEutVyOBXoGOPp4+IAq6CNdK/3MfQJmhCJb8YaJiaK4W6aRGrdQuQSTPHfERHCARt9BrOmEvTXAT257Ug==",
+ "optional": true,
+ "requires": {
+ "@polkadot-api/metadata-builders": "0.3.2",
+ "@polkadot-api/substrate-bindings": "0.6.0",
+ "@polkadot-api/utils": "0.1.0"
+ }
+ },
+ "@polkadot-api/substrate-bindings": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/@polkadot-api/substrate-bindings/-/substrate-bindings-0.6.0.tgz",
+ "integrity": "sha512-lGuhE74NA1/PqdN7fKFdE5C1gNYX357j1tWzdlPXI0kQ7h3kN0zfxNOpPUN7dIrPcOFZ6C0tRRVrBylXkI6xPw==",
+ "optional": true,
+ "requires": {
+ "@noble/hashes": "^1.3.1",
+ "@polkadot-api/utils": "0.1.0",
+ "@scure/base": "^1.1.1",
+ "scale-ts": "^1.6.0"
+ }
+ },
+ "@polkadot-api/substrate-client": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/@polkadot-api/substrate-client/-/substrate-client-0.1.4.tgz",
+ "integrity": "sha512-MljrPobN0ZWTpn++da9vOvt+Ex+NlqTlr/XT7zi9sqPtDJiQcYl+d29hFAgpaeTqbeQKZwz3WDE9xcEfLE8c5A==",
+ "optional": true,
+ "requires": {
+ "@polkadot-api/json-rpc-provider": "0.0.1",
+ "@polkadot-api/utils": "0.1.0"
+ }
+ },
+ "@polkadot-api/utils": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@polkadot-api/utils/-/utils-0.1.0.tgz",
+ "integrity": "sha512-MXzWZeuGxKizPx2Xf/47wx9sr/uxKw39bVJUptTJdsaQn/TGq+z310mHzf1RCGvC1diHM8f593KrnDgc9oNbJA==",
+ "optional": true
+ },
+ "@polkadot/api": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-15.0.2.tgz",
+ "integrity": "sha512-CA8Pq2Gsz2MJvpkpIVNzaBs2eJGCr0sEodAb0vTOZW/ZlIDHcBWyWq3KXE+lBMWVzYBEC4Vz6MafNgq6Bsshlw==",
+ "requires": {
+ "@polkadot/api-augment": "15.0.2",
+ "@polkadot/api-base": "15.0.2",
+ "@polkadot/api-derive": "15.0.2",
+ "@polkadot/keyring": "^13.2.3",
+ "@polkadot/rpc-augment": "15.0.2",
+ "@polkadot/rpc-core": "15.0.2",
+ "@polkadot/rpc-provider": "15.0.2",
+ "@polkadot/types": "15.0.2",
+ "@polkadot/types-augment": "15.0.2",
+ "@polkadot/types-codec": "15.0.2",
+ "@polkadot/types-create": "15.0.2",
+ "@polkadot/types-known": "15.0.2",
+ "@polkadot/util": "^13.2.3",
+ "@polkadot/util-crypto": "^13.2.3",
+ "eventemitter3": "^5.0.1",
+ "rxjs": "^7.8.1",
+ "tslib": "^2.8.0"
+ }
+ },
+ "@polkadot/api-augment": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-15.0.2.tgz",
+ "integrity": "sha512-7qtfTihLKS7cT2kEsd8Y1+MJ+2n4Sl0y9BHuPhdNfKcDbGwCxIB7JzXNujww4Is4bF7w1lXcM2U0E/XwJi1BbQ==",
+ "requires": {
+ "@polkadot/api-base": "15.0.2",
+ "@polkadot/rpc-augment": "15.0.2",
+ "@polkadot/types": "15.0.2",
+ "@polkadot/types-augment": "15.0.2",
+ "@polkadot/types-codec": "15.0.2",
+ "@polkadot/util": "^13.2.3",
+ "tslib": "^2.8.0"
+ }
+ },
+ "@polkadot/api-base": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/api-base/-/api-base-15.0.2.tgz",
+ "integrity": "sha512-5++EjpuCxzmrL2JJj511RrPK+IovuIQa8DJhyOp62VDMXPkqS/O6Df5wjYzQh/ftT1ZysftXqJAUA/LSUsH+2g==",
+ "requires": {
+ "@polkadot/rpc-core": "15.0.2",
+ "@polkadot/types": "15.0.2",
+ "@polkadot/util": "^13.2.3",
+ "rxjs": "^7.8.1",
+ "tslib": "^2.8.0"
+ }
+ },
+ "@polkadot/api-derive": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-15.0.2.tgz",
+ "integrity": "sha512-nD8hXZxEv2/wuhjMmVP09lTAYd8inNgrLpLGUR+7hBQeVEQQTdNatkqMKpNIOk2MO46mtUK35NepvDBK9DWZzA==",
+ "requires": {
+ "@polkadot/api": "15.0.2",
+ "@polkadot/api-augment": "15.0.2",
+ "@polkadot/api-base": "15.0.2",
+ "@polkadot/rpc-core": "15.0.2",
+ "@polkadot/types": "15.0.2",
+ "@polkadot/types-codec": "15.0.2",
+ "@polkadot/util": "^13.2.3",
+ "@polkadot/util-crypto": "^13.2.3",
+ "rxjs": "^7.8.1",
+ "tslib": "^2.8.0"
+ }
+ },
+ "@polkadot/keyring": {
+ "version": "13.2.3",
+ "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-13.2.3.tgz",
+ "integrity": "sha512-pgTo6DXNXub0wGD+MnVHYhKxf80Jl+QMOCb818ioGdXz++Uw4mTueFAwtB+N7TGo0HafhChUiNJDxFdlDkcAng==",
+ "requires": {
+ "@polkadot/util": "13.2.3",
+ "@polkadot/util-crypto": "13.2.3",
+ "tslib": "^2.8.0"
+ }
+ },
+ "@polkadot/networks": {
+ "version": "13.2.3",
+ "resolved": "https://registry.npmjs.org/@polkadot/networks/-/networks-13.2.3.tgz",
+ "integrity": "sha512-mG+zkXg/33AyPrkv2xBbAo3LBUwOwBn6qznBU/4jxiZPnVvCwMaxE7xHM22B5riItbNJ169FXv3wy0v6ZmkFbw==",
+ "requires": {
+ "@polkadot/util": "13.2.3",
+ "@substrate/ss58-registry": "^1.51.0",
+ "tslib": "^2.8.0"
+ }
+ },
+ "@polkadot/rpc-augment": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-15.0.2.tgz",
+ "integrity": "sha512-of88GdzsOs15HP+Gowh4G/iKKFkCNIeF0Wes8LiONfn+j2TmWt8blbyGhrIZZeApzbFUDFjnxUPGT40uWJcMpw==",
+ "requires": {
+ "@polkadot/rpc-core": "15.0.2",
+ "@polkadot/types": "15.0.2",
+ "@polkadot/types-codec": "15.0.2",
+ "@polkadot/util": "^13.2.3",
+ "tslib": "^2.8.0"
+ }
+ },
+ "@polkadot/rpc-core": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-15.0.2.tgz",
+ "integrity": "sha512-KOUnfXOAFCN0N23sEbS+FzXhX88JCvJst/nKzO9+q67NgYBEqgcaoG4tqt/VVedgkNi0kA7WAA3wyjt5UYMnrg==",
+ "requires": {
+ "@polkadot/rpc-augment": "15.0.2",
+ "@polkadot/rpc-provider": "15.0.2",
+ "@polkadot/types": "15.0.2",
+ "@polkadot/util": "^13.2.3",
+ "rxjs": "^7.8.1",
+ "tslib": "^2.8.0"
+ }
+ },
+ "@polkadot/rpc-provider": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-15.0.2.tgz",
+ "integrity": "sha512-BwLP8gNskzqtQ2kMk+EX6WK4d9TU0XJ/nJg0TKC2dX5sSTpTF2JQIYp1wuOik4rKNXIU/1hKaDSSylMJj7AHeQ==",
+ "requires": {
+ "@polkadot/keyring": "^13.2.3",
+ "@polkadot/types": "15.0.2",
+ "@polkadot/types-support": "15.0.2",
+ "@polkadot/util": "^13.2.3",
+ "@polkadot/util-crypto": "^13.2.3",
+ "@polkadot/x-fetch": "^13.2.3",
+ "@polkadot/x-global": "^13.2.3",
+ "@polkadot/x-ws": "^13.2.3",
+ "@substrate/connect": "0.8.11",
+ "eventemitter3": "^5.0.1",
+ "mock-socket": "^9.3.1",
+ "nock": "^13.5.5",
+ "tslib": "^2.8.0"
+ }
+ },
+ "@polkadot/types": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-15.0.2.tgz",
+ "integrity": "sha512-6gZBnuXU58hQAXWI2daED2OaQwFMxbQdkE8HVGMovMobEf0PxPfIqf+GdnVmWbe09EU9mv2gCWBcdnvHSRBlQg==",
+ "requires": {
+ "@polkadot/keyring": "^13.2.3",
+ "@polkadot/types-augment": "15.0.2",
+ "@polkadot/types-codec": "15.0.2",
+ "@polkadot/types-create": "15.0.2",
+ "@polkadot/util": "^13.2.3",
+ "@polkadot/util-crypto": "^13.2.3",
+ "rxjs": "^7.8.1",
+ "tslib": "^2.8.0"
+ }
+ },
+ "@polkadot/types-augment": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-15.0.2.tgz",
+ "integrity": "sha512-UiFJVEYML30+V9GdFAHPbA3s4MVQTL1CevsZMnX0+ApvlgEHJMZnVFfYF7jL2bl9BcUYM/zoxEAhj2MpqFFfxw==",
+ "requires": {
+ "@polkadot/types": "15.0.2",
+ "@polkadot/types-codec": "15.0.2",
+ "@polkadot/util": "^13.2.3",
+ "tslib": "^2.8.0"
+ }
+ },
+ "@polkadot/types-codec": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-15.0.2.tgz",
+ "integrity": "sha512-44Q40p1rl0t7Bl1QUamewqXNVPway9xgqByyifv6ODSGhtt+lFoarb3U4JzqRUuuK0PP57ePB0L8q81Totxeew==",
+ "requires": {
+ "@polkadot/util": "^13.2.3",
+ "@polkadot/x-bigint": "^13.2.3",
+ "tslib": "^2.8.0"
+ }
+ },
+ "@polkadot/types-create": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-create/-/types-create-15.0.2.tgz",
+ "integrity": "sha512-YhpcqbH3oI87PkgrV6Fez9jWDqFIep0KcS1YWQcwc9gsBNnuour80t2AAK41/tqAYwOZi6tpJwIevnEhVkxFYA==",
+ "requires": {
+ "@polkadot/types-codec": "15.0.2",
+ "@polkadot/util": "^13.2.3",
+ "tslib": "^2.8.0"
+ }
+ },
+ "@polkadot/types-known": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-15.0.2.tgz",
+ "integrity": "sha512-SyBo4xBoesHYiEfdW/nOgaftKgM7+puBWqQXq1Euz0MM5LDLjxBw22Srgk9ulGM6l9MsekIwCyX8geJ6/6J3Cg==",
+ "requires": {
+ "@polkadot/networks": "^13.2.3",
+ "@polkadot/types": "15.0.2",
+ "@polkadot/types-codec": "15.0.2",
+ "@polkadot/types-create": "15.0.2",
+ "@polkadot/util": "^13.2.3",
+ "tslib": "^2.8.0"
+ }
+ },
+ "@polkadot/types-support": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-support/-/types-support-15.0.2.tgz",
+ "integrity": "sha512-I7Im/4K2/XDZ1LfeQeeNyvIkfvozIPQs8K1/nsICDOmBbvIsjxSeKWHOcFDMJ8AlPEer6bqNQavOyZA/pg9R/Q==",
+ "requires": {
+ "@polkadot/util": "^13.2.3",
+ "tslib": "^2.8.0"
+ }
+ },
+ "@polkadot/util": {
+ "version": "13.2.3",
+ "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-13.2.3.tgz",
+ "integrity": "sha512-pioNnsig3qHXrfOKMe4Yqos8B8N3/EZUpS+WfTpWnn1VjYban/0GrTXeavPlAwggnY27b8fS6rBzQBhnVYDw8g==",
+ "requires": {
+ "@polkadot/x-bigint": "13.2.3",
+ "@polkadot/x-global": "13.2.3",
+ "@polkadot/x-textdecoder": "13.2.3",
+ "@polkadot/x-textencoder": "13.2.3",
+ "@types/bn.js": "^5.1.6",
+ "bn.js": "^5.2.1",
+ "tslib": "^2.8.0"
+ }
+ },
+ "@polkadot/util-crypto": {
+ "version": "13.2.3",
+ "resolved": "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-13.2.3.tgz",
+ "integrity": "sha512-5sbggmLbn5eiuVMyPROPlT5roHRqdKHOfSpioNbGvGIZ1qIWVoC1RfsK0NWJOVGDzy6DpQe0KYT/kgcU5Xsrzw==",
+ "requires": {
+ "@noble/curves": "^1.3.0",
+ "@noble/hashes": "^1.3.3",
+ "@polkadot/networks": "13.2.3",
+ "@polkadot/util": "13.2.3",
+ "@polkadot/wasm-crypto": "^7.4.1",
+ "@polkadot/wasm-util": "^7.4.1",
+ "@polkadot/x-bigint": "13.2.3",
+ "@polkadot/x-randomvalues": "13.2.3",
+ "@scure/base": "^1.1.7",
+ "tslib": "^2.8.0"
+ }
+ },
+ "@polkadot/wasm-bridge": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-bridge/-/wasm-bridge-7.4.1.tgz",
+ "integrity": "sha512-tdkJaV453tezBxhF39r4oeG0A39sPKGDJmN81LYLf+Fihb7astzwju+u75BRmDrHZjZIv00un3razJEWCxze6g==",
+ "requires": {
+ "@polkadot/wasm-util": "7.4.1",
+ "tslib": "^2.7.0"
+ }
+ },
+ "@polkadot/wasm-crypto": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto/-/wasm-crypto-7.4.1.tgz",
+ "integrity": "sha512-kHN/kF7hYxm1y0WeFLWeWir6oTzvcFmR4N8fJJokR+ajYbdmrafPN+6iLgQVbhZnDdxyv9jWDuRRsDnBx8tPMQ==",
+ "requires": {
+ "@polkadot/wasm-bridge": "7.4.1",
+ "@polkadot/wasm-crypto-asmjs": "7.4.1",
+ "@polkadot/wasm-crypto-init": "7.4.1",
+ "@polkadot/wasm-crypto-wasm": "7.4.1",
+ "@polkadot/wasm-util": "7.4.1",
+ "tslib": "^2.7.0"
+ }
+ },
+ "@polkadot/wasm-crypto-asmjs": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-7.4.1.tgz",
+ "integrity": "sha512-pwU8QXhUW7IberyHJIQr37IhbB6DPkCG5FhozCiNTq4vFBsFPjm9q8aZh7oX1QHQaiAZa2m2/VjIVE+FHGbvHQ==",
+ "requires": {
+ "tslib": "^2.7.0"
+ }
+ },
+ "@polkadot/wasm-crypto-init": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-init/-/wasm-crypto-init-7.4.1.tgz",
+ "integrity": "sha512-AVka33+f7MvXEEIGq5U0dhaA2SaXMXnxVCQyhJTaCnJ5bRDj0Xlm3ijwDEQUiaDql7EikbkkRtmlvs95eSUWYQ==",
+ "requires": {
+ "@polkadot/wasm-bridge": "7.4.1",
+ "@polkadot/wasm-crypto-asmjs": "7.4.1",
+ "@polkadot/wasm-crypto-wasm": "7.4.1",
+ "@polkadot/wasm-util": "7.4.1",
+ "tslib": "^2.7.0"
+ }
+ },
+ "@polkadot/wasm-crypto-wasm": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-7.4.1.tgz",
+ "integrity": "sha512-PE1OAoupFR0ZOV2O8tr7D1FEUAwaggzxtfs3Aa5gr+yxlSOaWUKeqsOYe1KdrcjmZVV3iINEAXxgrbzCmiuONg==",
+ "requires": {
+ "@polkadot/wasm-util": "7.4.1",
+ "tslib": "^2.7.0"
+ }
+ },
+ "@polkadot/wasm-util": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-util/-/wasm-util-7.4.1.tgz",
+ "integrity": "sha512-RAcxNFf3zzpkr+LX/ItAsvj+QyM56TomJ0xjUMo4wKkHjwsxkz4dWJtx5knIgQz/OthqSDMR59VNEycQeNuXzA==",
+ "requires": {
+ "tslib": "^2.7.0"
+ }
+ },
+ "@polkadot/x-bigint": {
+ "version": "13.2.3",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-13.2.3.tgz",
+ "integrity": "sha512-VKgEAh0LsxTd/Hg517Tt5ZU4CySjBwMpaojbkjgv3fOdg1cN7t4eFEUxpyj7mlO0cp22SzDh7nmy4TO98qhLQA==",
+ "requires": {
+ "@polkadot/x-global": "13.2.3",
+ "tslib": "^2.8.0"
+ }
+ },
+ "@polkadot/x-fetch": {
+ "version": "13.2.3",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-fetch/-/x-fetch-13.2.3.tgz",
+ "integrity": "sha512-7Nmk+8ieEGzz43nc1rX6nH3rQo6rhGmAaIXJWnXY9gOHY0k1me1bJYbP+xDdh8vcLh8eY3D1sESUwG6QYZW2lg==",
+ "requires": {
+ "@polkadot/x-global": "13.2.3",
+ "node-fetch": "^3.3.2",
+ "tslib": "^2.8.0"
+ }
+ },
+ "@polkadot/x-global": {
+ "version": "13.2.3",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-13.2.3.tgz",
+ "integrity": "sha512-7MYQIAEwBkRcNrgqac5PbB0kNPlI6ISJEy6/Nb+crj8BFjQ8rf11PF49fq0QsvDeuYM1aNLigrvYZNptQs4lbw==",
+ "requires": {
+ "tslib": "^2.8.0"
+ }
+ },
+ "@polkadot/x-randomvalues": {
+ "version": "13.2.3",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-13.2.3.tgz",
+ "integrity": "sha512-Zf0GTfLmVk+VzPUmcQSpXjjmFzMTjPhXoLuIoE7xIu73T+vQ+TX9j7DvorN6bIRsnZ9l1SyTZsSf/NTjNZKIZg==",
+ "requires": {
+ "@polkadot/x-global": "13.2.3",
+ "tslib": "^2.8.0"
+ }
+ },
+ "@polkadot/x-textdecoder": {
+ "version": "13.2.3",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-13.2.3.tgz",
+ "integrity": "sha512-i8hRXPtGknmdm3FYv6/94I52VXHJZa5sgYNw1+Hqb4Jqmq4awUjea35CKXd/+aw70Qn8Ngg31l2GoiH494fa+Q==",
+ "requires": {
+ "@polkadot/x-global": "13.2.3",
+ "tslib": "^2.8.0"
+ }
+ },
+ "@polkadot/x-textencoder": {
+ "version": "13.2.3",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-13.2.3.tgz",
+ "integrity": "sha512-wJI3Bb/dC4zyBXJFm5+ZhyBXWoI5wvP8k8qX0/ZC0PQsgSAqs7LVhiofk4Wd94n0P41W5re58LrGXLyziSAshw==",
+ "requires": {
+ "@polkadot/x-global": "13.2.3",
+ "tslib": "^2.8.0"
+ }
+ },
+ "@polkadot/x-ws": {
+ "version": "13.2.3",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-ws/-/x-ws-13.2.3.tgz",
+ "integrity": "sha512-Y6MTAWgcnrnx/LkBx65X3ZyoJH5EFj3tXtflRoKg1+PLHSLuNBV7Wi5mLcE70z4e5c+4hgBbLq+8SqCqzFtSPw==",
+ "requires": {
+ "@polkadot/x-global": "13.2.3",
+ "tslib": "^2.8.0",
+ "ws": "^8.18.0"
+ }
+ },
+ "@prb/math": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@prb/math/-/math-4.1.0.tgz",
+ "integrity": "sha512-ef5Xrlh3BeX4xT5/Wi810dpEPq2bYPndRxgFIaKSU1F/Op/s8af03kyom+mfU7gEpvfIZ46xu8W0duiHplbBMg=="
+ },
+ "@scure/base": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.1.tgz",
+ "integrity": "sha512-DGmGtC8Tt63J5GfHgfl5CuAXh96VF/LD8K9Hr/Gv0J2lAoRGlPOMpqMpMbCTOoOJMZCk2Xt+DskdDyn6dEFdzQ=="
+ },
+ "@substrate/connect": {
+ "version": "0.8.11",
+ "resolved": "https://registry.npmjs.org/@substrate/connect/-/connect-0.8.11.tgz",
+ "integrity": "sha512-ofLs1PAO9AtDdPbdyTYj217Pe+lBfTLltdHDs3ds8no0BseoLeAGxpz1mHfi7zB4IxI3YyAiLjH6U8cw4pj4Nw==",
+ "optional": true,
+ "requires": {
+ "@substrate/connect-extension-protocol": "^2.0.0",
+ "@substrate/connect-known-chains": "^1.1.5",
+ "@substrate/light-client-extension-helpers": "^1.0.0",
+ "smoldot": "2.0.26"
+ }
+ },
+ "@substrate/connect-extension-protocol": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-2.2.1.tgz",
+ "integrity": "sha512-GoafTgm/Jey9E4Xlj4Z5ZBt/H4drH2CNq8VrAro80rtoznrXnFDNVivLQzZN0Xaj2g8YXSn9pC9Oc9IovYZJXw==",
+ "optional": true
+ },
+ "@substrate/light-client-extension-helpers": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@substrate/light-client-extension-helpers/-/light-client-extension-helpers-1.0.0.tgz",
+ "integrity": "sha512-TdKlni1mBBZptOaeVrKnusMg/UBpWUORNDv5fdCaJklP4RJiFOzBCrzC+CyVI5kQzsXBisZ+2pXm+rIjS38kHg==",
+ "optional": true,
+ "requires": {
+ "@polkadot-api/json-rpc-provider": "^0.0.1",
+ "@polkadot-api/json-rpc-provider-proxy": "^0.1.0",
+ "@polkadot-api/observable-client": "^0.3.0",
+ "@polkadot-api/substrate-client": "^0.1.2",
+ "@substrate/connect-extension-protocol": "^2.0.0",
+ "@substrate/connect-known-chains": "^1.1.5",
+ "rxjs": "^7.8.1"
+ }
+ },
+ "@types/node": {
+ "version": "22.7.5",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz",
+ "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==",
+ "peer": true,
+ "requires": {
+ "undici-types": "~6.19.2"
+ }
+ },
+ "aes-js": {
+ "version": "4.0.0-beta.5",
+ "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz",
+ "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==",
+ "peer": true
+ },
+ "axios": {
+ "version": "0.21.4",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
+ "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
+ "requires": {
+ "follow-redirects": "^1.14.0"
+ }
+ },
+ "chokidar": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "requires": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "fsevents": "~2.3.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ }
+ },
+ "ethers": {
+ "version": "6.13.4",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.4.tgz",
+ "integrity": "sha512-21YtnZVg4/zKkCQPjrDj38B1r4nQvTZLopUGMLQ1ePU2zV/joCfDC3t3iKQjWRzjjjbzR+mdAIoikeBRNkdllA==",
+ "peer": true,
+ "requires": {
+ "@adraffy/ens-normalize": "1.10.1",
+ "@noble/curves": "1.2.0",
+ "@noble/hashes": "1.3.2",
+ "@types/node": "22.7.5",
+ "aes-js": "4.0.0-beta.5",
+ "tslib": "2.7.0",
+ "ws": "8.17.1"
+ },
+ "dependencies": {
+ "@noble/curves": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz",
+ "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==",
+ "peer": true,
+ "requires": {
+ "@noble/hashes": "1.3.2"
+ }
+ },
+ "@noble/hashes": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz",
+ "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==",
+ "peer": true
+ },
+ "tslib": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz",
+ "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==",
+ "peer": true
+ },
+ "ws": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz",
+ "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==",
+ "peer": true,
+ "requires": {}
+ }
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "hardhat-deploy": {
+ "version": "0.12.4",
+ "resolved": "https://registry.npmjs.org/hardhat-deploy/-/hardhat-deploy-0.12.4.tgz",
+ "integrity": "sha512-bYO8DIyeGxZWlhnMoCBon9HNZb6ji0jQn7ngP1t5UmGhC8rQYhji7B73qETMOFhzt5ECZPr+U52duj3nubsqdQ==",
+ "requires": {
+ "@ethersproject/abi": "^5.7.0",
+ "@ethersproject/abstract-signer": "^5.7.0",
+ "@ethersproject/address": "^5.7.0",
+ "@ethersproject/bignumber": "^5.7.0",
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/constants": "^5.7.0",
+ "@ethersproject/contracts": "^5.7.0",
+ "@ethersproject/providers": "^5.7.2",
+ "@ethersproject/solidity": "^5.7.0",
+ "@ethersproject/transactions": "^5.7.0",
+ "@ethersproject/wallet": "^5.7.0",
+ "@types/qs": "^6.9.7",
+ "axios": "^0.21.1",
+ "chalk": "^4.1.2",
+ "chokidar": "^3.5.2",
+ "debug": "^4.3.2",
+ "enquirer": "^2.3.6",
+ "ethers": "^5.7.0",
+ "form-data": "^4.0.0",
+ "fs-extra": "^10.0.0",
+ "match-all": "^1.2.6",
+ "murmur-128": "^0.2.1",
+ "qs": "^6.9.4",
+ "zksync-ethers": "^5.0.0"
+ },
+ "dependencies": {
+ "ethers": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz",
+ "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==",
+ "requires": {
+ "@ethersproject/abi": "5.7.0",
+ "@ethersproject/abstract-provider": "5.7.0",
+ "@ethersproject/abstract-signer": "5.7.0",
+ "@ethersproject/address": "5.7.0",
+ "@ethersproject/base64": "5.7.0",
+ "@ethersproject/basex": "5.7.0",
+ "@ethersproject/bignumber": "5.7.0",
+ "@ethersproject/bytes": "5.7.0",
+ "@ethersproject/constants": "5.7.0",
+ "@ethersproject/contracts": "5.7.0",
+ "@ethersproject/hash": "5.7.0",
+ "@ethersproject/hdnode": "5.7.0",
+ "@ethersproject/json-wallets": "5.7.0",
+ "@ethersproject/keccak256": "5.7.0",
+ "@ethersproject/logger": "5.7.0",
+ "@ethersproject/networks": "5.7.1",
+ "@ethersproject/pbkdf2": "5.7.0",
+ "@ethersproject/properties": "5.7.0",
+ "@ethersproject/providers": "5.7.2",
+ "@ethersproject/random": "5.7.0",
+ "@ethersproject/rlp": "5.7.0",
+ "@ethersproject/sha2": "5.7.0",
+ "@ethersproject/signing-key": "5.7.0",
+ "@ethersproject/solidity": "5.7.0",
+ "@ethersproject/strings": "5.7.0",
+ "@ethersproject/transactions": "5.7.0",
+ "@ethersproject/units": "5.7.0",
+ "@ethersproject/wallet": "5.7.0",
+ "@ethersproject/web": "5.7.1",
+ "@ethersproject/wordlists": "5.7.0"
+ }
+ }
+ }
+ },
+ "hardhat-deploy-ethers": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/hardhat-deploy-ethers/-/hardhat-deploy-ethers-0.4.2.tgz",
+ "integrity": "sha512-AskNH/XRYYYqPT94MvO5s1yMi+/QvoNjS4oU5VcVqfDU99kgpGETl+uIYHIrSXtH5sy7J6gyVjpRMf4x0tjLSQ==",
+ "requires": {}
+ },
+ "readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "requires": {
+ "picomatch": "^2.2.1"
+ }
+ },
+ "smoldot": {
+ "version": "2.0.26",
+ "resolved": "https://registry.npmjs.org/smoldot/-/smoldot-2.0.26.tgz",
+ "integrity": "sha512-F+qYmH4z2s2FK+CxGj8moYcd1ekSIKH8ywkdqlOz88Dat35iB1DIYL11aILN46YSGMzQW/lbJNS307zBSDN5Ig==",
+ "optional": true,
+ "requires": {
+ "ws": "^8.8.1"
+ }
+ },
+ "typescript": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz",
+ "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg=="
+ },
+ "undici-types": {
+ "version": "6.19.8",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
+ "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
+ "peer": true
+ }
+ }
+ },
+ "dkg.js": {
+ "version": "6.5.5",
+ "resolved": "https://registry.npmjs.org/dkg.js/-/dkg.js-6.5.5.tgz",
+ "integrity": "sha512-MSVbGYAZkWtTPCdDG+PLAsy/lGff5IKvCnk0QEdZ6P6ieV6Hbq4HMJHIxpFVXlw7OIdwNaEEt5S+jtTfkVuqmg==",
+ "dev": true,
+ "requires": {
+ "assertion-tools": "^2.2.1",
+ "axios": "^0.27.2",
+ "dkg-evm-module": "^4.4.0",
+ "ethers": "^6.1.0",
+ "jsonld": "^8.1.0",
+ "web3": "^1.7.3"
+ },
+ "dependencies": {
+ "@noble/hashes": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.6.1.tgz",
+ "integrity": "sha512-pq5D8h10hHBjyqX+cfBm0i8JUXJ0UhczFc4r74zbuT9XgewFo2E3J1cOaGtdZynILNmQ685YWGzGE1Zv6io50w==",
+ "dev": true
},
"@polkadot/api": {
"version": "11.3.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-11.3.1.tgz",
+ "integrity": "sha512-q4kFIIHTLvKxM24b0Eo8hJevsPMme+aITJGrDML9BgdZYTRN14+cu5nXiCsQvaEamdyYj+uCXWe2OV9X7pPxsA==",
+ "dev": true,
"requires": {
"@polkadot/api-augment": "11.3.1",
"@polkadot/api-base": "11.3.1",
@@ -25919,6 +32488,9 @@
},
"@polkadot/api-augment": {
"version": "11.3.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-11.3.1.tgz",
+ "integrity": "sha512-Yj+6rb6h0WwY3yJ+UGhjGW+tyMRFUMsKQuGw+eFsXdjiNU9UoXsAqA2dG7Q1F+oeX/g+y2gLGBezNoCwbl6HfA==",
+ "dev": true,
"requires": {
"@polkadot/api-base": "11.3.1",
"@polkadot/rpc-augment": "11.3.1",
@@ -25931,6 +32503,9 @@
},
"@polkadot/api-base": {
"version": "11.3.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/api-base/-/api-base-11.3.1.tgz",
+ "integrity": "sha512-b8UkNL00NN7+3QaLCwL5cKg+7YchHoKCAhwKusWHNBZkkO6Oo2BWilu0dZkPJOyqV9P389Kbd9+oH+SKs9u2VQ==",
+ "dev": true,
"requires": {
"@polkadot/rpc-core": "11.3.1",
"@polkadot/types": "11.3.1",
@@ -25941,6 +32516,9 @@
},
"@polkadot/api-derive": {
"version": "11.3.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-11.3.1.tgz",
+ "integrity": "sha512-9dopzrh4cRuft1nANmBvMY/hEhFDu0VICMTOGxQLOl8NMfcOFPTLAN0JhSBUoicGZhV+c4vpv01NBx/7/IL1HA==",
+ "dev": true,
"requires": {
"@polkadot/api": "11.3.1",
"@polkadot/api-augment": "11.3.1",
@@ -25956,6 +32534,9 @@
},
"@polkadot/keyring": {
"version": "12.6.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-12.6.2.tgz",
+ "integrity": "sha512-O3Q7GVmRYm8q7HuB3S0+Yf/q/EB2egKRRU3fv9b3B7V+A52tKzA+vIwEmNVaD1g5FKW9oB97rmpggs0zaKFqHw==",
+ "dev": true,
"requires": {
"@polkadot/util": "12.6.2",
"@polkadot/util-crypto": "12.6.2",
@@ -25964,6 +32545,9 @@
},
"@polkadot/networks": {
"version": "12.6.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/networks/-/networks-12.6.2.tgz",
+ "integrity": "sha512-1oWtZm1IvPWqvMrldVH6NI2gBoCndl5GEwx7lAuQWGr7eNL+6Bdc5K3Z9T0MzFvDGoi2/CBqjX9dRKo39pDC/w==",
+ "dev": true,
"requires": {
"@polkadot/util": "12.6.2",
"@substrate/ss58-registry": "^1.44.0",
@@ -25972,6 +32556,9 @@
},
"@polkadot/rpc-augment": {
"version": "11.3.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-11.3.1.tgz",
+ "integrity": "sha512-2PaDcKNju4QYQpxwVkWbRU3M0t340nMX9cMo+8awgvgL1LliV/fUDZueMKLuSS910JJMTPQ7y2pK4eQgMt08gQ==",
+ "dev": true,
"requires": {
"@polkadot/rpc-core": "11.3.1",
"@polkadot/types": "11.3.1",
@@ -25982,6 +32569,9 @@
},
"@polkadot/rpc-core": {
"version": "11.3.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-11.3.1.tgz",
+ "integrity": "sha512-KKNepsDd/mpmXcA6v/h14eFFPEzLGd7nrvx2UUXUxoZ0Fq2MH1hplP3s93k1oduNY/vOXJR2K9S4dKManA6GVQ==",
+ "dev": true,
"requires": {
"@polkadot/rpc-augment": "11.3.1",
"@polkadot/rpc-provider": "11.3.1",
@@ -25993,6 +32583,9 @@
},
"@polkadot/rpc-provider": {
"version": "11.3.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-11.3.1.tgz",
+ "integrity": "sha512-pqERChoHo45hd3WAgW8UuzarRF+G/o/eXEbl0PXLubiayw4X4qCmIzmtntUcKYgxGNcYGZaG87ZU8OjN97m6UA==",
+ "dev": true,
"requires": {
"@polkadot/keyring": "^12.6.2",
"@polkadot/types": "11.3.1",
@@ -26011,6 +32604,9 @@
},
"@polkadot/types": {
"version": "11.3.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-11.3.1.tgz",
+ "integrity": "sha512-5c7uRFXQTT11Awi6T0yFIdAfD6xGDAOz06Kp7M5S9OGNZY28wSPk5x6BYfNphWPaIBmHHewYJB5qmnrdYQAWKQ==",
+ "dev": true,
"requires": {
"@polkadot/keyring": "^12.6.2",
"@polkadot/types-augment": "11.3.1",
@@ -26024,6 +32620,9 @@
},
"@polkadot/types-augment": {
"version": "11.3.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-11.3.1.tgz",
+ "integrity": "sha512-eR3HVpvUmB3v7q2jTWVmVfAVfb1/kuNn7ij94Zqadg/fuUq0pKqIOKwkUj3OxRM3A/5BnW3MbgparjKD3r+fyw==",
+ "dev": true,
"requires": {
"@polkadot/types": "11.3.1",
"@polkadot/types-codec": "11.3.1",
@@ -26033,6 +32632,9 @@
},
"@polkadot/types-codec": {
"version": "11.3.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-11.3.1.tgz",
+ "integrity": "sha512-i7IiiuuL+Z/jFoKTA9xeh4wGQnhnNNjMT0+1ohvlOvnFsoKZKFQQOaDPPntGJVL1JDCV+KjkN2uQKZSeW8tguQ==",
+ "dev": true,
"requires": {
"@polkadot/util": "^12.6.2",
"@polkadot/x-bigint": "^12.6.2",
@@ -26041,6 +32643,9 @@
},
"@polkadot/types-create": {
"version": "11.3.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-create/-/types-create-11.3.1.tgz",
+ "integrity": "sha512-pBXtpz5FehcRJ6j5MzFUIUN8ZWM7z6HbqK1GxBmYbJVRElcGcOg7a/rL2pQVphU0Rx1E8bSO4thzGf4wUxSX7w==",
+ "dev": true,
"requires": {
"@polkadot/types-codec": "11.3.1",
"@polkadot/util": "^12.6.2",
@@ -26049,6 +32654,9 @@
},
"@polkadot/types-known": {
"version": "11.3.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-11.3.1.tgz",
+ "integrity": "sha512-3BIof7u6tn9bk3ZCIxA07iNoQ3uj4+vn3DTOjCKECozkRlt6V+kWRvqh16Hc0SHMg/QjcMb2fIu/WZhka1McUQ==",
+ "dev": true,
"requires": {
"@polkadot/networks": "^12.6.2",
"@polkadot/types": "11.3.1",
@@ -26060,6 +32668,9 @@
},
"@polkadot/types-support": {
"version": "11.3.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-support/-/types-support-11.3.1.tgz",
+ "integrity": "sha512-jTFz1GKyF7nI29yIOq4v0NiWTOf5yX4HahJNeFD8TcxoLhF+6tH/XXqrUXJEfbaTlSrRWiW1LZYlb+snctqKHA==",
+ "dev": true,
"requires": {
"@polkadot/util": "^12.6.2",
"tslib": "^2.6.2"
@@ -26067,6 +32678,9 @@
},
"@polkadot/util": {
"version": "12.6.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-12.6.2.tgz",
+ "integrity": "sha512-l8TubR7CLEY47240uki0TQzFvtnxFIO7uI/0GoWzpYD/O62EIAMRsuY01N4DuwgKq2ZWD59WhzsLYmA5K6ksdw==",
+ "dev": true,
"requires": {
"@polkadot/x-bigint": "12.6.2",
"@polkadot/x-global": "12.6.2",
@@ -26079,6 +32693,9 @@
},
"@polkadot/util-crypto": {
"version": "12.6.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-12.6.2.tgz",
+ "integrity": "sha512-FEWI/dJ7wDMNN1WOzZAjQoIcCP/3vz3wvAp5QQm+lOrzOLj0iDmaIGIcBkz8HVm3ErfSe/uKP0KS4jgV/ib+Mg==",
+ "dev": true,
"requires": {
"@noble/curves": "^1.3.0",
"@noble/hashes": "^1.3.3",
@@ -26094,6 +32711,9 @@
},
"@polkadot/wasm-bridge": {
"version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-bridge/-/wasm-bridge-7.4.1.tgz",
+ "integrity": "sha512-tdkJaV453tezBxhF39r4oeG0A39sPKGDJmN81LYLf+Fihb7astzwju+u75BRmDrHZjZIv00un3razJEWCxze6g==",
+ "dev": true,
"requires": {
"@polkadot/wasm-util": "7.4.1",
"tslib": "^2.7.0"
@@ -26101,6 +32721,9 @@
},
"@polkadot/wasm-crypto": {
"version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto/-/wasm-crypto-7.4.1.tgz",
+ "integrity": "sha512-kHN/kF7hYxm1y0WeFLWeWir6oTzvcFmR4N8fJJokR+ajYbdmrafPN+6iLgQVbhZnDdxyv9jWDuRRsDnBx8tPMQ==",
+ "dev": true,
"requires": {
"@polkadot/wasm-bridge": "7.4.1",
"@polkadot/wasm-crypto-asmjs": "7.4.1",
@@ -26112,12 +32735,18 @@
},
"@polkadot/wasm-crypto-asmjs": {
"version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-7.4.1.tgz",
+ "integrity": "sha512-pwU8QXhUW7IberyHJIQr37IhbB6DPkCG5FhozCiNTq4vFBsFPjm9q8aZh7oX1QHQaiAZa2m2/VjIVE+FHGbvHQ==",
+ "dev": true,
"requires": {
"tslib": "^2.7.0"
}
},
"@polkadot/wasm-crypto-init": {
"version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-init/-/wasm-crypto-init-7.4.1.tgz",
+ "integrity": "sha512-AVka33+f7MvXEEIGq5U0dhaA2SaXMXnxVCQyhJTaCnJ5bRDj0Xlm3ijwDEQUiaDql7EikbkkRtmlvs95eSUWYQ==",
+ "dev": true,
"requires": {
"@polkadot/wasm-bridge": "7.4.1",
"@polkadot/wasm-crypto-asmjs": "7.4.1",
@@ -26128,6 +32757,9 @@
},
"@polkadot/wasm-crypto-wasm": {
"version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-7.4.1.tgz",
+ "integrity": "sha512-PE1OAoupFR0ZOV2O8tr7D1FEUAwaggzxtfs3Aa5gr+yxlSOaWUKeqsOYe1KdrcjmZVV3iINEAXxgrbzCmiuONg==",
+ "dev": true,
"requires": {
"@polkadot/wasm-util": "7.4.1",
"tslib": "^2.7.0"
@@ -26135,12 +32767,18 @@
},
"@polkadot/wasm-util": {
"version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-util/-/wasm-util-7.4.1.tgz",
+ "integrity": "sha512-RAcxNFf3zzpkr+LX/ItAsvj+QyM56TomJ0xjUMo4wKkHjwsxkz4dWJtx5knIgQz/OthqSDMR59VNEycQeNuXzA==",
+ "dev": true,
"requires": {
"tslib": "^2.7.0"
}
},
"@polkadot/x-bigint": {
"version": "12.6.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-12.6.2.tgz",
+ "integrity": "sha512-HSIk60uFPX4GOFZSnIF7VYJz7WZA7tpFJsne7SzxOooRwMTWEtw3fUpFy5cYYOeLh17/kHH1Y7SVcuxzVLc74Q==",
+ "dev": true,
"requires": {
"@polkadot/x-global": "12.6.2",
"tslib": "^2.6.2"
@@ -26148,6 +32786,9 @@
},
"@polkadot/x-fetch": {
"version": "12.6.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-fetch/-/x-fetch-12.6.2.tgz",
+ "integrity": "sha512-8wM/Z9JJPWN1pzSpU7XxTI1ldj/AfC8hKioBlUahZ8gUiJaOF7K9XEFCrCDLis/A1BoOu7Ne6WMx/vsJJIbDWw==",
+ "dev": true,
"requires": {
"@polkadot/x-global": "12.6.2",
"node-fetch": "^3.3.2",
@@ -26156,12 +32797,18 @@
},
"@polkadot/x-global": {
"version": "12.6.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-12.6.2.tgz",
+ "integrity": "sha512-a8d6m+PW98jmsYDtAWp88qS4dl8DyqUBsd0S+WgyfSMtpEXu6v9nXDgPZgwF5xdDvXhm+P0ZfVkVTnIGrScb5g==",
+ "dev": true,
"requires": {
"tslib": "^2.6.2"
}
},
"@polkadot/x-randomvalues": {
"version": "12.6.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-12.6.2.tgz",
+ "integrity": "sha512-Vr8uG7rH2IcNJwtyf5ebdODMcr0XjoCpUbI91Zv6AlKVYOGKZlKLYJHIwpTaKKB+7KPWyQrk4Mlym/rS7v9feg==",
+ "dev": true,
"requires": {
"@polkadot/x-global": "12.6.2",
"tslib": "^2.6.2"
@@ -26169,6 +32816,9 @@
},
"@polkadot/x-textdecoder": {
"version": "12.6.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-12.6.2.tgz",
+ "integrity": "sha512-M1Bir7tYvNappfpFWXOJcnxUhBUFWkUFIdJSyH0zs5LmFtFdbKAeiDXxSp2Swp5ddOZdZgPac294/o2TnQKN1w==",
+ "dev": true,
"requires": {
"@polkadot/x-global": "12.6.2",
"tslib": "^2.6.2"
@@ -26176,6 +32826,9 @@
},
"@polkadot/x-textencoder": {
"version": "12.6.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-12.6.2.tgz",
+ "integrity": "sha512-4N+3UVCpI489tUJ6cv3uf0PjOHvgGp9Dl+SZRLgFGt9mvxnvpW/7+XBADRMtlG4xi5gaRK7bgl5bmY6OMDsNdw==",
+ "dev": true,
"requires": {
"@polkadot/x-global": "12.6.2",
"tslib": "^2.6.2"
@@ -26183,6 +32836,9 @@
},
"@polkadot/x-ws": {
"version": "12.6.2",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-ws/-/x-ws-12.6.2.tgz",
+ "integrity": "sha512-cGZWo7K5eRRQCRl2LrcyCYsrc3lRbTlixZh3AzgU8uX4wASVGRlNWi/Hf4TtHNe1ExCDmxabJzdIsABIfrr7xw==",
+ "dev": true,
"requires": {
"@polkadot/x-global": "12.6.2",
"tslib": "^2.6.2",
@@ -26190,10 +32846,16 @@
}
},
"@scure/base": {
- "version": "1.2.1"
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.1.tgz",
+ "integrity": "sha512-DGmGtC8Tt63J5GfHgfl5CuAXh96VF/LD8K9Hr/Gv0J2lAoRGlPOMpqMpMbCTOoOJMZCk2Xt+DskdDyn6dEFdzQ==",
+ "dev": true
},
"@substrate/connect": {
"version": "0.8.10",
+ "resolved": "https://registry.npmjs.org/@substrate/connect/-/connect-0.8.10.tgz",
+ "integrity": "sha512-DIyQ13DDlXqVFnLV+S6/JDgiGowVRRrh18kahieJxhgvzcWicw5eLc6jpfQ0moVVLBYkO7rctB5Wreldwpva8w==",
+ "dev": true,
"optional": true,
"requires": {
"@substrate/connect-extension-protocol": "^2.0.0",
@@ -26204,24 +32866,15 @@
},
"@substrate/connect-extension-protocol": {
"version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-2.2.1.tgz",
+ "integrity": "sha512-GoafTgm/Jey9E4Xlj4Z5ZBt/H4drH2CNq8VrAro80rtoznrXnFDNVivLQzZN0Xaj2g8YXSn9pC9Oc9IovYZJXw==",
+ "dev": true,
"optional": true
- }
- }
- },
- "dkg.js": {
- "version": "6.5.4",
- "dev": true,
- "requires": {
- "assertion-tools": "^2.2.1",
- "axios": "^0.27.2",
- "dkg-evm-module": "^4.4.0",
- "ethers": "^6.1.0",
- "jsonld": "^8.1.0",
- "web3": "^1.7.3"
- },
- "dependencies": {
+ },
"@types/node": {
"version": "22.7.5",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz",
+ "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==",
"dev": true,
"requires": {
"undici-types": "~6.19.2"
@@ -26229,18 +32882,95 @@
},
"aes-js": {
"version": "4.0.0-beta.5",
+ "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz",
+ "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==",
"dev": true
},
+ "assertion-tools": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/assertion-tools/-/assertion-tools-2.2.1.tgz",
+ "integrity": "sha512-JlA1S16Ox93PnYb45HvxNcax/Ii4gqTO8HLGa/ykj/ddp8EEHlokn6inJR2yMiz173WSFkCc0ciLJzGeaYBANw==",
+ "dev": true,
+ "requires": {
+ "ethers": "^5.7.2",
+ "jsonld": "^8.1.0",
+ "merkletreejs": "^0.3.2"
+ },
+ "dependencies": {
+ "ethers": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz",
+ "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/abi": "5.7.0",
+ "@ethersproject/abstract-provider": "5.7.0",
+ "@ethersproject/abstract-signer": "5.7.0",
+ "@ethersproject/address": "5.7.0",
+ "@ethersproject/base64": "5.7.0",
+ "@ethersproject/basex": "5.7.0",
+ "@ethersproject/bignumber": "5.7.0",
+ "@ethersproject/bytes": "5.7.0",
+ "@ethersproject/constants": "5.7.0",
+ "@ethersproject/contracts": "5.7.0",
+ "@ethersproject/hash": "5.7.0",
+ "@ethersproject/hdnode": "5.7.0",
+ "@ethersproject/json-wallets": "5.7.0",
+ "@ethersproject/keccak256": "5.7.0",
+ "@ethersproject/logger": "5.7.0",
+ "@ethersproject/networks": "5.7.1",
+ "@ethersproject/pbkdf2": "5.7.0",
+ "@ethersproject/properties": "5.7.0",
+ "@ethersproject/providers": "5.7.2",
+ "@ethersproject/random": "5.7.0",
+ "@ethersproject/rlp": "5.7.0",
+ "@ethersproject/sha2": "5.7.0",
+ "@ethersproject/signing-key": "5.7.0",
+ "@ethersproject/solidity": "5.7.0",
+ "@ethersproject/strings": "5.7.0",
+ "@ethersproject/transactions": "5.7.0",
+ "@ethersproject/units": "5.7.0",
+ "@ethersproject/wallet": "5.7.0",
+ "@ethersproject/web": "5.7.1",
+ "@ethersproject/wordlists": "5.7.0"
+ }
+ }
+ }
+ },
"axios": {
"version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz",
+ "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
"dev": true,
"requires": {
"follow-redirects": "^1.14.9",
"form-data": "^4.0.0"
}
},
+ "dkg-evm-module": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/dkg-evm-module/-/dkg-evm-module-4.4.0.tgz",
+ "integrity": "sha512-2hBZI/KnbbOEiKr3mU7Nknz3Wis8hLWGvyCifevG4/fUO8v+oVdrshLvQJ6izAfDHeua2PHcW8Z3hn6eIdUVxA==",
+ "dev": true,
+ "requires": {
+ "@openzeppelin/contracts": "^4.9.3",
+ "@polkadot/api": "^11.0.3",
+ "@polkadot/keyring": "^12.6.2",
+ "@polkadot/util": "^12.6.2",
+ "@polkadot/util-crypto": "^12.6.2",
+ "@prb/math": "^2.5.0",
+ "dotenv": "^16.0.3",
+ "hardhat": "^2.22.5",
+ "hardhat-deploy": "^0.11.25",
+ "hardhat-deploy-ethers": "^0.3.0-beta.13",
+ "ts-node": "^10.9.1",
+ "typescript": "^4.9.4"
+ }
+ },
"ethers": {
"version": "6.13.4",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.4.tgz",
+ "integrity": "sha512-21YtnZVg4/zKkCQPjrDj38B1r4nQvTZLopUGMLQ1ePU2zV/joCfDC3t3iKQjWRzjjjbzR+mdAIoikeBRNkdllA==",
"dev": true,
"requires": {
"@adraffy/ens-normalize": "1.10.1",
@@ -26254,6 +32984,8 @@
"dependencies": {
"@noble/curves": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz",
+ "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==",
"dev": true,
"requires": {
"@noble/hashes": "1.3.2"
@@ -26261,20 +32993,28 @@
},
"@noble/hashes": {
"version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz",
+ "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==",
"dev": true
}
}
},
"tslib": {
"version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz",
+ "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==",
"dev": true
},
"undici-types": {
"version": "6.19.8",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
+ "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
"dev": true
},
"ws": {
"version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz",
+ "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==",
"dev": true,
"requires": {}
}
@@ -26282,6 +33022,8 @@
},
"dns-over-http-resolver": {
"version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz",
+ "integrity": "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==",
"requires": {
"debug": "^4.3.1",
"native-fetch": "^3.0.0",
@@ -26290,12 +33032,16 @@
},
"doctrine": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
"requires": {
"esutils": "^2.0.2"
}
},
"dom-serializer": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
+ "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
"requires": {
"domelementtype": "^2.3.0",
"domhandler": "^5.0.2",
@@ -26304,13 +33050,19 @@
},
"dom-walk": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz",
+ "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==",
"dev": true
},
"domelementtype": {
- "version": "2.3.0"
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="
},
"domexception": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz",
+ "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==",
"dev": true,
"requires": {
"webidl-conversions": "^5.0.0"
@@ -26318,18 +33070,24 @@
"dependencies": {
"webidl-conversions": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz",
+ "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==",
"dev": true
}
}
},
"domhandler": {
"version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
+ "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
"requires": {
"domelementtype": "^2.3.0"
}
},
"domutils": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
+ "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
"requires": {
"dom-serializer": "^2.0.0",
"domelementtype": "^2.3.0",
@@ -26337,22 +33095,42 @@
}
},
"dotenv": {
- "version": "16.4.7"
+ "version": "16.4.7",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz",
+ "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ=="
},
"dottie": {
- "version": "2.0.6"
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.6.tgz",
+ "integrity": "sha512-iGCHkfUc5kFekGiqhe8B/mdaurD+lakO9txNnTvKtA6PISrw86LgqHvRzWYPyoE2Ph5aMIrCw9/uko6XHTKCwA=="
+ },
+ "dunder-proto": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.0.tgz",
+ "integrity": "sha512-9+Sj30DIu+4KvHqMfLUGLFYL2PkURSYMVXJyXe92nFRvlYq5hBjLEhblKB+vkd/WVlUYMWigiY07T91Fkk0+4A==",
+ "requires": {
+ "call-bind-apply-helpers": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.2.0"
+ }
},
"duplexer2": {
"version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
+ "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==",
"requires": {
"readable-stream": "^2.0.2"
},
"dependencies": {
"isarray": {
- "version": "1.0.0"
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
},
"readable-stream": {
"version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -26364,10 +33142,14 @@
}
},
"safe-buffer": {
- "version": "5.1.2"
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"string_decoder": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"requires": {
"safe-buffer": "~5.1.0"
}
@@ -26376,10 +33158,14 @@
},
"eastasianwidth": {
"version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
"dev": true
},
"ecc-jsbn": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
"dev": true,
"requires": {
"jsbn": "~0.1.0",
@@ -26388,37 +33174,51 @@
"dependencies": {
"jsbn": {
"version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==",
"dev": true
}
}
},
"ecdsa-sig-formatter": {
"version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
+ "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
"requires": {
"safe-buffer": "^5.0.1"
}
},
"ed2curve": {
"version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/ed2curve/-/ed2curve-0.3.0.tgz",
+ "integrity": "sha512-8w2fmmq3hv9rCrcI7g9hms2pMunQr1JINfcjwR9tAyZqhtyaMN991lF/ZfHfr5tzZQ8c7y7aBgZbjfbd0fjFwQ==",
"requires": {
"tweetnacl": "1.x.x"
}
},
"ee-first": {
- "version": "1.1.1"
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
},
"electron-fetch": {
"version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.9.1.tgz",
+ "integrity": "sha512-M9qw6oUILGVrcENMSRRefE1MbHPIz0h79EKIeJWK9v563aT9Qkh8aEHPO1H5vi970wPirNY+jO9OpFoLiMsMGA==",
"requires": {
"encoding": "^0.1.13"
}
},
"electron-to-chromium": {
- "version": "1.5.71",
+ "version": "1.5.73",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.73.tgz",
+ "integrity": "sha512-8wGNxG9tAG5KhGd3eeA0o6ixhiNdgr0DcHWm85XPCphwZgD1lIEoi6t3VERayWao7SF7AAZTw6oARGJeVjH8Kg==",
"dev": true
},
"elliptic": {
"version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
+ "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
"requires": {
"bn.js": "^4.11.9",
"brorand": "^1.1.0",
@@ -26430,56 +33230,82 @@
},
"dependencies": {
"bn.js": {
- "version": "4.12.1"
+ "version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz",
+ "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg=="
}
}
},
"emittery": {
- "version": "0.13.1"
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz",
+ "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ=="
},
"emoji-regex": {
"version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
"dev": true
},
"enabled": {
- "version": "2.0.0"
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz",
+ "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ=="
},
"encode-utf8": {
- "version": "1.0.3"
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz",
+ "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw=="
},
"encodeurl": {
- "version": "2.0.0"
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="
},
"encoding": {
"version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
+ "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
"requires": {
"iconv-lite": "^0.6.2"
}
},
"end-of-stream": {
"version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
"requires": {
"once": "^1.4.0"
}
},
"enquirer": {
"version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz",
+ "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==",
"requires": {
"ansi-colors": "^4.1.1",
"strip-ansi": "^6.0.1"
}
},
"entities": {
- "version": "4.5.0"
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="
},
"env-paths": {
- "version": "2.2.1"
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
+ "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A=="
},
"err-code": {
- "version": "3.0.1"
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz",
+ "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA=="
},
"error-stack-parser": {
"version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz",
+ "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==",
"dev": true,
"requires": {
"stackframe": "^1.3.4"
@@ -26487,6 +33313,8 @@
},
"es-abstract": {
"version": "1.23.5",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.5.tgz",
+ "integrity": "sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==",
"dev": true,
"peer": true,
"requires": {
@@ -26539,16 +33367,19 @@
}
},
"es-define-property": {
- "version": "1.0.0",
- "requires": {
- "get-intrinsic": "^1.2.4"
- }
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="
},
"es-errors": {
- "version": "1.3.0"
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="
},
"es-iterator-helpers": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz",
+ "integrity": "sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==",
"dev": true,
"peer": true,
"requires": {
@@ -26571,13 +33402,16 @@
},
"es-object-atoms": {
"version": "1.0.0",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
+ "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==",
"requires": {
"es-errors": "^1.3.0"
}
},
"es-set-tostringtag": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz",
+ "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==",
"dev": true,
"peer": true,
"requires": {
@@ -26588,6 +33422,8 @@
},
"es-shim-unscopables": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
+ "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
"dev": true,
"peer": true,
"requires": {
@@ -26596,6 +33432,8 @@
},
"es-to-primitive": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz",
+ "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==",
"dev": true,
"peer": true,
"requires": {
@@ -26606,6 +33444,8 @@
},
"es5-ext": {
"version": "0.10.64",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz",
+ "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==",
"requires": {
"es6-iterator": "^2.0.3",
"es6-symbol": "^3.1.3",
@@ -26615,10 +33455,14 @@
},
"es6-error": {
"version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
+ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
"dev": true
},
"es6-iterator": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==",
"requires": {
"d": "1",
"es5-ext": "^0.10.35",
@@ -26627,32 +33471,49 @@
},
"es6-promise": {
"version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
+ "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
"dev": true
},
"es6-promisify": {
- "version": "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=="
},
"es6-symbol": {
"version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz",
+ "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==",
"requires": {
"d": "^1.0.2",
"ext": "^1.7.0"
}
},
"escalade": {
- "version": "3.2.0"
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="
},
"escape-html": {
- "version": "1.0.3"
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
},
"escape-latex": {
- "version": "1.2.0"
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/escape-latex/-/escape-latex-1.2.0.tgz",
+ "integrity": "sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw==",
+ "dev": true
},
"escape-string-regexp": {
- "version": "4.0.0"
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
},
"escodegen": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz",
+ "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==",
"dev": true,
"requires": {
"esprima": "^4.0.1",
@@ -26663,6 +33524,8 @@
},
"eslint": {
"version": "8.57.1",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz",
+ "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
"requires": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
@@ -26706,6 +33569,8 @@
},
"eslint-config-airbnb": {
"version": "19.0.4",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz",
+ "integrity": "sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==",
"dev": true,
"requires": {
"eslint-config-airbnb-base": "^15.0.0",
@@ -26715,6 +33580,8 @@
},
"eslint-config-airbnb-base": {
"version": "15.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz",
+ "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==",
"dev": true,
"requires": {
"confusing-browser-globals": "^1.0.10",
@@ -26725,21 +33592,29 @@
"dependencies": {
"semver": {
"version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true
}
}
},
"eslint-config-google": {
"version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.13.0.tgz",
+ "integrity": "sha512-ELgMdOIpn0CFdsQS+FuxO+Ttu4p+aLaXHv9wA9yVnzqlUGV7oN/eRRnJekk7TCur6Cu2FXX0fqfIXRBaM14lpQ==",
"requires": {}
},
"eslint-config-prettier": {
"version": "8.10.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz",
+ "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==",
"dev": true,
"requires": {}
},
"eslint-import-resolver-node": {
"version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
+ "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
"dev": true,
"peer": true,
"requires": {
@@ -26750,6 +33625,8 @@
"dependencies": {
"debug": {
"version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
"peer": true,
"requires": {
@@ -26760,6 +33637,8 @@
},
"eslint-module-utils": {
"version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz",
+ "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==",
"dev": true,
"peer": true,
"requires": {
@@ -26768,6 +33647,8 @@
"dependencies": {
"debug": {
"version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
"peer": true,
"requires": {
@@ -26778,6 +33659,8 @@
},
"eslint-plugin-import": {
"version": "2.31.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz",
+ "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==",
"dev": true,
"peer": true,
"requires": {
@@ -26804,6 +33687,8 @@
"dependencies": {
"debug": {
"version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
"peer": true,
"requires": {
@@ -26812,6 +33697,8 @@
},
"doctrine": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
"dev": true,
"peer": true,
"requires": {
@@ -26820,6 +33707,8 @@
},
"semver": {
"version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
"peer": true
}
@@ -26827,6 +33716,8 @@
},
"eslint-plugin-jsx-a11y": {
"version": "6.10.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz",
+ "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==",
"dev": true,
"peer": true,
"requires": {
@@ -26849,6 +33740,8 @@
},
"eslint-plugin-react": {
"version": "7.37.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz",
+ "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==",
"dev": true,
"peer": true,
"requires": {
@@ -26874,6 +33767,8 @@
"dependencies": {
"doctrine": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
"dev": true,
"peer": true,
"requires": {
@@ -26882,6 +33777,8 @@
},
"resolve": {
"version": "2.0.0-next.5",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
+ "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
"dev": true,
"peer": true,
"requires": {
@@ -26892,6 +33789,8 @@
},
"semver": {
"version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
"peer": true
}
@@ -26899,22 +33798,30 @@
},
"eslint-plugin-react-hooks": {
"version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz",
+ "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==",
"dev": true,
"peer": true,
"requires": {}
},
"eslint-scope": {
"version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+ "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
"requires": {
"esrecurse": "^4.3.0",
"estraverse": "^5.2.0"
}
},
"eslint-visitor-keys": {
- "version": "3.4.3"
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="
},
"esniff": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz",
+ "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==",
"requires": {
"d": "^1.0.1",
"es5-ext": "^0.10.62",
@@ -26924,6 +33831,8 @@
},
"espree": {
"version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
"requires": {
"acorn": "^8.9.0",
"acorn-jsx": "^5.3.2",
@@ -26932,31 +33841,45 @@
},
"esprima": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true
},
"esquery": {
"version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
+ "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
"requires": {
"estraverse": "^5.1.0"
}
},
"esrecurse": {
"version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
"requires": {
"estraverse": "^5.2.0"
}
},
"estraverse": {
- "version": "5.3.0"
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
},
"esutils": {
- "version": "2.0.3"
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
},
"etag": {
- "version": "1.8.1"
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
},
"eth-ens-namehash": {
"version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz",
+ "integrity": "sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==",
"dev": true,
"requires": {
"idna-uts46-hx": "^2.3.1",
@@ -26965,12 +33888,16 @@
"dependencies": {
"js-sha3": {
"version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
+ "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==",
"dev": true
}
}
},
"eth-lib": {
"version": "0.1.29",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz",
+ "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==",
"dev": true,
"requires": {
"bn.js": "^4.11.6",
@@ -26983,14 +33910,20 @@
"dependencies": {
"bn.js": {
"version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz",
+ "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==",
"dev": true
},
"safe-buffer": {
"version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"dev": true
},
"ws": {
"version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
+ "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
"dev": true,
"requires": {
"async-limiter": "~1.0.0",
@@ -27002,17 +33935,23 @@
},
"ethereum-bloom-filters": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.2.0.tgz",
+ "integrity": "sha512-28hyiE7HVsWubqhpVLVmZXFd4ITeHi+BUu05o9isf0GUpMtzBUi+8/gFrGaGYzvGAJQmJ3JKj77Mk9G98T84rA==",
"requires": {
"@noble/hashes": "^1.4.0"
},
"dependencies": {
"@noble/hashes": {
- "version": "1.6.1"
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.6.1.tgz",
+ "integrity": "sha512-pq5D8h10hHBjyqX+cfBm0i8JUXJ0UhczFc4r74zbuT9XgewFo2E3J1cOaGtdZynILNmQ685YWGzGE1Zv6io50w=="
}
}
},
"ethereum-cryptography": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz",
+ "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==",
"requires": {
"@noble/hashes": "1.2.0",
"@noble/secp256k1": "1.7.1",
@@ -27022,18 +33961,24 @@
},
"ethereumjs-abi": {
"version": "0.6.8",
+ "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz",
+ "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==",
"requires": {
"bn.js": "^4.11.8",
"ethereumjs-util": "^6.0.0"
},
"dependencies": {
"bn.js": {
- "version": "4.12.1"
+ "version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz",
+ "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg=="
}
}
},
"ethereumjs-util": {
"version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
+ "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
"requires": {
"@types/bn.js": "^4.11.3",
"bn.js": "^4.11.0",
@@ -27046,15 +33991,21 @@
"dependencies": {
"@types/bn.js": {
"version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
"requires": {
"@types/node": "*"
}
},
"bn.js": {
- "version": "4.12.1"
+ "version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz",
+ "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg=="
},
"ethereum-cryptography": {
"version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
+ "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
"requires": {
"@types/pbkdf2": "^3.0.0",
"@types/secp256k1": "^4.0.1",
@@ -27077,6 +34028,8 @@
},
"ethers": {
"version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz",
+ "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==",
"requires": {
"@ethersproject/abi": "5.7.0",
"@ethersproject/abstract-provider": "5.7.0",
@@ -27112,18 +34065,24 @@
},
"ethjs-unit": {
"version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz",
+ "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==",
"requires": {
"bn.js": "4.11.6",
"number-to-bn": "1.7.0"
},
"dependencies": {
"bn.js": {
- "version": "4.11.6"
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA=="
}
}
},
"ethjs-util": {
"version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz",
+ "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==",
"requires": {
"is-hex-prefixed": "1.0.0",
"strip-hex-prefix": "1.0.0"
@@ -27131,22 +34090,33 @@
},
"event-emitter": {
"version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
+ "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==",
"requires": {
"d": "1",
"es5-ext": "~0.10.14"
}
},
"event-target-shim": {
- "version": "5.0.1"
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
+ "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="
},
"eventemitter3": {
- "version": "5.0.1"
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
+ "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA=="
},
"events": {
- "version": "3.3.0"
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="
},
"evm-bn": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/evm-bn/-/evm-bn-1.1.2.tgz",
+ "integrity": "sha512-Lq8CT1EAjSeN+Yk0h1hpSwnZyMA4Xir6fQD4vlStljAuW2xr7qLOEGDLGsTa9sU2e40EYIumA4wYhMC/e+lyKw==",
+ "dev": true,
"requires": {
"@ethersproject/bignumber": "^5.5.0",
"from-exponential": "^1.1.1"
@@ -27154,6 +34124,8 @@
},
"evp_bytestokey": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
"requires": {
"md5.js": "^1.3.4",
"safe-buffer": "^5.1.1"
@@ -27161,6 +34133,8 @@
},
"execa": {
"version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
"requires": {
"cross-spawn": "^7.0.3",
"get-stream": "^6.0.0",
@@ -27175,10 +34149,13 @@
},
"expand-template": {
"version": "2.0.3",
- "dev": true
+ "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
+ "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg=="
},
"express": {
"version": "4.21.2",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
+ "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
"requires": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
@@ -27215,50 +34192,72 @@
"dependencies": {
"debug": {
"version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
}
},
"ms": {
- "version": "2.0.0"
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
}
}
},
"express-fileupload": {
"version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/express-fileupload/-/express-fileupload-1.5.1.tgz",
+ "integrity": "sha512-LsYG1ALXEB7vlmjuSw8ABeOctMp8a31aUC5ZF55zuz7O2jLFnmJYrCv10py357ky48aEoBQ/9bVXgFynjvaPmA==",
"requires": {
"busboy": "^1.6.0"
}
},
"express-rate-limit": {
"version": "6.11.2",
+ "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-6.11.2.tgz",
+ "integrity": "sha512-a7uwwfNTh1U60ssiIkuLFWHt4hAC5yxlLGU2VP0X4YNlyEDZAqF4tK3GD3NSitVBrCQmQ0++0uOyFOgC2y4DDw==",
"requires": {}
},
"ext": {
"version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz",
+ "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==",
"requires": {
"type": "^2.7.2"
}
},
"extend": {
"version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
"dev": true
},
"extsprintf": {
"version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz",
+ "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==",
"dev": true
},
"fast-copy": {
- "version": "3.0.2"
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.2.tgz",
+ "integrity": "sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ=="
},
"fast-deep-equal": {
- "version": "3.1.3"
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
"fast-fifo": {
- "version": "1.3.2"
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz",
+ "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ=="
},
"fast-glob": {
"version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
"requires": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
@@ -27269,6 +34268,8 @@
"dependencies": {
"glob-parent": {
"version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"requires": {
"is-glob": "^4.0.1"
}
@@ -27276,31 +34277,47 @@
}
},
"fast-json-stable-stringify": {
- "version": "2.1.0"
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
},
"fast-levenshtein": {
- "version": "2.0.6"
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
},
"fast-redact": {
- "version": "3.5.0"
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz",
+ "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A=="
},
"fast-safe-stringify": {
- "version": "2.1.1"
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
+ "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA=="
},
"fast-uri": {
- "version": "3.0.3"
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz",
+ "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw=="
},
"fastq": {
"version": "1.17.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
+ "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
"requires": {
"reusify": "^1.0.4"
}
},
"fecha": {
- "version": "4.2.3"
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz",
+ "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw=="
},
"fetch-blob": {
"version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
+ "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
"requires": {
"node-domexception": "^1.0.0",
"web-streams-polyfill": "^3.0.3"
@@ -27308,6 +34325,8 @@
},
"fetch-sparql-endpoint": {
"version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/fetch-sparql-endpoint/-/fetch-sparql-endpoint-4.2.1.tgz",
+ "integrity": "sha512-nRaexc3QCO95bjESf4ngNQ1J+qNtVzxFGlPUopqOIVHm/j6IDhWg996kk7fBM98Mmo0uM9b6uiTbXmJHOrnqYA==",
"requires": {
"@rdfjs/types": "*",
"@smessie/readable-web-to-node-stream": "^3.0.3",
@@ -27327,24 +34346,34 @@
"dependencies": {
"cross-fetch": {
"version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz",
+ "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==",
"requires": {
"node-fetch": "^2.6.12"
}
},
"node-fetch": {
"version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
"requires": {
"whatwg-url": "^5.0.0"
}
},
"tr46": {
- "version": "0.0.3"
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
"webidl-conversions": {
- "version": "3.0.1"
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
},
"whatwg-url": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
"requires": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"
@@ -27354,6 +34383,8 @@
},
"figures": {
"version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
"dev": true,
"requires": {
"escape-string-regexp": "^1.0.5"
@@ -27361,27 +34392,37 @@
"dependencies": {
"escape-string-regexp": {
"version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
"dev": true
}
}
},
"file-entry-cache": {
"version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
"requires": {
"flat-cache": "^3.0.4"
}
},
"file-uri-to-path": {
- "version": "1.0.0"
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
},
"fill-range": {
"version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"requires": {
"to-regex-range": "^5.0.1"
}
},
"finalhandler": {
"version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
+ "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
"requires": {
"debug": "2.6.9",
"encodeurl": "~2.0.0",
@@ -27394,17 +34435,23 @@
"dependencies": {
"debug": {
"version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
}
},
"ms": {
- "version": "2.0.0"
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
}
}
},
"find-cache-dir": {
"version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
+ "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
"dev": true,
"requires": {
"commondir": "^1.0.1",
@@ -27414,16 +34461,22 @@
},
"find-up": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
"requires": {
"locate-path": "^6.0.0",
"path-exists": "^4.0.0"
}
},
"flat": {
- "version": "5.0.2"
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
+ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ=="
},
"flat-cache": {
"version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
"requires": {
"flatted": "^3.2.9",
"keyv": "^4.5.3",
@@ -27431,25 +34484,37 @@
}
},
"flatstr": {
- "version": "1.0.12"
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz",
+ "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw=="
},
"flatted": {
- "version": "3.3.2"
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz",
+ "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA=="
},
"fmix": {
"version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/fmix/-/fmix-0.1.0.tgz",
+ "integrity": "sha512-Y6hyofImk9JdzU8k5INtTXX1cu8LDlePWDFU5sftm9H+zKCr5SGrVjdhkvsim646cw5zD0nADj8oHyXMZmCZ9w==",
"requires": {
"imul": "^1.0.0"
}
},
"fn.name": {
- "version": "1.1.0"
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz",
+ "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw=="
},
"follow-redirects": {
- "version": "1.15.9"
+ "version": "1.15.9",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
+ "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ=="
},
"for-each": {
"version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
"dev": true,
"requires": {
"is-callable": "^1.1.3"
@@ -27457,6 +34522,8 @@
},
"foreground-child": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz",
+ "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==",
"dev": true,
"requires": {
"cross-spawn": "^7.0.0",
@@ -27465,10 +34532,14 @@
},
"forever-agent": {
"version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
"dev": true
},
"form-data": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz",
+ "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==",
"requires": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
@@ -27477,39 +34548,60 @@
},
"form-data-encoder": {
"version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz",
+ "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==",
"dev": true
},
"formdata-polyfill": {
"version": "4.0.10",
+ "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
+ "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
"requires": {
"fetch-blob": "^3.1.2"
}
},
"forwarded": {
- "version": "0.2.0"
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
},
"fp-ts": {
- "version": "1.19.3"
+ "version": "1.19.3",
+ "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz",
+ "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg=="
},
"fraction.js": {
- "version": "4.3.7"
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
+ "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
+ "dev": true
},
"fresh": {
- "version": "0.5.2"
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
},
"from-exponential": {
- "version": "1.1.1"
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/from-exponential/-/from-exponential-1.1.1.tgz",
+ "integrity": "sha512-VBE7f5OVnYwdgB3LHa+Qo29h8qVpxhVO9Trlc+AWm+/XNAgks1tAwMFHb33mjeiof77GglsJzeYF7OqXrROP/A==",
+ "dev": true
},
"fromentries": {
"version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz",
+ "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==",
"dev": true
},
"fs-constants": {
"version": "1.0.0",
- "dev": true
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
},
"fs-extra": {
"version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
"requires": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -27518,20 +34610,28 @@
},
"fs-minipass": {
"version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
+ "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
"dev": true,
"requires": {
"minipass": "^2.6.0"
}
},
"fs.realpath": {
- "version": "1.0.0"
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
},
"fsevents": {
"version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
"optional": true
},
"fstream": {
"version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
+ "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
"requires": {
"graceful-fs": "^4.1.2",
"inherits": "~2.0.0",
@@ -27541,6 +34641,8 @@
"dependencies": {
"rimraf": {
"version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
"requires": {
"glob": "^7.1.3"
}
@@ -27548,10 +34650,14 @@
}
},
"function-bind": {
- "version": "1.1.2"
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="
},
"function.prototype.name": {
"version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
+ "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
"dev": true,
"peer": true,
"requires": {
@@ -27563,48 +34669,89 @@
},
"functions-have-names": {
"version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
"dev": true,
"peer": true
},
+ "gauge": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz",
+ "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==",
+ "optional": true,
+ "requires": {
+ "aproba": "^1.0.3 || ^2.0.0",
+ "color-support": "^1.1.3",
+ "console-control-strings": "^1.1.0",
+ "has-unicode": "^2.0.1",
+ "signal-exit": "^3.0.7",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1",
+ "wide-align": "^1.1.5"
+ }
+ },
"generate-function": {
"version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz",
+ "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==",
"requires": {
"is-property": "^1.0.2"
}
},
"gensync": {
"version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
"dev": true
},
"get-caller-file": {
- "version": "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-func-name": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz",
+ "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==",
"dev": true
},
"get-intrinsic": {
- "version": "1.2.4",
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.6.tgz",
+ "integrity": "sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==",
"requires": {
+ "call-bind-apply-helpers": "^1.0.1",
+ "dunder-proto": "^1.0.0",
+ "es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
"function-bind": "^1.1.2",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.0"
+ "gopd": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "hasown": "^2.0.2",
+ "math-intrinsics": "^1.0.0"
}
},
"get-iterator": {
- "version": "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-package-type": {
"version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
+ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
"dev": true
},
"get-stream": {
- "version": "6.0.1"
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="
},
"get-symbol-description": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz",
+ "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==",
"dev": true,
"peer": true,
"requires": {
@@ -27615,6 +34762,8 @@
},
"getpass": {
"version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
"dev": true,
"requires": {
"assert-plus": "^1.0.0"
@@ -27622,10 +34771,13 @@
},
"github-from-package": {
"version": "0.0.0",
- "dev": true
+ "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
+ "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw=="
},
"glob": {
"version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -27637,12 +34789,16 @@
},
"glob-parent": {
"version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
"requires": {
"is-glob": "^4.0.3"
}
},
"global": {
"version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz",
+ "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==",
"dev": true,
"requires": {
"min-document": "^2.19.0",
@@ -27651,6 +34807,8 @@
},
"global-dirs": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz",
+ "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==",
"dev": true,
"requires": {
"ini": "2.0.0"
@@ -27658,12 +34816,16 @@
},
"globals": {
"version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
"requires": {
"type-fest": "^0.20.2"
}
},
"globalthis": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
+ "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
"dev": true,
"peer": true,
"requires": {
@@ -27672,10 +34834,14 @@
}
},
"gopd": {
- "version": "1.2.0"
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="
},
"got": {
"version": "12.1.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz",
+ "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==",
"dev": true,
"requires": {
"@sindresorhus/is": "^4.6.0",
@@ -27695,15 +34861,21 @@
"dependencies": {
"p-cancelable": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz",
+ "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==",
"dev": true
}
}
},
"graceful-fs": {
- "version": "4.2.11"
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
},
"graphdb": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/graphdb/-/graphdb-2.0.2.tgz",
+ "integrity": "sha512-ORbS7yw/kTUdKXyeO7QaXx1I3fxigej3KQQdrVSpu0ZQ1W7OVQHDAd/Gu+x2clpwm6sela94Uh/+YKkQGbZqmA==",
"requires": {
"axios": "^0.21.4",
"base64url": "^3.0.1",
@@ -27719,22 +34891,32 @@
},
"dependencies": {
"@types/node": {
- "version": "13.13.52"
+ "version": "13.13.52",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.52.tgz",
+ "integrity": "sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ=="
},
"axios": {
"version": "0.21.4",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
+ "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
"requires": {
"follow-redirects": "^1.14.0"
}
},
"canonicalize": {
- "version": "1.0.8"
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz",
+ "integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A=="
},
"fast-redact": {
- "version": "2.1.0"
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-2.1.0.tgz",
+ "integrity": "sha512-0LkHpTLyadJavq9sRzzyqIoMZemWli77K2/MGOkafrR64B9ItrvZ9aT+jluvNDsv0YEHjSNhlMBtbokuoqii4A=="
},
"jsonld-streaming-parser": {
"version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/jsonld-streaming-parser/-/jsonld-streaming-parser-2.4.3.tgz",
+ "integrity": "sha512-ysuevJ+l8+Y4W3J/yQW3pa9VCBNDHo2tZkKmPAnfhfsmFMyxuueAeXMmTbpJZdrpagzeeDVr3A8EZVuHliQJ9A==",
"requires": {
"@rdfjs/types": "*",
"@types/http-link-header": "^1.0.1",
@@ -27747,6 +34929,8 @@
},
"pino": {
"version": "5.17.0",
+ "resolved": "https://registry.npmjs.org/pino/-/pino-5.17.0.tgz",
+ "integrity": "sha512-LqrqmRcJz8etUjyV0ddqB6OTUutCgQULPFg2b4dtijRHUsucaAdBgSUW58vY6RFSX+NT8963F+q0tM6lNwGShA==",
"requires": {
"fast-redact": "^2.0.0",
"fast-safe-stringify": "^2.0.7",
@@ -27757,13 +34941,19 @@
}
},
"pino-std-serializers": {
- "version": "2.5.0"
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-2.5.0.tgz",
+ "integrity": "sha512-wXqbqSrIhE58TdrxxlfLwU9eDhrzppQDvGhBEr1gYbzzM4KKo3Y63gSjiDXRKLVS2UOXdPNR2v+KnQgNrs+xUg=="
},
"quick-format-unescaped": {
- "version": "3.0.3"
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-3.0.3.tgz",
+ "integrity": "sha512-dy1yjycmn9blucmJLXOfZDx1ikZJUi6E8bBZLnhPG5gBrVhHXx2xVyqqgKBubVNEXmx51dBACMHpoMQK/N/AXQ=="
},
"rdfxml-streaming-parser": {
"version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/rdfxml-streaming-parser/-/rdfxml-streaming-parser-1.5.0.tgz",
+ "integrity": "sha512-pnt+7NgeqCMd2/rub+dqxzYJhZwJjBNU2BRwyYdCTmRZu2fr795jCPJB6Io5pjPzAt29ASqy+ODBSRMDKoKGbQ==",
"requires": {
"@rdfjs/types": "*",
"rdf-data-factory": "^1.1.0",
@@ -27773,6 +34963,8 @@
},
"sonic-boom": {
"version": "0.7.7",
+ "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-0.7.7.tgz",
+ "integrity": "sha512-Ei5YOo5J64GKClHIL/5evJPgASXFVpfVYbJV9PILZQytTK6/LCwHvsZJW2Ig4p9FMC2OrBrMnXKgRN/OEoAWfg==",
"requires": {
"atomic-sleep": "^1.0.0",
"flatstr": "^1.0.12"
@@ -27780,6 +34972,8 @@
},
"sparqljson-parse": {
"version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/sparqljson-parse/-/sparqljson-parse-1.7.0.tgz",
+ "integrity": "sha512-/88g7aK1QZ42YvMx+nStNeZsiVJhmg/OC4RNnQk+ybItvEkQiTOpnYDmST5FnzOIsSmp5RxAZDCIDdMK1h7Ynw==",
"requires": {
"@rdfjs/types": "*",
"@types/node": "^13.1.0",
@@ -27789,6 +34983,8 @@
},
"sparqlxml-parse": {
"version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/sparqlxml-parse/-/sparqlxml-parse-1.5.0.tgz",
+ "integrity": "sha512-+0DCekgO3G6ugeVntrZS6+Fj60MsHR0q51WoRAdVzARb5V3jhX3dZJbwSaeydsOsXrtts4XSMc/z+kbqy5/VUQ==",
"requires": {
"@rdfjs/types": "*",
"@types/node": "^13.1.0",
@@ -27797,18 +34993,26 @@
}
},
"uuid": {
- "version": "3.4.0"
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
}
}
},
"graphemer": {
- "version": "1.4.0"
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="
},
"graphql": {
- "version": "15.9.0"
+ "version": "15.9.0",
+ "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.9.0.tgz",
+ "integrity": "sha512-GCOQdvm7XxV1S4U4CGrsdlEN37245eC8P9zaYCMr6K1BG0IPGy5lUwmJsEOGyl1GD6HXjOtl2keCP9asRBwNvA=="
},
"graphql-to-sparql": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/graphql-to-sparql/-/graphql-to-sparql-3.0.1.tgz",
+ "integrity": "sha512-A+RwB99o66CUj+XuqtP/u3P7fGS/qF6P+/jhNl1BE/JZ2SCnkrODvV0LADuJeCDmPh45fDhq+GTDVoN1ZQHYFw==",
"requires": {
"@rdfjs/types": "*",
"graphql": "^15.5.2",
@@ -27820,10 +35024,14 @@
},
"har-schema": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==",
"dev": true
},
"har-validator": {
"version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
+ "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
"dev": true,
"requires": {
"ajv": "^6.12.3",
@@ -27832,6 +35040,8 @@
},
"hardhat": {
"version": "2.22.17",
+ "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.22.17.tgz",
+ "integrity": "sha512-tDlI475ccz4d/dajnADUTRc1OJ3H8fpP9sWhXhBPpYsQOg8JHq5xrDimo53UhWPl7KJmAeDCm1bFG74xvpGRpg==",
"requires": {
"@ethersproject/abi": "^5.1.2",
"@metamask/eth-sig-util": "^4.0.0",
@@ -27881,6 +35091,8 @@
"dependencies": {
"fs-extra": {
"version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
+ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
"requires": {
"graceful-fs": "^4.1.2",
"jsonfile": "^4.0.0",
@@ -27889,30 +35101,43 @@
},
"jsonfile": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
"requires": {
"graceful-fs": "^4.1.6"
}
},
"resolve": {
"version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
+ "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
"requires": {
"path-parse": "^1.0.6"
}
},
"semver": {
- "version": "6.3.1"
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
},
"universalify": {
- "version": "0.1.2"
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
},
"ws": {
"version": "7.5.10",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
+ "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
"requires": {}
}
}
},
"hardhat-deploy": {
"version": "0.11.45",
+ "resolved": "https://registry.npmjs.org/hardhat-deploy/-/hardhat-deploy-0.11.45.tgz",
+ "integrity": "sha512-aC8UNaq3JcORnEUIwV945iJuvBwi65tjHVDU3v6mOcqik7WAzHVCJ7cwmkkipsHrWysrB5YvGF1q9S1vIph83w==",
+ "dev": true,
"requires": {
"@ethersproject/abi": "^5.7.0",
"@ethersproject/abstract-signer": "^5.7.0",
@@ -27942,12 +35167,18 @@
"dependencies": {
"axios": {
"version": "0.21.4",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
+ "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
+ "dev": true,
"requires": {
"follow-redirects": "^1.14.0"
}
},
"chokidar": {
"version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "dev": true,
"requires": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
@@ -27961,12 +35192,18 @@
},
"glob-parent": {
"version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
"requires": {
"is-glob": "^4.0.1"
}
},
"readdirp": {
"version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
"requires": {
"picomatch": "^2.2.1"
}
@@ -27975,10 +35212,15 @@
},
"hardhat-deploy-ethers": {
"version": "0.3.0-beta.13",
+ "resolved": "https://registry.npmjs.org/hardhat-deploy-ethers/-/hardhat-deploy-ethers-0.3.0-beta.13.tgz",
+ "integrity": "sha512-PdWVcKB9coqWV1L7JTpfXRCI91Cgwsm7KLmBcwZ8f0COSm1xtABHZTyz3fvF6p42cTnz1VM0QnfDvMFlIRkSNw==",
+ "dev": true,
"requires": {}
},
"has-ansi": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-4.0.1.tgz",
+ "integrity": "sha512-Qr4RtTm30xvEdqUXbSBVWDu+PrTokJOwe/FU+VdfJPk+MXAPoeOzKpRyrDTnZIJwAkQ4oBLTU53nu0HrkF/Z2A==",
"dev": true,
"requires": {
"ansi-regex": "^4.1.0"
@@ -27986,36 +35228,58 @@
},
"has-bigints": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
"dev": true,
"peer": true
},
"has-flag": {
- "version": "4.0.0"
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
},
"has-property-descriptors": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
"requires": {
"es-define-property": "^1.0.0"
}
},
"has-proto": {
- "version": "1.1.0",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz",
+ "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==",
+ "dev": true,
+ "peer": true,
"requires": {
- "call-bind": "^1.0.7"
+ "dunder-proto": "^1.0.0"
}
},
"has-symbols": {
- "version": "1.1.0"
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="
},
"has-tostringtag": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
"dev": true,
"requires": {
"has-symbols": "^1.0.3"
}
},
+ "has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==",
+ "optional": true
+ },
"hash-base": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
+ "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
"requires": {
"inherits": "^2.0.4",
"readable-stream": "^3.6.0",
@@ -28024,6 +35288,8 @@
"dependencies": {
"readable-stream": {
"version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -28034,6 +35300,8 @@
},
"hash.js": {
"version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
"requires": {
"inherits": "^2.0.3",
"minimalistic-assert": "^1.0.1"
@@ -28041,6 +35309,8 @@
},
"hasha": {
"version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz",
+ "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==",
"dev": true,
"requires": {
"is-stream": "^2.0.0",
@@ -28049,27 +35319,39 @@
"dependencies": {
"type-fest": {
"version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
"dev": true
}
}
},
"hashlru": {
- "version": "2.3.0"
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/hashlru/-/hashlru-2.3.0.tgz",
+ "integrity": "sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A=="
},
"hasown": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
"requires": {
"function-bind": "^1.1.2"
}
},
"he": {
- "version": "1.2.0"
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
},
"heap": {
- "version": "0.2.7"
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz",
+ "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg=="
},
"help-me": {
"version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/help-me/-/help-me-4.2.0.tgz",
+ "integrity": "sha512-TAOnTB8Tz5Dw8penUuzHVrKNKlCIbwwbHnXraNJxPwf8LRtE2HlM84RYuezMFcwOJmoYOCWVDyJ8TQGxn9PgxA==",
"requires": {
"glob": "^8.0.0",
"readable-stream": "^3.6.0"
@@ -28077,12 +35359,16 @@
"dependencies": {
"brace-expansion": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"requires": {
"balanced-match": "^1.0.0"
}
},
"glob": {
"version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
+ "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -28093,12 +35379,16 @@
},
"minimatch": {
"version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
"requires": {
"brace-expansion": "^2.0.1"
}
},
"readable-stream": {
"version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -28109,6 +35399,8 @@
},
"hmac-drbg": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
"requires": {
"hash.js": "^1.0.3",
"minimalistic-assert": "^1.0.0",
@@ -28117,6 +35409,8 @@
},
"html-encoding-sniffer": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz",
+ "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==",
"dev": true,
"requires": {
"whatwg-encoding": "^1.0.5"
@@ -28124,10 +35418,14 @@
},
"html-escaper": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
+ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
"dev": true
},
"htmlparser2": {
"version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz",
+ "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==",
"requires": {
"domelementtype": "^2.3.0",
"domhandler": "^5.0.3",
@@ -28137,10 +35435,14 @@
},
"http-cache-semantics": {
"version": "4.1.1",
- "dev": true
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
+ "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==",
+ "devOptional": true
},
"http-errors": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
"requires": {
"depd": "2.0.0",
"inherits": "2.0.4",
@@ -28151,14 +35453,20 @@
},
"http-https": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz",
+ "integrity": "sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==",
"dev": true
},
"http-link-header": {
- "version": "1.1.3"
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-1.1.3.tgz",
+ "integrity": "sha512-3cZ0SRL8fb9MUlU3mKM61FcQvPfXx2dBrZW3Vbg5CXa8jFlK8OaEpePenLe1oEXQduhz8b0QjsqfS59QP4AJDQ=="
},
"http-proxy-agent": {
"version": "4.0.1",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
+ "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
+ "devOptional": true,
"requires": {
"@tootallnate/once": "1",
"agent-base": "6",
@@ -28167,6 +35475,8 @@
},
"http-signature": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
"dev": true,
"requires": {
"assert-plus": "^1.0.0",
@@ -28176,6 +35486,8 @@
},
"http2-wrapper": {
"version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz",
+ "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==",
"dev": true,
"requires": {
"quick-lru": "^5.1.1",
@@ -28184,26 +35496,45 @@
},
"https-proxy-agent": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
"requires": {
"agent-base": "6",
"debug": "4"
}
},
"human-signals": {
- "version": "2.1.0"
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw=="
+ },
+ "humanize-ms": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
+ "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==",
+ "optional": true,
+ "requires": {
+ "ms": "^2.0.0"
+ }
},
"husky": {
"version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz",
+ "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==",
"dev": true
},
"iconv-lite": {
"version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
"requires": {
"safer-buffer": ">= 2.1.2 < 3.0.0"
}
},
"idna-uts46-hx": {
"version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz",
+ "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==",
"dev": true,
"requires": {
"punycode": "2.1.0"
@@ -28211,57 +35542,91 @@
"dependencies": {
"punycode": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz",
+ "integrity": "sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==",
"dev": true
}
}
},
"ieee754": {
- "version": "1.2.1"
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
},
"ignore": {
- "version": "5.3.2"
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="
},
"immutable": {
- "version": "4.3.7"
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz",
+ "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw=="
},
"import-fresh": {
"version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
"requires": {
"parent-module": "^1.0.0",
"resolve-from": "^4.0.0"
}
},
"import-lazy": {
- "version": "4.0.0"
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz",
+ "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw=="
},
"imul": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/imul/-/imul-1.0.1.tgz",
+ "integrity": "sha512-WFAgfwPLAjU66EKt6vRdTlKj4nAgIDQzh29JonLa4Bqtl6D8JrIMvWjCnx7xEjVNmP3U0fM5o8ZObk7d0f62bA=="
},
"imurmurhash": {
- "version": "0.1.4"
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="
},
"indent-string": {
- "version": "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=="
+ },
+ "infer-owner": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
+ "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
+ "optional": true
},
"inflection": {
- "version": "1.13.4"
+ "version": "1.13.4",
+ "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.13.4.tgz",
+ "integrity": "sha512-6I/HUDeYFfuNCVS3td055BaXBwKYuzw7K3ExVMStBowKo9oOAMJIXIHvdyR3iboTCp1b+1i5DSkIZTcwIktuDw=="
},
"inflight": {
"version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"requires": {
"once": "^1.3.0",
"wrappy": "1"
}
},
"inherits": {
- "version": "2.0.4"
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"ini": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
+ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
"dev": true
},
"interface-datastore": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-5.2.0.tgz",
+ "integrity": "sha512-nthO4C4BMJM2j9x/mT2KFa/g/sbcY8yf9j/kOBgli3u5mq9ZdPvQyDxi0OhKzr4JmoM81OYh5xcFjyebquqwvA==",
"requires": {
"err-code": "^3.0.1",
"interface-store": "^1.0.2",
@@ -28275,10 +35640,14 @@
}
},
"interface-store": {
- "version": "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=="
},
"internal-slot": {
"version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz",
+ "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==",
"dev": true,
"peer": true,
"requires": {
@@ -28289,32 +35658,46 @@
},
"internmap": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz",
+ "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==",
"dev": true
},
"io-ts": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz",
+ "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==",
"requires": {
"fp-ts": "^1.0.0"
}
},
"ip": {
- "version": "1.1.9"
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz",
+ "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ=="
},
"ip-address": {
"version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-8.1.0.tgz",
+ "integrity": "sha512-Wz91gZKpNKoXtqvY8ScarKYwhXoK4r/b5QuT+uywe/azv0/nUCo7Bh0IRRI7F9DHR06kJNWtzMGLIbXavngbKA==",
"requires": {
"jsbn": "1.1.0",
"sprintf-js": "1.1.2"
}
},
"ip-regex": {
- "version": "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=="
},
"ipaddr.js": {
- "version": "2.2.0"
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz",
+ "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA=="
},
"ipfs-utils": {
"version": "8.1.6",
+ "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-8.1.6.tgz",
+ "integrity": "sha512-V/cwb6113DrDhrjDTWImA6+zmJbpdbUkxdxmEQO7it8ykV76bBmzU1ZXSM0QR0qxGy9VW8dkUlPAC2K10VgSmw==",
"requires": {
"abort-controller": "^3.0.0",
"any-signal": "^2.1.0",
@@ -28341,15 +35724,19 @@
}
},
"is-arguments": {
- "version": "1.1.1",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz",
+ "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==",
"dev": true,
"requires": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
+ "call-bound": "^1.0.2",
+ "has-tostringtag": "^1.0.2"
}
},
"is-array-buffer": {
"version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz",
+ "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==",
"dev": true,
"peer": true,
"requires": {
@@ -28358,10 +35745,14 @@
}
},
"is-arrayish": {
- "version": "0.3.2"
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
},
"is-async-function": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
+ "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==",
"dev": true,
"peer": true,
"requires": {
@@ -28370,6 +35761,8 @@
},
"is-bigint": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz",
+ "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==",
"dev": true,
"peer": true,
"requires": {
@@ -28378,56 +35771,79 @@
},
"is-binary-path": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"requires": {
"binary-extensions": "^2.0.0"
}
},
"is-boolean-object": {
- "version": "1.2.0",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.1.tgz",
+ "integrity": "sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==",
"dev": true,
"peer": true,
"requires": {
- "call-bind": "^1.0.7",
+ "call-bound": "^1.0.2",
"has-tostringtag": "^1.0.2"
}
},
"is-buffer": {
- "version": "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": {
"version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
"dev": true
},
"is-core-module": {
"version": "2.15.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz",
+ "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==",
"requires": {
"hasown": "^2.0.2"
}
},
"is-data-view": {
- "version": "1.0.1",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz",
+ "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==",
"dev": true,
"peer": true,
"requires": {
+ "call-bound": "^1.0.2",
+ "get-intrinsic": "^1.2.6",
"is-typed-array": "^1.1.13"
}
},
"is-date-object": {
- "version": "1.0.5",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz",
+ "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==",
"dev": true,
"peer": true,
"requires": {
- "has-tostringtag": "^1.0.0"
+ "call-bound": "^1.0.2",
+ "has-tostringtag": "^1.0.2"
}
},
"is-electron": {
- "version": "2.2.2"
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.2.tgz",
+ "integrity": "sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg=="
},
"is-extglob": {
- "version": "2.1.1"
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
},
"is-finalizationregistry": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.0.tgz",
+ "integrity": "sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==",
"dev": true,
"peer": true,
"requires": {
@@ -28436,14 +35852,20 @@
},
"is-fullwidth-code-point": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz",
+ "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==",
"dev": true
},
"is-function": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz",
+ "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==",
"dev": true
},
"is-generator-function": {
"version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
+ "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
"dev": true,
"requires": {
"has-tostringtag": "^1.0.0"
@@ -28451,15 +35873,21 @@
},
"is-glob": {
"version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"requires": {
"is-extglob": "^2.1.1"
}
},
"is-hex-prefixed": {
- "version": "1.0.0"
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz",
+ "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA=="
},
"is-installed-globally": {
"version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz",
+ "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==",
"dev": true,
"requires": {
"global-dirs": "^3.0.0",
@@ -28468,28 +35896,46 @@
},
"is-ip": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz",
+ "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==",
"requires": {
"ip-regex": "^4.0.0"
}
},
+ "is-lambda": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz",
+ "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==",
+ "optional": true
+ },
"is-loopback-addr": {
- "version": "1.0.1"
+ "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-map": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
+ "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
"dev": true,
"peer": true
},
"is-negative-zero": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
+ "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
"dev": true,
"peer": true
},
"is-number": {
- "version": "7.0.0"
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
},
"is-number-object": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.0.tgz",
+ "integrity": "sha512-KVSZV0Dunv9DTPkhXwcZ3Q+tUc9TsaE1ZwX5J2WMvsSGS6Md8TFPun5uwh0yRdrNerI6vf/tbJxqSx4c1ZI1Lw==",
"dev": true,
"peer": true,
"requires": {
@@ -28498,36 +35944,50 @@
}
},
"is-path-inside": {
- "version": "3.0.3"
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ=="
},
"is-plain-obj": {
- "version": "2.1.0"
+ "version": "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-potential-custom-element-name": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
+ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
"dev": true
},
"is-property": {
- "version": "1.0.2"
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
+ "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g=="
},
"is-regex": {
- "version": "1.2.0",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
+ "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",
"dev": true,
"peer": true,
"requires": {
- "call-bind": "^1.0.7",
- "gopd": "^1.1.0",
+ "call-bound": "^1.0.2",
+ "gopd": "^1.2.0",
"has-tostringtag": "^1.0.2",
"hasown": "^2.0.2"
}
},
"is-set": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
+ "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
"dev": true,
"peer": true
},
"is-shared-array-buffer": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz",
+ "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==",
"dev": true,
"peer": true,
"requires": {
@@ -28535,10 +35995,14 @@
}
},
"is-stream": {
- "version": "2.0.1"
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
},
"is-string": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.0.tgz",
+ "integrity": "sha512-PlfzajuF9vSo5wErv3MJAKD/nqf9ngAs1NFQYm16nUYFO2IzxJ2hcm+IOCg+EEopdykNNUhVq5cz35cAUxU8+g==",
"dev": true,
"peer": true,
"requires": {
@@ -28547,35 +36011,47 @@
}
},
"is-symbol": {
- "version": "1.1.0",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz",
+ "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==",
"dev": true,
"peer": true,
"requires": {
- "call-bind": "^1.0.7",
- "has-symbols": "^1.0.3",
- "safe-regex-test": "^1.0.3"
+ "call-bound": "^1.0.2",
+ "has-symbols": "^1.1.0",
+ "safe-regex-test": "^1.1.0"
}
},
"is-typed-array": {
"version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz",
+ "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
"dev": true,
"requires": {
"which-typed-array": "^1.1.14"
}
},
"is-typedarray": {
- "version": "1.0.0"
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
},
"is-unicode-supported": {
- "version": "0.1.0"
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw=="
},
"is-weakmap": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
+ "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
"dev": true,
"peer": true
},
"is-weakref": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
+ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
"dev": true,
"peer": true,
"requires": {
@@ -28584,6 +36060,8 @@
},
"is-weakset": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz",
+ "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==",
"dev": true,
"peer": true,
"requires": {
@@ -28593,18 +36071,26 @@
},
"is-windows": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
"dev": true
},
"isarray": {
"version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
"dev": true,
"peer": true
},
"isexe": {
- "version": "2.0.0"
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
},
"iso-random-stream": {
"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==",
"requires": {
"events": "^3.3.0",
"readable-stream": "^3.4.0"
@@ -28612,6 +36098,8 @@
"dependencies": {
"readable-stream": {
"version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -28621,18 +36109,26 @@
}
},
"iso-url": {
- "version": "1.2.1"
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.2.1.tgz",
+ "integrity": "sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng=="
},
"isstream": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==",
"dev": true
},
"istanbul-lib-coverage": {
"version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
+ "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
"dev": true
},
"istanbul-lib-hook": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz",
+ "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==",
"dev": true,
"requires": {
"append-transform": "^2.0.0"
@@ -28640,6 +36136,8 @@
},
"istanbul-lib-instrument": {
"version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz",
+ "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==",
"dev": true,
"requires": {
"@babel/core": "^7.7.5",
@@ -28650,12 +36148,16 @@
"dependencies": {
"semver": {
"version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true
}
}
},
"istanbul-lib-processinfo": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz",
+ "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==",
"dev": true,
"requires": {
"archy": "^1.0.0",
@@ -28668,6 +36170,8 @@
"dependencies": {
"p-map": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
+ "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==",
"dev": true,
"requires": {
"aggregate-error": "^3.0.0"
@@ -28677,6 +36181,8 @@
},
"istanbul-lib-report": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
+ "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
"dev": true,
"requires": {
"istanbul-lib-coverage": "^3.0.0",
@@ -28686,6 +36192,8 @@
"dependencies": {
"make-dir": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
+ "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
"dev": true,
"requires": {
"semver": "^7.5.3"
@@ -28693,6 +36201,8 @@
},
"supports-color": {
"version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"requires": {
"has-flag": "^4.0.0"
@@ -28702,6 +36212,8 @@
},
"istanbul-lib-source-maps": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
+ "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
"dev": true,
"requires": {
"debug": "^4.1.1",
@@ -28711,6 +36223,8 @@
},
"istanbul-reports": {
"version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz",
+ "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==",
"dev": true,
"requires": {
"html-escaper": "^2.0.0",
@@ -28718,26 +36232,38 @@
}
},
"it-all": {
- "version": "1.0.6"
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz",
+ "integrity": "sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A=="
},
"it-buffer": {
"version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/it-buffer/-/it-buffer-0.1.3.tgz",
+ "integrity": "sha512-9a2/9SYVwG7bcn3tpRDR4bXbtuMLXnDK48KVC+GXiQg97ZOOdWz2nIITBsOQ19b+gj01Rw8RNwtiLDLI8P8oiQ==",
"requires": {
"bl": "^5.0.0",
"buffer": "^6.0.3"
}
},
"it-drain": {
- "version": "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": {
- "version": "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": {
- "version": "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=="
},
"it-glob": {
"version": "0.0.14",
+ "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.14.tgz",
+ "integrity": "sha512-TKKzs9CglbsihSpcwJPXN5DBUssu4akRzPlp8QJRCoLrKoaOpyY2V1qDlxx+UMivn0i114YyTd4AawWl7eqIdw==",
"requires": {
"@types/minimatch": "^3.0.4",
"minimatch": "^3.0.4"
@@ -28745,6 +36271,8 @@
},
"it-handshake": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-2.0.0.tgz",
+ "integrity": "sha512-K4q+mz8aLlCK3vTjtgNdHC9c/JbuOATsfogarjMsLcBZC5vYfKbX3Gq3AWcCdjIsIrPqzTlhPKSxl64LJkrt2w==",
"requires": {
"it-pushable": "^1.4.0",
"it-reader": "^3.0.0",
@@ -28752,10 +36280,14 @@
}
},
"it-length": {
- "version": "1.0.4"
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/it-length/-/it-length-1.0.4.tgz",
+ "integrity": "sha512-KN4jXzp77/GQ4fxUGMbsJx3ALUZ6SP3E79tzs2weGghtImDLFZzua/l3fOK0LN/hMH0M330HJRZWwYZfDNuCIA=="
},
"it-length-prefixed": {
"version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz",
+ "integrity": "sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg==",
"requires": {
"bl": "^5.0.0",
"buffer": "^6.0.3",
@@ -28763,22 +36295,30 @@
}
},
"it-map": {
- "version": "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": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/it-merge/-/it-merge-1.0.4.tgz",
+ "integrity": "sha512-DcL6GksTD2HQ7+5/q3JznXaLNfwjyG3/bObaF98da+oHfUiPmdo64oJlT9J8R8G5sJRU7thwaY5zxoAKCn7FJw==",
"requires": {
"it-pushable": "^1.4.0"
}
},
"it-pair": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/it-pair/-/it-pair-1.0.0.tgz",
+ "integrity": "sha512-9raOiDu5OAuDOahtMtapKQDrQTxBfzlzrNcB6o7JARHkt+7Bb1dMkW/TpYdAjBJE77KH3e2zGzwpGUP9tXbLww==",
"requires": {
"get-iterator": "^1.0.2"
}
},
"it-pb-rpc": {
"version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/it-pb-rpc/-/it-pb-rpc-0.1.13.tgz",
+ "integrity": "sha512-aZ4FNJsDgNepVVTmYXgXbQabIiOQyqYWUhdfovaHDcPSM5KjegwJihJEWMJjMyj+oLSKcZl0vmHgHxXWJ9/ufw==",
"requires": {
"is-buffer": "^2.0.5",
"it-handshake": "^2.0.0",
@@ -28786,25 +36326,35 @@
}
},
"it-pipe": {
- "version": "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": {
"version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz",
+ "integrity": "sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg==",
"requires": {
"fast-fifo": "^1.0.0"
}
},
"it-reader": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-3.0.0.tgz",
+ "integrity": "sha512-NxR40odATeaBmSefn6Xn43DplYvn2KtEKQzn4jrTRuPYXMky5M4e+KQ7aTJh0k0vkytLyeenGO1I1GXlGm4laQ==",
"requires": {
"bl": "^5.0.0"
}
},
"it-take": {
- "version": "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-to-stream": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz",
+ "integrity": "sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==",
"requires": {
"buffer": "^6.0.3",
"fast-fifo": "^1.0.0",
@@ -28816,6 +36366,8 @@
"dependencies": {
"readable-stream": {
"version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -28825,44 +36377,64 @@
}
},
"iterator.prototype": {
- "version": "1.1.3",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.4.tgz",
+ "integrity": "sha512-x4WH0BWmrMmg4oHHl+duwubhrvczGlyuGAZu3nvrf0UXOfPu8IhZObFEr7DE/iv01YgVZrsOiRcqw2srkKEDIA==",
"dev": true,
"peer": true,
"requires": {
- "define-properties": "^1.2.1",
- "get-intrinsic": "^1.2.1",
- "has-symbols": "^1.0.3",
- "reflect.getprototypeof": "^1.0.4",
- "set-function-name": "^2.0.1"
+ "define-data-property": "^1.1.4",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.6",
+ "has-symbols": "^1.1.0",
+ "reflect.getprototypeof": "^1.0.8",
+ "set-function-name": "^2.0.2"
}
},
"javascript-natural-sort": {
- "version": "0.7.1"
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz",
+ "integrity": "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==",
+ "dev": true
},
"jju": {
- "version": "1.4.0"
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz",
+ "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA=="
},
"joycon": {
- "version": "3.1.1"
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz",
+ "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw=="
},
"js-sha3": {
- "version": "0.8.0"
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
+ "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q=="
},
"js-tokens": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"dev": true
},
"js-yaml": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"requires": {
"argparse": "^2.0.1"
}
},
"jsbn": {
- "version": "1.1.0"
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz",
+ "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A=="
},
"jsdom": {
"version": "16.7.0",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz",
+ "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==",
"dev": true,
"requires": {
"abab": "^2.0.5",
@@ -28896,6 +36468,8 @@
"dependencies": {
"form-data": {
"version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.2.tgz",
+ "integrity": "sha512-sJe+TQb2vIaIyO783qN6BlMYWMw3WBOHA1Ay2qxsnjuafEOQFJ2JakedOQirT6D5XPRxDvS7AHYyem9fTpb4LQ==",
"dev": true,
"requires": {
"asynckit": "^0.4.0",
@@ -28905,40 +36479,60 @@
},
"ws": {
"version": "7.5.10",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
+ "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
"dev": true,
"requires": {}
}
}
},
"jsesc": {
- "version": "3.0.2",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
+ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
"dev": true
},
"json-buffer": {
- "version": "3.0.1"
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
},
"json-schema": {
"version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
+ "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
"dev": true
},
"json-schema-traverse": {
- "version": "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-stable-stringify-without-jsonify": {
- "version": "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": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="
},
"json-stream-stringify": {
- "version": "3.1.6"
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/json-stream-stringify/-/json-stream-stringify-3.1.6.tgz",
+ "integrity": "sha512-x7fpwxOkbhFCaJDJ8vb1fBY3DdSa4AlITaz+HHILQJzdPMnHEFjxPwVUi1ALIbcIxDE0PNe/0i7frnY8QnBQog=="
},
"json-stringify-safe": {
- "version": "5.0.1"
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
},
"json5": {
"version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true
},
"jsonfile": {
"version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"requires": {
"graceful-fs": "^4.1.6",
"universalify": "^2.0.0"
@@ -28946,6 +36540,8 @@
},
"jsonld": {
"version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/jsonld/-/jsonld-8.3.2.tgz",
+ "integrity": "sha512-MwBbq95szLwt8eVQ1Bcfwmgju/Y5P2GdtlHE2ncyfuYjIdEhluUVyj1eudacf1mOkWIoS9GpDBTECqhmq7EOaA==",
"requires": {
"@digitalbazaar/http-client": "^3.4.1",
"canonicalize": "^1.0.1",
@@ -28954,27 +36550,37 @@
},
"dependencies": {
"canonicalize": {
- "version": "1.0.8"
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz",
+ "integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A=="
},
"lru-cache": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"requires": {
"yallist": "^4.0.0"
}
},
"rdf-canonize": {
"version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-3.4.0.tgz",
+ "integrity": "sha512-fUeWjrkOO0t1rg7B2fdyDTvngj+9RlUyL92vOdiB7c0FPguWVsniIMjEtHH+meLBO9rzkUlUzBVXgWrjI8P9LA==",
"requires": {
"setimmediate": "^1.0.5"
}
},
"yallist": {
- "version": "4.0.0"
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
}
}
},
"jsonld-context-parser": {
"version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/jsonld-context-parser/-/jsonld-context-parser-2.4.0.tgz",
+ "integrity": "sha512-ZYOfvh525SdPd9ReYY58dxB3E2RUEU4DJ6ZibO8AitcowPeBH4L5rCAitE2om5G1P+HMEgYEYEr4EZKbVN4tpA==",
"requires": {
"@types/http-link-header": "^1.0.1",
"@types/node": "^18.0.0",
@@ -28984,34 +36590,48 @@
},
"dependencies": {
"@types/node": {
- "version": "18.19.67",
+ "version": "18.19.68",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.68.tgz",
+ "integrity": "sha512-QGtpFH1vB99ZmTa63K4/FU8twThj4fuVSBkGddTp7uIL/cuoLWIUSL2RcOaigBhfR+hg5pgGkBnkoOxrTVBMKw==",
"requires": {
"undici-types": "~5.26.4"
}
},
"cross-fetch": {
"version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz",
+ "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==",
"requires": {
"node-fetch": "^2.6.12"
}
},
"node-fetch": {
"version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
"requires": {
"whatwg-url": "^5.0.0"
}
},
"tr46": {
- "version": "0.0.3"
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
"undici-types": {
- "version": "5.26.5"
+ "version": "5.26.5",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
},
"webidl-conversions": {
- "version": "3.0.1"
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
},
"whatwg-url": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
"requires": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"
@@ -29021,6 +36641,8 @@
},
"jsonld-streaming-parser": {
"version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/jsonld-streaming-parser/-/jsonld-streaming-parser-3.4.0.tgz",
+ "integrity": "sha512-897CloyQgQidfkB04dLM5XaAXVX/cN9A2hvgHJo4y4jRhIpvg3KLMBBfcrswepV2N3T8c/Rp2JeFdWfVsbVZ7g==",
"requires": {
"@bergos/jsonparse": "^1.4.0",
"@rdfjs/types": "*",
@@ -29035,12 +36657,16 @@
},
"dependencies": {
"canonicalize": {
- "version": "1.0.8"
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz",
+ "integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A=="
}
}
},
"jsonld-streaming-serializer": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/jsonld-streaming-serializer/-/jsonld-streaming-serializer-2.1.0.tgz",
+ "integrity": "sha512-COHdLoeMTnrqHMoFhN3PoAwqnrKrpPC7/ACb0WbELYvt+HSOIFN3v4IJP7fOtLNQ4GeaeYkvbeWJ7Jo4EjxMDw==",
"requires": {
"@rdfjs/types": "*",
"@types/readable-stream": "^2.3.13",
@@ -29050,13 +36676,19 @@
}
},
"jsonparse": {
- "version": "1.3.1"
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
+ "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg=="
},
"jsonschema": {
- "version": "1.4.1"
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz",
+ "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ=="
},
"JSONStream": {
"version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
+ "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
"requires": {
"jsonparse": "^1.2.0",
"through": ">=2.2.7 <3"
@@ -29064,6 +36696,8 @@
},
"jsonwebtoken": {
"version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz",
+ "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==",
"requires": {
"jws": "^3.2.2",
"lodash.includes": "^4.3.0",
@@ -29079,6 +36713,8 @@
},
"jsprim": {
"version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
+ "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
"dev": true,
"requires": {
"assert-plus": "1.0.0",
@@ -29089,10 +36725,14 @@
"dependencies": {
"extsprintf": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
"dev": true
},
"verror": {
"version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
"dev": true,
"requires": {
"assert-plus": "^1.0.0",
@@ -29104,6 +36744,8 @@
},
"jsx-ast-utils": {
"version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
+ "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
"dev": true,
"peer": true,
"requires": {
@@ -29115,10 +36757,14 @@
},
"just-extend": {
"version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz",
+ "integrity": "sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==",
"dev": true
},
"jwa": {
"version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
+ "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
"requires": {
"buffer-equal-constant-time": "1.0.1",
"ecdsa-sig-formatter": "1.0.11",
@@ -29127,6 +36773,8 @@
},
"jws": {
"version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
+ "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
"requires": {
"jwa": "^1.4.1",
"safe-buffer": "^5.0.1"
@@ -29134,12 +36782,16 @@
},
"k-bucket": {
"version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/k-bucket/-/k-bucket-5.1.0.tgz",
+ "integrity": "sha512-Fac7iINEovXIWU20GPnOMLUbjctiS+cnmyjC4zAUgvs3XPf1vo9akfCHkigftSic/jiKqKl+KA3a/vFcJbHyCg==",
"requires": {
"randombytes": "^2.1.0"
}
},
"keccak": {
"version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz",
+ "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==",
"requires": {
"node-addon-api": "^2.0.0",
"node-gyp-build": "^4.2.0",
@@ -29148,6 +36800,8 @@
"dependencies": {
"readable-stream": {
"version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -29157,29 +36811,41 @@
}
},
"keypair": {
- "version": "1.0.4"
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/keypair/-/keypair-1.0.4.tgz",
+ "integrity": "sha512-zwhgOhhniaL7oxMgUMKKw5219PWWABMO+dgMnzJOQ2/5L3XJtTJGhW2PEXlxXj9zaccdReZJZ83+4NPhVfNVDg=="
},
"keyv": {
"version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
"requires": {
"json-buffer": "3.0.1"
}
},
"knuth-shuffle-seeded": {
"version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/knuth-shuffle-seeded/-/knuth-shuffle-seeded-1.0.6.tgz",
+ "integrity": "sha512-9pFH0SplrfyKyojCLxZfMcvkhf5hH0d+UwR9nTVJ/DDQJGuzcXjTwB7TP7sDfehSudlGGaOLblmEWqv04ERVWg==",
"dev": true,
"requires": {
"seed-random": "~2.2.0"
}
},
"kuler": {
- "version": "2.0.0"
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz",
+ "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A=="
},
"ky": {
- "version": "0.33.3"
+ "version": "0.33.3",
+ "resolved": "https://registry.npmjs.org/ky/-/ky-0.33.3.tgz",
+ "integrity": "sha512-CasD9OCEQSFIam2U8efFK81Yeg8vNMTBUqtMOHlrcWQHqUX3HeCl9Dr31u4toV7emlH8Mymk5+9p0lL6mKb/Xw=="
},
"ky-universal": {
"version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/ky-universal/-/ky-universal-0.11.0.tgz",
+ "integrity": "sha512-65KyweaWvk+uKKkCrfAf+xqN2/epw1IJDtlyCPxYffFCMR8u1sp2U65NtWpnozYfZxQ6IUzIlvUcw+hQ82U2Xw==",
"requires": {
"abort-controller": "^3.0.0",
"node-fetch": "^3.2.10"
@@ -29187,11 +36853,15 @@
},
"language-subtag-registry": {
"version": "0.3.23",
+ "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz",
+ "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==",
"dev": true,
"peer": true
},
"language-tags": {
"version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz",
+ "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==",
"dev": true,
"peer": true,
"requires": {
@@ -29200,6 +36870,8 @@
},
"levn": {
"version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
"requires": {
"prelude-ls": "^1.2.1",
"type-check": "~0.4.0"
@@ -29207,6 +36879,8 @@
},
"libp2p": {
"version": "0.32.5",
+ "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.32.5.tgz",
+ "integrity": "sha512-G21yQUdq4LaGDvjMi3ySmcx1cESl8ZsTG1BAfjzjx65DsZJKQ5GPZlamcv+Rwppk3OIplWoRnCu6gam/fI//bw==",
"requires": {
"@motrix/nat-api": "^0.3.1",
"@vascosantos/moving-average": "^1.1.0",
@@ -29263,13 +36937,17 @@
"dependencies": {
"timeout-abort-controller": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-1.1.1.tgz",
+ "integrity": "sha512-BsF9i3NAJag6T0ZEjki9j654zoafI2X6ayuNd6Tp8+Ul6Tr5s4jo973qFeiWrRSweqvskC+AHDKUmIW4b7pdhQ==",
"requires": {
"abort-controller": "^3.0.0",
"retimer": "^2.0.0"
},
"dependencies": {
"retimer": {
- "version": "2.0.0"
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/retimer/-/retimer-2.0.0.tgz",
+ "integrity": "sha512-KLXY85WkEq2V2bKex/LOO1ViXVn2KGYe4PYysAdYdjmraYIUsVkXu8O4am+8+5UbaaGl1qho4aqAAPHNQ4GSbg=="
}
}
}
@@ -29277,6 +36955,8 @@
},
"libp2p-bootstrap": {
"version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/libp2p-bootstrap/-/libp2p-bootstrap-0.13.0.tgz",
+ "integrity": "sha512-8sXEZrikY+chKvMorkvOi9E/v9GvwsYr9DAEfzQZrOKQZByqhan1aXQKWrSpc4AxEv5/UopRzu1P47bkOi8wdw==",
"requires": {
"debug": "^4.3.1",
"mafmt": "^10.0.0",
@@ -29286,6 +36966,8 @@
},
"libp2p-crypto": {
"version": "0.19.7",
+ "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.19.7.tgz",
+ "integrity": "sha512-Qb5o/3WFKF2j6mYSt4UBPyi2kbKl3jYV0podBJoJCw70DlpM5Xc+oh3fFY9ToSunu8aSQQ5GY8nutjXgX/uGRA==",
"requires": {
"err-code": "^3.0.1",
"is-typedarray": "^1.0.0",
@@ -29302,6 +36984,8 @@
},
"libp2p-interfaces": {
"version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/libp2p-interfaces/-/libp2p-interfaces-1.3.1.tgz",
+ "integrity": "sha512-Bh991Nv2KT/jZ7DjPd/zqhk8cCtkHl6OWw8lyK7wBX7Aj3/ezGwjoDABJzKgt1lbvcgCeQIbzPiIbaKj4DUI4w==",
"requires": {
"abort-controller": "^3.0.0",
"abortable-iterator": "^3.0.0",
@@ -29321,6 +37005,8 @@
"dependencies": {
"libp2p-crypto": {
"version": "0.20.0",
+ "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.20.0.tgz",
+ "integrity": "sha512-WgIW9rYcWaO/5j2T6NW3R6Q46yvp2ZfFErqRMbi4/pOTL3T7+OROYpL/1iWVksWkXyurU/t2qFsIijWMxR5C4Q==",
"requires": {
"err-code": "^3.0.1",
"iso-random-stream": "^2.0.0",
@@ -29339,6 +37025,8 @@
},
"libp2p-kad-dht": {
"version": "0.24.2",
+ "resolved": "https://registry.npmjs.org/libp2p-kad-dht/-/libp2p-kad-dht-0.24.2.tgz",
+ "integrity": "sha512-fBIwmta7LnoQ77giJRVqhnj9QKcws0SvzPWAsOy5AP3ByuxhcmqrHXTDI1iBnkvtCCegOuL41JkJOvaafu1XnA==",
"requires": {
"debug": "^4.3.1",
"err-code": "^3.0.0",
@@ -29367,6 +37055,8 @@
},
"libp2p-mplex": {
"version": "0.10.7",
+ "resolved": "https://registry.npmjs.org/libp2p-mplex/-/libp2p-mplex-0.10.7.tgz",
+ "integrity": "sha512-21VV0DZWuOsHgitWy1GZD1M/kki3a/hVoAJ5QC48p01JNSK5W8gxRiZtq7cCGJ/xNpbQxvMlMtS5eq8CFRlysg==",
"requires": {
"abortable-iterator": "^3.0.2",
"bl": "^5.0.0",
@@ -29379,6 +37069,8 @@
},
"libp2p-noise": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/libp2p-noise/-/libp2p-noise-4.0.0.tgz",
+ "integrity": "sha512-DCXRKh9Y4pkw4HEWKPpZbeoROilZA1nrQMHIVrJ4JDEMUKVRucJc9GZTFNzo4yJUZ+ayQAlrfbUARiPPFbpfng==",
"requires": {
"@stablelib/chacha20poly1305": "^1.0.1",
"@stablelib/hkdf": "^1.0.1",
@@ -29398,6 +37090,8 @@
"dependencies": {
"uint8arrays": {
"version": "2.1.10",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz",
+ "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==",
"requires": {
"multiformats": "^9.4.2"
}
@@ -29406,6 +37100,8 @@
},
"libp2p-record": {
"version": "0.10.6",
+ "resolved": "https://registry.npmjs.org/libp2p-record/-/libp2p-record-0.10.6.tgz",
+ "integrity": "sha512-CbdO2P9DQn/DKll6R/J4nIw6Qt8xbUTfxYgJjpP9oz3izHKkpGQo0mPTe0NyuFTGIQ4OprrxqWqG5v8ZCGBqqw==",
"requires": {
"err-code": "^3.0.1",
"multiformats": "^9.4.5",
@@ -29415,6 +37111,8 @@
},
"libp2p-tcp": {
"version": "0.17.2",
+ "resolved": "https://registry.npmjs.org/libp2p-tcp/-/libp2p-tcp-0.17.2.tgz",
+ "integrity": "sha512-SAdgDB4Rm0olPbyvanKP5JBaiRwbIOo0Nt++WYe1U2B6akg2uatsDOtulfpnc1gsL1B5vamnOpOzKaDj4kkt8g==",
"requires": {
"abortable-iterator": "^3.0.0",
"class-is": "^1.1.0",
@@ -29428,6 +37126,8 @@
},
"libp2p-utils": {
"version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/libp2p-utils/-/libp2p-utils-0.4.1.tgz",
+ "integrity": "sha512-kq/US2unamiyY+YwP47dO1uqpAdcbdYI2Fzi9JIEhjfPBaD1MR/uyQ/YP7ABthl3EaxAjIQYd1TVp85d6QKAtQ==",
"requires": {
"abortable-iterator": "^3.0.0",
"debug": "^4.3.0",
@@ -29440,10 +37140,14 @@
},
"lilconfig": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
+ "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
"dev": true
},
"lint-staged": {
"version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.3.0.tgz",
+ "integrity": "sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==",
"dev": true,
"requires": {
"chalk": "5.3.0",
@@ -29460,14 +37164,20 @@
"dependencies": {
"chalk": {
"version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
+ "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
"dev": true
},
"commander": {
"version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz",
+ "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==",
"dev": true
},
"debug": {
"version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dev": true,
"requires": {
"ms": "2.1.2"
@@ -29475,6 +37185,8 @@
},
"execa": {
"version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz",
+ "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==",
"dev": true,
"requires": {
"cross-spawn": "^7.0.3",
@@ -29490,14 +37202,20 @@
},
"human-signals": {
"version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
+ "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==",
"dev": true
},
"is-stream": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
+ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
"dev": true
},
"micromatch": {
"version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
"dev": true,
"requires": {
"braces": "^3.0.2",
@@ -29506,14 +37224,20 @@
},
"mimic-fn": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
+ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
"dev": true
},
"ms": {
"version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
},
"npm-run-path": {
"version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz",
+ "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
"dev": true,
"requires": {
"path-key": "^4.0.0"
@@ -29521,6 +37245,8 @@
},
"onetime": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
+ "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
"dev": true,
"requires": {
"mimic-fn": "^4.0.0"
@@ -29528,23 +37254,33 @@
},
"path-key": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
"dev": true
},
"strip-final-newline": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
+ "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
"dev": true
},
"yaml": {
"version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz",
+ "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==",
"dev": true
}
}
},
"listenercount": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz",
+ "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ=="
},
"listr2": {
"version": "6.6.1",
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-6.6.1.tgz",
+ "integrity": "sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==",
"dev": true,
"requires": {
"cli-truncate": "^3.1.0",
@@ -29557,14 +37293,20 @@
"dependencies": {
"ansi-regex": {
"version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
"dev": true
},
"ansi-styles": {
"version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
"dev": true
},
"string-width": {
"version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
"dev": true,
"requires": {
"eastasianwidth": "^0.2.0",
@@ -29574,6 +37316,8 @@
},
"strip-ansi": {
"version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
"dev": true,
"requires": {
"ansi-regex": "^6.0.1"
@@ -29581,6 +37325,8 @@
},
"wrap-ansi": {
"version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
"dev": true,
"requires": {
"ansi-styles": "^6.1.0",
@@ -29592,55 +37338,91 @@
},
"locate-path": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
"requires": {
"p-locate": "^5.0.0"
}
},
"lodash": {
- "version": "4.17.21"
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"lodash-es": {
"version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
+ "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==",
"dev": true
},
"lodash.flattendeep": {
"version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
+ "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==",
"dev": true
},
"lodash.get": {
"version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
"dev": true
},
"lodash.includes": {
- "version": "4.3.0"
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
+ "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w=="
},
"lodash.isboolean": {
- "version": "3.0.3"
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
+ "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg=="
+ },
+ "lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==",
+ "peer": true
},
"lodash.isinteger": {
- "version": "4.0.4"
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
+ "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA=="
},
"lodash.isnumber": {
- "version": "3.0.3"
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
+ "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw=="
},
"lodash.isplainobject": {
- "version": "4.0.6"
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
+ "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA=="
},
"lodash.isstring": {
- "version": "4.0.1"
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
+ "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw=="
},
"lodash.merge": {
- "version": "4.6.2"
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
},
"lodash.mergewith": {
"version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz",
+ "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==",
"dev": true
},
"lodash.once": {
- "version": "4.1.1"
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
+ "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg=="
},
"log-symbols": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
"requires": {
"chalk": "^4.1.0",
"is-unicode-supported": "^0.1.0"
@@ -29648,6 +37430,8 @@
},
"log-update": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/log-update/-/log-update-5.0.1.tgz",
+ "integrity": "sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==",
"dev": true,
"requires": {
"ansi-escapes": "^5.0.0",
@@ -29659,6 +37443,8 @@
"dependencies": {
"ansi-escapes": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz",
+ "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==",
"dev": true,
"requires": {
"type-fest": "^1.0.2"
@@ -29666,14 +37452,20 @@
},
"ansi-regex": {
"version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
"dev": true
},
"ansi-styles": {
"version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
"dev": true
},
"string-width": {
"version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
"dev": true,
"requires": {
"eastasianwidth": "^0.2.0",
@@ -29683,6 +37475,8 @@
},
"strip-ansi": {
"version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
"dev": true,
"requires": {
"ansi-regex": "^6.0.1"
@@ -29690,10 +37484,14 @@
},
"type-fest": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
+ "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
"dev": true
},
"wrap-ansi": {
"version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
"dev": true,
"requires": {
"ansi-styles": "^6.1.0",
@@ -29705,6 +37503,8 @@
},
"logform": {
"version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/logform/-/logform-2.7.0.tgz",
+ "integrity": "sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==",
"requires": {
"@colors/colors": "1.6.0",
"@types/triple-beam": "^1.3.2",
@@ -29715,15 +37515,21 @@
},
"dependencies": {
"@colors/colors": {
- "version": "1.6.0"
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz",
+ "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA=="
}
}
},
"long": {
- "version": "5.2.3"
+ "version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz",
+ "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q=="
},
"loose-envify": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
"dev": true,
"peer": true,
"requires": {
@@ -29732,6 +37538,8 @@
},
"loupe": {
"version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz",
+ "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==",
"dev": true,
"requires": {
"get-func-name": "^2.0.1"
@@ -29739,35 +37547,51 @@
},
"lower-case": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+ "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
"requires": {
"tslib": "^2.0.3"
}
},
"lowercase-keys": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz",
+ "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==",
"dev": true
},
"lru_map": {
- "version": "0.3.3"
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz",
+ "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ=="
},
"lru-cache": {
- "version": "10.4.3"
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="
},
"lru.min": {
- "version": "1.1.1"
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/lru.min/-/lru.min-1.1.1.tgz",
+ "integrity": "sha512-FbAj6lXil6t8z4z3j0E5mfRlPzxkySotzUHwRXjlpRh10vc6AI6WN62ehZj82VG7M20rqogJ0GLwar2Xa05a8Q=="
},
"luxon": {
"version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.2.1.tgz",
+ "integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==",
"dev": true
},
"mafmt": {
"version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-10.0.0.tgz",
+ "integrity": "sha512-K1bziJOXcnepfztu+2Xy9FLKVLaFMDuspmiyJIYRxnO0WOxFSV7XKSdMxMrVZxcvg1+YjlTIvSGTImUHU2k4Aw==",
"requires": {
"multiaddr": "^10.0.0"
}
},
"make-dir": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
"dev": true,
"requires": {
"semver": "^6.0.0"
@@ -29775,18 +37599,82 @@
"dependencies": {
"semver": {
"version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true
}
}
},
"make-error": {
- "version": "1.3.6"
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
+ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="
+ },
+ "make-fetch-happen": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz",
+ "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==",
+ "optional": true,
+ "requires": {
+ "agentkeepalive": "^4.1.3",
+ "cacache": "^15.2.0",
+ "http-cache-semantics": "^4.1.0",
+ "http-proxy-agent": "^4.0.1",
+ "https-proxy-agent": "^5.0.0",
+ "is-lambda": "^1.0.1",
+ "lru-cache": "^6.0.0",
+ "minipass": "^3.1.3",
+ "minipass-collect": "^1.0.2",
+ "minipass-fetch": "^1.3.2",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.4",
+ "negotiator": "^0.6.2",
+ "promise-retry": "^2.0.1",
+ "socks-proxy-agent": "^6.0.0",
+ "ssri": "^8.0.0"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "optional": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "optional": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "optional": true
+ }
+ }
},
"match-all": {
- "version": "1.2.6"
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/match-all/-/match-all-1.2.6.tgz",
+ "integrity": "sha512-0EESkXiTkWzrQQntBu2uzKvLu6vVkUGz40nGPbSZuegcfE5UuSzNjLaIu76zJWuaT/2I3Z/8M06OlUOZLGwLlQ=="
+ },
+ "math-intrinsics": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.0.0.tgz",
+ "integrity": "sha512-4MqMiKP90ybymYvsut0CH2g4XWbfLtmlCkXmtmdcDCxNB+mQcu1w/1+L/VD7vi/PSv7X2JYV7SCcR+jiPXnQtA=="
},
"mathjs": {
"version": "10.6.4",
+ "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-10.6.4.tgz",
+ "integrity": "sha512-omQyvRE1jIy+3k2qsqkWASOcd45aZguXZDckr3HtnTYyXk5+2xpVfC3kATgbO2Srjxlqww3TVdhD0oUdZ/hiFA==",
+ "dev": true,
"requires": {
"@babel/runtime": "^7.18.6",
"complex.js": "^2.1.1",
@@ -29799,8 +37687,33 @@
"typed-function": "^2.1.0"
}
},
+ "mcl-wasm": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-1.7.0.tgz",
+ "integrity": "sha512-ok9uE7ekFh5+orI0dFT19KeY/y5P6ONp0dks8oo/KniyNK6mJ0zloL3+s6LiEQXW8VxQHwsfZslitL/R7MM9ew==",
+ "requires": {
+ "@types/node": "^20.2.5"
+ },
+ "dependencies": {
+ "@types/node": {
+ "version": "20.17.10",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.10.tgz",
+ "integrity": "sha512-/jrvh5h6NXhEauFFexRin69nA0uHJ5gwk4iDivp/DeoEua3uwCUto6PC86IpRITBOs4+6i2I56K5x5b6WYGXHA==",
+ "requires": {
+ "undici-types": "~6.19.2"
+ }
+ },
+ "undici-types": {
+ "version": "6.19.8",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
+ "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw=="
+ }
+ }
+ },
"md5.js": {
"version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+ "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
"requires": {
"hash-base": "^3.0.0",
"inherits": "^2.0.1",
@@ -29808,28 +37721,42 @@
}
},
"media-typer": {
- "version": "0.3.0"
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="
},
"memorystream": {
- "version": "0.3.1"
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
+ "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw=="
},
"merge-descriptors": {
- "version": "1.0.3"
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
+ "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ=="
},
"merge-options": {
"version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz",
+ "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==",
"requires": {
"is-plain-obj": "^2.1.0"
}
},
"merge-stream": {
- "version": "2.0.0"
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
},
"merge2": {
- "version": "1.4.1"
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
},
"merkletreejs": {
"version": "0.3.11",
+ "resolved": "https://registry.npmjs.org/merkletreejs/-/merkletreejs-0.3.11.tgz",
+ "integrity": "sha512-LJKTl4iVNTndhL+3Uz/tfkjD0klIWsHlUzgtuNnNrsf7bAlXR30m+xYB7lHr5Z/l6e/yAIsr26Dabx6Buo4VGQ==",
"requires": {
"bignumber.js": "^9.0.1",
"buffer-reverse": "^1.0.1",
@@ -29839,13 +37766,19 @@
}
},
"methods": {
- "version": "1.1.2"
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="
},
"micro-ftch": {
- "version": "0.3.1"
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz",
+ "integrity": "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg=="
},
"microdata-rdf-streaming-parser": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/microdata-rdf-streaming-parser/-/microdata-rdf-streaming-parser-2.0.1.tgz",
+ "integrity": "sha512-oEEYP3OwPGOtoE4eIyJvX1eJXI7VkGR4gKYqpEufaRXc2ele/Tkid/KMU3Los13wGrOq6woSxLEGOYSHzpRvwA==",
"requires": {
"@rdfjs/types": "*",
"htmlparser2": "^8.0.0",
@@ -29856,6 +37789,8 @@
"dependencies": {
"htmlparser2": {
"version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
+ "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
"requires": {
"domelementtype": "^2.3.0",
"domhandler": "^5.0.3",
@@ -29867,6 +37802,8 @@
},
"micromatch": {
"version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"requires": {
"braces": "^3.0.3",
"picomatch": "^2.3.1"
@@ -29874,67 +37811,237 @@
},
"microtime": {
"version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/microtime/-/microtime-3.1.1.tgz",
+ "integrity": "sha512-to1r7o24cDsud9IhN6/8wGmMx5R2kT0w2Xwm5okbYI3d1dk6Xv0m+Z+jg2vS9pt+ocgQHTCtgs/YuyJhySzxNg==",
"requires": {
"node-addon-api": "^5.0.0",
"node-gyp-build": "^4.4.0"
},
"dependencies": {
"node-addon-api": {
- "version": "5.1.0"
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz",
+ "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA=="
}
}
},
"mime": {
- "version": "1.6.0"
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
},
"mime-db": {
- "version": "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": {
"version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"requires": {
"mime-db": "1.52.0"
}
},
"mimic-fn": {
- "version": "2.1.0"
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
},
"mimic-response": {
"version": "3.1.0",
- "dev": true
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
+ "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="
},
"min-document": {
"version": "2.19.0",
+ "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
+ "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==",
"dev": true,
"requires": {
"dom-walk": "^0.1.0"
}
},
"minimalistic-assert": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
},
"minimalistic-crypto-utils": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg=="
},
"minimatch": {
"version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"requires": {
"brace-expansion": "^1.1.7"
}
},
"minimist": {
- "version": "1.2.8"
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="
},
"minipass": {
"version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
+ "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
"dev": true,
"requires": {
"safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
}
},
+ "minipass-collect": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
+ "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
+ "optional": true,
+ "requires": {
+ "minipass": "^3.0.0"
+ },
+ "dependencies": {
+ "minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "optional": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "optional": true
+ }
+ }
+ },
+ "minipass-fetch": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz",
+ "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==",
+ "optional": true,
+ "requires": {
+ "encoding": "^0.1.12",
+ "minipass": "^3.1.0",
+ "minipass-sized": "^1.0.3",
+ "minizlib": "^2.0.0"
+ },
+ "dependencies": {
+ "minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "optional": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "minizlib": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
+ "optional": true,
+ "requires": {
+ "minipass": "^3.0.0",
+ "yallist": "^4.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "optional": true
+ }
+ }
+ },
+ "minipass-flush": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
+ "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
+ "optional": true,
+ "requires": {
+ "minipass": "^3.0.0"
+ },
+ "dependencies": {
+ "minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "optional": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "optional": true
+ }
+ }
+ },
+ "minipass-pipeline": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
+ "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
+ "optional": true,
+ "requires": {
+ "minipass": "^3.0.0"
+ },
+ "dependencies": {
+ "minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "optional": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "optional": true
+ }
+ }
+ },
+ "minipass-sized": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz",
+ "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==",
+ "optional": true,
+ "requires": {
+ "minipass": "^3.0.0"
+ },
+ "dependencies": {
+ "minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "optional": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "optional": true
+ }
+ }
+ },
"minizlib": {
"version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
+ "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
"dev": true,
"requires": {
"minipass": "^2.9.0"
@@ -29942,16 +38049,21 @@
},
"mkdirp": {
"version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
"requires": {
"minimist": "^1.2.6"
}
},
"mkdirp-classic": {
"version": "0.5.3",
- "dev": true
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
},
"mkdirp-promise": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz",
+ "integrity": "sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==",
"dev": true,
"requires": {
"mkdirp": "*"
@@ -29959,12 +38071,16 @@
},
"mnemonist": {
"version": "0.38.5",
+ "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz",
+ "integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==",
"requires": {
"obliterator": "^2.0.0"
}
},
"mocha": {
"version": "10.8.2",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz",
+ "integrity": "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==",
"requires": {
"ansi-colors": "^4.1.3",
"browser-stdout": "^1.3.1",
@@ -29990,12 +38106,16 @@
"dependencies": {
"brace-expansion": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"requires": {
"balanced-match": "^1.0.0"
}
},
"chokidar": {
"version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
"requires": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
@@ -30009,6 +38129,8 @@
},
"cliui": {
"version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
"requires": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.0",
@@ -30016,10 +38138,14 @@
}
},
"diff": {
- "version": "5.2.0"
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz",
+ "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A=="
},
"glob": {
"version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
+ "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -30030,24 +38156,32 @@
},
"glob-parent": {
"version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"requires": {
"is-glob": "^4.0.1"
}
},
"minimatch": {
"version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
"requires": {
"brace-expansion": "^2.0.1"
}
},
"readdirp": {
"version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"requires": {
"picomatch": "^2.2.1"
}
},
"yargs": {
"version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
"requires": {
"cliui": "^7.0.2",
"escalade": "^3.1.1",
@@ -30062,25 +38196,37 @@
},
"mock-fs": {
"version": "4.14.0",
+ "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz",
+ "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==",
"dev": true
},
"mock-socket": {
- "version": "9.3.1"
+ "version": "9.3.1",
+ "resolved": "https://registry.npmjs.org/mock-socket/-/mock-socket-9.3.1.tgz",
+ "integrity": "sha512-qxBgB7Qa2sEQgHFjj0dSigq7fX4k6Saisd5Nelwp2q8mlbAFh5dHV9JTTlF8viYJLSSWgMCZFUom8PJcMNBoJw=="
},
"moment": {
- "version": "2.30.1"
+ "version": "2.30.1",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
+ "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how=="
},
"moment-timezone": {
"version": "0.5.46",
+ "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.46.tgz",
+ "integrity": "sha512-ZXm9b36esbe7OmdABqIWJuBBiLLwAjrN7CE+7sYdCCx82Nabt1wHDj8TVseS59QIlfFPbOoiBPm6ca9BioG4hw==",
"requires": {
"moment": "^2.29.4"
}
},
"ms": {
- "version": "2.1.3"
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"multiaddr": {
"version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-10.0.1.tgz",
+ "integrity": "sha512-G5upNcGzEGuTHkzxezPrrD6CaIHR9uo+7MwqhNVcXTs33IInon4y7nMiGxl2CY5hG7chvYQUQhz5V52/Qe3cbg==",
"requires": {
"dns-over-http-resolver": "^1.2.3",
"err-code": "^3.0.1",
@@ -30092,6 +38238,8 @@
},
"multibase": {
"version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz",
+ "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==",
"dev": true,
"requires": {
"base-x": "^3.0.8",
@@ -30100,6 +38248,8 @@
"dependencies": {
"buffer": {
"version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
"dev": true,
"requires": {
"base64-js": "^1.3.1",
@@ -30110,6 +38260,8 @@
},
"multicodec": {
"version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz",
+ "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==",
"dev": true,
"requires": {
"varint": "^5.0.0"
@@ -30117,15 +38269,21 @@
"dependencies": {
"varint": {
"version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz",
+ "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==",
"dev": true
}
}
},
"multiformats": {
- "version": "9.9.0"
+ "version": "9.9.0",
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz",
+ "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg=="
},
"multihashes": {
"version": "0.4.21",
+ "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz",
+ "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==",
"dev": true,
"requires": {
"buffer": "^5.5.0",
@@ -30135,6 +38293,8 @@
"dependencies": {
"buffer": {
"version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
"dev": true,
"requires": {
"base64-js": "^1.3.1",
@@ -30143,6 +38303,8 @@
},
"multibase": {
"version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz",
+ "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==",
"dev": true,
"requires": {
"base-x": "^3.0.8",
@@ -30151,12 +38313,16 @@
},
"varint": {
"version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz",
+ "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==",
"dev": true
}
}
},
"multistream-select": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/multistream-select/-/multistream-select-2.0.1.tgz",
+ "integrity": "sha512-ziVNT/vux0uUElP4OKNMVr0afU/X6PciAmT2UJNolhzhSLXIwFAaYfmLajD8NoZ+DsBQ1bp0zZ2nMVPF+FhClA==",
"requires": {
"bl": "^5.0.0",
"debug": "^4.1.1",
@@ -30172,6 +38338,8 @@
},
"murmur-128": {
"version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/murmur-128/-/murmur-128-0.2.1.tgz",
+ "integrity": "sha512-WseEgiRkI6aMFBbj8Cg9yBj/y+OdipwVC7zUo3W2W1JAJITwouUOtpqsmGSg67EQmwwSyod7hsVsWY5LsrfQVg==",
"requires": {
"encode-utf8": "^1.0.2",
"fmix": "^0.1.0",
@@ -30179,10 +38347,14 @@
}
},
"mutable-proxy": {
- "version": "1.0.0"
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/mutable-proxy/-/mutable-proxy-1.0.0.tgz",
+ "integrity": "sha512-4OvNRr1DJpy2QuDUV74m+BWZ//n4gG4bmd21MzDSPqHEidIDWqwyOjcadU1LBMO3vXYGurVKjfBrxrSQIHFu9A=="
},
"mysql2": {
"version": "3.11.5",
+ "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.11.5.tgz",
+ "integrity": "sha512-0XFu8rUmFN9vC0ME36iBvCUObftiMHItrYFhlCRvFWbLgpNqtC4Br/NmZX1HNCszxT0GGy5QtP+k3Q3eCJPaYA==",
"requires": {
"aws-ssl-profiles": "^1.1.1",
"denque": "^2.1.0",
@@ -30197,6 +38369,8 @@
},
"mz": {
"version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
+ "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
"dev": true,
"requires": {
"any-promise": "^1.0.0",
@@ -30206,6 +38380,8 @@
},
"n3": {
"version": "1.23.1",
+ "resolved": "https://registry.npmjs.org/n3/-/n3-1.23.1.tgz",
+ "integrity": "sha512-3f0IYJo+6+lXypothmlwPzm3wJNffsxUwnfONeFv2QqWq7RjTvyCMtkRXDUXW6XrZoOzaQX8xTTSYNlGjXcGtw==",
"requires": {
"buffer": "^6.0.3",
"queue-microtask": "^1.1.2",
@@ -30214,58 +38390,87 @@
},
"named-placeholders": {
"version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz",
+ "integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==",
"requires": {
"lru-cache": "^7.14.1"
},
"dependencies": {
"lru-cache": {
- "version": "7.18.3"
+ "version": "7.18.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
+ "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA=="
}
}
},
"nan": {
- "version": "2.22.0"
+ "version": "2.22.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.0.tgz",
+ "integrity": "sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw=="
},
"nano-json-stream-parser": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz",
+ "integrity": "sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==",
"dev": true
},
"nanoclone": {
"version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz",
+ "integrity": "sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==",
"dev": true
},
"nanoid": {
- "version": "3.3.8"
+ "version": "3.3.8",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
+ "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w=="
},
"napi-build-utils": {
"version": "1.0.2",
- "dev": true
+ "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
+ "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg=="
},
"native-abort-controller": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.4.tgz",
+ "integrity": "sha512-zp8yev7nxczDJMoP6pDxyD20IU0T22eX8VwN2ztDccKvSZhRaV33yP1BGwKSZfXuqWUzsXopVFjBdau9OOAwMQ==",
"requires": {}
},
"native-fetch": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz",
+ "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==",
"requires": {}
},
"natural-compare": {
- "version": "1.4.0"
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
},
"negotiate": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/negotiate/-/negotiate-1.0.1.tgz",
+ "integrity": "sha512-KBCIM4dAIT9j/pSXLHHQbZG74NmKNXTtxU2zHN0HG6uzzuFE01m1UdGoUmVHmACiBuCAOL7KwfqSW1oUQBj/vg=="
},
"negotiator": {
- "version": "0.6.3"
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
},
"netmask": {
- "version": "2.0.2"
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz",
+ "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg=="
},
"next-tick": {
- "version": "1.1.0"
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
+ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="
},
"nise": {
"version": "5.1.9",
+ "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.9.tgz",
+ "integrity": "sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==",
"dev": true,
"requires": {
"@sinonjs/commons": "^3.0.0",
@@ -30277,6 +38482,8 @@
"dependencies": {
"@sinonjs/commons": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
+ "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
"dev": true,
"requires": {
"type-detect": "4.0.8"
@@ -30284,6 +38491,8 @@
},
"@sinonjs/fake-timers": {
"version": "11.3.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.3.1.tgz",
+ "integrity": "sha512-EVJO7nW5M/F5Tur0Rf2z/QoMo+1Ia963RiMtapiQrEWvY0iBUvADo8Beegwjpnle5BHkyHuoxSTW3jF43H1XRA==",
"dev": true,
"requires": {
"@sinonjs/commons": "^3.0.1"
@@ -30291,29 +38500,41 @@
},
"path-to-regexp": {
"version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz",
+ "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==",
"dev": true
},
"type-detect": {
"version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
"dev": true
}
}
},
"no-case": {
"version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+ "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
"requires": {
"lower-case": "^2.0.2",
"tslib": "^2.0.3"
}
},
"noble-ed25519": {
- "version": "1.2.6"
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/noble-ed25519/-/noble-ed25519-1.2.6.tgz",
+ "integrity": "sha512-zfnWqg9FVMp8CnzUpAjbt1nDXpDjCvxYiCXdnW1mY8zQHw/6twUlkFm14VPdojVzc0kcd+i9zT79+26GcNbsuQ=="
},
"noble-secp256k1": {
- "version": "1.2.14"
+ "version": "1.2.14",
+ "resolved": "https://registry.npmjs.org/noble-secp256k1/-/noble-secp256k1-1.2.14.tgz",
+ "integrity": "sha512-GSCXyoZBUaaPwVWdYncMEmzlSUjF9J/YeEHpklYJCyg8wPuJP3NzDx0BkiwArzINkdX2HJHvUJhL6vVWPOQQcg=="
},
"nock": {
"version": "13.5.6",
+ "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.6.tgz",
+ "integrity": "sha512-o2zOYiCpzRqSzPj0Zt/dQ/DqZeYoaQ7TUonc/xUPjCGl9WeHpNbxgVvOquXYAaJzI0M9BXV3HTzG0p8IUAbBTQ==",
"requires": {
"debug": "^4.1.0",
"json-stringify-safe": "^5.0.1",
@@ -30322,19 +38543,26 @@
},
"node-abi": {
"version": "3.71.0",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.71.0.tgz",
+ "integrity": "sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==",
"requires": {
"semver": "^7.3.5"
}
},
"node-addon-api": {
- "version": "2.0.2"
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz",
+ "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA=="
},
"node-domexception": {
- "version": "1.0.0"
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
+ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ=="
},
"node-fetch": {
"version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz",
+ "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==",
"requires": {
"data-uri-to-buffer": "^4.0.0",
"fetch-blob": "^3.1.4",
@@ -30342,53 +38570,195 @@
}
},
"node-forge": {
- "version": "0.10.0"
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz",
+ "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA=="
+ },
+ "node-gyp": {
+ "version": "8.4.1",
+ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz",
+ "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==",
+ "optional": true,
+ "requires": {
+ "env-paths": "^2.2.0",
+ "glob": "^7.1.4",
+ "graceful-fs": "^4.2.6",
+ "make-fetch-happen": "^9.1.0",
+ "nopt": "^5.0.0",
+ "npmlog": "^6.0.0",
+ "rimraf": "^3.0.2",
+ "semver": "^7.3.5",
+ "tar": "^6.1.2",
+ "which": "^2.0.2"
+ },
+ "dependencies": {
+ "chownr": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+ "optional": true
+ },
+ "fs-minipass": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+ "optional": true,
+ "requires": {
+ "minipass": "^3.0.0"
+ },
+ "dependencies": {
+ "minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "optional": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ }
+ }
+ },
+ "minipass": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
+ "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
+ "optional": true
+ },
+ "minizlib": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
+ "optional": true,
+ "requires": {
+ "minipass": "^3.0.0",
+ "yallist": "^4.0.0"
+ },
+ "dependencies": {
+ "minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "optional": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ }
+ }
+ },
+ "mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "optional": true
+ },
+ "tar": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz",
+ "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==",
+ "optional": true,
+ "requires": {
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "minipass": "^5.0.0",
+ "minizlib": "^2.1.1",
+ "mkdirp": "^1.0.3",
+ "yallist": "^4.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "optional": true
+ }
+ }
},
"node-gyp-build": {
- "version": "4.8.4"
+ "version": "4.8.4",
+ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz",
+ "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ=="
},
"node-preload": {
"version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz",
+ "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==",
"dev": true,
"requires": {
"process-on-spawn": "^1.0.0"
}
},
"node-releases": {
- "version": "2.0.18",
+ "version": "2.0.19",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
+ "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
"dev": true
},
+ "nopt": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
+ "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
+ "optional": true,
+ "requires": {
+ "abbrev": "1"
+ }
+ },
"normalize-path": {
- "version": "3.0.0"
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
},
"normalize-url": {
"version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
+ "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==",
"dev": true
},
"npm-run-path": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
"requires": {
"path-key": "^3.0.0"
}
},
+ "npmlog": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz",
+ "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==",
+ "optional": true,
+ "requires": {
+ "are-we-there-yet": "^3.0.0",
+ "console-control-strings": "^1.1.0",
+ "gauge": "^4.0.3",
+ "set-blocking": "^2.0.0"
+ }
+ },
"number-to-bn": {
"version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz",
+ "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==",
"requires": {
"bn.js": "4.11.6",
"strip-hex-prefix": "1.0.0"
},
"dependencies": {
"bn.js": {
- "version": "4.11.6"
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA=="
}
}
},
"nwsapi": {
"version": "2.2.16",
+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.16.tgz",
+ "integrity": "sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==",
"dev": true
},
"nyc": {
"version": "15.1.0",
+ "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz",
+ "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==",
"dev": true,
"requires": {
"@istanbuljs/load-nyc-config": "^1.0.0",
@@ -30422,10 +38792,14 @@
"dependencies": {
"camelcase": {
"version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
"dev": true
},
"cliui": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
"dev": true,
"requires": {
"string-width": "^4.2.0",
@@ -30435,6 +38809,8 @@
},
"find-up": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"dev": true,
"requires": {
"locate-path": "^5.0.0",
@@ -30443,6 +38819,8 @@
},
"locate-path": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dev": true,
"requires": {
"p-locate": "^4.1.0"
@@ -30450,6 +38828,8 @@
},
"p-limit": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
"requires": {
"p-try": "^2.0.0"
@@ -30457,6 +38837,8 @@
},
"p-locate": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"dev": true,
"requires": {
"p-limit": "^2.2.0"
@@ -30464,6 +38846,8 @@
},
"p-map": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
+ "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==",
"dev": true,
"requires": {
"aggregate-error": "^3.0.0"
@@ -30471,10 +38855,14 @@
},
"resolve-from": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true
},
"wrap-ansi": {
"version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
"dev": true,
"requires": {
"ansi-styles": "^4.0.0",
@@ -30484,10 +38872,14 @@
},
"y18n": {
"version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
"dev": true
},
"yargs": {
"version": "15.4.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
+ "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
"dev": true,
"requires": {
"cliui": "^6.0.0",
@@ -30505,6 +38897,8 @@
},
"yargs-parser": {
"version": "18.1.3",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
"dev": true,
"requires": {
"camelcase": "^5.0.0",
@@ -30515,20 +38909,30 @@
},
"oauth-sign": {
"version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
"dev": true
},
"object-assign": {
- "version": "4.1.1"
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
},
"object-inspect": {
- "version": "1.13.3"
+ "version": "1.13.3",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz",
+ "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA=="
},
"object-keys": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
"dev": true
},
"object.assign": {
"version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
+ "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
"dev": true,
"requires": {
"call-bind": "^1.0.5",
@@ -30539,6 +38943,8 @@
},
"object.entries": {
"version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz",
+ "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==",
"dev": true,
"requires": {
"call-bind": "^1.0.7",
@@ -30548,6 +38954,8 @@
},
"object.fromentries": {
"version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
+ "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
"dev": true,
"peer": true,
"requires": {
@@ -30559,6 +38967,8 @@
},
"object.groupby": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz",
+ "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==",
"dev": true,
"peer": true,
"requires": {
@@ -30569,6 +38979,8 @@
},
"object.values": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz",
+ "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==",
"dev": true,
"peer": true,
"requires": {
@@ -30578,44 +38990,60 @@
}
},
"obliterator": {
- "version": "2.0.4"
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz",
+ "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ=="
},
"oboe": {
"version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz",
+ "integrity": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==",
"dev": true,
"requires": {
"http-https": "^1.0.0"
}
},
"on-exit-leak-free": {
- "version": "2.1.2"
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz",
+ "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA=="
},
"on-finished": {
"version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
"requires": {
"ee-first": "1.1.1"
}
},
"once": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"requires": {
"wrappy": "1"
}
},
"one-time": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz",
+ "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==",
"requires": {
"fn.name": "1.x.x"
}
},
"onetime": {
"version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
"requires": {
"mimic-fn": "^2.1.0"
}
},
"optionator": {
"version": "0.9.4",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
+ "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
"requires": {
"deep-is": "^0.1.3",
"fast-levenshtein": "^2.0.6",
@@ -30626,61 +39054,85 @@
}
},
"os-tmpdir": {
- "version": "1.0.2"
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g=="
},
"p-any": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-any/-/p-any-3.0.0.tgz",
+ "integrity": "sha512-5rqbqfsRWNb0sukt0awwgJMlaep+8jV45S15SKKB34z4UuzjcofIfnriCBhWjZP2jbVtjt9yRl7buB6RlKsu9w==",
"requires": {
"p-cancelable": "^2.0.0",
"p-some": "^5.0.0"
}
},
"p-cancelable": {
- "version": "2.1.1"
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz",
+ "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg=="
},
"p-defer": {
- "version": "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-fifo": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-fifo/-/p-fifo-1.0.0.tgz",
+ "integrity": "sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==",
"requires": {
"fast-fifo": "^1.0.0",
"p-defer": "^3.0.0"
}
},
"p-finally": {
- "version": "1.0.0"
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow=="
},
"p-limit": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
"requires": {
"yocto-queue": "^0.1.0"
}
},
"p-locate": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
"requires": {
"p-limit": "^3.0.2"
}
},
"p-map": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
+ "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
"requires": {
"aggregate-error": "^3.0.0"
}
},
"p-queue": {
"version": "6.6.2",
+ "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz",
+ "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==",
"requires": {
"eventemitter3": "^4.0.4",
"p-timeout": "^3.2.0"
},
"dependencies": {
"eventemitter3": {
- "version": "4.0.7"
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
},
"p-timeout": {
"version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz",
+ "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==",
"requires": {
"p-finally": "^1.0.0"
}
@@ -30688,10 +39140,14 @@
}
},
"p-reflect": {
- "version": "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": {
"version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz",
+ "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==",
"requires": {
"@types/retry": "0.12.0",
"retry": "^0.13.1"
@@ -30699,6 +39155,8 @@
},
"p-settle": {
"version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/p-settle/-/p-settle-4.1.1.tgz",
+ "integrity": "sha512-6THGh13mt3gypcNMm0ADqVNCcYa3BK6DWsuJWFCuEKP1rpY+OKGp7gaZwVmLspmic01+fsg/fN57MfvDzZ/PuQ==",
"requires": {
"p-limit": "^2.2.2",
"p-reflect": "^2.1.0"
@@ -30706,6 +39164,8 @@
"dependencies": {
"p-limit": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"requires": {
"p-try": "^2.0.0"
}
@@ -30714,19 +39174,27 @@
},
"p-some": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-some/-/p-some-5.0.0.tgz",
+ "integrity": "sha512-Js5XZxo6vHjB9NOYAzWDYAIyyiPvva0DWESAIWIK7uhSpGsyg5FwUPxipU/SOQx5x9EqhOh545d1jo6cVkitig==",
"requires": {
"aggregate-error": "^3.0.0",
"p-cancelable": "^2.0.0"
}
},
"p-timeout": {
- "version": "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-try": {
- "version": "2.2.0"
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
},
"package-hash": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz",
+ "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==",
"dev": true,
"requires": {
"graceful-fs": "^4.1.15",
@@ -30737,6 +39205,8 @@
},
"pad-right": {
"version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/pad-right/-/pad-right-0.2.2.tgz",
+ "integrity": "sha512-4cy8M95ioIGolCoMmm2cMntGR1lPLEbOMzOKu8bzjuJP6JpzEMQcDHmh7hHLYGgob+nKe1YHFMaG4V59HQa89g==",
"dev": true,
"requires": {
"repeat-string": "^1.5.2"
@@ -30744,53 +39214,79 @@
},
"pako": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz",
+ "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==",
"optional": true
},
"parent-module": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
"requires": {
"callsites": "^3.0.0"
}
},
"parse-headers": {
"version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz",
+ "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==",
"dev": true
},
"parse5": {
"version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
+ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
"dev": true
},
"parseurl": {
- "version": "1.3.3"
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
},
"pascal-case": {
"version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+ "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
"requires": {
"no-case": "^3.0.4",
"tslib": "^2.0.3"
}
},
"path-exists": {
- "version": "4.0.0"
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
},
"path-is-absolute": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
},
"path-key": {
- "version": "3.1.1"
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
},
"path-parse": {
- "version": "1.0.7"
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
},
"path-to-regexp": {
- "version": "0.1.12"
+ "version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
+ "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ=="
},
"pathval": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
+ "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
"dev": true
},
"pbkdf2": {
"version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
+ "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
"requires": {
"create-hash": "^1.1.2",
"create-hmac": "^1.1.4",
@@ -30801,6 +39297,8 @@
},
"peer-id": {
"version": "0.15.4",
+ "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.15.4.tgz",
+ "integrity": "sha512-MDoBIMZYwQIAHaZQUwsIcvoFgdbIl5GtZMwSkXpIYvc5v0TSDv+u8WsTKrKt2Vv28tHFFDJQdVzu3T4qTPzK+w==",
"requires": {
"class-is": "^1.1.0",
"libp2p-crypto": "^0.20.0",
@@ -30812,6 +39310,8 @@
"dependencies": {
"libp2p-crypto": {
"version": "0.20.0",
+ "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.20.0.tgz",
+ "integrity": "sha512-WgIW9rYcWaO/5j2T6NW3R6Q46yvp2ZfFErqRMbi4/pOTL3T7+OROYpL/1iWVksWkXyurU/t2qFsIijWMxR5C4Q==",
"requires": {
"err-code": "^3.0.1",
"iso-random-stream": "^2.0.0",
@@ -30830,29 +39330,43 @@
},
"pem-jwk": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pem-jwk/-/pem-jwk-2.0.0.tgz",
+ "integrity": "sha512-rFxu7rVoHgQ5H9YsP50dDWf0rHjreVA2z0yPiWr5WdH/UHb29hKtF7h6l8vNd1cbYR1t0QL+JKhW55a2ZV4KtA==",
"requires": {
"asn1.js": "^5.0.1"
}
},
"performance-now": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==",
"dev": true
},
"pg-connection-string": {
- "version": "2.7.0"
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.7.0.tgz",
+ "integrity": "sha512-PI2W9mv53rXJQEOb8xNR8lH7Hr+EKa6oJa38zsK0S/ky2er16ios1wLKhZyxzD7jUReiWokc9WK5nxSnC7W1TA=="
},
"picocolors": {
- "version": "1.1.1"
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="
},
"picomatch": {
- "version": "2.3.1"
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
},
"pidtree": {
"version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz",
+ "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==",
"dev": true
},
"pino": {
"version": "8.21.0",
+ "resolved": "https://registry.npmjs.org/pino/-/pino-8.21.0.tgz",
+ "integrity": "sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==",
"requires": {
"atomic-sleep": "^1.0.0",
"fast-redact": "^3.1.1",
@@ -30869,6 +39383,8 @@
},
"pino-abstract-transport": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz",
+ "integrity": "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==",
"requires": {
"readable-stream": "^4.0.0",
"split2": "^4.0.0"
@@ -30876,6 +39392,8 @@
},
"pino-pretty": {
"version": "9.4.1",
+ "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-9.4.1.tgz",
+ "integrity": "sha512-loWr5SNawVycvY//hamIzyz3Fh5OSpvkcO13MwdDW+eKIGylobPLqnVGTDwDXkdmpJd1BhEG+qhDw09h6SqJiQ==",
"requires": {
"colorette": "^2.0.7",
"dateformat": "^4.6.3",
@@ -30894,10 +39412,14 @@
}
},
"pino-std-serializers": {
- "version": "6.2.2"
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz",
+ "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA=="
},
"pkg-dir": {
"version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
"dev": true,
"requires": {
"find-up": "^4.0.0"
@@ -30905,6 +39427,8 @@
"dependencies": {
"find-up": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"dev": true,
"requires": {
"locate-path": "^5.0.0",
@@ -30913,6 +39437,8 @@
},
"locate-path": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dev": true,
"requires": {
"p-locate": "^4.1.0"
@@ -30920,6 +39446,8 @@
},
"p-limit": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
"requires": {
"p-try": "^2.0.0"
@@ -30927,6 +39455,8 @@
},
"p-locate": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"dev": true,
"requires": {
"p-limit": "^2.2.0"
@@ -30935,15 +39465,20 @@
}
},
"pony-cause": {
- "version": "2.1.11"
+ "version": "2.1.11",
+ "resolved": "https://registry.npmjs.org/pony-cause/-/pony-cause-2.1.11.tgz",
+ "integrity": "sha512-M7LhCsdNbNgiLYiP4WjsfLUuFmCfnjdF6jKe2R9NKl4WFN+HZPGHJZ9lnLP7f9ZnKe3U9nuWD0szirmj+migUg=="
},
"possible-typed-array-names": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
+ "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==",
"dev": true
},
"prebuild-install": {
"version": "7.1.2",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz",
+ "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==",
"requires": {
"detect-libc": "^2.0.0",
"expand-template": "^2.0.3",
@@ -30961,7 +39496,8 @@
"dependencies": {
"bl": {
"version": "4.1.0",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
"requires": {
"buffer": "^5.5.0",
"inherits": "^2.0.4",
@@ -30970,7 +39506,8 @@
},
"buffer": {
"version": "5.7.1",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
"requires": {
"base64-js": "^1.3.1",
"ieee754": "^1.1.13"
@@ -30978,7 +39515,8 @@
},
"readable-stream": {
"version": "3.6.2",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -30987,7 +39525,8 @@
},
"tar-fs": {
"version": "2.1.1",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
+ "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
"requires": {
"chownr": "^1.1.1",
"mkdirp-classic": "^0.5.2",
@@ -30997,7 +39536,8 @@
},
"tar-stream": {
"version": "2.2.0",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
"requires": {
"bl": "^4.0.3",
"end-of-stream": "^1.4.1",
@@ -31009,14 +39549,20 @@
}
},
"prelude-ls": {
- "version": "1.2.1"
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="
},
"prettier": {
"version": "2.8.8",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
+ "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
"dev": true
},
"private-ip": {
"version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/private-ip/-/private-ip-2.3.4.tgz",
+ "integrity": "sha512-ts/YFVwfBeLq61f9+KsOhXW6RH0wvY0gU50R6QZYzgFhggyyLK6WDFeYdjfi/HMnBm2hecLvsR3PB3JcRxDk+A==",
"requires": {
"ip-regex": "^4.3.0",
"ipaddr.js": "^2.0.1",
@@ -31025,30 +39571,74 @@
}
},
"process": {
- "version": "0.11.10"
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A=="
},
"process-nextick-args": {
- "version": "2.0.1"
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
},
"process-on-spawn": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.1.0.tgz",
+ "integrity": "sha512-JOnOPQ/8TZgjs1JIH/m9ni7FfimjNa/PRx7y/Wb5qdItsnhO0jE4AT7fC0HjC28DUQWDr50dwSYZLdRMlqDq3Q==",
"dev": true,
"requires": {
"fromentries": "^1.2.0"
}
},
"process-warning": {
- "version": "3.0.0"
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz",
+ "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ=="
},
"progress": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
"dev": true
},
+ "promise-inflight": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+ "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
+ "optional": true
+ },
"promise-polyfill": {
- "version": "1.1.6"
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-1.1.6.tgz",
+ "integrity": "sha512-7rrONfyLkDEc7OJ5QBkqa4KI4EBhCd340xRuIUPGCfu13znS+vx+VDdrT9ODAJHlXm7w4lbxN3DRjyv58EuzDg=="
+ },
+ "promise-retry": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz",
+ "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==",
+ "optional": true,
+ "requires": {
+ "err-code": "^2.0.2",
+ "retry": "^0.12.0"
+ },
+ "dependencies": {
+ "err-code": {
+ "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==",
+ "optional": true
+ },
+ "retry": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
+ "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
+ "optional": true
+ }
+ }
},
"prop-types": {
"version": "15.8.1",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
"dev": true,
"peer": true,
"requires": {
@@ -31058,14 +39648,20 @@
}
},
"propagate": {
- "version": "2.0.1"
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz",
+ "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag=="
},
"property-expr": {
"version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.6.tgz",
+ "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==",
"dev": true
},
"protobufjs": {
"version": "6.11.4",
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.4.tgz",
+ "integrity": "sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==",
"requires": {
"@protobufjs/aspromise": "^1.1.2",
"@protobufjs/base64": "^1.1.2",
@@ -31083,27 +39679,37 @@
},
"dependencies": {
"long": {
- "version": "4.0.0"
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
+ "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
}
}
},
"proxy-addr": {
"version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
"requires": {
"forwarded": "0.2.0",
"ipaddr.js": "1.9.1"
},
"dependencies": {
"ipaddr.js": {
- "version": "1.9.1"
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
}
}
},
"proxy-from-env": {
- "version": "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": {
"version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz",
+ "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==",
"dev": true,
"requires": {
"punycode": "^2.3.1"
@@ -31111,22 +39717,30 @@
},
"pump": {
"version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
+ "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==",
"requires": {
"end-of-stream": "^1.1.0",
"once": "^1.3.1"
}
},
"punycode": {
- "version": "2.3.1"
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="
},
"qs": {
"version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
+ "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
"requires": {
"side-channel": "^1.0.6"
}
},
"query-string": {
"version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz",
+ "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==",
"dev": true,
"requires": {
"decode-uri-component": "^0.2.0",
@@ -31136,33 +39750,49 @@
},
"querystringify": {
"version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
+ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
"dev": true
},
"queue-microtask": {
- "version": "1.2.3"
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
},
"queue-tick": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
+ "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==",
"dev": true
},
"quick-format-unescaped": {
- "version": "4.0.4"
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz",
+ "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg=="
},
"quick-lru": {
"version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
+ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
"dev": true
},
"randombytes": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
"requires": {
"safe-buffer": "^5.1.0"
}
},
"range-parser": {
- "version": "1.2.1"
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
},
"raw-body": {
"version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
+ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
"requires": {
"bytes": "3.1.2",
"http-errors": "2.0.0",
@@ -31172,6 +39802,8 @@
"dependencies": {
"iconv-lite": {
"version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"requires": {
"safer-buffer": ">= 2.1.2 < 3"
}
@@ -31180,6 +39812,8 @@
},
"rc": {
"version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
"requires": {
"deep-extend": "^0.6.0",
"ini": "~1.3.0",
@@ -31188,21 +39822,37 @@
},
"dependencies": {
"ini": {
- "version": "1.3.8"
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
},
"strip-json-comments": {
- "version": "2.0.1"
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ=="
}
}
},
+ "rdf-canonize": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-4.0.1.tgz",
+ "integrity": "sha512-B5ynHt4sasbUafzrvYI2GFARgeFcD8Sx9yXPbg7gEyT2EH76rlCv84kyO6tnxzVbxUN/uJDbK1S/MXh+DsnuTA==",
+ "requires": {
+ "setimmediate": "^1.0.5"
+ }
+ },
"rdf-data-factory": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/rdf-data-factory/-/rdf-data-factory-1.1.2.tgz",
+ "integrity": "sha512-TfQD63Lokabd09ES1jAtKK8AA6rkr9rwyUBGo6olOt1CE0Um36CUQIqytyf0am2ouBPR0l7SaHxCiMcPGHkt1A==",
"requires": {
"@rdfjs/types": "*"
}
},
"rdf-isomorphic": {
"version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/rdf-isomorphic/-/rdf-isomorphic-1.3.1.tgz",
+ "integrity": "sha512-6uIhsXTVp2AtO6f41PdnRV5xZsa0zVZQDTBdn0br+DZuFf5M/YD+T6m8hKDUnALI6nFL/IujTMLgEs20MlNidQ==",
"requires": {
"@rdfjs/types": "*",
"hash.js": "^1.1.7",
@@ -31212,6 +39862,8 @@
},
"rdf-literal": {
"version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/rdf-literal/-/rdf-literal-1.3.2.tgz",
+ "integrity": "sha512-79Stlu3sXy0kq9/decHFLf3xNPuY6sfhFPhd/diWErgaFr0Ekyg38Vh9bnVcqDYu48CFRi0t+hrFii49n92Hbw==",
"requires": {
"@rdfjs/types": "*",
"rdf-data-factory": "^1.1.0"
@@ -31219,6 +39871,8 @@
},
"rdf-object": {
"version": "1.14.0",
+ "resolved": "https://registry.npmjs.org/rdf-object/-/rdf-object-1.14.0.tgz",
+ "integrity": "sha512-/KSUWr7onDtL7d81kOpcUzJ2vHYOYJc2KU9WzBZRYydBhK0Sksh5Hg4VCQNaxUEvYEgdrrTuq9SLpOOCmag0rQ==",
"requires": {
"@rdfjs/types": "*",
"jsonld-context-parser": "^2.0.2",
@@ -31229,6 +39883,8 @@
},
"rdf-parse": {
"version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/rdf-parse/-/rdf-parse-2.3.3.tgz",
+ "integrity": "sha512-N5XEHm+ajFzwo/vVNzB4tDtvqMwBosbVJmZl5DlzplQM9ejlJBlN/43i0ImAb/NMtJJgQPC3jYnkCKGA7wdo/w==",
"requires": {
"@comunica/actor-http-fetch": "^2.0.1",
"@comunica/actor-http-proxy": "^2.0.1",
@@ -31258,6 +39914,8 @@
},
"rdf-quad": {
"version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/rdf-quad/-/rdf-quad-1.5.0.tgz",
+ "integrity": "sha512-LnCYx8XbRVW1wr6UiZPSy2Tv7bXAtEwuyck/68dANhFu8VMnGS+QfUNP3b9YI6p4Bfd/fyDx5E3x81IxGV6BzA==",
"requires": {
"rdf-data-factory": "^1.0.1",
"rdf-literal": "^1.2.0",
@@ -31266,6 +39924,8 @@
},
"rdf-store-stream": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/rdf-store-stream/-/rdf-store-stream-2.0.1.tgz",
+ "integrity": "sha512-znGaibHLvbRE0BrDcXHRleRcLKlHYP6ADr1RFJ3yA28QBmhOjxxgbBFTvCMzgsxvBIqdaFS8Vd2FG4NefJL4Mg==",
"requires": {
"@rdfjs/types": "*",
"rdf-stores": "^1.0.0"
@@ -31273,6 +39933,8 @@
},
"rdf-stores": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/rdf-stores/-/rdf-stores-1.0.0.tgz",
+ "integrity": "sha512-wqp7M5409rbhpWQE0C1vyVysbz++aD2vEkZ6yueSxhDtyLvznS41R3cKiuUpm3ikc/yTpaCZwPo4iyKEaAwBIg==",
"requires": {
"@rdfjs/types": "*",
"asynciterator": "^3.8.0",
@@ -31283,6 +39945,8 @@
},
"rdf-streaming-store": {
"version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/rdf-streaming-store/-/rdf-streaming-store-1.1.5.tgz",
+ "integrity": "sha512-Rfd3qo1otF/Jfau/lAFX8J1ZPorN0eaHoIkAlenIIcdZjq9AoIP85rEa4Sn+yMZOqNU1Kc4cCPUv5CFHhpAT2Q==",
"requires": {
"@rdfjs/types": "*",
"@types/n3": "^1.10.4",
@@ -31295,18 +39959,24 @@
"dependencies": {
"@types/readable-stream": {
"version": "4.0.18",
+ "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-4.0.18.tgz",
+ "integrity": "sha512-21jK/1j+Wg+7jVw1xnSwy/2Q1VgVjWuFssbYGTREPUBeZ+rqVFl2udq0IkxzPC0ZhOzVceUbyIACFZKLqKEBlA==",
"requires": {
"@types/node": "*",
"safe-buffer": "~5.1.1"
}
},
"safe-buffer": {
- "version": "5.1.2"
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
}
}
},
"rdf-string": {
"version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/rdf-string/-/rdf-string-1.6.3.tgz",
+ "integrity": "sha512-HIVwQ2gOqf+ObsCLSUAGFZMIl3rh9uGcRf1KbM85UDhKqP+hy6qj7Vz8FKt3GA54RiThqK3mNcr66dm1LP0+6g==",
"requires": {
"@rdfjs/types": "*",
"rdf-data-factory": "^1.1.0"
@@ -31314,6 +39984,8 @@
},
"rdf-string-ttl": {
"version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/rdf-string-ttl/-/rdf-string-ttl-1.3.2.tgz",
+ "integrity": "sha512-yqolaVoUvTaSC5aaQuMcB4BL54G/pCGsV4jQH87f0TvAx8zHZG0koh7XWrjva/IPGcVb1QTtaeEdfda5mcddJg==",
"requires": {
"@rdfjs/types": "*",
"rdf-data-factory": "^1.1.0"
@@ -31321,6 +39993,8 @@
},
"rdf-terms": {
"version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/rdf-terms/-/rdf-terms-1.11.0.tgz",
+ "integrity": "sha512-iKlVgnMopRKl9pHVNrQrax7PtZKRCT/uJIgYqvuw1VVQb88zDvurtDr1xp0rt7N9JtKtFwUXoIQoEsjyRo20qQ==",
"requires": {
"@rdfjs/types": "*",
"rdf-data-factory": "^1.1.0",
@@ -31329,6 +40003,8 @@
},
"rdfa-streaming-parser": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/rdfa-streaming-parser/-/rdfa-streaming-parser-2.0.1.tgz",
+ "integrity": "sha512-7Yyaj030LO7iQ38Wh/RNLVeYrVFJeyx3dpCK7C1nvX55eIN/gE4HWfbg4BYI9X7Bd+eUIUMVeiKYLmYjV6apow==",
"requires": {
"@rdfjs/types": "*",
"htmlparser2": "^8.0.0",
@@ -31339,6 +40015,8 @@
"dependencies": {
"htmlparser2": {
"version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
+ "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
"requires": {
"domelementtype": "^2.3.0",
"domhandler": "^5.0.3",
@@ -31350,6 +40028,8 @@
},
"rdfxml-streaming-parser": {
"version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/rdfxml-streaming-parser/-/rdfxml-streaming-parser-2.4.0.tgz",
+ "integrity": "sha512-f+tdI1wxOiPzMbFWRtOwinwPsqac0WIN80668yFKcVdFCSTGOWTM70ucQGUSdDZZo7pce/UvZgV0C3LDj0P7tg==",
"requires": {
"@rdfjs/types": "*",
"@rubensworks/saxes": "^6.0.1",
@@ -31363,17 +40043,23 @@
},
"react-is": {
"version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"dev": true,
"peer": true
},
"react-native-fetch-api": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/react-native-fetch-api/-/react-native-fetch-api-2.0.0.tgz",
+ "integrity": "sha512-GOA8tc1EVYLnHvma/TU9VTgLOyralO7eATRuCDchQveXW9Fr9vXygyq9iwqmM7YRZ8qRJfEt9xOS7OYMdJvRFw==",
"requires": {
"p-defer": "^3.0.0"
}
},
"readable-stream": {
"version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz",
+ "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==",
"requires": {
"abort-controller": "^3.0.0",
"buffer": "^6.0.3",
@@ -31383,43 +40069,60 @@
}
},
"readable-stream-node-to-web": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/readable-stream-node-to-web/-/readable-stream-node-to-web-1.0.1.tgz",
+ "integrity": "sha512-OGzi2VKLa8H259kAx7BIwuRrXHGcxeHj4RdASSgEGBP9Q2wowdPvBc65upF4Q9O05qWgKqBw1+9PiLTtObl7uQ=="
},
"readdirp": {
- "version": "4.0.2"
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz",
+ "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA=="
},
"real-require": {
- "version": "0.2.0"
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz",
+ "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg=="
},
"receptacle": {
"version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz",
+ "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==",
"requires": {
"ms": "^2.1.1"
}
},
"reflect-metadata": {
"version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz",
+ "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==",
"dev": true
},
"reflect.getprototypeof": {
- "version": "1.0.7",
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.8.tgz",
+ "integrity": "sha512-B5dj6usc5dkk8uFliwjwDHM8To5/QwdKz9JcBZ8Ic4G1f0YmeeJTtE/ZTdgRFPAfxZFiUaPhZ1Jcs4qeagItGQ==",
"dev": true,
"peer": true,
"requires": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
"define-properties": "^1.2.1",
+ "dunder-proto": "^1.0.0",
"es-abstract": "^1.23.5",
"es-errors": "^1.3.0",
"get-intrinsic": "^1.2.4",
- "gopd": "^1.0.1",
- "which-builtin-type": "^1.1.4"
+ "gopd": "^1.2.0",
+ "which-builtin-type": "^1.2.0"
}
},
"regenerator-runtime": {
- "version": "0.14.1"
+ "version": "0.14.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
+ "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
},
"regexp-match-indices": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/regexp-match-indices/-/regexp-match-indices-1.0.2.tgz",
+ "integrity": "sha512-DwZuAkt8NF5mKwGGER1EGh2PRqyvhRhhLviH+R8y8dIuaQROlUfXjt4s9ZTXstIsSkptf06BSvwcEmmfheJJWQ==",
"dev": true,
"requires": {
"regexp-tree": "^0.1.11"
@@ -31427,10 +40130,14 @@
},
"regexp-tree": {
"version": "0.1.27",
+ "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz",
+ "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==",
"dev": true
},
"regexp.prototype.flags": {
"version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz",
+ "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==",
"dev": true,
"peer": true,
"requires": {
@@ -31441,10 +40148,14 @@
}
},
"relative-to-absolute-iri": {
- "version": "1.0.7"
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/relative-to-absolute-iri/-/relative-to-absolute-iri-1.0.7.tgz",
+ "integrity": "sha512-Xjyl4HmIzg2jzK/Un2gELqbcE8Fxy85A/aLSHE6PE/3+OGsFwmKVA1vRyGaz6vLWSqLDMHA+5rjD/xbibSQN1Q=="
},
"release-zalgo": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz",
+ "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==",
"dev": true,
"requires": {
"es6-error": "^4.0.1"
@@ -31452,10 +40163,14 @@
},
"repeat-string": {
"version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==",
"dev": true
},
"request": {
"version": "2.88.2",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
+ "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
"dev": true,
"requires": {
"aws-sign2": "~0.7.0",
@@ -31482,6 +40197,8 @@
"dependencies": {
"form-data": {
"version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
"dev": true,
"requires": {
"asynckit": "^0.4.0",
@@ -31491,10 +40208,14 @@
},
"qs": {
"version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
+ "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
"dev": true
},
"tough-cookie": {
"version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
+ "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
"dev": true,
"requires": {
"psl": "^1.1.28",
@@ -31503,26 +40224,38 @@
},
"uuid": {
"version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
"dev": true
}
}
},
"require-directory": {
- "version": "2.1.1"
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="
},
"require-from-string": {
- "version": "2.0.2"
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="
},
"require-main-filename": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
"dev": true
},
"requires-port": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
+ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
"dev": true
},
"resolve": {
"version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
"requires": {
"is-core-module": "^2.13.0",
"path-parse": "^1.0.7",
@@ -31531,13 +40264,19 @@
},
"resolve-alpn": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
+ "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==",
"dev": true
},
"resolve-from": {
- "version": "4.0.0"
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
},
"resolve-pkg": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-pkg/-/resolve-pkg-2.0.0.tgz",
+ "integrity": "sha512-+1lzwXehGCXSeryaISr6WujZzowloigEofRB+dj75y9RRa/obVcYgbHJd53tdYw8pvZj8GojXaaENws8Ktw/hQ==",
"dev": true,
"requires": {
"resolve-from": "^5.0.0"
@@ -31545,12 +40284,16 @@
"dependencies": {
"resolve-from": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true
}
}
},
"responselike": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz",
+ "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==",
"dev": true,
"requires": {
"lowercase-keys": "^2.0.0"
@@ -31558,12 +40301,16 @@
"dependencies": {
"lowercase-keys": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
"dev": true
}
}
},
"restore-cursor": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz",
+ "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==",
"dev": true,
"requires": {
"onetime": "^5.1.0",
@@ -31571,29 +40318,43 @@
}
},
"retimer": {
- "version": "3.0.0"
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/retimer/-/retimer-3.0.0.tgz",
+ "integrity": "sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA=="
},
"retry": {
- "version": "0.13.1"
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
+ "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg=="
},
"retry-as-promised": {
- "version": "7.0.4"
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-7.0.4.tgz",
+ "integrity": "sha512-XgmCoxKWkDofwH8WddD0w85ZfqYz+ZHlr5yo+3YUCfycWawU56T5ckWXsScsj5B8tqUcIG67DxXByo3VUgiAdA=="
},
"reusify": {
- "version": "1.0.4"
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
},
"rfdc": {
"version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz",
+ "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==",
"dev": true
},
"rimraf": {
"version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
"requires": {
"glob": "^7.1.3"
}
},
"ripemd160": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
"requires": {
"hash-base": "^3.0.0",
"inherits": "^2.0.1"
@@ -31601,16 +40362,22 @@
},
"rlp": {
"version": "2.2.7",
+ "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz",
+ "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==",
"requires": {
"bn.js": "^5.2.0"
}
},
"robust-predicates": {
"version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz",
+ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==",
"dev": true
},
"rolling-rate-limiter": {
"version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/rolling-rate-limiter/-/rolling-rate-limiter-0.2.13.tgz",
+ "integrity": "sha512-fF5XeJn7t22cC9LIh77BDfs7Mg0jon03qezMfPige0vehzhmNyQ6U+eSYbaL1l80sX9z+22+6x4pQ8xHT0LrVw==",
"requires": {
"microtime": "^3.0.0",
"uuid": "^8.3.0"
@@ -31618,61 +40385,84 @@
},
"run-parallel": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
"requires": {
"queue-microtask": "^1.2.2"
}
},
"rw": {
"version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
+ "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==",
"dev": true
},
"rxjs": {
"version": "7.8.1",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
"requires": {
"tslib": "^2.1.0"
}
},
"safe-array-concat": {
- "version": "1.1.2",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz",
+ "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==",
"dev": true,
"peer": true,
"requires": {
- "call-bind": "^1.0.7",
- "get-intrinsic": "^1.2.4",
- "has-symbols": "^1.0.3",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.2",
+ "get-intrinsic": "^1.2.6",
+ "has-symbols": "^1.1.0",
"isarray": "^2.0.5"
}
},
"safe-buffer": {
- "version": "5.2.1"
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
},
"safe-regex-test": {
- "version": "1.0.3",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz",
+ "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==",
"dev": true,
"peer": true,
"requires": {
- "call-bind": "^1.0.6",
+ "call-bound": "^1.0.2",
"es-errors": "^1.3.0",
- "is-regex": "^1.1.4"
+ "is-regex": "^1.2.1"
}
},
"safe-stable-stringify": {
- "version": "2.5.0"
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz",
+ "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA=="
},
"safer-buffer": {
- "version": "2.1.2"
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"sanitize-filename": {
"version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz",
+ "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==",
"requires": {
"truncate-utf8-bytes": "^1.0.0"
}
},
"sax": {
- "version": "1.4.1"
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz",
+ "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg=="
},
"sax-stream": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/sax-stream/-/sax-stream-1.3.0.tgz",
+ "integrity": "sha512-tcfsAAICAkyNNe4uiKtKmLKxx3C7qPAej13UUoN+7OLYq/P5kHGahZtJhhMVM3fIMndA6TlYHWFlFEzFkv1VGg==",
"requires": {
"debug": "~2",
"sax": "~1"
@@ -31680,17 +40470,23 @@
"dependencies": {
"debug": {
"version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
}
},
"ms": {
- "version": "2.0.0"
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
}
}
},
"saxes": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz",
+ "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==",
"dev": true,
"requires": {
"xmlchars": "^2.2.0"
@@ -31698,13 +40494,19 @@
},
"scale-ts": {
"version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/scale-ts/-/scale-ts-1.6.1.tgz",
+ "integrity": "sha512-PBMc2AWc6wSEqJYBDPcyCLUj9/tMKnLX70jLOSndMtcUoLQucP/DM0vnQo1wJAYjTrQiq8iG9rD0q6wFzgjH7g==",
"optional": true
},
"scrypt-js": {
- "version": "3.0.1"
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz",
+ "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA=="
},
"secp256k1": {
"version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz",
+ "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==",
"requires": {
"elliptic": "^6.5.4",
"node-addon-api": "^2.0.0",
@@ -31712,20 +40514,31 @@
}
},
"secure-json-parse": {
- "version": "2.7.0"
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz",
+ "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw=="
},
"seed-random": {
"version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/seed-random/-/seed-random-2.2.0.tgz",
+ "integrity": "sha512-34EQV6AAHQGhoc0tn/96a9Fsi6v2xdqe/dMUwljGRaFOzR3EgRmECvD0O8vi8X+/uQ50LGHfkNu/Eue5TPKZkQ==",
"dev": true
},
"seedrandom": {
- "version": "3.0.5"
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz",
+ "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==",
+ "dev": true
},
"semver": {
- "version": "7.6.3"
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A=="
},
"send": {
"version": "0.19.0",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
+ "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
"requires": {
"debug": "2.6.9",
"depd": "2.0.0",
@@ -31744,25 +40557,35 @@
"dependencies": {
"debug": {
"version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
},
"dependencies": {
"ms": {
- "version": "2.0.0"
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
}
}
},
"encodeurl": {
- "version": "1.0.2"
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
}
}
},
"seq-queue": {
- "version": "0.0.5"
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz",
+ "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q=="
},
"sequelize": {
"version": "6.37.5",
+ "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.37.5.tgz",
+ "integrity": "sha512-10WA4poUb3XWnUROThqL2Apq9C2NhyV1xHPMZuybNMCucDsbbFuKg51jhmyvvAUyUqCiimwTZamc3AHhMoBr2Q==",
"requires": {
"@types/debug": "^4.1.8",
"@types/validator": "^13.7.17",
@@ -31783,16 +40606,22 @@
}
},
"sequelize-pool": {
- "version": "7.1.0"
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/sequelize-pool/-/sequelize-pool-7.1.0.tgz",
+ "integrity": "sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg=="
},
"serialize-javascript": {
"version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
+ "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
"requires": {
"randombytes": "^2.1.0"
}
},
"serve-static": {
"version": "1.16.2",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
+ "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
"requires": {
"encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
@@ -31802,6 +40631,8 @@
},
"servify": {
"version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz",
+ "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==",
"dev": true,
"requires": {
"body-parser": "^1.16.0",
@@ -31813,13 +40644,19 @@
},
"set-blocking": {
"version": "2.0.0",
- "dev": true
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
+ "devOptional": true
},
"set-delayed-interval": {
- "version": "1.0.0"
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/set-delayed-interval/-/set-delayed-interval-1.0.0.tgz",
+ "integrity": "sha512-29fhAwuZlLcuBnW/EwxvLcg2D3ELX+VBDNhnavs3YYkab72qmrcSeQNVdzl8EcPPahGQXhBM6MKdPLCQGMDakw=="
},
"set-function-length": {
"version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
"requires": {
"define-data-property": "^1.1.4",
"es-errors": "^1.3.0",
@@ -31831,6 +40668,8 @@
},
"set-function-name": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
+ "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
"dev": true,
"peer": true,
"requires": {
@@ -31841,13 +40680,19 @@
}
},
"setimmediate": {
- "version": "1.0.5"
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="
},
"setprototypeof": {
- "version": "1.2.0"
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
"sha.js": {
"version": "2.4.11",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
"requires": {
"inherits": "^2.0.1",
"safe-buffer": "^5.0.1"
@@ -31855,6 +40700,8 @@
},
"shaclc-parse": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/shaclc-parse/-/shaclc-parse-1.4.0.tgz",
+ "integrity": "sha512-zyxjIYQH2ghg/wtMvOp+4Nr6aK8j9bqFiVT3w47K8WHPYN+S3Zgnh2ybT+dGgMwo9KjiOoywxhjC7d8Z6GCmfA==",
"requires": {
"@rdfjs/types": "^1.1.0",
"n3": "^1.16.3"
@@ -31862,6 +40709,8 @@
},
"shaclc-write": {
"version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/shaclc-write/-/shaclc-write-1.4.3.tgz",
+ "integrity": "sha512-dtJ6LokIluzQuHRWCFvNnmGyh07FxBK2L4utkOQn/wYD9eNamUUCt7sDBcuFDyD3jAGv0Ipmv0EitTyKcM1f/w==",
"requires": {
"@jeswr/prefixcc": "^1.2.1",
"n3": "^1.16.3",
@@ -31870,6 +40719,8 @@
},
"sharp": {
"version": "0.32.6",
+ "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz",
+ "integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==",
"dev": true,
"requires": {
"color": "^4.2.3",
@@ -31884,38 +40735,83 @@
"dependencies": {
"node-addon-api": {
"version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
+ "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==",
"dev": true
}
}
},
"shebang-command": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"requires": {
"shebang-regex": "^3.0.0"
}
},
"shebang-regex": {
- "version": "3.0.0"
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
},
"side-channel": {
- "version": "1.0.6",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
+ "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
"requires": {
- "call-bind": "^1.0.7",
"es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.4",
- "object-inspect": "^1.13.1"
+ "object-inspect": "^1.13.3",
+ "side-channel-list": "^1.0.0",
+ "side-channel-map": "^1.0.1",
+ "side-channel-weakmap": "^1.0.2"
+ }
+ },
+ "side-channel-list": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
+ "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
+ "requires": {
+ "es-errors": "^1.3.0",
+ "object-inspect": "^1.13.3"
+ }
+ },
+ "side-channel-map": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
+ "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
+ "requires": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3"
+ }
+ },
+ "side-channel-weakmap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
+ "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
+ "requires": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3",
+ "side-channel-map": "^1.0.1"
}
},
"signal-exit": {
- "version": "3.0.7"
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
},
"simple-concat": {
"version": "1.0.1",
- "dev": true
+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
+ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="
},
"simple-get": {
"version": "4.0.1",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
+ "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
"requires": {
"decompress-response": "^6.0.0",
"once": "^1.3.1",
@@ -31924,12 +40820,16 @@
},
"simple-swizzle": {
"version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
"requires": {
"is-arrayish": "^0.3.1"
}
},
"sinon": {
"version": "14.0.2",
+ "resolved": "https://registry.npmjs.org/sinon/-/sinon-14.0.2.tgz",
+ "integrity": "sha512-PDpV0ZI3ZCS3pEqx0vpNp6kzPhHrLx72wA0G+ZLaaJjLIYeE0n8INlgaohKuGy7hP0as5tbUd23QWu5U233t+w==",
"dev": true,
"requires": {
"@sinonjs/commons": "^2.0.0",
@@ -31942,10 +40842,14 @@
"dependencies": {
"diff": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz",
+ "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==",
"dev": true
},
"supports-color": {
"version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"requires": {
"has-flag": "^4.0.0"
@@ -31955,6 +40859,8 @@
},
"slice-ansi": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz",
+ "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==",
"dev": true,
"requires": {
"ansi-styles": "^6.0.0",
@@ -31963,23 +40869,82 @@
"dependencies": {
"ansi-styles": {
"version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
"dev": true
}
}
},
"slugify": {
"version": "1.6.6",
+ "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz",
+ "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==",
"dev": true
},
+ "smart-buffer": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
+ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
+ "optional": true
+ },
"smoldot": {
"version": "2.0.22",
+ "resolved": "https://registry.npmjs.org/smoldot/-/smoldot-2.0.22.tgz",
+ "integrity": "sha512-B50vRgTY6v3baYH6uCgL15tfaag5tcS2o/P5q1OiXcKGv1axZDfz2dzzMuIkVpyMR2ug11F6EAtQlmYBQd292g==",
+ "dev": true,
"optional": true,
"requires": {
"ws": "^8.8.1"
}
},
+ "socks": {
+ "version": "2.8.3",
+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz",
+ "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==",
+ "optional": true,
+ "requires": {
+ "ip-address": "^9.0.5",
+ "smart-buffer": "^4.2.0"
+ },
+ "dependencies": {
+ "ip-address": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz",
+ "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==",
+ "optional": true,
+ "requires": {
+ "jsbn": "1.1.0",
+ "sprintf-js": "^1.1.3"
+ }
+ },
+ "sprintf-js": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
+ "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
+ "optional": true
+ }
+ }
+ },
+ "socks-proxy-agent": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz",
+ "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==",
+ "optional": true,
+ "requires": {
+ "agent-base": "^6.0.2",
+ "debug": "^4.3.3",
+ "socks": "^2.6.2"
+ }
+ },
+ "solady": {
+ "version": "0.0.285",
+ "resolved": "https://registry.npmjs.org/solady/-/solady-0.0.285.tgz",
+ "integrity": "sha512-MkY9KFFuhMeTkWU+4wIzBoEkGr1DXdMR98/zGB8S7efg9Wph9Z4d98RRu7c8pRpmRfrSPAYuMKkvauMCpWXStg=="
+ },
"solc": {
"version": "0.8.26",
+ "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.26.tgz",
+ "integrity": "sha512-yiPQNVf5rBFHwN6SIf3TUUvVAFKcQqmSUFeq+fb6pNRCo0ZCgpYOZDi3BVoezCPIAcKrVYd/qXlBLUP9wVrZ9g==",
"requires": {
"command-exists": "^1.2.8",
"commander": "^8.1.0",
@@ -31991,13 +40956,19 @@
},
"dependencies": {
"commander": {
- "version": "8.3.0"
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="
},
"semver": {
- "version": "5.7.2"
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="
},
"tmp": {
"version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
"requires": {
"os-tmpdir": "~1.0.2"
}
@@ -32006,25 +40977,35 @@
},
"sonic-boom": {
"version": "3.8.1",
+ "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.1.tgz",
+ "integrity": "sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==",
"requires": {
"atomic-sleep": "^1.0.0"
}
},
"source-map": {
- "version": "0.6.1"
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
},
"source-map-support": {
"version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
"requires": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
}
},
"spark-md5": {
- "version": "3.0.2"
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.2.tgz",
+ "integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw=="
},
"sparqlalgebrajs": {
"version": "4.3.8",
+ "resolved": "https://registry.npmjs.org/sparqlalgebrajs/-/sparqlalgebrajs-4.3.8.tgz",
+ "integrity": "sha512-Xo1/5icRtVk2N38BrY9NXN8N/ZPjULlns7sDHv0nlcGOsOediBLWVy8LmV+Q90RHvb3atZZbrFy3VqrM4iXciA==",
"requires": {
"@rdfjs/types": "*",
"@types/sparqljs": "^3.1.3",
@@ -32039,12 +41020,16 @@
},
"sparqljs": {
"version": "3.7.3",
+ "resolved": "https://registry.npmjs.org/sparqljs/-/sparqljs-3.7.3.tgz",
+ "integrity": "sha512-FQfHUhfwn5PD9WH6xPU7DhFfXMgqK/XoDrYDVxz/grhw66Il0OjRg3JBgwuEvwHnQt7oSTiKWEiCZCPNaUbqgg==",
"requires": {
"rdf-data-factory": "^1.1.2"
}
},
"sparqljson-parse": {
"version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/sparqljson-parse/-/sparqljson-parse-2.2.0.tgz",
+ "integrity": "sha512-2TfvNvUsaJyWfCrq3ExdDdbF9LBLzIUCricg+D1YCYbbmyTzscgCtRk4KcIyJF178DtfCt4BkKzbKl8IXMHp8w==",
"requires": {
"@bergos/jsonparse": "^1.4.1",
"@rdfjs/types": "*",
@@ -32055,6 +41040,8 @@
},
"sparqljson-to-tree": {
"version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/sparqljson-to-tree/-/sparqljson-to-tree-3.0.2.tgz",
+ "integrity": "sha512-8h/ZEPPBhBlMbgMX1TOumJQku2mLYYdwd/octsDa/bdqdNcMeAcB7S2Qh4SEZ+0pPNed9CBk1d5TEUpwJlcdmw==",
"requires": {
"@rdfjs/types": "*",
"rdf-literal": "^1.3.2",
@@ -32063,6 +41050,8 @@
},
"sparqlxml-parse": {
"version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/sparqlxml-parse/-/sparqlxml-parse-2.1.1.tgz",
+ "integrity": "sha512-71sltShF6gDAzuKWEHNeij7r0Mv5VqRrvJing6W4WHJ12GRe6+t1IRTv6MeqxYN3XJmKevs7B3HCBUo7wceeJQ==",
"requires": {
"@rdfjs/types": "*",
"@rubensworks/saxes": "^6.0.1",
@@ -32074,6 +41063,8 @@
},
"spawn-wrap": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz",
+ "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==",
"dev": true,
"requires": {
"foreground-child": "^2.0.0",
@@ -32085,16 +41076,118 @@
}
},
"split2": {
- "version": "4.2.0"
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
+ "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg=="
},
"sprintf-js": {
- "version": "1.1.2"
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
+ "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug=="
+ },
+ "sqlite": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/sqlite/-/sqlite-5.1.1.tgz",
+ "integrity": "sha512-oBkezXa2hnkfuJwUo44Hl9hS3er+YFtueifoajrgidvqsJRQFpc5fKoAkAor1O5ZnLoa28GBScfHXs8j0K358Q=="
+ },
+ "sqlite3": {
+ "version": "5.1.7",
+ "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.7.tgz",
+ "integrity": "sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==",
+ "requires": {
+ "bindings": "^1.5.0",
+ "node-addon-api": "^7.0.0",
+ "node-gyp": "8.x",
+ "prebuild-install": "^7.1.1",
+ "tar": "^6.1.11"
+ },
+ "dependencies": {
+ "chownr": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="
+ },
+ "fs-minipass": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+ "requires": {
+ "minipass": "^3.0.0"
+ },
+ "dependencies": {
+ "minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ }
+ }
+ },
+ "minipass": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
+ "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ=="
+ },
+ "minizlib": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
+ "requires": {
+ "minipass": "^3.0.0",
+ "yallist": "^4.0.0"
+ },
+ "dependencies": {
+ "minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ }
+ }
+ },
+ "mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
+ },
+ "node-addon-api": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
+ "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ=="
+ },
+ "tar": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz",
+ "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==",
+ "requires": {
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "minipass": "^5.0.0",
+ "minizlib": "^2.1.1",
+ "mkdirp": "^1.0.3",
+ "yallist": "^4.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ }
+ }
},
"sqlstring": {
- "version": "2.3.3"
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz",
+ "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg=="
},
"sshpk": {
"version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz",
+ "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==",
"dev": true,
"requires": {
"asn1": "~0.2.3",
@@ -32110,61 +41203,115 @@
"dependencies": {
"jsbn": {
"version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==",
"dev": true
},
"tweetnacl": {
"version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==",
"dev": true
}
}
},
+ "ssri": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
+ "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==",
+ "optional": true,
+ "requires": {
+ "minipass": "^3.1.1"
+ },
+ "dependencies": {
+ "minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "optional": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "optional": true
+ }
+ }
+ },
"stack-trace": {
- "version": "0.0.10"
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
+ "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg=="
},
"stackframe": {
"version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz",
+ "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==",
"dev": true
},
"stacktrace-parser": {
"version": "0.1.10",
+ "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz",
+ "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==",
"requires": {
"type-fest": "^0.7.1"
},
"dependencies": {
"type-fest": {
- "version": "0.7.1"
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz",
+ "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg=="
}
}
},
"statuses": {
- "version": "2.0.1"
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
},
"stream-to-it": {
"version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/stream-to-it/-/stream-to-it-0.2.4.tgz",
+ "integrity": "sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ==",
"requires": {
"get-iterator": "^1.0.2"
}
},
"stream-to-string": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/stream-to-string/-/stream-to-string-1.2.1.tgz",
+ "integrity": "sha512-WsvTDNF8UYs369Yko3pcdTducQtYpzEZeOV7cTuReyFvOoA9S/DLJ6sYK+xPafSPHhUMpaxiljKYnT6JSFztIA==",
"requires": {
"promise-polyfill": "^1.1.6"
}
},
"streamify-array": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/streamify-array/-/streamify-array-1.0.1.tgz",
+ "integrity": "sha512-ZnswaBcC6B1bhPLSQOlC6CdaDUSzU0wr2lvvHpbHNms8V7+DLd8uEAzDAWpsjxbFkijBHhuObFO/qqu52DZUMA=="
},
"streamify-string": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/streamify-string/-/streamify-string-1.0.1.tgz",
+ "integrity": "sha512-RXvBglotrvSIuQQ7oC55pdV40wZ/17gTb68ipMC4LA0SqMN4Sqfsf31Dpei7qXpYqZQ8ueVnPglUvtep3tlhqw=="
},
"streaming-iterables": {
- "version": "6.2.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=="
},
"streamsearch": {
- "version": "1.1.0"
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
+ "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg=="
},
"streamx": {
- "version": "2.21.0",
+ "version": "2.21.1",
+ "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.21.1.tgz",
+ "integrity": "sha512-PhP9wUnFLa+91CPy3N6tiQsK+gnYyUNuk15S3YG/zjYE7RuPeCjJngqnzpC31ow0lzBHQ+QGO4cNJnd0djYUsw==",
"dev": true,
"requires": {
"bare-events": "^2.2.0",
@@ -32175,19 +41322,27 @@
},
"strict-uri-encode": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+ "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==",
"dev": true
},
"string_decoder": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"requires": {
"safe-buffer": "~5.2.0"
}
},
"string-argv": {
- "version": "0.3.2"
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz",
+ "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q=="
},
"string-width": {
"version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"requires": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
@@ -32195,15 +41350,21 @@
},
"dependencies": {
"emoji-regex": {
- "version": "8.0.0"
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
"is-fullwidth-code-point": {
- "version": "3.0.0"
+ "version": "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=="
}
}
},
"string.prototype.includes": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz",
+ "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==",
"dev": true,
"peer": true,
"requires": {
@@ -32214,6 +41375,8 @@
},
"string.prototype.matchall": {
"version": "4.0.11",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz",
+ "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==",
"dev": true,
"peer": true,
"requires": {
@@ -32233,6 +41396,8 @@
},
"string.prototype.repeat": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz",
+ "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==",
"dev": true,
"peer": true,
"requires": {
@@ -32241,28 +41406,38 @@
}
},
"string.prototype.trim": {
- "version": "1.2.9",
+ "version": "1.2.10",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz",
+ "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==",
"dev": true,
"peer": true,
"requires": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.2",
+ "define-data-property": "^1.1.4",
"define-properties": "^1.2.1",
- "es-abstract": "^1.23.0",
- "es-object-atoms": "^1.0.0"
+ "es-abstract": "^1.23.5",
+ "es-object-atoms": "^1.0.0",
+ "has-property-descriptors": "^1.0.2"
}
},
"string.prototype.trimend": {
- "version": "1.0.8",
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz",
+ "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==",
"dev": true,
"peer": true,
"requires": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.2",
"define-properties": "^1.2.1",
"es-object-atoms": "^1.0.0"
}
},
"string.prototype.trimstart": {
"version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
+ "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
"dev": true,
"peer": true,
"requires": {
@@ -32273,42 +41448,60 @@
},
"strip-ansi": {
"version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"requires": {
"ansi-regex": "^5.0.1"
},
"dependencies": {
"ansi-regex": {
- "version": "5.0.1"
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
}
}
},
"strip-bom": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
+ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
"dev": true
},
"strip-final-newline": {
- "version": "2.0.0"
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="
},
"strip-hex-prefix": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz",
+ "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==",
"requires": {
"is-hex-prefixed": "1.0.0"
}
},
"strip-json-comments": {
- "version": "3.1.1"
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="
},
"supports-color": {
"version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
"requires": {
"has-flag": "^4.0.0"
}
},
"supports-preserve-symlinks-flag": {
- "version": "1.0.0"
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="
},
"swarm-js": {
"version": "0.1.42",
+ "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz",
+ "integrity": "sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==",
"dev": true,
"requires": {
"bluebird": "^3.5.0",
@@ -32326,6 +41519,8 @@
"dependencies": {
"@szmarczak/http-timer": {
"version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz",
+ "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==",
"dev": true,
"requires": {
"defer-to-connect": "^2.0.0"
@@ -32333,10 +41528,14 @@
},
"bluebird": {
"version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
"dev": true
},
"buffer": {
"version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
"dev": true,
"requires": {
"base64-js": "^1.3.1",
@@ -32345,10 +41544,14 @@
},
"cacheable-lookup": {
"version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz",
+ "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==",
"dev": true
},
"fs-extra": {
"version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
+ "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==",
"dev": true,
"requires": {
"graceful-fs": "^4.1.2",
@@ -32358,6 +41561,8 @@
},
"got": {
"version": "11.8.6",
+ "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz",
+ "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==",
"dev": true,
"requires": {
"@sindresorhus/is": "^4.0.0",
@@ -32375,6 +41580,8 @@
},
"http2-wrapper": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz",
+ "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==",
"dev": true,
"requires": {
"quick-lru": "^5.1.1",
@@ -32383,6 +41590,8 @@
},
"jsonfile": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
"dev": true,
"requires": {
"graceful-fs": "^4.1.6"
@@ -32390,20 +41599,28 @@
},
"lowercase-keys": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
"dev": true
},
"universalify": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
"dev": true
}
}
},
"symbol-tree": {
"version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
+ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
"dev": true
},
"tar": {
"version": "4.4.19",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz",
+ "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==",
"dev": true,
"requires": {
"chownr": "^1.1.4",
@@ -32417,6 +41634,8 @@
},
"tar-fs": {
"version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.6.tgz",
+ "integrity": "sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==",
"dev": true,
"requires": {
"bare-fs": "^2.1.1",
@@ -32427,6 +41646,8 @@
},
"tar-stream": {
"version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
+ "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==",
"dev": true,
"requires": {
"b4a": "^1.6.4",
@@ -32436,6 +41657,8 @@
},
"test-exclude": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
"dev": true,
"requires": {
"@istanbuljs/schema": "^0.1.2",
@@ -32445,19 +41668,27 @@
},
"text-decoder": {
"version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.2.tgz",
+ "integrity": "sha512-/MDslo7ZyWTA2vnk1j7XoDVfXsGk3tp+zFEJHJGm0UjIlQifonVFwlVbQDFh8KJzTBnT8ie115TYqir6bclddA==",
"dev": true,
"requires": {
"b4a": "^1.6.4"
}
},
"text-hex": {
- "version": "1.0.0"
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz",
+ "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg=="
},
"text-table": {
- "version": "0.2.0"
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
},
"thenify": {
"version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
+ "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
"dev": true,
"requires": {
"any-promise": "^1.0.0"
@@ -32465,6 +41696,8 @@
},
"thenify-all": {
"version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
+ "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
"dev": true,
"requires": {
"thenify": ">= 3.1.0 < 4"
@@ -32472,28 +41705,41 @@
},
"thread-stream": {
"version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.7.0.tgz",
+ "integrity": "sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==",
"requires": {
"real-require": "^0.2.0"
}
},
"through": {
- "version": "2.3.8"
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
},
"timed-out": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
+ "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==",
"dev": true
},
"timeout-abort-controller": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-3.0.0.tgz",
+ "integrity": "sha512-O3e+2B8BKrQxU2YRyEjC/2yFdb33slI22WRdUaDx6rvysfi9anloNZyR2q0l6LnePo5qH7gSM7uZtvvwZbc2yA==",
"requires": {
"retimer": "^3.0.0"
}
},
"tiny-emitter": {
- "version": "2.1.0"
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
+ "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==",
+ "dev": true
},
"tinyglobby": {
"version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.10.tgz",
+ "integrity": "sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==",
"requires": {
"fdir": "^6.4.2",
"picomatch": "^4.0.2"
@@ -32501,38 +41747,56 @@
"dependencies": {
"fdir": {
"version": "6.4.2",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz",
+ "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==",
"requires": {}
},
"picomatch": {
- "version": "4.0.2"
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg=="
}
}
},
"tmp": {
"version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz",
+ "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==",
"dev": true
},
"to-regex-range": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"requires": {
"is-number": "^7.0.0"
}
},
"toidentifier": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
},
"toobusy-js": {
- "version": "0.5.1"
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/toobusy-js/-/toobusy-js-0.5.1.tgz",
+ "integrity": "sha512-GiCux/c8G2TV0FTDgtxnXOxmSAndaI/9b1YxT14CqyeBDtTZAcJLx9KlXT3qECi8D0XCc78T4sN/7gWtjRyCaA=="
},
"toposort": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz",
+ "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==",
"dev": true
},
"toposort-class": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toposort-class/-/toposort-class-1.0.1.tgz",
+ "integrity": "sha512-OsLcGGbYF3rMjPUf8oKktyvCiUxSbqMMS39m33MAjLTC1DVIH6x3WSt63/M77ihI09+Sdfk1AXvfhCEeUmC7mg=="
},
"tough-cookie": {
"version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz",
+ "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==",
"dev": true,
"requires": {
"psl": "^1.1.33",
@@ -32543,34 +41807,48 @@
"dependencies": {
"universalify": {
"version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
+ "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
"dev": true
}
}
},
"tr46": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
+ "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
"dev": true,
"requires": {
"punycode": "^2.1.1"
}
},
"traverse": {
- "version": "0.3.9"
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz",
+ "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ=="
},
"treeify": {
- "version": "1.1.0"
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz",
+ "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A=="
},
"triple-beam": {
- "version": "1.4.1"
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz",
+ "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg=="
},
"truncate-utf8-bytes": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
+ "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==",
"requires": {
"utf8-byte-length": "^1.0.1"
}
},
"ts-node": {
"version": "10.9.2",
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
+ "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
"requires": {
"@cspotcode/source-map-support": "^0.8.0",
"@tsconfig/node10": "^1.0.7",
@@ -32589,6 +41867,8 @@
"dependencies": {
"acorn-walk": {
"version": "8.3.4",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz",
+ "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==",
"requires": {
"acorn": "^8.11.0"
}
@@ -32597,6 +41877,8 @@
},
"tsconfig-paths": {
"version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
+ "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
"dev": true,
"peer": true,
"requires": {
@@ -32608,6 +41890,8 @@
"dependencies": {
"json5": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true,
"peer": true,
"requires": {
@@ -32616,48 +41900,69 @@
},
"strip-bom": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
"dev": true,
"peer": true
}
}
},
"tslib": {
- "version": "2.8.1"
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
},
"tsort": {
- "version": "0.0.1"
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz",
+ "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw=="
},
"tunnel-agent": {
"version": "0.6.0",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
"requires": {
"safe-buffer": "^5.0.1"
}
},
"tweetnacl": {
- "version": "1.0.3"
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
+ "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="
},
"tweetnacl-util": {
- "version": "0.15.1"
+ "version": "0.15.1",
+ "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz",
+ "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw=="
},
"type": {
- "version": "2.7.3"
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz",
+ "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ=="
},
"type-check": {
"version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
"requires": {
"prelude-ls": "^1.2.1"
}
},
"type-detect": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz",
+ "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==",
"dev": true
},
"type-fest": {
- "version": "0.20.2"
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
},
"type-is": {
"version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
"requires": {
"media-typer": "0.3.0",
"mime-types": "~2.1.24"
@@ -32665,6 +41970,8 @@
},
"typed-array-buffer": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==",
"dev": true,
"peer": true,
"requires": {
@@ -32675,6 +41982,8 @@
},
"typed-array-byte-length": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz",
+ "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==",
"dev": true,
"peer": true,
"requires": {
@@ -32687,6 +41996,8 @@
},
"typed-array-byte-offset": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.3.tgz",
+ "integrity": "sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==",
"dev": true,
"peer": true,
"requires": {
@@ -32701,6 +42012,8 @@
},
"typed-array-length": {
"version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz",
+ "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==",
"dev": true,
"peer": true,
"requires": {
@@ -32713,29 +42026,42 @@
}
},
"typed-function": {
- "version": "2.1.0"
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/typed-function/-/typed-function-2.1.0.tgz",
+ "integrity": "sha512-bctQIOqx2iVbWGDGPWwIm18QScpu2XRmkC19D8rQGFsjKSgteq/o1hTZvIG/wuDq8fanpBDrLkLq+aEN/6y5XQ==",
+ "dev": true
},
"typedarray-to-buffer": {
"version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
+ "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
"requires": {
"is-typedarray": "^1.0.0"
}
},
"typescript": {
- "version": "4.9.5"
+ "version": "4.9.5",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
+ "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g=="
},
"uint8arrays": {
"version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz",
+ "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==",
"requires": {
"multiformats": "^9.4.2"
}
},
"ultron": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
+ "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==",
"dev": true
},
"umzug": {
"version": "3.8.2",
+ "resolved": "https://registry.npmjs.org/umzug/-/umzug-3.8.2.tgz",
+ "integrity": "sha512-BEWEF8OJjTYVC56GjELeHl/1XjFejrD7aHzn+HldRJTx+pL1siBrKHZC8n4K/xL3bEzVA9o++qD1tK2CpZu4KA==",
"requires": {
"@rushstack/ts-command-line": "^4.12.2",
"emittery": "^0.13.0",
@@ -32745,12 +42071,16 @@
},
"dependencies": {
"type-fest": {
- "version": "4.30.0"
+ "version": "4.30.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.30.1.tgz",
+ "integrity": "sha512-ojFL7eDMX2NF0xMbDwPZJ8sb7ckqtlAi1GsmgsFXvErT9kFTk1r0DuQKvrCh73M6D4nngeHJmvogF9OluXs7Hw=="
}
}
},
"unbox-primitive": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
"dev": true,
"peer": true,
"requires": {
@@ -32762,24 +42092,54 @@
},
"undici": {
"version": "5.28.4",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz",
+ "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==",
"requires": {
"@fastify/busboy": "^2.0.0"
}
},
"undici-types": {
- "version": "6.20.0"
+ "version": "6.20.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
+ "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg=="
+ },
+ "unique-filename": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
+ "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
+ "optional": true,
+ "requires": {
+ "unique-slug": "^2.0.0"
+ }
+ },
+ "unique-slug": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
+ "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
+ "optional": true,
+ "requires": {
+ "imurmurhash": "^0.1.4"
+ }
},
"universalify": {
- "version": "2.0.1"
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="
},
"unordered-array-remove": {
- "version": "1.0.2"
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz",
+ "integrity": "sha512-45YsfD6svkgaCBNyvD+dFHm4qFX9g3wRSIVgWVPtm2OCnphvPxzJoe20ATsiNpNJrmzHifnxm+BN5F7gFT/4gw=="
},
"unpipe": {
- "version": "1.0.0"
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="
},
"unzipper": {
"version": "0.10.14",
+ "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.14.tgz",
+ "integrity": "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==",
"requires": {
"big-integer": "^1.6.17",
"binary": "~0.3.0",
@@ -32794,10 +42154,14 @@
},
"dependencies": {
"isarray": {
- "version": "1.0.0"
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
},
"readable-stream": {
"version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -32809,10 +42173,14 @@
}
},
"safe-buffer": {
- "version": "5.1.2"
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"string_decoder": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"requires": {
"safe-buffer": "~5.1.0"
}
@@ -32821,6 +42189,8 @@
},
"update-browserslist-db": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz",
+ "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==",
"dev": true,
"requires": {
"escalade": "^3.2.0",
@@ -32829,6 +42199,8 @@
},
"upper-case-first": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz",
+ "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==",
"dev": true,
"requires": {
"tslib": "^2.0.3"
@@ -32836,15 +42208,21 @@
},
"uri-js": {
"version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"requires": {
"punycode": "^2.1.0"
}
},
"uritemplate": {
- "version": "0.3.4"
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/uritemplate/-/uritemplate-0.3.4.tgz",
+ "integrity": "sha512-enADBvHfhjrwxFMTVWeIIYz51SZ91uC6o2MR/NQTVljJB6HTZ8eQL3Q7JBj3RxNISA14MOwJaU3vpf5R6dyxHA=="
},
"url-parse": {
"version": "1.5.10",
+ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
+ "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
"dev": true,
"requires": {
"querystringify": "^2.1.1",
@@ -32853,10 +42231,14 @@
},
"url-set-query": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz",
+ "integrity": "sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==",
"dev": true
},
"ursa-optional": {
"version": "0.10.2",
+ "resolved": "https://registry.npmjs.org/ursa-optional/-/ursa-optional-0.10.2.tgz",
+ "integrity": "sha512-TKdwuLboBn7M34RcvVTuQyhvrA8gYKapuVdm0nBP0mnBc7oECOfUQZrY91cefL3/nm64ZyrejSRrhTVdX7NG/A==",
"requires": {
"bindings": "^1.5.0",
"nan": "^2.14.2"
@@ -32864,18 +42246,26 @@
},
"utf-8-validate": {
"version": "5.0.10",
+ "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz",
+ "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==",
"requires": {
"node-gyp-build": "^4.3.0"
}
},
"utf8": {
- "version": "3.0.0"
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz",
+ "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ=="
},
"utf8-byte-length": {
- "version": "1.0.5"
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.5.tgz",
+ "integrity": "sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA=="
},
"util": {
"version": "0.12.5",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
+ "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
"dev": true,
"requires": {
"inherits": "^2.0.3",
@@ -32887,34 +42277,54 @@
},
"util-arity": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/util-arity/-/util-arity-1.1.0.tgz",
+ "integrity": "sha512-kkyIsXKwemfSy8ZEoaIz06ApApnWsk5hQO0vLjZS6UkBiGiW++Jsyb8vSBoc0WKlffGoGs5yYy/j5pp8zckrFA==",
"dev": true
},
"util-deprecate": {
- "version": "1.0.2"
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
"utils-merge": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="
},
"uuid": {
- "version": "8.3.2"
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
},
"v8-compile-cache-lib": {
- "version": "3.0.1"
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
+ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg=="
},
"validate-iri": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/validate-iri/-/validate-iri-1.0.1.tgz",
+ "integrity": "sha512-gLXi7351CoyVVQw8XE5sgpYawRKatxE7kj/xmCxXOZS1kMdtcqC0ILIqLuVEVnAUQSL/evOGG3eQ+8VgbdnstA=="
},
"validator": {
- "version": "13.12.0"
+ "version": "13.12.0",
+ "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz",
+ "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg=="
},
"varint": {
- "version": "6.0.0"
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz",
+ "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg=="
},
"vary": {
- "version": "1.1.2"
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="
},
"verror": {
"version": "1.10.1",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz",
+ "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==",
"dev": true,
"requires": {
"assert-plus": "^1.0.0",
@@ -32924,6 +42334,8 @@
},
"w3c-hr-time": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
+ "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==",
"dev": true,
"requires": {
"browser-process-hrtime": "^1.0.0"
@@ -32931,19 +42343,27 @@
},
"w3c-xmlserializer": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz",
+ "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==",
"dev": true,
"requires": {
"xml-name-validator": "^3.0.0"
}
},
"web-streams-polyfill": {
- "version": "3.3.3"
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz",
+ "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw=="
},
"web-streams-ponyfill": {
- "version": "1.4.2"
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/web-streams-ponyfill/-/web-streams-ponyfill-1.4.2.tgz",
+ "integrity": "sha512-LCHW+fE2UBJ2vjhqJujqmoxh1ytEDEr0dPO3CabMdMDJPKmsaxzS90V1Ar6LtNE5VHLqxR4YMEj1i4lzMAccIA=="
},
"web3": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.4.tgz",
+ "integrity": "sha512-kgJvQZjkmjOEKimx/tJQsqWfRDPTTcBfYPa9XletxuHLpHcXdx67w8EFn5AW3eVxCutE9dTVHgGa9VYe8vgsEA==",
"dev": true,
"requires": {
"web3-bzz": "1.10.4",
@@ -32957,6 +42377,8 @@
},
"web3-bzz": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.4.tgz",
+ "integrity": "sha512-ZZ/X4sJ0Uh2teU9lAGNS8EjveEppoHNQiKlOXAjedsrdWuaMErBPdLQjXfcrYvN6WM6Su9PMsAxf3FXXZ+HwQw==",
"dev": true,
"requires": {
"@types/node": "^12.12.6",
@@ -32966,12 +42388,16 @@
"dependencies": {
"@types/node": {
"version": "12.20.55",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
+ "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==",
"dev": true
}
}
},
"web3-core": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.4.tgz",
+ "integrity": "sha512-B6elffYm81MYZDTrat7aEhnhdtVE3lDBUZft16Z8awYMZYJDbnykEbJVS+l3mnA7AQTnSDr/1MjWofGDLBJPww==",
"dev": true,
"requires": {
"@types/bn.js": "^5.1.1",
@@ -32985,12 +42411,16 @@
"dependencies": {
"@types/node": {
"version": "12.20.55",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
+ "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==",
"dev": true
}
}
},
"web3-core-helpers": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz",
+ "integrity": "sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==",
"dev": true,
"requires": {
"web3-eth-iban": "1.10.4",
@@ -32999,6 +42429,8 @@
},
"web3-core-method": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.4.tgz",
+ "integrity": "sha512-uZTb7flr+Xl6LaDsyTeE2L1TylokCJwTDrIVfIfnrGmnwLc6bmTWCCrm71sSrQ0hqs6vp/MKbQYIYqUN0J8WyA==",
"dev": true,
"requires": {
"@ethersproject/transactions": "^5.6.2",
@@ -33010,6 +42442,8 @@
},
"web3-core-promievent": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.4.tgz",
+ "integrity": "sha512-2de5WnJQ72YcIhYwV/jHLc4/cWJnznuoGTJGD29ncFQHAfwW/MItHFSVKPPA5v8AhJe+r6y4Y12EKvZKjQVBvQ==",
"dev": true,
"requires": {
"eventemitter3": "4.0.4"
@@ -33017,12 +42451,16 @@
"dependencies": {
"eventemitter3": {
"version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
+ "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==",
"dev": true
}
}
},
"web3-core-requestmanager": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.4.tgz",
+ "integrity": "sha512-vqP6pKH8RrhT/2MoaU+DY/OsYK9h7HmEBNCdoMj+4ZwujQtw/Mq2JifjwsJ7gits7Q+HWJwx8q6WmQoVZAWugg==",
"dev": true,
"requires": {
"util": "^0.12.5",
@@ -33034,6 +42472,8 @@
},
"web3-core-subscriptions": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.4.tgz",
+ "integrity": "sha512-o0lSQo/N/f7/L76C0HV63+S54loXiE9fUPfHFcTtpJRQNDBVsSDdWRdePbWwR206XlsBqD5VHApck1//jEafTw==",
"dev": true,
"requires": {
"eventemitter3": "4.0.4",
@@ -33042,12 +42482,16 @@
"dependencies": {
"eventemitter3": {
"version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
+ "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==",
"dev": true
}
}
},
"web3-eth": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.4.tgz",
+ "integrity": "sha512-Sql2kYKmgt+T/cgvg7b9ce24uLS7xbFrxE4kuuor1zSCGrjhTJ5rRNG8gTJUkAJGKJc7KgnWmgW+cOfMBPUDSA==",
"dev": true,
"requires": {
"web3-core": "1.10.4",
@@ -33066,6 +42510,8 @@
},
"web3-eth-abi": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.4.tgz",
+ "integrity": "sha512-cZ0q65eJIkd/jyOlQPDjr8X4fU6CRL1eWgdLwbWEpo++MPU/2P4PFk5ZLAdye9T5Sdp+MomePPJ/gHjLMj2VfQ==",
"dev": true,
"requires": {
"@ethersproject/abi": "^5.6.3",
@@ -33074,6 +42520,8 @@
},
"web3-eth-accounts": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.4.tgz",
+ "integrity": "sha512-ysy5sVTg9snYS7tJjxVoQAH6DTOTkRGR8emEVCWNGLGiB9txj+qDvSeT0izjurS/g7D5xlMAgrEHLK1Vi6I3yg==",
"dev": true,
"requires": {
"@ethereumjs/common": "2.6.5",
@@ -33090,10 +42538,14 @@
"dependencies": {
"bn.js": {
"version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz",
+ "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==",
"dev": true
},
"eth-lib": {
"version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
"dev": true,
"requires": {
"bn.js": "^4.11.6",
@@ -33103,12 +42555,16 @@
},
"uuid": {
"version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
+ "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
"dev": true
}
}
},
"web3-eth-contract": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.4.tgz",
+ "integrity": "sha512-Q8PfolOJ4eV9TvnTj1TGdZ4RarpSLmHnUnzVxZ/6/NiTfe4maJz99R0ISgwZkntLhLRtw0C7LRJuklzGYCNN3A==",
"dev": true,
"requires": {
"@types/bn.js": "^5.1.1",
@@ -33123,6 +42579,8 @@
},
"web3-eth-ens": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.4.tgz",
+ "integrity": "sha512-LLrvxuFeVooRVZ9e5T6OWKVflHPFgrVjJ/jtisRWcmI7KN/b64+D/wJzXqgmp6CNsMQcE7rpmf4CQmJCrTdsgg==",
"dev": true,
"requires": {
"content-hash": "^2.5.2",
@@ -33137,6 +42595,8 @@
},
"web3-eth-iban": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz",
+ "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==",
"dev": true,
"requires": {
"bn.js": "^5.2.1",
@@ -33145,6 +42605,8 @@
},
"web3-eth-personal": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.4.tgz",
+ "integrity": "sha512-BRa/hs6jU1hKHz+AC/YkM71RP3f0Yci1dPk4paOic53R4ZZG4MgwKRkJhgt3/GPuPliwS46f/i5A7fEGBT4F9w==",
"dev": true,
"requires": {
"@types/node": "^12.12.6",
@@ -33157,12 +42619,16 @@
"dependencies": {
"@types/node": {
"version": "12.20.55",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
+ "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==",
"dev": true
}
}
},
"web3-net": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.4.tgz",
+ "integrity": "sha512-mKINnhOOnZ4koA+yV2OT5s5ztVjIx7IY9a03w6s+yao/BUn+Luuty0/keNemZxTr1E8Ehvtn28vbOtW7Ids+Ow==",
"dev": true,
"requires": {
"web3-core": "1.10.4",
@@ -33172,6 +42638,8 @@
},
"web3-providers-http": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.4.tgz",
+ "integrity": "sha512-m2P5Idc8hdiO0l60O6DSCPw0kw64Zgi0pMjbEFRmxKIck2Py57RQMu4bxvkxJwkF06SlGaEQF8rFZBmuX7aagQ==",
"dev": true,
"requires": {
"abortcontroller-polyfill": "^1.7.5",
@@ -33182,6 +42650,8 @@
},
"web3-providers-ipc": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.4.tgz",
+ "integrity": "sha512-YRF/bpQk9z3WwjT+A6FI/GmWRCASgd+gC0si7f9zbBWLXjwzYAKG73bQBaFRAHex1hl4CVcM5WUMaQXf3Opeuw==",
"dev": true,
"requires": {
"oboe": "2.1.5",
@@ -33190,6 +42660,8 @@
},
"web3-providers-ws": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.4.tgz",
+ "integrity": "sha512-j3FBMifyuFFmUIPVQR4pj+t5ILhAexAui0opgcpu9R5LxQrLRUZxHSnU+YO25UycSOa/NAX8A+qkqZNpcFAlxA==",
"dev": true,
"requires": {
"eventemitter3": "4.0.4",
@@ -33199,12 +42671,16 @@
"dependencies": {
"eventemitter3": {
"version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
+ "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==",
"dev": true
}
}
},
"web3-shh": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.4.tgz",
+ "integrity": "sha512-cOH6iFFM71lCNwSQrC3niqDXagMqrdfFW85hC9PFUrAr3PUrIem8TNstTc3xna2bwZeWG6OBy99xSIhBvyIACw==",
"dev": true,
"requires": {
"web3-core": "1.10.4",
@@ -33215,6 +42691,8 @@
},
"web3-utils": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.4.tgz",
+ "integrity": "sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==",
"requires": {
"@ethereumjs/util": "^8.1.0",
"bn.js": "^5.2.1",
@@ -33227,13 +42705,19 @@
},
"dependencies": {
"@noble/hashes": {
- "version": "1.4.0"
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz",
+ "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg=="
},
"@scure/base": {
- "version": "1.1.9"
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz",
+ "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg=="
},
"@scure/bip32": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz",
+ "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==",
"requires": {
"@noble/curves": "~1.4.0",
"@noble/hashes": "~1.4.0",
@@ -33242,6 +42726,8 @@
},
"@scure/bip39": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz",
+ "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==",
"requires": {
"@noble/hashes": "~1.4.0",
"@scure/base": "~1.1.6"
@@ -33249,6 +42735,8 @@
},
"ethereum-cryptography": {
"version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz",
+ "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==",
"requires": {
"@noble/curves": "1.4.2",
"@noble/hashes": "1.4.0",
@@ -33260,10 +42748,14 @@
},
"webidl-conversions": {
"version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz",
+ "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==",
"dev": true
},
"websocket": {
"version": "1.0.35",
+ "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.35.tgz",
+ "integrity": "sha512-/REy6amwPZl44DDzvRCkaI1q1bIiQB0mEFQLUrhz3z2EK91cp3n72rAjUlrTP0zV22HJIUOVHQGPxhFRjxjt+Q==",
"requires": {
"bufferutil": "^4.0.1",
"debug": "^2.2.0",
@@ -33275,17 +42767,23 @@
"dependencies": {
"debug": {
"version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
}
},
"ms": {
- "version": "2.0.0"
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
}
}
},
"whatwg-encoding": {
"version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",
+ "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==",
"dev": true,
"requires": {
"iconv-lite": "0.4.24"
@@ -33293,6 +42791,8 @@
"dependencies": {
"iconv-lite": {
"version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"dev": true,
"requires": {
"safer-buffer": ">= 2.1.2 < 3"
@@ -33302,10 +42802,14 @@
},
"whatwg-mimetype": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz",
+ "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==",
"dev": true
},
"whatwg-url": {
"version": "8.7.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz",
+ "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==",
"dev": true,
"requires": {
"lodash": "^4.7.0",
@@ -33315,18 +42819,24 @@
},
"wherearewe": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wherearewe/-/wherearewe-1.0.2.tgz",
+ "integrity": "sha512-HyLZ7n1Yox+w1qWaFEgP/sMs5D7ka2UXmoVNaY0XzbEHLGljo4ScBchYm6cWRYNO33tmFX3Mgg4BiZkDOjihyw==",
"requires": {
"is-electron": "^2.2.0"
}
},
"which": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"requires": {
"isexe": "^2.0.0"
}
},
"which-boxed-primitive": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.0.tgz",
+ "integrity": "sha512-Ei7Miu/AXe2JJ4iNF5j/UphAgRoma4trE6PtisM09bPygb3egMH3YLW/befsWb1A1AxvNSFidOFTB18XtnIIng==",
"dev": true,
"peer": true,
"requires": {
@@ -33338,27 +42848,31 @@
}
},
"which-builtin-type": {
- "version": "1.2.0",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz",
+ "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==",
"dev": true,
"peer": true,
"requires": {
- "call-bind": "^1.0.7",
+ "call-bound": "^1.0.2",
"function.prototype.name": "^1.1.6",
"has-tostringtag": "^1.0.2",
"is-async-function": "^2.0.0",
- "is-date-object": "^1.0.5",
+ "is-date-object": "^1.1.0",
"is-finalizationregistry": "^1.1.0",
"is-generator-function": "^1.0.10",
- "is-regex": "^1.1.4",
+ "is-regex": "^1.2.1",
"is-weakref": "^1.0.2",
"isarray": "^2.0.5",
- "which-boxed-primitive": "^1.0.2",
+ "which-boxed-primitive": "^1.1.0",
"which-collection": "^1.0.2",
- "which-typed-array": "^1.1.15"
+ "which-typed-array": "^1.1.16"
}
},
"which-collection": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz",
+ "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
"dev": true,
"peer": true,
"requires": {
@@ -33370,10 +42884,14 @@
},
"which-module": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz",
+ "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==",
"dev": true
},
"which-typed-array": {
"version": "1.1.16",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.16.tgz",
+ "integrity": "sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ==",
"dev": true,
"requires": {
"available-typed-arrays": "^1.0.7",
@@ -33383,14 +42901,27 @@
"has-tostringtag": "^1.0.2"
}
},
+ "wide-align": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
+ "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
+ "optional": true,
+ "requires": {
+ "string-width": "^1.0.2 || 2 || 3 || 4"
+ }
+ },
"widest-line": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
+ "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
"requires": {
"string-width": "^4.0.0"
}
},
"winston": {
"version": "3.17.0",
+ "resolved": "https://registry.npmjs.org/winston/-/winston-3.17.0.tgz",
+ "integrity": "sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==",
"requires": {
"@colors/colors": "^1.6.0",
"@dabh/diagnostics": "^2.0.2",
@@ -33406,10 +42937,14 @@
},
"dependencies": {
"@colors/colors": {
- "version": "1.6.0"
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz",
+ "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA=="
},
"readable-stream": {
"version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -33420,6 +42955,8 @@
},
"winston-transport": {
"version": "4.9.0",
+ "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.9.0.tgz",
+ "integrity": "sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==",
"requires": {
"logform": "^2.7.0",
"readable-stream": "^3.6.2",
@@ -33428,6 +42965,8 @@
"dependencies": {
"readable-stream": {
"version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -33438,18 +42977,26 @@
},
"wkx": {
"version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/wkx/-/wkx-0.5.0.tgz",
+ "integrity": "sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==",
"requires": {
"@types/node": "*"
}
},
"word-wrap": {
- "version": "1.2.5"
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="
},
"workerpool": {
- "version": "6.5.1"
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz",
+ "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA=="
},
"wrap-ansi": {
"version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"requires": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
@@ -33457,10 +43004,14 @@
}
},
"wrappy": {
- "version": "1.0.2"
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
},
"write-file-atomic": {
"version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
"dev": true,
"requires": {
"imurmurhash": "^0.1.4",
@@ -33471,10 +43022,14 @@
},
"ws": {
"version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
+ "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
"requires": {}
},
"xhr": {
"version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz",
+ "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==",
"dev": true,
"requires": {
"global": "~4.4.0",
@@ -33485,6 +43040,8 @@
},
"xhr-request": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz",
+ "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==",
"dev": true,
"requires": {
"buffer-to-arraybuffer": "^0.0.5",
@@ -33498,6 +43055,8 @@
"dependencies": {
"decompress-response": {
"version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==",
"dev": true,
"requires": {
"mimic-response": "^1.0.0"
@@ -33505,10 +43064,14 @@
},
"mimic-response": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
"dev": true
},
"simple-get": {
"version": "2.8.2",
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz",
+ "integrity": "sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==",
"dev": true,
"requires": {
"decompress-response": "^3.3.0",
@@ -33520,6 +43083,8 @@
},
"xhr-request-promise": {
"version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz",
+ "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==",
"dev": true,
"requires": {
"xhr-request": "^1.1.0"
@@ -33527,50 +43092,74 @@
},
"xml-name-validator": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
+ "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==",
"dev": true
},
"xml2js": {
"version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz",
+ "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==",
"requires": {
"sax": ">=0.6.0",
"xmlbuilder": "~11.0.0"
},
"dependencies": {
"xmlbuilder": {
- "version": "11.0.1"
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
+ "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="
}
}
},
"xmlbuilder": {
"version": "15.1.1",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz",
+ "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==",
"dev": true
},
"xmlchars": {
- "version": "2.2.0"
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
+ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="
},
"xsalsa20": {
- "version": "1.2.0"
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.2.0.tgz",
+ "integrity": "sha512-FIr/DEeoHfj7ftfylnoFt3rAIRoWXpx2AoDfrT2qD2wtp7Dp+COajvs/Icb7uHqRW9m60f5iXZwdsJJO3kvb7w=="
},
"xtend": {
"version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
"dev": true
},
"y18n": {
- "version": "5.0.8"
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
},
"yaeti": {
- "version": "0.0.6"
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz",
+ "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug=="
},
"yallist": {
"version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
"dev": true
},
"yaml": {
"version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
"dev": true
},
"yargs": {
"version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
"requires": {
"cliui": "^8.0.1",
"escalade": "^3.1.1",
@@ -33582,15 +43171,21 @@
},
"dependencies": {
"yargs-parser": {
- "version": "21.1.1"
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="
}
}
},
"yargs-parser": {
- "version": "20.2.9"
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w=="
},
"yargs-unparser": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
+ "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
"requires": {
"camelcase": "^6.0.0",
"decamelize": "^4.0.0",
@@ -33599,18 +43194,26 @@
},
"dependencies": {
"decamelize": {
- "version": "4.0.0"
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
+ "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ=="
}
}
},
"yn": {
- "version": "3.1.1"
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
+ "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q=="
},
"yocto-queue": {
- "version": "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=="
},
"yup": {
"version": "0.32.11",
+ "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.11.tgz",
+ "integrity": "sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==",
"dev": true,
"requires": {
"@babel/runtime": "^7.15.4",
@@ -33622,8 +43225,19 @@
"toposort": "^2.0.2"
}
},
+ "zksync-ethers": {
+ "version": "5.10.0",
+ "resolved": "https://registry.npmjs.org/zksync-ethers/-/zksync-ethers-5.10.0.tgz",
+ "integrity": "sha512-OAjTGAHF9wbdkRGkj7XZuF/a1Sk/FVbwH4pmLjAKlR7mJ7sQtQhBhrPU2dCc67xLaNvEESPfwil19ES5wooYFg==",
+ "requires": {
+ "ethers": "~5.7.0"
+ }
+ },
"zksync-web3": {
"version": "0.14.4",
+ "resolved": "https://registry.npmjs.org/zksync-web3/-/zksync-web3-0.14.4.tgz",
+ "integrity": "sha512-kYehMD/S6Uhe1g434UnaMN+sBr9nQm23Ywn0EUP5BfQCsbjcr3ORuS68PosZw8xUTu3pac7G6YMSnNHk+fwzvg==",
+ "dev": true,
"requires": {}
}
}
diff --git a/package.json b/package.json
index b8615d65ca..8e3cd5e0a6 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "origintrail_node",
- "version": "6.5.1+hotfix.3",
- "description": "OTNode V6",
+ "version": "8.0.0-sigma.17",
+ "description": "OTNode V8",
"main": "index.js",
"type": "module",
"scripts": {
@@ -33,7 +33,7 @@
},
"keywords": [
"ot-node",
- "v6"
+ "v8"
],
"author": "TraceLabs",
"license": "ISC",
@@ -72,15 +72,16 @@
"@polkadot/keyring": "^10.1.7",
"@polkadot/util": "^10.1.7",
"@polkadot/util-crypto": "^10.1.7",
+ "@questdb/nodejs-client": "^3.0.0",
"app-root-path": "^3.1.0",
- "assertion-tools": "^2.0.2",
+ "assertion-tools": "^8.0.0-gamma.0",
"async": "^3.2.4",
"async-mutex": "^0.3.2",
"awilix": "^7.0.3",
"axios": "^1.6.0",
"cors": "^2.8.5",
"deep-extend": "^0.6.0",
- "dkg-evm-module": "^4.3.3",
+ "dkg-evm-module": "^8.0.0-sigma.3",
"dotenv": "^16.0.1",
"ethers": "^5.7.2",
"express": "^4.18.1",
@@ -101,6 +102,7 @@
"libp2p-mplex": "^0.10.7",
"libp2p-noise": "^4.0.0",
"libp2p-tcp": "^0.17.2",
+ "mcl-wasm": "^1.7.0",
"minimist": "^1.2.7",
"ms": "^2.1.3",
"mysql2": "^3.3.0",
@@ -111,6 +113,8 @@
"rolling-rate-limiter": "^0.2.13",
"semver": "^7.5.2",
"sequelize": "^6.29.0",
+ "sqlite": "^5.1.1",
+ "sqlite3": "^5.1.7",
"timeout-abort-controller": "^3.0.0",
"toobusy-js": "^0.5.1",
"uint8arrays": "^3.1.0",
diff --git a/scripts/copy-assertions.js b/scripts/copy-assertions.js
index a107f6a88b..867655c111 100644
--- a/scripts/copy-assertions.js
+++ b/scripts/copy-assertions.js
@@ -109,7 +109,7 @@ const copyAssertion = async (g) => {
}
try {
- await tripleStoreModuleManager.insertAssertion(
+ await tripleStoreModuleManager.insertKnowledgeCollection(
toImplementation,
toRepository,
g.substring('assertion:'.length),
diff --git a/scripts/set-ask.js b/scripts/set-ask.js
index bb2b8734d6..c93b107717 100644
--- a/scripts/set-ask.js
+++ b/scripts/set-ask.js
@@ -3,7 +3,6 @@ import { ethers } from 'ethers';
import axios from 'axios';
import { createRequire } from 'module';
import {
- NODE_ENVIRONMENTS,
TRANSACTION_POLLING_TIMEOUT_MILLIS,
TRANSACTION_CONFIRMATIONS,
} from '../src/constants/constants.js';
@@ -17,21 +16,10 @@ const argv = require('minimist')(process.argv.slice(1), {
string: ['ask', 'privateKey', 'hubContractAddress', 'gasPriceOracleLink'],
});
-const devEnvironment =
- process.env.NODE_ENV === NODE_ENVIRONMENTS.DEVELOPMENT ||
- process.env.NODE_ENV === NODE_ENVIRONMENTS.TEST;
-
async function getGasPrice(gasPriceOracleLink, hubContractAddress, provider) {
try {
if (!gasPriceOracleLink) {
- if (
- hubContractAddress === '0x6C861Cb69300C34DfeF674F7C00E734e840C29C0' ||
- hubContractAddress === '0x144eDa5cbf8926327cb2cceef168A121F0E4A299' ||
- hubContractAddress === '0xaBfcf2ad1718828E7D3ec20435b0d0b5EAfbDf2c'
- ) {
- return provider.getGasPrice();
- }
- return devEnvironment ? undefined : 8;
+ return provider.getGasPrice();
}
let gasPrice;
const response = await axios.get(gasPriceOracleLink);
@@ -72,7 +60,7 @@ async function setAsk(rpcEndpoint, ask, walletPrivateKey, hubContractAddress, ga
const gasPrice = await getGasPrice(gasPriceOracleLink, hubContractAddress, provider);
const tx = await profile.setAsk(identityId, askWei, {
- gasPrice,
+ gasPrice: gasPrice ?? 8,
gasLimit: 500_000,
});
await provider.waitForTransaction(
diff --git a/scripts/set-stake.js b/scripts/set-stake.js
index cfc4a235d0..c1816b0b9a 100644
--- a/scripts/set-stake.js
+++ b/scripts/set-stake.js
@@ -100,7 +100,7 @@ async function setStake(
TRANSACTION_POLLING_TIMEOUT_MILLIS,
);
// TODO: Add ABI instead of hard-coded function definition
- tx = await stakingContract['addStake(uint72,uint96)'](identityId, stakeWei, {
+ tx = await stakingContract['stake(uint72,uint96)'](identityId, stakeWei, {
gasPrice: gasPrice ? gasPrice * 100 : undefined,
gasLimit: 3_000_000,
});
diff --git a/src/commands/blockchain-event-listener/blockchain-event-listener-command.js b/src/commands/blockchain-event-listener/blockchain-event-listener-command.js
new file mode 100644
index 0000000000..1b38097f50
--- /dev/null
+++ b/src/commands/blockchain-event-listener/blockchain-event-listener-command.js
@@ -0,0 +1,557 @@
+import Command from '../command.js';
+import {
+ CONTRACTS,
+ MONITORED_CONTRACT_EVENTS,
+ CONTRACT_INDEPENDENT_EVENTS,
+ ERROR_TYPE,
+ OPERATION_ID_STATUS,
+ MONITORED_CONTRACTS,
+ MONITORED_EVENTS,
+ RETRY_DELAY_READ_CACHED_PUBLISH_DATA,
+ MAX_RETRIES_READ_CACHED_PUBLISH_DATA,
+} from '../../constants/constants.js';
+
+class BlockchainEventListenerCommand extends Command {
+ constructor(ctx) {
+ super(ctx);
+ this.blockchainModuleManager = ctx.blockchainModuleManager;
+ this.repositoryModuleManager = ctx.repositoryModuleManager;
+ this.ualService = ctx.ualService;
+ this.blockchainEventsService = ctx.blockchainEventsService;
+ this.fileService = ctx.fileService;
+ this.operationIdService = ctx.operationIdService;
+ this.commandExecutor = ctx.commandExecutor;
+
+ this.invalidatedContracts = new Set();
+
+ this.errorType = ERROR_TYPE.BLOCKCHAIN_EVENT_LISTENER_ERROR;
+ }
+
+ async execute(command) {
+ const { blockchainId } = command.data;
+
+ const repositoryTransaction = await this.repositoryModuleManager.transaction();
+
+ try {
+ await this.fetchAndHandleBlockchainEvents(blockchainId, repositoryTransaction);
+ await repositoryTransaction.commit();
+ } catch (e) {
+ this.logger.error(
+ `Failed to fetch and process blockchain events for blockchain: ${blockchainId}. Error: ${e}`,
+ );
+ await repositoryTransaction.rollback();
+
+ return Command.repeat();
+ }
+
+ await this.repositoryModuleManager.markAllBlockchainEventsAsProcessed(blockchainId);
+
+ return Command.empty();
+ }
+
+ async fetchAndHandleBlockchainEvents(blockchainId, repositoryTransaction) {
+ this.currentBlock = (await this.blockchainEventsService.getBlock(blockchainId)).number - 2;
+ const lastCheckedBlockRecord = await this.repositoryModuleManager.getLastCheckedBlock(
+ blockchainId,
+ { transaction: repositoryTransaction },
+ );
+
+ const { events: newEvents, eventsMissed } =
+ await this.blockchainEventsService.getPastEvents(
+ blockchainId,
+ MONITORED_CONTRACTS,
+ MONITORED_EVENTS,
+ lastCheckedBlockRecord?.lastCheckedBlock ?? 0,
+ this.currentBlock,
+ );
+
+ if (eventsMissed) {
+ // TODO: Add some logic for missed events in the future
+ }
+
+ if (newEvents.length !== 0) {
+ this.logger.trace(
+ `Storing ${newEvents.length} new events for blockchain ${blockchainId} in the database.`,
+ );
+ await this.repositoryModuleManager.insertBlockchainEvents(newEvents, {
+ transaction: repositoryTransaction,
+ });
+ }
+
+ await this.repositoryModuleManager.updateLastCheckedBlock(
+ blockchainId,
+ this.currentBlock,
+ Date.now(),
+ { transaction: repositoryTransaction },
+ );
+
+ const unprocessedEvents =
+ await this.repositoryModuleManager.getAllUnprocessedBlockchainEvents(
+ blockchainId,
+ MONITORED_EVENTS,
+ { transaction: repositoryTransaction },
+ );
+
+ if (unprocessedEvents.length > 0) {
+ this.logger.trace(
+ `Handling ${unprocessedEvents.length} unprocessed blockchain events.`,
+ );
+ }
+
+ this.independentEvents = [];
+ this.dependentEvents = [];
+ for (const event of unprocessedEvents) {
+ if (this.isIndependentEvent(event.contract, event.event)) {
+ this.independentEvents.push(event);
+ } else {
+ this.dependentEvents.push(event);
+ }
+ }
+
+ this.dependentEvents.sort((a, b) => {
+ if (a.blockNumber !== b.blockNumber) {
+ return a.blockNumber - b.blockNumber;
+ }
+ if (a.transactionIndex !== b.transactionIndex) {
+ return a.transactionIndex - b.transactionIndex;
+ }
+ return a.logIndex - b.logIndex;
+ });
+
+ await Promise.all([
+ this.processIndependentEvents(repositoryTransaction),
+ this.processDependentEvents(repositoryTransaction),
+ ]);
+ }
+
+ isIndependentEvent(contractName, eventName) {
+ const contractIndependentEvents = CONTRACT_INDEPENDENT_EVENTS[contractName] || [];
+ return contractIndependentEvents.includes(eventName);
+ }
+
+ async processIndependentEvents(repositoryTransaction) {
+ await Promise.all(
+ this.independentEvents.map((event) => this.processEvent(event, repositoryTransaction)),
+ );
+ }
+
+ async processDependentEvents(repositoryTransaction) {
+ let index = 0;
+
+ while (index < this.dependentEvents.length) {
+ const event = this.dependentEvents[index];
+
+ // Step 1: Handle invalidated contracts
+ if (this.invalidatedContracts.has(event.contractAddress)) {
+ this.logger.info(
+ `Skipping event ${event.event} for blockchain: ${event.blockchain}, ` +
+ `invalidated contract: ${event.contract} (${event.contractAddress})`,
+ );
+
+ this.dependentEvents.splice(index, 1); // Remove the invalidated event
+ continue; // Restart the loop with the updated array
+ }
+
+ // Step 2: Handle new dependent events
+ if (this.newDependentEvents?.length > 0) {
+ this.logger.info(
+ `Adding ${this.newDependentEvents.length} new dependent events before processing.`,
+ );
+
+ // Merge new events into the unprocessed part of the array
+ const combinedEvents = [
+ ...this.dependentEvents.slice(index), // Unprocessed events
+ ...this.newDependentEvents, // New events
+ ].sort((a, b) => {
+ if (a.blockNumber !== b.blockNumber) {
+ return a.blockNumber - b.blockNumber;
+ }
+ if (a.transactionIndex !== b.transactionIndex) {
+ return a.transactionIndex - b.transactionIndex;
+ }
+ return a.logIndex - b.logIndex;
+ });
+
+ // Update dependentEvents: add back processed events + sorted combined events
+ this.dependentEvents = [...this.dependentEvents.slice(0, index), ...combinedEvents];
+
+ // Reset the new events buffer
+ this.newDependentEvents = [];
+ }
+
+ // Step 3: Process the current event
+ // eslint-disable-next-line no-await-in-loop
+ await this.processEvent(event, repositoryTransaction);
+
+ index += 1; // Move to the next event
+ }
+
+ // Clear invalidated contracts after processing
+ this.invalidatedContracts.clear();
+ }
+
+ async processEvent(event, repositoryTransaction) {
+ const handlerFunctionName = `handle${event.event}Event`;
+
+ if (typeof this[handlerFunctionName] !== 'function') {
+ this.logger.warn(`No handler for event type: ${event.event}`);
+ return;
+ }
+
+ this.logger.trace(`Processing event ${event.event} in block ${event.blockNumber}.`);
+ try {
+ await this[handlerFunctionName](event, repositoryTransaction);
+ } catch (error) {
+ this.logger.error(
+ `Error processing event ${event.event} in block ${event.blockNumber}: ${error.message}`,
+ );
+ }
+ }
+
+ async handleParameterChangedEvent(event) {
+ const { blockchainId, contract, data } = event;
+ const { parameterName, parameterValue } = JSON.parse(data);
+ switch (contract) {
+ case CONTRACTS.PARAMETERS_STORAGE:
+ this.blockchainModuleManager.setContractCallCache(
+ blockchainId,
+ CONTRACTS.PARAMETERS_STORAGE,
+ parameterName,
+ parameterValue,
+ );
+ break;
+ default:
+ this.logger.warn(
+ `Unable to handle parameter changed event. Unknown contract name ${event.contract}`,
+ );
+ }
+ }
+
+ async handleNewContractEvent(event, repositoryTransaction) {
+ const { contractName, newContractAddress } = JSON.parse(event.data);
+
+ const blockchchainModuleContractAddress = this.blockchainModuleManager.getContractAddress(
+ event.blockchain,
+ contractName,
+ );
+
+ if (newContractAddress !== blockchchainModuleContractAddress) {
+ this.blockchainModuleManager.initializeContract(
+ event.blockchain,
+ contractName,
+ newContractAddress,
+ );
+ }
+
+ const blockchainEventsServiceContractAddress =
+ this.blockchainEventsService.getContractAddress(event.blockchain, contractName);
+
+ if (
+ blockchainEventsServiceContractAddress &&
+ newContractAddress !== blockchainEventsServiceContractAddress
+ ) {
+ this.blockchainEventsService.updateContractAddress(
+ event.blockchain,
+ contractName,
+ newContractAddress,
+ );
+
+ this.invalidatedContracts.add(blockchainEventsServiceContractAddress);
+
+ await this.repositoryModuleManager.removeContractEventsAfterBlock(
+ event.blockchain,
+ contractName,
+ event.contractAddress,
+ event.blockNumber,
+ event.transactionIndex,
+ { transaction: repositoryTransaction },
+ );
+
+ const { events: newEvents } = await this.blockchainEventsService.getPastEvents(
+ event.blockchain,
+ [contractName],
+ MONITORED_CONTRACT_EVENTS[contractName],
+ event.blockNumber,
+ this.currentBlock,
+ );
+
+ if (newEvents.length !== 0) {
+ this.logger.trace(
+ `Storing ${newEvents.length} new events for blockchain ${event.blockchain} in the database.`,
+ );
+ await this.repositoryModuleManager.insertBlockchainEvents(newEvents, {
+ transaction: repositoryTransaction,
+ });
+
+ this.newDependentEvents = newEvents;
+ }
+ }
+ }
+
+ async handleContractChangedEvent(event, repositoryTransaction) {
+ const { contractName, newContractAddress } = JSON.parse(event.data);
+
+ const blockchchainModuleContractAddress = this.blockchainModuleManager.getContractAddress(
+ event.blockchain,
+ contractName,
+ );
+
+ if (newContractAddress !== blockchchainModuleContractAddress) {
+ this.blockchainModuleManager.initializeContract(
+ event.blockchain,
+ contractName,
+ newContractAddress,
+ );
+ }
+
+ const blockchainEventsServiceContractAddress =
+ this.blockchainEventsService.getContractAddress(event.blockchain, contractName);
+
+ if (
+ blockchainEventsServiceContractAddress &&
+ newContractAddress !== blockchainEventsServiceContractAddress
+ ) {
+ this.blockchainEventsService.updateContractAddress(
+ event.blockchain,
+ contractName,
+ newContractAddress,
+ );
+
+ this.invalidatedContracts.add(blockchainEventsServiceContractAddress);
+
+ await this.repositoryModuleManager.removeContractEventsAfterBlock(
+ event.blockchain,
+ contractName,
+ event.contractAddress,
+ event.blockNumber,
+ event.transactionIndex,
+ { transaction: repositoryTransaction },
+ );
+
+ const { events: newEvents } = await this.blockchainEventsService.getPastEvents(
+ event.blockchain,
+ [contractName],
+ MONITORED_CONTRACT_EVENTS[contractName],
+ event.blockNumber,
+ this.currentBlock,
+ );
+
+ if (newEvents.length !== 0) {
+ this.logger.trace(
+ `Storing ${newEvents.length} new events for blockchain ${event.blockchain} in the database.`,
+ );
+ await this.repositoryModuleManager.insertBlockchainEvents(newEvents, {
+ transaction: repositoryTransaction,
+ });
+
+ this.newDependentEvents = newEvents;
+ }
+ }
+ }
+
+ async handleNewAssetStorageEvent(event, repositoryTransaction) {
+ const { contractName, newContractAddress } = JSON.parse(event.data);
+
+ const blockchchainModuleContractAddress = this.blockchainModuleManager.getContractAddress(
+ event.blockchain,
+ contractName,
+ );
+
+ if (newContractAddress !== blockchchainModuleContractAddress) {
+ this.blockchainModuleManager.initializeAssetStorageContract(
+ event.blockchain,
+ newContractAddress,
+ );
+ }
+
+ const blockchainEventsServiceContractAddress =
+ this.blockchainEventsService.getContractAddress(event.blockchain, contractName);
+
+ if (
+ blockchainEventsServiceContractAddress &&
+ newContractAddress !== blockchainEventsServiceContractAddress
+ ) {
+ this.blockchainEventsService.updateContractAddress(
+ event.blockchain,
+ contractName,
+ newContractAddress,
+ );
+
+ this.invalidatedContracts.add(blockchainEventsServiceContractAddress);
+
+ await this.repositoryModuleManager.removeContractEventsAfterBlock(
+ event.blockchain,
+ contractName,
+ event.contractAddress,
+ event.blockNumber,
+ event.transactionIndex,
+ { transaction: repositoryTransaction },
+ );
+
+ const { events: newEvents } = await this.blockchainEventsService.getPastEvents(
+ event.blockchain,
+ [contractName],
+ MONITORED_CONTRACT_EVENTS[contractName],
+ event.blockNumber,
+ this.currentBlock,
+ );
+
+ if (newEvents.length !== 0) {
+ this.logger.trace(
+ `Storing ${newEvents.length} new events for blockchain ${event.blockchain} in the database.`,
+ );
+ await this.repositoryModuleManager.insertBlockchainEvents(newEvents, {
+ transaction: repositoryTransaction,
+ });
+
+ this.newDependentEvents = newEvents;
+ }
+ }
+ }
+
+ async handleAssetStorageChangedEvent(event, repositoryTransaction) {
+ const { contractName, newContractAddress } = JSON.parse(event.data);
+
+ const blockchchainModuleContractAddress = this.blockchainModuleManager.getContractAddress(
+ event.blockchain,
+ contractName,
+ );
+
+ if (newContractAddress !== blockchchainModuleContractAddress) {
+ this.blockchainModuleManager.initializeAssetStorageContract(
+ event.blockchain,
+ newContractAddress,
+ );
+ }
+
+ const blockchainEventsServiceContractAddress =
+ this.blockchainEventsService.getContractAddress(event.blockchain, contractName);
+
+ if (
+ blockchainEventsServiceContractAddress &&
+ newContractAddress !== blockchainEventsServiceContractAddress
+ ) {
+ this.blockchainEventsService.updateContractAddress(
+ event.blockchain,
+ contractName,
+ newContractAddress,
+ );
+
+ this.invalidatedContracts.add(blockchainEventsServiceContractAddress);
+
+ await this.repositoryModuleManager.removeContractEventsAfterBlock(
+ event.blockchain,
+ contractName,
+ event.contractAddress,
+ event.blockNumber,
+ event.transactionIndex,
+ { transaction: repositoryTransaction },
+ );
+
+ const { events: newEvents } = await this.blockchainEventsService.getPastEvents(
+ event.blockchain,
+ [contractName],
+ MONITORED_CONTRACT_EVENTS[contractName],
+ event.blockNumber,
+ this.currentBlock,
+ );
+
+ if (newEvents.length !== 0) {
+ this.logger.trace(
+ `Storing ${newEvents.length} new events for blockchain ${event.blockchain} in the database.`,
+ );
+ await this.repositoryModuleManager.insertBlockchainEvents(newEvents, {
+ transaction: repositoryTransaction,
+ });
+
+ this.newDependentEvents = newEvents;
+ }
+ }
+ }
+
+ async handleKnowledgeCollectionCreatedEvent(event) {
+ const sequence = ['validateAssertionMetadataCommand', 'storeAssertionCommand'];
+
+ await this.commandExecutor.add({
+ name: 'readCachedPublishDataCommand',
+ sequence,
+ delay: RETRY_DELAY_READ_CACHED_PUBLISH_DATA,
+ retries: MAX_RETRIES_READ_CACHED_PUBLISH_DATA,
+ data: {
+ event,
+ },
+ transactional: false,
+ });
+ }
+
+ // TODO: Adjust after new contracts are released
+ async handleAssetUpdatedEvent(event) {
+ const eventData = JSON.parse(event.data);
+
+ // TODO: Add correct name for assetStateIndex from event currently it's placeholder
+ const { assetContract, tokenId, state, updateOperationId, assetStateIndex } = eventData;
+ const { blockchain } = event;
+
+ const operationId = await this.operationIdService.generateOperationId(
+ OPERATION_ID_STATUS.UPDATE_FINALIZATION.UPDATE_FINALIZATION_START,
+ );
+
+ let datasetPath;
+ let cachedData;
+ try {
+ datasetPath = this.fileService.getPendingStorageDocumentPath(updateOperationId);
+ cachedData = await this.fileService.readFile(datasetPath, true);
+ } catch (error) {
+ this.operationIdService.markOperationAsFailed(
+ operationId,
+ blockchain,
+ `Unable to read cached data from ${datasetPath}, error: ${error.message}`,
+ ERROR_TYPE.PUBLISH_FINALIZATION.PUBLISH_FINALIZATION_NO_CACHED_DATA,
+ );
+ }
+ const ual = this.ualService.deriveUAL(blockchain, assetContract, tokenId);
+
+ await this.commandExecutor.add({
+ name: 'updateValidateAssertionMetadataCommand',
+ sequence: ['updateAssertionCommand'],
+ delay: 0,
+ data: {
+ operationId,
+ ual,
+ blockchain,
+ contract: assetContract,
+ tokenId,
+ assetStateIndex,
+ merkleRoot: state,
+ assertion: cachedData.assertion,
+ cachedMerkleRoot: cachedData.merkleRoot,
+ },
+ transactional: false,
+ });
+ }
+
+ /**
+ * Recover system from failure
+ * @param error
+ */
+ async recover() {
+ return Command.repeat();
+ }
+
+ /**
+ * Builds default BlockchainEventListenerCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'blockchainEventListenerCommand',
+ data: {},
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default BlockchainEventListenerCommand;
diff --git a/src/commands/blockchain-event-listener/event-listener-command.js b/src/commands/blockchain-event-listener/event-listener-command.js
new file mode 100644
index 0000000000..ddd0408cdd
--- /dev/null
+++ b/src/commands/blockchain-event-listener/event-listener-command.js
@@ -0,0 +1,85 @@
+import Command from '../command.js';
+import {
+ CONTRACT_EVENT_FETCH_INTERVALS,
+ NODE_ENVIRONMENTS,
+ ERROR_TYPE,
+ COMMAND_PRIORITY,
+ MAXIMUM_FETCH_EVENTS_FAILED_COUNT,
+} from '../../constants/constants.js';
+
+class EventListenerCommand extends Command {
+ constructor(ctx) {
+ super(ctx);
+ this.commandExecutor = ctx.commandExecutor;
+ this.blockchainModuleManager = ctx.blockchainModuleManager;
+
+ this.errorType = ERROR_TYPE.EVENT_LISTENER_ERROR;
+ }
+
+ calculateCommandPeriod() {
+ const isDevEnvironment = [NODE_ENVIRONMENTS.DEVELOPMENT, NODE_ENVIRONMENTS.TEST].includes(
+ process.env.NODE_ENV,
+ );
+
+ return isDevEnvironment
+ ? CONTRACT_EVENT_FETCH_INTERVALS.DEVELOPMENT
+ : CONTRACT_EVENT_FETCH_INTERVALS.MAINNET;
+ }
+
+ async execute() {
+ this.logger.info('Event Listener: Starting event listener command.');
+
+ await Promise.all(
+ this.blockchainModuleManager.getImplementationNames().map(async (blockchainId) => {
+ const commandData = { blockchainId };
+
+ return this.commandExecutor.add({
+ name: 'blockchainEventListenerCommand',
+ data: commandData,
+ retries: MAXIMUM_FETCH_EVENTS_FAILED_COUNT,
+ priority: COMMAND_PRIORITY.HIGHEST,
+ isBlocking: true,
+ transactional: false,
+ });
+ }),
+ );
+
+ if (!this.blockchainModuleManager.getImplementationNames().length) {
+ this.logger.error(`No blockchain implementations. OT-node shutting down...`);
+ process.exit(1);
+ }
+
+ return Command.repeat();
+ }
+
+ /**
+ * Recover system from failure
+ * @param command
+ * @param error
+ */
+ async recover(command) {
+ this.logger.warn(`Failed to execute ${command.name}. Error: ${command.message}`);
+
+ return Command.repeat();
+ }
+
+ /**
+ * Builds default eventListenerCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'eventListenerCommand',
+ delay: 0,
+ data: {},
+ transactional: false,
+ period: this.calculateCommandPeriod(),
+ priority: COMMAND_PRIORITY.HIGHEST,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default EventListenerCommand;
diff --git a/src/commands/cleaners/ask-cleaner-command.js b/src/commands/cleaners/ask-cleaner-command.js
new file mode 100644
index 0000000000..74667c524d
--- /dev/null
+++ b/src/commands/cleaners/ask-cleaner-command.js
@@ -0,0 +1,44 @@
+import CleanerCommand from './cleaner-command.js';
+import {
+ REPOSITORY_ROWS_FOR_REMOVAL_MAX_NUMBER,
+ OPERATIONS,
+ ASK_CLEANUP_TIME_DELAY,
+ ASK_CLEANUP_TIME_MILLS,
+ ARCHIVE_ASK_FOLDER,
+} from '../../constants/constants.js';
+
+class AskCleanerCommand extends CleanerCommand {
+ async findRowsForRemoval(nowTimestamp) {
+ return this.repositoryModuleManager.findProcessedOperations(
+ OPERATIONS.ASK,
+ nowTimestamp - ASK_CLEANUP_TIME_DELAY,
+ REPOSITORY_ROWS_FOR_REMOVAL_MAX_NUMBER,
+ );
+ }
+
+ getArchiveFolderName() {
+ return ARCHIVE_ASK_FOLDER;
+ }
+
+ async deleteRows(ids) {
+ return this.repositoryModuleManager.removeOperationRecords(OPERATIONS.ASK, ids);
+ }
+
+ /**
+ * Builds default command
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'askCleanerCommand',
+ data: {},
+ period: ASK_CLEANUP_TIME_MILLS,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default AskCleanerCommand;
diff --git a/src/commands/cleaners/ask-response-cleaner-command.js b/src/commands/cleaners/ask-response-cleaner-command.js
new file mode 100644
index 0000000000..ad31345b0a
--- /dev/null
+++ b/src/commands/cleaners/ask-response-cleaner-command.js
@@ -0,0 +1,44 @@
+import CleanerCommand from './cleaner-command.js';
+import {
+ REPOSITORY_ROWS_FOR_REMOVAL_MAX_NUMBER,
+ OPERATIONS,
+ ASK_RESPONSE_CLEANUP_TIME_DELAY,
+ ASK_RESPONSE_CLEANUP_TIME_MILLS,
+ ARCHIVE_ASK_RESPONSES_FOLDER,
+} from '../../constants/constants.js';
+
+class AskResponseCleanerCommand extends CleanerCommand {
+ async findRowsForRemoval(nowTimestamp) {
+ return this.repositoryModuleManager.findProcessedOperationResponse(
+ nowTimestamp - ASK_RESPONSE_CLEANUP_TIME_DELAY,
+ REPOSITORY_ROWS_FOR_REMOVAL_MAX_NUMBER,
+ OPERATIONS.ASK,
+ );
+ }
+
+ getArchiveFolderName() {
+ return ARCHIVE_ASK_RESPONSES_FOLDER;
+ }
+
+ async deleteRows(ids) {
+ return this.repositoryModuleManager.removeOperationResponse(ids, OPERATIONS.ASK);
+ }
+
+ /**
+ * Builds default command
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'askResponseCleanerCommand',
+ data: {},
+ period: ASK_RESPONSE_CLEANUP_TIME_MILLS,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default AskResponseCleanerCommand;
diff --git a/src/commands/cleaners/finality-cleaner-command.js b/src/commands/cleaners/finality-cleaner-command.js
new file mode 100644
index 0000000000..462a01bfd9
--- /dev/null
+++ b/src/commands/cleaners/finality-cleaner-command.js
@@ -0,0 +1,44 @@
+import CleanerCommand from './cleaner-command.js';
+import {
+ REPOSITORY_ROWS_FOR_REMOVAL_MAX_NUMBER,
+ OPERATIONS,
+ FINALITY_CLEANUP_TIME_DELAY,
+ FINALITY_CLEANUP_TIME_MILLS,
+ ARCHIVE_FINALITY_FOLDER,
+} from '../../constants/constants.js';
+
+class FinalityCleanerCommand extends CleanerCommand {
+ async findRowsForRemoval(nowTimestamp) {
+ return this.repositoryModuleManager.findProcessedOperations(
+ OPERATIONS.FINALITY,
+ nowTimestamp - FINALITY_CLEANUP_TIME_DELAY,
+ REPOSITORY_ROWS_FOR_REMOVAL_MAX_NUMBER,
+ );
+ }
+
+ getArchiveFolderName() {
+ return ARCHIVE_FINALITY_FOLDER;
+ }
+
+ async deleteRows(ids) {
+ return this.repositoryModuleManager.removeOperationRecords(OPERATIONS.FINALITY, ids);
+ }
+
+ /**
+ * Builds default command
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'finalityCleanerCommand',
+ data: {},
+ period: FINALITY_CLEANUP_TIME_MILLS,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default FinalityCleanerCommand;
diff --git a/src/commands/cleaners/finality-response-cleaner-command.js b/src/commands/cleaners/finality-response-cleaner-command.js
new file mode 100644
index 0000000000..41dba8c8fb
--- /dev/null
+++ b/src/commands/cleaners/finality-response-cleaner-command.js
@@ -0,0 +1,44 @@
+import CleanerCommand from './cleaner-command.js';
+import {
+ REPOSITORY_ROWS_FOR_REMOVAL_MAX_NUMBER,
+ OPERATIONS,
+ FINALITY_RESPONSE_CLEANUP_TIME_DELAY,
+ FINALITY_RESPONSE_CLEANUP_TIME_MILLS,
+ ARCHIVE_FINALITY_RESPONSES_FOLDER,
+} from '../../constants/constants.js';
+
+class FinalityResponseCleanerCommand extends CleanerCommand {
+ async findRowsForRemoval(nowTimestamp) {
+ return this.repositoryModuleManager.findProcessedOperationResponse(
+ nowTimestamp - FINALITY_RESPONSE_CLEANUP_TIME_DELAY,
+ REPOSITORY_ROWS_FOR_REMOVAL_MAX_NUMBER,
+ OPERATIONS.FINALITY,
+ );
+ }
+
+ getArchiveFolderName() {
+ return ARCHIVE_FINALITY_RESPONSES_FOLDER;
+ }
+
+ async deleteRows(ids) {
+ return this.repositoryModuleManager.removeOperationResponse(ids, OPERATIONS.FINALITY);
+ }
+
+ /**
+ * Builds default command
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'finalityResponseCleanerCommand',
+ data: {},
+ period: FINALITY_RESPONSE_CLEANUP_TIME_MILLS,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default FinalityResponseCleanerCommand;
diff --git a/src/commands/cleaners/pending-storage-cleaner-command.js b/src/commands/cleaners/pending-storage-cleaner-command.js
new file mode 100644
index 0000000000..df9dfd4431
--- /dev/null
+++ b/src/commands/cleaners/pending-storage-cleaner-command.js
@@ -0,0 +1,63 @@
+import Command from '../command.js';
+import {
+ PUBLISH_STORAGE_MEMORY_CLEANUP_COMMAND_CLEANUP_TIME_MILLS,
+ PUBLISH_STORAGE_FILE_CLEANUP_COMMAND_CLEANUP_TIME_MILLS,
+ PENDING_STORAGE_FILES_FOR_REMOVAL_MAX_NUMBER,
+} from '../../constants/constants.js';
+
+/**
+ * Cleans memory cache in the pending storage service
+ */
+class PendingStorageCleanerCommand extends Command {
+ constructor(ctx) {
+ super(ctx);
+ this.logger = ctx.logger;
+ this.pendingStorageService = ctx.pendingStorageService;
+ }
+
+ /**
+ * Executes command and produces one or more events
+ * @param command
+ */
+ async execute() {
+ this.logger.debug('Starting command for removal of expired pending storage entries');
+
+ const removed = await this.pendingStorageService.removeExpiredFileCache(
+ PUBLISH_STORAGE_FILE_CLEANUP_COMMAND_CLEANUP_TIME_MILLS,
+ PENDING_STORAGE_FILES_FOR_REMOVAL_MAX_NUMBER,
+ );
+ if (removed) {
+ this.logger.debug(`Successfully removed ${removed} expired cached operation files`);
+ }
+
+ return Command.repeat();
+ }
+
+ /**
+ * Recover system from failure
+ * @param command
+ * @param error
+ */
+ async recover(command) {
+ this.logger.warn(`Failed to clean pending storage: error: ${command.message}`);
+ return Command.repeat();
+ }
+
+ /**
+ * Builds default command
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'pendingStorageCleanerCommand',
+ period: PUBLISH_STORAGE_MEMORY_CLEANUP_COMMAND_CLEANUP_TIME_MILLS,
+ data: {},
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default PendingStorageCleanerCommand;
diff --git a/src/commands/command-executor.js b/src/commands/command-executor.js
index e61b90ded3..1ba07d9934 100644
--- a/src/commands/command-executor.js
+++ b/src/commands/command-executor.js
@@ -7,6 +7,7 @@ import {
COMMAND_STATUS,
DEFAULT_COMMAND_DELAY_IN_MILLS,
COMMAND_QUEUE_PARALLELISM,
+ DEFAULT_COMMAND_PRIORITY,
} from '../constants/constants.js';
/**
@@ -20,7 +21,7 @@ class CommandExecutor {
this.repositoryModuleManager = ctx.repositoryModuleManager;
this.verboseLoggingEnabled = ctx.config.commandExecutorVerboseLoggingEnabled;
- this.queue = async.queue((command, callback = () => {}) => {
+ this.queue = async.priorityQueue((command, callback = () => {}) => {
this._execute(command)
.then((result) => {
callback(result);
@@ -73,24 +74,42 @@ class CommandExecutor {
async _execute(executeCommand) {
const command = executeCommand;
const now = Date.now();
+
await this._update(command, {
startedAt: now,
});
+ const commandContext = {
+ commandId: command.id,
+ commandName: command.name,
+ };
+ if (command.data?.operationId) {
+ commandContext.operationId = command.data.operationId;
+ }
+ const loggerWithContext = this.logger.child(commandContext);
+
if (this.verboseLoggingEnabled) {
- this.logger.trace(`Command ${command.name} and ID ${command.id} started.`);
+ loggerWithContext.trace('Command started.');
}
const handler = this.commandResolver.resolve(command.name);
+ handler.logger = loggerWithContext;
+
+ for (const key in handler) {
+ if (key.endsWith('Service') || key.endsWith('ModuleManager')) {
+ handler[key].logger = loggerWithContext;
+ }
+ }
+
if (!handler) {
- this.logger.warn(`Command '${command.name}' will not be executed.`);
+ loggerWithContext.warn('Command will not be executed.');
await this._update(command, {
status: COMMAND_STATUS.UNKNOWN,
});
return;
}
if (command.deadlineAt && now > command.deadlineAt) {
- this.logger.warn(`Command ${command.name} and ID ${command.id} is too late...`);
+ loggerWithContext.warn('Command is too late...');
await this._update(command, {
status: COMMAND_STATUS.EXPIRED,
});
@@ -100,9 +119,7 @@ class CommandExecutor {
await Promise.all(result.commands.map((c) => this.add(c, c.delay, true)));
}
} catch (e) {
- this.logger.warn(
- `Failed to handle expired callback for command ${command.name} and ID ${command.id}`,
- );
+ loggerWithContext.warn('Failed to handle expired callback');
}
return;
}
@@ -110,9 +127,7 @@ class CommandExecutor {
const waitMs = command.readyAt + command.delay - now;
if (waitMs > 0) {
if (this.verboseLoggingEnabled) {
- this.logger.trace(
- `Command ${command.name} with ID ${command.id} should be delayed`,
- );
+ loggerWithContext.trace('Command should be delayed');
}
await this.add(command, Math.min(waitMs, MAX_COMMAND_DELAY_IN_MILLS), false);
return;
@@ -129,6 +144,7 @@ class CommandExecutor {
);
command.data = handler.unpack(command.data);
+
let result = await handler.execute(command, transaction);
if (result.repeat) {
await this._update(
@@ -174,7 +190,7 @@ class CommandExecutor {
if (!processResult.repeat && !processResult.retry) {
if (this.verboseLoggingEnabled) {
- this.logger.trace(`Command ${command.name} and ID ${command.id} processed.`);
+ loggerWithContext.trace(`Command processed.`);
}
const addPromises = [];
processResult.children.forEach((e) =>
@@ -184,9 +200,7 @@ class CommandExecutor {
}
} catch (e) {
if (this.verboseLoggingEnabled) {
- this.logger.trace(
- `Failed to process command ${command.name} and ID ${command.id}. ${e}.\n${e.stack}`,
- );
+ loggerWithContext.trace(`Failed to process command. ${e}.\n${e.stack}`);
}
try {
@@ -205,9 +219,7 @@ class CommandExecutor {
return Command.repeat();
}
} catch (error) {
- this.logger.warn(
- `Failed to handle error callback for command ${command.name} and ID ${command.id}, error: ${error.message}`,
- );
+ loggerWithContext.warn(`Failed to handle error callback, error: ${error.message}`);
}
}
}
@@ -234,14 +246,34 @@ class CommandExecutor {
*/
async _addDefaultCommand(name) {
await this.delete(name);
+
+ const commandContext = {
+ commandName: name,
+ };
+ const loggerWithContext = this.logger.child(commandContext);
+
const handler = this.commandResolver.resolve(name);
+ handler.logger = loggerWithContext;
+
+ for (const key in handler) {
+ if (key.endsWith('Service') || key.endsWith('ModuleManager')) {
+ handler[key].logger = loggerWithContext;
+ }
+ }
+
if (!handler) {
- this.logger.warn(`Command '${name}' will not be executed.`);
+ handler.logger.warn(`Command will not be executed.`);
return;
}
- await this.add(handler.default(), DEFAULT_COMMAND_DELAY_IN_MILLS, true);
+
+ if (['eventListenerCommand', 'shardingTableCheckCommand'].includes(name)) {
+ await this.add(handler.default(), 0, true);
+ } else {
+ await this.add(handler.default(), DEFAULT_COMMAND_DELAY_IN_MILLS, true);
+ }
+
if (this.verboseLoggingEnabled) {
- this.logger.trace(`Permanent command ${name} created.`);
+ handler.logger.trace(`Permanent command created.`);
}
}
@@ -253,10 +285,33 @@ class CommandExecutor {
*/
async add(addCommand, addDelay, insert = true) {
let command = addCommand;
+
+ if (command.isBlocking) {
+ // Check the db to see if there are unfinalized instances of the same command
+ const unfinalizedBlockingCommands =
+ await this.repositoryModuleManager.findUnfinalizedCommandsByName(command.name);
+
+ for (const unfinalizedCommand of unfinalizedBlockingCommands) {
+ if (command.id && command.id === unfinalizedCommand.id) {
+ if (insert) {
+ this.logger.warn(`Inserting duplicate of command ${command.id}!`);
+ }
+ continue;
+ }
+
+ if (JSON.stringify(unfinalizedCommand.data) === JSON.stringify(command.data)) {
+ this.logger.info(
+ `Skipping blocking command: ${command.name} because of unfinalized instance of this command with id: ${unfinalizedCommand.id}`,
+ );
+ return;
+ }
+ }
+ }
+
let delay = addDelay ?? 0;
if (delay > MAX_COMMAND_DELAY_IN_MILLS) {
- if (command.readyAt == null) {
+ if (!command.readyAt) {
command.readyAt = Date.now();
}
command.readyAt += delay;
@@ -266,16 +321,19 @@ class CommandExecutor {
if (insert) {
command = await this._insert(command);
}
+
+ const commandPriority = command.priority ?? DEFAULT_COMMAND_PRIORITY;
+
if (delay) {
setTimeout(
(timeoutCommand) => {
- this.queue.push(timeoutCommand);
+ this.queue.push(timeoutCommand, commandPriority);
},
delay,
command,
);
} else {
- this.queue.push(command);
+ this.queue.push(command, commandPriority);
}
}
@@ -287,7 +345,7 @@ class CommandExecutor {
*/
async _handleRetry(retryCommand, handler) {
const command = retryCommand;
- if (command.retries > 1) {
+ if (command.retries && command.retries > 1) {
command.data = handler.pack(command.data);
await this._update(command, {
status: COMMAND_STATUS.PENDING,
@@ -313,7 +371,7 @@ class CommandExecutor {
* @private
*/
async _handleError(command, handler, error) {
- if (command.retries > 0) {
+ if (command.retries && command.retries > 0) {
await this._update(command, {
retries: command.retries - 1,
});
@@ -326,10 +384,12 @@ class CommandExecutor {
status: COMMAND_STATUS.FAILED,
message: error.message,
});
- this.logger.warn(`Error in command: ${command.name}, error: ${error.message}`);
+ handler.logger.warn(`Error in command: ${command.name}, error: ${error.message}`);
return await handler.recover(command);
} catch (e) {
- this.logger.warn(`Failed to recover command ${command.name} and ID ${command.id}`);
+ handler.logger.warn(
+ `Failed to recover command ${command.name} and ID ${command.id}`,
+ );
}
}
}
@@ -347,28 +407,27 @@ class CommandExecutor {
[command.name] = command.sequence;
command.sequence = command.sequence.slice(1);
}
- if (!command.readyAt) {
- command.readyAt = Date.now(); // take current time
- }
- if (command.delay == null) {
- command.delay = 0;
- }
- if (!command.transactional) {
- command.transactional = 0;
- }
+
+ command.readyAt = command.readyAt || Date.now();
+ command.delay = command.delay ?? 0;
+ command.transactional = command.transactional ?? 0;
+ command.priority = command.priority ?? DEFAULT_COMMAND_PRIORITY;
+ command.isBlocking = command.isBlocking ?? false;
+ command.status = COMMAND_STATUS.PENDING;
+
if (!command.data) {
const commandInstance = this.commandResolver.resolve(command.name);
if (commandInstance) {
command.data = commandInstance.pack(command.data);
}
}
- command.status = COMMAND_STATUS.PENDING;
- const opts = {};
- if (transaction != null) {
- opts.transaction = transaction;
- }
+
+ const opts = transaction ? { transaction } : {};
+
const model = await this.repositoryModuleManager.createCommand(command, opts);
+
command.id = model.id;
+
return command;
}
@@ -416,6 +475,11 @@ class CommandExecutor {
const commands = [];
for (const command of pendingCommands) {
+ if (command?.isBlocking) {
+ commands.push(command);
+ continue;
+ }
+
if (!command?.parentId) {
continue;
}
@@ -436,6 +500,8 @@ class CommandExecutor {
id: commandModel.id,
name: commandModel.name,
data: commandModel.data,
+ priority: commandModel.priority ?? DEFAULT_COMMAND_PRIORITY,
+ isBlocking: commandModel.isBlocking ?? false,
readyAt: commandModel.readyAt,
delay: commandModel.delay,
startedAt: commandModel.startedAt,
diff --git a/src/commands/common/get-latest-service-agreement/blockchain-get-latest-service-agreement.js b/src/commands/common/get-latest-service-agreement/blockchain-get-latest-service-agreement.js
deleted file mode 100644
index d91171a826..0000000000
--- a/src/commands/common/get-latest-service-agreement/blockchain-get-latest-service-agreement.js
+++ /dev/null
@@ -1,244 +0,0 @@
-/* eslint-disable no-await-in-loop */
-import { setTimeout as sleep } from 'timers/promises';
-import Command from '../../command.js';
-import {
- CONTENT_ASSET_HASH_FUNCTION_ID,
- EXPECTED_TRANSACTION_ERRORS,
- GET_ASSERTION_IDS_MAX_RETRY_COUNT,
- GET_ASSERTION_IDS_RETRY_DELAY_IN_SECONDS,
- GET_LATEST_SERVICE_AGREEMENT_BATCH_SIZE,
- GET_LATEST_SERVICE_AGREEMENT_EXCLUDE_LATEST_TOKEN_ID,
- GET_LATEST_SERVICE_AGREEMENT_FREQUENCY_MILLS,
- SERVICE_AGREEMENT_SOURCES,
-} from '../../../constants/constants.js';
-
-class BlockchainGetLatestServiceAgreement extends Command {
- constructor(ctx) {
- super(ctx);
- this.repositoryModuleManager = ctx.repositoryModuleManager;
- this.blockchainModuleManager = ctx.blockchainModuleManager;
- this.serviceAgreementService = ctx.serviceAgreementService;
- this.ualService = ctx.ualService;
- }
-
- /**
- * Executes command and produces one or more events
- * @param command
- */
- async execute(command) {
- const { blockchain } = command.data;
-
- const assetStorageContractAddresses =
- this.blockchainModuleManager.getAssetStorageContractAddresses(blockchain);
-
- const results = await Promise.all(
- assetStorageContractAddresses.map((contract) =>
- this.updateAgreementDataForAssetContract(
- contract,
- blockchain,
- command.data[contract],
- ),
- ),
- );
-
- results.forEach((result) => {
- if (result) {
- // eslint-disable-next-line no-param-reassign
- command.data[result.contract] = result.lastProcessedTokenId;
- this.logger.debug(
- `Get latest service agreement: updating last processed token id: ${result.lastProcessedTokenId} for blockchain ${blockchain}`,
- );
- }
- });
-
- return Command.repeat();
- }
-
- async updateAgreementDataForAssetContract(contract, blockchain, lastProcessedTokenId) {
- this.logger.info(
- `Get latest service agreement: Starting get latest service agreement command, last processed token id: ${lastProcessedTokenId} for blockchain: ${blockchain}`,
- );
- let latestBlockchainTokenId;
- try {
- latestBlockchainTokenId =
- Number(await this.blockchainModuleManager.getLatestTokenId(blockchain, contract)) -
- GET_LATEST_SERVICE_AGREEMENT_EXCLUDE_LATEST_TOKEN_ID;
- } catch (error) {
- if (error.message.includes(EXPECTED_TRANSACTION_ERRORS.NO_MINTED_ASSETS)) {
- this.logger.info(
- `Get latest service agreement: No minted assets on blockchain: ${blockchain}`,
- );
- return;
- }
- this.logger.error(
- `Unable to process agreement data for asset contract ${contract}. Error: ${error}`,
- );
- return;
- }
-
- const latestDbTokenId =
- lastProcessedTokenId ??
- (await this.repositoryModuleManager.getLatestServiceAgreementTokenId(blockchain)) ??
- latestBlockchainTokenId;
-
- if (latestBlockchainTokenId < latestDbTokenId) {
- this.logger.debug(
- `Get latest service agreement: No new agreements found on blockchain: ${blockchain}.`,
- );
- return {
- contract,
- lastProcessedTokenId: latestDbTokenId,
- };
- }
-
- if (latestBlockchainTokenId < latestDbTokenId) {
- this.logger.debug(
- `Get latest service agreement: No new agreements found on blockchain: ${blockchain}.`,
- );
- return;
- }
-
- this.logger.debug(
- `Get latest service agreement: Latest token id on chain: ${latestBlockchainTokenId}, latest token id in database: ${latestDbTokenId} on blockchain: ${blockchain}`,
- );
-
- let tokenIdDifference = latestBlockchainTokenId - latestDbTokenId;
- let getAgreementDataPromise = [];
- for (
- let tokenIdToBeFetched = latestDbTokenId + 1;
- tokenIdToBeFetched <= latestBlockchainTokenId;
- tokenIdToBeFetched += 1
- ) {
- getAgreementDataPromise.push(
- this.getAgreementDataForToken(tokenIdToBeFetched, blockchain, contract),
- );
- if (
- getAgreementDataPromise.length === tokenIdDifference ||
- getAgreementDataPromise.length === GET_LATEST_SERVICE_AGREEMENT_BATCH_SIZE
- ) {
- const missingAgreements = await Promise.all(getAgreementDataPromise);
-
- await this.repositoryModuleManager.bulkCreateServiceAgreementRecords(
- missingAgreements.filter((agreement) => agreement != null),
- );
- getAgreementDataPromise = [];
- tokenIdDifference -= GET_LATEST_SERVICE_AGREEMENT_BATCH_SIZE;
- }
- }
- if (latestBlockchainTokenId - latestDbTokenId > 0) {
- this.logger.debug(
- `Get latest service agreement: Successfully fetched ${
- latestBlockchainTokenId - latestDbTokenId
- } on blockchain: ${blockchain}`,
- );
- }
- return {
- contract,
- lastProcessedTokenId: latestBlockchainTokenId,
- };
- }
-
- async getAgreementDataForToken(
- tokenId,
- blockchain,
- contract,
- hashFunctionId = CONTENT_ASSET_HASH_FUNCTION_ID,
- ) {
- try {
- this.logger.debug(
- `Get latest service agreement: Getting agreement data for token id: ${tokenId} on blockchain: ${blockchain}`,
- );
- let assertionIds = [];
- let retryCount = 0;
-
- while (assertionIds.length === 0) {
- if (retryCount === GET_ASSERTION_IDS_MAX_RETRY_COUNT) {
- throw Error(
- `Get latest service agreement: Unable to get assertion ids for token id: ${tokenId} on blockchain: ${blockchain}`,
- );
- }
- this.logger.debug(
- `Get latest service agreement: getting assertion ids retry ${retryCount} for token id: ${tokenId} on blockchain: ${blockchain}`,
- );
- assertionIds = await this.blockchainModuleManager.getAssertionIds(
- blockchain,
- contract,
- tokenId,
- );
- retryCount += 1;
- await sleep(GET_ASSERTION_IDS_RETRY_DELAY_IN_SECONDS * 1000);
- }
-
- const keyword = await this.ualService.calculateLocationKeyword(
- blockchain,
- contract,
- tokenId,
- assertionIds[0],
- );
- const agreementId = await this.serviceAgreementService.generateId(
- blockchain,
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- );
- const agreementData = await this.blockchainModuleManager.getAgreementData(
- blockchain,
- agreementId,
- );
-
- if (!agreementData) {
- throw Error(
- `Get latest service agreement: Unable to fetch agreement data while processing asset created event for agreement id: ${agreementId}, blockchain id: ${blockchain}`,
- );
- }
-
- const latestStateIndex = assertionIds.length - 1;
-
- return {
- blockchainId: blockchain,
- assetStorageContractAddress: contract,
- tokenId,
- agreementId,
- startTime: agreementData.startTime,
- epochsNumber: agreementData.epochsNumber,
- epochLength: agreementData.epochLength,
- scoreFunctionId: agreementData.scoreFunctionId,
- stateIndex: latestStateIndex,
- assertionId: assertionIds[latestStateIndex],
- hashFunctionId,
- keyword,
- proofWindowOffsetPerc: agreementData.proofWindowOffsetPerc,
- dataSource: SERVICE_AGREEMENT_SOURCES.NODE,
- };
- } catch (error) {
- this.logger.error(error.message);
- }
- }
-
- /**
- * Recover system from failure
- * @param error
- */
- async recover() {
- return Command.repeat();
- }
-
- /**
- * Builds default command
- * @param map
- * @returns {{add, data: *, delay: *, deadline: *}}
- */
- default(map) {
- const command = {
- name: 'blockchainGetLatestServiceAgreement',
- data: {},
- period: GET_LATEST_SERVICE_AGREEMENT_FREQUENCY_MILLS,
- transactional: false,
- };
- Object.assign(command, map);
- return command;
- }
-}
-
-export default BlockchainGetLatestServiceAgreement;
diff --git a/src/commands/common/get-latest-service-agreement/get-latest-service-agreement.js b/src/commands/common/get-latest-service-agreement/get-latest-service-agreement.js
deleted file mode 100644
index c951534637..0000000000
--- a/src/commands/common/get-latest-service-agreement/get-latest-service-agreement.js
+++ /dev/null
@@ -1,71 +0,0 @@
-import Command from '../../command.js';
-import { GET_LATEST_SERVICE_AGREEMENT_FREQUENCY_MILLS } from '../../../constants/constants.js';
-
-class GetLatestServiceAgreement extends Command {
- constructor(ctx) {
- super(ctx);
- this.commandExecutor = ctx.commandExecutor;
- this.shardingTableService = ctx.shardingTableService;
- this.repositoryModuleManager = ctx.repositoryModuleManager;
- this.blockchainModuleManager = ctx.blockchainModuleManager;
- }
-
- /**
- * Executes command and produces one or more events
- * @param command
- */
- async execute() {
- const operationId = this.operationIdService.generateId();
-
- this.logger.info(
- `Get latest service agreement: Starting get latest service agreement command for operation id: ${operationId}`,
- );
-
- await this.commandExecutor.delete('blockchainGetLatestServiceAgreement');
-
- await Promise.all(
- this.blockchainModuleManager.getImplementationNames().map(async (blockchain) => {
- const commandData = {
- blockchain,
- operationId,
- };
-
- return this.commandExecutor.add({
- name: 'blockchainGetLatestServiceAgreement',
- data: commandData,
- period: GET_LATEST_SERVICE_AGREEMENT_FREQUENCY_MILLS,
- });
- }),
- );
-
- return Command.empty();
- }
-
- /**
- * Recover system from failure
- * @param command
- * @param error
- */
- async recover(command) {
- this.logger.warn(`Failed to execute ${command.name}. Error: ${command.message}`);
-
- return Command.repeat();
- }
-
- /**
- * Builds default command
- * @param map
- * @returns {{add, data: *, delay: *, deadline: *}}
- */
- default(map) {
- const command = {
- name: 'getLatestServiceAgreement',
- data: {},
- transactional: false,
- };
- Object.assign(command, map);
- return command;
- }
-}
-
-export default GetLatestServiceAgreement;
diff --git a/src/commands/common/send-telemetry-command.js b/src/commands/common/send-telemetry-command.js
index ceebb8a99b..c5af10af59 100644
--- a/src/commands/common/send-telemetry-command.js
+++ b/src/commands/common/send-telemetry-command.js
@@ -24,7 +24,7 @@ class SendTelemetryCommand extends Command {
async execute() {
if (
!this.config.modules.telemetry.enabled ||
- !this.telemetryModuleManager.getModuleConfiguration().sendTelemetryData
+ !this.telemetryModuleManager.getModuleConfiguration().sendToSignalingService
) {
return Command.empty();
}
diff --git a/src/commands/common/send-transaction-command.js b/src/commands/common/send-transaction-command.js
index 12694d731e..d675ce71b1 100644
--- a/src/commands/common/send-transaction-command.js
+++ b/src/commands/common/send-transaction-command.js
@@ -13,8 +13,6 @@ class SendTransactionCommand extends Command {
rightNeighborhoodEdge,
contract,
tokenId,
- keyword,
- hashFunctionId,
stateIndex,
txGasPrice,
} = data;
@@ -35,7 +33,7 @@ class SendTransactionCommand extends Command {
this.logger.warn(
`Failed to execute ${command.name}, Error Message: ${error.message} for the Service Agreement ` +
`with the ID: ${agreementId}, Blockchain: ${blockchain}, Contract: ${contract}, ` +
- `Token ID: ${tokenId}, Keyword: ${keyword}, Hash function ID: ${hashFunctionId}, ` +
+ `Token ID: ${tokenId},` +
`Epoch: ${epoch}, State Index: ${stateIndex}, Operation ID: ${operationId}, ` +
`Closest Node: ${closestNode}, Left neighborhood edge: ${leftNeighborhoodEdge}, ` +
`Right neighborhood edge: ${rightNeighborhoodEdge}, ` +
@@ -127,7 +125,7 @@ class SendTransactionCommand extends Command {
this.logger.trace(
`${msgBase} ${command.name} for the Service Agreement with the ID: ${agreementId}, ` +
`Blockchain: ${blockchain}, Contract: ${contract}, Token ID: ${tokenId}, ` +
- `Keyword: ${keyword}, Hash function ID: ${hashFunctionId}, Epoch: ${epoch}, ` +
+ `Epoch: ${epoch}, ` +
`State Index: ${stateIndex}, Operation ID: ${operationId}, ` +
`Closest Node: ${closestNode}, Left neighborhood edge: ${leftNeighborhoodEdge}, ` +
`Right neighborhood edge: ${rightNeighborhoodEdge}, ` +
diff --git a/src/commands/common/sharding-table-check-command.js b/src/commands/common/sharding-table-check-command.js
index 1a3a02e274..049b1d439d 100644
--- a/src/commands/common/sharding-table-check-command.js
+++ b/src/commands/common/sharding-table-check-command.js
@@ -1,5 +1,8 @@
import Command from '../command.js';
-import { SHARDING_TABLE_CHECK_COMMAND_FREQUENCY_MINUTES } from '../../constants/constants.js';
+import {
+ COMMAND_PRIORITY,
+ SHARDING_TABLE_CHECK_COMMAND_FREQUENCY_MILLS,
+} from '../../constants/constants.js';
class ShardingTableCheckCommand extends Command {
constructor(ctx) {
@@ -8,7 +11,7 @@ class ShardingTableCheckCommand extends Command {
this.config = ctx.config;
this.blockchainModuleManager = ctx.blockchainModuleManager;
this.repositoryModuleManager = ctx.repositoryModuleManager;
- this.hashingService = ctx.hashingService;
+ this.shardingTableService = ctx.shardingTableService;
}
/**
@@ -17,6 +20,8 @@ class ShardingTableCheckCommand extends Command {
* @param command
*/
async execute() {
+ const repositoryTransaction = await this.repositoryModuleManager.transaction();
+
try {
const promises = this.blockchainModuleManager
.getImplementationNames()
@@ -31,82 +36,17 @@ class ShardingTableCheckCommand extends Command {
);
if (shardingTableLength !== totalNodesNumber) {
- this.logger.debug(
- `Sharding table check for blockchain ${blockchainId} - difference between local sharding table
- (${totalNodesNumber} nodes) and blockchain sharding table (${shardingTableLength} nodes).`,
- );
- this.logger.debug(
- `Removing nodes from local sharding table for blockchain ${blockchainId}.`,
- );
- await this.repositoryModuleManager.removeShardingTablePeerRecords(
+ return this.shardingTableService.pullBlockchainShardingTable(
blockchainId,
- );
-
- let startingIdentityId =
- await this.blockchainModuleManager.getShardingTableHead(blockchainId);
- const pageSize = 10;
- const shardingTable = [];
-
- this.logger.debug(
- `Started pulling ${shardingTableLength} nodes from blockchain sharding table.`,
- );
-
- let sliceIndex = 0;
-
- while (shardingTable.length < shardingTableLength) {
- // eslint-disable-next-line no-await-in-loop
- const nodes = await this.blockchainModuleManager.getShardingTablePage(
- blockchainId,
- startingIdentityId,
- pageSize,
- );
- shardingTable.push(
- ...nodes.slice(sliceIndex).filter((node) => node.nodeId !== '0x'),
- );
- sliceIndex = 1;
- startingIdentityId = nodes[nodes.length - 1].identityId;
- }
-
- this.logger.debug(
- `Finished pulling ${shardingTable.length} nodes from blockchain sharding table.`,
- );
-
- await this.repositoryModuleManager.createManyPeerRecords(
- await Promise.all(
- shardingTable.map(async (peer) => {
- const nodeId = this.blockchainModuleManager.convertHexToAscii(
- blockchainId,
- peer.nodeId,
- );
-
- const sha256 = await this.hashingService.callHashFunction(
- 1,
- nodeId,
- );
-
- return {
- peerId: nodeId,
- blockchainId,
- ask: this.blockchainModuleManager.convertFromWei(
- blockchainId,
- peer.ask,
- 'ether',
- ),
- stake: this.blockchainModuleManager.convertFromWei(
- blockchainId,
- peer.stake,
- 'ether',
- ),
- sha256,
- };
- }),
- ),
+ repositoryTransaction,
);
}
});
await Promise.all(promises);
+ await repositoryTransaction.commit();
} catch (error) {
+ await repositoryTransaction.rollback();
await this.handleError(error.message);
}
return Command.repeat();
@@ -132,7 +72,9 @@ class ShardingTableCheckCommand extends Command {
name: 'shardingTableCheckCommand',
delay: 0,
data: {},
- period: SHARDING_TABLE_CHECK_COMMAND_FREQUENCY_MINUTES * 60 * 1000,
+ period: SHARDING_TABLE_CHECK_COMMAND_FREQUENCY_MILLS,
+ priority: COMMAND_PRIORITY.HIGHEST,
+ isBlocking: true,
transactional: false,
};
Object.assign(command, map);
diff --git a/src/commands/common/validate-asset-command.js b/src/commands/common/validate-asset-command.js
index ec25cd8c01..d18179797d 100644
--- a/src/commands/common/validate-asset-command.js
+++ b/src/commands/common/validate-asset-command.js
@@ -3,7 +3,7 @@ import {
ERROR_TYPE,
OPERATION_ID_STATUS,
LOCAL_STORE_TYPES,
- ZERO_BYTES32,
+ PARANET_ACCESS_POLICY,
} from '../../constants/constants.js';
class ValidateAssetCommand extends Command {
@@ -13,6 +13,7 @@ class ValidateAssetCommand extends Command {
this.ualService = ctx.ualService;
this.dataService = ctx.dataService;
this.validationService = ctx.validationService;
+ this.paranetService = ctx.paranetService;
this.errorType = ERROR_TYPE.VALIDATE_ASSET_ERROR;
}
@@ -28,6 +29,7 @@ class ValidateAssetCommand extends Command {
contract,
tokenId,
storeType = LOCAL_STORE_TYPES.TRIPLE,
+ paranetUAL,
} = command.data;
await this.operationIdService.updateOperationIdStatus(
@@ -36,51 +38,22 @@ class ValidateAssetCommand extends Command {
OPERATION_ID_STATUS.VALIDATE_ASSET_START,
);
- let blockchainAssertionId;
- if (storeType === LOCAL_STORE_TYPES.TRIPLE) {
- blockchainAssertionId = await this.blockchainModuleManager.getLatestAssertionId(
- blockchain,
- contract,
- tokenId,
- );
- } else {
- blockchainAssertionId = await this.blockchainModuleManager.getUnfinalizedAssertionId(
- blockchain,
- tokenId,
- );
- }
- if (!blockchainAssertionId || blockchainAssertionId === ZERO_BYTES32) {
- return Command.retry();
- }
+ // TODO: Validate number of triplets and other stuff we did before so it matches like we did it in v6
const cachedData = await this.operationIdService.getCachedOperationIdData(operationId);
const ual = this.ualService.deriveUAL(blockchain, contract, tokenId);
- this.logger.info(
- `Validating asset's public assertion with id: ${cachedData.public.assertionId} ual: ${ual}`,
- );
- if (blockchainAssertionId !== cachedData.public.assertionId) {
- await this.handleError(
- operationId,
- blockchain,
- `Invalid assertion id for asset ${ual}. Received value from blockchain: ${blockchainAssertionId}, received value from request: ${cachedData.public.assertionId}`,
- this.errorType,
- true,
- );
- return Command.empty();
- }
- await this.validationService.validateAssertion(
- cachedData.public.assertionId,
- blockchain,
- cachedData.public.assertion,
- );
+ // backwards compatibility
+ const cachedAssertion = cachedData.datasetRoot || cachedData.public.assertionId;
+ const cachedDataset = cachedData.dataset || cachedData.public.assertion;
+ // V0 backwards compatibility
if (cachedData.private?.assertionId && cachedData.private?.assertion) {
this.logger.info(
`Validating asset's private assertion with id: ${cachedData.private.assertionId} ual: ${ual}`,
);
try {
- this.validationService.validateAssertionId(
+ await this.validationService.validateDatasetRoot(
cachedData.private.assertion,
cachedData.private.assertionId,
);
@@ -96,13 +69,83 @@ class ValidateAssetCommand extends Command {
}
}
+ await this.validationService.validateDatasetRoot(cachedDataset, cachedAssertion);
+
+ let paranetId;
+ if (storeType === LOCAL_STORE_TYPES.TRIPLE_PARANET) {
+ try {
+ const {
+ blockchain: paranetBlockchain,
+ contract: paranetContract,
+ tokenId: paranetTokenId,
+ } = this.ualService.resolveUAL(paranetUAL);
+
+ paranetId = this.paranetService.constructParanetId(paranetContract, paranetTokenId);
+ const paranetExists = await this.blockchainModuleManager.paranetExists(
+ paranetBlockchain,
+ paranetId,
+ );
+ if (!paranetExists) {
+ await this.handleError(
+ operationId,
+ blockchain,
+ `Paranet: ${paranetId} doesn't exist.`,
+ this.errorType,
+ true,
+ );
+ return Command.empty();
+ }
+
+ const nodesAccessPolicy = await this.blockchainModuleManager.getNodesAccessPolicy(
+ blockchain,
+ paranetId,
+ );
+ if (nodesAccessPolicy === PARANET_ACCESS_POLICY.CURATED) {
+ const identityId = await this.blockchainModuleManager.getIdentityId(blockchain);
+ const isCuratedNode = await this.blockchainModuleManager.isCuratedNode(
+ blockchain,
+ paranetId,
+ identityId,
+ );
+ if (!isCuratedNode) {
+ await this.handleError(
+ operationId,
+ blockchain,
+ `Node is not part of curated paranet ${paranetId} because node with id ${identityId} is not a curated node.`,
+ this.errorType,
+ true,
+ );
+ return Command.empty();
+ }
+ } else {
+ await this.handleError(
+ operationId,
+ blockchain,
+ `Paranet ${paranetId} is not curated paranet.`,
+ this.errorType,
+ true,
+ );
+ return Command.empty();
+ }
+ } catch (error) {
+ await this.handleError(
+ operationId,
+ blockchain,
+ error.message,
+ this.errorType,
+ true,
+ );
+ return Command.empty();
+ }
+ }
+
await this.operationIdService.updateOperationIdStatus(
operationId,
blockchain,
OPERATION_ID_STATUS.VALIDATE_ASSET_END,
);
return this.continueSequence(
- { ...command.data, retry: undefined, period: undefined },
+ { ...command.data, paranetId, retry: undefined, period: undefined },
command.sequence,
);
}
diff --git a/src/commands/local-store/local-store-command.js b/src/commands/local-store/local-store-command.js
index 4a0aa82b31..37f2bd2a1d 100644
--- a/src/commands/local-store/local-store-command.js
+++ b/src/commands/local-store/local-store-command.js
@@ -2,8 +2,10 @@ import {
OPERATION_ID_STATUS,
ERROR_TYPE,
LOCAL_STORE_TYPES,
- PENDING_STORAGE_REPOSITORIES,
- TRIPLE_STORE_REPOSITORIES,
+ OPERATION_REQUEST_STATUS,
+ NETWORK_MESSAGE_TYPES,
+ NETWORK_SIGNATURES_FOLDER,
+ PUBLISHER_NODE_SIGNATURES_FOLDER,
} from '../../constants/constants.js';
import Command from '../command.js';
@@ -11,13 +13,17 @@ class LocalStoreCommand extends Command {
constructor(ctx) {
super(ctx);
this.tripleStoreService = ctx.tripleStoreService;
+ this.paranetService = ctx.paranetService;
this.pendingStorageService = ctx.pendingStorageService;
this.operationIdService = ctx.operationIdService;
+ this.operationService = ctx.publishService;
this.dataService = ctx.dataService;
this.ualService = ctx.ualService;
- this.serviceAgreementService = ctx.serviceAgreementService;
this.blockchainModuleManager = ctx.blockchainModuleManager;
this.commandExecutor = ctx.commandExecutor;
+ this.repositoryModuleManager = ctx.repositoryModuleManager;
+ this.signatureService = ctx.signatureService;
+ this.cryptoService = ctx.cryptoService;
this.errorType = ERROR_TYPE.LOCAL_STORE.LOCAL_STORE_ERROR;
}
@@ -26,9 +32,14 @@ class LocalStoreCommand extends Command {
const {
operationId,
blockchain,
+ storeType = LOCAL_STORE_TYPES.TRIPLE,
+ paranetId,
+ datasetRoot,
+ isOperationV0,
contract,
tokenId,
- storeType = LOCAL_STORE_TYPES.TRIPLE,
+ minimumNumberOfNodeReplications,
+ batchSize,
} = command.data;
try {
@@ -38,69 +49,131 @@ class LocalStoreCommand extends Command {
OPERATION_ID_STATUS.LOCAL_STORE.LOCAL_STORE_START,
);
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.LOCAL_STORE.LOCAL_STORE_GET_CACHED_OPERATION_ID_DATA_START,
+ operationId,
+ blockchain,
+ );
const cachedData = await this.operationIdService.getCachedOperationIdData(operationId);
-
- const keyword = await this.ualService.calculateLocationKeyword(
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.LOCAL_STORE.LOCAL_STORE_GET_CACHED_OPERATION_ID_DATA_END,
+ operationId,
blockchain,
- contract,
- tokenId,
);
if (storeType === LOCAL_STORE_TYPES.TRIPLE) {
const storePromises = [];
- if (cachedData.public.assertion && cachedData.public.assertionId) {
- storePromises.push(
- this.tripleStoreService.localStoreAsset(
- TRIPLE_STORE_REPOSITORIES.PRIVATE_CURRENT,
- cachedData.public.assertionId,
- cachedData.public.assertion,
- blockchain,
- contract,
- tokenId,
- keyword,
- ),
- );
- }
- if (cachedData.private.assertion && cachedData.private.assertionId) {
- storePromises.push(
- this.tripleStoreService.localStoreAsset(
- TRIPLE_STORE_REPOSITORIES.PRIVATE_CURRENT,
- cachedData.private.assertionId,
- cachedData.private.assertion,
- blockchain,
- contract,
- tokenId,
- keyword,
- ),
- );
+
+ if (isOperationV0) {
+ if (cachedData.public?.assertion && cachedData.public?.assertionId) {
+ const ual = this.ualService.deriveUAL(blockchain, contract, tokenId);
+
+ storePromises.push(
+ this.tripleStoreService.createV6KnowledgeCollection(
+ cachedData.public.assertion,
+ ual,
+ cachedData.private.assertion,
+ ),
+ );
+ }
}
+
await Promise.all(storePromises);
- } else {
- await this.pendingStorageService.cacheAssertion(
- PENDING_STORAGE_REPOSITORIES.PRIVATE,
+ } else if (storeType === LOCAL_STORE_TYPES.TRIPLE_PARANET) {
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.LOCAL_STORE.LOCAL_STORE_GET_PARANET_METADATA_START,
+ operationId,
+ blockchain,
+ );
+ const paranetMetadata = await this.blockchainModuleManager.getParanetMetadata(
+ blockchain,
+ paranetId,
+ );
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.LOCAL_STORE.LOCAL_STORE_GET_PARANET_METADATA_END,
+ operationId,
+ blockchain,
+ );
+
+ const paranetUAL = this.ualService.deriveUAL(
+ blockchain,
+ paranetMetadata.paranetKAStorageContract,
+ paranetMetadata.paranetKATokenId,
+ );
+ const paranetRepository = this.paranetService.getParanetRepositoryName(paranetUAL);
+
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.LOCAL_STORE.LOCAL_STORE_INITIALIZE_PARANET_REPOSITORY_START,
+ operationId,
+ blockchain,
+ );
+ await this.tripleStoreModuleManager.initializeParanetRepository(paranetRepository);
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.LOCAL_STORE.LOCAL_STORE_INITIALIZE_PARANET_REPOSITORY_END,
+ operationId,
+ blockchain,
+ );
+
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.LOCAL_STORE.LOCAL_STORE_INITIALIZE_PARANET_RECORD_START,
+ operationId,
blockchain,
- contract,
- tokenId,
- cachedData.public.assertionId,
- {
- ...cachedData,
- keyword,
- },
+ );
+ await this.paranetService.initializeParanetRecord(blockchain, paranetId);
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.LOCAL_STORE.LOCAL_STORE_INITIALIZE_PARANET_RECORD_END,
operationId,
+ blockchain,
);
- const updateCommitWindowDuration =
- await this.blockchainModuleManager.getUpdateCommitWindowDuration(blockchain);
- await this.commandExecutor.add({
- name: 'deletePendingStateCommand',
- sequence: [],
- delay: (updateCommitWindowDuration + 60) * 1000,
- data: {
- ...command.data,
- assertionId: cachedData.public.assertionId,
- },
- transactional: false,
- });
+ if (isOperationV0 && cachedData && cachedData.datasetRoot) {
+ // await this.tripleStoreService.localStoreAsset(
+ // paranetRepository,
+ // cachedData.public.assertionId,
+ // cachedData.public.assertion,
+ // blockchain,
+ // contract,
+ // tokenId,
+ // keyword,
+ // LOCAL_INSERT_FOR_CURATED_PARANET_MAX_ATTEMPTS,
+ // LOCAL_INSERT_FOR_CURATED_PARANET_RETRY_DELAY,
+ // );
+ }
+ if (isOperationV0 && cachedData && cachedData.datasetRoot) {
+ // await this.tripleStoreService.localStoreAsset(
+ // paranetRepository,
+ // cachedData.private.assertionId,
+ // cachedData.private.assertion,
+ // blockchain,
+ // contract,
+ // tokenId,
+ // keyword,
+ // LOCAL_INSERT_FOR_CURATED_PARANET_MAX_ATTEMPTS,
+ // LOCAL_INSERT_FOR_CURATED_PARANET_RETRY_DELAY,
+ // );
+ }
+
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.LOCAL_STORE.LOCAL_STORE_INCREMENT_PARANET_KA_COUNT_START,
+ operationId,
+ blockchain,
+ );
+ await this.repositoryModuleManager.incrementParanetKaCount(paranetId, blockchain);
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.LOCAL_STORE.LOCAL_STORE_INCREMENT_PARANET_KA_COUNT_END,
+ operationId,
+ blockchain,
+ );
+ // await this.repositoryModuleManager.createParanetSyncedAssetRecord(
+ // blockchain,
+ // this.ualService.deriveUAL(blockchain, contract, tokenId),
+ // paranetUAL,
+ // cachedData.public.datasetRoot,
+ // cachedData.private?.assertionId,
+ // cachedData.sender,
+ // cachedData.txHash,
+ // PARANET_SYNC_SOURCES.LOCAL_STORE,
+ // );
}
await this.operationIdService.updateOperationIdStatus(
@@ -109,17 +182,79 @@ class LocalStoreCommand extends Command {
OPERATION_ID_STATUS.LOCAL_STORE.LOCAL_STORE_END,
);
- await this.operationIdService.updateOperationIdStatus(
+ if (isOperationV0) {
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.COMPLETED,
+ );
+
+ return Command.empty();
+ }
+
+ const identityId = await this.blockchainModuleManager.getIdentityId(blockchain);
+ const { v, r, s, vs } = await this.signatureService.signMessage(
+ blockchain,
+ datasetRoot,
+ );
+ await this.signatureService.addSignatureToStorage(
+ NETWORK_SIGNATURES_FOLDER,
operationId,
+ identityId,
+ v,
+ r,
+ s,
+ vs,
+ );
+
+ const {
+ v: publisherNodeV,
+ r: publisherNodeR,
+ s: publisherNodeS,
+ vs: publisherNodeVS,
+ } = await this.signatureService.signMessage(
blockchain,
- OPERATION_ID_STATUS.COMPLETED,
+ this.cryptoService.keccak256EncodePacked(
+ ['uint72', 'bytes32'],
+ [identityId, datasetRoot],
+ ),
+ );
+ await this.signatureService.addSignatureToStorage(
+ PUBLISHER_NODE_SIGNATURES_FOLDER,
+ operationId,
+ identityId,
+ publisherNodeV,
+ publisherNodeR,
+ publisherNodeS,
+ publisherNodeVS,
+ );
+
+ const batchSizePar = this.operationService.getBatchSize(batchSize);
+ const minAckResponses = this.operationService.getMinAckResponses(
+ minimumNumberOfNodeReplications,
+ );
+
+ const updatedData = {
+ ...command.data,
+ batchSize: batchSizePar,
+ minAckResponses,
+ };
+
+ await this.operationService.processResponse(
+ { ...command, data: updatedData },
+ OPERATION_REQUEST_STATUS.COMPLETED,
+ {
+ messageType: NETWORK_MESSAGE_TYPES.RESPONSES.ACK,
+ messageData: { identityId, v, r, s, vs },
+ },
+ null,
);
} catch (e) {
await this.handleError(operationId, blockchain, e.message, this.errorType, true);
return Command.empty();
}
- return this.continueSequence(command.data, command.sequence);
+ return Command.empty();
}
/**
diff --git a/src/commands/paranet/paranet-sync-command.js b/src/commands/paranet/paranet-sync-command.js
index 0ba3b1809d..07d619de47 100644
--- a/src/commands/paranet/paranet-sync-command.js
+++ b/src/commands/paranet/paranet-sync-command.js
@@ -1,4 +1,3 @@
-/* eslint-disable no-unused-vars */
/* eslint-disable no-await-in-loop */
import { setTimeout } from 'timers/promises';
import Command from '../command.js';
@@ -6,11 +5,16 @@ import {
ERROR_TYPE,
PARANET_SYNC_FREQUENCY_MILLS,
OPERATION_ID_STATUS,
- CONTENT_ASSET_HASH_FUNCTION_ID,
- SIMPLE_ASSET_SYNC_PARAMETERS,
- TRIPLE_STORE_REPOSITORIES,
+ PARANET_SYNC_PARAMETERS,
PARANET_SYNC_KA_COUNT,
+ PARANET_SYNC_RETRIES_LIMIT,
+ PARANET_SYNC_RETRY_DELAY_MS,
OPERATION_STATUS,
+ PARANET_NODES_ACCESS_POLICIES,
+ PARANET_SYNC_SOURCES,
+ TRIPLE_STORE_REPOSITORIES,
+ LOCAL_INSERT_FOR_CURATED_PARANET_MAX_ATTEMPTS,
+ LOCAL_INSERT_FOR_CURATED_PARANET_RETRY_DELAY,
} from '../../constants/constants.js';
class ParanetSyncCommand extends Command {
@@ -28,344 +32,218 @@ class ParanetSyncCommand extends Command {
}
async execute(command) {
- const { operationId, paranetUAL } = command.data;
+ const { blockchain, operationId, paranetUAL, paranetId, paranetMetadata } = command.data;
- const { blockchain, contract, tokenId } = this.ualService.resolveUAL(paranetUAL);
- const paranetId = this.paranetService.constructParanetId(blockchain, contract, tokenId);
+ const paranetNodesAccessPolicy =
+ PARANET_NODES_ACCESS_POLICIES[paranetMetadata.nodesAccessPolicy];
this.logger.info(
- `Paranet sync: Starting paranet sync for paranet: ${paranetUAL}, operation ID: ${operationId}`,
- );
-
- let contractKaCount = await this.blockchainModuleManager.getParanetKnowledgeAssetsCount(
- blockchain,
- paranetId,
+ `Paranet sync: Starting paranet sync for paranet: ${paranetUAL} (${paranetId}), operation ID: ${operationId}`,
);
- contractKaCount = contractKaCount.toNumber();
- const cachedKaCount = (
- await this.repositoryModuleManager.getParanetKnowledgeAssetsCount(paranetId, blockchain)
- )[0].dataValues.ka_count;
+ // Fetch counts from blockchain and database
+ const contractKaCount = (
+ await this.blockchainModuleManager.getParanetKnowledgeCollectionCount(
+ blockchain,
+ paranetId,
+ )
+ ).toNumber();
+
+ const syncedAssetsCount =
+ await this.repositoryModuleManager.getParanetSyncedAssetRecordsCountByDataSource(
+ paranetUAL,
+ PARANET_SYNC_SOURCES.SYNC,
+ );
+ const localStoredAssetsCount =
+ await this.repositoryModuleManager.getParanetSyncedAssetRecordsCountByDataSource(
+ paranetUAL,
+ PARANET_SYNC_SOURCES.LOCAL_STORE,
+ );
- const cachedMissedKaCount =
+ const totalMissedAssetsCount =
await this.repositoryModuleManager.getCountOfMissedAssetsOfParanet(paranetUAL);
+ const missedAssetsCount =
+ await this.repositoryModuleManager.getFilteredCountOfMissedAssetsOfParanet(
+ paranetUAL,
+ PARANET_SYNC_RETRIES_LIMIT,
+ PARANET_SYNC_RETRY_DELAY_MS,
+ );
+
+ const paranetRepository = this.paranetService.getParanetRepositoryName(paranetUAL);
- if (cachedKaCount + cachedMissedKaCount >= contractKaCount) {
+ this.logger.info(
+ `Paranet sync: Paranet: ${paranetUAL} (${paranetId}) Total count of Paranet KAs in the contract: ${contractKaCount}; Synced KAs count: ${syncedAssetsCount}; Local Stored KAs count: ${localStoredAssetsCount}; Total count of missed KAs: ${totalMissedAssetsCount}`,
+ );
+
+ // First, attempt to sync missed KAs if any exist
+ if (missedAssetsCount > 0) {
this.logger.info(
- `Paranet sync: KA count from contract and in DB is the same, nothing new to sync, for paranet: ${paranetUAL}, operation ID: ${operationId}!`,
+ `Paranet sync: Attempting to sync ${missedAssetsCount} missed assets for paranet: ${paranetUAL} (${paranetId}), operation ID: ${operationId}!`,
);
- if (cachedMissedKaCount > 0) {
- this.logger.info(
- `Paranet sync: Missed KA count is ${cachedMissedKaCount} syncing ${
- cachedMissedKaCount > PARANET_SYNC_KA_COUNT
- ? PARANET_SYNC_KA_COUNT
- : cachedMissedKaCount
- } assets, for paranet: ${paranetUAL}, operation ID: ${operationId}!`,
- );
- const missedParanetAssets =
- await this.repositoryModuleManager.getMissedParanetAssetsRecords(
- paranetUAL,
- PARANET_SYNC_KA_COUNT,
- );
-
- const promises = [];
- // It's array of keywords not tokenId
- // .map((ka) => ka.tokenId)
- missedParanetAssets.forEach((missedParanetAsset) => {
- promises.push(
- (async () => {
- const { knowledgeAssetId } = missedParanetAsset;
- this.logger.info(
- `Paranet sync: Syncing missed token id: ${knowledgeAssetId} for ${paranetUAL} with operation id: ${operationId}`,
- );
-
- const { knowledgeAssetStorageContract, tokenId: kaTokenId } =
- await this.blockchainModuleManager.getParanetKnowledgeAssetLocator(
- blockchain,
- knowledgeAssetId,
- );
-
- const assertionIds = await this.blockchainModuleManager.getAssertionIds(
- blockchain,
- knowledgeAssetStorageContract,
- kaTokenId,
- );
-
- let isSuccessful = true;
- for (
- let stateIndex = assertionIds.length - 2;
- stateIndex >= 0;
- stateIndex -= 1
- ) {
- isSuccessful =
- isSuccessful &&
- (await this.syncAsset(
- blockchain,
- knowledgeAssetStorageContract,
- kaTokenId,
- assertionIds,
- stateIndex,
- paranetId,
- tokenId,
- TRIPLE_STORE_REPOSITORIES.PUBLIC_HISTORY,
- false,
- // It should never delete as it never was in storage
- // But maybe will because this is unfinalized
- stateIndex === assertionIds.length - 2,
- paranetUAL,
- knowledgeAssetId,
- ));
- }
- // Then sync the last one, but put it in the current repo
- isSuccessful =
- isSuccessful &&
- (await this.syncAsset(
- blockchain,
- knowledgeAssetStorageContract,
- kaTokenId,
- assertionIds,
- assertionIds.length - 1,
- paranetId,
- tokenId,
- TRIPLE_STORE_REPOSITORIES.PUBLIC_CURRENT,
- true,
- false,
- paranetUAL,
- knowledgeAssetId,
- ));
-
- if (isSuccessful) {
- const ual = this.ualService.deriveUAL(
- blockchain,
- knowledgeAssetStorageContract,
- kaTokenId,
- );
- await this.repositoryModuleManager.removeMissedParanetAssetRecord(
- ual,
- );
- }
-
- return isSuccessful;
- })(),
- ); // Immediately invoke the async function
- });
- const promisesResolution = await Promise.all(promises);
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.PARANET.PARANET_SYNC_MISSED_KAS_SYNC_START,
+ );
- const successfulCount = promisesResolution.reduce((count, value) => {
- if (value) {
- return count + 1;
- }
- return count;
- }, 0);
+ const [successulMissedSyncsCount, failedMissedSyncsCount] = await this.syncMissedKAs(
+ paranetUAL,
+ paranetId,
+ paranetNodesAccessPolicy,
+ paranetRepository,
+ operationId,
+ );
- await this.repositoryModuleManager.updateParanetKaCount(
- paranetId,
- blockchain,
- cachedKaCount + successfulCount,
- );
- return Command.repeat();
- }
- return Command.repeat();
- }
+ this.logger.info(
+ `Paranet sync: Successful missed assets syncs: ${successulMissedSyncsCount}; ` +
+ `Failed missed assets syncs: ${failedMissedSyncsCount} for paranet: ${paranetUAL} ` +
+ `(${paranetId}), operation ID: ${operationId}!`,
+ );
- this.logger.info(
- `Paranet sync: Syncing ${
- contractKaCount + cachedMissedKaCount - cachedKaCount
- } new assets for paranet: ${paranetUAL}, operation ID: ${operationId}`,
- );
- // TODO: Rename i, should it be cachedKaCount + 1 as cachedKaCount is already in, but count is index
- const kaToUpdate = [];
- for (
- let i = cachedKaCount + cachedMissedKaCount;
- i <= contractKaCount;
- i += PARANET_SYNC_KA_COUNT
- ) {
- const nextKaArray =
- await this.blockchainModuleManager.getParanetKnowledgeAssetsWithPagination(
- blockchain,
- paranetId,
- i,
- PARANET_SYNC_KA_COUNT,
- );
- if (!nextKaArray.length) break;
- kaToUpdate.push(...nextKaArray);
+ await this.operationIdService.updateOperationIdStatusWithValues(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.PARANET.PARANET_SYNC_MISSED_KAS_SYNC_END,
+ successulMissedSyncsCount,
+ failedMissedSyncsCount,
+ );
}
- const promises = [];
- // It's array of keywords not tokenId
- // .map((ka) => ka.tokenId)
- kaToUpdate.forEach((knowledgeAssetId) => {
- promises.push(
- (async () => {
- this.logger.info(
- `Paranet sync: Syncing token id: ${knowledgeAssetId} for ${paranetUAL} with operation id: ${operationId}`,
- );
-
- const { knowledgeAssetStorageContract, tokenId: kaTokenId } =
- await this.blockchainModuleManager.getParanetKnowledgeAssetLocator(
- blockchain,
- knowledgeAssetId,
- );
+ // Then, check for new KAs on the blockchain
+ if (syncedAssetsCount + localStoredAssetsCount + totalMissedAssetsCount < contractKaCount) {
+ this.logger.info(
+ `Paranet sync: Syncing ${
+ contractKaCount -
+ (syncedAssetsCount + localStoredAssetsCount + totalMissedAssetsCount)
+ } new assets for paranet: ${paranetUAL} (${paranetId}), operation ID: ${operationId}`,
+ );
- const assertionIds = await this.blockchainModuleManager.getAssertionIds(
- blockchain,
- knowledgeAssetStorageContract,
- kaTokenId,
- );
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.PARANET.PARANET_SYNC_NEW_KAS_SYNC_START,
+ );
- let isSuccessful = true;
- for (
- let stateIndex = assertionIds.length - 2;
- stateIndex >= 0;
- stateIndex -= 1
- ) {
- isSuccessful =
- isSuccessful &&
- (await this.syncAsset(
- blockchain,
- knowledgeAssetStorageContract,
- kaTokenId,
- assertionIds,
- stateIndex,
- paranetId,
- tokenId,
- TRIPLE_STORE_REPOSITORIES.PUBLIC_HISTORY,
- false,
- // It should never delete as it never was in storage
- // But maybe will because this is not finalized
- stateIndex === assertionIds.length - 2,
- paranetUAL,
- knowledgeAssetId,
- ));
- }
-
- // Then sync the last one, but put it in the current repo
- isSuccessful =
- isSuccessful &&
- (await this.syncAsset(
- blockchain,
- knowledgeAssetStorageContract,
- kaTokenId,
- assertionIds,
- assertionIds.length - 1,
- paranetId,
- tokenId,
- TRIPLE_STORE_REPOSITORIES.PUBLIC_CURRENT,
- true,
- false,
- paranetUAL,
- knowledgeAssetId,
- ));
+ const [successulNewSyncsCount, failedNewSyncsCount] = await this.syncNewKAs(
+ blockchain,
+ syncedAssetsCount + missedAssetsCount,
+ contractKaCount,
+ paranetUAL,
+ paranetId,
+ paranetNodesAccessPolicy,
+ paranetRepository,
+ operationId,
+ );
- return isSuccessful;
- })(),
- ); // Immediately invoke the async function
- });
+ this.logger.info(
+ `Paranet sync: Successful new assets syncs: ${successulNewSyncsCount}; ` +
+ `Failed new assets syncs: ${failedNewSyncsCount} for paranet: ${paranetUAL} ` +
+ `(${paranetId}), operation ID: ${operationId}!`,
+ );
- const promisesResolution = await Promise.all(promises);
+ await this.operationIdService.updateOperationIdStatusWithValues(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.PARANET.PARANET_SYNC_NEW_KAS_SYNC_END,
+ successulNewSyncsCount,
+ failedNewSyncsCount,
+ );
- const successfulCount = promisesResolution.reduce((count, value) => {
- if (value) {
- return count + 1;
- }
- return count;
- }, 0);
+ await this.operationIdService.updateOperationIdStatusWithValues(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.COMPLETED,
+ successulNewSyncsCount,
+ failedNewSyncsCount,
+ );
+ } else {
+ this.logger.info(
+ `Paranet sync: No new assets to sync for paranet: ${paranetUAL} (${paranetId}), operation ID: ${operationId}!`,
+ );
+ }
- await this.repositoryModuleManager.updateParanetKaCount(
- paranetId,
- blockchain,
- cachedKaCount + successfulCount,
- );
return Command.repeat();
}
- async syncAsset(
+ async syncAssetState(
+ ual,
blockchain,
contract,
tokenId,
assertionIds,
stateIndex,
paranetId,
- paranetTokenId,
- paranetRepository,
- latestAsset,
- deleteFromEarlier,
+ latestState,
paranetUAL,
- knowledgeAssetId,
+ paranetNodesAccessPolicy,
+ paranetRepository,
) {
- const ual = this.ualService.deriveUAL(blockchain, contract, tokenId);
- try {
- const statePresentInParanetRepository =
- await this.tripleStoreService.paranetAssetExists(
- blockchain,
- contract,
- tokenId,
- contract,
- paranetTokenId,
- );
-
- if (statePresentInParanetRepository) {
- this.logger.trace(
- `Paranet sync: StateIndex: ${stateIndex} for tokenId: ${tokenId} found in triple store blockchain: ${blockchain}`,
- );
- return true;
- }
+ const assertionId = assertionIds[stateIndex];
- this.logger.debug(
- `Paranet sync: Fetching state index: ${stateIndex + 1} of ${
- assertionIds.length
- } for asset with ual: ${ual}. blockchain: ${blockchain}`,
- );
- const assertionId = assertionIds[stateIndex];
+ this.logger.debug(
+ `Paranet sync: Fetching state: ${assertionId} index: ${stateIndex + 1} of ${
+ assertionIds.length
+ } for asset with ual: ${ual}.`,
+ );
- const operationId = await this.operationIdService.generateOperationId(
+ try {
+ const getOperationId = await this.operationIdService.generateOperationId(
OPERATION_ID_STATUS.GET.GET_START,
);
-
- await Promise.all([
- this.operationIdService.updateOperationIdStatus(
- operationId,
- blockchain,
- OPERATION_ID_STATUS.GET.GET_INIT_START,
- ),
- this.repositoryModuleManager.createOperationRecord(
- this.getService.getOperationName(),
- operationId,
- OPERATION_STATUS.IN_PROGRESS,
- ),
- ]);
-
- const hashFunctionId = CONTENT_ASSET_HASH_FUNCTION_ID;
-
+ this.operationIdService.updateOperationIdStatus(
+ getOperationId,
+ blockchain,
+ OPERATION_ID_STATUS.GET.GET_INIT_START,
+ );
+ this.repositoryModuleManager.createOperationRecord(
+ this.getService.getOperationName(),
+ getOperationId,
+ OPERATION_STATUS.IN_PROGRESS,
+ );
this.logger.debug(
- `Paranet sync: Get for ${ual} with operation id ${operationId} initiated. blockchain: ${blockchain}`,
+ `Paranet sync: Get for ${ual} with operation id ${getOperationId} initiated.`,
);
-
- await this.commandExecutor.add({
- name: 'networkGetCommand',
- sequence: [],
- delay: 0,
- data: {
- operationId,
- id: ual,
- blockchain,
- contract,
- tokenId,
- state: assertionId,
- hashFunctionId,
- assertionId,
- assetSync: true,
- stateIndex,
- paranetSync: true,
- paranetTokenId,
- paranetLatestAsset: latestAsset,
- },
- transactional: false,
- });
+ if (paranetNodesAccessPolicy === 'OPEN') {
+ await this.commandExecutor.add({
+ name: 'networkGetCommand',
+ sequence: [],
+ delay: 0,
+ data: {
+ operationId: getOperationId,
+ id: ual,
+ blockchain,
+ contract,
+ tokenId,
+ state: assertionId,
+ assertionId,
+ paranetId,
+ paranetUAL,
+ },
+ transactional: false,
+ });
+ } else if (paranetNodesAccessPolicy === 'CURATED') {
+ await this.commandExecutor.add({
+ name: 'curatedParanetNetworkGetCommand',
+ sequence: [],
+ delay: 0,
+ data: {
+ operationId: getOperationId,
+ id: ual,
+ blockchain,
+ contract,
+ tokenId,
+ state: assertionId,
+ assertionId,
+ paranetId,
+ paranetUAL,
+ },
+ transactional: false,
+ });
+ }
await this.operationIdService.updateOperationIdStatus(
- operationId,
+ getOperationId,
blockchain,
OPERATION_ID_STATUS.GET.GET_INIT_END,
);
@@ -373,42 +251,308 @@ class ParanetSyncCommand extends Command {
let attempt = 0;
let getResult;
do {
- await setTimeout(SIMPLE_ASSET_SYNC_PARAMETERS.GET_RESULT_POLLING_INTERVAL_MILLIS);
- getResult = await this.operationIdService.getOperationIdRecord(operationId);
+ await setTimeout(PARANET_SYNC_PARAMETERS.GET_RESULT_POLLING_INTERVAL_MILLIS);
+ getResult = await this.operationIdService.getOperationIdRecord(getOperationId);
attempt += 1;
} while (
- attempt < SIMPLE_ASSET_SYNC_PARAMETERS.GET_RESULT_POLLING_MAX_ATTEMPTS &&
+ attempt < PARANET_SYNC_PARAMETERS.GET_RESULT_POLLING_MAX_ATTEMPTS &&
getResult?.status !== OPERATION_ID_STATUS.FAILED &&
getResult?.status !== OPERATION_ID_STATUS.COMPLETED
);
- const getOperationCachedData = await this.operationIdService.getCachedOperationIdData(
- operationId,
- );
- if (getOperationCachedData?.message === 'Unable to find assertion on the network!') {
+ if (getResult?.status !== OPERATION_ID_STATUS.COMPLETED) {
+ this.logger.warn(
+ `Paranet sync: Unable to sync tokenId: ${tokenId}, for contract: ${contract} state index: ${stateIndex} blockchain: ${blockchain}, GET result: ${JSON.stringify(
+ getResult,
+ )}`,
+ );
+
await this.repositoryModuleManager.createMissedParanetAssetRecord({
blockchainId: blockchain,
ual,
paranetUal: paranetUAL,
- knowledgeAssetId,
});
+
return false;
}
+
+ const data = await this.operationIdService.getCachedOperationIdData(getOperationId);
+ this.logger.debug(
+ `Paranet sync: ${data.assertion.length} nquads found for asset with ual: ${ual}, state index: ${stateIndex}, assertionId: ${assertionId}`,
+ );
+
+ let repository;
+ if (latestState) {
+ repository = paranetRepository;
+ } else if (paranetNodesAccessPolicy === 'OPEN') {
+ repository = TRIPLE_STORE_REPOSITORIES.PUBLIC_HISTORY;
+ } else if (paranetNodesAccessPolicy === 'CURATED') {
+ repository = TRIPLE_STORE_REPOSITORIES.PRIVATE_HISTORY;
+ } else {
+ throw new Error('Unsupported access policy');
+ }
+
+ await this.tripleStoreService.localStoreAsset(
+ repository,
+ assertionId,
+ data.assertion,
+ blockchain,
+ contract,
+ tokenId,
+ LOCAL_INSERT_FOR_CURATED_PARANET_MAX_ATTEMPTS,
+ LOCAL_INSERT_FOR_CURATED_PARANET_RETRY_DELAY,
+ );
+ if (paranetNodesAccessPolicy === 'CURATED' && data.privateAssertion) {
+ await this.tripleStoreService.localStoreAsset(
+ repository,
+ data.syncedAssetRecord.privateAssertionId,
+ data.privateAssertion,
+ blockchain,
+ contract,
+ tokenId,
+ );
+ }
+ const privateAssertionId =
+ paranetNodesAccessPolicy === 'CURATED'
+ ? data.syncedAssetRecord?.privateAssertionId
+ : null;
+
+ await this.repositoryModuleManager.incrementParanetKaCount(paranetId, blockchain);
+ await this.repositoryModuleManager.createParanetSyncedAssetRecord(
+ blockchain,
+ ual,
+ paranetUAL,
+ assertionId,
+ privateAssertionId,
+ data.syncedAssetRecord?.sender,
+ data.syncedAssetRecord?.transactionHash,
+ PARANET_SYNC_SOURCES.SYNC,
+ );
+
+ return true;
} catch (error) {
this.logger.warn(
`Paranet sync: Unable to sync tokenId: ${tokenId}, for contract: ${contract} state index: ${stateIndex} blockchain: ${blockchain}, error: ${error}`,
);
+
await this.repositoryModuleManager.createMissedParanetAssetRecord({
blockchainId: blockchain,
ual,
paranetUal: paranetUAL,
- knowledgeAssetId,
});
return false;
}
+ }
+
+ async syncAsset(
+ ual,
+ blockchain,
+ contract,
+ tokenId,
+ paranetUAL,
+ paranetId,
+ paranetNodesAccessPolicy,
+ paranetRepository,
+ operationId,
+ removeMissingAssetRecord = false,
+ ) {
+ try {
+ this.logger.info(
+ `Paranet sync: Syncing asset: ${ual} for paranet: ${paranetId}, operation ID: ${operationId}`,
+ );
+
+ const assertionIds =
+ await this.blockchainModuleManager.getKnowledgeCollectionMerkleRoots(
+ blockchain,
+ contract,
+ tokenId,
+ );
+
+ let isSuccessful = true;
+ for (let stateIndex = 0; stateIndex < assertionIds.length; stateIndex += 1) {
+ isSuccessful =
+ isSuccessful &&
+ (await this.syncAssetState(
+ ual,
+ blockchain,
+ contract,
+ tokenId,
+ assertionIds,
+ stateIndex,
+ paranetId,
+ stateIndex === assertionIds.length - 1,
+ paranetUAL,
+ paranetNodesAccessPolicy,
+ paranetRepository,
+ ));
+ }
+
+ if (isSuccessful && removeMissingAssetRecord) {
+ await this.repositoryModuleManager.removeMissedParanetAssetRecordsByUAL(ual);
+ }
+
+ return isSuccessful;
+ } catch (error) {
+ this.logger.warn(
+ `Paranet sync: Failed to sync asset: ${ual} for paranet: ${paranetId}, error: ${error}`,
+ );
+ await this.repositoryModuleManager.createMissedParanetAssetRecord({
+ blockchain,
+ ual,
+ paranetUAL,
+ });
+
+ return false;
+ }
+ }
+
+ async syncMissedKAs(
+ paranetUAL,
+ paranetId,
+ paranetNodesAccessPolicy,
+ paranetRepository,
+ operationId,
+ ) {
+ const missedParanetAssets =
+ await this.repositoryModuleManager.getMissedParanetAssetsRecordsWithRetryCount(
+ paranetUAL,
+ PARANET_SYNC_RETRIES_LIMIT,
+ PARANET_SYNC_RETRY_DELAY_MS,
+ );
+
+ const results = [];
+
+ // Loop through missedParanetAssets in batches
+ for (let i = 0; i < missedParanetAssets.length; i += PARANET_SYNC_KA_COUNT) {
+ // Get the current batch
+ const batch = missedParanetAssets.slice(i, i + PARANET_SYNC_KA_COUNT);
+
+ // Map the batch to an array of promises
+ const promises = batch.map((missedParanetAsset) => {
+ const {
+ blockchain: knowledgeAssetBlockchain,
+ contract: knowledgeAssetStorageContract,
+ tokenId: knowledgeAssetTokenId,
+ } = this.ualService.resolveUAL(missedParanetAsset.ual);
+
+ return this.syncAsset(
+ missedParanetAsset.ual,
+ knowledgeAssetBlockchain,
+ knowledgeAssetStorageContract,
+ knowledgeAssetTokenId,
+ paranetUAL,
+ paranetId,
+ paranetNodesAccessPolicy,
+ paranetRepository,
+ operationId,
+ true, // removeMissingAssetRecord
+ );
+ });
+
+ // Await the promises in the current batch
+ const batchResults = await Promise.all(promises);
+
+ // Accumulate the results
+ results.push(...batchResults);
+ }
+
+ const successfulCount = results.filter(Boolean).length;
+
+ return [successfulCount, results.length - successfulCount];
+ }
+
+ async syncNewKAs(
+ blockchain,
+ startIndex,
+ contractKaCount,
+ paranetUAL,
+ paranetId,
+ paranetNodesAccessPolicy,
+ paranetRepository,
+ operationId,
+ ) {
+ let i = Number(startIndex);
+
+ const results = [];
+ while (i <= contractKaCount) {
+ const nextKaArray =
+ await this.blockchainModuleManager.getParanetKnowledgeCollectionsWithPagination(
+ blockchain,
+ paranetId,
+ i,
+ PARANET_SYNC_KA_COUNT,
+ );
+
+ if (nextKaArray.length === 0) {
+ break;
+ }
+
+ i += nextKaArray.length;
+
+ const filteredKAs = [];
+ // NOTE: This could also be processed in parallel if needed
+ for (const knowledgeAssetId of nextKaArray) {
+ const { knowledgeAssetStorageContract, tokenId: knowledgeAssetTokenId } =
+ await this.blockchainModuleManager.getParanetKnowledgeCollectionLocator(
+ blockchain,
+ knowledgeAssetId,
+ );
+
+ const ual = this.ualService.deriveUAL(
+ blockchain,
+ knowledgeAssetStorageContract,
+ knowledgeAssetTokenId,
+ );
+
+ const isAlreadySynced =
+ await this.repositoryModuleManager.paranetSyncedAssetRecordExists(ual);
+
+ // Skip already synced KAs
+ if (isAlreadySynced) {
+ continue;
+ }
+
+ const isMissedAsset =
+ await this.repositoryModuleManager.missedParanetAssetRecordExists(ual);
+
+ // Skip missed KAs as they are synced in the other function
+ if (isMissedAsset) {
+ continue;
+ }
+
+ filteredKAs.push([
+ ual,
+ blockchain,
+ knowledgeAssetStorageContract,
+ knowledgeAssetTokenId,
+ ]);
+ }
+
+ if (filteredKAs.length > 0) {
+ const promises = filteredKAs.map(
+ ([syncKAUal, syncKABlockchain, syncKAContract, syncKATokenId]) =>
+ this.syncAsset(
+ syncKAUal,
+ syncKABlockchain,
+ syncKAContract,
+ syncKATokenId,
+ paranetUAL,
+ paranetId,
+ paranetNodesAccessPolicy,
+ paranetRepository,
+ operationId,
+ false, // removeMissingAssetRecord
+ ),
+ );
+
+ const batchResults = await Promise.all(promises);
+ results.push(...batchResults);
+ }
+ }
- return true;
+ const successfulCount = results.filter(Boolean).length;
+ return [successfulCount, results.length - successfulCount];
}
/**
diff --git a/src/commands/paranet/start-paranet-sync-commands.js b/src/commands/paranet/start-paranet-sync-commands.js
index 4a5ba78321..eeabe6a70d 100644
--- a/src/commands/paranet/start-paranet-sync-commands.js
+++ b/src/commands/paranet/start-paranet-sync-commands.js
@@ -1,5 +1,9 @@
import Command from '../command.js';
-import { ERROR_TYPE, PARANET_SYNC_FREQUENCY_MILLS } from '../../constants/constants.js';
+import {
+ ERROR_TYPE,
+ PARANET_SYNC_FREQUENCY_MILLS,
+ OPERATION_ID_STATUS,
+} from '../../constants/constants.js';
class StartParanetSyncCommands extends Command {
constructor(ctx) {
@@ -8,23 +12,35 @@ class StartParanetSyncCommands extends Command {
this.ualService = ctx.ualService;
this.blockchainModuleManager = ctx.blockchainModuleManager;
this.repositoryModuleManager = ctx.repositoryModuleManager;
+ this.paranetService = ctx.paranetService;
this.errorType = ERROR_TYPE.PARANET.START_PARANET_SYNC_ERROR;
}
async execute() {
- const operationId = this.operationIdService.generateId();
-
- this.logger.info(
- `Paranet sync: Starting Paranet sync command for operation id: ${operationId}`,
- );
-
await this.commandExecutor.delete('paranetSyncCommand');
const promises = [];
this.config.assetSync?.syncParanets.forEach(async (paranetUAL) => {
+ const operationId = this.operationIdService.generateId(
+ OPERATION_ID_STATUS.PARANET.PARANET_SYNC_START,
+ );
+
+ const { blockchain, contract, tokenId } = this.ualService.resolveUAL(paranetUAL);
+ const paranetId = this.paranetService.constructParanetId(contract, tokenId);
+
+ const paranetMetadata = await this.blockchainModuleManager.getParanetMetadata(
+ blockchain,
+ paranetId,
+ );
+
const commandData = {
+ blockchain,
+ contract,
+ tokenId,
paranetUAL,
+ paranetId,
+ paranetMetadata,
operationId,
};
diff --git a/src/commands/protocols/ask/receiver/v1.0.0/v1-0-0-handle-ask-request-command.js b/src/commands/protocols/ask/receiver/v1.0.0/v1-0-0-handle-ask-request-command.js
new file mode 100644
index 0000000000..052a17f336
--- /dev/null
+++ b/src/commands/protocols/ask/receiver/v1.0.0/v1-0-0-handle-ask-request-command.js
@@ -0,0 +1,86 @@
+import HandleProtocolMessageCommand from '../../../common/handle-protocol-message-command.js';
+import {
+ ERROR_TYPE,
+ NETWORK_MESSAGE_TYPES,
+ OPERATION_ID_STATUS,
+} from '../../../../../constants/constants.js';
+
+class HandleAskRequestCommand extends HandleProtocolMessageCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.operationService = ctx.askService;
+ this.tripleStoreService = ctx.tripleStoreService;
+ this.pendingStorageService = ctx.pendingStorageService;
+ this.paranetService = ctx.paranetService;
+
+ this.errorType = ERROR_TYPE.ASK.ASK_REQUEST_REMOTE_ERROR;
+ this.operationStartEvent = OPERATION_ID_STATUS.ASK.ASK_REMOTE_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.ASK.ASK_REMOTE_END;
+ this.prepareMessageStartEvent = OPERATION_ID_STATUS.ASK.ASK_REMOTE_PREPARE_MESSAGE_START;
+ this.prepareMessageEndEvent = OPERATION_ID_STATUS.ASK.ASK_REMOTE_PREPARE_MESSAGE_END;
+ this.sendMessageResponseStartEvent = OPERATION_ID_STATUS.ASK.ASK_REMOTE_SEND_MESSAGE_START;
+ this.sendMessageResponseEndEvent = OPERATION_ID_STATUS.ASK.ASK_REMOTE_SEND_MESSAGE_END;
+ this.removeCachedSessionStartEvent =
+ OPERATION_ID_STATUS.ASK.ASK_REMOTE_REMOVE_CACHED_SESSION_START;
+ this.removeCachedSessionEndEvent =
+ OPERATION_ID_STATUS.ASK.ASK_REMOTE_REMOVE_CACHED_SESSION_END;
+ }
+
+ async prepareMessage(commandData) {
+ const { ual, operationId, blockchain } = commandData;
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.ASK.ASK_REMOTE_START,
+ );
+
+ const knowledgeCollectionExistsInUnifiedGraph =
+ await this.tripleStoreService.checkIfKnowledgeCollectionExistsInUnifiedGraph(ual);
+ if (knowledgeCollectionExistsInUnifiedGraph) {
+ await this.operationService.markOperationAsCompleted(
+ operationId,
+ blockchain,
+ knowledgeCollectionExistsInUnifiedGraph,
+ [
+ OPERATION_ID_STATUS.ASK.ASK_FETCH_FROM_NODES_END,
+ OPERATION_ID_STATUS.ASK.ASK_END,
+ OPERATION_ID_STATUS.COMPLETED,
+ ],
+ );
+ }
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.ASK.ASK_REMOTE_END,
+ );
+
+ return knowledgeCollectionExistsInUnifiedGraph
+ ? {
+ messageType: NETWORK_MESSAGE_TYPES.RESPONSES.ACK,
+ messageData: { knowledgeCollectionExistsInUnifiedGraph },
+ }
+ : {
+ messageType: NETWORK_MESSAGE_TYPES.RESPONSES.NACK,
+ messageData: { errorMessage: `Unable to find knowledge collection ${ual}` },
+ };
+ }
+
+ /**
+ * Builds default handleAskRequestCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'v1_0_0HandleAskRequestCommand',
+ delay: 0,
+ transactional: false,
+ errorType: ERROR_TYPE.ASK.ASK_REQUEST_REMOTE_ERROR,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default HandleAskRequestCommand;
diff --git a/src/commands/protocols/ask/sender/ask-find-shard-command.js b/src/commands/protocols/ask/sender/ask-find-shard-command.js
new file mode 100644
index 0000000000..e87fcfccca
--- /dev/null
+++ b/src/commands/protocols/ask/sender/ask-find-shard-command.js
@@ -0,0 +1,42 @@
+import FindShardCommand from '../../common/find-shard-command.js';
+import { ERROR_TYPE, OPERATION_ID_STATUS } from '../../../../constants/constants.js';
+
+class AskFindShardCommand extends FindShardCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.operationService = ctx.askService;
+
+ this.errorType = ERROR_TYPE.FIND_SHARD.ASK_FIND_SHARD_ERROR;
+ this.operationStartEvent = OPERATION_ID_STATUS.ASK.ASK_FIND_NODES_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.ASK.ASK_FIND_NODES_END;
+ this.findShardNodesStartEvent =
+ OPERATION_ID_STATUS.ASK.ASK_FIND_NODES_FIND_SHARD_NODES_START;
+ this.findShardNodesEndEvent = OPERATION_ID_STATUS.ASK.ASK_FIND_NODES_FIND_SHARD_NODES_END;
+ this.processFoundNodesStartEvent =
+ OPERATION_ID_STATUS.ASK.ASK_FIND_NODES_PROCESS_FOUND_NODES_START;
+ this.processFoundNodesEndEvent =
+ OPERATION_ID_STATUS.ASK.ASK_FIND_NODES_PROCESS_FOUND_NODES_END;
+ }
+
+ // eslint-disable-next-line no-unused-vars
+ getOperationCommandSequence(nodePartOfShard, commandData) {
+ return [];
+ }
+
+ /**
+ * Builds default askFindShardCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'askFindShardCommand',
+ delay: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default AskFindShardCommand;
diff --git a/src/commands/protocols/ask/sender/ask-schedule-messages-command.js b/src/commands/protocols/ask/sender/ask-schedule-messages-command.js
new file mode 100644
index 0000000000..23f0457f6d
--- /dev/null
+++ b/src/commands/protocols/ask/sender/ask-schedule-messages-command.js
@@ -0,0 +1,39 @@
+import ProtocolScheduleMessagesCommand from '../../common/protocol-schedule-messages-command.js';
+import { OPERATION_ID_STATUS, ERROR_TYPE } from '../../../../constants/constants.js';
+
+class AskScheduleMessagesCommand extends ProtocolScheduleMessagesCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.operationService = ctx.askService;
+
+ this.errorType = ERROR_TYPE.ASK.ASK_ERROR;
+ this.operationStartEvent = OPERATION_ID_STATUS.ASK.ASK_FETCH_FROM_NODES_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.ASK.ASK_FETCH_FROM_NODES_END;
+ }
+
+ getNextCommandData(command) {
+ return {
+ ...super.getNextCommandData(command),
+ ual: command.data.ual,
+ operationId: command.data.operationId,
+ minimumNumberOfNodeReplications: command.data.minimumNumberOfNodeReplications,
+ };
+ }
+
+ /**
+ * Builds default askScheduleMessagesCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'askScheduleMessagesCommand',
+ delay: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default AskScheduleMessagesCommand;
diff --git a/src/commands/protocols/ask/sender/network-ask-command.js b/src/commands/protocols/ask/sender/network-ask-command.js
new file mode 100644
index 0000000000..e4be39743b
--- /dev/null
+++ b/src/commands/protocols/ask/sender/network-ask-command.js
@@ -0,0 +1,31 @@
+import NetworkProtocolCommand from '../../common/network-protocol-command.js';
+import { ERROR_TYPE, OPERATION_ID_STATUS } from '../../../../constants/constants.js';
+
+class NetworkAskCommand extends NetworkProtocolCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.operationService = ctx.askService;
+ this.ualService = ctx.ualService;
+
+ this.errorType = ERROR_TYPE.ASK.ASK_NETWORK_ERROR;
+ this.operationStartEvent = OPERATION_ID_STATUS.ASK.ASK_NETWORK_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.ASK.ASK_NETWORK_END;
+ }
+
+ /**
+ * Builds default networkGetCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'networkAskCommand',
+ delay: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default NetworkAskCommand;
diff --git a/src/commands/protocols/ask/sender/v1.0.0/v1-0-0-ask-request-command.js b/src/commands/protocols/ask/sender/v1.0.0/v1-0-0-ask-request-command.js
new file mode 100644
index 0000000000..88f6c7f720
--- /dev/null
+++ b/src/commands/protocols/ask/sender/v1.0.0/v1-0-0-ask-request-command.js
@@ -0,0 +1,86 @@
+import ProtocolRequestCommand from '../../../common/protocol-request-command.js';
+import {
+ NETWORK_MESSAGE_TIMEOUT_MILLS,
+ ERROR_TYPE,
+ OPERATION_REQUEST_STATUS,
+ OPERATION_STATUS,
+ OPERATION_ID_STATUS,
+} from '../../../../../constants/constants.js';
+
+class AskRequestCommand extends ProtocolRequestCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.operationService = ctx.askService;
+ this.operationIdService = ctx.operationIdService;
+
+ this.errorType = ERROR_TYPE.ASK.ASK_REQUEST_ERROR;
+ this.operationStartEvent = OPERATION_ID_STATUS.ASK.ASK_REQUEST_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.ASK.ASK_REQUEST_END;
+ this.prepareMessageStartEvent = OPERATION_ID_STATUS.ASK.ASK_REQUEST_PREPARE_MESSAGE_START;
+ this.prepareMessageEndEvent = OPERATION_ID_STATUS.ASK.ASK_REQUEST_PREPARE_MESSAGE_END;
+ this.sendMessageStartEvent = OPERATION_ID_STATUS.ASK.ASK_REQUEST_SEND_MESSAGE_START;
+ this.sendMessageEndEvent = OPERATION_ID_STATUS.ASK.ASK_REQUEST_SEND_MESSAGE_END;
+ }
+
+ async shouldSendMessage(command) {
+ const { operationId } = command.data;
+
+ const { status } = await this.operationService.getOperationStatus(operationId);
+
+ if (status === OPERATION_STATUS.IN_PROGRESS) {
+ return true;
+ }
+ this.logger.trace(
+ `${command.name} skipped for operationId: ${operationId} with status ${status}`,
+ );
+
+ return false;
+ }
+
+ async prepareMessage(command) {
+ const { ual, operationId, numberOfFoundNodes, blockchain } = command.data;
+
+ return {
+ ual,
+ operationId,
+ numberOfFoundNodes,
+ blockchain,
+ };
+ }
+
+ messageTimeout() {
+ return NETWORK_MESSAGE_TIMEOUT_MILLS.ASK.REQUEST;
+ }
+
+ async handleAck(command, responseData) {
+ if (responseData?.knowledgeCollectionExistsInUnifiedGraph) {
+ await this.operationService.processResponse(
+ command,
+ OPERATION_REQUEST_STATUS.COMPLETED,
+ responseData,
+ );
+
+ return ProtocolRequestCommand.empty();
+ }
+
+ return this.handleNack(command, responseData);
+ }
+
+ /**
+ * Builds default askRequestCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'v1_0_0AskRequestCommand',
+ delay: 0,
+ retries: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default AskRequestCommand;
diff --git a/src/commands/protocols/common/epoch-check/blockchain-epoch-check-command.js b/src/commands/protocols/common/epoch-check/blockchain-epoch-check-command.js
deleted file mode 100644
index 7932f684c7..0000000000
--- a/src/commands/protocols/common/epoch-check/blockchain-epoch-check-command.js
+++ /dev/null
@@ -1,523 +0,0 @@
-/* eslint-disable no-await-in-loop */
-import Command from '../../../command.js';
-import {
- COMMAND_QUEUE_PARALLELISM,
- COMMAND_RETRIES,
- TRANSACTION_CONFIRMATIONS,
- OPERATION_ID_STATUS,
- ERROR_TYPE,
- TRIPLE_STORE_REPOSITORIES,
- SERVICE_AGREEMENT_START_TIME_DELAY_FOR_COMMITS_SECONDS,
- SERVICE_AGREEMENT_SOURCES,
-} from '../../../../constants/constants.js';
-
-class BlockchainEpochCheckCommand extends Command {
- constructor(ctx) {
- super(ctx);
- this.commandExecutor = ctx.commandExecutor;
- this.repositoryModuleManager = ctx.repositoryModuleManager;
- this.networkModuleManager = ctx.networkModuleManager;
- this.shardingTableService = ctx.shardingTableService;
- this.blockchainModuleManager = ctx.blockchainModuleManager;
- this.serviceAgreementService = ctx.serviceAgreementService;
- this.fileService = ctx.fileService;
- this.proximityScoringService = ctx.proximityScoringService;
- this.hashingService = ctx.hashingService;
- this.tripleStoreService = ctx.tripleStoreService;
-
- this.errorType = ERROR_TYPE.COMMIT_PROOF.BLOCKCHAIN_EPOCH_CHECK_ERROR;
- }
-
- async execute(command) {
- const { operationId, blockchain } = command.data;
- this.logger.info(
- `Epoch check: Starting blockchain epoch check command for ${blockchain} with operation id: ${operationId}`,
- );
-
- this.operationIdService.emitChangeEvent(
- OPERATION_ID_STATUS.COMMIT_PROOF.EPOCH_CHECK_START,
- operationId,
- blockchain,
- );
-
- const commitWindowDurationPerc =
- await this.blockchainModuleManager.getCommitWindowDurationPerc(blockchain);
- const proofWindowDurationPerc =
- await this.blockchainModuleManager.getProofWindowDurationPerc(blockchain);
- let totalTransactions = await this.calculateTotalTransactions(
- blockchain,
- commitWindowDurationPerc,
- proofWindowDurationPerc,
- command.period,
- );
-
- const numberOfBlockchains = this.blockchainModuleManager.getImplementationNames().length;
-
- // We don't expect to have this many transactions in one epoch check window.
- // This is just to make sure we don't schedule too many commands and block the queue
- // TODO: find general solution for all commands scheduling blockchain transactions
- totalTransactions = Math.min(
- totalTransactions,
- Math.floor(COMMAND_QUEUE_PARALLELISM / numberOfBlockchains),
- );
-
- const transactionQueueLength =
- this.blockchainModuleManager.getTotalTransactionQueueLength(blockchain);
- if (transactionQueueLength >= totalTransactions) {
- this.logger.debug(
- `Epoch check: Current transaction queue length is ${transactionQueueLength}, ` +
- `exceeding the maximum total transactions: ${totalTransactions} for ${blockchain}` +
- `with operation id: ${operationId}`,
- );
- return Command.repeat();
- }
-
- totalTransactions -= transactionQueueLength;
-
- const [r0, r2, totalNodesNumber, minStake, maxStake] = await Promise.all([
- this.blockchainModuleManager.getR0(blockchain),
- this.blockchainModuleManager.getR2(blockchain),
- this.repositoryModuleManager.getPeersCount(blockchain),
- this.blockchainModuleManager.getMinimumStake(blockchain),
- this.blockchainModuleManager.getMaximumStake(blockchain),
- ]);
-
- await Promise.all([
- this.scheduleSubmitCommitCommands(
- blockchain,
- Math.floor(totalTransactions / 2),
- commitWindowDurationPerc,
- r0,
- r2,
- totalNodesNumber,
- minStake,
- maxStake,
- ),
- this.scheduleCalculateProofsCommands(
- blockchain,
- Math.ceil(totalTransactions / 2),
- proofWindowDurationPerc,
- r0,
- ),
- ]);
-
- this.operationIdService.emitChangeEvent(
- OPERATION_ID_STATUS.COMMIT_PROOF.EPOCH_CHECK_END,
- operationId,
- blockchain,
- );
-
- return Command.repeat();
- }
-
- async scheduleSubmitCommitCommands(
- blockchain,
- maxTransactions,
- commitWindowDurationPerc,
- r0,
- r2,
- totalNodesNumber,
- minStake,
- maxStake,
- ) {
- const peerRecord = await this.repositoryModuleManager.getPeerRecord(
- this.networkModuleManager.getPeerId().toB58String(),
- blockchain,
- );
-
- if (peerRecord == null) return;
-
- const ask = this.blockchainModuleManager.convertToWei(blockchain, peerRecord.ask);
-
- const timestamp = await this.blockchainModuleManager.getBlockchainTimestamp(blockchain);
- const eligibleAgreementForSubmitCommit =
- await this.repositoryModuleManager.getEligibleAgreementsForSubmitCommit(
- timestamp,
- blockchain,
- commitWindowDurationPerc,
- SERVICE_AGREEMENT_START_TIME_DELAY_FOR_COMMITS_SECONDS[process.env.NODE_ENV],
- );
- this.logger.info(
- `Epoch check: Found ${eligibleAgreementForSubmitCommit.length} eligible agreements for submit commit for blockchain: ${blockchain}`,
- );
- const scheduleSubmitCommitCommands = [];
- const updateServiceAgreementsLastCommitEpoch = [];
- for (const serviceAgreement of eligibleAgreementForSubmitCommit) {
- try {
- if (scheduleSubmitCommitCommands.length >= maxTransactions) {
- this.logger.warn(
- `Epoch check: not scheduling new commits. Submit commit command length: ${scheduleSubmitCommitCommands.length}, max number of transactions: ${maxTransactions} for blockchain: ${blockchain}`,
- );
- break;
- }
-
- if (serviceAgreement.scoreFunctionId === 0) {
- // corrupted service agreement data fetch new and store
- const blockchainAgreementData =
- await this.blockchainModuleManager.getAgreementData(
- blockchain,
- serviceAgreement.agreementId,
- );
- if (!blockchainAgreementData) {
- this.logger.warn(
- `Epoch check: Unable to fetch agreement data for agreement id: ${serviceAgreement.agreementId}, blockchain id: ${blockchain}. Agreement will be retried in next epoch check command.`,
- );
- continue;
- }
- await this.repositoryModuleManager.updateServiceAgreementRecord(
- blockchain,
- serviceAgreement.assetStorageContractAddress,
- serviceAgreement.tokenId,
- serviceAgreement.agreementId,
- blockchainAgreementData.startTime,
- serviceAgreement.epochsNumber,
- serviceAgreement.epochLength,
- blockchainAgreementData.scoreFunctionId,
- blockchainAgreementData.proofWindowOffsetPerc,
- serviceAgreement.hashFunctionId,
- serviceAgreement.keyword,
- serviceAgreement.assertionId,
- serviceAgreement.stateIndex,
- SERVICE_AGREEMENT_SOURCES.BLOCKCHAIN,
- serviceAgreement.lastCommitEpoch,
- serviceAgreement.lastProofEpoch,
- );
- serviceAgreement.startTime = blockchainAgreementData.startTime;
- serviceAgreement.scoreFunctionId = blockchainAgreementData.scoreFunctionId;
- serviceAgreement.proofWindowOffsetPerc =
- blockchainAgreementData.proofWindowOffsetPerc;
- }
-
- const neighbourhood = await this.shardingTableService.findNeighbourhood(
- blockchain,
- serviceAgreement.keyword,
- r2,
- serviceAgreement.hashFunctionId,
- serviceAgreement.scoreFunctionId,
- );
-
- let neighbourhoodEdges = null;
- if (serviceAgreement.scoreFunctionId === 2) {
- neighbourhoodEdges = await this.shardingTableService.getNeighboorhoodEdgeNodes(
- neighbourhood,
- blockchain,
- serviceAgreement.hashFunctionId,
- serviceAgreement.scoreFunctionId,
- serviceAgreement.keyword,
- );
- }
-
- if (!neighbourhoodEdges && serviceAgreement.scoreFunctionId === 2) {
- this.logger.warn(
- `Epoch check: unable to find neighbourhood edges for agreement id: ${serviceAgreement.agreementId} for blockchain: ${blockchain}`,
- );
- continue;
- }
-
- const rank = await this.serviceAgreementService.calculateRank(
- blockchain,
- serviceAgreement.keyword,
- serviceAgreement.hashFunctionId,
- serviceAgreement.scoreFunctionId,
- r2,
- neighbourhood,
- neighbourhoodEdges,
- totalNodesNumber,
- minStake,
- maxStake,
- );
-
- updateServiceAgreementsLastCommitEpoch.push(
- this.repositoryModuleManager.updateServiceAgreementLastCommitEpoch(
- serviceAgreement.agreementId,
- serviceAgreement.currentEpoch,
- ),
- );
-
- if (rank == null) {
- this.logger.trace(
- `Epoch check: Node not in R2: ${r2} for the Service Agreement with the ID: ${serviceAgreement.agreementId}. Skipping scheduling submitCommitCommand for blockchain: ${blockchain}`,
- );
- continue;
- }
-
- if (rank >= r0) {
- this.logger.trace(
- `Epoch check: Calculated rank: ${
- rank + 1
- }. Node not in R0: ${r0} for the Service Agreement with the ID: ${
- serviceAgreement.agreementId
- }. Skipping scheduling submitCommitCommand for blockchain: ${blockchain}`,
- );
- continue;
- }
-
- // If proof was ever sent = data is present in the Triple Store
- let isAssetSynced = Boolean(serviceAgreement.lastProofEpoch);
- if (!isAssetSynced) {
- // Else: check Public Current Repository
- isAssetSynced = await this.tripleStoreService.assertionExists(
- TRIPLE_STORE_REPOSITORIES.PUBLIC_CURRENT,
- serviceAgreement.assertionId,
- );
- }
-
- // If data is not in the Triple Store, check if ask satisfied
- if (!isAssetSynced) {
- const agreementData = await this.blockchainModuleManager.getAgreementData(
- blockchain,
- serviceAgreement.agreementId,
- );
- if (!agreementData) {
- this.logger.warn(
- `Unable to fetch agreement data in blockchain epoch check command for agreement id: ${serviceAgreement.agreementId}. Skipping scheduling submit commit command for blockchain: ${blockchain}`,
- );
- continue;
- }
- const blockchainAssertionSize =
- await this.blockchainModuleManager.getAssertionSize(
- blockchain,
- serviceAgreement.assertionId,
- );
-
- const serviceAgreementBid = await this.serviceAgreementService.calculateBid(
- blockchain,
- blockchainAssertionSize,
- agreementData,
- r0,
- );
-
- if (serviceAgreementBid.lt(ask)) {
- this.logger.trace(
- `Epoch check: Ask (${ask.toString()} wei) isn't satisfied by the bid (${serviceAgreementBid.toString()} wei) for the Service Agreement with the ID: ${
- serviceAgreement.agreementId
- }. Skipping scheduling submitCommitCommand for blockchain: ${blockchain}`,
- );
- continue;
- }
- }
-
- this.logger.trace(
- `Epoch check: Calculated rank: ${
- rank + 1
- }. Node in R0: ${r0} for the Service Agreement with the ID: ${
- serviceAgreement.agreementId
- }. Scheduling submitCommitCommand for blockchain: ${blockchain}`,
- );
- const closestNode = neighbourhood[0];
- scheduleSubmitCommitCommands.push(
- this.scheduleSubmitCommitCommand(
- serviceAgreement,
- neighbourhoodEdges,
- closestNode,
- isAssetSynced,
- ),
- );
- } catch (error) {
- this.logger.warn(
- `Epoch check: Failed to schedule submitCommitCommand for the Service Agreement with the ID: ${serviceAgreement.agreementId} for blockchain: ${blockchain}. Error message: ${error.message}.`,
- );
- continue;
- }
- }
- await Promise.all([
- ...scheduleSubmitCommitCommands,
- ...updateServiceAgreementsLastCommitEpoch,
- ]);
- }
-
- async scheduleCalculateProofsCommands(
- blockchain,
- maxTransactions,
- proofWindowDurationPerc,
- r0,
- ) {
- const timestamp = await this.blockchainModuleManager.getBlockchainTimestamp(blockchain);
- const eligibleAgreementsForSubmitProofs =
- await this.repositoryModuleManager.getEligibleAgreementsForSubmitProof(
- timestamp,
- blockchain,
- proofWindowDurationPerc,
- );
- this.logger.info(
- `Epoch check: Found ${eligibleAgreementsForSubmitProofs.length} eligible agreements for submit proof for blockchain: ${blockchain}`,
- );
- const scheduleSubmitProofCommands = [];
- const updateServiceAgreementsLastProofEpoch = [];
- for (const serviceAgreement of eligibleAgreementsForSubmitProofs) {
- if (scheduleSubmitProofCommands.length >= maxTransactions) {
- this.logger.warn(
- `Epoch check: not scheduling new proofs. Submit proofs command length: ${scheduleSubmitProofCommands.length}, max number of transactions: ${maxTransactions} for blockchain: ${blockchain}`,
- );
- break;
- }
-
- try {
- const eligibleForReward = await this.isEligibleForRewards(
- blockchain,
- serviceAgreement.agreementId,
- serviceAgreement.currentEpoch,
- serviceAgreement.stateIndex,
- r0,
- );
- if (eligibleForReward) {
- this.logger.trace(
- `Epoch check: Node is eligible for rewards for the Service Agreement with the ID: ${serviceAgreement.agreementId} for blockchain: ${blockchain}. Scheduling submitProofsCommand.`,
- );
-
- scheduleSubmitProofCommands.push(
- this.scheduleSubmitProofsCommand(serviceAgreement),
- );
- } else {
- this.logger.trace(
- `Epoch check: Node is not eligible for rewards for the Service Agreement with the ID: ${serviceAgreement.agreementId}. Skipping scheduling submitProofsCommand for blockchain: ${blockchain}`,
- );
- }
- updateServiceAgreementsLastProofEpoch.push(
- this.repositoryModuleManager.updateServiceAgreementLastProofEpoch(
- serviceAgreement.agreementId,
- serviceAgreement.currentEpoch,
- ),
- );
- } catch (error) {
- this.logger.warn(
- `Epoch check: Failed to schedule submitProofsCommand for the Service Agreement with the ID: ${serviceAgreement.agreementId} for blockchain: ${blockchain}. Error message: ${error.message}.`,
- );
- continue;
- }
- }
- await Promise.all([
- ...scheduleSubmitProofCommands,
- ...updateServiceAgreementsLastProofEpoch,
- ]);
- }
-
- async isEligibleForRewards(blockchain, agreementId, epoch, stateIndex, r0) {
- const identityId = await this.blockchainModuleManager.getIdentityId(blockchain);
- const commits = await this.blockchainModuleManager.getTopCommitSubmissions(
- blockchain,
- agreementId,
- epoch,
- stateIndex,
- );
-
- for (const commit of commits.slice(0, r0)) {
- if (Number(commit.identityId) === identityId && Number(commit.score) !== 0) {
- return true;
- }
- }
-
- return false;
- }
-
- async scheduleSubmitCommitCommand(agreement, neighbourhoodEdges, closestNode, isAssetSynced) {
- const commandData = {
- operationId: this.operationIdService.generateId(),
- blockchain: agreement.blockchainId,
- contract: agreement.assetStorageContractAddress,
- tokenId: agreement.tokenId,
- keyword: agreement.keyword,
- hashFunctionId: agreement.hashFunctionId,
- epoch: agreement.currentEpoch,
- agreementId: agreement.agreementId,
- assertionId: agreement.assertionId,
- stateIndex: agreement.stateIndex,
- closestNode: closestNode.index,
- leftNeighborhoodEdge: neighbourhoodEdges?.leftEdge.index,
- rightNeighborhoodEdge: neighbourhoodEdges?.rightEdge.index,
- };
-
- if (isAssetSynced) {
- await this.commandExecutor.add({
- name: 'submitCommitCommand',
- sequence: [],
- retries: COMMAND_RETRIES.SUBMIT_COMMIT,
- data: commandData,
- transactional: false,
- });
- } else {
- await this.commandExecutor.add({
- name: 'simpleAssetSyncCommand',
- sequence: ['submitCommitCommand'],
- retries: COMMAND_RETRIES.SIMPLE_ASSET_SYNC,
- data: commandData,
- transactional: false,
- });
- }
- }
-
- async scheduleSubmitProofsCommand(agreement) {
- const commandData = {
- operationId: this.operationIdService.generateId(),
- blockchain: agreement.blockchainId,
- contract: agreement.assetStorageContractAddress,
- tokenId: agreement.tokenId,
- keyword: agreement.keyword,
- hashFunctionId: agreement.hashFunctionId,
- epoch: agreement.currentEpoch,
- agreementId: agreement.agreementId,
- assertionId: agreement.assertionId,
- stateIndex: agreement.stateIndex,
- };
-
- return this.commandExecutor.add({
- name: 'submitProofsCommand',
- sequence: [],
- data: commandData,
- retries: COMMAND_RETRIES.SUBMIT_PROOFS,
- transactional: false,
- });
- }
-
- async calculateTotalTransactions(
- blockchain,
- commitWindowDurationPerc,
- proofWindowDurationPerc,
- commandPeriod,
- ) {
- const epochLength = await this.blockchainModuleManager.getEpochLength(blockchain);
-
- const commitWindowDuration = (epochLength * commitWindowDurationPerc) / 100;
- const proofWindowDuration = (epochLength * proofWindowDurationPerc) / 100;
-
- const totalTransactionTime = Math.min(commitWindowDuration, proofWindowDuration);
-
- const blockTime = this.blockchainModuleManager.getBlockTimeMillis(blockchain) / 1000;
- const timePerTransaction = blockTime * TRANSACTION_CONFIRMATIONS;
-
- const totalTransactions = Math.floor(totalTransactionTime / timePerTransaction);
-
- const epochChecksInWindow = Math.floor(totalTransactionTime / (commandPeriod / 1000));
-
- const transactionsPerEpochCheck = Math.floor(totalTransactions / epochChecksInWindow);
-
- const numberOfWallets = this.blockchainModuleManager.getPublicKeys().length;
-
- return transactionsPerEpochCheck * numberOfWallets;
- }
-
- /**
- * Recover system from failure
- * @param error
- */
- async recover() {
- return Command.repeat();
- }
-
- /**
- * Builds default epochCheckCommand
- * @param map
- * @returns {{add, data: *, delay: *, deadline: *}}
- */
- default(map) {
- const command = {
- name: 'blockchainEpochCheckCommand',
- data: {},
- transactional: false,
- };
- Object.assign(command, map);
- return command;
- }
-}
-
-export default BlockchainEpochCheckCommand;
diff --git a/src/commands/protocols/common/epoch-check/epoch-check-command.js b/src/commands/protocols/common/epoch-check/epoch-check-command.js
deleted file mode 100644
index ef9cb82087..0000000000
--- a/src/commands/protocols/common/epoch-check/epoch-check-command.js
+++ /dev/null
@@ -1,75 +0,0 @@
-import Command from '../../../command.js';
-import { ERROR_TYPE } from '../../../../constants/constants.js';
-
-class EpochCheckCommand extends Command {
- constructor(ctx) {
- super(ctx);
- this.commandExecutor = ctx.commandExecutor;
- this.blockchainModuleManager = ctx.blockchainModuleManager;
-
- this.errorType = ERROR_TYPE.COMMIT_PROOF.EPOCH_CHECK_ERROR;
- }
-
- calculateCommandPeriod() {
- const devEnvironment =
- process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test';
-
- return devEnvironment ? 30_000 : 120_000;
- }
-
- async execute() {
- const operationId = this.operationIdService.generateId();
-
- this.logger.info(
- `Epoch check: Starting epoch check command for operation id: ${operationId}`,
- );
-
- await this.commandExecutor.delete('blockchainEpochCheckCommand');
-
- await Promise.all(
- this.blockchainModuleManager.getImplementationNames().map(async (blockchain) => {
- const commandData = {
- blockchain,
- operationId,
- };
-
- return this.commandExecutor.add({
- name: 'blockchainEpochCheckCommand',
- data: commandData,
- period: this.calculateCommandPeriod(),
- });
- }),
- );
-
- return Command.empty();
- }
-
- /**
- * Recover system from failure
- * @param command
- * @param error
- */
- async recover(command) {
- this.logger.warn(`Failed to execute ${command.name}. Error: ${command.message}`);
-
- return Command.repeat();
- }
-
- /**
- * Builds default epochCheckCommand
- * @param map
- * @returns {{add, data: *, delay: *, deadline: *}}
- */
- default(map) {
- const command = {
- name: 'epochCheckCommand',
- data: {},
- transactional: false,
- period: this.calculateCommandPeriod(),
- };
- Object.assign(command, map);
- return command;
- }
-}
-
-export default EpochCheckCommand;
diff --git a/src/commands/protocols/common/find-curated-paranet-nodes-command.js b/src/commands/protocols/common/find-curated-paranet-nodes-command.js
new file mode 100644
index 0000000000..6b2ceb65b4
--- /dev/null
+++ b/src/commands/protocols/common/find-curated-paranet-nodes-command.js
@@ -0,0 +1,124 @@
+import Command from '../../command.js';
+import { OPERATION_ID_STATUS } from '../../../constants/constants.js';
+
+class FindCuratedParanetNodesCommand extends Command {
+ constructor(ctx) {
+ super(ctx);
+ this.operationService = ctx.getService;
+ this.networkModuleManager = ctx.networkModuleManager;
+ this.blockchainModuleManager = ctx.blockchainModuleManager;
+ this.repositoryModuleManager = ctx.repositoryModuleManager;
+ this.shardingTableService = ctx.shardingTableService;
+ this.cryptoService = ctx.cryptoService;
+ }
+
+ /**
+ * Executes command and produces one or more events
+ * @param command
+ */
+ async execute(command) {
+ const { operationId, blockchain, errorType, networkProtocols, paranetId, minAckResponses } =
+ command.data;
+
+ this.errorType = errorType;
+ this.logger.debug(
+ `Searching for paranet (${paranetId}) node(s) for operationId: ${operationId}`,
+ );
+
+ // TODO: protocol selection
+ const paranetNodes = [];
+ const foundNodes = await this.findNodes(blockchain, operationId, paranetId);
+ for (const node of foundNodes) {
+ if (node.id !== this.networkModuleManager.getPeerId().toB58String()) {
+ paranetNodes.push({ id: node.id, protocol: networkProtocols[0] });
+ }
+ }
+
+ this.logger.debug(
+ `Found ${paranetNodes.length} paranet (${paranetId}) node(s) for operationId: ${operationId}`,
+ );
+ this.logger.trace(
+ `Found paranet (${paranetId}) nodes: ${JSON.stringify(
+ paranetNodes.map((node) => node.id),
+ null,
+ 2,
+ )}`,
+ );
+
+ if (paranetNodes.length < minAckResponses) {
+ await this.handleError(
+ operationId,
+ blockchain,
+ `Unable to find enough paranet (${paranetId}) nodes for operationId: ${operationId}. Minimum number of nodes required: ${minAckResponses}`,
+ this.errorType,
+ true,
+ );
+ return Command.empty();
+ }
+
+ return this.continueSequence(
+ {
+ ...command.data,
+ leftoverNodes: paranetNodes,
+ numberOfFoundNodes: paranetNodes.length,
+ },
+ command.sequence,
+ );
+ }
+
+ async findNodes(blockchainId, operationId, paranetId) {
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchainId,
+ OPERATION_ID_STATUS.FIND_CURATED_PARANET_NODES_START,
+ );
+
+ const paranetCuratedNodes = await this.blockchainModuleManager.getParanetCuratedNodes(
+ blockchainId,
+ paranetId,
+ );
+ const paranetCuratedPeerIds = paranetCuratedNodes.map((node) =>
+ this.cryptoService.convertHexToAscii(node.nodeId),
+ );
+
+ const paranetCuratedNodePeerRecords =
+ await this.repositoryModuleManager.getPeerRecordsByIds(
+ blockchainId,
+ paranetCuratedPeerIds,
+ );
+ const availableParanetNodes = paranetCuratedNodePeerRecords.filter(
+ (node) => node.lastSeen >= node.lastDialed,
+ );
+
+ const nodesFound = await Promise.all(
+ availableParanetNodes.map(({ peerId }) =>
+ this.shardingTableService.findPeerAddressAndProtocols(peerId),
+ ),
+ );
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchainId,
+ OPERATION_ID_STATUS.FIND_CURATED_PARANET_NODES_END,
+ );
+
+ return nodesFound;
+ }
+
+ /**
+ * Builds default findCuratedParanetNodesCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'findCuratedParanetNodesCommand',
+ delay: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default FindCuratedParanetNodesCommand;
diff --git a/src/commands/protocols/common/find-nodes-command.js b/src/commands/protocols/common/find-nodes-command.js
deleted file mode 100644
index f11691fbd6..0000000000
--- a/src/commands/protocols/common/find-nodes-command.js
+++ /dev/null
@@ -1,134 +0,0 @@
-import Command from '../../command.js';
-import { OPERATION_ID_STATUS } from '../../../constants/constants.js';
-
-class FindNodesCommand extends Command {
- constructor(ctx) {
- super(ctx);
- this.networkModuleManager = ctx.networkModuleManager;
- this.blockchainModuleManager = ctx.blockchainModuleManager;
- this.shardingTableService = ctx.shardingTableService;
- }
-
- /**
- * Executes command and produces one or more events
- * @param command
- */
- async execute(command) {
- const {
- keyword,
- operationId,
- blockchain,
- errorType,
- networkProtocols,
- hashFunctionId,
- minAckResponses,
- } = command.data;
- const proximityScoreFunctionsPairId = command.data.proximityScoreFunctionsPairId ?? 1;
-
- this.errorType = errorType;
- this.logger.debug(
- `Searching for closest node(s) for operationId: ${operationId}, keyword: ${keyword}`,
- );
-
- // TODO: protocol selection
- const closestNodes = [];
- const foundNodes = await this.findNodes(
- blockchain,
- keyword,
- operationId,
- hashFunctionId,
- proximityScoreFunctionsPairId,
- );
- for (const node of foundNodes) {
- if (node.id !== this.networkModuleManager.getPeerId().toB58String()) {
- closestNodes.push({ id: node.id, protocol: networkProtocols[0] });
- }
- }
-
- this.logger.debug(
- `Found ${closestNodes.length} node(s) for operationId: ${operationId}, keyword: ${keyword}`,
- );
- this.logger.trace(
- `Found neighbourhood: ${JSON.stringify(
- closestNodes.map((node) => node.id),
- null,
- 2,
- )}`,
- );
-
- if (closestNodes.length < minAckResponses) {
- await this.handleError(
- operationId,
- blockchain,
- `Unable to find enough nodes for operationId: ${operationId}, keyword: ${keyword}. Minimum number of nodes required: ${minAckResponses}`,
- this.errorType,
- true,
- );
- return Command.empty();
- }
-
- return this.continueSequence(
- {
- ...command.data,
- leftoverNodes: closestNodes,
- numberOfFoundNodes: closestNodes.length,
- },
- command.sequence,
- );
- }
-
- async findNodes(
- blockchainId,
- keyword,
- operationId,
- hashFunctionId,
- proximityScoreFunctionsPairId,
- ) {
- await this.operationIdService.updateOperationIdStatus(
- operationId,
- blockchainId,
- OPERATION_ID_STATUS.FIND_NODES_START,
- );
- const r2 = await this.blockchainModuleManager.getR2(blockchainId);
- const closestNodes = await this.shardingTableService.findNeighbourhood(
- blockchainId,
- keyword,
- r2,
- hashFunctionId,
- proximityScoreFunctionsPairId,
- );
-
- const availableNodes = closestNodes.filter((node) => node.lastSeen >= node.lastDialed);
-
- const nodesFound = await Promise.all(
- availableNodes.map(({ peerId }) =>
- this.shardingTableService.findPeerAddressAndProtocols(peerId),
- ),
- );
-
- await this.operationIdService.updateOperationIdStatus(
- operationId,
- blockchainId,
- OPERATION_ID_STATUS.FIND_NODES_END,
- );
-
- return nodesFound;
- }
-
- /**
- * Builds default findNodesCommand
- * @param map
- * @returns {{add, data: *, delay: *, deadline: *}}
- */
- default(map) {
- const command = {
- name: 'findNodesCommand',
- delay: 0,
- transactional: false,
- };
- Object.assign(command, map);
- return command;
- }
-}
-
-export default FindNodesCommand;
diff --git a/src/commands/protocols/common/find-shard-command.js b/src/commands/protocols/common/find-shard-command.js
new file mode 100644
index 0000000000..34a6462168
--- /dev/null
+++ b/src/commands/protocols/common/find-shard-command.js
@@ -0,0 +1,156 @@
+import Command from '../../command.js';
+import { OPERATION_ID_STATUS, ERROR_TYPE } from '../../../constants/constants.js';
+
+class FindShardCommand extends Command {
+ constructor(ctx) {
+ super(ctx);
+ this.networkModuleManager = ctx.networkModuleManager;
+ this.shardingTableService = ctx.shardingTableService;
+ this.errorType = ERROR_TYPE.FIND_SHARD.FIND_SHARD_ERROR;
+ this.operationStartEvent = OPERATION_ID_STATUS.FIND_NODES_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.FIND_NODES_END;
+ this.findShardNodesStartEvent = OPERATION_ID_STATUS.FIND_NODES_FIND_SHARD_NODES_START;
+ this.findShardNodesEndEvent = OPERATION_ID_STATUS.FIND_NODES_FIND_SHARD_NODES_END;
+ this.processFoundNodesStartEvent = OPERATION_ID_STATUS.FIND_NODES_PROCESS_FOUND_NODES_START;
+ this.processFoundNodesEndEvent = OPERATION_ID_STATUS.FIND_NODES_PROCESS_FOUND_NODES_END;
+ }
+
+ // eslint-disable-next-line no-unused-vars
+ getOperationCommandSequence(nodePartOfShard, commandData) {
+ return [];
+ }
+
+ /**
+ * Executes command and produces one or more events
+ * @param command
+ */
+ async execute(command) {
+ const { operationId, blockchain, datasetRoot, minimumNumberOfNodeReplications } =
+ command.data;
+ this.logger.debug(
+ `Searching for shard for operationId: ${operationId}, dataset root: ${datasetRoot}`,
+ );
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ this.operationStartEvent,
+ );
+
+ this.minAckResponses = this.operationService.getMinAckResponses(
+ minimumNumberOfNodeReplications,
+ );
+
+ const networkProtocols = this.operationService.getNetworkProtocols();
+
+ const shardNodes = [];
+ let nodePartOfShard = false;
+ const currentPeerId = this.networkModuleManager.getPeerId().toB58String();
+
+ this.operationIdService.emitChangeEvent(
+ this.findShardNodesStartEvent,
+ operationId,
+ blockchain,
+ );
+ const foundNodes = await this.findShardNodes(blockchain);
+ this.operationIdService.emitChangeEvent(
+ this.findShardNodesEndEvent,
+ operationId,
+ blockchain,
+ );
+
+ this.operationIdService.emitChangeEvent(
+ this.processFoundNodesStartEvent,
+ operationId,
+ blockchain,
+ );
+ for (const node of foundNodes) {
+ if (node.id === currentPeerId) {
+ nodePartOfShard = true;
+ } else {
+ shardNodes.push({ id: node.id, protocol: networkProtocols[0] });
+ }
+ }
+ this.operationIdService.emitChangeEvent(
+ this.processFoundNodesEndEvent,
+ operationId,
+ blockchain,
+ );
+
+ const commandSequence = this.getOperationCommandSequence(nodePartOfShard, command.data);
+
+ command.sequence.push(...commandSequence);
+
+ this.logger.debug(
+ `Found ${
+ shardNodes.length + (nodePartOfShard ? 1 : 0)
+ } node(s) for operationId: ${operationId}`,
+ );
+ // TODO: Log local node
+ this.logger.trace(
+ `Found shard: ${JSON.stringify(
+ shardNodes.map((node) => node.id),
+ null,
+ 2,
+ )}`,
+ );
+
+ if (shardNodes.length + (nodePartOfShard ? 1 : 0) < this.minAckResponses) {
+ await this.handleError(
+ operationId,
+ blockchain,
+ `Unable to find enough nodes for operationId: ${operationId}. Minimum number of nodes required: ${this.minAckResponses}`,
+ this.errorType,
+ true,
+ );
+ return Command.empty();
+ }
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ this.operationEndEvent,
+ );
+
+ return this.continueSequence(
+ {
+ ...command.data,
+ leftoverNodes: shardNodes,
+ numberOfFoundNodes: shardNodes.length + (nodePartOfShard ? 1 : 0),
+ },
+ command.sequence,
+ );
+ }
+
+ async findShardNodes(blockchainId) {
+ const shardNodes = await this.shardingTableService.findShard(
+ blockchainId,
+ true, // filter inactive nodes
+ );
+
+ // TODO: Optimize this so it's returned by shardingTableService.findShard
+ const nodesFound = await Promise.all(
+ shardNodes.map(({ peerId }) =>
+ this.shardingTableService.findPeerAddressAndProtocols(peerId),
+ ),
+ );
+
+ return nodesFound;
+ }
+
+ /**
+ * Builds default findShardCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'findShardCommand',
+ delay: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default FindShardCommand;
diff --git a/src/commands/protocols/common/handle-protocol-message-command.js b/src/commands/protocols/common/handle-protocol-message-command.js
index 4477362614..108554bc8a 100644
--- a/src/commands/protocols/common/handle-protocol-message-command.js
+++ b/src/commands/protocols/common/handle-protocol-message-command.js
@@ -1,5 +1,5 @@
import Command from '../../command.js';
-import { BYTES_IN_KILOBYTE, NETWORK_MESSAGE_TYPES } from '../../../constants/constants.js';
+import { NETWORK_MESSAGE_TYPES, OPERATION_ID_STATUS } from '../../../constants/constants.js';
class HandleProtocolMessageCommand extends Command {
constructor(ctx) {
@@ -9,8 +9,22 @@ class HandleProtocolMessageCommand extends Command {
this.operationIdService = ctx.operationIdService;
this.shardingTableService = ctx.shardingTableService;
this.blockchainModuleManager = ctx.blockchainModuleManager;
- this.serviceAgreementService = ctx.serviceAgreementService;
this.repositoryModuleManager = ctx.repositoryModuleManager;
+
+ this.operationStartEvent = OPERATION_ID_STATUS.HANDLE_PROTOCOL_MESSAGE_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.HANDLE_PROTOCOL_MESSAGE_END;
+ this.prepareMessageStartEvent =
+ OPERATION_ID_STATUS.HANDLE_PROTOCOL_MESSAGE_PREPARE_MESSAGE_START;
+ this.prepareMessageEndEvent =
+ OPERATION_ID_STATUS.HANDLE_PROTOCOL_MESSAGE_PREPARE_MESSAGE_END;
+ this.sendMessageResponseStartEvent =
+ OPERATION_ID_STATUS.HANDLE_PROTOCOL_MESSAGE_SEND_MESSAGE_RESPONSE_START;
+ this.sendMessageResponseEndEvent =
+ OPERATION_ID_STATUS.HANDLE_PROTOCOL_MESSAGE_SEND_MESSAGE_RESPONSE_END;
+ this.removeCachedSessionStartEvent =
+ OPERATION_ID_STATUS.HANDLE_PROTOCOL_MESSAGE_REMOVE_CACHED_SESSION_START;
+ this.removeCachedSessionEndEvent =
+ OPERATION_ID_STATUS.HANDLE_PROTOCOL_MESSAGE_REMOVE_CACHED_SESSION_END;
}
/**
@@ -18,18 +32,44 @@ class HandleProtocolMessageCommand extends Command {
* @param command
*/
async execute(command) {
- const { remotePeerId, operationId, keywordUuid, protocol } = command.data;
+ const { remotePeerId, operationId, protocol, blockchain } = command.data;
+
+ this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ this.operationStartEvent,
+ );
try {
+ this.operationIdService.emitChangeEvent(
+ this.prepareMessageStartEvent,
+ operationId,
+ blockchain,
+ );
const { messageType, messageData } = await this.prepareMessage(command.data);
+ this.operationIdService.emitChangeEvent(
+ this.prepareMessageEndEvent,
+ operationId,
+ blockchain,
+ );
+
+ this.operationIdService.emitChangeEvent(
+ this.sendMessageResponseStartEvent,
+ operationId,
+ blockchain,
+ );
await this.networkModuleManager.sendMessageResponse(
protocol,
remotePeerId,
messageType,
operationId,
- keywordUuid,
messageData,
);
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ this.operationEndEvent,
+ );
} catch (error) {
if (command.retries) {
this.logger.warn(error.message);
@@ -38,7 +78,23 @@ class HandleProtocolMessageCommand extends Command {
await this.handleError(error.message, command);
}
- this.networkModuleManager.removeCachedSession(operationId, keywordUuid, remotePeerId);
+ this.operationIdService.emitChangeEvent(
+ this.removeCachedSessionStartEvent,
+ operationId,
+ blockchain,
+ );
+ this.networkModuleManager.removeCachedSession(operationId, remotePeerId);
+ this.operationIdService.emitChangeEvent(
+ this.removeCachedSessionEndEvent,
+ operationId,
+ blockchain,
+ );
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ this.operationEndEvent,
+ );
return Command.empty();
}
@@ -47,39 +103,23 @@ class HandleProtocolMessageCommand extends Command {
throw Error('prepareMessage not implemented');
}
- async validateNeighborhood(
- blockchain,
- keyword,
- hashFunctionId,
- proximityScoreFunctionsPairId,
- ual,
- ) {
- const closestNodes = await this.shardingTableService.findNeighbourhood(
- blockchain,
- keyword,
- await this.blockchainModuleManager.getR2(blockchain),
- hashFunctionId,
- proximityScoreFunctionsPairId,
- );
+ async validateShard(blockchain) {
const peerId = this.networkModuleManager.getPeerId().toB58String();
- for (const { peerId: otherPeerId } of closestNodes) {
- if (otherPeerId === peerId) {
- return true;
- }
- }
- this.logger.warn(
- `Invalid neighborhood for ual: ${ual} on blockchain: ${blockchain} with hashFunctionId: ${hashFunctionId}, proximityScoreFunctionsPairId: ${proximityScoreFunctionsPairId}`,
+ const isNodePartOfShard = await this.shardingTableService.isNodePartOfShard(
+ blockchain,
+ peerId,
);
- return false;
+ return isNodePartOfShard;
}
async validateAssertionId(blockchain, contract, tokenId, assertionId, ual) {
- const blockchainAssertionId = await this.blockchainModuleManager.getLatestAssertionId(
- blockchain,
- contract,
- tokenId,
- );
+ const blockchainAssertionId =
+ await this.blockchainModuleManager.getKnowledgeCollectionMerkleRoot(
+ blockchain,
+ contract,
+ tokenId,
+ );
if (blockchainAssertionId !== assertionId) {
throw Error(
`Invalid assertion id for asset ${ual}. Received value from blockchain: ${blockchainAssertionId}, received value from request: ${assertionId}`,
@@ -87,158 +127,37 @@ class HandleProtocolMessageCommand extends Command {
}
}
- async validateBid(
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- blockchain,
- assertionId,
- operationId,
- ) {
- const getAgreementData = async () => {
- const agreementId = this.serviceAgreementService.generateId(
- blockchain,
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- );
- this.logger.info(
- `Calculated agreement id: ${agreementId} for contract: ${contract}, token id: ${tokenId}, keyword: ${keyword}, hash function id: ${hashFunctionId}, operationId: ${operationId}`,
- );
-
- const agreementData = await this.blockchainModuleManager.getAgreementData(
- blockchain,
- agreementId,
- );
-
- return {
- agreementId,
- agreementData,
- };
- };
-
- const getAsk = async () => {
- const peerRecord = await this.repositoryModuleManager.getPeerRecord(
- this.networkModuleManager.getPeerId().toB58String(),
- blockchain,
- );
-
- return this.blockchainModuleManager.convertToWei(blockchain, peerRecord.ask);
- };
-
- const [{ agreementId, agreementData }, blockchainAssertionSize, r0, ask] =
- await Promise.all([
- getAgreementData(),
- this.blockchainModuleManager.getAssertionSize(blockchain, assertionId),
- this.blockchainModuleManager.getR0(blockchain),
- getAsk(),
- ]);
- const blockchainAssertionSizeInKb = blockchainAssertionSize / BYTES_IN_KILOBYTE;
- if (!agreementData) {
- this.logger.warn(
- `Unable to fetch agreement data in handle protocol messsage command for agreement id: ${agreementId}, blockchain id: ${blockchain}`,
- );
- return {
- errorMessage: 'Unable to fetch agreement data.',
- agreementId,
- agreementData,
- };
- }
- if (blockchainAssertionSizeInKb > this.config.maximumAssertionSizeInKb) {
+ async validateReceivedData(operationId, datasetRoot, dataset, blockchain, isOperationV0) {
+ this.logger.trace(`Validating shard for datasetRoot: ${datasetRoot}`);
+ const isShardValid = await this.validateShard(blockchain);
+ if (!isShardValid) {
this.logger.warn(
- `The size of the received assertion exceeds the maximum limit allowed.. Maximum allowed assertion size in kb: ${this.config.maximumAssertionSizeInKb}, assertion size read from blockchain in kb: ${blockchainAssertionSizeInKb}`,
+ `Invalid shard on blockchain: ${blockchain}, operationId: ${operationId}`,
);
- return {
- errorMessage:
- 'The size of the received assertion exceeds the maximum limit allowed.',
- agreementId,
- agreementData,
- };
- }
-
- const serviceAgreementBid = await this.serviceAgreementService.calculateBid(
- blockchain,
- blockchainAssertionSize,
- agreementData,
- r0,
- );
-
- const bidAskLog = `Service agreement bid: ${serviceAgreementBid}, ask: ${ask}, operationId: ${operationId}`;
- this.logger.trace(bidAskLog);
-
- return {
- errorMessage: ask.lte(serviceAgreementBid) ? null : bidAskLog,
- agreementId,
- agreementData,
- };
- }
-
- async validateReceivedData(
- operationId,
- assertionId,
- blockchain,
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- proximityScoreFunctionsPairId,
- ) {
- const ual = this.ualService.deriveUAL(blockchain, contract, tokenId);
-
- this.logger.trace(`Validating neighborhood for ual: ${ual}`);
- if (
- !(await this.validateNeighborhood(
- blockchain,
- keyword,
- hashFunctionId,
- proximityScoreFunctionsPairId,
- ual,
- ))
- ) {
return {
messageType: NETWORK_MESSAGE_TYPES.RESPONSES.NACK,
messageData: { errorMessage: 'Invalid neighbourhood' },
};
}
- this.logger.trace(`Validating assertion with ual: ${ual}`);
- await this.validateAssertionId(blockchain, contract, tokenId, assertionId, ual);
- this.logger.trace(`Validating bid for asset with ual: ${ual}`);
- const { errorMessage, agreementId, agreementData } = await this.validateBid(
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- blockchain,
- assertionId,
- operationId,
- );
-
- if (errorMessage) {
- return {
- messageType: NETWORK_MESSAGE_TYPES.RESPONSES.NACK,
- messageData: { errorMessage },
- };
+ if (!isOperationV0) {
+ try {
+ await this.validationService.validateDatasetRoot(dataset, datasetRoot);
+ } catch (error) {
+ return {
+ messageType: NETWORK_MESSAGE_TYPES.RESPONSES.NACK,
+ messageData: {
+ errorMessage: error.message,
+ },
+ };
+ }
}
- await this.operationIdService.cacheOperationIdData(operationId, {
- assertionId,
- blockchain,
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- agreementId,
- agreementData,
- });
-
return { messageType: NETWORK_MESSAGE_TYPES.RESPONSES.ACK, messageData: {} };
}
async handleError(errorMessage, command) {
- const { operationId, blockchain, remotePeerId, keywordUuid, protocol } = command.data;
+ const { operationId, blockchain, remotePeerId, protocol } = command.data;
await super.handleError(operationId, blockchain, errorMessage, this.errorType, true);
await this.networkModuleManager.sendMessageResponse(
@@ -246,10 +165,9 @@ class HandleProtocolMessageCommand extends Command {
remotePeerId,
NETWORK_MESSAGE_TYPES.RESPONSES.NACK,
operationId,
- keywordUuid,
{ errorMessage },
);
- this.networkModuleManager.removeCachedSession(operationId, keywordUuid, remotePeerId);
+ this.networkModuleManager.removeCachedSession(operationId, remotePeerId);
}
}
diff --git a/src/commands/protocols/common/network-protocol-command.js b/src/commands/protocols/common/network-protocol-command.js
index 6c3aab9c15..8a2900514f 100644
--- a/src/commands/protocols/common/network-protocol-command.js
+++ b/src/commands/protocols/common/network-protocol-command.js
@@ -1,11 +1,15 @@
import Command from '../../command.js';
+import { OPERATION_ID_STATUS, ERROR_TYPE } from '../../../constants/constants.js';
class NetworkProtocolCommand extends Command {
constructor(ctx) {
super(ctx);
this.commandExecutor = ctx.commandExecutor;
this.blockchainModuleManager = ctx.blockchainModuleManager;
- this.serviceAgreementService = ctx.serviceAgreementService;
+
+ this.errorType = ERROR_TYPE.NETWORK_PROTOCOL_ERROR;
+ this.operationStartEvent = OPERATION_ID_STATUS.NETWORK_PROTOCOL_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.NETWORK_PROTOCOL_END;
}
/**
@@ -13,62 +17,43 @@ class NetworkProtocolCommand extends Command {
* @param command
*/
async execute(command) {
- const { blockchain, contract, tokenId, hashFunctionId } = command.data;
+ const { blockchain, operationId, minimumNumberOfNodeReplications, batchSize } =
+ command.data;
- const keywords = await this.getKeywords(command);
- const batchSize = await this.getBatchSize(blockchain);
- const minAckResponses = await this.getMinAckResponses(blockchain);
+ this.operationIdService.emitChangeEvent(this.operationStartEvent, operationId, blockchain);
- const serviceAgreementId = this.serviceAgreementService.generateId(
- blockchain,
- contract,
- tokenId,
- keywords[0],
- hashFunctionId,
+ const batchSizePar = this.operationService.getBatchSize(batchSize);
+ const minAckResponses = this.operationService.getMinAckResponses(
+ minimumNumberOfNodeReplications,
);
- const proximityScoreFunctionsPairId =
- await this.blockchainModuleManager.getAgreementScoreFunctionId(
- blockchain,
- serviceAgreementId,
- );
const commandSequence = [
- 'findNodesCommand',
`${this.operationService.getOperationName()}ScheduleMessagesCommand`,
];
- const addCommandPromises = keywords.map((keyword) =>
- this.commandExecutor.add({
- name: commandSequence[0],
- sequence: commandSequence.slice(1),
- delay: 0,
- data: {
- ...command.data,
- keyword,
- batchSize,
- minAckResponses,
- errorType: this.errorType,
- networkProtocols: this.operationService.getNetworkProtocols(),
- proximityScoreFunctionsPairId,
- },
- transactional: false,
- }),
- );
+ await this.commandExecutor.add({
+ name: commandSequence[0],
+ sequence: commandSequence.slice(1),
+ delay: 0,
+ data: {
+ ...command.data,
+ batchSize: batchSizePar,
+ minAckResponses,
+ errorType: this.errorType,
+ },
+ transactional: false,
+ });
- await Promise.all(addCommandPromises);
+ this.operationIdService.emitChangeEvent(this.operationEndEvent, operationId, blockchain);
return Command.empty();
}
- async getKeywords() {
- throw Error('getKeywords not implemented');
- }
-
- async getBatchSize() {
+ getBatchSize() {
throw Error('getBatchSize not implemented');
}
- async getMinAckResponses() {
+ getMinAckResponses() {
throw Error('getMinAckResponses not implemented');
}
diff --git a/src/commands/protocols/common/protocol-init-command.js b/src/commands/protocols/common/protocol-init-command.js
deleted file mode 100644
index 6eac043b01..0000000000
--- a/src/commands/protocols/common/protocol-init-command.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import ProtocolMessageCommand from './protocol-message-command.js';
-import { NETWORK_MESSAGE_TYPES } from '../../../constants/constants.js';
-
-class ProtocolInitCommand extends ProtocolMessageCommand {
- async prepareMessage(command) {
- const { assertionId, contract, tokenId, keyword, hashFunctionId } = command.data;
- const proximityScoreFunctionsPairId = command.data.proximityScoreFunctionsPairId ?? 1;
-
- // TODO: Backwards compatibility, send blockchain without chainId
- const blockchain = command.data.blockchain.split(':')[0];
-
- return {
- assertionId,
- blockchain,
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- proximityScoreFunctionsPairId,
- };
- }
-
- async execute(command) {
- return this.executeProtocolMessageCommand(
- command,
- NETWORK_MESSAGE_TYPES.REQUESTS.PROTOCOL_INIT,
- );
- }
-}
-
-export default ProtocolInitCommand;
diff --git a/src/commands/protocols/common/protocol-message-command.js b/src/commands/protocols/common/protocol-message-command.js
index b0ee5c48b9..6651e4a167 100644
--- a/src/commands/protocols/common/protocol-message-command.js
+++ b/src/commands/protocols/common/protocol-message-command.js
@@ -1,18 +1,38 @@
-import { v5 as uuidv5 } from 'uuid';
import Command from '../../command.js';
-import { NETWORK_MESSAGE_TYPES, OPERATION_REQUEST_STATUS } from '../../../constants/constants.js';
+import {
+ NETWORK_MESSAGE_TYPES,
+ OPERATION_REQUEST_STATUS,
+ OPERATION_ID_STATUS,
+} from '../../../constants/constants.js';
class ProtocolMessageCommand extends Command {
constructor(ctx) {
super(ctx);
this.networkModuleManager = ctx.networkModuleManager;
+
+ this.prepareMessageStartEvent = OPERATION_ID_STATUS.PROTOCOL_PREPARE_MESSAGE_START;
+ this.prepareMessageEndEvent = OPERATION_ID_STATUS.PROTOCOL_PREPARE_MESSAGE_END;
+ this.sendMessageStartEvent = OPERATION_ID_STATUS.PROTOCOL_SEND_MESSAGE_START;
+ this.sendMessageEndEvent = OPERATION_ID_STATUS.PROTOCOL_SEND_MESSAGE_END;
}
async executeProtocolMessageCommand(command, messageType) {
+ const { operationId, blockchain } = command.data;
+
if (!(await this.shouldSendMessage(command))) {
return Command.empty();
}
+ this.operationIdService.emitChangeEvent(
+ this.prepareMessageStartEvent,
+ operationId,
+ blockchain,
+ );
const message = await this.prepareMessage(command);
+ this.operationIdService.emitChangeEvent(
+ this.prepareMessageEndEvent,
+ operationId,
+ blockchain,
+ );
return this.sendProtocolMessage(command, message, messageType);
}
@@ -26,21 +46,24 @@ class ProtocolMessageCommand extends Command {
}
async sendProtocolMessage(command, message, messageType) {
- const { node, operationId, keyword } = command.data;
-
- const keywordUuid = uuidv5(keyword, uuidv5.URL);
+ const { node, operationId, blockchain } = command.data;
+ this.operationIdService.emitChangeEvent(
+ this.sendMessageStartEvent,
+ operationId,
+ blockchain,
+ );
const response = await this.networkModuleManager.sendMessage(
node.protocol,
node.id,
messageType,
operationId,
- keywordUuid,
message,
this.messageTimeout(),
);
+ this.operationIdService.emitChangeEvent(this.sendMessageEndEvent, operationId, blockchain);
- this.networkModuleManager.removeCachedSession(operationId, keywordUuid, node.id);
+ this.networkModuleManager.removeCachedSession(operationId, node.id);
switch (response.header.messageType) {
case NETWORK_MESSAGE_TYPES.RESPONSES.BUSY:
@@ -79,9 +102,8 @@ class ProtocolMessageCommand extends Command {
}
async recover(command) {
- const { node, operationId, keyword } = command.data;
- const keywordUuid = uuidv5(keyword, uuidv5.URL);
- this.networkModuleManager.removeCachedSession(operationId, keywordUuid, node.id);
+ const { node, operationId } = command.data;
+ this.networkModuleManager.removeCachedSession(operationId, node.id);
await this.markResponseAsFailed(command, command.message);
return Command.empty();
diff --git a/src/commands/protocols/common/protocol-request-command.js b/src/commands/protocols/common/protocol-request-command.js
index 0b223d75ae..161ddaf29f 100644
--- a/src/commands/protocols/common/protocol-request-command.js
+++ b/src/commands/protocols/common/protocol-request-command.js
@@ -1,13 +1,28 @@
import Command from '../../command.js';
import ProtocolMessageCommand from './protocol-message-command.js';
-import { NETWORK_MESSAGE_TYPES, OPERATION_REQUEST_STATUS } from '../../../constants/constants.js';
+import {
+ NETWORK_MESSAGE_TYPES,
+ OPERATION_REQUEST_STATUS,
+ OPERATION_ID_STATUS,
+} from '../../../constants/constants.js';
class ProtocolRequestCommand extends ProtocolMessageCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.operationStartEvent = OPERATION_ID_STATUS.PROTOCOL_REQUEST_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.PROTOCOL_REQUEST_END;
+ }
+
async execute(command) {
- return this.executeProtocolMessageCommand(
+ const { operationId, blockchain } = command.data;
+ this.operationIdService.emitChangeEvent(this.operationStartEvent, operationId, blockchain);
+ const result = await this.executeProtocolMessageCommand(
command,
NETWORK_MESSAGE_TYPES.REQUESTS.PROTOCOL_REQUEST,
);
+ this.operationIdService.emitChangeEvent(this.operationEndEvent, operationId, blockchain);
+
+ return result;
}
async handleAck(command, responseData) {
diff --git a/src/commands/protocols/common/protocol-schedule-messages-command.js b/src/commands/protocols/common/protocol-schedule-messages-command.js
index dd84e7d287..2361ffb21f 100644
--- a/src/commands/protocols/common/protocol-schedule-messages-command.js
+++ b/src/commands/protocols/common/protocol-schedule-messages-command.js
@@ -1,10 +1,14 @@
import Command from '../../command.js';
+import { OPERATION_ID_STATUS } from '../../../constants/constants.js';
class ProtocolScheduleMessagesCommand extends Command {
constructor(ctx) {
super(ctx);
this.commandExecutor = ctx.commandExecutor;
this.protocolService = ctx.protocolService;
+
+ this.operationStartEvent = OPERATION_ID_STATUS.PROTOCOL_SCHEDULE_MESSAGE_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.PROTOCOL_SCHEDULE_MESSAGE_END;
}
/**
@@ -14,7 +18,6 @@ class ProtocolScheduleMessagesCommand extends Command {
async execute(command) {
const {
operationId,
- keyword,
batchSize,
leftoverNodes,
numberOfFoundNodes,
@@ -29,15 +32,13 @@ class ProtocolScheduleMessagesCommand extends Command {
await this.operationIdService.updateOperationIdStatus(
operationId,
blockchain,
- this.startEvent,
+ this.operationStartEvent,
);
this.logger.debug(
`Trying to ${this.operationService.getOperationName()} to batch of ${
currentBatchNodes.length
- } nodes for keyword : ${keyword}, leftover for retry: ${
- currentBatchLeftoverNodes.length
- }`,
+ }, leftover for retry: ${currentBatchLeftoverNodes.length}`,
);
const addCommandPromises = currentBatchNodes.map(async (node) => {
@@ -50,7 +51,6 @@ class ProtocolScheduleMessagesCommand extends Command {
...this.getNextCommandData(command),
blockchain,
operationId,
- keyword,
node,
numberOfFoundNodes,
batchSize,
@@ -65,19 +65,20 @@ class ProtocolScheduleMessagesCommand extends Command {
await Promise.all(addCommandPromises);
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ this.operationEndEvent,
+ );
+
return Command.empty();
}
getNextCommandData(command) {
- const { assertionId, blockchain, contract, tokenId, hashFunctionId } = command.data;
- const proximityScoreFunctionsPairId = command.data.proximityScoreFunctionsPairId ?? 1;
+ const { datasetRoot, blockchain } = command.data;
return {
- assertionId,
blockchain,
- contract,
- tokenId,
- hashFunctionId,
- proximityScoreFunctionsPairId,
+ datasetRoot,
};
}
diff --git a/src/commands/protocols/common/simple-asset-sync-command.js b/src/commands/protocols/common/simple-asset-sync-command.js
deleted file mode 100644
index cd08272a32..0000000000
--- a/src/commands/protocols/common/simple-asset-sync-command.js
+++ /dev/null
@@ -1,194 +0,0 @@
-import { setTimeout } from 'timers/promises';
-import Command from '../../command.js';
-import {
- COMMAND_RETRIES,
- ERROR_TYPE,
- OPERATION_ID_STATUS,
- OPERATION_STATUS,
- SIMPLE_ASSET_SYNC_PARAMETERS,
-} from '../../../constants/constants.js';
-
-class SimpleAssetSyncCommand extends Command {
- constructor(ctx) {
- super(ctx);
- this.tripleStoreService = ctx.tripleStoreService;
- this.ualService = ctx.ualService;
- this.operationIdService = ctx.operationIdService;
- this.getService = ctx.getService;
- this.repositoryModuleManager = ctx.repositoryModuleManager;
- this.commandExecutor = ctx.commandExecutor;
-
- this.errorType = ERROR_TYPE.COMMIT_PROOF.SIMPLE_ASSET_SYNC_ERROR;
- }
-
- /**
- * Executes command and produces one or more events
- * @param command
- */
- async execute(command) {
- const {
- operationId,
- blockchain,
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- epoch,
- assertionId,
- stateIndex,
- } = command.data;
-
- await this.operationIdService.updateOperationIdStatus(
- operationId,
- blockchain,
- OPERATION_ID_STATUS.COMMIT_PROOF.SIMPLE_ASSET_SYNC_START,
- );
-
- this.logger.info(
- `[SIMPLE_ASSET_SYNC] (${operationId}): Started command for the ` +
- `Blockchain: ${blockchain}, Contract: ${contract}, Token ID: ${tokenId}, ` +
- `Keyword: ${keyword}, Hash function ID: ${hashFunctionId}, Epoch: ${epoch}, ` +
- `State Index: ${stateIndex}, Retry number: ${
- COMMAND_RETRIES.SIMPLE_ASSET_SYNC - command.retries + 1
- }`,
- );
-
- const ual = this.ualService.deriveUAL(blockchain, contract, tokenId);
-
- const getOperationId = await this.operationIdService.generateOperationId(
- OPERATION_ID_STATUS.GET.GET_START,
- );
-
- this.logger.debug(
- `[SIMPLE_ASSET_SYNC] (${operationId}): Fetching Knowledge Asset from the network for the ` +
- `Blockchain: ${blockchain}, Contract: ${contract}, Token ID: ${tokenId}, ` +
- `Keyword: ${keyword}, Hash function ID: ${hashFunctionId}, Epoch: ${epoch}, ` +
- `State Index: ${stateIndex}, Network Get Operation ID: ${getOperationId}`,
- );
-
- await Promise.all([
- this.operationIdService.updateOperationIdStatus(
- getOperationId,
- blockchain,
- OPERATION_ID_STATUS.GET.GET_INIT_START,
- ),
- this.repositoryModuleManager.createOperationRecord(
- this.getService.getOperationName(),
- getOperationId,
- OPERATION_STATUS.IN_PROGRESS,
- ),
- ]);
-
- let getResult;
-
- try {
- await this.commandExecutor.add({
- name: 'networkGetCommand',
- sequence: [],
- delay: 0,
- data: {
- operationId: getOperationId,
- id: ual,
- blockchain,
- contract,
- tokenId,
- state: assertionId,
- hashFunctionId,
- assertionId,
- stateIndex,
- assetSync: true,
- },
- transactional: false,
- });
-
- await this.operationIdService.updateOperationIdStatus(
- getOperationId,
- blockchain,
- OPERATION_ID_STATUS.GET.GET_INIT_END,
- );
-
- let attempt = 0;
- do {
- // eslint-disable-next-line no-await-in-loop
- await setTimeout(SIMPLE_ASSET_SYNC_PARAMETERS.GET_RESULT_POLLING_INTERVAL_MILLIS);
-
- // eslint-disable-next-line no-await-in-loop
- getResult = await this.operationIdService.getOperationIdRecord(getOperationId);
- attempt += 1;
- } while (
- attempt < SIMPLE_ASSET_SYNC_PARAMETERS.GET_RESULT_POLLING_MAX_ATTEMPTS &&
- getResult?.status !== OPERATION_ID_STATUS.FAILED &&
- getResult?.status !== OPERATION_ID_STATUS.COMPLETED
- );
- } catch (error) {
- this.logger.warn(
- `[SIMPLE_ASSET_SYNC] (${operationId}): Unable to sync Knowledge Asset for the ` +
- `Blockchain: ${blockchain}, Contract: ${contract}, Token ID: ${tokenId}, ` +
- `Keyword: ${keyword}, Hash function ID: ${hashFunctionId}, Epoch: ${epoch}, ` +
- `State Index: ${stateIndex}, Network Get Operation ID: ${getOperationId}, ` +
- `Operation failed with error: ${error}.`,
- );
-
- return Command.retry();
- }
-
- await this.operationIdService.updateOperationIdStatus(
- operationId,
- blockchain,
- OPERATION_ID_STATUS.COMMIT_PROOF.SIMPLE_ASSET_SYNC_END,
- );
- const getOperationCachedData = await this.operationIdService.getCachedOperationIdData(
- getOperationId,
- );
- if (getOperationCachedData.message === 'Unable to find assertion on the network!') {
- this.logger.info(
- `[SIMPLE_ASSET_SYNC] (${operationId}): Failed to executed command. Couldn't find asset on the network for the ` +
- `Blockchain: ${blockchain}, Contract: ${contract}, Token ID: ${tokenId}, ` +
- `Keyword: ${keyword}, Hash function ID: ${hashFunctionId}, Epoch: ${epoch}, ` +
- `State Index: ${stateIndex}, Network Get Operation ID: ${getOperationId}, `,
- );
-
- return Command.empty();
- }
- this.logger.info(
- `[SIMPLE_ASSET_SYNC] (${operationId}): Successfully executed command for the ` +
- `Blockchain: ${blockchain}, Contract: ${contract}, Token ID: ${tokenId}, ` +
- `Keyword: ${keyword}, Hash function ID: ${hashFunctionId}, Epoch: ${epoch}, ` +
- `State Index: ${stateIndex}, Network Get Operation ID: ${getOperationId}, `,
- );
-
- return this.continueSequence(command.data, command.sequence, {
- retries: COMMAND_RETRIES.SUBMIT_COMMIT,
- });
- }
-
- async retryFinished(command) {
- const { blockchain, contract, tokenId, operationId } = command.data;
- const ual = this.ualService.deriveUAL(blockchain, contract, tokenId);
- await this.handleError(
- operationId,
- blockchain,
- `Max retry count for the ${command.name} reached! ` +
- `Unable to sync Knowledge Asset on the ${blockchain} blockchain with the UAL: ${ual}`,
- this.errorType,
- true,
- );
- }
-
- /**
- * Builds default simpleAssetSyncCommand
- * @param map
- * @returns {{add, data: *, delay: *, deadline: *}}
- */
- default(map) {
- const command = {
- name: 'simpleAssetSyncCommand',
- delay: 0,
- transactional: false,
- };
- Object.assign(command, map);
- return command;
- }
-}
-
-export default SimpleAssetSyncCommand;
diff --git a/src/commands/protocols/common/submit-commit-command.js b/src/commands/protocols/common/submit-commit-command.js
deleted file mode 100644
index 71458ae2f0..0000000000
--- a/src/commands/protocols/common/submit-commit-command.js
+++ /dev/null
@@ -1,202 +0,0 @@
-import {
- OPERATION_ID_STATUS,
- ERROR_TYPE,
- COMMAND_RETRIES,
- COMMAND_TX_GAS_INCREASE_FACTORS,
-} from '../../../constants/constants.js';
-import Command from '../../command.js';
-import SendTransactionCommand from '../../common/send-transaction-command.js';
-
-class SubmitCommitCommand extends SendTransactionCommand {
- constructor(ctx) {
- super(ctx);
- this.commandExecutor = ctx.commandExecutor;
- this.blockchainModuleManager = ctx.blockchainModuleManager;
- this.operationIdService = ctx.operationIdService;
- this.repositoryModuleManager = ctx.repositoryModuleManager;
-
- this.errorType = ERROR_TYPE.COMMIT_PROOF.SUBMIT_COMMIT_ERROR;
-
- this.txStartStatus = OPERATION_ID_STATUS.COMMIT_PROOF.SUBMIT_COMMIT_SEND_TX_START;
- this.txEndStatus = OPERATION_ID_STATUS.COMMIT_PROOF.SUBMIT_COMMIT_SEND_TX_END;
- this.txErrorType = ERROR_TYPE.COMMIT_PROOF.SUBMIT_COMMIT_SEND_TX_ERROR;
- this.txGasIncreaseFactor = COMMAND_TX_GAS_INCREASE_FACTORS.SUBMIT_COMMIT;
- this.operationEndStatus = OPERATION_ID_STATUS.COMMIT_PROOF.SUBMIT_COMMIT_END;
- this.commandRetryNumber = COMMAND_RETRIES.SUBMIT_COMMIT;
- }
-
- async execute(command) {
- const {
- operationId,
- blockchain,
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- epoch,
- agreementId,
- stateIndex,
- gasPrice,
- closestNode,
- leftNeighborhoodEdge,
- rightNeighborhoodEdge,
- } = command.data;
-
- this.logger.trace(
- `Started ${command.name} for the Service Agreement with the ID: ${agreementId}, ` +
- `Blockchain: ${blockchain}, Contract: ${contract}, Token ID: ${tokenId}, ` +
- `Keyword: ${keyword}, Hash function ID: ${hashFunctionId}, Epoch: ${epoch}, ` +
- `State Index: ${stateIndex}, Operation ID: ${operationId}, ` +
- `Closest Node: ${closestNode}, Left neighborhood edge: ${leftNeighborhoodEdge}, ` +
- `Right neighborhood edge: ${rightNeighborhoodEdge}, ` +
- `Retry number: ${COMMAND_RETRIES.SUBMIT_COMMIT - command.retries + 1}`,
- );
-
- if (command.retries === COMMAND_RETRIES.SUBMIT_COMMIT) {
- this.operationIdService.emitChangeEvent(
- OPERATION_ID_STATUS.COMMIT_PROOF.SUBMIT_COMMIT_START,
- operationId,
- blockchain,
- agreementId,
- epoch,
- );
- }
-
- const assertionIds = await this.blockchainModuleManager.getAssertionIds(
- blockchain,
- contract,
- tokenId,
- );
-
- // If update for new state is already finalized (and node haven't processed the event yet), don't send commit for the older state
- if (stateIndex < assertionIds.length - 1) {
- this.logger.trace(
- `Knowledge Asset was updated, not sending Commit for the Service Agreement with the ID: ${agreementId}, ` +
- `Blockchain: ${blockchain}, Contract: ${contract}, Token ID: ${tokenId}, ` +
- `Keyword: ${keyword}, Hash function ID: ${hashFunctionId}, Epoch: ${epoch}, ` +
- `State Index: ${stateIndex}, Operation ID: ${operationId}` +
- `Closest Node: ${closestNode}, Left neighborhood edge: ${leftNeighborhoodEdge}, ` +
- `Right neighborhood edge: ${rightNeighborhoodEdge}`,
- );
-
- return Command.empty();
- }
-
- // this can happen in case node has already submitted update commit
- const alreadySubmitted = await this.commitAlreadySubmitted(
- blockchain,
- agreementId,
- epoch,
- stateIndex,
- );
- if (alreadySubmitted) {
- this.logger.trace(
- `Commit has already been submitted for the Service Agreement with the ID: ${agreementId}, ` +
- `Blockchain: ${blockchain}, Contract: ${contract}, Token ID: ${tokenId}, ` +
- `Keyword: ${keyword}, Hash function ID: ${hashFunctionId}, Epoch: ${epoch}, ` +
- `State Index: ${stateIndex}, Operation ID: ${operationId}` +
- `Closest Node: ${closestNode}, Left neighborhood edge: ${leftNeighborhoodEdge}, ` +
- `Right neighborhood edge: ${rightNeighborhoodEdge}`,
- );
-
- return Command.empty();
- }
-
- const txGasPrice = gasPrice ?? (await this.blockchainModuleManager.getGasPrice(blockchain));
-
- const transactionCompletePromise = new Promise((resolve, reject) => {
- this.blockchainModuleManager.submitCommit(
- blockchain,
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- closestNode,
- leftNeighborhoodEdge,
- rightNeighborhoodEdge,
- epoch,
- stateIndex,
- (result) => {
- if (result?.error) {
- reject(result.error);
- }
- resolve(true);
- },
- txGasPrice,
- );
- });
-
- return this.sendTransactionAndHandleResult(
- transactionCompletePromise,
- {
- blockchain,
- agreementId,
- epoch,
- operationId,
- closestNode,
- leftNeighborhoodEdge,
- rightNeighborhoodEdge,
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- stateIndex,
- txGasPrice,
- },
- command,
- );
- }
-
- async insufficientFundsErrorReceived(commandData) {
- await this.repositoryModuleManager.updateServiceAgreementLastCommitEpoch(
- commandData.agreementId,
- commandData.epoch - 1 < 0 ? null : commandData.epoch - 1,
- );
- }
-
- async commitAlreadySubmitted(blockchain, agreementId, epoch, stateIndex) {
- const commits = await this.blockchainModuleManager.getTopCommitSubmissions(
- blockchain,
- agreementId,
- epoch,
- stateIndex,
- );
- const identityId = await this.blockchainModuleManager.getIdentityId(blockchain);
-
- for (const commit of commits) {
- if (Number(commit.identityId) === identityId) {
- return true;
- }
- }
-
- return false;
- }
-
- async retryFinished(command) {
- const { blockchain, operationId } = command.data;
- await this.handleError(
- operationId,
- blockchain,
- `Max retries has been reached! Latest Error Message: ${command.message}`,
- this.errorType,
- true,
- );
- }
-
- /**
- * Builds default handleStoreInitCommand
- * @param map
- * @returns {{add, data: *, delay: *, deadline: *}}
- */
- default(map) {
- const command = {
- name: 'submitCommitCommand',
- delay: 0,
- transactional: false,
- };
- Object.assign(command, map);
- return command;
- }
-}
-
-export default SubmitCommitCommand;
diff --git a/src/commands/protocols/common/submit-proofs-command.js b/src/commands/protocols/common/submit-proofs-command.js
deleted file mode 100644
index 57b4b7d028..0000000000
--- a/src/commands/protocols/common/submit-proofs-command.js
+++ /dev/null
@@ -1,238 +0,0 @@
-import {
- OPERATION_ID_STATUS,
- ERROR_TYPE,
- COMMAND_RETRIES,
- COMMAND_TX_GAS_INCREASE_FACTORS,
- TRIPLE_STORE_REPOSITORIES,
-} from '../../../constants/constants.js';
-import Command from '../../command.js';
-import SendTransactionCommand from '../../common/send-transaction-command.js';
-
-class SubmitProofsCommand extends SendTransactionCommand {
- constructor(ctx) {
- super(ctx);
-
- this.blockchainModuleManager = ctx.blockchainModuleManager;
- this.repositoryModuleManager = ctx.repositoryModuleManager;
- this.validationModuleManager = ctx.validationModuleManager;
- this.tripleStoreService = ctx.tripleStoreService;
- this.operationIdService = ctx.operationIdService;
- this.repositoryModuleManager = ctx.repositoryModuleManager;
-
- this.errorType = ERROR_TYPE.COMMIT_PROOF.SUBMIT_PROOFS_ERROR;
-
- this.txStartStatus = OPERATION_ID_STATUS.COMMIT_PROOF.SUBMIT_PROOFS_SEND_TX_START;
- this.txEndStatus = OPERATION_ID_STATUS.COMMIT_PROOF.SUBMIT_PROOFS_SEND_TX_END;
- this.txErrorType = ERROR_TYPE.COMMIT_PROOF.SUBMIT_PROOFS_SEND_TX_ERROR;
- this.txGasIncreaseFactor = COMMAND_TX_GAS_INCREASE_FACTORS.SUBMIT_PROOFS;
- this.operationEndStatus = OPERATION_ID_STATUS.COMMIT_PROOF.SUBMIT_PROOFS_END;
- this.commandRetryNumber = COMMAND_RETRIES.SUBMIT_PROOFS;
- }
-
- async execute(command) {
- const {
- operationId,
- blockchain,
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- epoch,
- agreementId,
- assertionId,
- stateIndex,
- gasPrice,
- } = command.data;
-
- this.logger.trace(
- `Started ${command.name} for the Service Agreement with the ID: ${agreementId} ` +
- `Blockchain: ${blockchain}, Contract: ${contract}, Token ID: ${tokenId}, ` +
- `Keyword: ${keyword}, Hash function ID: ${hashFunctionId}, Epoch: ${epoch}, ` +
- `State Index: ${stateIndex}, Operation ID: ${operationId}, ` +
- `Retry number: ${COMMAND_RETRIES.SUBMIT_PROOFS - command.retries + 1}`,
- );
-
- if (command.retries === COMMAND_RETRIES.SUBMIT_PROOFS) {
- this.operationIdService.emitChangeEvent(
- OPERATION_ID_STATUS.COMMIT_PROOF.CALCULATE_PROOFS_START,
- operationId,
- blockchain,
- agreementId,
- epoch,
- );
- }
-
- const { challenge } = await this.blockchainModuleManager.getChallenge(
- blockchain,
- contract,
- tokenId,
- epoch,
- stateIndex,
- );
-
- const assertion = await this.tripleStoreService.getAssertion(
- TRIPLE_STORE_REPOSITORIES.PUBLIC_CURRENT,
- assertionId,
- );
-
- if (!assertion.length) {
- const errorMessage = `Assertion with id: ${assertionId} not found in the triple store.`;
- this.logger.trace(errorMessage);
-
- await this.handleError(operationId, blockchain, errorMessage, this.errorType, true);
-
- return Command.empty();
- }
-
- const { leaf, proof } = this.validationModuleManager.getMerkleProof(
- assertion,
- Number(challenge),
- );
-
- if (command.retries === COMMAND_RETRIES.SUBMIT_PROOFS) {
- this.operationIdService.emitChangeEvent(
- OPERATION_ID_STATUS.COMMIT_PROOF.CALCULATE_PROOFS_END,
- operationId,
- blockchain,
- agreementId,
- epoch,
- );
-
- this.operationIdService.emitChangeEvent(
- OPERATION_ID_STATUS.COMMIT_PROOF.SUBMIT_PROOFS_START,
- operationId,
- blockchain,
- agreementId,
- epoch,
- );
- }
-
- const assertionIds = await this.blockchainModuleManager.getAssertionIds(
- blockchain,
- contract,
- tokenId,
- );
-
- // If update for new state is already finalized (and node haven't processed the event yet), don't send commit for the older state
- if (stateIndex < assertionIds.length - 1) {
- this.logger.trace(
- `Knowledge Asset was updated, not sending Proof for the Service Agreement with the ID: ${agreementId}, ` +
- `Blockchain: ${blockchain}, Contract: ${contract}, Token ID: ${tokenId}, ` +
- `Keyword: ${keyword}, Hash function ID: ${hashFunctionId}, Epoch: ${epoch}, ` +
- `State Index: ${stateIndex}, Operation ID: ${operationId}`,
- );
-
- return Command.empty();
- }
-
- const alreadySubmitted = await this.proofAlreadySubmitted(
- blockchain,
- agreementId,
- epoch,
- stateIndex,
- );
- if (alreadySubmitted) {
- this.logger.trace(
- `Proof has already been submitted for the Service Agreement with the ID: ${agreementId}, ` +
- `Blockchain: ${blockchain}, Contract: ${contract}, Token ID: ${tokenId}, ` +
- `Keyword: ${keyword}, Hash function ID: ${hashFunctionId}, Epoch: ${epoch}, ` +
- `State Index: ${stateIndex}, Operation ID: ${operationId}`,
- );
-
- return Command.empty();
- }
-
- const txGasPrice = gasPrice ?? (await this.blockchainModuleManager.getGasPrice(blockchain));
-
- const transactionCompletePromise = new Promise((resolve, reject) => {
- this.blockchainModuleManager.sendProof(
- blockchain,
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- epoch,
- proof,
- leaf,
- stateIndex,
- (result) => {
- if (result?.error) {
- reject(result.error);
- }
-
- resolve(true);
- },
- txGasPrice,
- );
- });
- return this.sendTransactionAndHandleResult(
- transactionCompletePromise,
- {
- blockchain,
- agreementId,
- epoch,
- operationId,
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- stateIndex,
- txGasPrice,
- },
- command,
- );
- }
-
- async proofAlreadySubmitted(blockchain, agreementId, epoch, stateIndex) {
- const commits = await this.blockchainModuleManager.getTopCommitSubmissions(
- blockchain,
- agreementId,
- epoch,
- stateIndex,
- );
- const identityId = await this.blockchainModuleManager.getIdentityId(blockchain);
-
- for (const commit of commits) {
- if (Number(commit.identityId) === identityId && Number(commit.score) === 0) {
- return true;
- }
- }
-
- return false;
- }
-
- async insufficientFundsErrorReceived(commandData) {
- await this.repositoryModuleManager.updateServiceAgreementLastProofEpoch(
- commandData.agreementId,
- commandData.epoch - 1 < 0 ? null : commandData.epoch - 1,
- );
- }
-
- async retryFinished(command) {
- const { blockchain, operationId } = command.data;
- await this.handleError(
- operationId,
- blockchain,
- `Max retries has been reached! Latest Error Message: ${command.message}`,
- this.errorType,
- true,
- );
- }
-
- /**
- * Builds default submitProofsCommand
- * @param map
- * @returns {{add, data: *, delay: *, deadline: *}}
- */
- default(map) {
- const command = {
- name: 'submitProofsCommand',
- delay: 0,
- transactional: false,
- };
- Object.assign(command, map);
- return command;
- }
-}
-
-export default SubmitProofsCommand;
diff --git a/src/commands/protocols/common/validate-assertion-metadata-command.js b/src/commands/protocols/common/validate-assertion-metadata-command.js
new file mode 100644
index 0000000000..2c7787cbb5
--- /dev/null
+++ b/src/commands/protocols/common/validate-assertion-metadata-command.js
@@ -0,0 +1,76 @@
+import Command from '../../command.js';
+
+class ValidateAssertionMetadataCommand extends Command {
+ constructor(ctx) {
+ super(ctx);
+ this.operationIdService = ctx.operationIdService;
+ this.blockchainModuleManager = ctx.blockchainModuleManager;
+ this.dataService = ctx.dataService;
+ }
+
+ async execute(command) {
+ const { operationId, ual, blockchain, merkleRoot, cachedMerkleRoot, byteSize, assertion } =
+ command.data;
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ this.operationStartEvent,
+ );
+
+ try {
+ if (merkleRoot !== cachedMerkleRoot) {
+ await this.handleError(
+ operationId,
+ blockchain,
+ `Invalid Merkle Root for Knowledge Collection with UAL: ${ual}. Received value from blockchain: ${merkleRoot}, Cached value from publish operation: ${cachedMerkleRoot}`,
+ this.errorType,
+ true,
+ );
+ }
+
+ const calculatedAssertionSize = this.dataService.calculateAssertionSize(
+ assertion.public ?? assertion,
+ );
+
+ if (byteSize.toString() !== calculatedAssertionSize.toString()) {
+ await this.handleError(
+ operationId,
+ blockchain,
+ `Invalid Assertion Size for Knowledge Collection with UAL: ${ual}. Received value from blockchain: ${byteSize}, Calculated value: ${calculatedAssertionSize}`,
+ this.errorType,
+ true,
+ );
+ }
+ } catch (e) {
+ await this.handleError(operationId, blockchain, e.message, this.errorType, true);
+ return Command.empty();
+ }
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ this.operationEndEvent,
+ );
+
+ return this.continueSequence(command.data, command.sequence);
+ }
+
+ /**
+ * Builds default validateAssertionMetadataCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'validateAssertionMetadataCommand',
+ delay: 0,
+ retries: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default ValidateAssertionMetadataCommand;
diff --git a/src/commands/protocols/finality/receiver/publish-finality-save-ack-command.js b/src/commands/protocols/finality/receiver/publish-finality-save-ack-command.js
new file mode 100644
index 0000000000..0edd6f1fc3
--- /dev/null
+++ b/src/commands/protocols/finality/receiver/publish-finality-save-ack-command.js
@@ -0,0 +1,89 @@
+import {
+ COMMAND_PRIORITY,
+ NETWORK_MESSAGE_TYPES,
+ OPERATION_ID_STATUS,
+} from '../../../../constants/constants.js';
+import Command from '../../../command.js';
+
+class PublishFinalitySaveAckCommand extends Command {
+ constructor(ctx) {
+ super(ctx);
+ this.commandExecutor = ctx.commandExecutor;
+ this.protocolService = ctx.protocolService;
+ this.operationService = ctx.finalityService;
+ this.networkModuleManager = ctx.networkModuleManager;
+ this.repositoryModuleManager = ctx.repositoryModuleManager;
+ }
+
+ /**
+ * Executes command and produces one or more events
+ * @param command
+ */
+ async execute(command) {
+ const { ual, publishOperationId, blockchain, operationId, remotePeerId, state } =
+ command.data;
+
+ let ualWithState = ual;
+ if (state) {
+ ualWithState = `${ual}:${state}`;
+ }
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.FINALITY.PUBLISH_FINALITY_REMOTE_START,
+ );
+
+ let response;
+ let success;
+ try {
+ await this.repositoryModuleManager.saveFinalityAck(
+ publishOperationId,
+ ualWithState,
+ remotePeerId,
+ );
+
+ success = true;
+ response = {
+ messageType: NETWORK_MESSAGE_TYPES.RESPONSES.ACK,
+ messageData: { message: `Acknowledged storing of ${ualWithState}.` },
+ };
+ } catch (err) {
+ success = false;
+ response = {
+ messageType: NETWORK_MESSAGE_TYPES.RESPONSES.NACK,
+ messageData: { errorMessage: `Failed to acknowledge storing of ${ualWithState}.` },
+ };
+ }
+
+ await this.operationService.markOperationAsCompleted(operationId, blockchain, success, [
+ OPERATION_ID_STATUS.FINALITY.PUBLISH_FINALITY_FETCH_FROM_NODES_END,
+ OPERATION_ID_STATUS.FINALITY.PUBLISH_FINALITY_END,
+ OPERATION_ID_STATUS.COMPLETED,
+ ]);
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.FINALITY.PUBLISH_FINALITY_REMOTE_END,
+ );
+
+ return this.continueSequence({ ...command.data, response }, command.sequence);
+ }
+
+ /**
+ * Builds default publishFinalitySaveAckCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'publishFinalitySaveAckCommand',
+ delay: 0,
+ transactional: false,
+ priority: COMMAND_PRIORITY.HIGHEST,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default PublishFinalitySaveAckCommand;
diff --git a/src/commands/protocols/finality/receiver/v1.0.0/v1-0-0-handle-finality-request-command.js b/src/commands/protocols/finality/receiver/v1.0.0/v1-0-0-handle-finality-request-command.js
new file mode 100644
index 0000000000..6dcb91b857
--- /dev/null
+++ b/src/commands/protocols/finality/receiver/v1.0.0/v1-0-0-handle-finality-request-command.js
@@ -0,0 +1,51 @@
+import HandleProtocolMessageCommand from '../../../common/handle-protocol-message-command.js';
+import { ERROR_TYPE, OPERATION_ID_STATUS } from '../../../../../constants/constants.js';
+
+class HandleFinalityRequestCommand extends HandleProtocolMessageCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.operationService = ctx.finalityService;
+ this.tripleStoreService = ctx.tripleStoreService;
+ this.pendingStorageService = ctx.pendingStorageService;
+ this.paranetService = ctx.paranetService;
+ this.repositoryModuleManager = ctx.repositoryModuleManager;
+
+ this.errorType = ERROR_TYPE.FINALITY.FINALITY_REQUEST_REMOTE_ERROR;
+ this.operationStartEvent = OPERATION_ID_STATUS.FINALITY.FINALITY_REMOTE_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.FINALITY.FINALITY_REMOTE_END;
+ this.prepareMessageStartEvent =
+ OPERATION_ID_STATUS.FINALITY.FINALITY_REMOTE_PREPARE_MESSAGE_START;
+ this.prepareMessageEndEvent =
+ OPERATION_ID_STATUS.FINALITY.FINALITY_REMOTE_PREPARE_MESSAGE_END;
+ this.sendMessageResponseStartEvent =
+ OPERATION_ID_STATUS.FINALITY.FINALITY_REMOTE_SEND_MESSAGE_START;
+ this.sendMessageResponseEndEvent =
+ OPERATION_ID_STATUS.FINALITY.FINALITY_REMOTE_SEND_MESSAGE_END;
+ this.removeCachedSessionStartEvent =
+ OPERATION_ID_STATUS.FINALITY.FINALITY_REMOTE_REMOVE_CACHED_SESSION_START;
+ this.removeCachedSessionEndEvent =
+ OPERATION_ID_STATUS.FINALITY.FINALITY_REMOTE_REMOVE_CACHED_SESSION_END;
+ }
+
+ async prepareMessage(commandData) {
+ return commandData.response;
+ }
+
+ /**
+ * Builds default handleFinalityRequestCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'v1_0_0HandleFinalityRequestCommand',
+ delay: 0,
+ transactional: false,
+ errorType: ERROR_TYPE.FINALITY.FINALITY_REQUEST_REMOTE_ERROR,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default HandleFinalityRequestCommand;
diff --git a/src/commands/protocols/finality/sender/finality-schedule-messages-command.js b/src/commands/protocols/finality/sender/finality-schedule-messages-command.js
new file mode 100644
index 0000000000..00eea8343a
--- /dev/null
+++ b/src/commands/protocols/finality/sender/finality-schedule-messages-command.js
@@ -0,0 +1,45 @@
+import ProtocolScheduleMessagesCommand from '../../common/protocol-schedule-messages-command.js';
+import {
+ OPERATION_ID_STATUS,
+ ERROR_TYPE,
+ COMMAND_PRIORITY,
+} from '../../../../constants/constants.js';
+
+class FinalityScheduleMessagesCommand extends ProtocolScheduleMessagesCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.operationService = ctx.finalityService;
+ this.blockchainModuleManager = ctx.blockchainModuleManager;
+ this.repositoryModuleManager = ctx.repositoryModuleManager;
+
+ this.operationStartEvent = OPERATION_ID_STATUS.FINALITY.FINALITY_REPLICATE_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.FINALITY.FINALITY_REPLICATE_END;
+ this.errorType = ERROR_TYPE.FINALITY.FINALITY_START_ERROR;
+ }
+
+ getNextCommandData(command) {
+ return {
+ ...super.getNextCommandData(command),
+ ual: command.data.ual,
+ publishOperationId: command.data.publishOperationId,
+ };
+ }
+
+ /**
+ * Builds default finalityScheduleMessagesCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'finalityScheduleMessagesCommand',
+ delay: 0,
+ transactional: false,
+ priority: COMMAND_PRIORITY.HIGHEST,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default FinalityScheduleMessagesCommand;
diff --git a/src/commands/protocols/finality/sender/find-publisher-node-command.js b/src/commands/protocols/finality/sender/find-publisher-node-command.js
new file mode 100644
index 0000000000..8a42289c83
--- /dev/null
+++ b/src/commands/protocols/finality/sender/find-publisher-node-command.js
@@ -0,0 +1,47 @@
+import { COMMAND_PRIORITY } from '../../../../constants/constants.js';
+import Command from '../../../command.js';
+
+class FindPublisherNodeCommand extends Command {
+ constructor(ctx) {
+ super(ctx);
+ this.operationService = ctx.finalityService;
+ }
+
+ /**
+ * Executes command and produces one or more events
+ * @param command
+ */
+ async execute(command) {
+ const { remotePeerId } = command.data;
+
+ const networkProtocols = this.operationService.getNetworkProtocols();
+ const leftoverNodes = [{ id: remotePeerId, protocol: networkProtocols[0] }];
+
+ return this.continueSequence(
+ {
+ ...command.data,
+ leftoverNodes,
+ numberOfFoundNodes: leftoverNodes.length,
+ },
+ command.sequence,
+ );
+ }
+
+ /**
+ * Builds default findPublisherNodeCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'findPublisherNodeCommand',
+ delay: 0,
+ transactional: false,
+ priority: COMMAND_PRIORITY.HIGHEST,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default FindPublisherNodeCommand;
diff --git a/src/commands/protocols/finality/sender/network-finality-command.js b/src/commands/protocols/finality/sender/network-finality-command.js
new file mode 100644
index 0000000000..91fe91e152
--- /dev/null
+++ b/src/commands/protocols/finality/sender/network-finality-command.js
@@ -0,0 +1,36 @@
+import NetworkProtocolCommand from '../../common/network-protocol-command.js';
+import {
+ COMMAND_PRIORITY,
+ ERROR_TYPE,
+ OPERATION_ID_STATUS,
+} from '../../../../constants/constants.js';
+
+class NetworkFinalityCommand extends NetworkProtocolCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.operationService = ctx.finalityService;
+ this.ualService = ctx.ualService;
+
+ this.errorType = ERROR_TYPE.FINALITY.FINALITY_NETWORK_ERROR;
+ this.operationStartEvent = OPERATION_ID_STATUS.FINALITY.FINALITY_NETWORK_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.FINALITY.FINALITY_NETWORK_END;
+ }
+
+ /**
+ * Builds default networkFinalityCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'networkFinalityCommand',
+ delay: 0,
+ transactional: false,
+ priority: COMMAND_PRIORITY.HIGHEST,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default NetworkFinalityCommand;
diff --git a/src/commands/protocols/finality/sender/v1.0.0/v1-0-0-finality-request-command.js b/src/commands/protocols/finality/sender/v1.0.0/v1-0-0-finality-request-command.js
new file mode 100644
index 0000000000..ab91ef7145
--- /dev/null
+++ b/src/commands/protocols/finality/sender/v1.0.0/v1-0-0-finality-request-command.js
@@ -0,0 +1,80 @@
+import Command from '../../../../command.js';
+import ProtocolRequestCommand from '../../../common/protocol-request-command.js';
+import {
+ NETWORK_MESSAGE_TIMEOUT_MILLS,
+ ERROR_TYPE,
+ OPERATION_ID_STATUS,
+ COMMAND_PRIORITY,
+} from '../../../../../constants/constants.js';
+
+class FinalityRequestCommand extends ProtocolRequestCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.operationService = ctx.finalityService;
+ this.operationIdService = ctx.operationIdService;
+
+ this.errorType = ERROR_TYPE.FINALITY.FINALITY_REQUEST_ERROR;
+ this.operationStartEvent = OPERATION_ID_STATUS.FINALITY.FINALITY_REQUEST_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.FINALITY.FINALITY_REQUEST_END;
+ this.prepareMessageStartEvent =
+ OPERATION_ID_STATUS.FINALITY.FINALITY_REQUEST_PREPARE_MESSAGE_START;
+ this.prepareMessageEndEvent =
+ OPERATION_ID_STATUS.FINALITY.FINALITY_REQUEST_PREPARE_MESSAGE_END;
+ this.sendMessageStartEvent =
+ OPERATION_ID_STATUS.FINALITY.FINALITY_REQUEST_SEND_MESSAGE_START;
+ this.sendMessageEndEvent = OPERATION_ID_STATUS.FINALITY.FINALITY_REQUEST_SEND_MESSAGE_END;
+ }
+
+ async prepareMessage(command) {
+ const { ual, publishOperationId, blockchain, operationId } = command.data;
+
+ return { ual, publishOperationId, blockchain, operationId };
+ }
+
+ async handleAck(command) {
+ const { operationId, blockchain } = command.data;
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.COMPLETED,
+ );
+ return ProtocolRequestCommand.empty();
+ }
+
+ async handleNack(command, responseData) {
+ const { operationId, blockchain } = command.data;
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.COMPLETED,
+ );
+ await this.markResponseAsFailed(
+ command,
+ `Received NACK response from node during ${command.name}. Error message: ${responseData.errorMessage}`,
+ );
+ return Command.empty();
+ }
+
+ messageTimeout() {
+ return NETWORK_MESSAGE_TIMEOUT_MILLS.FINALITY.REQUEST;
+ }
+
+ /**
+ * Builds default finalityRequestCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'v1_0_0FinalityRequestCommand',
+ delay: 0,
+ retries: 0,
+ transactional: false,
+ priority: COMMAND_PRIORITY.HIGHEST,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default FinalityRequestCommand;
diff --git a/src/commands/protocols/get/receiver/v1.0.0/v1-0-0-handle-get-init-command.js b/src/commands/protocols/get/receiver/v1.0.0/v1-0-0-handle-get-init-command.js
deleted file mode 100644
index 475a9c2b3c..0000000000
--- a/src/commands/protocols/get/receiver/v1.0.0/v1-0-0-handle-get-init-command.js
+++ /dev/null
@@ -1,100 +0,0 @@
-import HandleProtocolMessageCommand from '../../../common/handle-protocol-message-command.js';
-import {
- ERROR_TYPE,
- GET_STATES,
- NETWORK_MESSAGE_TYPES,
- OPERATION_ID_STATUS,
- PENDING_STORAGE_REPOSITORIES,
- TRIPLE_STORE_REPOSITORIES,
-} from '../../../../../constants/constants.js';
-
-class HandleGetInitCommand extends HandleProtocolMessageCommand {
- constructor(ctx) {
- super(ctx);
- this.tripleStoreService = ctx.tripleStoreService;
- this.operationService = ctx.getService;
- this.pendingStorageService = ctx.pendingStorageService;
-
- this.errorType = ERROR_TYPE.GET.GET_INIT_REMOTE_ERROR;
- }
-
- async prepareMessage(commandData) {
- const { operationId, blockchain, contract, tokenId, assertionId, state } = commandData;
-
- await this.operationIdService.updateOperationIdStatus(
- operationId,
- blockchain,
- OPERATION_ID_STATUS.GET.ASSERTION_EXISTS_LOCAL_START,
- );
-
- this.logger.trace(
- `Checking if assertion ${assertionId} exists for state ${state}, on blockchain: ${blockchain}, contract: ${contract}, and tokenId: ${tokenId}`,
- );
-
- let assertionExists;
- if (
- state !== GET_STATES.FINALIZED &&
- blockchain != null &&
- contract != null &&
- tokenId != null
- ) {
- assertionExists = await this.pendingStorageService.assetHasPendingState(
- PENDING_STORAGE_REPOSITORIES.PUBLIC,
- blockchain,
- contract,
- tokenId,
- assertionId,
- );
- }
-
- if (!assertionExists) {
- for (const repository of [
- TRIPLE_STORE_REPOSITORIES.PUBLIC_CURRENT,
- TRIPLE_STORE_REPOSITORIES.PUBLIC_HISTORY,
- ]) {
- // eslint-disable-next-line no-await-in-loop
- assertionExists = await this.tripleStoreService.assertionExists(
- repository,
- assertionId,
- );
- if (assertionExists) {
- break;
- }
- }
- }
-
- await this.operationIdService.updateOperationIdStatus(
- operationId,
- blockchain,
- OPERATION_ID_STATUS.GET.ASSERTION_EXISTS_LOCAL_END,
- );
-
- if (assertionExists) {
- return {
- messageType: NETWORK_MESSAGE_TYPES.RESPONSES.ACK,
- messageData: {},
- };
- }
- return {
- messageType: NETWORK_MESSAGE_TYPES.RESPONSES.NACK,
- messageData: { errorMessage: 'Assertion not found' },
- };
- }
-
- /**
- * Builds default handleGetInitCommand
- * @param map
- * @returns {{add, data: *, delay: *, deadline: *}}
- */
- default(map) {
- const command = {
- name: 'v1_0_0HandleGetInitCommand',
- delay: 0,
- transactional: false,
- };
- Object.assign(command, map);
- return command;
- }
-}
-
-export default HandleGetInitCommand;
diff --git a/src/commands/protocols/get/receiver/v1.0.0/v1-0-0-handle-get-request-command.js b/src/commands/protocols/get/receiver/v1.0.0/v1-0-0-handle-get-request-command.js
index 8bf5f5b3a6..09189febef 100644
--- a/src/commands/protocols/get/receiver/v1.0.0/v1-0-0-handle-get-request-command.js
+++ b/src/commands/protocols/get/receiver/v1.0.0/v1-0-0-handle-get-request-command.js
@@ -1,12 +1,10 @@
import HandleProtocolMessageCommand from '../../../common/handle-protocol-message-command.js';
-
import {
ERROR_TYPE,
NETWORK_MESSAGE_TYPES,
OPERATION_ID_STATUS,
- GET_STATES,
+ TRIPLES_VISIBILITY,
TRIPLE_STORE_REPOSITORIES,
- PENDING_STORAGE_REPOSITORIES,
} from '../../../../../constants/constants.js';
class HandleGetRequestCommand extends HandleProtocolMessageCommand {
@@ -15,62 +13,218 @@ class HandleGetRequestCommand extends HandleProtocolMessageCommand {
this.operationService = ctx.getService;
this.tripleStoreService = ctx.tripleStoreService;
this.pendingStorageService = ctx.pendingStorageService;
+ this.paranetService = ctx.paranetService;
this.errorType = ERROR_TYPE.GET.GET_REQUEST_REMOTE_ERROR;
+ this.operationStartEvent = OPERATION_ID_STATUS.GET.GET_REMOTE_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.GET.GET_REMOTE_END;
+ this.prepareMessageStartEvent = OPERATION_ID_STATUS.GET.GET_REMOTE_PREPARE_MESSAGE_START;
+ this.prepareMessageEndEvent = OPERATION_ID_STATUS.GET.GET_REMOTE_PREPARE_MESSAGE_END;
+ this.sendMessageResponseStartEvent = OPERATION_ID_STATUS.GET.GET_REMOTE_SEND_MESSAGE_START;
+ this.sendMessageResponseEndEvent = OPERATION_ID_STATUS.GET.GET_REMOTE_SEND_MESSAGE_END;
+ this.removeCachedSessionStartEvent =
+ OPERATION_ID_STATUS.GET.GET_REMOTE_REMOVE_CACHED_SESSION_START;
+ this.removeCachedSessionEndEvent =
+ OPERATION_ID_STATUS.GET.GET_REMOTE_REMOVE_CACHED_SESSION_END;
}
async prepareMessage(commandData) {
- const { operationId, blockchain, contract, tokenId, assertionId, state } = commandData;
- await this.operationIdService.updateOperationIdStatus(
+ const {
+ operationId,
+ blockchain,
+ contract,
+ knowledgeCollectionId,
+ ual,
+ includeMetadata,
+ isOperationV0,
+ } = commandData;
+
+ let { assertionId, knowledgeAssetId } = commandData;
+
+ // if (paranetUAL) {
+ // const paranetNodeAccessPolicy = await this.blockchainModuleManager.getNodesAccessPolicy(
+ // blockchain,
+ // paranetId,
+ // );
+ // if (paranetNodeAccessPolicy === PARANET_ACCESS_POLICY.CURATED) {
+ // const paranetCuratedNodes =
+ // await this.blockchainModuleManager.getParanetCuratedNodes(
+ // blockchain,
+ // paranetId,
+ // );
+ // const paranetCuratedPeerIds = paranetCuratedNodes.map((node) =>
+ // this.blockchainModuleManager.convertHexToAscii(blockchain, node.nodeId),
+ // );
+
+ // if (!paranetCuratedPeerIds.includes(remotePeerId)) {
+ // return {
+ // messageType: NETWORK_MESSAGE_TYPES.RESPONSES.NACK,
+ // messageData: {
+ // errorMessage: `Remote peer ${remotePeerId} is not a part of the Paranet (${paranetId}) with UAL: ${paranetUAL}`,
+ // },
+ // };
+ // }
+ // const ual = this.ualService.deriveUAL(blockchain, contract, tokenId);
+ // const paranetRepository = this.paranetService.getParanetRepositoryName(paranetUAL);
+ // const syncedAssetRecord =
+ // await this.repositoryModuleManager.getParanetSyncedAssetRecordByUAL(ual);
+
+ // nquads = await this.tripleStoreService.getAssertion(paranetRepository, assertionId);
+
+ // let privateNquads;
+ // if (syncedAssetRecord.privateAssertionId) {
+ // privateNquads = await this.tripleStoreService.getAssertion(
+ // paranetRepository,
+ // syncedAssetRecord.privateAssertionId,
+ // );
+ // }
+
+ // if (nquads?.length) {
+ // const response = {
+ // messageType: NETWORK_MESSAGE_TYPES.RESPONSES.ACK,
+ // messageData: { nquads, syncedAssetRecord },
+ // };
+
+ // if (privateNquads?.length) {
+ // response.messageData.privateNquads = privateNquads;
+ // }
+
+ // return response;
+ // }
+
+ // return {
+ // messageType: NETWORK_MESSAGE_TYPES.RESPONSES.NACK,
+ // messageData: {
+ // errorMessage: `Unable to find assertion ${assertionId} for Paranet ${paranetId} with UAL: ${paranetUAL}`,
+ // },
+ // };
+ // }
+ // }
+
+ const promises = [];
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.GET.GET_REMOTE_GET_ASSERTION_START,
operationId,
blockchain,
- OPERATION_ID_STATUS.GET.GET_REMOTE_START,
);
- let nquads;
- if (
- state !== GET_STATES.FINALIZED &&
- blockchain != null &&
- contract != null &&
- tokenId != null
- ) {
- const cachedAssertion = await this.pendingStorageService.getCachedAssertion(
- PENDING_STORAGE_REPOSITORIES.PUBLIC,
- blockchain,
- contract,
- tokenId,
- assertionId,
- operationId,
- );
- if (cachedAssertion?.public?.assertion?.length) {
- nquads = cachedAssertion.public.assertion;
+ let assertionPromise;
+
+ if (isOperationV0) {
+ if (!assertionId) {
+ assertionId = await this.tripleStoreService.getLatestAssertionId(
+ TRIPLE_STORE_REPOSITORIES.PUBLIC_CURRENT,
+ ual,
+ );
+
+ this.logger.info(
+ `Found assertion id: ${assertionId}, operation id ${operationId}, ual: ${ual}`,
+ );
}
- }
- if (!nquads?.length) {
- for (const repository of [
- TRIPLE_STORE_REPOSITORIES.PUBLIC_CURRENT,
- TRIPLE_STORE_REPOSITORIES.PUBLIC_HISTORY,
- ]) {
- // eslint-disable-next-line no-await-in-loop
- nquads = await this.tripleStoreService.getAssertion(repository, assertionId);
- if (nquads.length) {
- break;
- }
+ // DO NOT RUN THIS IF !assertionId
+ assertionPromise = this.tripleStoreService
+ .getV6Assertion(TRIPLE_STORE_REPOSITORIES.PUBLIC_CURRENT, assertionId)
+ .then(async (result) => {
+ if (!result?.length) {
+ this.logger.info(
+ `No V6 assertion found for assertionId: ${assertionId}, falling back to V8 getAssertion`,
+ );
+
+ const fallbackResult = await this.tripleStoreService.getAssertion(
+ blockchain,
+ contract,
+ knowledgeCollectionId,
+ knowledgeAssetId,
+ TRIPLES_VISIBILITY.PUBLIC,
+ );
+
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.GET.GET_REMOTE_GET_ASSERTION_END,
+ operationId,
+ blockchain,
+ );
+
+ return [
+ ...(fallbackResult.public ?? []),
+ ...(fallbackResult.private ?? []),
+ ];
+ }
+
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.GET.GET_REMOTE_GET_ASSERTION_END,
+ operationId,
+ blockchain,
+ );
+
+ return result.split('\n').filter((res) => res.length > 0);
+ });
+ } else {
+ if (!knowledgeAssetId) {
+ knowledgeAssetId = await this.blockchainModuleManager.getKnowledgeAssetsRange(
+ blockchain,
+ contract,
+ knowledgeCollectionId,
+ );
}
+ assertionPromise = this.tripleStoreService
+ .getAssertion(
+ blockchain,
+ contract,
+ knowledgeCollectionId,
+ knowledgeAssetId,
+ TRIPLES_VISIBILITY.PUBLIC,
+ )
+ .then((result) => {
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.GET.GET_REMOTE_GET_ASSERTION_END,
+ operationId,
+ blockchain,
+ );
+ return result;
+ });
}
+ promises.push(assertionPromise);
- await this.operationIdService.updateOperationIdStatus(
- operationId,
- blockchain,
- OPERATION_ID_STATUS.GET.GET_REMOTE_END,
- );
+ if (includeMetadata) {
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.GET.GET_REMOTE_GET_ASSERTION_METADATA_START,
+ operationId,
+ blockchain,
+ );
+ const metadataPromise = this.tripleStoreService
+ .getAssertionMetadata(blockchain, contract, knowledgeCollectionId, knowledgeAssetId)
+ .then((result) => {
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.GET.GET_REMOTE_GET_ASSERTION_METADATA_END,
+ operationId,
+ blockchain,
+ );
+ return result;
+ });
+ promises.push(metadataPromise);
+ }
+
+ const [assertion, metadata] = await Promise.all(promises);
+
+ const responseData = {
+ assertion,
+ ...(includeMetadata && metadata && { metadata }),
+ };
+
+ if (assertion?.public?.length || assertion?.length) {
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.GET.GET_REMOTE_END,
+ );
+ }
- return nquads.length
- ? { messageType: NETWORK_MESSAGE_TYPES.RESPONSES.ACK, messageData: { nquads } }
+ return assertion?.public?.length || assertion?.length
+ ? { messageType: NETWORK_MESSAGE_TYPES.RESPONSES.ACK, messageData: responseData }
: {
messageType: NETWORK_MESSAGE_TYPES.RESPONSES.NACK,
- messageData: { errorMessage: `Invalid number of nquads: ${nquads.length}` },
+ messageData: { errorMessage: `Unable to find assertion ${ual}` },
};
}
diff --git a/src/commands/protocols/get/sender/curated-paranet-network-get-command.js b/src/commands/protocols/get/sender/curated-paranet-network-get-command.js
new file mode 100644
index 0000000000..526b2d67c1
--- /dev/null
+++ b/src/commands/protocols/get/sender/curated-paranet-network-get-command.js
@@ -0,0 +1,84 @@
+// import Command from '../../../command.js';
+// import NetworkProtocolCommand from '../../common/network-protocol-command.js';
+// import { ERROR_TYPE } from '../../../../constants/constants.js';
+
+// class CuratedParanetNetworkGetCommand extends NetworkProtocolCommand {
+// constructor(ctx) {
+// super(ctx);
+// this.operationService = ctx.getService;
+// this.ualService = ctx.ualService;
+
+// this.errorType = ERROR_TYPE.GET.GET_CURATED_PARANET_NETWORK_ERROR;
+// }
+
+// /**
+// * Executes command and produces one or more events
+// * @param command
+// */
+// async execute(command) {
+// const batchSize = await this.getBatchSize();
+// const minAckResponses = await this.getMinAckResponses();
+
+// const commandSequence = [
+// 'findCuratedParanetNodesCommand',
+// `${this.operationService.getOperationName()}ScheduleMessagesCommand`,
+// ];
+// //
+// const addCommandPromises = keywords.map((keyword) =>
+// this.commandExecutor.add({
+// name: commandSequence[0],
+// sequence: commandSequence.slice(1),
+// delay: 0,
+// data: {
+// ...command.data,
+// keyword,
+// batchSize,
+// minAckResponses,
+// errorType: this.errorType,
+// networkProtocols: this.operationService.getNetworkProtocols(),
+// },
+// transactional: false,
+// }),
+// );
+
+// await Promise.all(addCommandPromises);
+
+// return Command.empty();
+// }
+
+// async getKeywords(command) {
+// const { blockchain, contract, tokenId } = command.data;
+// const locationKeyword = await this.ualService.calculateLocationKeyword(
+// blockchain,
+// contract,
+// tokenId,
+// );
+
+// return [locationKeyword];
+// }
+
+// async getBatchSize() {
+// return 2;
+// }
+
+// async getMinAckResponses() {
+// return 1;
+// }
+
+// /**
+// * Builds default curatedParanetNetworkGetCommand
+// * @param map
+// * @returns {{add, data: *, delay: *, deadline: *}}
+// */
+// default(map) {
+// const command = {
+// name: 'curatedParanetNetworkGetCommand',
+// delay: 0,
+// transactional: false,
+// };
+// Object.assign(command, map);
+// return command;
+// }
+// }
+
+// export default CuratedParanetNetworkGetCommand;
diff --git a/src/commands/protocols/get/sender/get-assertion-id-command.js b/src/commands/protocols/get/sender/get-assertion-id-command.js
deleted file mode 100644
index beea10c2ce..0000000000
--- a/src/commands/protocols/get/sender/get-assertion-id-command.js
+++ /dev/null
@@ -1,210 +0,0 @@
-import Command from '../../../command.js';
-import {
- ERROR_TYPE,
- GET_STATES,
- PENDING_STORAGE_REPOSITORIES,
- ZERO_BYTES32,
-} from '../../../../constants/constants.js';
-
-class GetAssertionIdCommand extends Command {
- constructor(ctx) {
- super(ctx);
- this.operationService = ctx.getService;
- this.blockchainModuleManager = ctx.blockchainModuleManager;
- this.ualService = ctx.ualService;
- this.serviceAgreementService = ctx.serviceAgreementService;
- this.pendingStorageService = ctx.pendingStorageService;
- this.repositoryModuleManager = ctx.repositoryModuleManager;
-
- this.errorType = ERROR_TYPE.GET.GET_ASSERTION_ID_ERROR;
- }
-
- /**
- * Executes command and produces one or more events
- * @param command
- */
- async execute(command) {
- const { operationId, blockchain, contract, tokenId, state, hashFunctionId } = command.data;
- this.logger.info(
- `Getting assertion id for token id: ${tokenId}, contract: ${contract}, state: ${state}, hash function id: ${hashFunctionId}, operation id: ${operationId} on blockchain: ${blockchain}`,
- );
- let assertionId;
- if (!Object.values(GET_STATES).includes(state)) {
- if (state === ZERO_BYTES32) {
- await this.handleError(
- operationId,
- blockchain,
- `The provided state: ${state}. State hash cannot be 0x0.`,
- this.errorType,
- );
-
- return Command.empty();
- }
-
- let pendingState;
- pendingState = await this.pendingStorageService.getPendingState(
- PENDING_STORAGE_REPOSITORIES.PUBLIC,
- blockchain,
- contract,
- tokenId,
- );
- if (!pendingState) {
- pendingState = await this.blockchainModuleManager.getUnfinalizedAssertionId(
- blockchain,
- tokenId,
- );
- }
-
- if (
- state !== pendingState &&
- !(
- await this.blockchainModuleManager.getAssertionIds(
- blockchain,
- contract,
- tokenId,
- )
- ).includes(state)
- ) {
- await this.handleError(
- operationId,
- blockchain,
- `The provided state: ${state} does not exist on the ${blockchain} blockchain, ``within contract: ${contract}, for the Knowledge Asset with tokenId: ${tokenId}, operation id: ${operationId}.`,
- this.errorType,
- );
-
- return Command.empty();
- }
-
- assertionId = state;
- } else {
- this.logger.debug(
- `Searching for latest assertion id on ${blockchain} on contract: ${contract} with tokenId: ${tokenId}, operation id: ${operationId}`,
- );
-
- const assertionIds = await this.blockchainModuleManager.getAssertionIds(
- blockchain,
- contract,
- tokenId,
- );
-
- const latestFinalizedAssertionId = assertionIds[assertionIds.length - 1];
-
- if (state === GET_STATES.LATEST) {
- let unfinalizedAssertionId;
- unfinalizedAssertionId = await this.pendingStorageService.getPendingState(
- PENDING_STORAGE_REPOSITORIES.PUBLIC,
- blockchain,
- contract,
- tokenId,
- );
- if (!unfinalizedAssertionId) {
- unfinalizedAssertionId =
- await this.blockchainModuleManager.getUnfinalizedAssertionId(
- blockchain,
- tokenId,
- );
- }
- if (unfinalizedAssertionId !== ZERO_BYTES32) {
- const updateCommitWindowOpen = await this.isUpdateCommitWindowOpen(
- blockchain,
- contract,
- tokenId,
- hashFunctionId,
- assertionIds,
- );
- if (updateCommitWindowOpen) {
- assertionId = unfinalizedAssertionId;
- this.logger.warn(
- `Commit update window open for tokenId: ${tokenId}, using unfinalized assertion id: ${assertionId} for operation id: ${operationId}`,
- );
- } else {
- assertionId = latestFinalizedAssertionId;
- this.logger.warn(
- `Commit update window closed for tokenId: ${tokenId}, latest assertion id will be used instead of unfinalized for operation id: ${operationId}`,
- );
- }
- }
- }
- if (assertionId === null || assertionId === ZERO_BYTES32 || assertionId === undefined) {
- assertionId = latestFinalizedAssertionId;
- }
- }
- this.logger.info(
- `Found assertion id: ${assertionId} for token id: ${tokenId}, contract: ${contract} on blockchain: ${blockchain} for operation id: ${operationId}`,
- );
- return this.continueSequence({ ...command.data, state, assertionId }, command.sequence);
- }
-
- async isUpdateCommitWindowOpen(blockchain, contract, tokenId, hashFunctionId, assertionIds) {
- const keyword = await this.ualService.calculateLocationKeyword(
- blockchain,
- contract,
- tokenId,
- assertionIds[0],
- );
-
- const agreementId = this.serviceAgreementService.generateId(
- blockchain,
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- );
- const latestStateIndex = assertionIds.length;
-
- let agreementData;
- agreementData = await this.repositoryModuleManager.getServiceAgreementRecord(agreementId);
- if (!agreementData || agreementData.scoreFunctionId === 0) {
- agreementData = await this.blockchainModuleManager.getAgreementData(
- blockchain,
- agreementId,
- );
- }
-
- if (!agreementData || agreementData.scoreFunctionId === 0) {
- this.logger.warn(
- `Unable to fetch agreement data in get assertion id command ${agreementId}, blockchain id: ${blockchain}`,
- );
- throw Error(`Unable to get agreement data`);
- }
-
- const epoch = await this.serviceAgreementService.calculateCurrentEpoch(
- agreementData.startTime,
- agreementData.epochLength,
- blockchain,
- );
-
- return this.blockchainModuleManager.isUpdateCommitWindowOpen(
- blockchain,
- agreementId,
- epoch,
- latestStateIndex,
- );
- }
-
- async handleError(operationId, blockchain, errorMessage, errorType) {
- await this.operationService.markOperationAsFailed(
- operationId,
- blockchain,
- errorMessage,
- errorType,
- );
- }
-
- /**
- * Builds default getStateIdConditionalCommand
- * @param map
- * @returns {{add, data: *, delay: *, deadline: *}}
- */
- default(map) {
- const command = {
- name: 'getAssertionIdCommand',
- delay: 0,
- transactional: false,
- };
- Object.assign(command, map);
- return command;
- }
-}
-
-export default GetAssertionIdCommand;
diff --git a/src/commands/protocols/get/sender/get-assertion-merkle-root-command.js b/src/commands/protocols/get/sender/get-assertion-merkle-root-command.js
new file mode 100644
index 0000000000..e5346592aa
--- /dev/null
+++ b/src/commands/protocols/get/sender/get-assertion-merkle-root-command.js
@@ -0,0 +1,65 @@
+import Command from '../../../command.js';
+import { ERROR_TYPE, TRIPLE_STORE_REPOSITORIES } from '../../../../constants/constants.js';
+
+class GetAssertionMerkleRootCommand extends Command {
+ constructor(ctx) {
+ super(ctx);
+ this.operationService = ctx.getService;
+ this.blockchainModuleManager = ctx.blockchainModuleManager;
+ this.tripleStoreService = ctx.tripleStoreService;
+
+ this.errorType = ERROR_TYPE.GET.GET_ASSERTION_ID_ERROR;
+ }
+
+ /**
+ * Executes command and produces one or more events
+ * @param command
+ */
+ async execute(command) {
+ const { operationId, ual } = command.data;
+ this.logger.info(`Getting assertion id and operation id ${operationId} for ual: ${ual}`);
+
+ let assertionId = await this.tripleStoreService.getLatestAssertionId(
+ TRIPLE_STORE_REPOSITORIES.PUBLIC_CURRENT,
+ ual,
+ );
+
+ if (!assertionId) {
+ assertionId = await this.tripleStoreService.getLatestAssertionId(
+ TRIPLE_STORE_REPOSITORIES.PRIVATE_CURRENT,
+ ual,
+ );
+ }
+
+ this.logger.info(
+ `Found assertion id: ${assertionId}, operation id ${operationId}, ual: ${ual}`,
+ );
+ return this.continueSequence({ ...command.data, assertionId }, command.sequence);
+ }
+
+ async handleError(operationId, blockchain, errorMessage, errorType) {
+ await this.operationService.markOperationAsFailed(
+ operationId,
+ blockchain,
+ errorMessage,
+ errorType,
+ );
+ }
+
+ /**
+ * Builds default getAssertionMerkleRootCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'getAssertionMerkleRootCommand',
+ delay: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default GetAssertionMerkleRootCommand;
diff --git a/src/commands/protocols/get/sender/get-find-shard-command.js b/src/commands/protocols/get/sender/get-find-shard-command.js
new file mode 100644
index 0000000000..409f50452f
--- /dev/null
+++ b/src/commands/protocols/get/sender/get-find-shard-command.js
@@ -0,0 +1,51 @@
+import FindShardCommand from '../../common/find-shard-command.js';
+import { OPERATION_ID_STATUS, ERROR_TYPE } from '../../../../constants/constants.js';
+
+class GetFindShardCommand extends FindShardCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.operationService = ctx.getService;
+
+ this.errorType = ERROR_TYPE.FIND_SHARD.GET_FIND_SHARD_ERROR;
+ this.operationStartEvent = OPERATION_ID_STATUS.GET.GET_FIND_NODES_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.GET.GET_FIND_NODES_END;
+ this.findShardNodesStartEvent =
+ OPERATION_ID_STATUS.GET.GET_FIND_NODES_FIND_SHARD_NODES_START;
+ this.findShardNodesEndEvent = OPERATION_ID_STATUS.GET.GET_FIND_NODES_FIND_SHARD_NODES_END;
+ this.processFoundNodesStartEvent =
+ OPERATION_ID_STATUS.GET.GET_FIND_NODES_PROCESS_FOUND_NODES_START;
+ this.processFoundNodesEndEvent =
+ OPERATION_ID_STATUS.GET.GET_FIND_NODES_PROCESS_FOUND_NODES_END;
+ }
+
+ // eslint-disable-next-line no-unused-vars
+ getOperationCommandSequence(nodePartOfShard, commandData) {
+ const sequence = [];
+ if (nodePartOfShard) {
+ // If operationV0 and no assertionId found go directly to networkGet
+ if (!commandData.isOperationV0 || commandData.assertionId) {
+ sequence.push('localGetCommand');
+ }
+ }
+ sequence.push('networkGetCommand');
+
+ return sequence;
+ }
+
+ /**
+ * Builds default getFindShardCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'getFindShardCommand',
+ delay: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default GetFindShardCommand;
diff --git a/src/commands/protocols/get/sender/get-schedule-messages-command.js b/src/commands/protocols/get/sender/get-schedule-messages-command.js
index 704bae3b56..7b34d8892e 100644
--- a/src/commands/protocols/get/sender/get-schedule-messages-command.js
+++ b/src/commands/protocols/get/sender/get-schedule-messages-command.js
@@ -7,17 +7,27 @@ class GetScheduleMessagesCommand extends ProtocolScheduleMessagesCommand {
this.operationService = ctx.getService;
this.errorType = ERROR_TYPE.GET.GET_START_ERROR;
- this.startEvent = OPERATION_ID_STATUS.GET.GET_FETCH_FROM_NODES_START;
+ this.operationStartEvent = OPERATION_ID_STATUS.GET.GET_FETCH_FROM_NODES_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.GET.GET_FETCH_FROM_NODES_END;
}
getNextCommandData(command) {
return {
...super.getNextCommandData(command),
- state: command.data.state,
+ contract: command.data.contract,
+ knowledgeCollectionId: command.data.knowledgeCollectionId,
+ knowledgeAssetId: command.data.knowledgeAssetId,
+ includeMetadata: command.data.includeMetadata,
+ ual: command.data.ual,
assetSync: command.data.assetSync,
paranetSync: command.data.paranetSync,
paranetTokenId: command.data.paranetTokenId,
paranetLatestAsset: command.data.paranetLatestAsset,
+ paranetUAL: command.data.paranetUAL,
+ paranetId: command.data.paranetId,
+ paranetMetadata: command.data.paranetMetadata,
+ assertionId: command.data.assertionId,
+ isOperationV0: command.data.isOperationV0,
};
}
diff --git a/src/commands/protocols/get/sender/get-validate-asset-command.js b/src/commands/protocols/get/sender/get-validate-asset-command.js
new file mode 100644
index 0000000000..67a75d61f4
--- /dev/null
+++ b/src/commands/protocols/get/sender/get-validate-asset-command.js
@@ -0,0 +1,117 @@
+import ValidateAssetCommand from '../../../common/validate-asset-command.js';
+import Command from '../../../command.js';
+import {
+ OPERATION_ID_STATUS,
+ ERROR_TYPE,
+ OLD_CONTENT_STORAGE_MAP,
+} from '../../../../constants/constants.js';
+
+class GetValidateAssetCommand extends ValidateAssetCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.operationService = ctx.getService;
+ this.errorType = ERROR_TYPE.GET.GET_VALIDATE_ASSET_ERROR;
+ }
+
+ async handleError(operationId, blockchain, errorMessage, errorType) {
+ await this.operationService.markOperationAsFailed(
+ operationId,
+ blockchain,
+ errorMessage,
+ errorType,
+ );
+ }
+
+ /**
+ * Executes command and produces one or more events
+ * @param command
+ */
+ async execute(command) {
+ const { operationId, blockchain, contract, knowledgeCollectionId, ual, isOperationV0 } =
+ command.data;
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.GET.GET_VALIDATE_ASSET_START,
+ );
+
+ const isUAL = this.ualService.isUAL(ual);
+
+ if (!isUAL) {
+ await this.handleError(
+ operationId,
+ blockchain,
+ `Get for operation id: ${operationId}, UAL: ${ual}: is not a UAL.`,
+ this.errorType,
+ );
+ return Command.empty();
+ }
+
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.GET.GET_VALIDATE_UAL_START,
+ operationId,
+ blockchain,
+ );
+ // TODO: Update to validate knowledge asset index
+ if (
+ !isOperationV0 &&
+ Object.values(OLD_CONTENT_STORAGE_MAP).every(
+ (ca) => !ca.toLowerCase().includes(contract.toLowerCase()),
+ )
+ ) {
+ const isValidUal = await this.validationService.validateUal(
+ blockchain,
+ contract,
+ knowledgeCollectionId,
+ );
+
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.GET.GET_VALIDATE_UAL_END,
+ operationId,
+ blockchain,
+ );
+
+ if (!isValidUal) {
+ await this.handleError(
+ operationId,
+ blockchain,
+ `Get for operation id: ${operationId}, UAL: ${ual}: there is no asset with this UAL.`,
+ this.errorType,
+ );
+ return Command.empty();
+ }
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.GET.GET_VALIDATE_ASSET_END,
+ );
+ }
+
+ return this.continueSequence(
+ {
+ ...command.data,
+ retry: undefined,
+ period: undefined,
+ },
+ command.sequence,
+ );
+ }
+
+ /**
+ * Builds default getValidateAssetCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'getValidateAssetCommand',
+ delay: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default GetValidateAssetCommand;
diff --git a/src/commands/protocols/get/sender/local-get-command.js b/src/commands/protocols/get/sender/local-get-command.js
index f510115010..39165d0e55 100644
--- a/src/commands/protocols/get/sender/local-get-command.js
+++ b/src/commands/protocols/get/sender/local-get-command.js
@@ -2,20 +2,21 @@ import Command from '../../../command.js';
import {
OPERATION_ID_STATUS,
ERROR_TYPE,
- GET_STATES,
TRIPLE_STORE_REPOSITORIES,
- PENDING_STORAGE_REPOSITORIES,
} from '../../../../constants/constants.js';
class LocalGetCommand extends Command {
constructor(ctx) {
super(ctx);
- this.blockchainModuleManager = ctx.blockchainModuleManager;
this.config = ctx.config;
this.operationService = ctx.getService;
this.operationIdService = ctx.operationIdService;
this.tripleStoreService = ctx.tripleStoreService;
this.pendingStorageService = ctx.pendingStorageService;
+ this.paranetService = ctx.paranetService;
+ this.ualService = ctx.ualService;
+ this.repositoryModuleManager = ctx.repositoryModuleManager;
+ this.blockchainModuleManager = ctx.blockchainModuleManager;
this.errorType = ERROR_TYPE.GET.GET_LOCAL_ERROR;
}
@@ -25,76 +26,176 @@ class LocalGetCommand extends Command {
* @param command
*/
async execute(command) {
- const { operationId, blockchain, contract, tokenId, assertionId, state } = command.data;
+ const {
+ operationId,
+ blockchain,
+ includeMetadata,
+ contract,
+ knowledgeCollectionId,
+ contentType,
+ assertionId,
+ } = command.data;
+ let { knowledgeAssetId } = command.data;
await this.operationIdService.updateOperationIdStatus(
operationId,
blockchain,
OPERATION_ID_STATUS.GET.GET_LOCAL_START,
);
- const response = {};
- if (
- state !== GET_STATES.FINALIZED &&
- blockchain != null &&
- contract != null &&
- tokenId != null
- ) {
- for (const repository of [
- PENDING_STORAGE_REPOSITORIES.PRIVATE,
- PENDING_STORAGE_REPOSITORIES.PUBLIC,
- ]) {
- // eslint-disable-next-line no-await-in-loop
- const stateIsPending = await this.pendingStorageService.assetHasPendingState(
- repository,
- blockchain,
- contract,
- tokenId,
- assertionId,
- );
+ // const response = {};
+
+ // if (paranetUAL) {
+ // const paranetRepository = this.paranetService.getParanetRepositoryName(paranetUAL);
+
+ // const ual = this.ualService.deriveUAL(blockchain, contract, tokenId);
+ // const syncedAssetRecord =
+ // await this.repositoryModuleManager.getParanetSyncedAssetRecordByUAL(ual);
+
+ // const nquads = await this.tripleStoreService.getAssertion(
+ // paranetRepository,
+ // syncedAssetRecord.publicAssertionId,
+ // );
+
+ // let privateNquads;
+ // if (syncedAssetRecord.privateAssertionId) {
+ // privateNquads = await this.tripleStoreService.getAssertion(
+ // paranetRepository,
+ // syncedAssetRecord.privateAssertionId,
+ // );
+ // }
+
+ // if (nquads?.length) {
+ // response.assertion = nquads;
+ // if (privateNquads?.length) {
+ // response.privateAssertion = privateNquads;
+ // }
+ // } else {
+ // this.handleError(
+ // operationId,
+ // blockchain,
+ // `Couldn't find locally asset with ${ual} in paranet ${paranetUAL}`,
+ // this.errorType,
+ // );
+ // }
+
+ // await this.operationService.markOperationAsCompleted(
+ // operationId,
+ // blockchain,
+ // response,
+ // [
+ // OPERATION_ID_STATUS.GET.GET_LOCAL_END,
+ // OPERATION_ID_STATUS.GET.GET_END,
+ // OPERATION_ID_STATUS.COMPLETED,
+ // ],
+ // );
- if (stateIsPending) {
+ // return Command.empty();
+ // }
+
+ // else {
+
+ const promises = [];
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.GET.GET_LOCAL_GET_ASSERTION_START,
+ operationId,
+ blockchain,
+ );
+
+ let assertionPromise;
+
+ if (assertionId) {
+ assertionPromise = (async () => {
+ let result = null;
+
+ for (const repository of [
+ TRIPLE_STORE_REPOSITORIES.PRIVATE_CURRENT,
+ TRIPLE_STORE_REPOSITORIES.PUBLIC_CURRENT,
+ ]) {
// eslint-disable-next-line no-await-in-loop
- const cachedAssertion = await this.pendingStorageService.getCachedAssertion(
- repository,
+ result = await this.tripleStoreService.getV6Assertion(repository, assertionId);
+ if (result?.length) {
+ break;
+ }
+ }
+
+ if (!result?.length) {
+ result = await this.tripleStoreService.getAssertion(
blockchain,
contract,
- tokenId,
- assertionId,
- operationId,
+ knowledgeCollectionId,
+ knowledgeAssetId,
+ contentType,
);
-
- if (cachedAssertion?.public?.assertion?.length) {
- response.assertion = cachedAssertion.public.assertion;
- if (cachedAssertion?.private?.assertion?.length) {
- response.privateAssertion = cachedAssertion.private.assertion;
- }
- break;
- }
}
- }
- }
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.GET.GET_LOCAL_GET_ASSERTION_END,
+ operationId,
+ blockchain,
+ );
- if (!response?.assertion?.length) {
- for (const repository of [
- TRIPLE_STORE_REPOSITORIES.PRIVATE_CURRENT,
- TRIPLE_STORE_REPOSITORIES.PUBLIC_CURRENT,
- TRIPLE_STORE_REPOSITORIES.PRIVATE_HISTORY,
- TRIPLE_STORE_REPOSITORIES.PUBLIC_HISTORY,
- ]) {
- // eslint-disable-next-line no-await-in-loop
- response.assertion = await this.tripleStoreService.getAssertion(
- repository,
- assertionId,
+ return typeof result === 'string'
+ ? result.split('\n').filter((res) => res.length > 0)
+ : result;
+ })();
+ } else {
+ // TODO: Do this in clean way
+ if (!knowledgeAssetId) {
+ knowledgeAssetId = await this.blockchainModuleManager.getKnowledgeAssetsRange(
+ blockchain,
+ contract,
+ knowledgeCollectionId,
);
- if (response?.assertion?.length) break;
}
+ assertionPromise = this.tripleStoreService
+ .getAssertion(
+ blockchain,
+ contract,
+ knowledgeCollectionId,
+ knowledgeAssetId,
+ contentType,
+ )
+ .then((result) => {
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.GET.GET_LOCAL_GET_ASSERTION_END,
+ operationId,
+ blockchain,
+ );
+ return result;
+ });
+ }
+
+ promises.push(assertionPromise);
+
+ if (includeMetadata) {
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.GET.GET_LOCAL_GET_ASSERTION_METADATA_START,
+ operationId,
+ blockchain,
+ );
+ const metadataPromise = this.tripleStoreService
+ .getAssertionMetadata(blockchain, contract, knowledgeCollectionId, knowledgeAssetId)
+ .then((result) => {
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.GET.GET_LOCAL_GET_ASSERTION_METADATA_END,
+ operationId,
+ blockchain,
+ );
+ return result;
+ });
+ promises.push(metadataPromise);
}
- if (response?.assertion?.length) {
+ const [assertion, metadata] = await Promise.all(promises);
+
+ const responseData = {
+ assertion,
+ ...(includeMetadata && metadata && { metadata }),
+ };
+ if (assertion?.public?.length || assertion?.private?.length || assertion?.length) {
await this.operationService.markOperationAsCompleted(
operationId,
blockchain,
- response,
+ responseData,
[
OPERATION_ID_STATUS.GET.GET_LOCAL_END,
OPERATION_ID_STATUS.GET.GET_END,
@@ -104,6 +205,7 @@ class LocalGetCommand extends Command {
return Command.empty();
}
+ // }
await this.operationIdService.updateOperationIdStatus(
operationId,
diff --git a/src/commands/protocols/get/sender/network-get-command.js b/src/commands/protocols/get/sender/network-get-command.js
index 2856591cbb..f7c2334206 100644
--- a/src/commands/protocols/get/sender/network-get-command.js
+++ b/src/commands/protocols/get/sender/network-get-command.js
@@ -1,5 +1,5 @@
import NetworkProtocolCommand from '../../common/network-protocol-command.js';
-import { ERROR_TYPE } from '../../../../constants/constants.js';
+import { ERROR_TYPE, OPERATION_ID_STATUS } from '../../../../constants/constants.js';
class NetworkGetCommand extends NetworkProtocolCommand {
constructor(ctx) {
@@ -8,25 +8,8 @@ class NetworkGetCommand extends NetworkProtocolCommand {
this.ualService = ctx.ualService;
this.errorType = ERROR_TYPE.GET.GET_NETWORK_ERROR;
- }
-
- async getKeywords(command) {
- const { blockchain, contract, tokenId } = command.data;
- const locationKeyword = await this.ualService.calculateLocationKeyword(
- blockchain,
- contract,
- tokenId,
- );
-
- return [locationKeyword];
- }
-
- async getBatchSize() {
- return 2;
- }
-
- async getMinAckResponses() {
- return 1;
+ this.operationStartEvent = OPERATION_ID_STATUS.GET.GET_NETWORK_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.GET.GET_NETWORK_END;
}
/**
diff --git a/src/commands/protocols/get/sender/v1.0.0/v1-0-0-get-init-command.js b/src/commands/protocols/get/sender/v1.0.0/v1-0-0-get-init-command.js
deleted file mode 100644
index 58956c0976..0000000000
--- a/src/commands/protocols/get/sender/v1.0.0/v1-0-0-get-init-command.js
+++ /dev/null
@@ -1,50 +0,0 @@
-import ProtocolInitCommand from '../../../common/protocol-init-command.js';
-import { NETWORK_MESSAGE_TIMEOUT_MILLS, ERROR_TYPE } from '../../../../../constants/constants.js';
-
-class GetInitCommand extends ProtocolInitCommand {
- constructor(ctx) {
- super(ctx);
- this.operationService = ctx.getService;
-
- this.errorType = ERROR_TYPE.GET.GET_INIT_ERROR;
- }
-
- async prepareMessage(command) {
- const { contract, tokenId, keyword, assertionId, state } = command.data;
- const proximityScoreFunctionsPairId = command.data.proximityScoreFunctionsPairId ?? 1;
- // TODO: Backwards compatibility, send blockchain without chainId
- const blockchain = command.data.blockchain.split(':')[0];
-
- return {
- blockchain,
- contract,
- tokenId,
- keyword,
- assertionId,
- state,
- proximityScoreFunctionsPairId,
- };
- }
-
- messageTimeout() {
- return NETWORK_MESSAGE_TIMEOUT_MILLS.GET.INIT;
- }
-
- /**
- * Builds default getInitCommand
- * @param map
- * @returns {{add, data: *, delay: *, deadline: *}}
- */
- default(map) {
- const command = {
- name: 'v1_0_0GetInitCommand',
- delay: 0,
- retries: 0,
- transactional: false,
- };
- Object.assign(command, map);
- return command;
- }
-}
-
-export default GetInitCommand;
diff --git a/src/commands/protocols/get/sender/v1.0.0/v1-0-0-get-request-command.js b/src/commands/protocols/get/sender/v1.0.0/v1-0-0-get-request-command.js
index d1407d6cac..6cd5d3c24d 100644
--- a/src/commands/protocols/get/sender/v1.0.0/v1-0-0-get-request-command.js
+++ b/src/commands/protocols/get/sender/v1.0.0/v1-0-0-get-request-command.js
@@ -1,9 +1,12 @@
+import { kcTools } from 'assertion-tools';
import ProtocolRequestCommand from '../../../common/protocol-request-command.js';
import {
NETWORK_MESSAGE_TIMEOUT_MILLS,
ERROR_TYPE,
OPERATION_REQUEST_STATUS,
OPERATION_STATUS,
+ OPERATION_ID_STATUS,
+ PRIVATE_HASH_SUBJECT_PREFIX,
} from '../../../../../constants/constants.js';
class GetRequestCommand extends ProtocolRequestCommand {
@@ -13,6 +16,12 @@ class GetRequestCommand extends ProtocolRequestCommand {
this.validationService = ctx.validationService;
this.errorType = ERROR_TYPE.GET.GET_REQUEST_ERROR;
+ this.operationStartEvent = OPERATION_ID_STATUS.GET.GET_REQUEST_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.GET.GET_REQUEST_END;
+ this.prepareMessageStartEvent = OPERATION_ID_STATUS.GET.GET_REQUEST_PREPARE_MESSAGE_START;
+ this.prepareMessageEndEvent = OPERATION_ID_STATUS.GET.GET_REQUEST_PREPARE_MESSAGE_END;
+ this.sendMessageStartEvent = OPERATION_ID_STATUS.GET.GET_REQUEST_SEND_MESSAGE_START;
+ this.sendMessageEndEvent = OPERATION_ID_STATUS.GET.GET_REQUEST_SEND_MESSAGE_END;
}
async shouldSendMessage(command) {
@@ -31,36 +40,89 @@ class GetRequestCommand extends ProtocolRequestCommand {
}
async prepareMessage(command) {
- const { contract, tokenId, assertionId, state, hashFunctionId } = command.data;
- const proximityScoreFunctionsPairId = command.data.proximityScoreFunctionsPairId ?? 1;
-
- // TODO: Backwards compatibility, send blockchain without chainId
- const blockchain = command.data.blockchain.split(':')[0];
+ const {
+ blockchain,
+ contract,
+ knowledgeCollectionId,
+ knowledgeAssetId,
+ includeMetadata,
+ ual,
+ paranetUAL,
+ paranetId,
+ isOperationV0,
+ assertionId,
+ } = command.data;
return {
blockchain,
contract,
- tokenId,
+ knowledgeCollectionId,
+ knowledgeAssetId,
+ includeMetadata,
+ ual,
+ paranetUAL,
+ paranetId,
+ isOperationV0,
assertionId,
- state,
- hashFunctionId,
- proximityScoreFunctionsPairId,
};
}
async handleAck(command, responseData) {
- if (responseData?.nquads) {
- try {
- await this.validationService.validateAssertion(
- command.data.assertionId,
- command.data.blockchain,
- responseData.nquads,
- );
- } catch (e) {
- return this.handleNack(command, {
- errorMessage: e.message,
+ const { blockchain, contract, knowledgeCollectionId, knowledgeAssetId } = command.data;
+ if (responseData?.assertion?.public) {
+ // Only whole collection can be validated not particular KA
+
+ if (!knowledgeAssetId) {
+ const publicAssertion = responseData?.assertion?.public;
+
+ const filteredPublic = [];
+ const privateHashTriples = [];
+ publicAssertion.forEach((triple) => {
+ if (triple.startsWith(`<${PRIVATE_HASH_SUBJECT_PREFIX}`)) {
+ privateHashTriples.push(triple);
+ } else {
+ filteredPublic.push(triple);
+ }
});
+
+ const publicKnowledgeAssetsTriplesGrouped = kcTools.groupNquadsBySubject(
+ filteredPublic,
+ true,
+ );
+ publicKnowledgeAssetsTriplesGrouped.push(
+ ...kcTools.groupNquadsBySubject(privateHashTriples, true),
+ );
+ try {
+ await this.validationService.validateDatasetOnBlockchain(
+ publicKnowledgeAssetsTriplesGrouped.map((t) => t.sort()).flat(),
+ blockchain,
+ contract,
+ knowledgeCollectionId,
+ );
+
+ // This is added as support when get starts supporting private for curated paranet
+ // TODO: This needs to be fixed when paranets are introduced
+ if (responseData.assertion?.private?.length)
+ await this.validationService.validatePrivateMerkleRoot(
+ responseData.assertion.public,
+ responseData.assertion.private,
+ );
+ } catch (e) {
+ return this.handleNack(command, {
+ errorMessage: e.message,
+ });
+ }
}
+ await this.operationService.processResponse(
+ command,
+ OPERATION_REQUEST_STATUS.COMPLETED,
+ responseData,
+ );
+
+ return ProtocolRequestCommand.empty();
+ }
+ if (responseData?.assertion?.length) {
+ // V6 assertion
await this.operationService.processResponse(
command,
diff --git a/src/commands/protocols/publish/publish-validate-assertion-metadata-command.js b/src/commands/protocols/publish/publish-validate-assertion-metadata-command.js
new file mode 100644
index 0000000000..cd644259fd
--- /dev/null
+++ b/src/commands/protocols/publish/publish-validate-assertion-metadata-command.js
@@ -0,0 +1,68 @@
+import ValidateAssertionMetadataCommand from '../common/validate-assertion-metadata-command.js';
+import { OPERATION_ID_STATUS, ERROR_TYPE } from '../../../constants/constants.js';
+import Command from '../../command.js';
+
+class PublishValidateAssertionMetadataCommand extends ValidateAssertionMetadataCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.operationIdService = ctx.operationIdService;
+ this.dataService = ctx.dataService;
+
+ this.errorType = ERROR_TYPE.PUBLISH.PUBLISH_VALIDATE_ASSERTION_METADATA_ERROR;
+ this.operationStartEvent =
+ OPERATION_ID_STATUS.PUBLISH_FINALIZATION.PUBLISH_FINALIZATION_METADATA_VALIDATION_START;
+ this.operationEndEvent =
+ OPERATION_ID_STATUS.PUBLISH_FINALIZATION.PUBLISH_FINALIZATION_METADATA_VALIDATION_END;
+ }
+
+ async execute(command) {
+ const { operationId, ual, blockchain, merkleRoot, cachedMerkleRoot } = command.data;
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ this.operationStartEvent,
+ );
+
+ try {
+ if (merkleRoot !== cachedMerkleRoot) {
+ await this.handleError(
+ operationId,
+ blockchain,
+ `Invalid Merkle Root for Knowledge Collection with UAL: ${ual}. Received value from blockchain: ${merkleRoot}, Cached value from publish operation: ${cachedMerkleRoot}`,
+ this.errorType,
+ true,
+ );
+ }
+ } catch (e) {
+ await this.handleError(operationId, blockchain, e.message, this.errorType, true);
+ return Command.empty();
+ }
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ this.operationEndEvent,
+ );
+
+ return this.continueSequence(command.data, command.sequence);
+ }
+
+ /**
+ * Builds default publishValidateAssertionMetadataCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'publishValidateAssertionMetadataCommand',
+ delay: 0,
+ retries: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default PublishValidateAssertionMetadataCommand;
diff --git a/src/commands/protocols/publish/read-cached-publish-data-command.js b/src/commands/protocols/publish/read-cached-publish-data-command.js
new file mode 100644
index 0000000000..504a92bbc7
--- /dev/null
+++ b/src/commands/protocols/publish/read-cached-publish-data-command.js
@@ -0,0 +1,90 @@
+import Command from '../../command.js';
+import {
+ OPERATION_ID_STATUS,
+ ERROR_TYPE,
+ MAX_RETRIES_READ_CACHED_PUBLISH_DATA,
+ RETRY_DELAY_READ_CACHED_PUBLISH_DATA,
+} from '../../../constants/constants.js';
+
+class ReadCachedPublishDataCommand extends Command {
+ constructor(ctx) {
+ super(ctx);
+ this.ualService = ctx.ualService;
+ this.dataService = ctx.dataService;
+ this.fileService = ctx.fileService;
+ this.repositoryModuleManager = ctx.repositoryModuleManager;
+ this.networkModuleManager = ctx.networkModuleManager;
+
+ this.errorType = ERROR_TYPE.STORE_ASSERTION_ERROR;
+ }
+
+ async execute(command) {
+ const { event } = command.data;
+ const eventData = JSON.parse(event.data);
+ const { id, publishOperationId, merkleRoot, byteSize } = eventData;
+ const { blockchain, contractAddress } = event;
+ const operationId = await this.operationIdService.generateOperationId(
+ OPERATION_ID_STATUS.PUBLISH_FINALIZATION.PUBLISH_FINALIZATION_START,
+ publishOperationId,
+ );
+ let datasetPath;
+ let cachedData;
+
+ try {
+ datasetPath = this.fileService.getPendingStorageDocumentPath(publishOperationId);
+
+ // eslint-disable-next-line no-await-in-loop
+ cachedData = await this.fileService.readFile(datasetPath, true);
+ } catch (error) {
+ return Command.retry();
+ }
+
+ const ual = this.ualService.deriveUAL(blockchain, contractAddress, id);
+
+ const myPeerId = this.networkModuleManager.getPeerId().toB58String();
+ if (cachedData.remotePeerId === myPeerId) {
+ await this.repositoryModuleManager.saveFinalityAck(
+ publishOperationId,
+ ual,
+ cachedData.remotePeerId,
+ );
+ } else {
+ command.sequence.push('findPublisherNodeCommand', 'networkFinalityCommand');
+ }
+
+ return this.continueSequence(
+ {
+ operationId,
+ ual,
+ blockchain,
+ contract: contractAddress,
+ tokenId: id,
+ merkleRoot,
+ remotePeerId: cachedData.remotePeerId,
+ publishOperationId,
+ assertion: cachedData.assertion,
+ byteSize,
+ cachedMerkleRoot: cachedData.merkleRoot,
+ },
+ command.sequence,
+ );
+ }
+
+ /**
+ * Builds default readCachedPublishDataCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'readCachedPublishDataCommand',
+ delay: RETRY_DELAY_READ_CACHED_PUBLISH_DATA,
+ retries: MAX_RETRIES_READ_CACHED_PUBLISH_DATA,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default ReadCachedPublishDataCommand;
diff --git a/src/commands/protocols/publish/receiver/v1.0.0/v1-0-0-handle-store-init-command.js b/src/commands/protocols/publish/receiver/v1.0.0/v1-0-0-handle-store-init-command.js
deleted file mode 100644
index 8a0e410be3..0000000000
--- a/src/commands/protocols/publish/receiver/v1.0.0/v1-0-0-handle-store-init-command.js
+++ /dev/null
@@ -1,68 +0,0 @@
-import HandleProtocolMessageCommand from '../../../common/handle-protocol-message-command.js';
-import { ERROR_TYPE, OPERATION_ID_STATUS } from '../../../../../constants/constants.js';
-
-class HandleStoreInitCommand extends HandleProtocolMessageCommand {
- constructor(ctx) {
- super(ctx);
- this.publishService = ctx.publishService;
- this.ualService = ctx.ualService;
-
- this.errorType = ERROR_TYPE.PUBLISH.PUBLISH_REMOTE_ERROR;
- }
-
- async prepareMessage(commandData) {
- const { operationId, assertionId, blockchain, contract, tokenId, keyword, hashFunctionId } =
- commandData;
- const proximityScoreFunctionsPairId = commandData.proximityScoreFunctionsPairId ?? 1;
-
- await this.operationIdService.updateOperationIdStatus(
- operationId,
- blockchain,
- OPERATION_ID_STATUS.VALIDATE_ASSET_REMOTE_START,
- );
-
- const validationResult = await this.validateReceivedData(
- operationId,
- assertionId,
- blockchain,
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- proximityScoreFunctionsPairId,
- );
-
- this.operationIdService.updateOperationIdStatus(
- operationId,
- blockchain,
- OPERATION_ID_STATUS.VALIDATE_ASSET_REMOTE_END,
- );
-
- return validationResult;
- }
-
- async retryFinished(command) {
- const { operationId } = command.data;
- await this.handleError(
- `Retry count for command: ${command.name} reached! Unable to validate data for operation id: ${operationId}`,
- command,
- );
- }
-
- /**
- * Builds default handleStoreInitCommand
- * @param map
- * @returns {{add, data: *, delay: *, deadline: *}}
- */
- default(map) {
- const command = {
- name: 'v1_0_0HandleStoreInitCommand',
- delay: 0,
- transactional: false,
- };
- Object.assign(command, map);
- return command;
- }
-}
-
-export default HandleStoreInitCommand;
diff --git a/src/commands/protocols/publish/receiver/v1.0.0/v1-0-0-handle-store-request-command.js b/src/commands/protocols/publish/receiver/v1.0.0/v1-0-0-handle-store-request-command.js
index bda74a7bb0..a051613200 100644
--- a/src/commands/protocols/publish/receiver/v1.0.0/v1-0-0-handle-store-request-command.js
+++ b/src/commands/protocols/publish/receiver/v1.0.0/v1-0-0-handle-store-request-command.js
@@ -4,8 +4,6 @@ import {
NETWORK_MESSAGE_TYPES,
OPERATION_ID_STATUS,
ERROR_TYPE,
- TRIPLE_STORE_REPOSITORIES,
- SERVICE_AGREEMENT_SOURCES,
} from '../../../../../constants/constants.js';
class HandleStoreRequestCommand extends HandleProtocolMessageCommand {
@@ -13,88 +11,120 @@ class HandleStoreRequestCommand extends HandleProtocolMessageCommand {
super(ctx);
this.validationService = ctx.validationService;
this.operationService = ctx.publishService;
- this.serviceAgreementService = ctx.serviceAgreementService;
this.repositoryModuleManager = ctx.repositoryModuleManager;
this.blockchainModuleManager = ctx.blockchainModuleManager;
this.tripleStoreService = ctx.tripleStoreService;
this.ualService = ctx.ualService;
+ this.pendingStorageService = ctx.pendingStorageService;
+ this.operationIdService = ctx.operationIdService;
+ this.pendingStorageService = ctx.pendingStorageService;
+ this.signatureService = ctx.signatureService;
this.errorType = ERROR_TYPE.PUBLISH.PUBLISH_LOCAL_STORE_REMOTE_ERROR;
+ this.operationStartEvent = OPERATION_ID_STATUS.PUBLISH.PUBLISH_LOCAL_STORE_REMOTE_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.PUBLISH.PUBLISH_LOCAL_STORE_REMOTE_END;
+ this.prepareMessageStartEvent =
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_LOCAL_STORE_REMOTE_PREPARE_MESSAGE_START;
+ this.prepareMessageEndEvent =
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_LOCAL_STORE_REMOTE_PREPARE_MESSAGE_END;
+ this.sendMessageResponseStartEvent =
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_LOCAL_STORE_REMOTE_SEND_RESPONSE_START;
+ this.sendMessageResponseEndEvent =
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_LOCAL_STORE_REMOTE_SEND_RESPONSE_END;
+ this.removeCachedSessionStartEvent =
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_LOCAL_STORE_REMOTE_REMOVE_CACHED_SESSION_START;
+ this.removeCachedSessionEndEvent =
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_LOCAL_STORE_REMOTE_REMOVE_CACHED_SESSION_END;
}
async prepareMessage(commandData) {
- const {
- blockchain,
- keyword,
- hashFunctionId,
- contract,
- tokenId,
- operationId,
- assertionId,
- agreementId,
- agreementData,
- } = commandData;
+ const { blockchain, operationId, datasetRoot, remotePeerId, isOperationV0 } = commandData;
await this.operationIdService.updateOperationIdStatus(
operationId,
blockchain,
- OPERATION_ID_STATUS.PUBLISH.VALIDATING_PUBLISH_ASSERTION_REMOTE_START,
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_VALIDATE_ASSET_REMOTE_START,
+ );
+
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_GET_CACHED_OPERATION_ID_DATA_START,
+ operationId,
+ blockchain,
);
- const assertionIds = await this.blockchainModuleManager.getAssertionIds(
+ const { dataset } = await this.operationIdService.getCachedOperationIdData(operationId);
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_GET_CACHED_OPERATION_ID_DATA_END,
+ operationId,
+ blockchain,
+ );
+
+ const validationResult = await this.validateReceivedData(
+ operationId,
+ datasetRoot,
+ dataset,
blockchain,
- contract,
- tokenId,
+ isOperationV0,
);
- const stateIndex = assertionIds.length - 1;
- const { assertion } = await this.operationIdService.getCachedOperationIdData(operationId);
- await this.validationService.validateAssertion(assertionId, blockchain, assertion);
await this.operationIdService.updateOperationIdStatus(
operationId,
blockchain,
- OPERATION_ID_STATUS.PUBLISH.VALIDATING_PUBLISH_ASSERTION_REMOTE_END,
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_VALIDATE_ASSET_REMOTE_END,
);
+ if (validationResult.messageType === NETWORK_MESSAGE_TYPES.RESPONSES.NACK) {
+ return validationResult;
+ }
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_LOCAL_STORE_REMOTE_CACHE_DATASET_START,
+ );
+ if (isOperationV0) {
+ const { contract, tokenId } = commandData;
+ const ual = this.ualService.deriveUAL(blockchain, contract, tokenId);
+ await this.tripleStoreService.createV6KnowledgeCollection(dataset, ual);
+ } else {
+ await this.pendingStorageService.cacheDataset(
+ operationId,
+ datasetRoot,
+ dataset,
+ remotePeerId,
+ );
+ }
await this.operationIdService.updateOperationIdStatus(
operationId,
blockchain,
- OPERATION_ID_STATUS.PUBLISH.PUBLISH_LOCAL_STORE_START,
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_LOCAL_STORE_REMOTE_CACHE_DATASET_END,
);
- await this.tripleStoreService.localStoreAsset(
- TRIPLE_STORE_REPOSITORIES.PUBLIC_CURRENT,
- assertionId,
- assertion,
+ const identityId = await this.blockchainModuleManager.getIdentityId(blockchain);
+
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_LOCAL_STORE_REMOTE_SIGN_START,
+ operationId,
blockchain,
- contract,
- tokenId,
- keyword,
);
- await this.repositoryModuleManager.updateServiceAgreementRecord(
+ const { v, r, s, vs } = await this.signatureService.signMessage(blockchain, datasetRoot);
+
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_LOCAL_STORE_REMOTE_SIGN_END,
+ operationId,
blockchain,
- contract,
- tokenId,
- agreementId,
- agreementData.startTime,
- agreementData.epochsNumber,
- agreementData.epochLength,
- agreementData.scoreFunctionId,
- agreementData.proofWindowOffsetPerc,
- hashFunctionId,
- keyword,
- assertionId,
- stateIndex,
- SERVICE_AGREEMENT_SOURCES.NODE,
);
await this.operationIdService.updateOperationIdStatus(
operationId,
blockchain,
- OPERATION_ID_STATUS.PUBLISH.PUBLISH_LOCAL_STORE_END,
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_VALIDATE_ASSET_REMOTE_END,
);
- return { messageType: NETWORK_MESSAGE_TYPES.RESPONSES.ACK, messageData: {} };
+ return {
+ messageType: NETWORK_MESSAGE_TYPES.RESPONSES.ACK,
+ messageData: { identityId, v, r, s, vs },
+ };
}
/**
diff --git a/src/commands/protocols/publish/sender/network-publish-command.js b/src/commands/protocols/publish/sender/network-publish-command.js
index ed1bf5bbdd..edc9936d63 100644
--- a/src/commands/protocols/publish/sender/network-publish-command.js
+++ b/src/commands/protocols/publish/sender/network-publish-command.js
@@ -1,33 +1,16 @@
import NetworkProtocolCommand from '../../common/network-protocol-command.js';
-import { ERROR_TYPE } from '../../../../constants/constants.js';
+import { ERROR_TYPE, OPERATION_ID_STATUS } from '../../../../constants/constants.js';
class NetworkPublishCommand extends NetworkProtocolCommand {
constructor(ctx) {
super(ctx);
+ this.blockchainModuleManager = ctx.blockchainModuleManager; // this should be removed (???)
+ this.ualService = ctx.ualService; // this should be removed (???)
this.operationService = ctx.publishService;
- this.blockchainModuleManager = ctx.blockchainModuleManager;
- this.ualService = ctx.ualService;
- this.errorType = ERROR_TYPE.PUBLISH.PUBLISH_START_ERROR;
- }
-
- async getKeywords(command) {
- const { blockchain, contract, tokenId } = command.data;
- const locationKeyword = await this.ualService.calculateLocationKeyword(
- blockchain,
- contract,
- tokenId,
- );
-
- return [locationKeyword];
- }
-
- async getBatchSize(blockchainId) {
- return this.blockchainModuleManager.getR2(blockchainId);
- }
-
- async getMinAckResponses(blockchainId) {
- return this.blockchainModuleManager.getR1(blockchainId);
+ this.errorType = ERROR_TYPE.PUBLISH.PUBLISH_NETWORK_START_ERROR;
+ this.operationStartEvent = OPERATION_ID_STATUS.PUBLISH.PUBLISH_NETWORK_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.PUBLISH.PUBLISH_NETWORK_END;
}
/**
diff --git a/src/commands/protocols/publish/sender/publish-find-shard-command.js b/src/commands/protocols/publish/sender/publish-find-shard-command.js
new file mode 100644
index 0000000000..1d9bff3af6
--- /dev/null
+++ b/src/commands/protocols/publish/sender/publish-find-shard-command.js
@@ -0,0 +1,52 @@
+import FindShardCommand from '../../common/find-shard-command.js';
+import { OPERATION_ID_STATUS, ERROR_TYPE } from '../../../../constants/constants.js';
+
+class PublishFindShardCommand extends FindShardCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.operationService = ctx.publishService;
+ this.errorType = ERROR_TYPE.FIND_SHARD.PUBLISH_FIND_SHARD_ERROR;
+ this.operationStartEvent = OPERATION_ID_STATUS.PUBLISH.PUBLISH_FIND_NODES_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.PUBLISH.PUBLISH_FIND_NODES_END;
+ this.findShardNodesStartEvent =
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_FIND_NODES_FIND_SHARD_NODES_START;
+ this.findShardNodesEndEvent =
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_FIND_NODES_FIND_SHARD_NODES_END;
+ this.processFoundNodesStartEvent =
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_FIND_NODES_PROCESS_FOUND_NODES_START;
+ this.processFoundNodesEndEvent =
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_FIND_NODES_PROCESS_FOUND_NODES_END;
+ }
+
+ getOperationCommandSequence(nodePartOfShard, commandData) {
+ const sequence = [];
+ if (!commandData.isOperationV0) {
+ sequence.push('publishValidateAssetCommand');
+ }
+
+ if (nodePartOfShard && !commandData.isOperationV0) {
+ sequence.push('localStoreCommand');
+ } else {
+ sequence.push('networkPublishCommand');
+ }
+
+ return sequence;
+ }
+
+ /**
+ * Builds default publishFindShardCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'publishFindShardCommand',
+ delay: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default PublishFindShardCommand;
diff --git a/src/commands/protocols/publish/sender/publish-schedule-messages-command.js b/src/commands/protocols/publish/sender/publish-schedule-messages-command.js
index ff0f7ebdb0..e140a5466a 100644
--- a/src/commands/protocols/publish/sender/publish-schedule-messages-command.js
+++ b/src/commands/protocols/publish/sender/publish-schedule-messages-command.js
@@ -1,127 +1,27 @@
import ProtocolScheduleMessagesCommand from '../../common/protocol-schedule-messages-command.js';
-import Command from '../../../command.js';
import { OPERATION_ID_STATUS, ERROR_TYPE } from '../../../../constants/constants.js';
class PublishScheduleMessagesCommand extends ProtocolScheduleMessagesCommand {
constructor(ctx) {
super(ctx);
this.operationService = ctx.publishService;
- this.serviceAgreementService = ctx.serviceAgreementService;
- this.blockchainModuleManager = ctx.blockchainModuleManager;
- this.repositoryModuleManager = ctx.repositoryModuleManager;
+ this.blockchainModuleManager = ctx.blockchainModuleManager; // this should be removed (???)
+ this.repositoryModuleManager = ctx.repositoryModuleManager; // this should be removed (???)
- this.startEvent = OPERATION_ID_STATUS.PUBLISH.PUBLISH_REPLICATE_START;
+ this.operationStartEvent = OPERATION_ID_STATUS.PUBLISH.PUBLISH_REPLICATE_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.PUBLISH.PUBLISH_REPLICATE_END;
this.errorType = ERROR_TYPE.PUBLISH.PUBLISH_START_ERROR;
}
- async execute(command) {
- const {
- operationId,
- keyword,
- leftoverNodes,
- numberOfFoundNodes,
- blockchain,
- minAckResponses,
- hashFunctionId,
- assertionId,
- tokenId,
- contract,
- } = command.data;
- let isValid = true;
- // perform check only first time not for every batch
- if (leftoverNodes.length === numberOfFoundNodes) {
- isValid = await this.validateBidsForNeighbourhood(
- blockchain,
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- assertionId,
- leftoverNodes,
- minAckResponses,
- operationId,
- );
- }
- if (isValid) {
- return super.execute(command);
- }
- return Command.empty();
- }
-
- async validateBidsForNeighbourhood(
- blockchain,
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- assertionId,
- nodes,
- minAckResponses,
- operationId,
- ) {
- const blockchainAssertionSize = await this.blockchainModuleManager.getAssertionSize(
- blockchain,
- assertionId,
- );
-
- const agreementId = this.serviceAgreementService.generateId(
+ getNextCommandData(command) {
+ const { datasetRoot, blockchain, isOperationV0, contract, tokenId } = command.data;
+ return {
blockchain,
+ datasetRoot,
+ isOperationV0,
contract,
tokenId,
- keyword,
- hashFunctionId,
- );
- const agreementData = await this.blockchainModuleManager.getAgreementData(
- blockchain,
- agreementId,
- );
-
- if (!agreementData) {
- await this.operationService.markOperationAsFailed(
- operationId,
- blockchain,
- 'Unable to fetch agreement data.',
- ERROR_TYPE.PUBLISH.PUBLISH_START_ERROR,
- );
- return false;
- }
-
- const r0 = await this.blockchainModuleManager.getR0();
-
- const serviceAgreementBid = await this.serviceAgreementService.calculateBid(
- blockchain,
- blockchainAssertionSize,
- agreementData,
- r0,
- );
-
- let validBids = 0;
-
- await Promise.all(
- nodes.map(async (node) => {
- const ask = await this.getAsk(blockchain, node.id);
- if (ask.lte(serviceAgreementBid)) {
- validBids += 1;
- }
- }),
- );
-
- if (validBids < minAckResponses) {
- await this.operationService.markOperationAsFailed(
- operationId,
- blockchain,
- 'Unable to start publish, not enough nodes in neighbourhood satisfy the bid.',
- ERROR_TYPE.PUBLISH.PUBLISH_START_ERROR,
- );
- return false;
- }
- return true;
- }
-
- async getAsk(blockchain, nodeId) {
- const peerRecord = await this.repositoryModuleManager.getPeerRecord(nodeId, blockchain);
-
- return this.blockchainModuleManager.convertToWei(blockchain, peerRecord.ask);
+ };
}
/**
diff --git a/src/commands/protocols/publish/sender/publish-validate-asset-blockchain-command.js b/src/commands/protocols/publish/sender/publish-validate-asset-blockchain-command.js
new file mode 100644
index 0000000000..808629850d
--- /dev/null
+++ b/src/commands/protocols/publish/sender/publish-validate-asset-blockchain-command.js
@@ -0,0 +1,71 @@
+import ValidateAssetCommand from '../../../common/validate-asset-command.js';
+import { OPERATION_ID_STATUS } from '../../../../constants/constants.js';
+
+class PublishValidateAssetBlockchainCommand extends ValidateAssetCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.operationService = ctx.publishService;
+ this.validationService = ctx.validationService;
+ }
+
+ async handleError(operationId, blockchain, errorMessage, errorType) {
+ await this.operationService.markOperationAsFailed(
+ operationId,
+ blockchain,
+ errorMessage,
+ errorType,
+ );
+ }
+
+ /**
+ * Executes command and produces one or more events
+ * @param command
+ */
+ async execute(command) {
+ const { operationId, blockchain, contract, tokenId, datasetRoot } = command.data;
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.VALIDATE_ASSET_BLOCKCHAIN_START,
+ );
+ const ual = this.ualService.deriveUAL(blockchain, contract, tokenId);
+ this.logger.debug(
+ `Validating asset's public assertion with id: ${datasetRoot} ual: ${ual}`,
+ );
+
+ await this.validationService.validateDatasetRootOnBlockchain(
+ datasetRoot,
+ blockchain,
+ contract,
+ tokenId,
+ );
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.VALIDATE_ASSET_BLOCKCHAIN_END,
+ );
+ return this.continueSequence(
+ { ...command.data, retry: undefined, period: undefined },
+ command.sequence,
+ );
+ }
+
+ /**
+ * Builds default PublishValidateAssetBlockchainCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'publishValidateAssetBlockchainCommand',
+ delay: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default PublishValidateAssetBlockchainCommand;
diff --git a/src/commands/protocols/publish/sender/publish-validate-asset-command.js b/src/commands/protocols/publish/sender/publish-validate-asset-command.js
index 764624a226..bfdce4339e 100644
--- a/src/commands/protocols/publish/sender/publish-validate-asset-command.js
+++ b/src/commands/protocols/publish/sender/publish-validate-asset-command.js
@@ -1,9 +1,17 @@
import ValidateAssetCommand from '../../../common/validate-asset-command.js';
+import Command from '../../../command.js';
+import {
+ OPERATION_ID_STATUS,
+ ERROR_TYPE,
+ LOCAL_STORE_TYPES,
+ PARANET_ACCESS_POLICY,
+} from '../../../../constants/constants.js';
class PublishValidateAssetCommand extends ValidateAssetCommand {
constructor(ctx) {
super(ctx);
this.operationService = ctx.publishService;
+ this.errorType = ERROR_TYPE.PUBLISH.PUBLISH_VALIDATE_ASSET_ERROR;
}
async handleError(operationId, blockchain, errorMessage, errorType) {
@@ -15,6 +23,156 @@ class PublishValidateAssetCommand extends ValidateAssetCommand {
);
}
+ /**
+ * Executes command and produces one or more events
+ * @param command
+ */
+ async execute(command) {
+ const {
+ operationId,
+ blockchain,
+ storeType = LOCAL_STORE_TYPES.TRIPLE,
+ paranetUAL,
+ datasetRoot,
+ } = command.data;
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_VALIDATE_ASSET_START,
+ );
+
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_GET_CACHED_OPERATION_ID_DATA_START,
+ operationId,
+ blockchain,
+ );
+ const cachedData = await this.operationIdService.getCachedOperationIdData(operationId);
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_GET_CACHED_OPERATION_ID_DATA_END,
+ operationId,
+ blockchain,
+ );
+
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_VALIDATE_DATASET_ROOT_START,
+ operationId,
+ blockchain,
+ );
+ await this.validationService.validateDatasetRoot(cachedData.dataset.public, datasetRoot);
+
+ if (cachedData.dataset?.private?.length)
+ await this.validationService.validatePrivateMerkleRoot(
+ cachedData.dataset.public,
+ cachedData.dataset.private,
+ );
+
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_VALIDATE_DATASET_ROOT_END,
+ operationId,
+ blockchain,
+ );
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_VALIDATE_ASSET_END,
+ );
+
+ let paranetId;
+ if (storeType === LOCAL_STORE_TYPES.TRIPLE_PARANET) {
+ try {
+ const {
+ blockchain: paranetBlockchain,
+ contract: paranetContract,
+ tokenId: paranetTokenId,
+ } = this.ualService.resolveUAL(paranetUAL);
+
+ paranetId = this.paranetService.constructParanetId(paranetContract, paranetTokenId);
+
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_VALIDATE_ASSET_PARANET_EXISTS_START,
+ operationId,
+ blockchain,
+ );
+ const paranetExists = await this.blockchainModuleManager.paranetExists(
+ paranetBlockchain,
+ paranetId,
+ );
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_VALIDATE_ASSET_PARANET_EXISTS_END,
+ operationId,
+ blockchain,
+ );
+
+ if (!paranetExists) {
+ await this.handleError(
+ operationId,
+ blockchain,
+ `Paranet: ${paranetId} doesn't exist.`,
+ this.errorType,
+ );
+ return Command.empty();
+ }
+
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.PUBLISH
+ .PUBLISH_VALIDATE_ASSET_NODES_ACCESS_POLICY_CHECK_START,
+ operationId,
+ blockchain,
+ );
+ const nodesAccessPolicy = await this.blockchainModuleManager.getNodesAccessPolicy(
+ blockchain,
+ paranetId,
+ );
+ if (nodesAccessPolicy === PARANET_ACCESS_POLICY.CURATED) {
+ const identityId = await this.blockchainModuleManager.getIdentityId(blockchain);
+ const isCuratedNode = await this.blockchainModuleManager.isCuratedNode(
+ blockchain,
+ paranetId,
+ identityId,
+ );
+ if (!isCuratedNode) {
+ await this.handleError(
+ operationId,
+ blockchain,
+ `Node is not part of curated paranet ${paranetId} because node with id ${identityId} is not a curated node.`,
+ this.errorType,
+ );
+ return Command.empty();
+ }
+ } else {
+ await this.handleError(
+ operationId,
+ blockchain,
+ `Paranet ${paranetId} is not curated paranet.`,
+ this.errorType,
+ );
+ return Command.empty();
+ }
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.PUBLISH
+ .PUBLISH_VALIDATE_ASSET_NODES_ACCESS_POLICY_CHECK_END,
+ operationId,
+ blockchain,
+ );
+ } catch (error) {
+ await this.handleError(operationId, blockchain, error.message, this.errorType);
+ return Command.empty();
+ }
+ }
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_VALIDATE_ASSET_END,
+ );
+ return this.continueSequence(
+ { ...command.data, paranetId, retry: undefined, period: undefined },
+ command.sequence,
+ );
+ }
+
/**
* Builds default publishValidateAssetCommand
* @param map
diff --git a/src/commands/protocols/publish/sender/v1.0.0/v1-0-0-publish-init-command.js b/src/commands/protocols/publish/sender/v1.0.0/v1-0-0-publish-init-command.js
deleted file mode 100644
index 11aa6753b7..0000000000
--- a/src/commands/protocols/publish/sender/v1.0.0/v1-0-0-publish-init-command.js
+++ /dev/null
@@ -1,32 +0,0 @@
-import ProtocolInitCommand from '../../../common/protocol-init-command.js';
-import { NETWORK_MESSAGE_TIMEOUT_MILLS, ERROR_TYPE } from '../../../../../constants/constants.js';
-
-class PublishInitCommand extends ProtocolInitCommand {
- constructor(ctx) {
- super(ctx);
- this.operationService = ctx.publishService;
-
- this.errorType = ERROR_TYPE.PUBLISH.PUBLISH_STORE_INIT_ERROR;
- }
-
- messageTimeout() {
- return NETWORK_MESSAGE_TIMEOUT_MILLS.PUBLISH.INIT;
- }
-
- /**
- * Builds default publishInitCommand
- * @param map
- * @returns {{add, data: *, delay: *, deadline: *}}
- */
- default(map) {
- const command = {
- name: 'v1_0_0PublishInitCommand',
- delay: 0,
- transactional: false,
- };
- Object.assign(command, map);
- return command;
- }
-}
-
-export default PublishInitCommand;
diff --git a/src/commands/protocols/publish/sender/v1.0.0/v1-0-0-publish-request-command.js b/src/commands/protocols/publish/sender/v1.0.0/v1-0-0-publish-request-command.js
index d1f5b01ce1..18f1d927ff 100644
--- a/src/commands/protocols/publish/sender/v1.0.0/v1-0-0-publish-request-command.js
+++ b/src/commands/protocols/publish/sender/v1.0.0/v1-0-0-publish-request-command.js
@@ -1,21 +1,65 @@
import ProtocolRequestCommand from '../../../common/protocol-request-command.js';
-import { NETWORK_MESSAGE_TIMEOUT_MILLS, ERROR_TYPE } from '../../../../../constants/constants.js';
+import {
+ NETWORK_MESSAGE_TIMEOUT_MILLS,
+ ERROR_TYPE,
+ OPERATION_ID_STATUS,
+ NETWORK_SIGNATURES_FOLDER,
+} from '../../../../../constants/constants.js';
class PublishRequestCommand extends ProtocolRequestCommand {
constructor(ctx) {
super(ctx);
this.operationService = ctx.publishService;
-
+ this.signatureService = ctx.signatureService;
+ this.operationIdService = ctx.operationIdService;
this.errorType = ERROR_TYPE.PUBLISH.PUBLISH_STORE_REQUEST_ERROR;
+
+ this.operationStartEvent = OPERATION_ID_STATUS.PUBLISH.PUBLISH_REQUEST_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.PUBLISH.PUBLISH_REQUEST_END;
+ this.prepareMessageStartEvent =
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_REQUEST_PREPARE_MESSAGE_START;
+ this.prepareMessageEndEvent =
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_REQUEST_PREPARE_MESSAGE_END;
+ this.sendMessageStartEvent = OPERATION_ID_STATUS.PUBLISH.PUBLISH_SEND_MESSAGE_START;
+ this.sendMessageEndEvent = OPERATION_ID_STATUS.PUBLISH.PUBLISH_SEND_MESSAGE_END;
}
async prepareMessage(command) {
- const {
- public: { assertion },
- } = await this.operationIdService.getCachedOperationIdData(command.data.operationId);
+ const { datasetRoot, operationId, isOperationV0, contract, tokenId } = command.data;
+
+ // TODO: Backwards compatibility, send blockchain without chainId
+ const { blockchain } = command.data;
+
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_GET_CACHED_OPERATION_ID_DATA_START,
+ operationId,
+ blockchain,
+ );
+ const { dataset } = await this.operationIdService.getCachedOperationIdData(operationId);
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_GET_CACHED_OPERATION_ID_DATA_END,
+ operationId,
+ blockchain,
+ );
+
+ return {
+ dataset: isOperationV0 ? dataset : dataset.public,
+ datasetRoot,
+ blockchain,
+ isOperationV0,
+ contract,
+ tokenId,
+ };
+ }
+ getNextCommandData(command) {
+ const { datasetRoot, blockchain, isOperationV0, contract, tokenId } = command.data;
return {
- assertion,
+ blockchain,
+ datasetRoot,
+ isOperationV0,
+ contract,
+ tokenId,
};
}
@@ -23,6 +67,32 @@ class PublishRequestCommand extends ProtocolRequestCommand {
return NETWORK_MESSAGE_TIMEOUT_MILLS.PUBLISH.REQUEST;
}
+ async handleAck(command, responseData) {
+ const { operationId, blockchain } = command.data;
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_ADD_SIGNATURE_TO_STORAGE_START,
+ operationId,
+ blockchain,
+ );
+
+ await this.signatureService.addSignatureToStorage(
+ NETWORK_SIGNATURES_FOLDER,
+ operationId,
+ responseData.identityId,
+ responseData.v,
+ responseData.r,
+ responseData.s,
+ responseData.vs,
+ );
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_ADD_SIGNATURE_TO_STORAGE_END,
+ operationId,
+ blockchain,
+ );
+
+ return super.handleAck(command, responseData);
+ }
+
/**
* Builds default publishRequestCommand
* @param map
diff --git a/src/commands/protocols/publish/store-assertion-command.js b/src/commands/protocols/publish/store-assertion-command.js
new file mode 100644
index 0000000000..2bc8e2b142
--- /dev/null
+++ b/src/commands/protocols/publish/store-assertion-command.js
@@ -0,0 +1,68 @@
+import Command from '../../command.js';
+import {
+ OPERATION_ID_STATUS,
+ ERROR_TYPE,
+ TRIPLE_STORE_REPOSITORIES,
+} from '../../../constants/constants.js';
+
+class StoreAssertionCommand extends Command {
+ constructor(ctx) {
+ super(ctx);
+ this.operationIdService = ctx.operationIdService;
+ this.ualService = ctx.ualService;
+ this.dataService = ctx.dataService;
+ this.tripleStoreService = ctx.tripleStoreService;
+
+ this.errorType = ERROR_TYPE.STORE_ASSERTION_ERROR;
+ }
+
+ async execute(command) {
+ const { operationId, ual, blockchain, assertion } = command.data;
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.PUBLISH_FINALIZATION.PUBLISH_FINALIZATION_STORE_ASSERTION_START,
+ );
+ try {
+ await this._insertAssertion(assertion, ual);
+ } catch (e) {
+ await this.handleError(operationId, blockchain, e.message, this.errorType, true);
+ return Command.empty(); // TODO: Should it end here or do a retry?
+ }
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.PUBLISH_FINALIZATION.PUBLISH_FINALIZATION_STORE_ASSERTION_END,
+ );
+
+ return this.continueSequence(command.data, command.sequence);
+ }
+
+ async _insertAssertion(assertion, ual) {
+ await this.tripleStoreService.insertKnowledgeCollection(
+ TRIPLE_STORE_REPOSITORIES.DKG,
+ ual,
+ assertion,
+ );
+ }
+
+ /**
+ * Builds default storeAssertionCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'storeAssertionCommand',
+ delay: 0,
+ retries: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default StoreAssertionCommand;
diff --git a/src/commands/protocols/update/receiver/delete-pending-state-command.js b/src/commands/protocols/update/receiver/delete-pending-state-command.js
deleted file mode 100644
index 4edf754a55..0000000000
--- a/src/commands/protocols/update/receiver/delete-pending-state-command.js
+++ /dev/null
@@ -1,133 +0,0 @@
-import Command from '../../../command.js';
-import {
- ERROR_TYPE,
- PENDING_STORAGE_REPOSITORIES,
- TRIPLE_STORE_REPOSITORIES,
-} from '../../../../constants/constants.js';
-
-class DeletePendingStateCommand extends Command {
- constructor(ctx) {
- super(ctx);
- this.blockchainModuleManager = ctx.blockchainModuleManager;
- this.pendingStorageService = ctx.pendingStorageService;
-
- this.errorType = ERROR_TYPE.UPDATE.UPDATE_DELETE_PENDING_STATE_ERROR;
- }
-
- async execute(command) {
- const { blockchain, contract, tokenId, assertionId, operationId, keyword, hashFunctionId } =
- command.data;
-
- this.logger.trace(
- `Started ${command.name} for blockchain: ${blockchain} contract: ${contract}, ` +
- `token id: ${tokenId}, assertion id: ${assertionId}`,
- );
-
- const pendingStateExists = await this.pendingStateExists(
- blockchain,
- contract,
- tokenId,
- assertionId,
- );
-
- if (pendingStateExists) {
- this.logger.trace(
- `Pending state exists for token id: ${tokenId}, assertion id: ${assertionId}, blockchain: ${blockchain} and operationId: ${operationId}`,
- );
- const assetStates = await this.blockchainModuleManager.getAssertionIds(
- blockchain,
- contract,
- tokenId,
- );
- if (assetStates.includes(assertionId)) {
- const stateIndex = assetStates.indexOf(assertionId);
- this.logger.trace(
- `Node missed state finalized event for token id: ${tokenId}, assertion id: ${assertionId}, blockchain: ${blockchain} and operationId: ${operationId}. Node will now move data from pending storage to triple store`,
- );
- await Promise.all([
- this.pendingStorageService.moveAndDeletePendingState(
- TRIPLE_STORE_REPOSITORIES.PUBLIC_CURRENT,
- TRIPLE_STORE_REPOSITORIES.PUBLIC_HISTORY,
- PENDING_STORAGE_REPOSITORIES.PUBLIC,
- blockchain,
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- assertionId,
- stateIndex,
- ),
- this.pendingStorageService.moveAndDeletePendingState(
- TRIPLE_STORE_REPOSITORIES.PRIVATE_CURRENT,
- TRIPLE_STORE_REPOSITORIES.PRIVATE_HISTORY,
- PENDING_STORAGE_REPOSITORIES.PRIVATE,
- blockchain,
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- assertionId,
- stateIndex,
- ),
- ]);
- }
- await this.deletePendingState(blockchain, contract, tokenId, assertionId, operationId);
- }
- return Command.empty();
- }
-
- async deletePendingState(blockchain, contract, tokenId, assertionId, operationId) {
- for (const repository of [
- PENDING_STORAGE_REPOSITORIES.PUBLIC,
- PENDING_STORAGE_REPOSITORIES.PRIVATE,
- ]) {
- // eslint-disable-next-line no-await-in-loop
- await this.pendingStorageService.removeCachedAssertion(
- repository,
- blockchain,
- contract,
- tokenId,
- assertionId,
- operationId,
- );
- }
- }
-
- async pendingStateExists(blockchain, contract, tokenId, assertionId) {
- for (const repository of [
- PENDING_STORAGE_REPOSITORIES.PUBLIC,
- PENDING_STORAGE_REPOSITORIES.PRIVATE,
- ]) {
- // eslint-disable-next-line no-await-in-loop
- const pendingStateExists = await this.pendingStorageService.assetHasPendingState(
- repository,
- blockchain,
- contract,
- tokenId,
- assertionId,
- );
-
- if (pendingStateExists) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * Builds default deletePendingStorageCommand
- * @param map
- * @returns {{add, data: *, delay: *, deadline: *}}
- */
- default(map) {
- const command = {
- name: 'deletePendingStateCommand',
- delay: 0,
- transactional: false,
- };
- Object.assign(command, map);
- return command;
- }
-}
-
-export default DeletePendingStateCommand;
diff --git a/src/commands/protocols/update/receiver/submit-update-commit-command.js b/src/commands/protocols/update/receiver/submit-update-commit-command.js
deleted file mode 100644
index c2bf7eb5a0..0000000000
--- a/src/commands/protocols/update/receiver/submit-update-commit-command.js
+++ /dev/null
@@ -1,160 +0,0 @@
-import Command from '../../../command.js';
-import {
- OPERATION_ID_STATUS,
- ERROR_TYPE,
- COMMAND_RETRIES,
- COMMAND_TX_GAS_INCREASE_FACTORS,
- CONTRACT_FUNCTION_FIXED_GAS_PRICE,
-} from '../../../../constants/constants.js';
-import SendTransactionCommand from '../../../common/send-transaction-command.js';
-
-class SubmitUpdateCommitCommand extends SendTransactionCommand {
- constructor(ctx) {
- super(ctx);
- this.commandExecutor = ctx.commandExecutor;
- this.blockchainModuleManager = ctx.blockchainModuleManager;
- this.operationIdService = ctx.operationIdService;
- this.serviceAgreementService = ctx.serviceAgreementService;
-
- this.errorType = ERROR_TYPE.COMMIT_PROOF.SUBMIT_UPDATE_COMMIT_ERROR;
-
- this.txStartStatus = OPERATION_ID_STATUS.COMMIT_PROOF.SUBMIT_UPDATE_COMMIT_SEND_TX_START;
- this.txEndStatus = OPERATION_ID_STATUS.COMMIT_PROOF.SUBMIT_UPDATE_COMMIT_SEND_TX_END;
- this.txErrorType = ERROR_TYPE.COMMIT_PROOF.SUBMIT_UPDATE_COMMIT_SEND_TX_ERROR;
- this.txGasIncreaseFactor = COMMAND_TX_GAS_INCREASE_FACTORS.SUBMIT_UPDATE_COMMIT;
- this.operationEndStatus = OPERATION_ID_STATUS.COMMIT_PROOF.SUBMIT_UPDATE_COMMIT_END;
- this.commandRetryNumber = COMMAND_RETRIES.SUBMIT_UPDATE_COMMIT;
- }
-
- async execute(command) {
- const {
- blockchain,
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- agreementData,
- agreementId,
- operationId,
- gasPrice,
- closestNode,
- leftNeighborhoodEdge,
- rightNeighborhoodEdge,
- } = command.data;
-
- this.logger.trace(
- `Started ${command.name} for the Service Agreement with the ID: ${agreementId}, ` +
- `Blockchain: ${blockchain}, Contract: ${contract}, Token ID: ${tokenId}, ` +
- `Keyword: ${keyword}, Hash function ID: ${hashFunctionId}, Operation ID: ${operationId}, ` +
- `Closest Node: ${closestNode}, Left neighborhood edge: ${leftNeighborhoodEdge}, ` +
- `Right neighborhood edge: ${rightNeighborhoodEdge}, `,
- `Retry number: ${COMMAND_RETRIES.SUBMIT_UPDATE_COMMIT - command.retries + 1}`,
- );
-
- const epoch = await this.serviceAgreementService.calculateCurrentEpoch(
- agreementData.startTime,
- agreementData.epochLength,
- blockchain,
- );
-
- if (command.retries === COMMAND_RETRIES.SUBMIT_UPDATE_COMMIT) {
- this.operationIdService.emitChangeEvent(
- OPERATION_ID_STATUS.COMMIT_PROOF.SUBMIT_UPDATE_COMMIT_START,
- operationId,
- blockchain,
- agreementId,
- epoch,
- );
- }
-
- const hasPendingUpdate = await this.blockchainModuleManager.hasPendingUpdate(
- blockchain,
- tokenId,
- );
-
- if (!hasPendingUpdate) {
- this.logger.trace(
- `Not submitting update commit as state has been already finalized for the Service Agreement ` +
- `with the ID: ${agreementId}, Blockchain: ${blockchain}, Contract: ${contract}, ` +
- `Token ID: ${tokenId}, Keyword: ${keyword}, Hash function ID: ${hashFunctionId}, ` +
- `Closest Node: ${closestNode}, Left neighborhood edge: ${leftNeighborhoodEdge}, ` +
- `Right neighborhood edge: ${rightNeighborhoodEdge}, `,
- +`Epoch: ${epoch}, Operation ID: ${operationId}`,
- );
-
- return Command.empty();
- }
- const txGasPrice =
- gasPrice ??
- CONTRACT_FUNCTION_FIXED_GAS_PRICE[blockchain]?.SUBMIT_UPDATE_COMMIT ??
- (await this.blockchainModuleManager.getGasPrice(blockchain));
-
- const transactionCompletePromise = new Promise((resolve, reject) => {
- this.blockchainModuleManager.submitUpdateCommit(
- blockchain,
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- closestNode,
- leftNeighborhoodEdge,
- rightNeighborhoodEdge,
- epoch,
- (result) => {
- if (result?.error) {
- reject(result.error);
- }
- resolve(true);
- },
- txGasPrice,
- );
- });
-
- return this.sendTransactionAndHandleResult(
- transactionCompletePromise,
- {
- blockchain,
- agreementId,
- epoch,
- operationId,
- closestNode,
- leftNeighborhoodEdge,
- rightNeighborhoodEdge,
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- txGasPrice,
- },
- command,
- );
- }
-
- async retryFinished(command) {
- const { blockchain, operationId } = command.data;
- await this.handleError(
- operationId,
- blockchain,
- `Max retries has been reached! Latest Error Message: ${command.message}`,
- this.errorType,
- true,
- );
- }
-
- /**
- * Builds default submitUpdateCommitCommand
- * @param map
- * @returns {{add, data: *, delay: *, deadline: *}}
- */
- default(map) {
- const command = {
- name: 'submitUpdateCommitCommand',
- delay: 0,
- transactional: false,
- };
- Object.assign(command, map);
- return command;
- }
-}
-
-export default SubmitUpdateCommitCommand;
diff --git a/src/commands/protocols/update/receiver/v1.0.0/v1-0-0-handle-update-init-command.js b/src/commands/protocols/update/receiver/v1.0.0/v1-0-0-handle-update-init-command.js
deleted file mode 100644
index 5f218f45a9..0000000000
--- a/src/commands/protocols/update/receiver/v1.0.0/v1-0-0-handle-update-init-command.js
+++ /dev/null
@@ -1,90 +0,0 @@
-import HandleProtocolMessageCommand from '../../../common/handle-protocol-message-command.js';
-import { ERROR_TYPE, OPERATION_ID_STATUS } from '../../../../../constants/constants.js';
-
-class HandleUpdateInitCommand extends HandleProtocolMessageCommand {
- constructor(ctx) {
- super(ctx);
- this.ualService = ctx.ualService;
- this.shardingTableService = ctx.shardingTableService;
- this.blockchainModuleManager = ctx.blockchainModuleManager;
- this.serviceAgreementService = ctx.serviceAgreementService;
- this.repositoryModuleManager = ctx.repositoryModuleManager;
-
- this.errorType = ERROR_TYPE.UPDATE.UPDATE_REMOTE_ERROR;
- }
-
- async prepareMessage(commandData) {
- const { operationId, assertionId, blockchain, contract, tokenId, keyword, hashFunctionId } =
- commandData;
- const proximityScoreFunctionsPairId = commandData.proximityScoreFunctionsPairId ?? 1;
- await this.operationIdService.updateOperationIdStatus(
- operationId,
- blockchain,
- OPERATION_ID_STATUS.VALIDATE_ASSET_REMOTE_START,
- );
-
- await this.operationIdService.cacheOperationIdData(operationId, {
- assertionId,
- blockchain,
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- });
-
- const validationResult = await this.validateReceivedData(
- operationId,
- assertionId,
- blockchain,
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- proximityScoreFunctionsPairId,
- );
-
- await this.operationIdService.updateOperationIdStatus(
- operationId,
- blockchain,
- OPERATION_ID_STATUS.VALIDATE_ASSET_REMOTE_END,
- );
- return validationResult;
- }
-
- async validateAssertionId(blockchain, contract, tokenId, assertionId, ual) {
- const blockchainAssertionId = await this.blockchainModuleManager.getUnfinalizedAssertionId(
- blockchain,
- tokenId,
- );
- if (blockchainAssertionId !== assertionId) {
- throw Error(
- `Invalid assertion id for asset ${ual}. Received value from blockchain: ${blockchainAssertionId}, received value from request: ${assertionId}`,
- );
- }
- }
-
- async retryFinished(command) {
- const { operationId } = command.data;
- await this.handleError(
- `Retry count for command: ${command.name} reached! Unable to validate data for operation id: ${operationId}`,
- command,
- );
- }
-
- /**
- * Builds default v1_0_0HandleUpdateInitCommand
- * @param map
- * @returns {{add, data: *, delay: *, deadline: *}}
- */
- default(map) {
- const command = {
- name: 'v1_0_0HandleUpdateInitCommand',
- delay: 0,
- transactional: false,
- };
- Object.assign(command, map);
- return command;
- }
-}
-
-export default HandleUpdateInitCommand;
diff --git a/src/commands/protocols/update/receiver/v1.0.0/v1-0-0-handle-update-request-command.js b/src/commands/protocols/update/receiver/v1.0.0/v1-0-0-handle-update-request-command.js
index 199bf7f55f..bb542e796e 100644
--- a/src/commands/protocols/update/receiver/v1.0.0/v1-0-0-handle-update-request-command.js
+++ b/src/commands/protocols/update/receiver/v1.0.0/v1-0-0-handle-update-request-command.js
@@ -4,201 +4,106 @@ import {
NETWORK_MESSAGE_TYPES,
OPERATION_ID_STATUS,
ERROR_TYPE,
- COMMAND_RETRIES,
- PENDING_STORAGE_REPOSITORIES,
- COMMIT_BLOCK_DURATION_IN_BLOCKS,
- COMMITS_DELAY_BETWEEN_NODES_IN_BLOCKS,
} from '../../../../../constants/constants.js';
class HandleUpdateRequestCommand extends HandleProtocolMessageCommand {
constructor(ctx) {
super(ctx);
this.operationService = ctx.updateService;
- this.serviceAgreementService = ctx.serviceAgreementService;
- this.commandExecutor = ctx.commandExecutor;
- this.repositoryModuleManager = ctx.repositoryModuleManager;
this.blockchainModuleManager = ctx.blockchainModuleManager;
- this.tripleStoreService = ctx.tripleStoreService;
- this.ualService = ctx.ualService;
this.pendingStorageService = ctx.pendingStorageService;
- this.shardingTableService = ctx.shardingTableService;
- this.hashingService = ctx.hashingService;
- this.proximityScoringService = ctx.proximityScoringService;
+ this.operationIdService = ctx.operationIdService;
+ this.pendingStorageService = ctx.pendingStorageService;
+ this.signatureService = ctx.signatureService;
this.errorType = ERROR_TYPE.UPDATE.UPDATE_LOCAL_STORE_REMOTE_ERROR;
+ this.operationStartEvent = OPERATION_ID_STATUS.UPDATE.UPDATE_LOCAL_STORE_REMOTE_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.UPDATE.UPDATE_LOCAL_STORE_REMOTE_END;
+ this.prepareMessageStartEvent =
+ OPERATION_ID_STATUS.UPDATE.UPDATE_LOCAL_STORE_REMOTE_PREPARE_MESSAGE_START;
+ this.prepareMessageEndEvent =
+ OPERATION_ID_STATUS.UPDATE.UPDATE_LOCAL_STORE_REMOTE_PREPARE_MESSAGE_END;
+ this.sendMessageResponseStartEvent =
+ OPERATION_ID_STATUS.UPDATE.UPDATE_LOCAL_STORE_REMOTE_SEND_RESPONSE_START;
+ this.sendMessageResponseEndEvent =
+ OPERATION_ID_STATUS.UPDATE.UPDATE_LOCAL_STORE_REMOTE_SEND_RESPONSE_END;
+ this.removeCachedSessionStartEvent =
+ OPERATION_ID_STATUS.UPDATE.UPDATE_LOCAL_STORE_REMOTE_REMOVE_CACHED_SESSION_START;
+ this.removeCachedSessionEndEvent =
+ OPERATION_ID_STATUS.UPDATE.UPDATE_LOCAL_STORE_REMOTE_REMOVE_CACHED_SESSION_END;
}
async prepareMessage(commandData) {
- const {
+ const { blockchain, operationId, datasetRoot } = commandData;
+
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.UPDATE.UPDATE_GET_CACHED_OPERATION_ID_DATA_START,
+ operationId,
blockchain,
- contract,
- tokenId,
+ );
+ const { dataset } = await this.operationIdService.getCachedOperationIdData(operationId);
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.UPDATE.UPDATE_GET_CACHED_OPERATION_ID_DATA_END,
operationId,
- agreementId,
- keyword,
- hashFunctionId,
- agreementData,
- } = commandData;
-
- const proximityScoreFunctionsPairId = commandData.proximityScoreFunctionsPairId ?? 1;
+ blockchain,
+ );
await this.operationIdService.updateOperationIdStatus(
operationId,
blockchain,
- OPERATION_ID_STATUS.UPDATE.VALIDATING_UPDATE_ASSERTION_REMOTE_START,
+ OPERATION_ID_STATUS.UPDATE.UPDATE_VALIDATE_ASSET_REMOTE_START,
);
- const cachedData = await this.operationIdService.getCachedOperationIdData(operationId);
- await this.pendingStorageService.cacheAssertion(
- PENDING_STORAGE_REPOSITORIES.PUBLIC,
- blockchain,
- contract,
- tokenId,
- cachedData.assertionId,
- {
- public: {
- assertion: cachedData.assertion,
- },
- agreementId,
- agreementData,
- },
+ const validationResult = await this.validateReceivedData(
operationId,
- );
-
- const updateCommitWindowDuration =
- await this.blockchainModuleManager.getUpdateCommitWindowDuration(blockchain);
- const r0 = await this.blockchainModuleManager.getR0(blockchain);
- const r2 = await this.blockchainModuleManager.getR2(blockchain);
- const scheduleCommandsPromises = [];
-
- const neighbourhood = await this.shardingTableService.findNeighbourhood(
+ datasetRoot,
+ dataset,
blockchain,
- keyword,
- r2,
- hashFunctionId,
- proximityScoreFunctionsPairId,
);
- const closestNode = neighbourhood[0];
-
- let neighbourhoodEdges = null;
- if (proximityScoreFunctionsPairId === 2) {
- neighbourhoodEdges = await this.shardingTableService.getNeighboorhoodEdgeNodes(
- neighbourhood,
- blockchain,
- hashFunctionId,
- proximityScoreFunctionsPairId,
- keyword,
- );
- }
-
- if (!neighbourhoodEdges && proximityScoreFunctionsPairId === 2) {
- throw Error('Unable to find neighbourhood edges for asset');
- }
-
- const totalNodesNumber = await this.repositoryModuleManager.getPeersCount(blockchain);
- const minStake = await this.blockchainModuleManager.getMinimumStake(blockchain);
- const maxStake = await this.blockchainModuleManager.getMaximumStake(blockchain);
-
- const rank = await this.serviceAgreementService.calculateRank(
+ this.operationIdService.updateOperationIdStatus(
+ operationId,
blockchain,
- keyword,
- hashFunctionId,
- proximityScoreFunctionsPairId,
- r2,
- neighbourhood,
- neighbourhoodEdges,
- totalNodesNumber,
- minStake,
- maxStake,
+ OPERATION_ID_STATUS.UPDATE.UPDATE_VALIDATE_ASSET_REMOTE_END,
);
- if (rank != null) {
- this.logger.trace(`Calculated rank: ${rank + 1} for agreement id: ${agreementId}`);
- const finalizationCommitsNumber =
- await this.blockchainModuleManager.getFinalizationCommitsNumber(blockchain);
- const updateCommitDelay = await this.calculateUpdateCommitDelay(
- blockchain,
- updateCommitWindowDuration,
- finalizationCommitsNumber,
- r0,
- rank,
- );
- scheduleCommandsPromises.push(
- this.commandExecutor.add({
- name: 'submitUpdateCommitCommand',
- delay: updateCommitDelay,
- retries: COMMAND_RETRIES.SUBMIT_UPDATE_COMMIT,
- data: {
- ...commandData,
- agreementData,
- agreementId,
- r0,
- r2,
- updateCommitWindowDuration,
- proximityScoreFunctionsPairId,
- closestNode: closestNode?.index,
- leftNeighborhoodEdge: neighbourhoodEdges?.leftEdge?.index,
- rightNeighborhoodEdge: neighbourhoodEdges?.rightEdge?.index,
- },
- transactional: false,
- }),
- );
+ if (validationResult.messageType === NETWORK_MESSAGE_TYPES.RESPONSES.NACK) {
+ return validationResult;
}
- scheduleCommandsPromises.push(
- this.commandExecutor.add({
- name: 'deletePendingStateCommand',
- sequence: [],
- delay: (updateCommitWindowDuration + 60) * 1000,
- data: {
- ...commandData,
- assertionId: cachedData.assertionId,
- },
- transactional: false,
- }),
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.UPDATE.UPDATE_LOCAL_STORE_REMOTE_CACHE_DATASET_START,
);
-
- await Promise.all(scheduleCommandsPromises);
+ await this.pendingStorageService.cacheDataset(operationId, datasetRoot, dataset);
await this.operationIdService.updateOperationIdStatus(
operationId,
blockchain,
- OPERATION_ID_STATUS.UPDATE.VALIDATING_UPDATE_ASSERTION_REMOTE_END,
+ OPERATION_ID_STATUS.UPDATE.UPDATE_LOCAL_STORE_REMOTE_CACHE_DATASET_END,
);
- return { messageType: NETWORK_MESSAGE_TYPES.RESPONSES.ACK, messageData: {} };
- }
- async calculateUpdateCommitDelay(
- blockchain,
- updateCommitWindowDuration,
- finalizationCommitsNumber,
- r0,
- rank,
- ) {
- const r0OffsetPeriod = 0;
- const blockTime = this.blockchainModuleManager.getBlockTimeMillis(blockchain);
- // wait for 5 blocks for first batch to send commits
- const commitsBlockDuration = blockTime * COMMIT_BLOCK_DURATION_IN_BLOCKS;
- const commitBlock = Math.floor(rank / finalizationCommitsNumber);
- // put 5 blocks delay between nodes if they are not in first batch
- const nextNodeDelay =
- commitBlock === 0
- ? 0
- : (rank % finalizationCommitsNumber) *
- COMMITS_DELAY_BETWEEN_NODES_IN_BLOCKS *
- blockTime;
- const delay = commitsBlockDuration * commitBlock + r0OffsetPeriod + nextNodeDelay;
- this.logger.info(
- `Calculated update commit delay: ${Math.floor(
- delay / 1000,
- )}s, commitsBlockDuration: ${commitsBlockDuration}, commitBlock: ${commitBlock}, r0OffsetPeriod:${r0OffsetPeriod}, updateCommitWindowDuration ${updateCommitWindowDuration}s, finalizationCommitsNumber: ${finalizationCommitsNumber}, r0: ${r0}, rank: ${rank}`,
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.UPDATE.UPDATE_LOCAL_STORE_REMOTE_SIGN_START,
+ operationId,
+ blockchain,
+ );
+ const identityId = await this.blockchainModuleManager.getIdentityId(blockchain);
+ const { v, r, s, vs } = await this.signatureService.signMessage(blockchain, datasetRoot);
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.UPDATE.UPDATE_LOCAL_STORE_REMOTE_SIGN_END,
+ operationId,
+ blockchain,
);
- return delay;
+ return {
+ messageType: NETWORK_MESSAGE_TYPES.RESPONSES.ACK,
+ messageData: { identityId, v, r, s, vs },
+ };
}
/**
- * Builds default HandleUpdateRequestCommand
+ * Builds default handleUpdateRequestCommand
* @param map
* @returns {{add, data: *, delay: *, deadline: *}}
*/
diff --git a/src/commands/protocols/update/sender/network-update-command.js b/src/commands/protocols/update/sender/network-update-command.js
index 3b921a7499..7666babb4b 100644
--- a/src/commands/protocols/update/sender/network-update-command.js
+++ b/src/commands/protocols/update/sender/network-update-command.js
@@ -1,37 +1,19 @@
import NetworkProtocolCommand from '../../common/network-protocol-command.js';
-import { ERROR_TYPE } from '../../../../constants/constants.js';
+import { ERROR_TYPE, OPERATION_ID_STATUS } from '../../../../constants/constants.js';
class NetworkUpdateCommand extends NetworkProtocolCommand {
constructor(ctx) {
super(ctx);
- this.operationService = ctx.updateService;
- this.blockchainModuleManager = ctx.blockchainModuleManager;
- this.ualService = ctx.ualService;
+ this.blockchainModuleManager = ctx.blockchainModuleManager; // can we remove this
+ this.ualService = ctx.ualService; // can we remove this
- this.errorType = ERROR_TYPE.UPDATE.UPDATE_START_ERROR;
- }
-
- async getKeywords(command) {
- const { blockchain, contract, tokenId } = command.data;
- const locationKeyword = await this.ualService.calculateLocationKeyword(
- blockchain,
- contract,
- tokenId,
- );
-
- return [locationKeyword];
- }
-
- async getBatchSize(blockchainId) {
- return this.blockchainModuleManager.getR2(blockchainId);
- }
-
- async getMinAckResponses(blockchainId) {
- return this.blockchainModuleManager.getFinalizationCommitsNumber(blockchainId);
+ this.errorType = ERROR_TYPE.UPDATE.UPDATE_NETWORK_START_ERROR;
+ this.operationStartEvent = OPERATION_ID_STATUS.UPDATE.UPDATE_NETWORK_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.UPDATE.UPDATE_NETWORK_END;
}
/**
- * Builds default NetworkUpdateCommand
+ * Builds default networkUpdateCommand
* @param map
* @returns {{add, data: *, delay: *, deadline: *}}
*/
diff --git a/src/commands/protocols/update/sender/update-find-shard-command.js b/src/commands/protocols/update/sender/update-find-shard-command.js
new file mode 100644
index 0000000000..138dc6fa9b
--- /dev/null
+++ b/src/commands/protocols/update/sender/update-find-shard-command.js
@@ -0,0 +1,48 @@
+import FindShardCommand from '../../common/find-shard-command.js';
+import { OPERATION_ID_STATUS, ERROR_TYPE } from '../../../../constants/constants.js';
+
+class UpdateFindShardCommand extends FindShardCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.operationService = ctx.upateService;
+ this.errorType = ERROR_TYPE.FIND_SHARD.UPDATE_FIND_SHARD_ERROR;
+ this.operationStartEvent = OPERATION_ID_STATUS.UPDATE.UPDATE_FIND_NODES_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.UPDATE.UPDATE_FIND_NODES_END;
+ this.findShardNodesStartEvent =
+ OPERATION_ID_STATUS.UPDATE.UPDATE_FIND_NODES_FIND_SHARD_NODES_START;
+ this.findShardNodesEndEvent =
+ OPERATION_ID_STATUS.UPDATE.UPDATE_FIND_NODES_FIND_SHARD_NODES_END;
+ this.processFoundNodesStartEvent =
+ OPERATION_ID_STATUS.UPDATE.UPDATE_FIND_NODES_PROCESS_FOUND_NODES_START;
+ this.processFoundNodesEndEvent =
+ OPERATION_ID_STATUS.UPDATE.UPDATE_FIND_NODES_PROCESS_FOUND_NODES_END;
+ }
+
+ getOperationCommandSequence(nodePartOfShard) {
+ const sequence = [];
+ sequence.push('updateValidateAssetCommand');
+ if (nodePartOfShard) {
+ sequence.push('localUpdateCommand');
+ }
+ sequence.push('networkUpdateCommand');
+
+ return sequence;
+ }
+
+ /**
+ * Builds default updateFindShardCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'updateFindShardCommand',
+ delay: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default UpdateFindShardCommand;
diff --git a/src/commands/protocols/update/sender/update-schedule-messages-command.js b/src/commands/protocols/update/sender/update-schedule-messages-command.js
index be0bbbda21..c09629f752 100644
--- a/src/commands/protocols/update/sender/update-schedule-messages-command.js
+++ b/src/commands/protocols/update/sender/update-schedule-messages-command.js
@@ -4,9 +4,11 @@ import { OPERATION_ID_STATUS, ERROR_TYPE } from '../../../../constants/constants
class UpdateScheduleMessagesCommand extends ProtocolScheduleMessagesCommand {
constructor(ctx) {
super(ctx);
- this.operationService = ctx.updateService;
+ this.blockchainModuleManager = ctx.blockchainModuleManager; // can this be removed
+ this.repositoryModuleManager = ctx.repositoryModuleManager; // can this be removed
- this.startEvent = OPERATION_ID_STATUS.UPDATE.UPDATE_REPLICATE_START;
+ this.operationStartEvent = OPERATION_ID_STATUS.UPDATE.UPDATE_REPLICATE_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.UPDATE.UPDATE_REPLICATE_END;
this.errorType = ERROR_TYPE.UPDATE.UPDATE_START_ERROR;
}
diff --git a/src/commands/protocols/update/sender/update-validate-asset-command.js b/src/commands/protocols/update/sender/update-validate-asset-command.js
index 867a6729a7..fd3ae9c333 100644
--- a/src/commands/protocols/update/sender/update-validate-asset-command.js
+++ b/src/commands/protocols/update/sender/update-validate-asset-command.js
@@ -1,9 +1,11 @@
import ValidateAssetCommand from '../../../common/validate-asset-command.js';
+import { OPERATION_ID_STATUS, ERROR_TYPE } from '../../../../constants/constants.js';
class UpdateValidateAssetCommand extends ValidateAssetCommand {
constructor(ctx) {
super(ctx);
this.operationService = ctx.updateService;
+ this.errorType = ERROR_TYPE.UPDATE.UPDATE_VALIDATE_ASSET_ERROR;
}
async handleError(operationId, blockchain, errorMessage, errorType) {
@@ -15,6 +17,54 @@ class UpdateValidateAssetCommand extends ValidateAssetCommand {
);
}
+ /**
+ * Executes command and produces one or more events
+ * @param command
+ */
+ async execute(command) {
+ const { operationId, blockchain, datasetRoot } = command.data;
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.UPDATE.UPDATE_VALIDATE_ASSET_START,
+ );
+
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.UPDATE.UPDATE_GET_CACHED_OPERATION_ID_DATA_START,
+ operationId,
+ blockchain,
+ );
+ const cachedData = await this.operationIdService.getCachedOperationIdData(operationId);
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.UPDATE.UPDATE_GET_CACHED_OPERATION_ID_DATA_END,
+ operationId,
+ blockchain,
+ );
+
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.UPDATE.UPDATE_VALIDATE_DATASET_ROOT_START,
+ operationId,
+ blockchain,
+ );
+ await this.validationService.validateDatasetRoot(cachedData.dataset, datasetRoot);
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.UPDATE.UPDATE_VALIDATE_DATASET_ROOT_END,
+ operationId,
+ blockchain,
+ );
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.UPDATE.UPDATE_VALIDATE_ASSET_END,
+ );
+ return this.continueSequence(
+ { ...command.data, retry: undefined, period: undefined },
+ command.sequence,
+ );
+ }
+
/**
* Builds default updateValidateAssetCommand
* @param map
diff --git a/src/commands/protocols/update/sender/v1.0.0/v1-0-0-update-init-command.js b/src/commands/protocols/update/sender/v1.0.0/v1-0-0-update-init-command.js
deleted file mode 100644
index 405a19278d..0000000000
--- a/src/commands/protocols/update/sender/v1.0.0/v1-0-0-update-init-command.js
+++ /dev/null
@@ -1,32 +0,0 @@
-import ProtocolInitCommand from '../../../common/protocol-init-command.js';
-import { NETWORK_MESSAGE_TIMEOUT_MILLS, ERROR_TYPE } from '../../../../../constants/constants.js';
-
-class UpdateInitCommand extends ProtocolInitCommand {
- constructor(ctx) {
- super(ctx);
- this.operationService = ctx.updateService;
-
- this.errorType = ERROR_TYPE.UPDATE.UPDATE_STORE_INIT_ERROR;
- }
-
- messageTimeout() {
- return NETWORK_MESSAGE_TIMEOUT_MILLS.UPDATE.INIT;
- }
-
- /**
- * Builds default v1_0_0UpdateInitCommand
- * @param map
- * @returns {{add, data: *, delay: *, deadline: *}}
- */
- default(map) {
- const command = {
- name: 'v1_0_0UpdateInitCommand',
- delay: 0,
- transactional: false,
- };
- Object.assign(command, map);
- return command;
- }
-}
-
-export default UpdateInitCommand;
diff --git a/src/commands/protocols/update/sender/v1.0.0/v1-0-0-update-request-command.js b/src/commands/protocols/update/sender/v1.0.0/v1-0-0-update-request-command.js
index cda7aec635..c05da6ea48 100644
--- a/src/commands/protocols/update/sender/v1.0.0/v1-0-0-update-request-command.js
+++ b/src/commands/protocols/update/sender/v1.0.0/v1-0-0-update-request-command.js
@@ -1,21 +1,50 @@
import ProtocolRequestCommand from '../../../common/protocol-request-command.js';
-import { NETWORK_MESSAGE_TIMEOUT_MILLS, ERROR_TYPE } from '../../../../../constants/constants.js';
+import {
+ NETWORK_MESSAGE_TIMEOUT_MILLS,
+ ERROR_TYPE,
+ OPERATION_ID_STATUS,
+ NETWORK_SIGNATURES_FOLDER,
+} from '../../../../../constants/constants.js';
-class UpdateRequestCommand extends ProtocolRequestCommand {
+class PublishRequestCommand extends ProtocolRequestCommand {
constructor(ctx) {
super(ctx);
this.operationService = ctx.updateService;
+ this.signatureService = ctx.signatureService;
+ this.operationIdService = ctx.operationIdService;
+ this.errorType = ERROR_TYPE.UPDATE.UPDATE_STORE_REQUEST_ERROR;
- this.errorType = ERROR_TYPE.UPDATE.UPDATE_REQUEST_ERROR;
+ this.operationStartEvent = OPERATION_ID_STATUS.UPDATE.UPDATE_REQUEST_START;
+ this.operationEndEvent = OPERATION_ID_STATUS.UPDATE.UPDATE_REQUEST_END;
+ this.prepareMessageStartEvent =
+ OPERATION_ID_STATUS.UPDATE.UPDATE_REQUEST_PREPARE_MESSAGE_START;
+ this.prepareMessageEndEvent = OPERATION_ID_STATUS.UPDATE.UPDATE_REQUEST_PREPARE_MESSAGE_END;
+ this.sendMessageStartEvent = OPERATION_ID_STATUS.UPDATE.UPDATE_SEND_MESSAGE_START;
+ this.sendMessageEndEvent = OPERATION_ID_STATUS.UPDATE.UPDATE_SEND_MESSAGE_END;
}
async prepareMessage(command) {
- const {
- public: { assertion },
- } = await this.operationIdService.getCachedOperationIdData(command.data.operationId);
+ const { datasetRoot, operationId } = command.data;
+
+ // TODO: Backwards compatibility, send blockchain without chainId
+ const { blockchain } = command.data;
+
+ await this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.UPDATE.UPDATE_GET_CACHED_OPERATION_ID_DATA_START,
+ operationId,
+ blockchain,
+ );
+ const { dataset } = await this.operationIdService.getCachedOperationIdData(operationId);
+ await this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.UPDATE.UPDATE_GET_CACHED_OPERATION_ID_DATA_END,
+ operationId,
+ blockchain,
+ );
return {
- assertion,
+ dataset,
+ datasetRoot,
+ blockchain,
};
}
@@ -23,14 +52,39 @@ class UpdateRequestCommand extends ProtocolRequestCommand {
return NETWORK_MESSAGE_TIMEOUT_MILLS.UPDATE.REQUEST;
}
+ async handleAck(command, responseData) {
+ const { operationId, blockchain } = command.data;
+ await this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.UPDATE.UPDATE_ADD_SIGNATURE_TO_STORAGE_START,
+ operationId,
+ blockchain,
+ );
+ await this.signatureService.addSignatureToStorage(
+ NETWORK_SIGNATURES_FOLDER,
+ operationId,
+ responseData.identityId,
+ responseData.v,
+ responseData.r,
+ responseData.s,
+ responseData.vs,
+ );
+ await this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.UPDATE.UPDATE_ADD_SIGNATURE_TO_STORAGE_END,
+ operationId,
+ blockchain,
+ );
+
+ return super.handleAck(command, responseData);
+ }
+
/**
- * Builds default v1_0_0UpdateRequestCommand
+ * Builds default publishRequestCommand
* @param map
* @returns {{add, data: *, delay: *, deadline: *}}
*/
default(map) {
const command = {
- name: 'v1_0_0UpdateRequestCommand',
+ name: 'v1_0_0PublishRequestCommand',
delay: 0,
transactional: false,
};
@@ -39,4 +93,4 @@ class UpdateRequestCommand extends ProtocolRequestCommand {
}
}
-export default UpdateRequestCommand;
+export default PublishRequestCommand;
diff --git a/src/commands/protocols/update/update-assertion-command.js b/src/commands/protocols/update/update-assertion-command.js
new file mode 100644
index 0000000000..cefba1a3e6
--- /dev/null
+++ b/src/commands/protocols/update/update-assertion-command.js
@@ -0,0 +1,91 @@
+import { kcTools } from 'assertion-tools';
+import Command from '../../command.js';
+import {
+ // OPERATION_ID_STATUS,
+ ERROR_TYPE,
+ TRIPLE_STORE_REPOSITORY,
+ TRIPLES_VISIBILITY,
+} from '../../../constants/constants.js';
+
+class UpdateAssertionCommand extends Command {
+ constructor(ctx) {
+ super(ctx);
+ this.operationIdService = ctx.operationIdService;
+ this.ualService = ctx.ualService;
+ this.dataService = ctx.dataService;
+ this.tripleStoreService = ctx.tripleStoreService;
+ this.blockchainModuleManager = ctx.blockchainModuleManager;
+
+ this.errorType = ERROR_TYPE.UPDATE.UPDATE_ASSERTION_ERROR;
+ }
+
+ async execute(command) {
+ const { operationId, ual, blockchain, assertion, firstNewKAIndex, updateStateIndex } =
+ command.data;
+ const validateCurrentData = this.validateCurrentData(ual);
+ if (this.validateCurrentData(validateCurrentData)) {
+ const preUpdateUalNamedGraphs =
+ // Old subjects old ual from select returned here probably {s, g}
+ await this.tripleStoreService.moveToHistoricAndDeleteAssertion(
+ ual,
+ updateStateIndex - 1,
+ );
+
+ await this.tripleStoreService.insertUpdatedKnowledgeCollection(
+ preUpdateUalNamedGraphs,
+ ual,
+ assertion,
+ firstNewKAIndex,
+ );
+ } else {
+ await this.handleError(
+ operationId,
+ blockchain,
+ `Data in current DKG doesn't match pre update data for ${ual}.`,
+ ERROR_TYPE.UPDATE_FINALIZATION.UPDATE_FINALIZATION_NO_OLD_DATA,
+ true,
+ );
+ }
+
+ return Command.empty();
+ }
+
+ // TODO: Move maybe outside of the command into metadata validation command (but it's not metadata)
+ async validateCurrentData(ual) {
+ const { blockchain, contract, knowledgeCollectionId } = this.ualService.resolveUAL(ual);
+ const assertionIds = await this.blockchainModuleManager.getKnowledgeCollectionMerkleRoot(
+ blockchain,
+ contract,
+ knowledgeCollectionId,
+ );
+ const assertionIdOfCurrent = assertionIds[assertionIds.length() - 2];
+
+ const preUpdateAssertion = await this.tripleStoreService.getKnowledgeAssetNamedGraph(
+ TRIPLE_STORE_REPOSITORY.DKG,
+ ual,
+ TRIPLES_VISIBILITY.PUBLIC,
+ );
+
+ const preUpdateMerkleRoot = kcTools.calculateMerkleRoot(preUpdateAssertion);
+
+ return assertionIdOfCurrent === preUpdateMerkleRoot;
+ }
+
+ /**
+ * Builds default updateAssertionCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'updateAssertionCommand',
+ delay: 0,
+ retries: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default UpdateAssertionCommand;
diff --git a/src/commands/protocols/update/update-validate-assertion-metadata-command.js b/src/commands/protocols/update/update-validate-assertion-metadata-command.js
new file mode 100644
index 0000000000..ae2e42ba2e
--- /dev/null
+++ b/src/commands/protocols/update/update-validate-assertion-metadata-command.js
@@ -0,0 +1,33 @@
+import ValidateAssertionMetadataCommand from '../common/validate-assertion-metadata-command.js';
+import { OPERATION_ID_STATUS, ERROR_TYPE } from '../../../constants/constants.js';
+
+class UpdateValidateAssertionMetadataCommand extends ValidateAssertionMetadataCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.operationIdService = ctx.operationIdService;
+
+ this.errorType = ERROR_TYPE.UPDATE.UPDATE_VALIDATE_ASSERTION_METADATA_ERROR;
+ this.operationStartEvent =
+ OPERATION_ID_STATUS.UPDATE_FINALIZATION.UPDATE_FINALIZATION_METADATA_VALIDATION_START;
+ this.operationEndEvent =
+ OPERATION_ID_STATUS.UPDATE_FINALIZATION.UPDATE_FINALIZATION_METADATA_VALIDATION_END;
+ }
+
+ /**
+ * Builds default updateValidateAssertionMetadataCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'updateValidateAssertionMetadataCommand',
+ delay: 0,
+ retries: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+export default UpdateValidateAssertionMetadataCommand;
diff --git a/src/commands/query/query-command.js b/src/commands/query/query-command.js
index 74412a0cf5..d54392d40e 100644
--- a/src/commands/query/query-command.js
+++ b/src/commands/query/query-command.js
@@ -18,44 +18,89 @@ class QueryCommand extends Command {
}
async execute(command) {
- const { queryType, operationId } = command.data;
-
- let { query, repository = TRIPLE_STORE_REPOSITORIES.PRIVATE_CURRENT } = command.data;
-
- let data;
+ const { operationId, query, queryType, repository } = command.data;
await this.operationIdService.updateOperationIdStatus(
operationId,
null,
OPERATION_ID_STATUS.QUERY.QUERY_START,
);
- repository = this.validateRepositoryName(repository);
+
+ let data;
+
+ // TODO: Review federated query logic for V8
+
// check if it's federated query
- const pattern = /SERVICE\s+<([^>]+)>/g;
- const matches = [];
- let match;
- // eslint-disable-next-line no-cond-assign
- while ((match = pattern.exec(query)) !== null) {
- matches.push(match[1]);
- }
- if (matches.length > 0) {
- for (const repositoryInOriginalQuery of matches) {
- const federatedQueryRepositoryName = `http://localhost:9999/blazegraph/namespace/${this.paranetService.getParanetRepositoryName(
- repositoryInOriginalQuery,
- )}/sparql`;
- this.validateRepositoryName(repositoryInOriginalQuery);
- query = query.replace(repositoryInOriginalQuery, federatedQueryRepositoryName);
- }
- }
+ // const pattern = /SERVICE\s+<([^>]+)>/g;
+ // const matches = [];
+ // let match;
+ // // eslint-disable-next-line no-cond-assign
+ // while ((match = pattern.exec(query)) !== null) {
+ // matches.push(match[1]);
+ // }
+ // if (matches.length > 0) {
+ // for (const repositoryInOriginalQuery of matches) {
+ // const federatedQueryRepositoryName = `http://localhost:9999/blazegraph/namespace/${this.paranetService.getParanetRepositoryName(
+ // repositoryInOriginalQuery,
+ // )}/sparql`;
+ // this.validateRepositoryName(repositoryInOriginalQuery);
+ // query = query.replace(repositoryInOriginalQuery, federatedQueryRepositoryName);
+ // }
+ // }
+
try {
switch (queryType) {
case QUERY_TYPES.CONSTRUCT: {
- data = await this.tripleStoreService.construct(repository, query);
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.QUERY.QUERY_CONSTRUCT_QUERY_START,
+ operationId,
+ );
+
+ if (Array.isArray(repository)) {
+ const dataV6 = await this.tripleStoreService.construct(
+ query,
+ repository[0],
+ );
+ const dataV8 = await this.tripleStoreService.construct(
+ query,
+ repository[1],
+ );
+
+ data = this.dataService.removeDuplicateObjectsFromArray([
+ ...dataV6,
+ ...dataV8,
+ ]);
+ } else {
+ data = await this.tripleStoreService.construct(query, repository);
+ }
+
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.QUERY.QUERY_CONSTRUCT_QUERY_END,
+ operationId,
+ );
break;
}
case QUERY_TYPES.SELECT: {
- data = await this.dataService.parseBindings(
- await this.tripleStoreService.select(repository, query),
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.QUERY.QUERY_SELECT_QUERY_START,
+ operationId,
+ );
+
+ if (Array.isArray(repository)) {
+ const dataV6 = await this.tripleStoreService.select(query, repository[0]);
+ const dataV8 = await this.tripleStoreService.select(query, repository[1]);
+
+ data = this.dataService.removeDuplicateObjectsFromArray([
+ ...dataV6,
+ ...dataV8,
+ ]);
+ } else {
+ data = await this.tripleStoreService.select(query, repository);
+ }
+
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.QUERY.QUERY_SELECT_QUERY_END,
+ operationId,
);
break;
}
@@ -63,14 +108,32 @@ class QueryCommand extends Command {
throw new Error(`Unknown query type ${queryType}`);
}
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.QUERY.QUERY_CACHE_OPERATION_ID_DATA_TO_MEMORY_START,
+ operationId,
+ );
+ await this.operationIdService.cacheOperationIdDataToMemory(operationId, data);
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.QUERY.QUERY_CACHE_OPERATION_ID_DATA_TO_MEMORY_END,
+ operationId,
+ );
+
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.QUERY.QUERY_CACHE_OPERATION_ID_DATA_TO_FILE_START,
+ operationId,
+ );
+ await this.operationIdService.cacheOperationIdDataToFile(operationId, data);
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.QUERY.QUERY_CACHE_OPERATION_ID_DATA_TO_FILE_END,
+ operationId,
+ );
+
await this.operationIdService.updateOperationIdStatus(
operationId,
null,
OPERATION_ID_STATUS.QUERY.QUERY_END,
);
- await this.operationIdService.cacheOperationIdData(operationId, data);
-
await this.operationIdService.updateOperationIdStatus(
operationId,
null,
@@ -104,7 +167,7 @@ class QueryCommand extends Command {
}
/**
- * Builds default getInitCommand
+ * Builds default queryCommand
* @param map
* @returns {{add, data: *, delay: *, deadline: *}}
*/
diff --git a/src/constants/constants.js b/src/constants/constants.js
index 7c43e15e3d..0ae75657b0 100644
--- a/src/constants/constants.js
+++ b/src/constants/constants.js
@@ -1,4 +1,5 @@
import { BigNumber, ethers } from 'ethers';
+import { createRequire } from 'module';
export const WS_RPC_PROVIDER_PRIORITY = 2;
@@ -6,6 +7,20 @@ export const HTTP_RPC_PROVIDER_PRIORITY = 1;
export const FALLBACK_PROVIDER_QUORUM = 1;
+export const PUBLISH_BATCH_SIZE = 20;
+
+export const PUBLISH_MIN_NUM_OF_NODE_REPLICATIONS = 3;
+
+export const GET_BATCH_SIZE = 2;
+
+export const GET_MIN_NUM_OF_NODE_REPLICATIONS = 1;
+
+export const FINALITY_BATCH_SIZE = 1;
+
+export const FINALITY_MIN_NUM_OF_NODE_REPLICATIONS = 1;
+
+export const ASK_BATCH_SIZE = 20;
+
export const RPC_PROVIDER_STALL_TIMEOUT = 60 * 1000;
export const UINT256_MAX_BN = ethers.constants.MaxUint256;
@@ -18,6 +33,8 @@ export const UINT40_MAX_BN = BigNumber.from(2).pow(40).sub(1);
export const UINT32_MAX_BN = BigNumber.from(2).pow(32).sub(1);
+export const ONE_ETHER = BigNumber.from('1000000000000000000');
+
export const HASH_RING_SIZE = ethers.constants.MaxUint256;
export const STAKE_UINT256_MULTIPLIER_BN = UINT256_MAX_BN.div(500000000);
@@ -33,7 +50,16 @@ export const ZERO_ADDRESS = ethers.constants.AddressZero;
export const SCHEMA_CONTEXT = 'http://schema.org/';
export const PRIVATE_ASSERTION_PREDICATE =
- 'https://ontology.origintrail.io/dkg/1.0#privateAssertionID';
+ 'https://ontology.origintrail.io/dkg/1.0#privateMerkleRoot';
+
+export const TRIPLE_ANNOTATION_LABEL_PREDICATE = 'https://ontology.origintrail.io/dkg/1.0#label';
+
+export const PRIVATE_RESOURCE_PREDICATE =
+ 'https://ontology.origintrail.io/dkg/1.0#representsPrivateResource';
+
+export const PRIVATE_HASH_SUBJECT_PREFIX = 'https://ontology.origintrail.io/dkg/1.0#metadata-hash:';
+
+export const UAL_PREDICATE = '';
export const COMMIT_BLOCK_DURATION_IN_BLOCKS = 5;
@@ -61,8 +87,22 @@ export const LIBP2P_KEY_DIRECTORY = 'libp2p';
export const LIBP2P_KEY_FILENAME = 'privateKey';
+export const BLS_KEY_DIRECTORY = 'bls';
+
+export const BLS_KEY_FILENAME = 'secretKey';
+
export const TRIPLE_STORE_CONNECT_MAX_RETRIES = 10;
+export const COMMAND_PRIORITY = {
+ HIGHEST: 0,
+ HIGH: 1,
+ MEDIUM: 5,
+ LOW: 10,
+ LOWEST: 20,
+};
+
+export const DEFAULT_COMMAND_PRIORITY = COMMAND_PRIORITY.MEDIUM;
+
export const DEFAULT_BLOCKCHAIN_EVENT_SYNC_PERIOD_IN_MILLS = 15 * 24 * 60 * 60 * 1000; // 15 days
export const MAX_BLOCKCHAIN_EVENT_SYNC_OF_HISTORICAL_BLOCKS_IN_MILLS = 60 * 60 * 1000; // 1 hour
@@ -89,18 +129,27 @@ export const PEER_OFFLINE_LIMIT = 24 * 60 * 60 * 1000;
export const CONTENT_ASSET_HASH_FUNCTION_ID = 1;
+export const CHUNK_BYTE_SIZE = 32;
+
export const PARANET_SYNC_KA_COUNT = 50;
+export const PARANET_SYNC_RETRIES_LIMIT = 3;
+export const PARANET_SYNC_RETRY_DELAY_MS = 60 * 1000;
+
+export const PARANET_ACCESS_POLICY = {
+ OPEN: 0,
+ CURATED: 1,
+};
export const TRIPLE_STORE_REPOSITORIES = {
+ DKG: 'dkg',
PUBLIC_CURRENT: 'publicCurrent',
- PUBLIC_HISTORY: 'publicHistory',
PRIVATE_CURRENT: 'privateCurrent',
- PRIVATE_HISTORY: 'privateHistory',
};
-export const PENDING_STORAGE_REPOSITORIES = {
- PUBLIC: 'public',
- PRIVATE: 'private',
+export const BASE_NAMED_GRAPHS = {
+ UNIFIED: 'unified:graph',
+ HISTORICAL_UNIFIED: 'historical-unified:graph',
+ METADATA: 'metadata:graph',
};
export const REQUIRED_MODULES = [
@@ -110,6 +159,7 @@ export const REQUIRED_MODULES = [
'validation',
'blockchain',
'tripleStore',
+ 'blockchainEventsService',
];
/**
@@ -150,9 +200,9 @@ export const NETWORK_API_BLACK_LIST_TIME_WINDOW_MINUTES = 60;
export const HIGH_TRAFFIC_OPERATIONS_NUMBER_PER_HOUR = 16000;
-export const SHARDING_TABLE_CHECK_COMMAND_FREQUENCY_MINUTES = 30;
+export const SHARDING_TABLE_CHECK_COMMAND_FREQUENCY_MILLS = 10 * 1000; // 10 seconds
-export const PARANET_SYNC_FREQUENCY_MILLS = 5 * 60 * 1000;
+export const PARANET_SYNC_FREQUENCY_MILLS = 1 * 60 * 1000;
export const SEND_TELEMETRY_COMMAND_FREQUENCY_MINUTES = 15;
@@ -173,14 +223,13 @@ export const DIAL_PEERS_CONCURRENCY = 10;
export const MIN_DIAL_FREQUENCY_MILLIS = 60 * 60 * 1000;
export const PERMANENT_COMMANDS = [
+ 'eventListenerCommand',
'otnodeUpdateCommand',
'sendTelemetryCommand',
'shardingTableCheckCommand',
'operationIdCleanerCommand',
'commandsCleanerCommand',
'dialPeersCommand',
- 'epochCheckCommand',
- 'getLatestServiceAgreement',
'blockchainEventCleanerCommand',
'getCleanerCommand',
'getResponseCleanerCommand',
@@ -189,6 +238,7 @@ export const PERMANENT_COMMANDS = [
'updateCleanerCommand',
'updateResponseCleanerCommand',
'startParanetSyncCommands',
+ 'pendingStorageCleanerCommand',
];
export const MAX_COMMAND_DELAY_IN_MILLS = 14400 * 60 * 1000; // 10 days
@@ -198,45 +248,57 @@ export const DEFAULT_COMMAND_REPEAT_INTERVAL_IN_MILLS = 5000; // 5 seconds
export const DEFAULT_COMMAND_DELAY_IN_MILLS = 60 * 1000; // 60 seconds
export const TRANSACTION_PRIORITY = {
+ HIGHEST: 0,
HIGH: 1,
- REGULAR: 2,
+ MEDIUM: 5,
+ LOW: 10,
+ LOWEST: 20,
};
-export const CONTRACT_FUNCTION_PRIORITY = {
- 'submitCommit((address,uint256,bytes,uint8,uint16,uint72,uint72,uint72))':
- TRANSACTION_PRIORITY.REGULAR,
- 'submitCommit((address,uint256,bytes,uint8,uint16))': TRANSACTION_PRIORITY.REGULAR,
- 'submitUpdateCommit((address,uint256,bytes,uint8,uint16,uint72,uint72,uint72))':
- TRANSACTION_PRIORITY.HIGH,
- 'submitUpdateCommit((address,uint256,bytes,uint8,uint16))': TRANSACTION_PRIORITY.HIGH,
- sendProof: TRANSACTION_PRIORITY.REGULAR,
-};
+export const V0_PRIVATE_ASSERTION_PREDICATE =
+ 'https://ontology.origintrail.io/dkg/1.0#privateAssertionID';
-export const COMMAND_RETRIES = {
- SIMPLE_ASSET_SYNC: 1,
- SUBMIT_COMMIT: 5,
- SUBMIT_UPDATE_COMMIT: 5,
- SUBMIT_PROOFS: 5,
+const require = createRequire(import.meta.url);
+
+export const ABIs = {
+ KnowledgeCollection: require('dkg-evm-module/abi/KnowledgeCollection.json'),
+ KnowledgeCollectionStorage: require('dkg-evm-module/abi/KnowledgeCollectionStorage.json'),
+ Staking: require('dkg-evm-module/abi/Staking.json'),
+ Token: require('dkg-evm-module/abi/Token.json'),
+ Hub: require('dkg-evm-module/abi/Hub.json'),
+ IdentityStorage: require('dkg-evm-module/abi/IdentityStorage.json'),
+ ParametersStorage: require('dkg-evm-module/abi/ParametersStorage.json'),
+ Profile: require('dkg-evm-module/abi/Profile.json'),
+ ProfileStorage: require('dkg-evm-module/abi/ProfileStorage.json'),
+ ShardingTable: require('dkg-evm-module/abi/ShardingTable.json'),
+ ShardingTableStorage: require('dkg-evm-module/abi/ShardingTableStorage.json'),
+ ParanetsRegistry: require('dkg-evm-module/abi/ParanetsRegistry.json'),
+ ParanetKnowledgeAssetsRegistry: require('dkg-evm-module/abi/ParanetKnowledgeAssetsRegistry.json'),
+ AskStorage: require('dkg-evm-module/abi/AskStorage.json'),
+ Chronos: require('dkg-evm-module/abi/Chronos.json'),
};
+export const CONTRACT_FUNCTION_PRIORITY = {};
+
+export const COMMAND_RETRIES = {};
+
export const SIMPLE_ASSET_SYNC_PARAMETERS = {
GET_RESULT_POLLING_INTERVAL_MILLIS: 1 * 1000,
GET_RESULT_POLLING_MAX_ATTEMPTS: 30,
};
+export const PARANET_SYNC_PARAMETERS = {
+ GET_RESULT_POLLING_INTERVAL_MILLIS: 1 * 1000,
+ GET_RESULT_POLLING_MAX_ATTEMPTS: 300,
+};
+
export const COMMAND_TX_GAS_INCREASE_FACTORS = {
SUBMIT_COMMIT: 1.2,
SUBMIT_UPDATE_COMMIT: 1.2,
SUBMIT_PROOFS: 1.2,
};
-export const CONTRACT_FUNCTION_GAS_LIMIT_INCREASE_FACTORS = {
- sendProof: 2,
- 'submitCommit((address,uint256,bytes,uint8,uint16))': 2,
- 'submitCommit((address,uint256,bytes,uint8,uint16,uint72,uint72,uint72))': 2,
- 'submitUpdateCommit((address,uint256,bytes,uint8,uint16,uint72,uint72,uint72))': 2,
- 'submitUpdateCommit((address,uint256,bytes,uint8,uint16))': 2,
-};
+export const CONTRACT_FUNCTION_GAS_LIMIT_INCREASE_FACTORS = {};
export const GNOSIS_DEFAULT_GAS_PRICE = {
TESTNET: 25,
@@ -248,11 +310,7 @@ export const NEURO_DEFAULT_GAS_PRICE = {
MAINNET: 8,
};
-export const CONTRACT_FUNCTION_FIXED_GAS_PRICE = {
- 'otp:2043': {
- SUBMIT_UPDATE_COMMIT: 30,
- },
-};
+export const CONTRACT_FUNCTION_FIXED_GAS_PRICE = {};
export const WEBSOCKET_PROVIDER_OPTIONS = {
reconnect: {
@@ -274,7 +332,6 @@ export const TRIPLE_STORE_IMPLEMENTATION = {
export const NETWORK_MESSAGE_TYPES = {
REQUESTS: {
- PROTOCOL_INIT: 'PROTOCOL_INIT',
PROTOCOL_REQUEST: 'PROTOCOL_REQUEST',
},
RESPONSES: {
@@ -284,17 +341,22 @@ export const NETWORK_MESSAGE_TYPES = {
},
};
+export const PARANET_NODES_ACCESS_POLICIES = ['OPEN', 'CURATED'];
+
export const NETWORK_MESSAGE_TIMEOUT_MILLS = {
PUBLISH: {
- INIT: 60 * 1000,
REQUEST: 60 * 1000,
},
UPDATE: {
- INIT: 60 * 1000,
REQUEST: 60 * 1000,
},
GET: {
- INIT: 60 * 1000,
+ REQUEST: 5 * 60 * 1000,
+ },
+ ASK: {
+ REQUEST: 60 * 1000,
+ },
+ FINALITY: {
REQUEST: 60 * 1000,
},
};
@@ -302,19 +364,24 @@ export const NETWORK_MESSAGE_TIMEOUT_MILLS = {
export const MAX_OPEN_SESSIONS = 10;
export const ERROR_TYPE = {
+ EVENT_LISTENER_ERROR: 'EventListenerError',
+ BLOCKCHAIN_EVENT_LISTENER_ERROR: 'BlockchainEventListenerError',
DIAL_PROTOCOL_ERROR: 'DialProtocolError',
VALIDATE_ASSET_ERROR: 'ValidateAssetError',
+ NETWORK_PROTOCOL_ERROR: 'NetworkProtocolError',
PUBLISH: {
PUBLISH_START_ERROR: 'PublishStartError',
PUBLISH_ROUTE_ERROR: 'PublishRouteError',
+ PUBLISH_NETWORK_START_ERROR: 'PublishNetworkStartError',
+ PUBLISH_VALIDATE_ASSET_ERROR: 'PublishValidateAssetError',
PUBLISH_LOCAL_STORE_ERROR: 'PublishLocalStoreError',
PUBLISH_LOCAL_STORE_REMOTE_ERROR: 'PublishLocalStoreRemoteError',
PUBLISH_FIND_NODES_ERROR: 'PublishFindNodesError',
- PUBLISH_STORE_INIT_ERROR: 'PublishStoreInitError',
PUBLISH_STORE_REQUEST_ERROR: 'PublishStoreRequestError',
+ PUBLISH_VALIDATE_ASSERTION_METADATA_ERROR: 'PublishValidateAssertionMetadataError',
PUBLISH_ERROR: 'PublishError',
- PUBLISH_REMOTE_ERROR: 'PublishRemoteError',
},
+ STORE_ASSERTION_ERROR: 'StoreAssertionError',
UPDATE: {
UPDATE_INIT_ERROR: 'UpdateInitError',
UPDATE_REQUEST_ERROR: 'UpdateRequestError',
@@ -326,12 +393,20 @@ export const ERROR_TYPE = {
UPDATE_STORE_INIT_ERROR: 'UpdateStoreInitError',
UPDATE_REMOTE_ERROR: 'UpdateRemoteError',
UPDATE_DELETE_PENDING_STATE_ERROR: 'UpdateDeletePendingStateError',
+ UPDATE_VALIDATE_ASSET_ERROR: 'UpdateValidateAssetError',
+ UPDATE_STORE_REQUEST_ERROR: 'UpdateStoreRequestError',
+ UPDATE_VALIDATE_ASSERTION_METADATA_ERROR: 'UpadateValidateAssertionMetadataError',
+ UPDATE_ASSERTION_ERROR: 'UpdateAssertionError',
+ UPDATE_NETWORK_START_ERROR: 'UpdateNetworkStartError',
},
GET: {
GET_ROUTE_ERROR: 'GetRouteError',
GET_ASSERTION_ID_ERROR: 'GetAssertionIdError',
+ GET_PRIVATE_ASSERTION_ID_ERROR: 'GetPrivateAssertionIdError',
+ GET_VALIDATE_ASSET_ERROR: 'GetValidateAssetError',
GET_LOCAL_ERROR: 'GetLocalError',
GET_NETWORK_ERROR: 'GetNetworkError',
+ GET_CURATED_PARANET_NETWORK_ERROR: 'GetCuratedParanetNetworkError',
GET_START_ERROR: 'GetStartError',
GET_INIT_ERROR: 'GetInitError',
GET_REQUEST_ERROR: 'GetRequestError',
@@ -345,18 +420,6 @@ export const ERROR_TYPE = {
QUERY: {
LOCAL_QUERY_ERROR: 'LocalQueryError',
},
- COMMIT_PROOF: {
- CALCULATE_PROOFS_ERROR: 'CalculateProofsError',
- EPOCH_CHECK_ERROR: 'EpochCheckError',
- BLOCKCHAIN_EPOCH_CHECK_ERROR: 'BlockchainEpochCheckError',
- SIMPLE_ASSET_SYNC_ERROR: 'SimpleAssetSyncError',
- SUBMIT_COMMIT_ERROR: 'SubmitCommitError',
- SUBMIT_COMMIT_SEND_TX_ERROR: 'SubmitCommitSendTxError',
- SUBMIT_PROOFS_ERROR: 'SubmitProofsError',
- SUBMIT_PROOFS_SEND_TX_ERROR: 'SubmitProofsSendTxError',
- SUBMIT_UPDATE_COMMIT_ERROR: 'SubmitUpdateCommitError',
- SUBMIT_UPDATE_COMMIT_SEND_TX_ERROR: 'SubmitUpdateCommitSendTxError',
- },
GET_BID_SUGGESTION: {
UNSUPPORTED_BID_SUGGESTION_RANGE_ERROR: 'UnsupportedBidSuggestionRangeError',
},
@@ -364,6 +427,33 @@ export const ERROR_TYPE = {
START_PARANET_SYNC_ERROR: 'StartParanetSyncError',
PARANET_SYNC_ERROR: 'ParanetSyncError',
},
+ FIND_SHARD: {
+ FIND_SHARD_ERROR: 'FindShardError',
+ PUBLISH_FIND_SHARD_ERROR: 'PublishFindShardError',
+ UPDATE_FIND_SHARD_ERROR: 'UpdateFindShardError',
+ GET_FIND_SHARD_ERROR: 'GetFindShardError',
+ },
+ ASK: {
+ ASK_ERROR: 'AskError',
+ ASK_NETWORK_ERROR: 'AskNetworkError',
+ ASK_REQUEST_ERROR: 'AskRequestError',
+ ASK_REQUEST_REMOTE_ERROR: 'AskRequestRemoteError',
+ ASK_FIND_SHARD_ERROR: 'AskFindShardError',
+ },
+ PUBLISH_FINALIZATION: {
+ PUBLISH_FINALIZATION_NO_CACHED_DATA: 'PublishFinalizationNoCachedData',
+ },
+ UPDATE_FINALIZATION: {
+ UPDATE_FINALIZATION_NO_CACHED_DATA: 'UpdateFinalizationNoCachedData',
+ UPDATE_FINALIZATION_NO_OLD_DATA: 'UpdateFinalizationNoOldData',
+ },
+ FINALITY: {
+ FINALITY_ERROR: 'FinalityError',
+ FINALITY_NETWORK_ERROR: 'FinalityNetworkError',
+ FINALITY_REQUEST_ERROR: 'FinalityRequestError',
+ FINALITY_REQUEST_REMOTE_ERROR: 'FinalityRequestRemoteError',
+ FINALITY_START_ERROR: 'FinalityStartError',
+ },
};
export const OPERATION_ID_STATUS = {
PENDING: 'PENDING',
@@ -371,27 +461,132 @@ export const OPERATION_ID_STATUS = {
COMPLETED: 'COMPLETED',
FIND_NODES_START: 'FIND_NODES_START',
FIND_NODES_END: 'FIND_NODES_END',
- FIND_NODES_LOCAL_START: 'FIND_NODES_LOCAL_START',
- FIND_NODES_LOCAL_END: 'FIND_NODES_LOCAL_END',
+ FIND_NODES_FIND_SHARD_NODES_START: 'FIND_NODES_FIND_SHARD_NODES_START',
+ FIND_NODES_FIND_SHARD_NODES_END: 'FIND_NODES_FIND_SHARD_NODES_END',
+ FIND_CURATED_PARANET_NODES_START: 'FIND_CURATED_PARANET_NODES_START',
+ FIND_CURATED_PARANET_NODES_END: 'FIND_CURATED_PARANET_NODES_END',
+ FIND_NODES_PROCESS_FOUND_NODES_START: 'FIND_NODES_PROCESS_FOUND_NODES_START',
+ FIND_NODES_PROCESS_FOUND_NODES_END: 'FIND_NODES_PROCESS_FOUND_NODES_END',
DIAL_PROTOCOL_START: 'DIAL_PROTOCOL_START',
DIAL_PROTOCOL_END: 'DIAL_PROTOCOL_END',
VALIDATE_ASSET_START: 'VALIDATE_ASSET_START',
VALIDATE_ASSET_END: 'VALIDATE_ASSET_END',
- VALIDATE_ASSET_REMOTE_START: 'VALIDATE_ASSET_REMOTE_START',
- VALIDATE_ASSET_REMOTE_END: 'VALIDATE_ASSET_REMOTE_END',
+ VALIDATE_ASSET_BLOCKCHAIN_START: 'VALIDATE_ASSET_BLOCKCHAIN_START',
+ VALIDATE_ASSET_BLOCKCHAIN_END: 'VALIDATE_ASSET_BLOCKCHAIN_END',
+ NETWORK_PROTOCOL_START: 'NETWORK_PROTOCOL_START',
+ NETWORK_PROTOCOL_END: 'NETWORK_PROTOCOL_END',
+ PROTOCOL_SCHEDULE_MESSAGE_START: 'PROTOCOL_SCHEDULE_MESSAGE_START',
+ PROTOCOL_SCHEDULE_MESSAGE_END: 'PROTOCOL_SCHEDULE_MESSAGE_END',
+ PROTOCOL_PREPARE_MESSAGE_START: 'PROTOCOL_PREPARE_MESSAGE_START',
+ PROTOCOL_PREPARE_MESSAGE_END: 'PROTOCOL_PREPARE_MESSAGE_END',
+ PROTOCOL_SEND_MESSAGE_START: 'PROTOCOL_SEND_MESSAGE_START',
+ PROTOCOL_SEND_MESSAGE_END: 'PROTOCOL_SEND_MESSAGE_END',
+ HANDLE_PROTOCOL_MESSAGE_START: 'HANDLE_PROTOCOL_MESSAGE_START',
+ HANDLE_PROTOCOL_MESSAGE_END: 'HANDLE_PROTOCOL_MESSAGE_END',
+ HANDLE_PROTOCOL_MESSAGE_SEND_MESSAGE_RESPONSE_START:
+ 'HANDLE_PROTOCOL_MESSAGE_SEND_MESSAGE_RESPONSE_START',
+ HANDLE_PROTOCOL_MESSAGE_SEND_MESSAGE_RESPONSE_END:
+ 'HANDLE_PROTOCOL_MESSAGE_SEND_MESSAGE_RESPONSE_END',
+ HANDLE_PROTOCOL_MESSAGE_REMOVE_CACHED_SESSION_START:
+ 'HANDLE_PROTOCOL_MESSAGE_REMOVE_CACHED_SESSION_START',
+ HANDLE_PROTOCOL_MESSAGE_REMOVE_CACHED_SESSION_END:
+ 'HANDLE_PROTOCOL_MESSAGE_REMOVE_CACHED_SESSION_END',
+ HANDLE_PROTOCOL_MESSAGE_PREPARE_MESSAGE_START: 'HANDLE_PROTOCOL_MESSAGE_PREPARE_MESSAGE_START',
+ HANDLE_PROTOCOL_MESSAGE_PREPARE_MESSAGE_END: 'HANDLE_PROTOCOL_MESSAGE_PREPARE_MESSAGE_END',
+ PUBLISH_LOCAL_STORE_REMOTE_SEND_MESSAGE_RESPONSE_START:
+ 'PUBLISH_LOCAL_STORE_REMOTE_SEND_MESSAGE_RESPONSE_START',
+ PUBLISH_LOCAL_STORE_REMOTE_SEND_MESSAGE_RESPONSE_END:
+ 'PUBLISH_LOCAL_STORE_REMOTE_SEND_MESSAGE_RESPONSE_END',
PUBLISH: {
+ PUBLISH_CACHE_OPERATION_ID_DATA_TO_MEMORY_START:
+ 'PUBLISH_CACHE_OPERATION_ID_DATA_TO_MEMORY_START',
+ PUBLISH_CACHE_OPERATION_ID_DATA_TO_MEMORY_END:
+ 'PUBLISH_CACHE_OPERATION_ID_DATA_TO_MEMORY_END',
+ PUBLISH_CACHE_OPERATION_ID_DATA_TO_FILE_START:
+ 'PUBLISH_CACHE_OPERATION_ID_DATA_TO_FILE_START',
+ PUBLISH_CACHE_OPERATION_ID_DATA_TO_FILE_END: 'PUBLISH_CACHE_OPERATION_ID_DATA_TO_FILE_END',
+ PUBLISH_CACHE_DATASET_START: 'PUBLISH_CACHE_DATASET_START',
+ PUBLISH_CACHE_DATASET_END: 'PUBLISH_CACHE_DATASET_END',
+ PUBLISH_GET_CACHED_OPERATION_ID_DATA_START: 'PUBLISH_GET_CACHED_OPERATION_ID_DATA_START',
+ PUBLISH_GET_CACHED_OPERATION_ID_DATA_END: 'PUBLISH_GET_CACHED_OPERATION_ID_DATA_END',
+ PUBLISH_VALIDATE_DATASET_ROOT_START: 'PUBLISH_VALIDATE_DATASET_ROOT_START',
+ PUBLISH_VALIDATE_DATASET_ROOT_END: 'PUBLISH_VALIDATE_DATASET_ROOT_END',
+ PUBLISH_ADD_SIGNATURE_TO_STORAGE_START: 'PUBLISH_ADD_SIGNATURE_TO_STORAGE_START',
+ PUBLISH_ADD_SIGNATURE_TO_STORAGE_END: 'PUBLISH_ADD_SIGNATURE_TO_STORAGE_END',
VALIDATING_PUBLISH_ASSERTION_REMOTE_START: 'VALIDATING_PUBLISH_ASSERTION_REMOTE_START',
VALIDATING_PUBLISH_ASSERTION_REMOTE_END: 'VALIDATING_PUBLISH_ASSERTION_REMOTE_END',
+ PUBLISH_VALIDATE_ASSET_START: 'PUBLISH_VALIDATE_ASSET_START',
+ PUBLISH_VALIDATE_ASSET_END: 'PUBLISH_VALIDATE_ASSET_END',
+ PUBLISH_VALIDATE_ASSET_PARANET_EXISTS_START: 'PUBLISH_VALIDATE_ASSET_PARANET_EXISTS_START',
+ PUBLISH_VALIDATE_ASSET_PARANET_EXISTS_END: 'PUBLISH_VALIDATE_ASSET_PARANET_EXISTS_END',
+ PUBLISH_VALIDATE_ASSET_NODES_ACCESS_POLICY_CHECK_START:
+ 'PUBLISH_VALIDATE_ASSET_NODES_ACCESS_POLICY_CHECK_START',
+ PUBLISH_VALIDATE_ASSET_NODES_ACCESS_POLICY_CHECK_END:
+ 'PUBLISH_VALIDATE_ASSET_NODES_ACCESS_POLICY_CHECK_END',
INSERTING_ASSERTION: 'INSERTING_ASSERTION',
PUBLISHING_ASSERTION: 'PUBLISHING_ASSERTION',
PUBLISH_START: 'PUBLISH_START',
PUBLISH_INIT_START: 'PUBLISH_INIT_START',
PUBLISH_INIT_END: 'PUBLISH_INIT_END',
- PUBLISH_LOCAL_STORE_START: 'PUBLISH_LOCAL_STORE_START',
- PUBLISH_LOCAL_STORE_END: 'PUBLISH_LOCAL_STORE_END',
+ PUBLISH_LOCAL_STORE_REMOTE_CACHE_DATASET_START:
+ 'PUBLISH_LOCAL_STORE_REMOTE_CACHE_DATASET_START',
+ PUBLISH_LOCAL_STORE_REMOTE_CACHE_DATASET_END:
+ 'PUBLISH_LOCAL_STORE_REMOTE_CACHE_DATASET_END',
+ PUBLISH_LOCAL_STORE_REMOTE_SIGN_START: 'PUBLISH_LOCAL_STORE_REMOTE_SIGN_START',
+ PUBLISH_LOCAL_STORE_REMOTE_SIGN_END: 'PUBLISH_LOCAL_STORE_REMOTE_SIGN_END',
PUBLISH_REPLICATE_START: 'PUBLISH_REPLICATE_START',
PUBLISH_REPLICATE_END: 'PUBLISH_REPLICATE_END',
+ PUBLISH_FIND_NODES_START: 'PUBLISH_FIND_NODES_START',
+ PUBLISH_FIND_NODES_END: 'PUBLISH_FIND_NODES_END',
+ PUBLISH_FIND_NODES_FIND_SHARD_NODES_START: 'PUBLISH_FIND_NODES_FIND_SHARD_NODES_START',
+ PUBLISH_FIND_NODES_FIND_SHARD_NODES_END: 'PUBLISH_FIND_NODES_FIND_SHARD_NODES_END',
+ PUBLISH_FIND_NODES_PROCESS_FOUND_NODES_START:
+ 'PUBLISH_FIND_NODES_PROCESS_FOUND_NODES_START',
+ PUBLISH_FIND_NODES_PROCESS_FOUND_NODES_END: 'PUBLISH_FIND_NODES_PROCESS_FOUND_NODES_END',
PUBLISH_END: 'PUBLISH_END',
+ PUBLISH_NETWORK_START: 'NETWORK_PUBLISH_START',
+ PUBLISH_NETWORK_END: 'NETWORK_PUBLISH_END',
+ PUBLISH_REQUEST_START: 'PUBLISH_REQUEST_START',
+ PUBLISH_REQUEST_END: 'PUBLISH_REQUEST_END',
+ PUBLISH_REQUEST_PREPARE_MESSAGE_START: 'PUBLISH_REQUEST_PREPARE_MESSAGE_START',
+ PUBLISH_REQUEST_PREPARE_MESSAGE_END: 'PUBLISH_REQUEST_PREPARE_MESSAGE_END',
+ PUBLISH_SEND_MESSAGE_START: 'PUBLISH_SEND_MESSAGE_START',
+ PUBLISH_SEND_MESSAGE_END: 'PUBLISH_SEND_MESSAGE_END',
+ PUBLISH_LOCAL_STORE_REMOTE_START: 'PUBLISH_LOCAL_STORE_REMOTE_START',
+ PUBLISH_LOCAL_STORE_REMOTE_END: 'PUBLISH_LOCAL_STORE_REMOTE_END',
+ PUBLISH_VALIDATE_ASSET_REMOTE_START: 'VALIDATE_ASSET_REMOTE_START',
+ PUBLISH_VALIDATE_ASSET_REMOTE_END: 'VALIDATE_ASSET_REMOTE_END',
+ PUBLISH_LOCAL_STORE_REMOTE_SEND_RESPONSE_START:
+ 'PUBLISH_LOCAL_STORE_REMOTE_SEND_RESPONSE_START',
+ PUBLISH_LOCAL_STORE_REMOTE_SEND_RESPONSE_END:
+ 'PUBLISH_LOCAL_STORE_REMOTE_SEND_RESPONSE_END',
+ PUBLISH_LOCAL_STORE_REMOTE_REMOVE_CACHED_SESSION_START:
+ 'PUBLISH_LOCAL_STORE_REMOTE_REMOVE_CACHED_SESSION_START',
+ PUBLISH_LOCAL_STORE_REMOTE_REMOVE_CACHED_SESSION_END:
+ 'PUBLISH_LOCAL_STORE_REMOTE_REMOVE_CACHED_SESSION_END',
+ PUBLISH_LOCAL_STORE_REMOTE_PREPARE_MESSAGE_START:
+ 'PUBLISH_LOCAL_STORE_REMOTE_PREPARE_MESSAGE_START',
+ PUBLISH_LOCAL_STORE_REMOTE_PREPARE_MESSAGE_END:
+ 'PUBLISH_LOCAL_STORE_REMOTE_PREPARE_MESSAGE_END',
+ },
+ PUBLISH_FINALIZATION: {
+ PUBLISH_FINALIZATION_START: 'PUBLISH_FINALIZATION_START',
+ PUBLISH_FINALIZATION_METADATA_VALIDATION_START:
+ 'PUBLISH_FINALIZATION_METADATA_VALIDATION_START',
+ PUBLISH_FINALIZATION_METADATA_VALIDATION_END:
+ 'PUBLISH_FINALIZATION_METADATA_VALIDATION_END',
+ PUBLISH_FINALIZATION_STORE_ASSERTION_START: 'PUBLISH_FINALIZATION_STORE_ASSERTION_START',
+ PUBLISH_FINALIZATION_STORE_ASSERTION_END: 'PUBLISH_FINALIZATION_STORE_ASSERTION_END',
+ PUBLISH_FINALIZATION_END: 'PUBLISH_FINALIZATION_END',
+ },
+ UPDATE_FINALIZATION: {
+ UPDATE_FINALIZATION_START: 'UPDATE_FINALIZATION_START',
+ UPDATE_FINALIZATION_METADATA_VALIDATION_START:
+ 'UPDATE_FINALIZATION_METADATA_VALIDATION_START',
+ UPDATE_FINALIZATION_METADATA_VALIDATION_END: 'UPDATE_FINALIZATION_METADATA_VALIDATION_END',
+ UPDATE_FINALIZATION_STORE_ASSERTION_START: 'UPDATE_FINALIZATION_STORE_ASSERTION_START',
+ UPDATE_FINALIZATION_STORE_ASSERTION_END: 'UPDATE_FINALIZATION_STORE_ASSERTION_END',
+ UPDATE_FINALIZATION_END: 'UPDATE_FINALIZATION_END',
},
UPDATE: {
UPDATE_START: 'UPDATE_START',
@@ -399,9 +594,52 @@ export const OPERATION_ID_STATUS = {
UPDATE_INIT_END: 'UPDATE_INIT_END',
UPDATE_REPLICATE_START: 'UPDATE_REPLICATE_START',
UPDATE_REPLICATE_END: 'UPDATE_REPLICATE_END',
+ UPDATE_FIND_NODES_START: 'UPDATE_FIND_NODES_START',
+ UPDATE_FIND_NODES_END: 'UPDATE_FIND_NODES_END',
+ UPDATE_FIND_NODES_FIND_SHARD_NODES_START: 'UPDATE_FIND_NODES_FIND_SHARD_NODES_START',
+ UPDATE_FIND_NODES_FIND_SHARD_NODES_END: 'UPDATE_FIND_NODES_FIND_SHARD_NODES_END',
+ UPDATE_FIND_NODES_PROCESS_FOUND_NODES_START: 'UPDATE_FIND_NODES_PROCESS_FOUND_NODES_START',
+ UPDATE_FIND_NODES_PROCESS_FOUND_NODES_END: 'UPDATE_FIND_NODES_PROCESS_FOUND_NODES_END',
VALIDATING_UPDATE_ASSERTION_REMOTE_START: 'VALIDATING_UPDATE_ASSERTION_REMOTE_START',
VALIDATING_UPDATE_ASSERTION_REMOTE_END: 'VALIDATING_UPDATE_ASSERTION_REMOTE_END',
UPDATE_END: 'UPDATE_END',
+ UPDATE_VALIDATE_ASSET_START: 'UPDATE_VALIDATE_ASSET_START',
+ UPDATE_VALIDATE_ASSET_END: 'UPDATE_VALIDATE_ASSET_END',
+ UPDATE_GET_CACHED_OPERATION_ID_DATA_START: 'UPDATE_GET_CACHED_OPERATION_ID_DATA_START',
+ UPDATE_GET_CACHED_OPERATION_ID_DATA_END: 'UPDATE_GET_CACHED_OPERATION_ID_DATA_END',
+ UPDATE_VALIDATE_DATASET_ROOT_START: 'UPDATE_VALIDATE_DATASET_ROOT_START',
+ UPDATE_VALIDATE_DATASET_ROOT_END: 'UPDATE_VALIDATE_DATASET_ROOT_END',
+ UPDATE_NETWORK_START_ERROR: 'UPDATE_NETWORK_START_ERROR',
+ UPDATE_NETWORK_START: 'UPDATE_NETWORK_START',
+ UPDATE_NETWORK_END: 'UPDATE_NETWORK_END',
+ UPDATE_REQUEST_START: 'UPDATE_REQUEST_START',
+ UPDATE_REQUEST_END: 'UPDATE_REQUEST_END',
+ UPDATE_REQUEST_PREPARE_MESSAGE_START: 'UPDATE_REQUEST_PREPARE_MESSAGE_START',
+ UPDATE_REQUEST_PREPARE_MESSAGE_END: 'UPDATE_REQUEST_PREPARE_MESSAGE_END',
+ UPDATE_SEND_MESSAGE_START: 'UPDATE_SEND_MESSAGE_START',
+ UPDATE_SEND_MESSAGE_END: 'UPDATE_SEND_MESSAGE_END',
+ UPDATE_ADD_SIGNATURE_TO_STORAGE_START: 'UPDATE_ADD_SIGNATURE_TO_STORAGE_START',
+ UPDATE_ADD_SIGNATURE_TO_STORAGE_END: 'UPDATE_ADD_SIGNATURE_TO_STORAGE_END',
+ UPDATE_LOCAL_STORE_REMOTE_START: 'UPDATE_LOCAL_STORE_REMOTE_START',
+ UPDATE_LOCAL_STORE_REMOTE_END: 'UPDATE_LOCAL_STORE_REMOTE_END',
+ UPDATE_LOCAL_STORE_REMOTE_PREPARE_MESSAGE_START:
+ 'UPDATE_LOCAL_STORE_REMOTE_PREPARE_MESSAGE_START',
+ UPDATE_LOCAL_STORE_REMOTE_PREPARE_MESSAGE_END:
+ 'UPDATE_LOCAL_STORE_REMOTE_PREPARE_MESSAGE_END',
+ UPDATE_LOCAL_STORE_REMOTE_SEND_RESPONSE_START:
+ 'UPDATE_LOCAL_STORE_REMOTE_SEND_RESPONSE_START',
+ UPDATE_LOCAL_STORE_REMOTE_SEND_RESPONSE_END: 'UPDATE_LOCAL_STORE_REMOTE_SEND_RESPONSE_END',
+ UPDATE_LOCAL_STORE_REMOTE_REMOVE_CACHED_SESSION_START:
+ 'UPDATE_LOCAL_STORE_REMOTE_REMOVE_CACHED_SESSION_START',
+ UPDATE_LOCAL_STORE_REMOTE_REMOVE_CACHED_SESSION_END:
+ 'UPDATE_LOCAL_STORE_REMOTE_REMOVE_CACHED_SESSION_END',
+ UPDATE_VALIDATE_ASSET_REMOTE_START: 'UPDATE_VALIDATE_ASSET_REMOTE_START',
+ UPDATE_VALIDATE_ASSET_REMOTE_END: 'UPDATE_VALIDATE_ASSET_REMOTE_END',
+ UPDATE_LOCAL_STORE_REMOTE_CACHE_DATASET_START:
+ 'UPDATE_LOCAL_STORE_REMOTE_CACHE_DATASET_START',
+ UPDATE_LOCAL_STORE_REMOTE_CACHE_DATASET_END: 'UPDATE_LOCAL_STORE_REMOTE_CACHE_DATASET_END',
+ UPDATE_LOCAL_STORE_REMOTE_SIGN_START: 'UPDATE_LOCAL_STORE_REMOTE_SIGN_START',
+ UPDATE_LOCAL_STORE_REMOTE_SIGN_END: 'UPDATE_LOCAL_STORE_REMOTE_SIGN_END',
},
GET: {
ASSERTION_EXISTS_LOCAL_START: 'ASSERTION_EXISTS_LOCAL_START',
@@ -409,52 +647,154 @@ export const OPERATION_ID_STATUS = {
GET_START: 'GET_START',
GET_INIT_START: 'GET_INIT_START',
GET_INIT_END: 'GET_INIT_END',
+ GET_VALIDATE_ASSET_START: 'GET_VALIDATE_ASSET_START',
+ GET_VALIDATE_ASSET_END: 'GET_VALIDATE_ASSET_END',
GET_LOCAL_START: 'GET_LOCAL_START',
GET_LOCAL_END: 'GET_LOCAL_END',
GET_REMOTE_START: 'GET_REMOTE_START',
GET_REMOTE_END: 'GET_REMOTE_END',
GET_FETCH_FROM_NODES_START: 'GET_FETCH_FROM_NODES_START',
GET_FETCH_FROM_NODES_END: 'GET_FETCH_FROM_NODES_END',
+ GET_FIND_NODES_START: 'GET_FIND_NODES_START',
+ GET_FIND_NODES_END: 'PUBLISH_FIND_NODES_END',
+ GET_FIND_NODES_FIND_SHARD_NODES_START: 'GET_FIND_NODES_FIND_SHARD_NODES_START',
+ GET_FIND_NODES_FIND_SHARD_NODES_END: 'GET_FIND_NODES_FIND_SHARD_NODES_END',
+ GET_NETWORK_START: 'GET_NETWORK_START',
+ GET_NETWORK_END: 'GET_NETWORK_END',
+ GET_VALIDATE_UAL_START: 'GET_VALIDATE_UAL_START',
+ GET_VALIDATE_UAL_END: 'GET_VALIDATE_UAL_END',
+ GET_LOCAL_GET_ASSERTION_START: 'GET_LOCAL_GET_ASSERTION_START',
+ GET_LOCAL_GET_ASSERTION_END: 'GET_LOCAL_GET_ASSERTION_END',
+ GET_LOCAL_GET_ASSERTION_METADATA_START: 'GET_LOCAL_GET_ASSERTION_METADATA_START',
+ GET_LOCAL_GET_ASSERTION_METADATA_END: 'GET_LOCAL_GET_ASSERTION_METADATA_END',
+ GET_REQUEST_START: 'GET_REQUEST_START',
+ GET_REQUEST_END: 'GET_REQUEST_END',
+ GET_REQUEST_SEND_MESSAGE_START: 'GET_REQUEST_SEND_MESSAGE_START',
+ GET_REQUEST_SEND_MESSAGE_END: 'GET_REQUEST_SEND_MESSAGE_END',
+ GET_REQUEST_PREPARE_MESSAGE_START: 'GET_REQUEST_PREPARE_MESSAGE_START',
+ GET_REQUEST_PREPARE_MESSAGE_END: 'GET_REQUEST_PREPARE_MESSAGE_END',
+ GET_REMOTE_PREPARE_MESSAGE_START: 'GET_REMOTE_PREPARE_MESSAGE_START',
+ GET_REMOTE_PREPARE_MESSAGE_END: 'GET_REMOTE_PREPARE_MESSAGE_END',
+ GET_REMOTE_GET_ASSERTION_START: 'GET_REMOTE_GET_ASSERTION_START',
+ GET_REMOTE_GET_ASSERTION_END: 'GET_REMOTE_GET_ASSERTION_END',
+ GET_REMOTE_GET_ASSERTION_METADATA_START: 'GET_REMOTE_GET_ASSERTION_METADATA_START',
+ GET_REMOTE_GET_ASSERTION_METADATA_END: 'GET_REMOTE_GET_ASSERTION_METADATA_END',
+ GET_REMOTE_SEND_MESSAGE_START: 'GET_REMOTE_SEND_MESSAGE_START',
+ GET_REMOTE_SEND_MESSAGE_END: 'GET_REMOTE_SEND_MESSAGE_END',
+ GET_REMOTE_REMOVE_CACHED_SESSION_START: 'GET_REMOTE_REMOVE_CACHED_SESSION_START',
+ GET_REMOTE_REMOVE_CACHED_SESSION_END: 'GET_REMOTE_REMOVE_CACHED_SESSION_END',
+ GET_FIND_NODES_PROCESS_FOUND_NODES_START: 'GET_FIND_NODES_PROCESS_FOUND_NODES_START',
+ GET_FIND_NODES_PROCESS_FOUND_NODES_END: 'GET_FIND_NODES_PROCESS_FOUND_NODES_END',
GET_END: 'GET_END',
},
- COMMIT_PROOF: {
- EPOCH_CHECK_START: 'EPOCH_CHECK_START',
- EPOCH_CHECK_END: 'EPOCH_CHECK_END',
- SIMPLE_ASSET_SYNC_START: 'SIMPLE_ASSET_SYNC_START',
- SIMPLE_ASSET_SYNC_END: 'SIMPLE_ASSET_SYNC_END',
- SUBMIT_COMMIT_START: 'SUBMIT_COMMIT_START',
- SUBMIT_COMMIT_END: 'SUBMIT_COMMIT_END',
- SUBMIT_COMMIT_SEND_TX_START: 'SUBMIT_COMMIT_SEND_TX_START',
- SUBMIT_COMMIT_SEND_TX_END: 'SUBMIT_COMMIT_SEND_TX_END',
- CALCULATE_PROOFS_START: 'CALCULATE_PROOFS_START',
- CALCULATE_PROOFS_END: 'CALCULATE_PROOFS_END',
- SUBMIT_PROOFS_START: 'SUBMIT_PROOFS_START',
- SUBMIT_PROOFS_END: 'SUBMIT_PROOFS_END',
- SUBMIT_PROOFS_SEND_TX_START: 'SUBMIT_PROOFS_START',
- SUBMIT_PROOFS_SEND_TX_END: 'SUBMIT_PROOFS_END',
- SUBMIT_UPDATE_COMMIT_START: 'SUBMIT_UPDATE_COMMIT_START',
- SUBMIT_UPDATE_COMMIT_END: 'SUBMIT_UPDATE_COMMIT_END',
- SUBMIT_UPDATE_COMMIT_SEND_TX_START: 'SUBMIT_UPDATE_COMMIT_START',
- SUBMIT_UPDATE_COMMIT_SEND_TX_END: 'SUBMIT_UPDATE_COMMIT_END',
- },
QUERY: {
QUERY_INIT_START: 'QUERY_INIT_START',
QUERY_INIT_END: 'QUERY_INIT_END',
QUERY_START: 'QUERY_START',
QUERY_END: 'QUERY_END',
+ QUERY_CONSTRUCT_QUERY_START: 'QUERY_CONTRCUT_QUERY_START',
+ QUERY_CONSTRUCT_QUERY_END: 'QUERY_CONTRCUT_QUERY_END',
+ QUERY_SELECT_QUERY_START: 'QUERY_SELECT_QUERY_START',
+ QUERY_SELECT_QUERY_END: 'QUERY_SELECT_QUERY_END',
+ QUERY_CACHE_OPERATION_ID_DATA_TO_MEMORY_START:
+ 'QUERY_CACHE_OPERATION_ID_DATA_TO_MEMORY_START',
+ QUERY_CACHE_OPERATION_ID_DATA_TO_MEMORY_END: 'QUERY_CACHE_OPERATION_ID_DATA_TO_MEMORY_END',
+ QUERY_CACHE_OPERATION_ID_DATA_TO_FILE_START: 'QUERY_CACHE_OPERATION_ID_DATA_TO_FILE_START',
+ QUERY_CACHE_OPERATION_ID_DATA_TO_FILE_END: 'QUERY_CACHE_OPERATION_ID_DATA_TO_FILE_END',
},
LOCAL_STORE: {
LOCAL_STORE_INIT_START: 'LOCAL_STORE_INIT_START',
LOCAL_STORE_INIT_END: 'LOCAL_STORE_INIT_END',
LOCAL_STORE_START: 'LOCAL_STORE_START',
LOCAL_STORE_END: 'LOCAL_STORE_END',
+ LOCAL_STORE_GET_CACHED_OPERATION_ID_DATA_START:
+ 'LOCAL_STORE_GET_CACHED_OPERATION_ID_DATA_START',
+ LOCAL_STORE_GET_CACHED_OPERATION_ID_DATA_END:
+ 'LOCAL_STORE_GET_CACHED_OPERATION_ID_DATA_END',
+ LOCAL_STORE_PROCESS_RESPONSE_START: 'LOCAL_STORE_PROCESS_RESPONSE_START',
+ LOCAL_STORE_PROCESS_RESPONSE_END: 'LOCAL_STORE_PROCESS_RESPONSE_END',
+ LOCAL_STORE_GET_PARANET_METADATA_START: 'LOCAL_STORE_GET_PARANET_METADATA_START',
+ LOCAL_STORE_GET_PARANET_METADATA_END: 'LOCAL_STORE_GET_PARANET_METADATA_END',
+ LOCAL_STORE_INITIALIZE_PARANET_REPOSITORY_START:
+ 'LOCAL_STORE_INITIALIZE_PARANET_REPOSITORY_START',
+ LOCAL_STORE_INITIALIZE_PARANET_REPOSITORY_END:
+ 'LOCAL_STORE_INITIALIZE_PARANET_REPOSITORY_END',
+ LOCAL_STORE_INITIALIZE_PARANET_RECORD_START: 'LOCAL_STORE_INITIALIZE_PARANET_RECORD_START',
+ LOCAL_STORE_INITIALIZE_PARANET_RECORD_END: 'LOCAL_STORE_INITIALIZE_PARANET_RECORD_END',
+ LOCAL_STORE_INCREMENT_PARANET_KA_COUNT_START:
+ 'LOCAL_STORE_INCREMENT_PARANET_KA_COUNT_START',
+ LOCAL_STORE_INCREMENT_PARANET_KA_COUNT_END: 'LOCAL_STORE_INCREMENT_PARANET_KA_COUNT_END',
+ },
+ PARANET: {
+ PARANET_SYNC_START: 'PARANET_SYNC_START',
+ PARANET_SYNC_END: 'PARANET_SYNC_END',
+ PARANET_SYNC_MISSED_KAS_SYNC_START: 'PARANET_SYNC_MISSED_KAS_SYNC_START',
+ PARANET_SYNC_MISSED_KAS_SYNC_END: 'PARANET_SYNC_MISSED_KAS_SYNC_END',
+ PARANET_SYNC_NEW_KAS_SYNC_START: 'PARANET_SYNC_NEW_KAS_SYNC_START',
+ PARANET_SYNC_NEW_KAS_SYNC_END: 'PARANET_SYNC_NEW_KAS_SYNC_END',
+ },
+ ASK: {
+ ASK_START: 'ASK_START',
+ ASK_END: 'ASK_END',
+ ASK_REMOTE_START: 'ASK_REMOTE_START',
+ ASK_REMOTE_END: 'ASK_REMOTE_START',
+ ASK_REMOTE_PREPARE_MESSAGE_START: 'ASK_REMOTE_PREPARE_MESSAGE_START',
+ ASK_REMOTE_PREPARE_MESSAGE_END: 'ASK_REMOTE_PREPARE_MESSAGE_END',
+ ASK_REMOTE_SEND_MESSAGE_START: 'ASK_REMOTE_SEND_MESSAGE_START',
+ ASK_REMOTE_SEND_MESSAGE_END: 'ASK_REMOTE_SEND_MESSAGE_END',
+ ASK_REMOTE_REMOVE_CACHED_SESSION_START: 'ASK_REMOTE_REMOVE_CACHED_SESSION_START',
+ ASK_REMOTE_REMOVE_CACHED_SESSION_END: 'ASK_REMOTE_REMOVE_CACHED_SESSION_END',
+ ASK_FIND_NODES_START: 'ASK_FIND_NODES_START',
+ ASK_FIND_NODES_END: 'ASK_FIND_NODES_END',
+ ASK_FIND_NODES_FIND_SHARD_NODES_START: 'ASK_FIND_NODES_FIND_SHARD_NODES_START',
+ ASK_FIND_NODES_FIND_SHARD_NODES_END: 'ASK_FIND_NODES_FIND_SHARD_NODES_END',
+ ASK_FIND_NODES_PROCESS_FOUND_NODES_START: 'ASK_FIND_NODES_PROCESS_FOUND_NODES_START',
+ ASK_FIND_NODES_PROCESS_FOUND_NODES_END: 'ASK_FIND_NODES_PROCESS_FOUND_NODES_END',
+ ASK_FETCH_FROM_NODES_START: 'ASK_FETCH_FROM_NODES_START',
+ ASK_FETCH_FROM_NODES_END: 'ASK_FETCH_FROM_NODES_END',
+ ASK_NETWORK_START: 'ASK_NETWORK_START',
+ ASK_NETWORK_END: 'ASK_NETWORK_END',
+ ASK_REQUEST_START: 'ASK_REQUEST_START',
+ ASK_REQUEST_END: 'ASK_REQUEST_END',
+ ASK_REQUEST_PREPARE_MESSAGE_START: 'ASK_REQUEST_PREPARE_MESSAGE_START',
+ ASK_REQUEST_PREPARE_MESSAGE_END: 'ASK_REQUEST_PREPARE_MESSAGE_END',
+ ASK_REQUEST_SEND_MESSAGE_START: 'ASK_REQUEST_SEND_MESSAGE_START',
+ ASK_REQUEST_SEND_MESSAGE_END: 'ASK_REQUEST_SEND_MESSAGE_END',
+ },
+ FINALITY: {
+ FINALITY_START: 'FINALITY_START',
+ FINALITY_END: 'FINALITY_END',
+ FINALITY_REMOTE_START: 'FINALITY_REMOTE_START',
+ FINALITY_REMOTE_END: 'FINALITY_REMOTE_START',
+ FINALITY_REMOTE_PREPARE_MESSAGE_START: 'FINALITY_REMOTE_PREPARE_MESSAGE_START',
+ FINALITY_REMOTE_PREPARE_MESSAGE_END: 'FINALITY_REMOTE_PREPARE_MESSAGE_END',
+ FINALITY_REMOTE_SEND_MESSAGE_START: 'FINALITY_REMOTE_SEND_MESSAGE_START',
+ FINALITY_REMOTE_SEND_MESSAGE_END: 'FINALITY_REMOTE_SEND_MESSAGE_END',
+ FINALITY_REMOTE_REMOVE_CACHED_SESSION_START: 'FINALITY_REMOTE_REMOVE_CACHED_SESSION_START',
+ FINALITY_REMOTE_REMOVE_CACHED_SESSION_END: 'FINALITY_REMOTE_REMOVE_CACHED_SESSION_END',
+ FINALITY_REPLICATE_START: 'FINALITY_REPLICATE_START',
+ FINALITY_REPLICATE_END: 'FINALITY_REPLICATE_END',
+ FINALITY_FETCH_FROM_NODES_START: 'FINALITY_FETCH_FROM_NODES_START',
+ FINALITY_FETCH_FROM_NODES_END: 'FINALITY_FETCH_FROM_NODES_END',
+ FINALITY_REQUEST_START: 'FINALITY_REQUEST_START',
+ FINALITY_REQUEST_END: 'FINALITY_REQUEST_END',
+ FINALITY_REQUEST_PREPARE_MESSAGE_START: 'FINALITY_REQUEST_PREPARE_MESSAGE_START',
+ FINALITY_REQUEST_PREPARE_MESSAGE_END: 'FINALITY_REQUEST_PREPARE_MESSAGE_END',
+ FINALITY_REQUEST_SEND_MESSAGE_START: 'FINALITY_REQUEST_SEND_MESSAGE_START',
+ FINALITY_REQUEST_SEND_MESSAGE_END: 'FINALITY_REQUEST_SEND_MESSAGE_END',
+ PUBLISH_FINALITY_REMOTE_START: 'PUBLISH_FINALITY_REMOTE_START',
+ PUBLISH_FINALITY_REMOTE_END: 'PUBLISH_FINALITY_REMOTE_END',
+ PUBLISH_FINALITY_END: 'PUBLISH_FINALITY_END',
+ PUBLISH_FINALITY_FETCH_FROM_NODES_END: 'PUBLISH_FINALITY_FETCH_FROM_NODES_END',
},
};
export const OPERATIONS = {
PUBLISH: 'publish',
- UPDATE: 'update',
+ FINALITY: 'finality',
+ // UPDATE: 'update',
GET: 'get',
+ ASK: 'ask',
};
export const SERVICE_AGREEMENT_START_TIME_DELAY_FOR_COMMITS_SECONDS = {
@@ -472,7 +812,6 @@ export const EXPECTED_TRANSACTION_ERRORS = {
TOO_LOW_PRIORITY: 'TooLowPriority',
NODE_ALREADY_REWARDED: 'NodeAlreadyRewarded',
SERVICE_AGREEMENT_DOESNT_EXIST: 'ServiceAgreementDoesntExist',
- INVALID_PROXIMITY_SCORE_FUNCTIONS_PAIR_ID: 'InvalidProximityScoreFunctionsPairId',
INVALID_SCORE_FUNCTION_ID: 'InvalidScoreFunctionId',
COMMIT_WINDOW_CLOSED: 'CommitWindowClosed',
NODE_NOT_IN_SHARDING_TABLE: 'NodeNotInShardingTable',
@@ -491,35 +830,40 @@ export const OPERATION_ID_COMMAND_CLEANUP_TIME_MILLS = 24 * 60 * 60 * 1000;
* @constant {number} FINALIZED_COMMAND_CLEANUP_TIME_MILLS - Command cleanup interval time
* finalized commands command cleanup interval time 24h
*/
+
+export const PUBLISH_STORAGE_MEMORY_CLEANUP_COMMAND_CLEANUP_TIME_MILLS = 4 * 60 * 60 * 1000;
+export const PUBLISH_STORAGE_FILE_CLEANUP_COMMAND_CLEANUP_TIME_MILLS = 24 * 60 * 60 * 1000;
+
export const FINALIZED_COMMAND_CLEANUP_TIME_MILLS = 24 * 60 * 60 * 1000;
export const GET_CLEANUP_TIME_MILLS = 24 * 60 * 60 * 1000;
-
export const GET_CLEANUP_TIME_DELAY = 24 * 60 * 60 * 1000;
-
export const GET_RESPONSE_CLEANUP_TIME_MILLS = 24 * 60 * 60 * 1000;
-
export const GET_RESPONSE_CLEANUP_TIME_DELAY = 24 * 60 * 60 * 1000;
export const PUBLISH_CLEANUP_TIME_MILLS = 24 * 60 * 60 * 1000;
-
export const PUBLISH_CLEANUP_TIME_DELAY = 24 * 60 * 60 * 1000;
-
export const PUBLISH_RESPONSE_CLEANUP_TIME_MILLS = 24 * 60 * 60 * 1000;
-
export const PUBLISH_RESPONSE_CLEANUP_TIME_DELAY = 24 * 60 * 60 * 1000;
export const UPDATE_CLEANUP_TIME_MILLS = 24 * 60 * 60 * 1000;
-
export const UPDATE_CLEANUP_TIME_DELAY = 24 * 60 * 60 * 1000;
-
export const UPDATE_RESPONSE_CLEANUP_TIME_MILLS = 24 * 60 * 60 * 1000;
-
export const UPDATE_RESPONSE_CLEANUP_TIME_DELAY = 24 * 60 * 60 * 1000;
-export const PROCESSED_BLOCKCHAIN_EVENTS_CLEANUP_TIME_MILLS = 24 * 60 * 60 * 1000;
+export const ASK_CLEANUP_TIME_MILLS = 24 * 60 * 60 * 1000;
+export const ASK_CLEANUP_TIME_DELAY = 24 * 60 * 60 * 1000;
+export const ASK_RESPONSE_CLEANUP_TIME_MILLS = 24 * 60 * 60 * 1000;
+export const ASK_RESPONSE_CLEANUP_TIME_DELAY = 24 * 60 * 60 * 1000;
+
+export const FINALITY_CLEANUP_TIME_MILLS = 24 * 60 * 60 * 1000;
+export const FINALITY_CLEANUP_TIME_DELAY = 24 * 60 * 60 * 1000;
+export const FINALITY_RESPONSE_CLEANUP_TIME_MILLS = 24 * 60 * 60 * 1000;
+export const FINALITY_RESPONSE_CLEANUP_TIME_DELAY = 24 * 60 * 60 * 1000;
+export const PROCESSED_BLOCKCHAIN_EVENTS_CLEANUP_TIME_MILLS = 24 * 60 * 60 * 1000;
export const PROCESSED_BLOCKCHAIN_EVENTS_CLEANUP_TIME_DELAY = 24 * 60 * 60 * 1000;
+
/**
* @constant {number} COMMAND_STATUS -
* Status for commands
@@ -534,26 +878,39 @@ export const COMMAND_STATUS = {
REPEATING: 'REPEATING',
};
+export const PENDING_STORAGE_FILES_FOR_REMOVAL_MAX_NUMBER = 100;
+
export const OPERATION_ID_FILES_FOR_REMOVAL_MAX_NUMBER = 100;
-export const REPOSITORY_ROWS_FOR_REMOVAL_MAX_NUMBER = 1000;
+export const REPOSITORY_ROWS_FOR_REMOVAL_MAX_NUMBER = 10_000;
+
+export const ARCHIVE_FOLDER = 'archive';
+
+export const MIGRATION_FOLDER = 'migrations';
export const ARCHIVE_COMMANDS_FOLDER = 'commands';
+export const PUBLISHER_NODE_SIGNATURES_FOLDER = 'publisher';
+
+export const NETWORK_SIGNATURES_FOLDER = 'network';
+
export const ARCHIVE_BLOCKCHAIN_EVENTS_FOLDER = 'blockchain_events';
export const ARCHIVE_GET_FOLDER = 'get';
-
export const ARCHIVE_GET_RESPONSES_FOLDER = 'get_responses';
export const ARCHIVE_PUBLISH_FOLDER = 'publish';
-
export const ARCHIVE_PUBLISH_RESPONSES_FOLDER = 'publish_responses';
export const ARCHIVE_UPDATE_FOLDER = 'update';
-
export const ARCHIVE_UPDATE_RESPONSES_FOLDER = 'update_responses';
+export const ARCHIVE_ASK_FOLDER = 'ask';
+export const ARCHIVE_ASK_RESPONSES_FOLDER = 'ask_responses';
+
+export const ARCHIVE_FINALITY_FOLDER = 'finality';
+export const ARCHIVE_FINALITY_RESPONSES_FOLDER = 'finality_responses';
+
/**
* How many commands will run in parallel
* @type {number}
@@ -579,11 +936,11 @@ export const HTTP_API_ROUTES = {
path: '/publish',
options: { rateLimit: true },
},
- update: {
- method: 'post',
- path: '/update',
- options: { rateLimit: true },
- },
+ // update: {
+ // method: 'post',
+ // path: '/update',
+ // options: { rateLimit: true },
+ // },
query: {
method: 'post',
path: '/query',
@@ -615,7 +972,48 @@ export const HTTP_API_ROUTES = {
options: {},
},
},
- v1: {},
+ v1: {
+ publish: {
+ method: 'post',
+ path: '/publish',
+ options: { rateLimit: true },
+ },
+ finality: {
+ method: 'get',
+ path: '/finality',
+ options: {},
+ },
+ // update: {
+ // method: 'post',
+ // path: '/update',
+ // options: { rateLimit: true },
+ // },
+ query: {
+ method: 'post',
+ path: '/query',
+ options: {},
+ },
+ get: {
+ method: 'post',
+ path: '/get',
+ options: { rateLimit: true },
+ },
+ result: {
+ method: 'get',
+ path: '/:operation/:operationId',
+ options: {},
+ },
+ info: {
+ method: 'get',
+ path: '/info',
+ options: {},
+ },
+ ask: {
+ method: 'post',
+ path: '/ask',
+ options: {},
+ },
+ },
};
/**
@@ -624,8 +1022,10 @@ export const HTTP_API_ROUTES = {
*/
export const NETWORK_PROTOCOLS = {
STORE: ['/store/1.0.0'],
- UPDATE: ['/update/1.0.0'],
+ // UPDATE: ['/update/1.0.0'],
GET: ['/get/1.0.0'],
+ ASK: ['/ask/1.0.0'],
+ FINALITY: ['/finality/1.0.0'],
};
export const OPERATION_STATUS = {
@@ -659,51 +1059,38 @@ export const QUERY_TYPES = {
*/
export const LOCAL_STORE_TYPES = {
TRIPLE: 'TRIPLE',
- PENDING: 'PENDING',
+ TRIPLE_PARANET: 'TRIPLE_PARANET',
};
/**
* Contract names
- * @type {{SHARDING_TABLE_CONTRACT: string}}
+ * @type {{SHARDING_TABLE: string}}
*/
export const CONTRACTS = {
- SHARDING_TABLE_CONTRACT: 'ShardingTableContract',
- STAKING_CONTRACT: 'StakingContract',
- PROFILE_CONTRACT: 'ProfileContract',
- HUB_CONTRACT: 'HubContract',
- CONTENT_ASSET: 'ContentAssetContract',
- COMMIT_MANAGER_V1_U1_CONTRACT: 'CommitManagerV1U1Contract',
- SERVICE_AGREEMENT_V1_CONTRACT: 'ServiceAgreementV1Contract',
- PARAMETERS_STORAGE_CONTRACT: 'ParametersStorageContract',
- IDENTITY_STORAGE_CONTRACT: 'IdentityStorageContract',
- LOG2PLDSF_CONTRACT: 'Log2PLDSFContract',
- LINEAR_SUM_CONTRACT: 'LinearSumContract',
- PARANETS_REGISTRY_CONTRACT: 'ParanetsRegistry',
-};
-
-export const CONTRACT_EVENTS = {
- HUB: ['NewContract', 'ContractChanged', 'NewAssetStorage', 'AssetStorageChanged'],
- SHARDING_TABLE: ['NodeAdded', 'NodeRemoved'],
- STAKING: ['StakeIncreased', 'StakeWithdrawalStarted'],
- PROFILE: ['AskUpdated'],
- COMMIT_MANAGER_V1: ['StateFinalized'],
- SERVICE_AGREEMENT_V1: ['ServiceAgreementV1Extended', 'ServiceAgreementV1Terminated'],
- PARAMETERS_STORAGE: ['ParameterChanged'],
- LOG2PLDSF: ['ParameterChanged'],
- LINEAR_SUM: ['ParameterChanged'],
-};
-
-export const GROUPED_CONTRACT_EVENTS = {};
-
-export const CONTRACT_EVENT_TO_GROUP_MAPPING = (() => {
- const mapping = {};
- Object.entries(GROUPED_CONTRACT_EVENTS).forEach(([groupName, { events }]) => {
- events.forEach((eventName) => {
- mapping[eventName] = groupName;
- });
- });
- return mapping;
-})();
+ SHARDING_TABLE: 'ShardingTable',
+ STAKING: 'Staking',
+ PROFILE: 'Profile',
+ HUB: 'Hub',
+ PARAMETERS_STORAGE: 'ParametersStorage',
+ IDENTITY_STORAGE: 'IdentityStorage',
+ LOG2PLDSF: 'Log2PLDSF',
+ LINEAR_SUM: 'LinearSum',
+ PARANETS_REGISTRY: 'ParanetsRegistry',
+};
+
+export const MONITORED_CONTRACT_EVENTS = {
+ Hub: ['NewContract', 'ContractChanged', 'NewAssetStorage', 'AssetStorageChanged'],
+ ParametersStorage: ['ParameterChanged'],
+ KnowledgeCollectionStorage: ['KnowledgeCollectionCreated'],
+};
+
+export const MONITORED_CONTRACTS = Object.keys(MONITORED_CONTRACT_EVENTS);
+
+export const MONITORED_EVENTS = Object.values(MONITORED_CONTRACT_EVENTS).flatMap(
+ (events) => events,
+);
+
+export const CONTRACT_INDEPENDENT_EVENTS = {};
export const NODE_ENVIRONMENTS = {
DEVELOPMENT: 'development',
@@ -715,21 +1102,11 @@ export const NODE_ENVIRONMENTS = {
export const MAXIMUM_FETCH_EVENTS_FAILED_COUNT = 1000;
-export const DELAY_BETWEEN_FAILED_FETCH_EVENTS_MILLIS = 10 * 1000;
-
export const CONTRACT_EVENT_FETCH_INTERVALS = {
MAINNET: 10 * 1000,
DEVELOPMENT: 4 * 1000,
};
-export const BLOCK_TIME_MILLIS = {
- OTP: 12_000,
- HARDHAT: 5_000,
- GNOSIS: 5_000,
- DEFAULT: 12_000,
- BASE: 2_000,
-};
-
export const TRANSACTION_CONFIRMATIONS = 1;
export const SERVICE_AGREEMENT_SOURCES = {
@@ -744,6 +1121,11 @@ export const CACHE_DATA_TYPES = {
ANY: 'any',
};
+export const PARANET_SYNC_SOURCES = {
+ SYNC: 'sync',
+ LOCAL_STORE: 'local_store',
+};
+
/**
* CACHED_FUNCTIONS:
* ContractName: {
@@ -769,12 +1151,6 @@ export const CACHED_FUNCTIONS = {
IdentityStorageContract: {
getIdentityId: CACHE_DATA_TYPES.NUMBER,
},
- Log2PLDSFContract: {
- getParameters: CACHE_DATA_TYPES.ANY,
- },
- LinearSumContract: {
- getParameters: CACHE_DATA_TYPES.ANY,
- },
};
export const LOW_BID_SUGGESTION = 'low';
@@ -790,3 +1166,35 @@ export const BID_SUGGESTION_RANGE_ENUM = [
export const LOW_BID_SUGGESTION_OFFSET = 9;
export const MED_BID_SUGGESTION_OFFSET = 11;
export const HIGH_BID_SUGGESTION_OFFSET = 14;
+
+export const LOCAL_INSERT_FOR_ASSET_SYNC_MAX_ATTEMPTS = 5;
+export const LOCAL_INSERT_FOR_ASSET_SYNC_RETRY_DELAY = 1000;
+
+export const LOCAL_INSERT_FOR_CURATED_PARANET_MAX_ATTEMPTS = 5;
+export const LOCAL_INSERT_FOR_CURATED_PARANET_RETRY_DELAY = 1000;
+
+export const MAX_RETRIES_READ_CACHED_PUBLISH_DATA = 5;
+export const RETRY_DELAY_READ_CACHED_PUBLISH_DATA = 10000;
+
+export const TRIPLE_STORE_REPOSITORY = {
+ DKG: 'dkg',
+ DKG_HISTORIC: 'dkg-historic',
+};
+
+export const TRIPLES_VISIBILITY = {
+ PUBLIC: 'public',
+ PRIVATE: 'private',
+ ALL: 'all',
+};
+
+export const OLD_CONTENT_STORAGE_MAP = {
+ BASE_MAINNET: '0x3bdfA81079B2bA53a25a6641608E5E1E6c464597',
+ BASE_TESTNET: '0x9e3071Dc0730CB6dd0ce42969396D716Ea33E7e1',
+ BASE_DEVNET: '0xBe08A25dcF2B68af88501611e5456571f50327B4',
+ GNOSIS_MAINNET: '0xf81a8C0008DE2DCdb73366Cf78F2b178616d11DD',
+ GNOSIS_TESTNET: '0xeA3423e02c8d231532dab1BCE5D034f3737B3638',
+ GNOSIS_DEVNET: '0x3db64dD0Ac054610d1e2Af9Cca0fbCB1A7f4C2d8',
+ OTP_MAINNET: '0x5cAC41237127F94c2D21dAe0b14bFeFa99880630',
+ OTP_TESTNET: '0x1A061136Ed9f5eD69395f18961a0a535EF4B3E5f',
+ OTP_DEVNET: '0xABd59A9aa71847F499d624c492d3903dA953d67a',
+};
diff --git a/src/controllers/http-api/v0/bid-suggestion-http-api-controller-v0.js b/src/controllers/http-api/v0/bid-suggestion-http-api-controller-v0.js
index 93fe75c81e..252f7eeb6c 100644
--- a/src/controllers/http-api/v0/bid-suggestion-http-api-controller-v0.js
+++ b/src/controllers/http-api/v0/bid-suggestion-http-api-controller-v0.js
@@ -1,76 +1,34 @@
+import { BigNumber } from 'ethers';
import BaseController from '../base-http-api-controller.js';
-import { LOW_BID_SUGGESTION } from '../../../constants/constants.js';
+import { ONE_ETHER } from '../../../constants/constants.js';
class BidSuggestionController extends BaseController {
constructor(ctx) {
super(ctx);
- this.repositoryModuleManager = ctx.repositoryModuleManager;
this.blockchainModuleManager = ctx.blockchainModuleManager;
- this.shardingTableService = ctx.shardingTableService;
- this.serviceAgreementService = ctx.serviceAgreementService;
}
async handleRequest(req, res) {
- if ((await this.repositoryModuleManager.getPeersCount(req.query.blockchain)) === 0) {
- const message = `Unable to get bid suggestion. Empty sharding table for blockchain id: ${req.query.blockchain}`;
- this.logger.error(message);
- this.returnResponse(res, 406, {
- code: 406,
- message,
- });
- return;
- }
-
- // Uncomment when switch to ethers.js
- // if (
- // !(await this.blockchainModuleManager.isAssetStorageContract(
- // req.query.blockchain,
- // req.query.contentAssetStorageAddress,
- // ))
- // )
- // this.returnResponse(res, 400, {
- // code: 400,
- // message: `Invalid Content Asset Storage Contract Address`,
- // });
- // if (
- // !(await this.blockchainModuleManager.isHashFunction(
- // req.query.blockchain,
- // req.query.hashFunctionId,
- // ))
- // )
- // this.returnResponse(res, 400, {
- // code: 400,
- // message: `Invalid Hash Function ID`,
- // });
-
- const {
- blockchain,
- epochsNumber,
- assertionSize,
- contentAssetStorageAddress,
- firstAssertionId,
- hashFunctionId,
- } = req.query;
- let { bidSuggestionRange } = req.query;
try {
- const proximityScoreFunctionsPairId = 2;
-
- if (!bidSuggestionRange) {
- bidSuggestionRange = LOW_BID_SUGGESTION;
- }
-
- const bidSuggestion = await this.shardingTableService.getBidSuggestion(
- blockchain,
- epochsNumber,
- assertionSize,
- contentAssetStorageAddress,
- firstAssertionId,
- hashFunctionId,
- proximityScoreFunctionsPairId,
- bidSuggestionRange,
+ const { blockchain, epochsNumber, assertionSize } = req.body;
+ const promises = [
+ this.blockchainModuleManager.getTimeUntilNextEpoch(blockchain),
+ this.blockchainModuleManager.getEpochLength(blockchain),
+ this.blockchainModuleManager.getStakeWeightedAverageAsk(blockchain),
+ ];
+ const [timeUntilNextEpoch, epochLength, stakeWeightedAverageAsk] = await Promise.all(
+ promises,
);
-
- this.returnResponse(res, 200, { bidSuggestion });
+ const timeUntilNextEpochScaled = BigNumber.from(timeUntilNextEpoch)
+ .mul(ONE_ETHER)
+ .div(BigNumber.from(epochLength));
+ const epochsNumberScaled = BigNumber.from(epochsNumber).mul(ONE_ETHER);
+ const storageTime = timeUntilNextEpochScaled.add(epochsNumberScaled);
+ const bidSuggestion = BigNumber.from(stakeWeightedAverageAsk)
+ .mul(storageTime)
+ .mul(BigNumber.from(assertionSize))
+ .div(ONE_ETHER);
+ this.returnResponse(res, 200, { bidSuggestion: bidSuggestion.toString() });
} catch (error) {
this.logger.error(`Unable to get bid suggestion. Error: ${error}`);
this.returnResponse(res, 500, {
diff --git a/src/controllers/http-api/v0/get-http-api-controller-v0.js b/src/controllers/http-api/v0/get-http-api-controller-v0.js
index 3114e49955..02b66bb6f2 100644
--- a/src/controllers/http-api/v0/get-http-api-controller-v0.js
+++ b/src/controllers/http-api/v0/get-http-api-controller-v0.js
@@ -1,9 +1,9 @@
import {
OPERATION_ID_STATUS,
OPERATION_STATUS,
- CONTENT_ASSET_HASH_FUNCTION_ID,
- DEFAULT_GET_STATE,
ERROR_TYPE,
+ TRIPLES_VISIBILITY,
+ OLD_CONTENT_STORAGE_MAP,
} from '../../../constants/constants.js';
import BaseController from '../base-http-api-controller.js';
@@ -16,6 +16,7 @@ class GetController extends BaseController {
this.repositoryModuleManager = ctx.repositoryModuleManager;
this.ualService = ctx.ualService;
this.validationService = ctx.validationService;
+ this.fileService = ctx.fileService;
}
async handleRequest(req, res) {
@@ -39,49 +40,57 @@ class GetController extends BaseController {
OPERATION_STATUS.IN_PROGRESS,
);
+ let tripleStoreMigrationAlreadyExecuted = false;
+ try {
+ tripleStoreMigrationAlreadyExecuted =
+ (await this.fileService.readFile(
+ '/root/ot-node/data/migrations/v8DataMigration',
+ )) === 'MIGRATED';
+ } catch (e) {
+ this.logger.warn(`No triple store migration file error: ${e}`);
+ }
let blockchain;
let contract;
- let tokenId;
+ let knowledgeCollectionId;
+ let knowledgeAssetId;
try {
- const { id } = req.body;
+ const { id, paranetUAL, includeMetadata, contentType } = req.body;
+ ({ blockchain, contract, knowledgeCollectionId, knowledgeAssetId } =
+ this.ualService.resolveUAL(id));
- if (!this.ualService.isUAL(id)) {
- throw Error('Requested id is not a UAL.');
- }
-
- ({ blockchain, contract, tokenId } = this.ualService.resolveUAL(id));
+ this.logger.info(`Get for ${id} with operation id ${operationId} initiated.`);
- const isValidUal = await this.validationService.validateUal(
- blockchain,
- contract,
- tokenId,
- );
- if (!isValidUal) {
- throw Error(`${id} UAL isn't valid.`);
- }
+ // Get assertionId - datasetRoot
+ //
- const state = req.body.state ?? DEFAULT_GET_STATE;
- const hashFunctionId = req.body.hashFunctionId ?? CONTENT_ASSET_HASH_FUNCTION_ID;
+ const commandSequence = [];
- this.logger.info(`Get for ${id} with operation id ${operationId} initiated.`);
+ if (
+ !tripleStoreMigrationAlreadyExecuted &&
+ Object.values(OLD_CONTENT_STORAGE_MAP)
+ .map((ca) => ca.toLowerCase())
+ .includes(contract.toLowerCase())
+ ) {
+ commandSequence.push('getAssertionMerkleRootCommand');
+ }
- const commandSequence = [
- 'getAssertionIdCommand',
- 'localGetCommand',
- 'networkGetCommand',
- ];
+ commandSequence.push('getFindShardCommand');
await this.commandExecutor.add({
name: commandSequence[0],
sequence: commandSequence.slice(1),
delay: 0,
data: {
+ ual: id,
+ includeMetadata,
blockchain,
contract,
- tokenId,
+ knowledgeCollectionId,
+ knowledgeAssetId,
operationId,
- state,
- hashFunctionId,
+ paranetUAL,
+ contentType: contentType ?? TRIPLES_VISIBILITY.ALL,
+ isOperationV0: true,
},
transactional: false,
});
diff --git a/src/controllers/http-api/v0/local-store-http-api-controller-v0.js b/src/controllers/http-api/v0/local-store-http-api-controller-v0.js
index 06b6e0385a..122b766629 100644
--- a/src/controllers/http-api/v0/local-store-http-api-controller-v0.js
+++ b/src/controllers/http-api/v0/local-store-http-api-controller-v0.js
@@ -7,6 +7,7 @@ class LocalStoreController extends BaseController {
this.commandExecutor = ctx.commandExecutor;
this.operationIdService = ctx.operationIdService;
this.dataService = ctx.dataService;
+ this.fileService = ctx.fileService;
}
async handleRequest(req, res) {
@@ -23,8 +24,13 @@ class LocalStoreController extends BaseController {
null,
OPERATION_ID_STATUS.LOCAL_STORE.LOCAL_STORE_INIT_END,
);
-
- const assertions = req.body;
+ let assertions;
+ const { filePath } = req.body;
+ if (filePath) {
+ assertions = JSON.parse(await this.fileService.readFile(filePath));
+ } else {
+ assertions = req.body;
+ }
const cachedAssertions = {
public: {},
@@ -65,9 +71,11 @@ class LocalStoreController extends BaseController {
)}. Operation id: ${operationId}`,
);
- await this.operationIdService.cacheOperationIdData(operationId, cachedAssertions);
+ await this.operationIdService.cacheOperationIdDataToMemory(operationId, cachedAssertions);
+
+ await this.operationIdService.cacheOperationIdDataToFile(operationId, cachedAssertions);
- const commandSequence = ['validateAssetCommand', 'localStoreCommand'];
+ const commandSequence = ['localStoreCommand'];
await this.commandExecutor.add({
name: commandSequence[0],
@@ -79,6 +87,8 @@ class LocalStoreController extends BaseController {
contract: assertions[0].contract,
tokenId: assertions[0].tokenId,
storeType: assertions[0].storeType,
+ paranetUAL: assertions[0].paranetUAL,
+ isOperationV0: true,
},
transactional: false,
});
diff --git a/src/controllers/http-api/v0/publish-http-api-controller-v0.js b/src/controllers/http-api/v0/publish-http-api-controller-v0.js
index f3de5c7c4b..2abd1a9517 100644
--- a/src/controllers/http-api/v0/publish-http-api-controller-v0.js
+++ b/src/controllers/http-api/v0/publish-http-api-controller-v0.js
@@ -3,28 +3,31 @@ import {
ERROR_TYPE,
OPERATION_ID_STATUS,
OPERATION_STATUS,
- CONTENT_ASSET_HASH_FUNCTION_ID,
LOCAL_STORE_TYPES,
} from '../../../constants/constants.js';
class PublishController extends BaseController {
constructor(ctx) {
super(ctx);
- this.operationService = ctx.publishService;
this.commandExecutor = ctx.commandExecutor;
+ this.operationService = ctx.publishService;
this.operationIdService = ctx.operationIdService;
this.repositoryModuleManager = ctx.repositoryModuleManager;
- this.ualService = ctx.ualService;
- this.serviceAgreementService = ctx.serviceAgreementService;
- this.blockchainModuleManager = ctx.blockchainModuleManager;
+ this.blockchainModuleManager = ctx.blockchainModuleManager; // this is not used
+ this.pendingStorageService = ctx.pendingStorageService;
}
async handleRequest(req, res) {
- const { assertion, assertionId, blockchain, contract, tokenId } = req.body;
- const hashFunctionId = req.body.hashFunctionId ?? CONTENT_ASSET_HASH_FUNCTION_ID;
+ const {
+ assertion: dataset,
+ assertionId: datasetRoot,
+ blockchain,
+ contract,
+ tokenId,
+ } = req.body;
this.logger.info(
- `Received asset with assertion id: ${assertionId}, blockchain: ${blockchain}, hub contract: ${contract}, token id: ${tokenId}`,
+ `Received asset with dataset root: ${datasetRoot}, blockchain: ${blockchain}`,
);
const operationId = await this.operationIdService.generateOperationId(
@@ -53,24 +56,49 @@ class PublishController extends BaseController {
);
try {
- await this.operationIdService.cacheOperationIdData(operationId, {
- public: {
- assertion,
- assertionId,
- },
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_CACHE_OPERATION_ID_DATA_TO_MEMORY_START,
+ operationId,
blockchain,
- contract,
- tokenId,
+ );
+ await this.operationIdService.cacheOperationIdDataToMemory(operationId, {
+ dataset,
+ datasetRoot,
});
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_CACHE_OPERATION_ID_DATA_TO_MEMORY_END,
+ operationId,
+ blockchain,
+ );
- const commandSequence = ['publishValidateAssetCommand'];
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_CACHE_OPERATION_ID_DATA_TO_FILE_START,
+ operationId,
+ blockchain,
+ );
+ await this.operationIdService.cacheOperationIdDataToFile(operationId, {
+ dataset,
+ datasetRoot,
+ });
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_CACHE_OPERATION_ID_DATA_TO_FILE_END,
+ operationId,
+ blockchain,
+ );
- // Backwards compatibility check - true for older clients
- if (req.body.localStore) {
- commandSequence.push('localStoreCommand');
- }
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_CACHE_DATASET_START,
+ operationId,
+ blockchain,
+ );
+ await this.pendingStorageService.cacheDataset(operationId, datasetRoot, dataset);
+ this.operationIdService.emitChangeEvent(
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_CACHE_DATASET_END,
+ operationId,
+ blockchain,
+ );
- commandSequence.push('networkPublishCommand');
+ const commandSequence = ['publishFindShardCommand'];
await this.commandExecutor.add({
name: commandSequence[0],
@@ -79,12 +107,12 @@ class PublishController extends BaseController {
period: 5000,
retries: 3,
data: {
- assertionId,
+ datasetRoot,
blockchain,
+ operationId,
contract,
tokenId,
- hashFunctionId,
- operationId,
+ isOperationV0: true,
storeType: LOCAL_STORE_TYPES.TRIPLE,
},
transactional: false,
diff --git a/src/controllers/http-api/v0/query-http-api-controller-v0.js b/src/controllers/http-api/v0/query-http-api-controller-v0.js
index 79e2455734..6b5da96b8a 100644
--- a/src/controllers/http-api/v0/query-http-api-controller-v0.js
+++ b/src/controllers/http-api/v0/query-http-api-controller-v0.js
@@ -1,16 +1,17 @@
import BaseController from '../base-http-api-controller.js';
-import { OPERATION_ID_STATUS } from '../../../constants/constants.js';
+import { OPERATION_ID_STATUS, TRIPLE_STORE_REPOSITORIES } from '../../../constants/constants.js';
class QueryController extends BaseController {
constructor(ctx) {
super(ctx);
this.commandExecutor = ctx.commandExecutor;
this.operationIdService = ctx.operationIdService;
+ this.fileService = ctx.fileService;
}
async handleRequest(req, res) {
- const { query, type: queryType } = req.body;
+ const { query, type: queryType, repository } = req.body;
const operationId = await this.operationIdService.generateOperationId(
OPERATION_ID_STATUS.QUERY.QUERY_INIT_START,
@@ -20,6 +21,15 @@ class QueryController extends BaseController {
operationId,
});
+ let tripleStoreMigrationAlreadyExecuted = false;
+ try {
+ tripleStoreMigrationAlreadyExecuted =
+ (await this.fileService.readFile(
+ '/root/ot-node/data/migrations/v8DataMigration',
+ )) === 'MIGRATED';
+ } catch (e) {
+ this.logger.warn(`No triple store migration file error: ${e}`);
+ }
await this.operationIdService.updateOperationIdStatus(
operationId,
null,
@@ -30,7 +40,15 @@ class QueryController extends BaseController {
name: 'queryCommand',
sequence: [],
delay: 0,
- data: { query, queryType, repository: req.body.repository, operationId },
+ data: {
+ query,
+ queryType,
+ repository:
+ !tripleStoreMigrationAlreadyExecuted && repository
+ ? [repository, TRIPLE_STORE_REPOSITORIES.DKG]
+ : TRIPLE_STORE_REPOSITORIES.DKG,
+ operationId,
+ },
transactional: false,
});
}
diff --git a/src/controllers/http-api/v0/request-schema/get-schema-v0.js b/src/controllers/http-api/v0/request-schema/get-schema-v0.js
index a01a9a4e2c..6de06ffc35 100644
--- a/src/controllers/http-api/v0/request-schema/get-schema-v0.js
+++ b/src/controllers/http-api/v0/request-schema/get-schema-v0.js
@@ -1,5 +1,3 @@
-import { GET_STATES } from '../../../../constants/constants.js';
-
export default () => ({
type: 'object',
required: ['id'],
@@ -7,18 +5,18 @@ export default () => ({
id: {
type: 'string',
},
- state: {
- oneOf: [
- { enum: [GET_STATES.LATEST, GET_STATES.FINALIZED] },
- {
- type: 'string',
- pattern: '^0x[A-Fa-f0-9]{64}$',
- },
- ],
+ contentType: {
+ type: 'string',
+ },
+ includeMetadata: {
+ type: 'boolean',
},
hashFunctionId: {
type: 'number',
minimum: 1,
},
+ paranetUAL: {
+ type: ['string', 'null'],
+ },
},
});
diff --git a/src/controllers/http-api/v0/request-schema/local-store-schema-v0.js b/src/controllers/http-api/v0/request-schema/local-store-schema-v0.js
index 65aab92c27..1810cb0408 100644
--- a/src/controllers/http-api/v0/request-schema/local-store-schema-v0.js
+++ b/src/controllers/http-api/v0/request-schema/local-store-schema-v0.js
@@ -1,42 +1,74 @@
import { LOCAL_STORE_TYPES } from '../../../../constants/constants.js';
export default (argumentsObject) => ({
- type: 'array',
+ type: ['object', 'array'],
items: {
- type: 'object',
- required: ['assertionId', 'assertion'],
- properties: {
- assertionId: {
- type: 'string',
- minLength: 66,
- maxLength: 66,
- },
- assertion: {
- type: 'array',
- items: {
- type: 'string',
+ oneOf: [
+ {
+ type: 'object',
+ required: ['assertionId', 'assertion'],
+ properties: {
+ assertionId: {
+ type: 'string',
+ minLength: 66,
+ maxLength: 66,
+ },
+ assertion: {
+ type: 'array',
+ items: {
+ type: 'string',
+ },
+ minItems: 1,
+ },
+ blockchain: {
+ enum: argumentsObject.blockchainImplementationNames,
+ },
+ contract: {
+ type: 'string',
+ minLength: 42,
+ maxLength: 42,
+ },
+ tokenId: {
+ type: 'number',
+ minimum: 0,
+ },
+ storeType: {
+ enum: [LOCAL_STORE_TYPES.TRIPLE, LOCAL_STORE_TYPES.TRIPLE_PARANET],
+ },
+ paranetUAL: {
+ type: 'string',
+ },
},
minItems: 1,
+ maxItems: 2,
},
- blockchain: {
- enum: argumentsObject.blockchainImplementationNames,
- },
- contract: {
- type: 'string',
- minLength: 42,
- maxLength: 42,
- },
- tokenId: {
- type: 'number',
- minimum: 0,
- },
- storeType: {
- type: {
- enum: [LOCAL_STORE_TYPES.TRIPLE, LOCAL_STORE_TYPES.PENDING],
+ {
+ type: 'object',
+ required: ['filePath'],
+ properties: {
+ filePath: {
+ type: 'string',
+ },
+ paranetUAL: {
+ type: 'string',
+ },
+ blockchain: {
+ enum: argumentsObject.blockchainImplementationNames,
+ },
+ contract: {
+ type: 'string',
+ minLength: 42,
+ maxLength: 42,
+ },
+ tokenId: {
+ type: 'number',
+ minimum: 0,
+ },
+ storeType: {
+ enum: [LOCAL_STORE_TYPES.TRIPLE, LOCAL_STORE_TYPES.TRIPLE_PARANET],
+ },
},
},
- },
+ ],
},
- minItems: 1,
- maxItems: 2,
});
diff --git a/src/controllers/http-api/v0/request-schema/query-schema-v0.js b/src/controllers/http-api/v0/request-schema/query-schema-v0.js
index 41f70f84f2..68ccc101d1 100644
--- a/src/controllers/http-api/v0/request-schema/query-schema-v0.js
+++ b/src/controllers/http-api/v0/request-schema/query-schema-v0.js
@@ -10,8 +10,8 @@ export default () => ({
query: {
type: 'string',
},
- repository: {
- type: 'string',
- },
+ // repository: {
+ // type: 'string',
+ // },
},
});
diff --git a/src/controllers/http-api/v0/update-http-api-controller-v0.js b/src/controllers/http-api/v0/update-http-api-controller-v0.js
index 104677a889..d71dfce323 100644
--- a/src/controllers/http-api/v0/update-http-api-controller-v0.js
+++ b/src/controllers/http-api/v0/update-http-api-controller-v0.js
@@ -3,7 +3,6 @@ import {
ERROR_TYPE,
OPERATION_ID_STATUS,
OPERATION_STATUS,
- CONTENT_ASSET_HASH_FUNCTION_ID,
LOCAL_STORE_TYPES,
} from '../../../constants/constants.js';
@@ -18,7 +17,6 @@ class UpdateController extends BaseController {
async handleRequest(req, res) {
const { assertion, assertionId, blockchain, contract, tokenId } = req.body;
- const hashFunctionId = req.body.hashFunctionId ?? CONTENT_ASSET_HASH_FUNCTION_ID;
this.logger.info(
`Received asset with assertion id: ${assertionId}, blockchain: ${blockchain}, hub contract: ${contract}, token id: ${tokenId}`,
@@ -74,9 +72,8 @@ class UpdateController extends BaseController {
contract,
tokenId,
assertionId,
- hashFunctionId,
operationId,
- storeType: LOCAL_STORE_TYPES.PENDING,
+ storeType: LOCAL_STORE_TYPES.TRIPLE,
},
transactional: false,
});
diff --git a/src/controllers/http-api/v1/ask-http-api-controller-v1.js b/src/controllers/http-api/v1/ask-http-api-controller-v1.js
new file mode 100644
index 0000000000..f62fe292b1
--- /dev/null
+++ b/src/controllers/http-api/v1/ask-http-api-controller-v1.js
@@ -0,0 +1,85 @@
+import { OPERATION_ID_STATUS, OPERATION_STATUS, ERROR_TYPE } from '../../../constants/constants.js';
+import BaseController from '../base-http-api-controller.js';
+
+class AskController extends BaseController {
+ constructor(ctx) {
+ super(ctx);
+ this.commandExecutor = ctx.commandExecutor;
+ this.operationIdService = ctx.operationIdService;
+ this.operationService = ctx.askService;
+ this.repositoryModuleManager = ctx.repositoryModuleManager;
+ this.ualService = ctx.ualService;
+ this.validationService = ctx.validationService;
+ this.blockchainModuleManager = ctx.blockchainModuleManager;
+ }
+
+ async handleRequest(req, res) {
+ const operationId = await this.operationIdService.generateOperationId(
+ OPERATION_ID_STATUS.ASK.ASK_START,
+ );
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ null,
+ OPERATION_ID_STATUS.ASK.ASK_START,
+ );
+
+ this.returnResponse(res, 202, {
+ operationId,
+ });
+
+ await this.repositoryModuleManager.createOperationRecord(
+ this.operationService.getOperationName(),
+ operationId,
+ OPERATION_STATUS.IN_PROGRESS,
+ );
+
+ const { ual, blockchain, minimumNumberOfNodeReplications } = req.body;
+
+ try {
+ this.logger.info(`Ask for ${ual} with operation id ${operationId} initiated.`);
+
+ const commandSequence = ['askFindShardCommand', 'networkAskCommand'];
+
+ const { contract, knowledgeCollectionId } = this.ualService.resolveUAL(ual);
+
+ const datasetRoot =
+ await this.blockchainModuleManager.getKnowledgeCollectionLatestMerkleRoot(
+ blockchain,
+ contract,
+ knowledgeCollectionId,
+ );
+
+ await this.commandExecutor.add({
+ name: commandSequence[0],
+ sequence: commandSequence.slice(1),
+ delay: 0,
+ data: {
+ ual,
+ operationId,
+ blockchain,
+ datasetRoot,
+ minimumNumberOfNodeReplications,
+ },
+ transactional: false,
+ });
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.ASK.ASK_END,
+ );
+ } catch (error) {
+ this.logger.error(`Error while initializing ask: ${error.message}.`);
+
+ await this.operationService.markOperationAsFailed(
+ operationId,
+ blockchain,
+ 'Unable to check ask, Failed to process input data!',
+ ERROR_TYPE.ASK.ASK_ERROR,
+ );
+ }
+ }
+}
+
+export default AskController;
diff --git a/src/controllers/http-api/v1/finality-http-api-controller-v1.js b/src/controllers/http-api/v1/finality-http-api-controller-v1.js
new file mode 100644
index 0000000000..a7d97c6457
--- /dev/null
+++ b/src/controllers/http-api/v1/finality-http-api-controller-v1.js
@@ -0,0 +1,28 @@
+import BaseController from '../base-http-api-controller.js';
+
+class FinalityController extends BaseController {
+ constructor(ctx) {
+ super(ctx);
+ this.commandExecutor = ctx.commandExecutor;
+ this.operationIdService = ctx.operationIdService;
+ this.operationService = ctx.finalityService;
+ this.repositoryModuleManager = ctx.repositoryModuleManager;
+ this.ualService = ctx.ualService;
+ this.validationService = ctx.validationService;
+ }
+
+ async handleRequest(req, res) {
+ const { ual } = req.query;
+
+ const finality = await this.repositoryModuleManager.getFinalityAcksCount(ual || '');
+
+ if (typeof finality !== 'number')
+ return this.returnResponse(res, 400, {
+ message: 'Asset with provided UAL was not published to this node.',
+ });
+
+ this.returnResponse(res, 200, { finality });
+ }
+}
+
+export default FinalityController;
diff --git a/src/controllers/http-api/v1/get-http-api-controller-v1.js b/src/controllers/http-api/v1/get-http-api-controller-v1.js
new file mode 100644
index 0000000000..bace47ba6a
--- /dev/null
+++ b/src/controllers/http-api/v1/get-http-api-controller-v1.js
@@ -0,0 +1,116 @@
+import {
+ OPERATION_ID_STATUS,
+ OPERATION_STATUS,
+ ERROR_TYPE,
+ TRIPLES_VISIBILITY,
+ OLD_CONTENT_STORAGE_MAP,
+} from '../../../constants/constants.js';
+import BaseController from '../base-http-api-controller.js';
+
+class GetController extends BaseController {
+ constructor(ctx) {
+ super(ctx);
+ this.commandExecutor = ctx.commandExecutor;
+ this.operationIdService = ctx.operationIdService;
+ this.operationService = ctx.getService;
+ this.repositoryModuleManager = ctx.repositoryModuleManager;
+ this.ualService = ctx.ualService;
+ this.validationService = ctx.validationService;
+ this.fileService = ctx.fileService;
+ }
+
+ async handleRequest(req, res) {
+ const operationId = await this.operationIdService.generateOperationId(
+ OPERATION_ID_STATUS.GET.GET_START,
+ );
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ null,
+ OPERATION_ID_STATUS.GET.GET_INIT_START,
+ );
+
+ this.returnResponse(res, 202, {
+ operationId,
+ });
+
+ await this.repositoryModuleManager.createOperationRecord(
+ this.operationService.getOperationName(),
+ operationId,
+ OPERATION_STATUS.IN_PROGRESS,
+ );
+
+ let tripleStoreMigrationAlreadyExecuted = false;
+ try {
+ tripleStoreMigrationAlreadyExecuted =
+ (await this.fileService.readFile(
+ '/root/ot-node/data/migrations/v8DataMigration',
+ )) === 'MIGRATED';
+ } catch (e) {
+ this.logger.warn(`No triple store migration file error: ${e}`);
+ }
+ let blockchain;
+ let contract;
+ let knowledgeCollectionId;
+ let knowledgeAssetId;
+ try {
+ const { id, paranetUAL, includeMetadata, contentType } = req.body;
+ ({ blockchain, contract, knowledgeCollectionId, knowledgeAssetId } =
+ this.ualService.resolveUAL(id));
+
+ this.logger.info(`Get for ${id} with operation id ${operationId} initiated.`);
+
+ // Get assertionId - datasetRoot
+ //
+
+ const commandSequence = [];
+ commandSequence.push('getValidateAssetCommand');
+
+ if (
+ !tripleStoreMigrationAlreadyExecuted &&
+ Object.values(OLD_CONTENT_STORAGE_MAP)
+ .map((ca) => ca.toLowerCase())
+ .includes(contract.toLowerCase())
+ ) {
+ commandSequence.push('getAssertionMerkleRootCommand');
+ }
+
+ commandSequence.push('getFindShardCommand');
+
+ await this.commandExecutor.add({
+ name: commandSequence[0],
+ sequence: commandSequence.slice(1),
+ delay: 0,
+ data: {
+ ual: id,
+ includeMetadata,
+ blockchain,
+ contract,
+ knowledgeCollectionId,
+ knowledgeAssetId,
+ operationId,
+ paranetUAL,
+ contentType: contentType ?? TRIPLES_VISIBILITY.ALL,
+ },
+ transactional: false,
+ });
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.GET.GET_INIT_END,
+ );
+ } catch (error) {
+ this.logger.error(`Error while initializing get data: ${error.message}.`);
+
+ await this.operationService.markOperationAsFailed(
+ operationId,
+ blockchain,
+ 'Unable to get data, Failed to process input data!',
+ ERROR_TYPE.GET.GET_ROUTE_ERROR,
+ );
+ }
+ }
+}
+
+export default GetController;
diff --git a/src/controllers/http-api/v1/info-http-api-controller-v1.js b/src/controllers/http-api/v1/info-http-api-controller-v1.js
new file mode 100644
index 0000000000..61dbb514ed
--- /dev/null
+++ b/src/controllers/http-api/v1/info-http-api-controller-v1.js
@@ -0,0 +1,15 @@
+import { createRequire } from 'module';
+import BaseController from '../base-http-api-controller.js';
+
+const require = createRequire(import.meta.url);
+const { version } = require('../../../../package.json');
+
+class InfoController extends BaseController {
+ handleRequest(_, res) {
+ this.returnResponse(res, 200, {
+ version,
+ });
+ }
+}
+
+export default InfoController;
diff --git a/src/controllers/http-api/v1/publish-http-api-controller-v1.js b/src/controllers/http-api/v1/publish-http-api-controller-v1.js
new file mode 100644
index 0000000000..53008fe38d
--- /dev/null
+++ b/src/controllers/http-api/v1/publish-http-api-controller-v1.js
@@ -0,0 +1,103 @@
+import BaseController from '../base-http-api-controller.js';
+import {
+ ERROR_TYPE,
+ OPERATION_ID_STATUS,
+ OPERATION_STATUS,
+ LOCAL_STORE_TYPES,
+} from '../../../constants/constants.js';
+
+class PublishController extends BaseController {
+ constructor(ctx) {
+ super(ctx);
+ this.commandExecutor = ctx.commandExecutor;
+ this.operationService = ctx.publishService;
+ this.operationIdService = ctx.operationIdService;
+ this.repositoryModuleManager = ctx.repositoryModuleManager;
+ this.pendingStorageService = ctx.pendingStorageService;
+ this.networkModuleManager = ctx.networkModuleManager;
+ }
+
+ async handleRequest(req, res) {
+ const { dataset, datasetRoot, blockchain, minimumNumberOfNodeReplications } = req.body;
+
+ this.logger.info(
+ `Received asset with dataset root: ${datasetRoot}, blockchain: ${blockchain}`,
+ );
+
+ const operationId = await this.operationIdService.generateOperationId(
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_START,
+ );
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_INIT_START,
+ );
+
+ this.returnResponse(res, 202, {
+ operationId,
+ });
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ blockchain,
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_INIT_END,
+ );
+ await this.repositoryModuleManager.createOperationRecord(
+ this.operationService.getOperationName(),
+ operationId,
+ OPERATION_STATUS.IN_PROGRESS,
+ );
+
+ try {
+ await this.operationIdService.cacheOperationIdDataToMemory(operationId, {
+ dataset,
+ datasetRoot,
+ });
+
+ await this.operationIdService.cacheOperationIdDataToFile(operationId, {
+ dataset,
+ datasetRoot,
+ });
+
+ const publisherNodePeerId = this.networkModuleManager.getPeerId().toB58String();
+ await this.pendingStorageService.cacheDataset(
+ operationId,
+ datasetRoot,
+ dataset,
+ publisherNodePeerId,
+ );
+
+ const commandSequence = ['publishFindShardCommand'];
+
+ await this.commandExecutor.add({
+ name: commandSequence[0],
+ sequence: commandSequence.slice(1),
+ delay: 0,
+ period: 5000,
+ retries: 3,
+ data: {
+ datasetRoot,
+ blockchain,
+ operationId,
+ storeType: LOCAL_STORE_TYPES.TRIPLE,
+ minimumNumberOfNodeReplications,
+ },
+ transactional: false,
+ });
+ } catch (error) {
+ this.logger.error(
+ `Error while initializing publish data: ${error.message}. ${error.stack}`,
+ );
+
+ await this.operationService.markOperationAsFailed(
+ operationId,
+ blockchain,
+ 'Unable to publish data, Failed to process input data!',
+ ERROR_TYPE.PUBLISH.PUBLISH_ROUTE_ERROR,
+ );
+ }
+ }
+}
+
+export default PublishController;
diff --git a/src/controllers/http-api/v1/query-http-api-controller-v1.js b/src/controllers/http-api/v1/query-http-api-controller-v1.js
new file mode 100644
index 0000000000..6b5da96b8a
--- /dev/null
+++ b/src/controllers/http-api/v1/query-http-api-controller-v1.js
@@ -0,0 +1,57 @@
+import BaseController from '../base-http-api-controller.js';
+
+import { OPERATION_ID_STATUS, TRIPLE_STORE_REPOSITORIES } from '../../../constants/constants.js';
+
+class QueryController extends BaseController {
+ constructor(ctx) {
+ super(ctx);
+ this.commandExecutor = ctx.commandExecutor;
+ this.operationIdService = ctx.operationIdService;
+ this.fileService = ctx.fileService;
+ }
+
+ async handleRequest(req, res) {
+ const { query, type: queryType, repository } = req.body;
+
+ const operationId = await this.operationIdService.generateOperationId(
+ OPERATION_ID_STATUS.QUERY.QUERY_INIT_START,
+ );
+
+ this.returnResponse(res, 202, {
+ operationId,
+ });
+
+ let tripleStoreMigrationAlreadyExecuted = false;
+ try {
+ tripleStoreMigrationAlreadyExecuted =
+ (await this.fileService.readFile(
+ '/root/ot-node/data/migrations/v8DataMigration',
+ )) === 'MIGRATED';
+ } catch (e) {
+ this.logger.warn(`No triple store migration file error: ${e}`);
+ }
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ null,
+ OPERATION_ID_STATUS.QUERY.QUERY_INIT_END,
+ );
+
+ await this.commandExecutor.add({
+ name: 'queryCommand',
+ sequence: [],
+ delay: 0,
+ data: {
+ query,
+ queryType,
+ repository:
+ !tripleStoreMigrationAlreadyExecuted && repository
+ ? [repository, TRIPLE_STORE_REPOSITORIES.DKG]
+ : TRIPLE_STORE_REPOSITORIES.DKG,
+ operationId,
+ },
+ transactional: false,
+ });
+ }
+}
+
+export default QueryController;
diff --git a/src/controllers/http-api/v1/request-schema/ask-schema-v1.js b/src/controllers/http-api/v1/request-schema/ask-schema-v1.js
new file mode 100644
index 0000000000..c989f1f837
--- /dev/null
+++ b/src/controllers/http-api/v1/request-schema/ask-schema-v1.js
@@ -0,0 +1,20 @@
+export default (argumentsObject) => ({
+ type: 'object',
+ required: ['ual', 'blockchain', 'minimumNumberOfNodeReplications'],
+ properties: {
+ ual: {
+ oneOf: [{ type: 'string' }, { type: 'array', items: { type: 'string' }, minItems: 1 }],
+ },
+ blockchain: {
+ enum: argumentsObject.blockchainImplementationNames,
+ },
+ minimumNumberOfNodeReplications: {
+ type: 'number',
+ minimum: 0,
+ },
+ batchSize: {
+ type: 'number',
+ minimum: 1,
+ },
+ },
+});
diff --git a/src/controllers/http-api/v1/request-schema/finality-schema-v1.js b/src/controllers/http-api/v1/request-schema/finality-schema-v1.js
new file mode 100644
index 0000000000..087a20dc25
--- /dev/null
+++ b/src/controllers/http-api/v1/request-schema/finality-schema-v1.js
@@ -0,0 +1,9 @@
+export default () => ({
+ type: 'object',
+ required: ['ual'],
+ properties: {
+ ual: {
+ type: 'string',
+ },
+ },
+});
diff --git a/src/controllers/http-api/v1/request-schema/get-schema-v1.js b/src/controllers/http-api/v1/request-schema/get-schema-v1.js
new file mode 100644
index 0000000000..73d4f673a9
--- /dev/null
+++ b/src/controllers/http-api/v1/request-schema/get-schema-v1.js
@@ -0,0 +1,18 @@
+export default () => ({
+ type: 'object',
+ required: ['id'],
+ properties: {
+ id: {
+ type: 'string',
+ },
+ contentType: {
+ type: 'string',
+ },
+ includeMetadata: {
+ type: 'boolean',
+ },
+ paranetUAL: {
+ type: ['string', 'null'],
+ },
+ },
+});
diff --git a/src/controllers/http-api/v1/request-schema/publish-schema-v1.js b/src/controllers/http-api/v1/request-schema/publish-schema-v1.js
new file mode 100644
index 0000000000..654af51d1d
--- /dev/null
+++ b/src/controllers/http-api/v1/request-schema/publish-schema-v1.js
@@ -0,0 +1,34 @@
+export default (argumentsObject) => ({
+ type: 'object',
+ required: ['datasetRoot', 'dataset', 'blockchain'],
+ properties: {
+ datasetRoot: {
+ type: 'string',
+ minLength: 66,
+ maxLength: 66,
+ },
+ dataset: {
+ type: 'object',
+ properties: {
+ public: {
+ type: 'array',
+ items: {
+ type: 'string',
+ },
+ minItems: 1,
+ },
+ private: {
+ type: 'array',
+ items: {
+ type: 'string',
+ },
+ },
+ },
+ required: ['public'],
+ additionalProperties: false,
+ },
+ blockchain: {
+ enum: argumentsObject.blockchainImplementationNames,
+ },
+ },
+});
diff --git a/src/controllers/http-api/v1/request-schema/query-schema-v1.js b/src/controllers/http-api/v1/request-schema/query-schema-v1.js
new file mode 100644
index 0000000000..f79f4bd45b
--- /dev/null
+++ b/src/controllers/http-api/v1/request-schema/query-schema-v1.js
@@ -0,0 +1,14 @@
+import { QUERY_TYPES } from '../../../../constants/constants.js';
+
+export default () => ({
+ type: 'object',
+ required: ['type', 'query'],
+ properties: {
+ type: {
+ enum: [QUERY_TYPES.CONSTRUCT, QUERY_TYPES.SELECT],
+ },
+ query: {
+ type: 'string',
+ },
+ },
+});
diff --git a/src/controllers/http-api/v1/result-http-api-controller-v1.js b/src/controllers/http-api/v1/result-http-api-controller-v1.js
new file mode 100644
index 0000000000..5502f593d9
--- /dev/null
+++ b/src/controllers/http-api/v1/result-http-api-controller-v1.js
@@ -0,0 +1,105 @@
+import {
+ NETWORK_SIGNATURES_FOLDER,
+ OPERATION_ID_STATUS,
+ PUBLISHER_NODE_SIGNATURES_FOLDER,
+} from '../../../constants/constants.js';
+import BaseController from '../base-http-api-controller.js';
+
+class ResultController extends BaseController {
+ constructor(ctx) {
+ super(ctx);
+ this.operationIdService = ctx.operationIdService;
+ this.signatureService = ctx.signatureService;
+
+ this.availableOperations = ['publish', 'get', 'query', 'update', 'ask', 'finality'];
+ }
+
+ async handleRequest(req, res) {
+ if (!this.availableOperations.includes(req.params.operation)) {
+ return this.returnResponse(res, 400, {
+ code: 400,
+ message: `Unsupported operation: ${req.params.operation}, available operations are: ${this.availableOperations}`,
+ });
+ }
+
+ const { operationId, operation } = req.params;
+ if (!this.operationIdService.operationIdInRightFormat(operationId)) {
+ return this.returnResponse(res, 400, {
+ code: 400,
+ message: `Operation id: ${operationId} is in wrong format`,
+ });
+ }
+
+ try {
+ const handlerRecord = await this.operationIdService.getOperationIdRecord(operationId);
+
+ if (handlerRecord) {
+ const response = {
+ status: handlerRecord.status,
+ };
+ if (handlerRecord.status === OPERATION_ID_STATUS.FAILED) {
+ response.data = JSON.parse(handlerRecord.data);
+ }
+
+ switch (operation) {
+ case 'get':
+ case 'query':
+ case 'finality':
+ if (handlerRecord.status === OPERATION_ID_STATUS.COMPLETED) {
+ response.data = await this.operationIdService.getCachedOperationIdData(
+ operationId,
+ );
+ }
+ break;
+ case 'publish':
+ case 'update': {
+ const minAcksReached = handlerRecord.minAcksReached || false;
+ response.data = { ...response.data, minAcksReached };
+ if (minAcksReached) {
+ const publisherNodeSignature = (
+ await this.signatureService.getSignaturesFromStorage(
+ PUBLISHER_NODE_SIGNATURES_FOLDER,
+ operationId,
+ )
+ )[0];
+ const signatures = await this.signatureService.getSignaturesFromStorage(
+ NETWORK_SIGNATURES_FOLDER,
+ operationId,
+ );
+ response.data = {
+ ...response.data,
+ publisherNodeSignature,
+ signatures,
+ };
+ }
+ break;
+ }
+ case 'ask':
+ response.data = await this.operationIdService.getCachedOperationIdData(
+ operationId,
+ );
+ break;
+ default:
+ break;
+ }
+
+ return this.returnResponse(res, 200, response);
+ }
+ return this.returnResponse(res, 400, {
+ code: 400,
+ message: `Handler with id: ${operationId} does not exist.`,
+ });
+ } catch (e) {
+ this.logger.error(
+ `Error while trying to fetch ${operation} data for operation id ${operationId}. Error message: ${e.message}. ${e.stack}`,
+ );
+
+ return this.returnResponse(res, 400, {
+ code: 400,
+ message: `Unexpected error at getting results: ${e.message}`,
+ });
+ }
+ }
+}
+
+export default ResultController;
diff --git a/src/controllers/rpc/ask-rpc-controller.js b/src/controllers/rpc/ask-rpc-controller.js
new file mode 100644
index 0000000000..4034f87cc2
--- /dev/null
+++ b/src/controllers/rpc/ask-rpc-controller.js
@@ -0,0 +1,40 @@
+import { NETWORK_MESSAGE_TYPES } from '../../constants/constants.js';
+import BaseController from './base-rpc-controller.js';
+
+class AskController extends BaseController {
+ constructor(ctx) {
+ super(ctx);
+ this.commandExecutor = ctx.commandExecutor;
+ this.operationService = ctx.askService;
+ }
+
+ async v1_0_0HandleRequest(message, remotePeerId, protocol) {
+ const { operationId, messageType } = message.header;
+ const [handleRequestCommand] = this.getCommandSequence(protocol);
+ let commandName;
+ switch (messageType) {
+ case NETWORK_MESSAGE_TYPES.REQUESTS.PROTOCOL_REQUEST:
+ commandName = handleRequestCommand;
+ break;
+ default:
+ throw Error('unknown messageType');
+ }
+
+ await this.commandExecutor.add({
+ name: commandName,
+ sequence: [],
+ delay: 0,
+ data: {
+ remotePeerId,
+ operationId,
+ protocol,
+ ual: message.data.ual,
+ numberOfFoundNodes: message.data.numberOfFoundNodes,
+ blockchain: message.data.blockchain,
+ },
+ transactional: false,
+ });
+ }
+}
+
+export default AskController;
diff --git a/src/controllers/rpc/finality-rpc-controller.js b/src/controllers/rpc/finality-rpc-controller.js
new file mode 100644
index 0000000000..9171fc7459
--- /dev/null
+++ b/src/controllers/rpc/finality-rpc-controller.js
@@ -0,0 +1,48 @@
+import { NETWORK_MESSAGE_TYPES } from '../../constants/constants.js';
+import BaseController from './base-rpc-controller.js';
+
+class FinalityController extends BaseController {
+ constructor(ctx) {
+ super(ctx);
+ this.commandExecutor = ctx.commandExecutor;
+ this.operationService = ctx.finalityService;
+ }
+
+ async v1_0_0HandleRequest(message, remotePeerId, protocol) {
+ const { operationId, messageType } = message.header;
+ const [handleRequestCommand] = this.getCommandSequence(protocol);
+ let commandName;
+ switch (messageType) {
+ case NETWORK_MESSAGE_TYPES.REQUESTS.PROTOCOL_REQUEST:
+ commandName = handleRequestCommand;
+ break;
+ default:
+ throw Error('unknown messageType');
+ }
+
+ await this.commandExecutor.add({
+ name: commandName,
+ sequence: [],
+ delay: 0,
+ data: {
+ remotePeerId,
+ operationId,
+ protocol,
+ ual: message.data.ual,
+ blockchain: message.data.blockchain,
+ publishOperationId: message.data.publishOperationId,
+ },
+ transactional: false,
+ });
+ }
+
+ getCommandSequence(protocol) {
+ // TODO: Rework this to schedule different command for update
+ return [
+ 'publishFinalitySaveAckCommand',
+ ...this.protocolService.getReceiverCommandSequence(protocol),
+ ];
+ }
+}
+
+export default FinalityController;
diff --git a/src/controllers/rpc/get-rpc-controller.js b/src/controllers/rpc/get-rpc-controller.js
index c2b50f359e..32b242b84c 100644
--- a/src/controllers/rpc/get-rpc-controller.js
+++ b/src/controllers/rpc/get-rpc-controller.js
@@ -1,4 +1,4 @@
-import { CONTENT_ASSET_HASH_FUNCTION_ID, DEFAULT_GET_STATE, NETWORK_MESSAGE_TYPES } from '../../constants/constants.js';
+import { DEFAULT_GET_STATE, NETWORK_MESSAGE_TYPES } from '../../constants/constants.js';
import BaseController from './base-rpc-controller.js';
class GetController extends BaseController {
@@ -9,13 +9,10 @@ class GetController extends BaseController {
}
async v1_0_0HandleRequest(message, remotePeerId, protocol) {
- const { operationId, keywordUuid, messageType } = message.header;
- const [handleInitCommand, handleRequestCommand] = this.getCommandSequence(protocol);
+ const { operationId, messageType } = message.header;
+ const [handleRequestCommand] = this.getCommandSequence(protocol);
let commandName;
switch (messageType) {
- case NETWORK_MESSAGE_TYPES.REQUESTS.PROTOCOL_INIT:
- commandName = handleInitCommand;
- break;
case NETWORK_MESSAGE_TYPES.REQUESTS.PROTOCOL_REQUEST:
commandName = handleRequestCommand;
break;
@@ -30,15 +27,18 @@ class GetController extends BaseController {
data: {
remotePeerId,
operationId,
- keywordUuid,
protocol,
- assertionId: message.data.assertionId,
+ ual: message.data.ual,
blockchain: message.data.blockchain,
contract: message.data.contract,
- tokenId: message.data.tokenId,
- keyword: message.data.keyword,
- hashFunctionId: message.data.hashFunctionId ?? CONTENT_ASSET_HASH_FUNCTION_ID,
- state: message.data.state ?? DEFAULT_GET_STATE
+ knowledgeCollectionId: message.data.knowledgeCollectionId,
+ knowledgeAssetId: message.data.knowledgeAssetId,
+ includeMetadata: message.data.includeMetadata,
+ state: message.data.state ?? DEFAULT_GET_STATE,
+ paranetUAL: message.data.paranetUAL,
+ paranetId: message.data.paranetId,
+ isOperationV0: message.data.isOperationV0,
+ assertionId: message.data.assertionId,
},
transactional: false,
});
diff --git a/src/controllers/rpc/publish-rpc-controller.js b/src/controllers/rpc/publish-rpc-controller.js
index a3aaa0c8b2..dca2309d72 100644
--- a/src/controllers/rpc/publish-rpc-controller.js
+++ b/src/controllers/rpc/publish-rpc-controller.js
@@ -1,8 +1,5 @@
import BaseController from './base-rpc-controller.js';
-import {
- NETWORK_MESSAGE_TYPES,
- CONTENT_ASSET_HASH_FUNCTION_ID,
-} from '../../constants/constants.js';
+import { NETWORK_MESSAGE_TYPES } from '../../constants/constants.js';
class PublishController extends BaseController {
constructor(ctx) {
@@ -13,48 +10,41 @@ class PublishController extends BaseController {
}
async v1_0_0HandleRequest(message, remotePeerId, protocol) {
- const { operationId, keywordUuid, messageType } = message.header;
+ const { operationId, messageType } = message.header;
const command = { sequence: [], delay: 0, transactional: false, data: {} };
- let dataSource;
- const [handleInitCommand, handleRequestCommand] = this.getCommandSequence(protocol);
- switch (messageType) {
- case NETWORK_MESSAGE_TYPES.REQUESTS.PROTOCOL_INIT:
- dataSource = message.data;
- command.name = handleInitCommand;
- command.period = 5000;
- command.retries = 3;
+ const [handleRequestCommand] = this.getCommandSequence(protocol);
+ if (messageType === NETWORK_MESSAGE_TYPES.REQUESTS.PROTOCOL_REQUEST) {
+ Object.assign(command, {
+ name: handleRequestCommand,
+ period: 5000,
+ retries: 3,
+ });
- break;
- case NETWORK_MESSAGE_TYPES.REQUESTS.PROTOCOL_REQUEST:
- // eslint-disable-next-line no-case-declarations
- dataSource = await this.operationIdService.getCachedOperationIdData(operationId);
- await this.operationIdService.cacheOperationIdData(operationId, {
- assertionId: dataSource.assertionId,
- assertion: message.data.assertion,
- });
- command.name = handleRequestCommand;
- command.data.keyword = message.data.keyword;
- command.data.agreementId = dataSource.agreementId;
- command.data.agreementData = dataSource.agreementData;
- break;
- default:
- throw Error('unknown message type');
+ await this.operationIdService.cacheOperationIdDataToMemory(operationId, {
+ dataset: message.data.dataset,
+ datasetRoot: message.data.datasetRoot,
+ });
+
+ await this.operationIdService.cacheOperationIdDataToFile(operationId, {
+ dataset: message.data.dataset,
+ datasetRoot: message.data.datasetRoot,
+ });
+ } else {
+ throw new Error('Unknown message type');
}
command.data = {
...command.data,
remotePeerId,
operationId,
- keywordUuid,
protocol,
- assertionId: dataSource.assertionId,
- blockchain: dataSource.blockchain,
- contract: dataSource.contract,
- tokenId: dataSource.tokenId,
- keyword: dataSource.keyword,
- hashFunctionId: message.data.hashFunctionId ?? CONTENT_ASSET_HASH_FUNCTION_ID,
- proximityScoreFunctionsPairId: dataSource.proximityScoreFunctionsPairId ?? 1,
+ dataset: message.data.dataset,
+ datasetRoot: message.data.datasetRoot,
+ blockchain: message.data.blockchain,
+ isOperationV0: message.data.isOperationV0,
+ contract: message.data.contract,
+ tokenId: message.data.tokenId,
};
await this.commandExecutor.add(command);
diff --git a/src/controllers/rpc/rpc-router.js b/src/controllers/rpc/rpc-router.js
index 18bfd4e9a1..3b1bb77bdb 100644
--- a/src/controllers/rpc/rpc-router.js
+++ b/src/controllers/rpc/rpc-router.js
@@ -9,6 +9,8 @@ class RpcRouter {
this.publishRpcController = ctx.publishRpcController;
this.getRpcController = ctx.getRpcController;
this.updateRpcController = ctx.updateRpcController;
+ this.askRpcController = ctx.askRpcController;
+ this.finalityRpcController = ctx.finalityRpcController;
}
initialize() {
diff --git a/src/controllers/rpc/update-rpc-controller.js b/src/controllers/rpc/update-rpc-controller.js
index 74e24ae7fc..7c2bb6525f 100644
--- a/src/controllers/rpc/update-rpc-controller.js
+++ b/src/controllers/rpc/update-rpc-controller.js
@@ -1,8 +1,5 @@
import BaseController from './base-rpc-controller.js';
-import {
- CONTENT_ASSET_HASH_FUNCTION_ID,
- NETWORK_MESSAGE_TYPES,
-} from '../../constants/constants.js';
+import { NETWORK_MESSAGE_TYPES } from '../../constants/constants.js';
class UpdateController extends BaseController {
constructor(ctx) {
@@ -13,7 +10,7 @@ class UpdateController extends BaseController {
}
async v1_0_0HandleRequest(message, remotePeerId, protocol) {
- const { operationId, keywordUuid, messageType } = message.header;
+ const { operationId, messageType } = message.header;
const command = { sequence: [], delay: 0, transactional: false, data: {} };
let dataSource;
@@ -24,8 +21,6 @@ class UpdateController extends BaseController {
command.name = handleInitCommand;
command.period = 5000;
command.retries = 3;
- command.data.proximityScoreFunctionsPairId =
- dataSource.proximityScoreFunctionsPairId ?? 1;
break;
case NETWORK_MESSAGE_TYPES.REQUESTS.PROTOCOL_REQUEST:
// eslint-disable-next-line no-case-declarations
@@ -35,11 +30,6 @@ class UpdateController extends BaseController {
assertion: message.data.assertion,
});
command.name = handleRequestCommand;
- command.data.keyword = message.data.keyword;
- command.data.agreementId = dataSource.agreementId;
- command.data.agreementData = dataSource.agreementData;
- command.data.proximityScoreFunctionsPairId =
- dataSource.agreementData.scoreFunctionId ?? 1;
break;
default:
throw Error('unknown message type');
@@ -49,14 +39,11 @@ class UpdateController extends BaseController {
...command.data,
remotePeerId,
operationId,
- keywordUuid,
protocol,
assertionId: dataSource.assertionId,
blockchain: dataSource.blockchain,
contract: dataSource.contract,
tokenId: dataSource.tokenId,
- keyword: dataSource.keyword,
- hashFunctionId: dataSource.hashFunctionId ?? CONTENT_ASSET_HASH_FUNCTION_ID,
};
await this.commandExecutor.add(command);
diff --git a/src/logger/logger.js b/src/logger/logger.js
index d98978426c..c1641ab432 100644
--- a/src/logger/logger.js
+++ b/src/logger/logger.js
@@ -15,7 +15,14 @@ class Logger {
translateTime: 'yyyy-mm-dd HH:MM:ss',
ignore: 'pid,hostname,Event_name,Operation_name,Id_operation',
hideObject: true,
- messageFormat: (log, messageKey) => `${log[messageKey]}`,
+ messageFormat: (log, messageKey) => {
+ const { commandId, commandName, operationId } = log;
+ let context = '';
+ if (operationId) context += `{Operation ID: ${operationId}} `;
+ if (commandName) context += `[${commandName}] `;
+ if (commandId) context += `(Command ID: ${commandId}) `;
+ return `${context} ${log[messageKey]}`;
+ },
});
this.pinoLogger = pino(
{
@@ -33,6 +40,10 @@ class Logger {
}
}
+ child(bindings) {
+ return this.pinoLogger.child(bindings, {});
+ }
+
restart() {
this.initialize(this.logLevel, true);
}
diff --git a/src/migration/blockchain-identity-migration.js b/src/migration/blockchain-identity-migration.js
deleted file mode 100644
index fb697a1ee0..0000000000
--- a/src/migration/blockchain-identity-migration.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import path from 'path';
-import appRootPath from 'app-root-path';
-import BaseMigration from './base-migration.js';
-import { NODE_ENVIRONMENTS } from '../constants/constants.js';
-
-class BlockchainIdentityMigration extends BaseMigration {
- async executeMigration() {
- if (
- process.env.NODE_ENV !== NODE_ENVIRONMENTS.DEVELOPMENT &&
- process.env.NODE_ENV !== NODE_ENVIRONMENTS.TEST
- ) {
- const configurationFolderPath = path.join(appRootPath.path, '..');
- const configurationFilePath = path.join(
- configurationFolderPath,
- this.config.configFilename,
- );
-
- const config = await this.fileService.readFile(configurationFilePath, true);
- for (const blockchainImpl in config.modules.blockchain.implementation) {
- delete config.modules.blockchain.implementation[blockchainImpl].config.identity;
- }
- await this.fileService.writeContentsToFile(
- configurationFolderPath,
- this.config.configFilename,
- JSON.stringify(config, null, 4),
- );
- }
- }
-}
-
-export default BlockchainIdentityMigration;
diff --git a/src/migration/clean-operational-database-migration.js b/src/migration/clean-operational-database-migration.js
deleted file mode 100644
index e65847384e..0000000000
--- a/src/migration/clean-operational-database-migration.js
+++ /dev/null
@@ -1,21 +0,0 @@
-import BaseMigration from './base-migration.js';
-import { NODE_ENVIRONMENTS } from '../constants/constants.js';
-
-class CleanOperationalDatabaseMigration extends BaseMigration {
- constructor(migrationName, logger, config, repositoryModuleManager) {
- super(migrationName, logger, config);
- this.repositoryModuleManager = repositoryModuleManager;
- }
-
- async executeMigration() {
- if (
- process.env.NODE_ENV !== NODE_ENVIRONMENTS.DEVELOPMENT &&
- process.env.NODE_ENV !== NODE_ENVIRONMENTS.TEST
- ) {
- this.logger.info('Dropping old operational database.');
- await this.repositoryModuleManager.dropDatabase();
- }
- }
-}
-
-export default CleanOperationalDatabaseMigration;
diff --git a/src/migration/clean-sharding-table-migration.js b/src/migration/clean-sharding-table-migration.js
deleted file mode 100644
index 7eb37a7328..0000000000
--- a/src/migration/clean-sharding-table-migration.js
+++ /dev/null
@@ -1,27 +0,0 @@
-import BaseMigration from './base-migration.js';
-import { CONTRACTS, NODE_ENVIRONMENTS } from '../constants/constants.js';
-
-class CleanShardingTableMigration extends BaseMigration {
- constructor(migrationName, logger, config, repositoryModuleManager) {
- super(migrationName, logger, config);
- this.repositoryModuleManager = repositoryModuleManager;
- }
-
- async executeMigration() {
- if (
- process.env.NODE_ENV !== NODE_ENVIRONMENTS.DEVELOPMENT &&
- process.env.NODE_ENV !== NODE_ENVIRONMENTS.TEST
- ) {
- this.logger.info('Removing all entries from local sharding table');
- await this.repositoryModuleManager.cleanShardingTable();
- await this.repositoryModuleManager.removeBlockchainEvents(
- CONTRACTS.SHARDING_TABLE_CONTRACT,
- );
- await this.repositoryModuleManager.removeLastCheckedBlockForContract(
- CONTRACTS.SHARDING_TABLE_CONTRACT,
- );
- }
- }
-}
-
-export default CleanShardingTableMigration;
diff --git a/src/migration/devnet-neuro-pruning-migration.js b/src/migration/devnet-neuro-pruning-migration.js
deleted file mode 100644
index 1fb9d6ca27..0000000000
--- a/src/migration/devnet-neuro-pruning-migration.js
+++ /dev/null
@@ -1,34 +0,0 @@
-import BaseMigration from './base-migration.js';
-import { NODE_ENVIRONMENTS } from '../constants/constants.js';
-
-class DevnetNeuroPruningMigration extends BaseMigration {
- constructor(migrationName, logger, config, repositoryModuleManager) {
- super(migrationName, logger, config);
- this.repositoryModuleManager = repositoryModuleManager;
- }
-
- async executeMigration() {
- if (process.env.NODE_ENV === NODE_ENVIRONMENTS.DEVNET) {
- this.logger.info('Pruning Neuro devenet tables');
- // commands are not here as parsing JSON in SQL would take too much time
- const tables = [
- 'blockchain',
- 'blockchain_event',
- 'event',
- 'missed_paranet_asset',
- 'paranet',
- 'service_agreement',
- 'shard',
- ];
- for (const table of tables) {
- const query = `
- DELETE FROM ${table}
- WHERE blockchain_id = 'otp:2160'`;
- // eslint-disable-next-line no-await-in-loop
- await this.repositoryModuleManager.query(query);
- }
- }
- }
-}
-
-export default DevnetNeuroPruningMigration;
diff --git a/src/migration/get-old-service-agreements-migration.js b/src/migration/get-old-service-agreements-migration.js
deleted file mode 100644
index dd6f33d65b..0000000000
--- a/src/migration/get-old-service-agreements-migration.js
+++ /dev/null
@@ -1,133 +0,0 @@
-import BaseMigration from './base-migration.js';
-import { SERVICE_AGREEMENT_SOURCES } from '../constants/constants.js';
-
-const BATCH_SIZE = 50;
-const GNOSIS_MAINNET_CHAIN_ID = 'gnosis:100';
-const GNOSIS_MAINNET_ASSET_STORAGE_CONTRACT_ADDRESS = '0xf81a8c0008de2dcdb73366cf78f2b178616d11dd';
-
-class GetOldServiceAgreementsMigration extends BaseMigration {
- constructor(
- migrationName,
- logger,
- config,
- repositoryModuleManager,
- blockchainModuleManager,
- serviceAgreementService,
- ) {
- super(migrationName, logger, config);
- this.repositoryModuleManager = repositoryModuleManager;
- this.blockchainModuleManager = blockchainModuleManager;
- this.serviceAgreementService = serviceAgreementService;
- }
-
- async executeMigration() {
- const blockchainId = this.blockchainModuleManager
- .getImplementationNames()
- .find((s) => s === GNOSIS_MAINNET_CHAIN_ID);
-
- if (blockchainId) {
- const contract = GNOSIS_MAINNET_ASSET_STORAGE_CONTRACT_ADDRESS;
-
- const existingTokenIds =
- await this.repositoryModuleManager.getServiceAgreementsTokenIds(0, blockchainId);
-
- const latestTokenId = Number(
- await this.blockchainModuleManager.getLatestTokenId(blockchainId, contract),
- );
-
- const missingTokenIds = [];
- let expectedTokenId = 0;
- existingTokenIds.forEach((serviceAgreement) => {
- while (serviceAgreement.tokenId > expectedTokenId) {
- missingTokenIds.push(expectedTokenId);
- expectedTokenId += 1;
- }
- expectedTokenId += 1;
- });
-
- for (
- let i = (existingTokenIds[existingTokenIds.length - 1] ?? -1) + 1;
- i <= latestTokenId;
- i += 1
- ) {
- missingTokenIds.push(i);
- }
-
- let batchNumber = 0;
- // Check < or <= condition
- while (batchNumber * BATCH_SIZE < missingTokenIds.length) {
- const promises = [];
- for (
- let i = batchNumber * BATCH_SIZE;
- i < missingTokenIds.length && i < (batchNumber + 1) * BATCH_SIZE;
- i += 1
- ) {
- const tokenIdToBeFetched = missingTokenIds[i];
- promises.push(
- this.getAndProcessMissingServiceAgreement(
- tokenIdToBeFetched,
- blockchainId,
- contract,
- ),
- );
- }
-
- // eslint-disable-next-line no-await-in-loop
- const missingAgreements = await Promise.all(promises);
-
- // eslint-disable-next-line no-await-in-loop
- await this.repositoryModuleManager.bulkCreateServiceAgreementRecords(
- missingAgreements.filter((agreement) => agreement != null),
- );
- batchNumber += 1;
- }
- }
- }
-
- async getAndProcessMissingServiceAgreement(tokenIdToBeFetched, blockchainId, contract) {
- try {
- const assertionIds = await this.blockchainModuleManager.getAssertionIds(
- blockchainId,
- contract,
- tokenIdToBeFetched,
- );
- const keyword = this.blockchainModuleManager.encodePacked(
- blockchainId,
- ['address', 'bytes32'],
- [contract, assertionIds[0]],
- );
- const agreementId = this.serviceAgreementService.generateId(
- blockchainId,
- contract,
- tokenIdToBeFetched,
- keyword,
- 1,
- );
- const agreementData = await this.blockchainModuleManager.getAgreementData(
- blockchainId,
- agreementId,
- );
- return {
- blockchainId,
- assetStorageContractAddress: contract,
- tokenId: tokenIdToBeFetched,
- agreementId,
- startTime: agreementData?.startTime ?? 0,
- epochsNumber: agreementData?.epochsNumber ?? 0,
- epochLength: agreementData?.epochLength ?? 0,
- scoreFunctionId: agreementData?.scoreFunctionId ?? 0,
- stateIndex: 0,
- assertionId: assertionIds[0],
- hashFunctionId: 1,
- keyword,
- proofWindowOffsetPerc: agreementData?.proofWindowOffsetPerc ?? 0,
- dataSource: SERVICE_AGREEMENT_SOURCES.BLOCKCHAIN,
- };
- } catch (error) {
- this.logger.warn(`Unable to fetch agreement data for token id: ${tokenIdToBeFetched}`);
- return null;
- }
- }
-}
-
-export default GetOldServiceAgreementsMigration;
diff --git a/src/migration/mark-old-blockchain-events-as-processed-migration.js b/src/migration/mark-old-blockchain-events-as-processed-migration.js
deleted file mode 100644
index 78e69904fd..0000000000
--- a/src/migration/mark-old-blockchain-events-as-processed-migration.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import BaseMigration from './base-migration.js';
-
-class MarkOldBlockchainEventsAsProcessedMigration extends BaseMigration {
- constructor(migrationName, logger, config, repositoryModuleManager) {
- super(migrationName, logger, config);
- this.repositoryModuleManager = repositoryModuleManager;
- }
-
- async executeMigration() {
- this.logger.info('Marking old blockchain events as processed');
- const timestamp = Date.now();
- const query = `update blockchain_event
- set processed = true
- where created_at < FROM_UNIXTIME(${timestamp / 1000})`;
- await this.repositoryModuleManager.query(query);
- }
-}
-
-export default MarkOldBlockchainEventsAsProcessedMigration;
diff --git a/src/migration/mark-staking-events-as-processed-migration.js b/src/migration/mark-staking-events-as-processed-migration.js
deleted file mode 100644
index 2fe63ac39d..0000000000
--- a/src/migration/mark-staking-events-as-processed-migration.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/* eslint-disable no-await-in-loop */
-import BaseMigration from './base-migration.js';
-
-class MarkStakingEventsAsProcessedMigration extends BaseMigration {
- constructor(migrationName, logger, config, repositoryModuleManager, blockchainModuleManager) {
- super(migrationName, logger, config);
- this.repositoryModuleManager = repositoryModuleManager;
- this.blockchainModuleManager = blockchainModuleManager;
- }
-
- async executeMigration() {
- this.logger.info('Marking old blockchain events as processed');
- for (const blockchain of this.blockchainModuleManager.getImplementationNames()) {
- const timestamp = Date.now();
- const block = await this.blockchainModuleManager.getLatestBlock(blockchain);
- const query = `update blockchain
- set last_checked_block = ${block.number},
- last_checked_timestamp = ${timestamp}
- where blockchain_id = 'otp:2043'`;
- await this.repositoryModuleManager.query(query);
- }
- }
-}
-
-export default MarkStakingEventsAsProcessedMigration;
diff --git a/src/migration/migration-executor.js b/src/migration/migration-executor.js
index 8e26b5c9ab..8c0321c77a 100644
--- a/src/migration/migration-executor.js
+++ b/src/migration/migration-executor.js
@@ -1,529 +1,28 @@
import path from 'path';
+
import { NODE_ENVIRONMENTS } from '../constants/constants.js';
-import PullBlockchainShardingTableMigration from './pull-sharding-table-migration.js';
-import PrivateAssetsMetadataMigration from './private-assets-metadata-migration.js';
-import TelemetryModuleUserConfigurationMigration from './telemetry-module-user-configuration-migration.js';
import TripleStoreUserConfigurationMigration from './triple-store-user-configuration-migration.js';
-import ServiceAgreementsMetadataMigration from './service-agreements-metadata-migration.js';
-import RemoveAgreementStartEndTimeMigration from './remove-agreement-start-end-time-migration.js';
-import TripleStoreMetadataMigration from './triple-store-metadata-migration.js';
-import RemoveOldEpochCommandsMigration from './remove-old-epoch-commands-migration.js';
-import PendingStorageMigration from './pending-storage-migration.js';
-import MarkOldBlockchainEventsAsProcessedMigration from './mark-old-blockchain-events-as-processed-migration.js';
-import ServiceAgreementsDataInspector from './service-agreements-data-inspector.js';
-import ServiceAgreementsInvalidDataMigration from './service-agreements-invalid-data-migration.js';
-import UalExtensionUserConfigurationMigration from './ual-extension-user-configuration-migration.js';
-import UalExtensionTripleStoreMigration from './ual-extension-triple-store-migration.js';
-import MarkStakingEventsAsProcessedMigration from './mark-staking-events-as-processed-migration.js';
-import RemoveServiceAgreementsForChiadoMigration from './remove-service-agreements-for-chiado-migration.js';
-import MultipleOpWalletsUserConfigurationMigration from './multiple-op-wallets-user-configuration-migration.js';
-import GetOldServiceAgreementsMigration from './get-old-service-agreements-migration.js';
-import ServiceAgreementPruningMigration from './service-agreement-pruning-migration.js';
-import RemoveDuplicateServiceAgreementMigration from './remove-duplicate-service-agreement-migration.js';
-import DevnetNeuroPruningMigration from './devnet-neuro-pruning-migration.js';
class MigrationExecutor {
- static async executePullShardingTableMigration(container, logger, config) {
- if (
- process.env.NODE_ENV === NODE_ENVIRONMENTS.DEVELOPMENT ||
- process.env.NODE_ENV === NODE_ENVIRONMENTS.TEST
- )
- return;
-
- const blockchainModuleManager = container.resolve('blockchainModuleManager');
- const repositoryModuleManager = container.resolve('repositoryModuleManager');
- const validationModuleManager = container.resolve('validationModuleManager');
-
- const migration = new PullBlockchainShardingTableMigration(
- 'pullShardingTableMigrationV620Hotfix11',
- logger,
- config,
- repositoryModuleManager,
- blockchainModuleManager,
- validationModuleManager,
- );
- if (!(await migration.migrationAlreadyExecuted())) {
- await migration.migrate();
- }
- }
-
- static async executePrivateAssetsMetadataMigration(container, logger, config) {
+ static async executeTripleStoreUserConfigurationMigration(container, logger, config) {
if (
process.env.NODE_ENV === NODE_ENVIRONMENTS.DEVELOPMENT ||
- process.env.NODE_ENV === NODE_ENVIRONMENTS.TEST
- )
- return;
- const blockchainModuleManager = container.resolve('blockchainModuleManager');
- const tripleStoreService = container.resolve('tripleStoreService');
- const serviceAgreementService = container.resolve('serviceAgreementService');
- const ualService = container.resolve('ualService');
- const dataService = container.resolve('dataService');
-
- const migration = new PrivateAssetsMetadataMigration(
- 'privateAssetsMetadataMigration',
- logger,
- config,
- tripleStoreService,
- blockchainModuleManager,
- serviceAgreementService,
- ualService,
- dataService,
- );
-
- if (!(await migration.migrationAlreadyExecuted())) {
- await migration.migrate();
- logger.info('Node will now restart!');
- MigrationExecutor.exitNode(1);
- }
- }
-
- static async executeTelemetryModuleUserConfigurationMigration(logger, config) {
- if (
- process.env.NODE_ENV === NODE_ENVIRONMENTS.DEVELOPMENT ||
- process.env.NODE_ENV === NODE_ENVIRONMENTS.TEST
- )
- return;
-
- const migration = new TelemetryModuleUserConfigurationMigration(
- 'telemetryModuleUserConfigurationMigration',
- logger,
- config,
- );
- if (!(await migration.migrationAlreadyExecuted())) {
- await migration.migrate();
- logger.info('Node will now restart!');
- MigrationExecutor.exitNode(1);
- }
- }
-
- static async executeTripleStoreUserConfigurationMigration(logger, config) {
- if (
- process.env.NODE_ENV === NODE_ENVIRONMENTS.DEVELOPMENT ||
- process.env.NODE_ENV === NODE_ENVIRONMENTS.TEST
+ process.env.NODE_ENV === NODE_ENVIRONMENTS.TEST ||
+ process.env.NODE_ENV === NODE_ENVIRONMENTS.DEVNET
)
return;
const migration = new TripleStoreUserConfigurationMigration(
- 'tripleStoreUserConfigurationMigration',
- logger,
- config,
- );
- if (!(await migration.migrationAlreadyExecuted())) {
- await migration.migrate();
- logger.info('Node will now restart!');
- MigrationExecutor.exitNode(1);
- }
- }
-
- static async executeServiceAgreementsMetadataMigration(container, logger, config) {
- if (
- process.env.NODE_ENV === NODE_ENVIRONMENTS.DEVELOPMENT ||
- process.env.NODE_ENV === NODE_ENVIRONMENTS.TEST
- )
- return;
-
- const blockchainModuleManager = container.resolve('blockchainModuleManager');
- const repositoryModuleManager = container.resolve('repositoryModuleManager');
- const tripleStoreService = container.resolve('tripleStoreService');
- const serviceAgreementService = container.resolve('serviceAgreementService');
- const ualService = container.resolve('ualService');
-
- const migration = new ServiceAgreementsMetadataMigration(
- 'serviceAgreementsMetadataMigration',
- logger,
- config,
- tripleStoreService,
- blockchainModuleManager,
- repositoryModuleManager,
- serviceAgreementService,
- ualService,
- );
- if (!(await migration.migrationAlreadyExecuted())) {
- await migration.migrate();
- }
- }
-
- static async executeRemoveAgreementStartEndTimeMigration(container, logger, config) {
- if (
- process.env.NODE_ENV === NODE_ENVIRONMENTS.DEVELOPMENT ||
- process.env.NODE_ENV === NODE_ENVIRONMENTS.TEST
- )
- return;
-
- const tripleStoreService = container.resolve('tripleStoreService');
-
- const migration = new RemoveAgreementStartEndTimeMigration(
- 'removeAgreementStartEndTimeMigration',
- logger,
- config,
- tripleStoreService,
- );
- if (!(await migration.migrationAlreadyExecuted())) {
- await migration.migrate();
- }
- }
-
- static async executeTripleStoreMetadataMigration(container, logger, config) {
- if (
- process.env.NODE_ENV === NODE_ENVIRONMENTS.DEVELOPMENT ||
- process.env.NODE_ENV === NODE_ENVIRONMENTS.TEST
- )
- return;
- const blockchainModuleManager = container.resolve('blockchainModuleManager');
- const tripleStoreService = container.resolve('tripleStoreService');
- const serviceAgreementService = container.resolve('serviceAgreementService');
- const ualService = container.resolve('ualService');
- const dataService = container.resolve('dataService');
-
- const migration = new TripleStoreMetadataMigration(
- 'tripleStoreMetadataMigration',
- logger,
- config,
- tripleStoreService,
- blockchainModuleManager,
- serviceAgreementService,
- ualService,
- dataService,
- );
-
- if (!(await migration.migrationAlreadyExecuted())) {
- await migration.migrate();
- }
- }
-
- static async executeRemoveOldEpochCommandsMigration(container, logger, config) {
- if (
- process.env.NODE_ENV === NODE_ENVIRONMENTS.DEVELOPMENT ||
- process.env.NODE_ENV === NODE_ENVIRONMENTS.TEST
- )
- return;
-
- const repositoryModuleManager = container.resolve('repositoryModuleManager');
-
- const migration = new RemoveOldEpochCommandsMigration(
- 'removeOldEpochCommandsMigration',
- logger,
- config,
- repositoryModuleManager,
- );
- if (!(await migration.migrationAlreadyExecuted())) {
- await migration.migrate();
- }
- }
-
- static async executePendingStorageMigration(logger, config) {
- if (
- process.env.NODE_ENV === NODE_ENVIRONMENTS.DEVELOPMENT ||
- process.env.NODE_ENV === NODE_ENVIRONMENTS.TEST
- )
- return;
-
- const migration = new PendingStorageMigration('pendingStorageMigration', logger, config);
- if (!(await migration.migrationAlreadyExecuted())) {
- await migration.migrate();
- }
- }
-
- static async executeMarkOldBlockchainEventsAsProcessedMigration(container, logger, config) {
- if (
- process.env.NODE_ENV === NODE_ENVIRONMENTS.DEVELOPMENT ||
- process.env.NODE_ENV === NODE_ENVIRONMENTS.TEST
- )
- return;
-
- const repositoryModuleManager = container.resolve('repositoryModuleManager');
-
- const migration = new MarkOldBlockchainEventsAsProcessedMigration(
- 'markOldBlockchainEventsAsProcessedMigration',
- logger,
- config,
- repositoryModuleManager,
- );
- if (!(await migration.migrationAlreadyExecuted())) {
- await migration.migrate();
- }
- }
-
- static async executeServiceAgreementsDataInspector(container, logger, config) {
- if (
- process.env.NODE_ENV === NODE_ENVIRONMENTS.DEVELOPMENT ||
- process.env.NODE_ENV === NODE_ENVIRONMENTS.TEST
- )
- return;
-
- const blockchainModuleManager = container.resolve('blockchainModuleManager');
- const repositoryModuleManager = container.resolve('repositoryModuleManager');
- const tripleStoreService = container.resolve('tripleStoreService');
- const ualService = container.resolve('ualService');
- const serviceAgreementService = container.resolve('serviceAgreementService');
-
- const migration = new ServiceAgreementsDataInspector(
- 'serviceAgreementsDataInspector',
- logger,
- config,
- blockchainModuleManager,
- repositoryModuleManager,
- tripleStoreService,
- ualService,
- serviceAgreementService,
- );
- if (!(await migration.migrationAlreadyExecuted())) {
- await migration.migrate();
- logger.info('Node will now restart!');
- MigrationExecutor.exitNode(1);
- }
- }
-
- static async executeServiceAgreementsInvalidDataMigration(container, logger, config) {
- if (
- process.env.NODE_ENV === NODE_ENVIRONMENTS.DEVELOPMENT ||
- process.env.NODE_ENV === NODE_ENVIRONMENTS.TEST
- )
- return;
-
- const repositoryModuleManager = container.resolve('repositoryModuleManager');
- const tripleStoreService = container.resolve('tripleStoreService');
-
- const migration = new ServiceAgreementsInvalidDataMigration(
- 'serviceAgreementsInvalidDataMigration',
- logger,
- config,
- repositoryModuleManager,
- tripleStoreService,
- );
- if (
- (await migration.migrationAlreadyExecuted('serviceAgreementsDataInspector')) &&
- !(await migration.migrationAlreadyExecuted())
- ) {
- await migration.migrate();
- }
- }
-
- static async executeUalExtensionUserConfigurationMigration(logger, config) {
- if (
- process.env.NODE_ENV === NODE_ENVIRONMENTS.DEVELOPMENT ||
- process.env.NODE_ENV === NODE_ENVIRONMENTS.TEST
- )
- return;
-
- const migration = new UalExtensionUserConfigurationMigration(
- 'ualExtensionUserConfigurationMigration',
- logger,
- config,
- );
- if (!(await migration.migrationAlreadyExecuted())) {
- await migration.migrate();
- logger.info('Node will now restart!');
- this.exitNode(1);
- }
- }
-
- static async executeUalExtensionTripleStoreMigration(container, logger, config) {
- if (
- process.env.NODE_ENV === NODE_ENVIRONMENTS.DEVELOPMENT ||
- process.env.NODE_ENV === NODE_ENVIRONMENTS.TEST
- )
- return;
-
- const tripleStoreService = container.resolve('tripleStoreService');
-
- const migration = new UalExtensionTripleStoreMigration(
- 'ualExtensionTripleStoreMigration',
- logger,
- config,
- tripleStoreService,
- );
- if (!(await migration.migrationAlreadyExecuted())) {
- try {
- await migration.migrate();
- } catch (error) {
- logger.error(
- `Unable to execute ual extension triple store migration. Error: ${error.message}`,
- );
- this.exitNode(1);
- }
- }
- }
-
- static async executeMarkStakingEventsAsProcessedMigration(container, logger, config) {
- if (process.env.NODE_ENV !== NODE_ENVIRONMENTS.MAINNET) return;
-
- const repositoryModuleManager = container.resolve('repositoryModuleManager');
- const blockchainModuleManager = container.resolve('blockchainModuleManager');
-
- const migration = new MarkStakingEventsAsProcessedMigration(
- 'markStakingEventsAsProcessedMigration',
- logger,
- config,
- repositoryModuleManager,
- blockchainModuleManager,
- );
- if (!(await migration.migrationAlreadyExecuted())) {
- try {
- await migration.migrate();
- } catch (error) {
- logger.error(
- `Unable to execute mark staking events as processed migration. Error: ${error.message}`,
- );
- this.exitNode(1);
- }
- }
- }
-
- static async executeRemoveServiceAgreementsForChiadoMigration(container, logger, config) {
- if (
- process.env.NODE_ENV === NODE_ENVIRONMENTS.DEVNET ||
- process.env.NODE_ENV === NODE_ENVIRONMENTS.TESTNET
- ) {
- const repositoryModuleManager = container.resolve('repositoryModuleManager');
-
- const migration = new RemoveServiceAgreementsForChiadoMigration(
- 'removeServiceAgreementsForChiadoMigrationV6.2.0.Hotfix11',
- logger,
- config,
- repositoryModuleManager,
- );
- if (!(await migration.migrationAlreadyExecuted())) {
- try {
- await migration.migrate();
- } catch (error) {
- logger.error(
- `Unable to execute remove service agreements for Chiado migration. Error: ${error.message}`,
- );
- this.exitNode(1);
- }
- }
- }
- }
-
- static async executeMultipleOpWalletsUserConfigurationMigration(container, logger, config) {
- if (
- process.env.NODE_ENV === NODE_ENVIRONMENTS.DEVELOPMENT ||
- process.env.NODE_ENV === NODE_ENVIRONMENTS.TEST
- )
- return;
-
- const migration = new MultipleOpWalletsUserConfigurationMigration(
- 'multipleOpWalletsUserConfigurationMigration',
- logger,
- config,
- );
- if (!(await migration.migrationAlreadyExecuted())) {
- try {
- await migration.migrate();
- } catch (error) {
- logger.error(
- `Unable to execute multiple op wallets user configuration migration. Error: ${error.message}`,
- );
- }
- }
- }
-
- static async executeGetOldServiceAgreementsMigration(container, logger, config) {
- if (process.env.NODE_ENV !== NODE_ENVIRONMENTS.MAINNET) return;
-
- const repositoryModuleManager = container.resolve('repositoryModuleManager');
- const blockchainModuleManager = container.resolve('blockchainModuleManager');
- const serviceAgreementService = container.resolve('serviceAgreementService');
-
- const migration = new GetOldServiceAgreementsMigration(
- 'getOldServiceAgreementsMigrationv623',
- logger,
- config,
- repositoryModuleManager,
- blockchainModuleManager,
- serviceAgreementService,
- );
- if (!(await migration.migrationAlreadyExecuted())) {
- try {
- await migration.migrate();
- } catch (error) {
- logger.error(
- `Unable to execute get old service agreements migration. Error: ${error.message}`,
- );
- }
- }
- }
-
- static async executeServiceAgreementPruningMigration(container, logger, config) {
- if (
- process.env.NODE_ENV === NODE_ENVIRONMENTS.DEVELOPMENT ||
- process.env.NODE_ENV === NODE_ENVIRONMENTS.TEST
- )
- return;
-
- const repositoryModuleManager = container.resolve('repositoryModuleManager');
- const blockchainModuleManager = container.resolve('blockchainModuleManager');
- const serviceAgreementService = container.resolve('serviceAgreementService');
-
- const migration = new ServiceAgreementPruningMigration(
- 'serviceAgreementPruningMigration',
- logger,
- config,
- repositoryModuleManager,
- blockchainModuleManager,
- serviceAgreementService,
- );
- if (!(await migration.migrationAlreadyExecuted())) {
- try {
- await migration.migrate();
- } catch (error) {
- logger.error(
- `Unable to execute service agreement pruning migration. Error: ${error.message}`,
- );
- }
- }
- }
-
- static async executeRemoveDuplicateServiceAgreementMigration(container, logger, config) {
- if (
- process.env.NODE_ENV === NODE_ENVIRONMENTS.DEVELOPMENT ||
- process.env.NODE_ENV === NODE_ENVIRONMENTS.TEST
- )
- return;
-
- const repositoryModuleManager = container.resolve('repositoryModuleManager');
- const blockchainModuleManager = container.resolve('blockchainModuleManager');
-
- const migration = new RemoveDuplicateServiceAgreementMigration(
- 'removeDuplicateServiceAgreementMigration',
- logger,
- config,
- repositoryModuleManager,
- blockchainModuleManager,
- );
- if (!(await migration.migrationAlreadyExecuted())) {
- try {
- await migration.migrate();
- } catch (error) {
- logger.error(
- `Unable to execute remove duplicate service agreement migration. Error: ${error.message}`,
- );
- }
- }
- }
-
- static async executeDevnetNeuroPruningMigration(container, logger, config) {
- if (
- process.env.NODE_ENV === NODE_ENVIRONMENTS.DEVELOPMENT ||
- process.env.NODE_ENV === NODE_ENVIRONMENTS.TEST
- )
- return;
-
- const repositoryModuleManager = container.resolve('repositoryModuleManager');
-
- const migration = new DevnetNeuroPruningMigration(
- 'devnetNeuroPruningMigration',
+ 'tripleStoreUserConfigurationMigrationV8',
logger,
config,
- repositoryModuleManager,
);
if (!(await migration.migrationAlreadyExecuted())) {
try {
await migration.migrate();
} catch (error) {
logger.error(
- `Unable to execute devnet neuro pruning migration. Error: ${error.message}`,
+ `Unable to execute triple store user configuration migration. Error: ${error.message}`,
);
}
}
diff --git a/src/migration/multiple-op-wallets-user-configuration-migration.js b/src/migration/multiple-op-wallets-user-configuration-migration.js
deleted file mode 100644
index 7ef95b512a..0000000000
--- a/src/migration/multiple-op-wallets-user-configuration-migration.js
+++ /dev/null
@@ -1,56 +0,0 @@
-import appRootPath from 'app-root-path';
-import path from 'path';
-import BaseMigration from './base-migration.js';
-
-class MultipleOpWalletsUserConfigurationMigration extends BaseMigration {
- constructor(migrationName, logger, config, repositoryModuleManager) {
- super(migrationName, logger, config);
- this.repositoryModuleManager = repositoryModuleManager;
- }
-
- async executeMigration() {
- const configurationFolderPath = path.join(appRootPath.path, '..');
- const configurationFilePath = path.join(
- configurationFolderPath,
- this.config.configFilename,
- );
-
- const userConfiguration = await this.fileService.readFile(configurationFilePath, true);
-
- for (const blockchainId in userConfiguration?.modules?.blockchain?.implementation) {
- const blockchain = userConfiguration.modules.blockchain.implementation[blockchainId];
-
- if (!blockchain?.config.operationalWallets) {
- try {
- blockchain.config.operationalWallets = [
- {
- evmAddress: blockchain.config.evmOperationalWalletPublicKey ?? '',
- privateKey: blockchain.config.evmOperationalWalletPrivateKey ?? '',
- },
- ];
- delete blockchain.config.evmOperationalWalletPublicKey;
- delete blockchain.config.evmOperationalWalletPrivateKey;
- this.logger.trace(
- `${this.migrationName}: User configuration updated for blockchain: ${blockchainId}`,
- );
- } catch (error) {
- this.logger.warn(
- `${this.migrationName}: Error while updating user configuration for blockchain: ${blockchainId}, error: ${error}`,
- );
- }
- } else {
- this.logger.trace(
- `${this.migrationName}: Skipping user configuration update for blockchain: ${blockchainId}. Configuration in new format.`,
- );
- }
- }
-
- await this.fileService.writeContentsToFile(
- configurationFolderPath,
- this.config.configFilename,
- JSON.stringify(userConfiguration, null, 4),
- );
- }
-}
-
-export default MultipleOpWalletsUserConfigurationMigration;
diff --git a/src/migration/network-private-key-migration.js b/src/migration/network-private-key-migration.js
deleted file mode 100644
index 70a18b1e8e..0000000000
--- a/src/migration/network-private-key-migration.js
+++ /dev/null
@@ -1,40 +0,0 @@
-import { join } from 'path';
-import appRootPath from 'app-root-path';
-import BaseMigration from './base-migration.js';
-import { LIBP2P_KEY_DIRECTORY, LIBP2P_KEY_FILENAME } from '../constants/constants.js';
-
-class NetworkPrivateKeyMigration extends BaseMigration {
- async executeMigration() {
- const networkPrivateKey =
- this.config.modules?.network?.implementation?.['libp2p-service']?.config?.privateKey;
-
- if (networkPrivateKey) {
- let directoryPath;
- if (
- process.env.NODE_ENV === 'testnet' ||
- process.env.NODE_ENV === 'mainnet' ||
- process.env.NODE_ENV === 'devnet'
- ) {
- directoryPath = join(
- appRootPath.path,
- '..',
- this.config.appDataPath,
- LIBP2P_KEY_DIRECTORY,
- );
- } else {
- directoryPath = join(
- appRootPath.path,
- this.config.appDataPath,
- LIBP2P_KEY_DIRECTORY,
- );
- }
- await this.fileService.writeContentsToFile(
- directoryPath,
- LIBP2P_KEY_FILENAME,
- networkPrivateKey,
- );
- }
- }
-}
-
-export default NetworkPrivateKeyMigration;
diff --git a/src/migration/pending-storage-migration.js b/src/migration/pending-storage-migration.js
deleted file mode 100644
index 040cf491a5..0000000000
--- a/src/migration/pending-storage-migration.js
+++ /dev/null
@@ -1,38 +0,0 @@
-import path from 'path';
-import { calculateRoot } from 'assertion-tools';
-import { PENDING_STORAGE_REPOSITORIES } from '../constants/constants.js';
-import BaseMigration from './base-migration.js';
-
-class PendingStorageMigration extends BaseMigration {
- async executeMigration() {
- const promises = Object.values(PENDING_STORAGE_REPOSITORIES).map(async (repository) => {
- let fileNames;
- const repositoryPath = this.fileService.getPendingStorageCachePath(repository);
- try {
- fileNames = await this.fileService.readDirectory(repositoryPath);
- } catch (error) {
- return false;
- }
-
- await Promise.all(
- fileNames.map(async (fileName) => {
- const newDirectoryPath = path.join(repositoryPath, fileName);
- const cachedData = await this.fileService.readFile(newDirectoryPath, true);
- await this.fileService.removeFile(newDirectoryPath);
- if (cachedData?.public?.assertion) {
- const newDocumentName = calculateRoot(cachedData.public.assertion);
- await this.fileService.writeContentsToFile(
- newDirectoryPath,
- newDocumentName,
- JSON.stringify(cachedData),
- );
- }
- }),
- );
- });
-
- await Promise.all(promises);
- }
-}
-
-export default PendingStorageMigration;
diff --git a/src/migration/private-assets-metadata-migration.js b/src/migration/private-assets-metadata-migration.js
deleted file mode 100644
index 3558c8aa68..0000000000
--- a/src/migration/private-assets-metadata-migration.js
+++ /dev/null
@@ -1,154 +0,0 @@
-/* eslint-disable no-await-in-loop */
-import BaseMigration from './base-migration.js';
-import { TRIPLE_STORE_REPOSITORIES } from '../constants/constants.js';
-
-class PrivateAssetsMetadataMigration extends BaseMigration {
- constructor(
- migrationName,
- logger,
- config,
- tripleStoreService,
- blockchainModuleManager,
- serviceAgreementService,
- ualService,
- dataService,
- ) {
- super(migrationName, logger, config);
- this.blockchainModuleManager = blockchainModuleManager;
- this.serviceAgreementService = serviceAgreementService;
- this.ualService = ualService;
- this.tripleStoreService = tripleStoreService;
- this.dataService = dataService;
- }
-
- async executeMigration() {
- const graphs = await this.tripleStoreService.select(
- TRIPLE_STORE_REPOSITORIES.PRIVATE_CURRENT,
- `SELECT DISTINCT ?g
- WHERE {
- GRAPH ?g { ?s ?p ?o }
- }`,
- );
-
- const assertionIds = (graphs ?? [])
- .filter(({ g }) => g.startsWith('assertion:'))
- .map(({ g }) => g.replace('assertion:', ''));
-
- if (!assertionIds?.length) {
- this.logger.debug(
- `No assertions found in ${TRIPLE_STORE_REPOSITORIES.PRIVATE_CURRENT} repository. Skipping migration.`,
- );
- return;
- }
-
- this.logger.debug(
- `${assertionIds.length} assertions found in ${TRIPLE_STORE_REPOSITORIES.PRIVATE_CURRENT} repository.`,
- );
- for (const blockchain of this.blockchainModuleManager.getImplementationNames()) {
- const assetStorageContractAddresses =
- this.blockchainModuleManager.getAssetStorageContractAddresses();
-
- for (const assetStorageContractAddress of assetStorageContractAddresses) {
- const latestTokenId = Number(
- await this.blockchainModuleManager.getLatestTokenId(
- blockchain,
- assetStorageContractAddress,
- ),
- );
-
- this.logger.debug(
- `Getting latest asset metadata from blockchain: ${blockchain}, asset storage contract address: ${assetStorageContractAddress}, from tokenId 0 to tokenId ${latestTokenId}`,
- );
- const concurrency = 100;
- let promises = [];
- for (let tokenId = 0; tokenId < latestTokenId; tokenId += 1) {
- promises.push(
- this._migrateAssertions(
- blockchain,
- assetStorageContractAddress,
- tokenId,
- latestTokenId,
- assertionIds,
- ),
- );
- if (promises.length > concurrency) {
- // eslint-disable-next-line no-await-in-loop
- await Promise.all(promises);
- promises = [];
- }
- }
- await Promise.all(promises);
- }
- }
- }
-
- async _migrateAssertions(
- blockchain,
- assetStorageContractAddress,
- tokenId,
- latestTokenId,
- assertionIds,
- ) {
- this._logPercentage(tokenId, latestTokenId);
- let assertionId;
- try {
- assertionId = await this.blockchainModuleManager.getLatestAssertionId(
- blockchain,
- assetStorageContractAddress,
- tokenId,
- );
- } catch (error) {
- this.logger.warn(`Unable to find assertion id for token id: ${tokenId}`);
- return;
- }
- if (!assertionIds.includes(assertionId)) return;
-
- this.logger.debug(
- `Getting latest metadata for asset with token id: ${tokenId}, assertion id: ${assertionId}, blockchain: ${blockchain}, asset storage contract address: ${assetStorageContractAddress}`,
- );
-
- const keyword = await this.ualService.calculateLocationKeyword(
- blockchain,
- assetStorageContractAddress,
- tokenId,
- );
-
- await this.tripleStoreService.insertAssetAssertionMetadata(
- TRIPLE_STORE_REPOSITORIES.PRIVATE_CURRENT,
- blockchain,
- assetStorageContractAddress,
- tokenId,
- assertionId,
- keyword,
- );
-
- const assertion = await this.tripleStoreService.getAssertion(
- TRIPLE_STORE_REPOSITORIES.PRIVATE_CURRENT,
- assertionId,
- );
-
- const privateAssertionId = this.dataService.getPrivateAssertionId(assertion);
-
- if (privateAssertionId == null || !assertionIds.includes(privateAssertionId)) return;
-
- await this.tripleStoreService.insertAssetAssertionMetadata(
- TRIPLE_STORE_REPOSITORIES.PRIVATE_CURRENT,
- blockchain,
- assetStorageContractAddress,
- tokenId,
- privateAssertionId,
- keyword,
- );
- }
-
- _logPercentage(index, max) {
- const previousPercentage = (Math.max(0, index - 1) / max) * 100;
- const currentPercentage = (index / max) * 100;
-
- if (Math.floor(currentPercentage) - Math.floor(previousPercentage) < 1) return;
-
- this.logger.debug(`Migration at ${Math.floor(currentPercentage * 10) / 10}%`);
- }
-}
-
-export default PrivateAssetsMetadataMigration;
diff --git a/src/migration/pull-sharding-table-migration.js b/src/migration/pull-sharding-table-migration.js
deleted file mode 100644
index 7a7411d5f4..0000000000
--- a/src/migration/pull-sharding-table-migration.js
+++ /dev/null
@@ -1,93 +0,0 @@
-import BaseMigration from './base-migration.js';
-
-class PullBlockchainShardingTableMigration extends BaseMigration {
- constructor(
- migrationName,
- logger,
- config,
- repositoryModuleManager,
- blockchainModuleManager,
- hashingService,
- ) {
- super(migrationName, logger, config);
- this.repositoryModuleManager = repositoryModuleManager;
- this.blockchainModuleManager = blockchainModuleManager;
- this.hashingService = hashingService;
- }
-
- async executeMigration() {
- const promises = this.blockchainModuleManager
- .getImplementationNames()
- .map(async (blockchainId) => {
- this.logger.debug(
- `Removing nodes from local sharding table for blockchain ${blockchainId}.`,
- );
- await this.repositoryModuleManager.removeShardingTablePeerRecords(blockchainId);
-
- const shardingTableLength =
- await this.blockchainModuleManager.getShardingTableLength(blockchainId);
- let startingIdentityId = await this.blockchainModuleManager.getShardingTableHead(
- blockchainId,
- );
- const pageSize = 10;
- const shardingTable = [];
-
- this.logger.debug(
- `Started pulling ${shardingTableLength} nodes from blockchain sharding table.`,
- );
-
- let sliceIndex = 0;
-
- while (shardingTable.length < shardingTableLength) {
- // eslint-disable-next-line no-await-in-loop
- const nodes = await this.blockchainModuleManager.getShardingTablePage(
- blockchainId,
- startingIdentityId,
- pageSize,
- );
- shardingTable.push(
- ...nodes.slice(sliceIndex).filter((node) => node.nodeId !== '0x'),
- );
- sliceIndex = 1;
- startingIdentityId = nodes[nodes.length - 1].identityId;
- }
-
- this.logger.debug(
- `Finished pulling ${shardingTable.length} nodes from blockchain sharding table.`,
- );
-
- await this.repositoryModuleManager.createManyPeerRecords(
- await Promise.all(
- shardingTable.map(async (peer) => {
- const nodeId = this.blockchainModuleManager.convertHexToAscii(
- blockchainId,
- peer.nodeId,
- );
-
- const sha256 = await this.hashingService.callHashFunction(1, nodeId);
-
- return {
- peerId: nodeId,
- blockchainId,
- ask: this.blockchainModuleManager.convertFromWei(
- blockchainId,
- peer.ask,
- 'ether',
- ),
- stake: this.blockchainModuleManager.convertFromWei(
- blockchainId,
- peer.stake,
- 'ether',
- ),
- sha256,
- };
- }),
- ),
- );
- });
-
- await Promise.all(promises);
- }
-}
-
-export default PullBlockchainShardingTableMigration;
diff --git a/src/migration/remove-agreement-start-end-time-migration.js b/src/migration/remove-agreement-start-end-time-migration.js
deleted file mode 100644
index 469aab1290..0000000000
--- a/src/migration/remove-agreement-start-end-time-migration.js
+++ /dev/null
@@ -1,35 +0,0 @@
-import BaseMigration from './base-migration.js';
-import { TRIPLE_STORE_REPOSITORIES, SCHEMA_CONTEXT } from '../constants/constants.js';
-
-class RemoveAgreementStartEndTimeMigration extends BaseMigration {
- constructor(migrationName, logger, config, tripleStoreService) {
- super(migrationName, logger, config);
- this.tripleStoreService = tripleStoreService;
- }
-
- async executeMigration() {
- const repositories = Object.values(TRIPLE_STORE_REPOSITORIES);
- const query = `
- PREFIX schema: <${SCHEMA_CONTEXT}>
-
- DELETE {
- GRAPH {
- ?ual schema:agreementEndTime ?agreementEndTime .
- ?ual schema:agreementStartTime ?agreementStartTime .
- }
- }
- WHERE {
- GRAPH {
- { ?ual schema:agreementEndTime ?agreementEndTime . }
- UNION
- { ?ual schema:agreementStartTime ?agreementStartTime . }
- }
- }`;
-
- await Promise.all(
- repositories.map((repository) => this.tripleStoreService.queryVoid(repository, query)),
- );
- }
-}
-
-export default RemoveAgreementStartEndTimeMigration;
diff --git a/src/migration/remove-duplicate-service-agreement-migration.js b/src/migration/remove-duplicate-service-agreement-migration.js
deleted file mode 100644
index 489596173e..0000000000
--- a/src/migration/remove-duplicate-service-agreement-migration.js
+++ /dev/null
@@ -1,47 +0,0 @@
-import BaseMigration from './base-migration.js';
-
-class RemoveDuplicateServiceAgreementMigration extends BaseMigration {
- constructor(migrationName, logger, config, repositoryModuleManager, blockchainModuleManager) {
- super(migrationName, logger, config);
- this.repositoryModuleManager = repositoryModuleManager;
- this.blockchainModuleManager = blockchainModuleManager;
- }
-
- async executeMigration() {
- const blockchainIds = this.blockchainModuleManager.getImplementationNames();
-
- for (const blockchainId of blockchainIds) {
- const incorrectServiceAgreementId = [];
- const duplicateTokenIdsRestult =
- // eslint-disable-next-line no-await-in-loop
- await this.repositoryModuleManager.findDuplicateServiceAgreements(blockchainId);
- const duplicateTokenIds = duplicateTokenIdsRestult.map((t) => t.dataValues.token_id);
- const findDuplicateServiceAgreements =
- // eslint-disable-next-line no-await-in-loop
- await this.repositoryModuleManager.findServiceAgreementsByTokenIds(
- duplicateTokenIds,
- blockchainId,
- );
- for (const serviceAgreement of findDuplicateServiceAgreements) {
- try {
- const blockchainAssertionId =
- // eslint-disable-next-line no-await-in-loop
- await this.blockchainModuleManager.getAssertionIdByIndex(
- blockchainId,
- serviceAgreement.assetStorageContractAddress,
- serviceAgreement.tokenId,
- serviceAgreement.stateIndex,
- );
- if (serviceAgreement.assertionId !== blockchainAssertionId) {
- incorrectServiceAgreementId.push(serviceAgreement.agreementId);
- }
- } catch (error) {
- incorrectServiceAgreementId.push(serviceAgreement.agreementId);
- }
- }
- // eslint-disable-next-line no-await-in-loop
- await this.repositoryModuleManager.removeServiceAgreements(incorrectServiceAgreementId);
- }
- }
-}
-export default RemoveDuplicateServiceAgreementMigration;
diff --git a/src/migration/remove-old-epoch-commands-migration.js b/src/migration/remove-old-epoch-commands-migration.js
deleted file mode 100644
index bda9b823b8..0000000000
--- a/src/migration/remove-old-epoch-commands-migration.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import BaseMigration from './base-migration.js';
-
-class RemoveOldEpochCommandsMigration extends BaseMigration {
- constructor(migrationName, logger, config, repositoryModuleManager) {
- super(migrationName, logger, config);
- this.repositoryModuleManager = repositoryModuleManager;
- }
-
- async executeMigration() {
- const commandsToDestroy = [
- 'epochCheckCommand',
- 'calculateProofsCommand',
- 'submitCommitCommand',
- 'submitProofsCommand',
- ];
-
- await Promise.all(
- commandsToDestroy.map((command) =>
- this.repositoryModuleManager.destroyCommand(command),
- ),
- );
- }
-}
-
-export default RemoveOldEpochCommandsMigration;
diff --git a/src/migration/remove-service-agreements-for-chiado-migration.js b/src/migration/remove-service-agreements-for-chiado-migration.js
deleted file mode 100644
index 680931b4f2..0000000000
--- a/src/migration/remove-service-agreements-for-chiado-migration.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import BaseMigration from './base-migration.js';
-
-const GNOSIS_DEVNET_CHAIN_ID = 'gnosis:10200';
-
-class RemoveServiceAgreementsForChiadoMigration extends BaseMigration {
- constructor(migrationName, logger, config, repositoryModuleManager) {
- super(migrationName, logger, config);
- this.repositoryModuleManager = repositoryModuleManager;
- }
-
- async executeMigration() {
- await this.repositoryModuleManager.removeServiceAgreementsForBlockchain(
- GNOSIS_DEVNET_CHAIN_ID,
- );
- }
-}
-
-export default RemoveServiceAgreementsForChiadoMigration;
diff --git a/src/migration/service-agreement-pruning-migration.js b/src/migration/service-agreement-pruning-migration.js
deleted file mode 100644
index c29ba4de17..0000000000
--- a/src/migration/service-agreement-pruning-migration.js
+++ /dev/null
@@ -1,46 +0,0 @@
-import BaseMigration from './base-migration.js';
-
-class ServiceAgreementPruningMigration extends BaseMigration {
- constructor(
- migrationName,
- logger,
- config,
- repositoryModuleManager,
- blockchainModuleManager,
- serviceAgreementService,
- ) {
- super(migrationName, logger, config);
- this.repositoryModuleManager = repositoryModuleManager;
- this.blockchainModuleManager = blockchainModuleManager;
- this.serviceAgreementService = serviceAgreementService;
- }
-
- async executeMigration() {
- const blockchainIds = this.blockchainModuleManager.getImplementationNames();
-
- // eslint-disable-next-line no-await-in-loop
- for (const blockchainId of blockchainIds) {
- const assetStorageContractAddresses =
- // eslint-disable-next-line no-await-in-loop
- await this.blockchainModuleManager.getAssetStorageContractAddresses(blockchainId);
-
- const countOfServiceAgreementsToBeRemoved =
- // eslint-disable-next-line no-await-in-loop
- await this.repositoryModuleManager.getCountOfServiceAgreementsByBlockchainAndContract(
- blockchainId,
- assetStorageContractAddresses[0],
- );
-
- // removeServiceAgreementsByBlockchainAndContract deletes in batches od 100_000
- const numberOfIteration = Math.ceil(countOfServiceAgreementsToBeRemoved / 100_000);
- for (let i = 0; i < numberOfIteration; i += 1) {
- // eslint-disable-next-line no-await-in-loop
- await this.repositoryModuleManager.removeServiceAgreementsByBlockchainAndContract(
- blockchainId,
- assetStorageContractAddresses[0],
- );
- }
- }
- }
-}
-export default ServiceAgreementPruningMigration;
diff --git a/src/migration/service-agreements-data-inspector.js b/src/migration/service-agreements-data-inspector.js
deleted file mode 100644
index aad52f2fe8..0000000000
--- a/src/migration/service-agreements-data-inspector.js
+++ /dev/null
@@ -1,210 +0,0 @@
-/* eslint-disable no-await-in-loop */
-import BaseMigration from './base-migration.js';
-import { TRIPLE_STORE_REPOSITORIES } from '../constants/constants.js';
-
-const fixedServiceAgreements = [];
-const fixedHistoricalAssertions = [];
-let wrongAgreementsCount = 0;
-const MAX_BATCH_SIZE = 10000;
-const CONCURRENCY = 200;
-
-class ServiceAgreementsDataInspector extends BaseMigration {
- constructor(
- migrationName,
- logger,
- config,
- blockchainModuleManager,
- repositoryModuleManager,
- tripleStoreService,
- ualService,
- serviceAgreementService,
- ) {
- super(migrationName, logger, config);
- this.blockchainModuleManager = blockchainModuleManager;
- this.repositoryModuleManager = repositoryModuleManager;
- this.tripleStoreService = tripleStoreService;
- this.ualService = ualService;
- this.serviceAgreementService = serviceAgreementService;
- }
-
- async executeMigration() {
- let migrationInfo = await this.getMigrationInfo();
- if (!migrationInfo?.lastProcessedTokenId) {
- migrationInfo = {
- fixedServiceAgreements: [],
- fixedHistoricalAssertions: [],
- lastProcessedTokenId: 0,
- };
- }
-
- const numberOfActiveServiceAgreements =
- await this.repositoryModuleManager.getNumberOfActiveServiceAgreements();
- let processed = 0;
- const batchSize =
- numberOfActiveServiceAgreements > MAX_BATCH_SIZE
- ? MAX_BATCH_SIZE
- : numberOfActiveServiceAgreements;
-
- while (processed < numberOfActiveServiceAgreements) {
- const serviceAgreementsToProcess =
- await this.repositoryModuleManager.getServiceAgreements(
- migrationInfo.lastProcessedTokenId,
- batchSize,
- );
- let promises = [];
-
- for (const serviceAgreement of serviceAgreementsToProcess) {
- promises.push(this.processServiceAgreement(serviceAgreement));
-
- if (
- promises.length >= CONCURRENCY ||
- promises.length === serviceAgreementsToProcess.length
- ) {
- try {
- await Promise.all(promises);
- } catch (error) {
- this.logger.warn(
- `Unable to process invalid service agreements. Error: ${error}`,
- );
- }
- promises = [];
- migrationInfo.fixedServiceAgreements.push(...fixedServiceAgreements);
- migrationInfo.fixedHistoricalAssertions.push(...fixedHistoricalAssertions);
- migrationInfo.lastProcessedTokenId = serviceAgreement.tokenId;
- await this.saveMigrationInfo(migrationInfo);
- this.logger.trace(
- `${this.migrationName} Last token id processed: ${migrationInfo.lastProcessedTokenId}. ` +
- `Invalid Service Agreements: ${migrationInfo.fixedServiceAgreements.length}. ` +
- `Assets with Invalid Historical Assertions: ${migrationInfo.fixedHistoricalAssertions.length}.`,
- );
- }
- }
-
- processed += serviceAgreementsToProcess.length;
- }
-
- this.logger.trace(
- `${this.migrationName} Total number of processed agreements ${processed}. Found invalid agreements: ${wrongAgreementsCount}`,
- );
- }
-
- async processServiceAgreement(serviceAgreement) {
- const updatedServiceAgreement = {};
- let isInvalid = false;
-
- const assertionIds = await this.blockchainModuleManager.getAssertionIds(
- serviceAgreement.blockchain,
- serviceAgreement.assetStorageContractAddress,
- serviceAgreement.tokenId,
- );
-
- const historicalAssertionIds = assertionIds.slice(0, -1);
-
- const publicHistoricalAssertionLinks = await this.tripleStoreService.getAssetAssertionLinks(
- TRIPLE_STORE_REPOSITORIES.PUBLIC_HISTORY,
- serviceAgreement.blockchain,
- serviceAgreement.assetStorageContractAddress,
- serviceAgreement.tokenId,
- );
- const publicHistoricalLinkedAssertionIds = publicHistoricalAssertionLinks.map(
- ({ assertion }) => assertion.replace('assertion:', ''),
- );
- const missingPublicHistoricalAssertions = historicalAssertionIds.filter(
- (element) => !publicHistoricalLinkedAssertionIds.includes(element),
- );
- const redundantPublicHistoricalAssertions = publicHistoricalLinkedAssertionIds.filter(
- (element) => !historicalAssertionIds.includes(element),
- );
-
- const privateHistoricalAssertionLinks =
- await this.tripleStoreService.getAssetAssertionLinks(
- TRIPLE_STORE_REPOSITORIES.PRIVATE_HISTORY,
- serviceAgreement.blockchain,
- serviceAgreement.assetStorageContractAddress,
- serviceAgreement.tokenId,
- );
- const privateHistoricalLinkedAssertionIds = privateHistoricalAssertionLinks.map(
- ({ assertion }) => assertion.replace('assertion:', ''),
- );
- const missingPrivateHistoricalAssertions = historicalAssertionIds.filter(
- (element) => !privateHistoricalLinkedAssertionIds.includes(element),
- );
- const redundantPrivateHistoricalAssertions = privateHistoricalLinkedAssertionIds.filter(
- (element) => !historicalAssertionIds.includes(element),
- );
-
- const hasInvalidHistoricalAssertions = [
- missingPublicHistoricalAssertions,
- missingPrivateHistoricalAssertions,
- redundantPublicHistoricalAssertions,
- redundantPrivateHistoricalAssertions,
- ].some((array) => array.length > 0);
-
- if (hasInvalidHistoricalAssertions) {
- fixedHistoricalAssertions.push({
- blockchain: serviceAgreement.blockchain,
- contract: serviceAgreement.assetStorageContractAddress,
- tokenId: serviceAgreement.tokenId,
- missingPublicHistoricalAssertions,
- missingPrivateHistoricalAssertions,
- redundantPublicHistoricalAssertions,
- redundantPrivateHistoricalAssertions,
- });
- }
-
- const stateIndex = assertionIds.length - 1;
-
- if (serviceAgreement.assertionId !== assertionIds[stateIndex]) {
- updatedServiceAgreement.assertionId = assertionIds[stateIndex];
- isInvalid = true;
- }
-
- if (serviceAgreement.stateIndex !== stateIndex) {
- updatedServiceAgreement.stateIndex = stateIndex;
- isInvalid = true;
- }
-
- const keyword = await this.ualService.calculateLocationKeyword(
- serviceAgreement.blockchainId,
- serviceAgreement.assetStorageContractAddress,
- serviceAgreement.tokenId,
- assertionIds[0],
- );
-
- if (serviceAgreement.keyword !== keyword) {
- updatedServiceAgreement.keyword = keyword;
- isInvalid = true;
- }
-
- const agreementId = this.serviceAgreementService.generateId(
- serviceAgreement.blockchainId,
- serviceAgreement.assetStorageContractAddress,
- serviceAgreement.tokenId,
- keyword,
- serviceAgreement.hashFunctionId,
- );
-
- if (serviceAgreement.agreementId !== agreementId) {
- updatedServiceAgreement.agreementId = agreementId;
- isInvalid = true;
- }
-
- if (isInvalid) {
- wrongAgreementsCount += 1;
- fixedServiceAgreements.push({
- blockchain: serviceAgreement.blockchain,
- contract: serviceAgreement.assetStorageContractAddress,
- tokenId: serviceAgreement.tokenId,
- agreementId: updatedServiceAgreement.agreementId ?? serviceAgreement.agreementId,
- currentKeyword: serviceAgreement.keyword,
- correctKeyword: updatedServiceAgreement.keyword ?? serviceAgreement.keyword,
- currentAssertionId: serviceAgreement.assertionId,
- correctAssertionId:
- updatedServiceAgreement.assertionId ?? serviceAgreement.assertionId,
- stateIndex: updatedServiceAgreement.stateIndex ?? serviceAgreement.stateIndex,
- });
- }
- }
-}
-
-export default ServiceAgreementsDataInspector;
diff --git a/src/migration/service-agreements-invalid-data-migration.js b/src/migration/service-agreements-invalid-data-migration.js
deleted file mode 100644
index 59f1636cc6..0000000000
--- a/src/migration/service-agreements-invalid-data-migration.js
+++ /dev/null
@@ -1,218 +0,0 @@
-/* eslint-disable no-await-in-loop */
-import BaseMigration from './base-migration.js';
-import { TRIPLE_STORE_REPOSITORIES } from '../constants/constants.js';
-
-class ServiceAgreementsInvalidDataMigration extends BaseMigration {
- constructor(migrationName, logger, config, repositoryModuleManager, tripleStoreService) {
- super(migrationName, logger, config);
- this.repositoryModuleManager = repositoryModuleManager;
- this.tripleStoreService = tripleStoreService;
- }
-
- async executeMigration() {
- let migrationInfo = await this.getMigrationInfo();
- if (!migrationInfo?.lastFixedTokenId) {
- migrationInfo = {
- lastFixedTokenId: 0,
- };
- }
-
- const serviceAgreementsDataInspectorInfo = await this.getMigrationInfo(
- 'serviceAgreementsDataInspector',
- );
-
- // Fixing invalid Service Agreements in the Operational DB (agreementId + keyword + assertionId + stateIndex) +
- // Current repositories of the Triple Store ([Metadata: keyword] + [Assertion Links])
- const serviceAgreementsToUpdate =
- serviceAgreementsDataInspectorInfo.fixedServiceAgreements.sort(
- (a, b) => a.tokenId - b.tokenId,
- );
- for (const serviceAgreement of serviceAgreementsToUpdate) {
- if (serviceAgreement.tokenId < migrationInfo.lastFixedTokenId) {
- continue;
- }
-
- this.logger.trace(
- `Fixing Service Agreement in the Operational DB for the Knowledge Asset with the ID: ${serviceAgreement.tokenId}, ` +
- `Service Agreement ID: ${serviceAgreement.agreementId}, Keyword: ${serviceAgreement.correctKeyword}, ` +
- `Assertion ID: ${serviceAgreement.correctAssertionId}, State Index: ${serviceAgreement.stateIndex}.`,
- );
-
- await this.repositoryModuleManager.updateServiceAgreementForTokenId(
- serviceAgreement.tokenId,
- serviceAgreement.agreementId,
- serviceAgreement.correctKeyword,
- serviceAgreement.correctAssertionId,
- serviceAgreement.stateIndex,
- );
-
- // Fix wrong Assertion links in the PublicCurrent / PrivateCurrent repositories
- if (serviceAgreement.currentAssertionId !== serviceAgreement.correctAssertionId) {
- const assertionLinkedInPublicCurrentRepository =
- await this.tripleStoreService.assetAssertionLinkExists(
- TRIPLE_STORE_REPOSITORIES.PUBLIC_CURRENT,
- serviceAgreement.blockchain,
- serviceAgreement.contract,
- serviceAgreement.tokenId,
- serviceAgreement.currentAssertionId,
- );
-
- if (assertionLinkedInPublicCurrentRepository) {
- await this.tripleStoreService.updateAssetAssertionLink(
- TRIPLE_STORE_REPOSITORIES.PUBLIC_CURRENT,
- serviceAgreement.blockchain,
- serviceAgreement.contract,
- serviceAgreement.tokenId,
- serviceAgreement.currentAssertionId,
- serviceAgreement.correctAssertionId,
- );
- }
-
- const assertionLinkedInPrivateCurrentRepository =
- await this.tripleStoreService.assetAssertionLinkExists(
- TRIPLE_STORE_REPOSITORIES.PRIVATE_CURRENT,
- serviceAgreement.blockchain,
- serviceAgreement.contract,
- serviceAgreement.tokenId,
- serviceAgreement.currentAssertionId,
- );
-
- if (assertionLinkedInPrivateCurrentRepository) {
- await this.tripleStoreService.updateAssetAssertionLink(
- TRIPLE_STORE_REPOSITORIES.PRIVATE_CURRENT,
- serviceAgreement.blockchain,
- serviceAgreement.contract,
- serviceAgreement.tokenId,
- serviceAgreement.currentAssertionId,
- serviceAgreement.correctAssertionId,
- );
- }
- }
-
- // Fix wrong keyword for the Asset Metadata in the Triple Store
- if (serviceAgreement.currentKeyword !== serviceAgreement.correctKeyword) {
- const assetInPublicCurrentRepository = await this.tripleStoreService.assetExists(
- TRIPLE_STORE_REPOSITORIES.PUBLIC_CURRENT,
- serviceAgreement.blockchain,
- serviceAgreement.contract,
- serviceAgreement.tokenId,
- );
-
- if (assetInPublicCurrentRepository) {
- await this.tripleStoreService.updateAssetNonAssertionMetadata(
- TRIPLE_STORE_REPOSITORIES.PUBLIC_CURRENT,
- serviceAgreement.blockchain,
- serviceAgreement.contract,
- serviceAgreement.tokenId,
- serviceAgreement.correctKeyword,
- );
- }
-
- const assetInPrivateCurrentRepository = await this.tripleStoreService.assetExists(
- TRIPLE_STORE_REPOSITORIES.PRIVATE_CURRENT,
- serviceAgreement.blockchain,
- serviceAgreement.contract,
- serviceAgreement.tokenId,
- );
-
- if (assetInPrivateCurrentRepository) {
- await this.tripleStoreService.updateAssetNonAssertionMetadata(
- TRIPLE_STORE_REPOSITORIES.PRIVATE_CURRENT,
- serviceAgreement.blockchain,
- serviceAgreement.contract,
- serviceAgreement.tokenId,
- serviceAgreement.correctKeyword,
- );
- }
-
- const assetInPublicHistoricalRepository = await this.tripleStoreService.assetExists(
- TRIPLE_STORE_REPOSITORIES.PUBLIC_HISTORY,
- serviceAgreement.blockchain,
- serviceAgreement.contract,
- serviceAgreement.tokenId,
- );
-
- if (assetInPublicHistoricalRepository) {
- await this.tripleStoreService.updateAssetNonAssertionMetadata(
- TRIPLE_STORE_REPOSITORIES.PUBLIC_HISTORY,
- serviceAgreement.blockchain,
- serviceAgreement.contract,
- serviceAgreement.tokenId,
- serviceAgreement.correctKeyword,
- );
- }
-
- const assetInPrivateHistoricalRepository =
- await this.tripleStoreService.assetExists(
- TRIPLE_STORE_REPOSITORIES.PRIVATE_HISTORY,
- serviceAgreement.blockchain,
- serviceAgreement.contract,
- serviceAgreement.tokenId,
- );
-
- if (assetInPrivateHistoricalRepository) {
- await this.tripleStoreService.updateAssetNonAssertionMetadata(
- TRIPLE_STORE_REPOSITORIES.PRIVATE_HISTORY,
- serviceAgreement.blockchain,
- serviceAgreement.contract,
- serviceAgreement.tokenId,
- serviceAgreement.correctKeyword,
- );
- }
- }
- }
-
- // Fixing invalid Historical Assertions ([Assertion Links])
- const historicalStatesToUpdate =
- serviceAgreementsDataInspectorInfo.fixedHistoricalAssertions.sort(
- (a, b) => a.tokenId - b.tokenId,
- );
- for (const state of historicalStatesToUpdate) {
- if (state.tokenId < migrationInfo.lastFixedTokenId) {
- continue;
- }
-
- for (const assertionId of state.missingPublicHistoricalAssertions) {
- await this.tripleStoreService.insertAssetAssertionLink(
- TRIPLE_STORE_REPOSITORIES.PUBLIC_HISTORY,
- state.blockchain,
- state.contract,
- state.tokenId,
- assertionId,
- );
- }
-
- for (const assertionId of state.missingPrivateHistoricalAssertions) {
- await this.tripleStoreService.insertAssetAssertionLink(
- TRIPLE_STORE_REPOSITORIES.PRIVATE_HISTORY,
- state.blockchain,
- state.contract,
- state.tokenId,
- assertionId,
- );
- }
-
- for (const assertionId of state.redundantPublicHistoricalAssertions) {
- await this.tripleStoreService.deleteAssetAssertionLink(
- TRIPLE_STORE_REPOSITORIES.PUBLIC_HISTORY,
- state.blockchain,
- state.contract,
- state.tokenId,
- assertionId,
- );
- }
-
- for (const assertionId of state.redundantPrivateHistoricalAssertions) {
- await this.tripleStoreService.deleteAssetAssertionLink(
- TRIPLE_STORE_REPOSITORIES.PRIVATE_HISTORY,
- state.blockchain,
- state.contract,
- state.tokenId,
- assertionId,
- );
- }
- }
- }
-}
-
-export default ServiceAgreementsInvalidDataMigration;
diff --git a/src/migration/service-agreements-metadata-migration.js b/src/migration/service-agreements-metadata-migration.js
deleted file mode 100644
index 382c2eaf94..0000000000
--- a/src/migration/service-agreements-metadata-migration.js
+++ /dev/null
@@ -1,234 +0,0 @@
-/* eslint-disable no-await-in-loop */
-import path from 'path';
-import { setTimeout } from 'timers/promises';
-import BaseMigration from './base-migration.js';
-import {
- CONTENT_ASSET_HASH_FUNCTION_ID,
- SCHEMA_CONTEXT,
- TRIPLE_STORE_REPOSITORIES,
- SERVICE_AGREEMENT_SOURCES,
-} from '../constants/constants.js';
-
-class ServiceAgreementsMetadataMigration extends BaseMigration {
- constructor(
- migrationName,
- logger,
- config,
- tripleStoreService,
- blockchainModuleManager,
- repositoryModuleManager,
- serviceAgreementService,
- ualService,
- ) {
- super(migrationName, logger, config);
- this.blockchainModuleManager = blockchainModuleManager;
- this.repositoryModuleManager = repositoryModuleManager;
- this.serviceAgreementService = serviceAgreementService;
- this.ualService = ualService;
- this.tripleStoreService = tripleStoreService;
- }
-
- async executeMigration() {
- const migrationFolderPath = this.fileService.getMigrationFolderPath();
- const migrationInfoFileName = `${this.migrationName}_info`;
- const migrationInfoPath = path.join(migrationFolderPath, migrationInfoFileName);
- let migrationInfo;
- if (await this.fileService.pathExists(migrationInfoPath)) {
- migrationInfo = await this.fileService
- .readFile(migrationInfoPath, true)
- .catch(() => {});
- }
- if (!migrationInfo?.lastProcessedTokenId) {
- migrationInfo = {
- lastProcessedTokenId: -1,
- };
- }
- // get metadata of all stored assets in public current triple store
- const query = `PREFIX schema: <${SCHEMA_CONTEXT}>
- SELECT DISTINCT ?ual WHERE {
- GRAPH {
- ?ual schema:tokenId ?tokenId
- }
- FILTER (xsd:integer(?tokenId) > ${migrationInfo.lastProcessedTokenId})
- }
- ORDER BY ASC(xsd:integer(?tokenId))`;
- const assetsMetadata = await this.tripleStoreService.select(
- TRIPLE_STORE_REPOSITORIES.PUBLIC_CURRENT,
- query,
- );
- const identities = {};
- const concurrency = 3;
- let promises = [];
- let assetsToProcess = assetsMetadata.length;
- for (const { ual } of assetsMetadata) {
- const { blockchain, contract, tokenId } = this.ualService.resolveUAL(ual);
- if (!identities[blockchain]) {
- identities[blockchain] = await this.blockchainModuleManager.getIdentityId(
- blockchain,
- );
- }
- promises.push(
- this.processAsset(ual, blockchain, contract, tokenId, identities[blockchain]),
- );
- assetsToProcess -= 1;
- if (promises.length >= concurrency) {
- // eslint-disable-next-line no-await-in-loop
- await Promise.all(promises);
- promises = [];
- await this.fileService.writeContentsToFile(
- migrationFolderPath,
- migrationInfoFileName,
- JSON.stringify({ lastProcessedTokenId: tokenId }),
- false,
- );
- this.logger.trace(
- `${this.migrationName} remaining assets to process: ${assetsToProcess}.`,
- );
- }
- }
- await Promise.all(promises);
- }
-
- async processAsset(ual, blockchain, contract, tokenId, identityId) {
- const maxAttempts = 10;
- const sleepTimeSeconds = 2;
-
- // get assertion ids
- let attempt = 0;
- let assertionIds;
- while (!assertionIds) {
- attempt += 1;
- if (attempt >= maxAttempts)
- throw Error(
- `Error while trying to get assertion ids for asset with ual: ${ual}. Max attempts reached`,
- );
- if (attempt > 1) {
- await setTimeout(sleepTimeSeconds * 1000);
- }
- try {
- assertionIds = await this.blockchainModuleManager.getAssertionIds(
- blockchain,
- contract,
- tokenId,
- );
- } catch (error) {
- this.logger.warn(
- `Error while trying to get assertion ids for asset with ual: ${ual}. Retrying in ${sleepTimeSeconds} seconds. Attempt number: ${attempt}.`,
- );
- }
- }
-
- if (!assertionIds?.length) {
- this.logger.warn(`Unable to find assertion ids for asset with ual: ${ual}`);
- return;
- }
- const stateIndex = assertionIds.length - 1;
- const assertionId = assertionIds[stateIndex];
- // calculate keyword
- const keyword = this.blockchainModuleManager.encodePacked(
- blockchain,
- ['address', 'bytes32'],
- [contract, assertionIds[0]],
- );
-
- // generate agreement id
- const agreementId = this.serviceAgreementService.generateId(
- blockchain,
- contract,
- tokenId,
- keyword,
- CONTENT_ASSET_HASH_FUNCTION_ID,
- );
-
- // get agreement data
- attempt = 0;
- let agreementData;
- while (!agreementData) {
- attempt += 1;
- if (attempt >= maxAttempts)
- throw Error(
- `Error while trying to get agreement data for asset with ual: ${ual}. Max attempts reached`,
- );
- if (attempt > 1) {
- await setTimeout(sleepTimeSeconds * 1000);
- }
- try {
- agreementData = await this.blockchainModuleManager.getAgreementData(
- blockchain,
- agreementId,
- );
- } catch (error) {
- this.logger.warn(
- `Error while trying to get agreement data for asset with ual: ${ual}. Retrying in ${sleepTimeSeconds} seconds. Attempt number: ${attempt}.`,
- );
- }
- }
-
- // calculate current epoch
- const now = await this.blockchainModuleManager.getBlockchainTimestamp(blockchain);
- const epoch = Math.floor((now - agreementData.startTime) / agreementData.epochLength);
-
- // service agreement expired, don't update commits and proofs
- if (epoch >= Number(agreementData.epochsNumber)) return;
-
- // get top commits
- attempt = 0;
- let commits;
- while (!commits) {
- attempt += 1;
- if (attempt >= maxAttempts)
- throw Error(
- `Error while trying to get top commit submissions for asset with ual: ${ual}. Max attempts reached`,
- );
- if (attempt > 1) {
- await setTimeout(sleepTimeSeconds * 1000);
- }
- try {
- commits = await this.blockchainModuleManager.getTopCommitSubmissions(
- blockchain,
- agreementId,
- epoch,
- stateIndex,
- );
- } catch (error) {
- this.logger.warn(
- `Error while trying to get top commit submissions for asset with ual: ${ual}. Retrying in ${sleepTimeSeconds} seconds. Attempt number: ${attempt}.`,
- );
- }
- }
-
- let lastCommitEpoch = null;
- let lastProofEpoch = null;
-
- for (const commit of commits) {
- if (Number(commit.identityId) === identityId) {
- lastCommitEpoch = epoch;
- if (Number(commit.score) === 0) {
- lastProofEpoch = epoch;
- }
- }
- }
-
- // store in service_agreement table
- await this.repositoryModuleManager.updateServiceAgreementRecord(
- blockchain,
- contract,
- tokenId,
- agreementId,
- agreementData.startTime,
- agreementData.epochsNumber,
- agreementData.epochLength,
- agreementData.scoreFunctionId,
- agreementData.proofWindowOffsetPerc,
- CONTENT_ASSET_HASH_FUNCTION_ID,
- keyword,
- assertionId,
- stateIndex,
- SERVICE_AGREEMENT_SOURCES.BLOCKCHAIN,
- lastCommitEpoch,
- lastProofEpoch,
- );
- }
-}
-
-export default ServiceAgreementsMetadataMigration;
diff --git a/src/migration/telemetry-module-user-configuration-migration.js b/src/migration/telemetry-module-user-configuration-migration.js
deleted file mode 100644
index a49cc393af..0000000000
--- a/src/migration/telemetry-module-user-configuration-migration.js
+++ /dev/null
@@ -1,45 +0,0 @@
-import appRootPath from 'app-root-path';
-import path from 'path';
-import BaseMigration from './base-migration.js';
-
-class TelemetryModuleUserConfigurationMigration extends BaseMigration {
- async executeMigration() {
- const configurationFolderPath = path.join(appRootPath.path, '..');
- const configurationFilePath = path.join(
- configurationFolderPath,
- this.config.configFilename,
- );
-
- const userConfiguration = await this.fileService.readFile(configurationFilePath, true);
-
- let newTelemetryConfig;
-
- if ('telemetry' in userConfiguration) {
- const oldConfigTelemetry = userConfiguration.telemetry;
- newTelemetryConfig = {
- enabled: oldConfigTelemetry.enabled,
- implementation: {
- 'ot-telemetry': {
- enabled: oldConfigTelemetry.enabled,
- package: './telemetry/implementation/ot-telemetry.js',
- config: {
- sendTelemetryData: oldConfigTelemetry.sendTelemetryData,
- signalingServerUrl: oldConfigTelemetry.signalingServerUrl,
- },
- },
- },
- };
-
- delete userConfiguration.telemetry;
- userConfiguration.modules.telemetry = newTelemetryConfig;
-
- await this.fileService.writeContentsToFile(
- configurationFolderPath,
- this.config.configFilename,
- JSON.stringify(userConfiguration, null, 4),
- );
- }
- }
-}
-
-export default TelemetryModuleUserConfigurationMigration;
diff --git a/src/migration/triple-store-metadata-migration.js b/src/migration/triple-store-metadata-migration.js
deleted file mode 100644
index dc087689d8..0000000000
--- a/src/migration/triple-store-metadata-migration.js
+++ /dev/null
@@ -1,776 +0,0 @@
-/* eslint-disable no-await-in-loop */
-import { formatAssertion } from 'assertion-tools';
-import path from 'path';
-import BaseMigration from './base-migration.js';
-import { SCHEMA_CONTEXT, TRIPLE_STORE_REPOSITORIES } from '../constants/constants.js';
-
-class TripleStoreMetadataMigration extends BaseMigration {
- constructor(
- migrationName,
- logger,
- config,
- tripleStoreService,
- blockchainModuleManager,
- serviceAgreementService,
- ualService,
- dataService,
- ) {
- super(migrationName, logger, config);
- this.blockchainModuleManager = blockchainModuleManager;
- this.serviceAgreementService = serviceAgreementService;
- this.ualService = ualService;
- this.tripleStoreService = tripleStoreService;
- this.dataService = dataService;
- }
-
- async executeMigration() {
- await this.updatePublicCurrentMetadata();
- await this.updatePrivateCurrentMetadata();
- }
-
- async updatePublicCurrentMetadata() {
- const currentRepository = TRIPLE_STORE_REPOSITORIES.PUBLIC_CURRENT;
- const historyRepository = TRIPLE_STORE_REPOSITORIES.PUBLIC_HISTORY;
- const migrationFolderPath = this.fileService.getMigrationFolderPath();
- const migrationInfoFileName = `${this.migrationName}_${currentRepository}`;
- const migrationInfoPath = path.join(migrationFolderPath, migrationInfoFileName);
-
- let migrationInfo;
- if (await this.fileService.pathExists(migrationInfoPath)) {
- try {
- migrationInfo = await this.fileService.readFile(migrationInfoPath, true);
- } catch (error) {
- migrationInfo = {
- status: 'IN_PROGRESS',
- processedUals: {},
- deletedAssertions: [],
- };
- }
-
- if (migrationInfo.status === 'COMPLETED') return;
- } else {
- migrationInfo = {
- status: 'IN_PROGRESS',
- processedUals: {},
- deletedAssertions: [],
- };
- }
-
- await this._logMetadataStats(currentRepository);
-
- migrationInfo = await this.updateBlockchainMetadata(currentRepository, migrationInfo);
- migrationInfo = await this.updateContractMetadata(currentRepository, migrationInfo);
- await this.deleteUnsupportedAssetsMetadata(currentRepository);
- migrationInfo = await this.updateKeywordMetadata(currentRepository, migrationInfo);
- migrationInfo = await this.updateAssertionMetadata(
- currentRepository,
- historyRepository,
- migrationInfo,
- );
- migrationInfo = await this.deleteUnlinkedAssertions(currentRepository, migrationInfo);
-
- await this._logMetadataStats(currentRepository);
-
- migrationInfo.status = 'COMPLETED';
- await this._updateMigrationInfoFile(currentRepository, migrationInfo);
- }
-
- async updatePrivateCurrentMetadata() {
- const currentRepository = TRIPLE_STORE_REPOSITORIES.PRIVATE_CURRENT;
- const historyRepository = TRIPLE_STORE_REPOSITORIES.PRIVATE_HISTORY;
- const migrationFolderPath = this.fileService.getMigrationFolderPath();
- const migrationInfoFileName = `${this.migrationName}_${currentRepository}`;
- const migrationInfoPath = path.join(migrationFolderPath, migrationInfoFileName);
- let migrationInfo;
- if (await this.fileService.pathExists(migrationInfoPath)) {
- try {
- migrationInfo = await this.fileService.readFile(migrationInfoPath, true);
- } catch (error) {
- migrationInfo = {
- status: 'IN_PROGRESS',
- processedUals: {},
- deletedAssertions: [],
- };
- }
-
- if (migrationInfo.status === 'COMPLETED') return;
- } else {
- const assetsQueryResult = await this.tripleStoreService.select(
- currentRepository,
- `SELECT distinct ?ual
- WHERE {
- GRAPH {
- ?ual ?p ?o
- }
- }`,
- );
-
- migrationInfo = {
- status: 'IN_PROGRESS',
- ualsToProcess: assetsQueryResult.map(({ ual }) => ual),
- processedUals: {},
- deletedAssertions: [],
- };
- }
-
- await this._logMetadataStats(currentRepository);
-
- const ualsToProcess = JSON.parse(JSON.stringify(migrationInfo.ualsToProcess));
- for (let i = 0; i < ualsToProcess.length; i += 1) {
- this._logPercentage(i, ualsToProcess.length, currentRepository);
- const ual = ualsToProcess[i];
- if (!migrationInfo.processedUals[ual]) migrationInfo.processedUals[ual] = {};
-
- let resolvedUAL;
- try {
- resolvedUAL = this.ualService.resolveUAL(ual);
- } catch (error) {
- this.logger.warn(`Unable to resolve UAL: ${error}`);
- continue;
- }
-
- const { blockchain, contract, tokenId } = resolvedUAL;
-
- let assertionIds;
- try {
- assertionIds = await this.blockchainModuleManager.getAssertionIds(
- blockchain,
- contract,
- tokenId,
- );
- migrationInfo.processedUals[ual].assertionIds = assertionIds;
- } catch (error) {
- this.logger.warn(`Unable to find assertion ids for asset with ual: ${ual}`);
- migrationInfo.ualsToProcess.splice(i, 1);
- await this._updateMigrationInfoFile(currentRepository, migrationInfo);
- continue;
- }
-
- if (!assertionIds?.length) {
- this.logger.warn(`Unable to find assertion ids for asset with ual: ${ual}`);
- migrationInfo.ualsToProcess.splice(i, 1);
- await this._updateMigrationInfoFile(currentRepository, migrationInfo);
- continue;
- }
-
- const keyword = this.blockchainModuleManager.encodePacked(
- blockchain,
- ['address', 'bytes32'],
- [contract, assertionIds[0]],
- );
-
- migrationInfo = await this._moveOldAssertionIds(
- currentRepository,
- historyRepository,
- ual,
- blockchain,
- contract,
- tokenId,
- keyword,
- assertionIds,
- migrationInfo,
- );
-
- migrationInfo = await this._updateAssetMetadata(
- currentRepository,
- assertionIds,
- ual,
- blockchain,
- contract,
- tokenId,
- keyword,
- migrationInfo,
- );
-
- migrationInfo.ualsToProcess.splice(i, 1);
- await this._updateMigrationInfoFile(currentRepository, migrationInfo);
- }
- await this.deleteUnlinkedAssertions(currentRepository, migrationInfo);
-
- await this._logMetadataStats(currentRepository);
-
- migrationInfo.status = 'COMPLETED';
- await this._updateMigrationInfoFile(currentRepository, migrationInfo);
- }
-
- async updateBlockchainMetadata(repository, migrationInfo) {
- const assetsQueryResult = await this.tripleStoreService.select(
- repository,
- `PREFIX schema: <${SCHEMA_CONTEXT}>
- SELECT DISTINCT ?ual
- WHERE {
- GRAPH {
- ?ual ?p ?o .
- FILTER NOT EXISTS {
- ?ual schema:blockchain ?blockchain .
- }
- }
- }`,
- );
-
- this.logger.debug(
- `found ${assetsQueryResult.length} assets with missing blockchain metadata`,
- );
-
- let triples = '';
- let processedAssets = [];
- const migrationInfoCopy = migrationInfo;
- for (let i = 0; i < assetsQueryResult.length; i += 1) {
- const { ual } = assetsQueryResult[i];
- let resolvedUAL;
- try {
- resolvedUAL = this.ualService.resolveUAL(ual);
- } catch (error) {
- this.logger.warn(`Unable to resolve UAL: ${error}`);
- continue;
- }
-
- const { blockchain } = resolvedUAL;
-
- triples += `<${ual}> schema:blockchain "${blockchain}" . \n`;
- processedAssets.push({ ual, blockchain });
- if (i % 10_000 === 0) {
- await this.insertMetadataTriples(repository, triples);
- for (const processedAsset of processedAssets) {
- if (!migrationInfoCopy.processedUals[processedAsset.ual])
- migrationInfoCopy.processedUals[processedAsset.ual] = {
- blockchain: processedAsset.blockchain,
- };
- else
- migrationInfoCopy.processedUals[processedAsset.ual].blockchain =
- processedAsset.blockchain;
- }
- await this._updateMigrationInfoFile(repository, migrationInfoCopy);
- triples = '';
- processedAssets = [];
- }
- }
- await this.insertMetadataTriples(repository, triples);
- return migrationInfoCopy;
- }
-
- async updateContractMetadata(repository, migrationInfo) {
- const assetsQueryResult = await this.tripleStoreService.select(
- repository,
- `PREFIX schema: <${SCHEMA_CONTEXT}>
- SELECT DISTINCT ?ual
- WHERE {
- GRAPH {
- ?ual ?p ?o .
- FILTER NOT EXISTS {
- ?ual schema:contract ?contract .
- }
- }
- }`,
- );
-
- this.logger.debug(
- `found ${assetsQueryResult.length} assets with missing contract metadata`,
- );
-
- let triples = '';
- let processedAssets = [];
- const migrationInfoCopy = migrationInfo;
- for (let i = 0; i < assetsQueryResult.length; i += 1) {
- const { ual } = assetsQueryResult[i];
- let resolvedUAL;
- try {
- resolvedUAL = this.ualService.resolveUAL(ual);
- } catch (error) {
- this.logger.warn(`Unable to resolve UAL: ${error}`);
- continue;
- }
-
- const { contract } = resolvedUAL;
-
- triples += `<${ual}> schema:contract "${contract}" . \n`;
- processedAssets.push({ ual, contract });
- if (i % 10_000 === 0) {
- await this.insertMetadataTriples(repository, triples);
- for (const processedAsset of processedAssets) {
- if (!migrationInfoCopy.processedUals[processedAsset.ual])
- migrationInfoCopy.processedUals[processedAsset.ual] = {
- contract: processedAsset.contract,
- };
- else
- migrationInfoCopy.processedUals[processedAsset.ual].contract =
- processedAsset.contract;
- }
- await this._updateMigrationInfoFile(repository, migrationInfoCopy);
- triples = '';
- processedAssets = [];
- }
- }
- await this.insertMetadataTriples(repository, triples);
- return migrationInfoCopy;
- }
-
- async updateKeywordMetadata(repository, migrationInfo) {
- const assetsQueryResult = await this.tripleStoreService.select(
- repository,
- `PREFIX schema: <${SCHEMA_CONTEXT}>
- SELECT DISTINCT ?ual
- WHERE {
- GRAPH {
- ?ual ?p ?o .
- FILTER NOT EXISTS {
- ?ual schema:keyword ?keyword .
- }
- }
- }`,
- );
-
- this.logger.debug(`found ${assetsQueryResult.length} assets with missing keyword metadata`);
-
- let triples = '';
- const processedAssets = [];
- const migrationInfoCopy = migrationInfo;
- for (const { ual } of assetsQueryResult) {
- let resolvedUAL;
- try {
- resolvedUAL = this.ualService.resolveUAL(ual);
- } catch (error) {
- this.logger.warn(`Unable to resolve UAL: ${error}`);
- continue;
- }
-
- const { blockchain, contract, tokenId } = resolvedUAL;
-
- let assertionIds;
- try {
- assertionIds = await this.blockchainModuleManager.getAssertionIds(
- blockchain,
- contract,
- tokenId,
- );
- } catch (error) {
- this.logger.warn(`Unable to find assertion ids for asset with ual: ${ual}`);
- continue;
- }
-
- if (!assertionIds?.length) {
- this.logger.warn(`Unable to find assertion ids for asset with ual: ${ual}`);
- continue;
- }
-
- const keyword = this.blockchainModuleManager.encodePacked(
- blockchain,
- ['address', 'bytes32'],
- [contract, assertionIds[0]],
- );
-
- triples += `<${ual}> schema:keyword "${keyword}" . \n`;
- processedAssets.push({ ual, keyword });
- }
-
- for (const processedAsset of processedAssets) {
- if (!migrationInfoCopy.processedUals[processedAsset.ual])
- migrationInfoCopy.processedUals[processedAsset.ual] = {
- keyword: processedAsset.keyword,
- };
- else
- migrationInfoCopy.processedUals[processedAsset.ual].keyword =
- processedAsset.keyword;
- }
- await this.insertMetadataTriples(repository, triples);
- await this._updateMigrationInfoFile(repository, migrationInfoCopy);
- return migrationInfoCopy;
- }
-
- async updateAssertionMetadata(currentRepository, historyRepository, migrationInfo) {
- const assetsQueryResult = await this.tripleStoreService.select(
- currentRepository,
- `PREFIX schema: <${SCHEMA_CONTEXT}>
-
- SELECT distinct ?ual
- WHERE {
- {
- GRAPH {
- ?ual ?p ?o .
- }
- FILTER NOT EXISTS {
- ?ual schema:assertion ?assertion .
- }
- }
- UNION
- {
- GRAPH {
- ?ual schema:assertion ?assertion1 .
- ?ual schema:assertion ?assertion2 .
- }
- FILTER (?assertion1 != ?assertion2)
- }
- }`,
- );
-
- this.logger.debug(
- `found ${assetsQueryResult.length} assets not containing exactly one assertion id in metadata`,
- );
-
- let migrationInfoCopy = migrationInfo;
- for (const { ual } of assetsQueryResult) {
- if (!migrationInfoCopy.processedUals[ual]) migrationInfoCopy.processedUals[ual] = {};
- let resolvedUAL;
- try {
- resolvedUAL = this.ualService.resolveUAL(ual);
- } catch (error) {
- this.logger.warn(`Unable to resolve UAL: ${error}`);
- continue;
- }
-
- const { blockchain, contract, tokenId } = resolvedUAL;
-
- let assertionIds;
- try {
- assertionIds = await this.blockchainModuleManager.getAssertionIds(
- blockchain,
- contract,
- tokenId,
- );
- migrationInfoCopy.processedUals[ual].assertionIds = assertionIds;
- } catch (error) {
- this.logger.warn(`Unable to find assertion ids for asset with ual: ${ual}`);
- continue;
- }
-
- if (!assertionIds?.length) {
- this.logger.warn(`Unable to find assertion ids for asset with ual: ${ual}`);
- continue;
- }
-
- const keyword = this.blockchainModuleManager.encodePacked(
- blockchain,
- ['address', 'bytes32'],
- [contract, assertionIds[0]],
- );
-
- migrationInfoCopy = await this._moveOldAssertionIds(
- currentRepository,
- historyRepository,
- ual,
- blockchain,
- contract,
- tokenId,
- keyword,
- assertionIds,
- migrationInfoCopy,
- );
-
- migrationInfoCopy = await this._updateAssetMetadata(
- currentRepository,
- assertionIds,
- ual,
- blockchain,
- contract,
- tokenId,
- keyword,
- migrationInfoCopy,
- );
- }
-
- return migrationInfoCopy;
- }
-
- async _moveOldAssertionIds(
- currentRepository,
- historyRepository,
- ual,
- blockchain,
- contract,
- tokenId,
- keyword,
- assertionIds,
- migrationInfo,
- ) {
- const migrationInfoCopy = migrationInfo;
- for (let i = 0; i < assertionIds.length - 1; i += 1) {
- const publicAssertionId = assertionIds[i];
- const publicAssertion = await this.tripleStoreService.getAssertion(
- currentRepository,
- publicAssertionId,
- );
-
- if (publicAssertion?.length) {
- await this.tripleStoreService.localStoreAsset(
- historyRepository,
- publicAssertionId,
- publicAssertion,
- blockchain,
- contract,
- tokenId,
- keyword,
- );
- if (!migrationInfoCopy.processedUals[ual].copiedHistory) {
- migrationInfoCopy.processedUals[ual].copiedHistory = [];
- }
- migrationInfoCopy.processedUals[ual].copiedHistory.push({
- stateIndex: i,
- publicAssertionId,
- publicAssertion,
- });
-
- await this._updateMigrationInfoFile(currentRepository, migrationInfoCopy);
-
- if (currentRepository === TRIPLE_STORE_REPOSITORIES.PRIVATE_CURRENT) {
- const privateAssertionId =
- this.dataService.getPrivateAssertionId(publicAssertion);
- if (privateAssertionId) {
- const privateAssertion = await this.tripleStoreService.getAssertion(
- currentRepository,
- privateAssertionId,
- );
-
- if (privateAssertion?.length) {
- await this.tripleStoreService.localStoreAsset(
- historyRepository,
- privateAssertionId,
- privateAssertion,
- blockchain,
- contract,
- tokenId,
- keyword,
- );
- migrationInfoCopy.processedUals[ual].copiedHistory.push({
- stateIndex: i,
- privateAssertionId,
- privateAssertion,
- });
- await this._updateMigrationInfoFile(
- currentRepository,
- migrationInfoCopy,
- );
- }
- }
- }
- }
- }
-
- return migrationInfoCopy;
- }
-
- async _updateAssetMetadata(
- currentRepository,
- assertionIds,
- ual,
- blockchain,
- contract,
- tokenId,
- keyword,
- migrationInfo,
- ) {
- const migrationInfoCopy = migrationInfo;
- const latestPublicAssertionId = assertionIds[assertionIds.length - 1];
- const latestPublicAssertion = await this.tripleStoreService.getAssertion(
- currentRepository,
- latestPublicAssertionId,
- );
-
- if (latestPublicAssertion?.length) {
- const assetMetadata = {
- '@context': SCHEMA_CONTEXT,
- '@id': ual,
- blockchain,
- contract,
- tokenId,
- keyword,
- assertion: [{ '@id': `assertion:${latestPublicAssertionId}` }],
- };
-
- if (currentRepository === TRIPLE_STORE_REPOSITORIES.PRIVATE_CURRENT) {
- const latestPrivateAssertionId =
- this.dataService.getPrivateAssertionId(latestPublicAssertion);
- if (latestPrivateAssertionId) {
- assetMetadata.assertion.push({
- '@id': `assertion:${latestPrivateAssertionId}`,
- });
- }
- }
-
- const assetMetadataNquads = await formatAssertion(assetMetadata);
- await this.tripleStoreService.queryVoid(
- currentRepository,
- `DELETE WHERE {
- GRAPH {
- <${ual}> ?p ?o
- }
- };
- INSERT DATA {
- GRAPH {
- ${assetMetadataNquads.join('\n')}
- }
- }`,
- );
- migrationInfoCopy.processedUals[ual].upddatedMetadata = true;
- } else {
- await this.tripleStoreService.deleteAssetMetadata(
- currentRepository,
- blockchain,
- contract,
- tokenId,
- );
- migrationInfoCopy.processedUals[ual].deletedMetadata = true;
- }
-
- await this._updateMigrationInfoFile(currentRepository, migrationInfoCopy);
-
- return migrationInfoCopy;
- }
-
- async deleteUnsupportedAssetsMetadata(repository) {
- let assetStorageContractAddresses = [];
- for (const blockchain of this.blockchainModuleManager.getImplementationNames()) {
- assetStorageContractAddresses = assetStorageContractAddresses.concat(
- await this.blockchainModuleManager.getAssetStorageContractAddresses(blockchain),
- );
- }
-
- const deleteQuery = `
- PREFIX schema: <${SCHEMA_CONTEXT}>
-
- DELETE {
- GRAPH { ?s ?p ?o . }
- } WHERE {
- GRAPH {
- ?s ?p ?o .
- ?s schema:contract ?o2 .
- FILTER NOT EXISTS {
- VALUES ?oValue { ${assetStorageContractAddresses
- .map((addr) => `"${addr}"`)
- .join(' ')} }
- FILTER (?o2 = ?oValue)
- }
- }
- }`;
-
- await this.tripleStoreService.queryVoid(repository, deleteQuery);
- }
-
- async deleteUnlinkedAssertions(repository, migrationInfo) {
- let assetsQueryResult;
- const migrationInfoCopy = migrationInfo;
- do {
- assetsQueryResult = await this.tripleStoreService.select(
- repository,
- `PREFIX schema: <${SCHEMA_CONTEXT}>
-
- SELECT DISTINCT ?g WHERE {
- GRAPH ?g { ?s ?p ?o . }
- FILTER NOT EXISTS {
- GRAPH {
- ?ual schema:assertion ?g .
- }
- }
- FILTER (?g != )
- }
- LIMIT 100`,
- );
- if (assetsQueryResult?.length) {
- assetsQueryResult = assetsQueryResult.filter(({ g }) => g.startsWith('assertion:'));
- }
- this.logger.debug(
- `found ${assetsQueryResult.length} assertions not linked to any asset.`,
- );
- let deleteQuery = '';
- if (!migrationInfoCopy.deletedAssertions) migrationInfoCopy.deletedAssertions = [];
- for (const { g } of assetsQueryResult) {
- deleteQuery += `
- WITH <${g}>
- DELETE { ?s ?p ?o }
- WHERE { ?s ?p ?o };`;
- migrationInfoCopy.deletedAssertions.push(g);
- }
-
- if (deleteQuery !== '') {
- await this.tripleStoreService.queryVoid(repository, deleteQuery);
- }
- await this._updateMigrationInfoFile(repository, migrationInfoCopy);
- } while (assetsQueryResult?.length);
-
- return migrationInfoCopy;
- }
-
- async _logMetadataStats(repository) {
- const allAssetsResult = await this.tripleStoreService.select(
- repository,
- `PREFIX schema: <${SCHEMA_CONTEXT}>
-
- SELECT
- (COUNT(DISTINCT ?ual) AS ?all)
- WHERE {
- GRAPH {
- {
- ?ual ?p ?o .
- }
- }
- }`,
- );
- let stats = this.dataService.parseBindings(allAssetsResult)[0];
-
- let log = `metadata stats for ${repository} repository: `;
- log += `\n\t\t\t\tdistinct number of uals: ${stats.all}`;
-
- const predicates = ['blockchain', 'contract', 'tokenId', 'keyword', 'assertion'];
- for (const predicate of predicates) {
- stats = await this._getPredicateStats(repository, predicate);
- log += `\n\t\t\t\tdistinct number of uals with predicate ${predicate}: ${stats}`;
- }
- this.logger.debug(log);
- }
-
- async _getPredicateStats(repository, predicate) {
- const query = `
- PREFIX schema: <${SCHEMA_CONTEXT}>
- SELECT
- (COUNT(DISTINCT ?ual) AS ?${predicate})
- WHERE {
- GRAPH {
- {
- ?ual schema:${predicate} ?${predicate} .
- }
- }
- }`;
-
- const result = await this.tripleStoreService.select(repository, query);
- const stats = this.dataService.parseBindings(result)[0];
-
- return stats[predicate];
- }
-
- _logPercentage(index, max, repository) {
- const previousPercentage = (Math.max(0, index - 1) / max) * 100;
- const currentPercentage = (index / max) * 100;
-
- if (Math.floor(currentPercentage) - Math.floor(previousPercentage) < 1) return;
-
- this.logger.debug(
- `${this.migrationName} at ${
- Math.floor(currentPercentage * 10) / 10
- }% for ${repository} repository`,
- );
- }
-
- async _updateMigrationInfoFile(repository, migrationInfo) {
- const migrationFolderPath = this.fileService.getMigrationFolderPath();
- const migrationInfoFileName = `${this.migrationName}_${repository}`;
-
- await this.fileService.writeContentsToFile(
- migrationFolderPath,
- migrationInfoFileName,
- JSON.stringify(migrationInfo),
- );
- }
-
- async insertMetadataTriples(repository, triples) {
- await this.tripleStoreService.queryVoid(
- repository,
- `PREFIX schema: <${SCHEMA_CONTEXT}>
- INSERT DATA {
- GRAPH {
- ${triples}
- }
- }`,
- );
- }
-}
-
-export default TripleStoreMetadataMigration;
diff --git a/src/migration/triple-store-user-configuration-migration.js b/src/migration/triple-store-user-configuration-migration.js
index ba6f7b8646..5fef044050 100644
--- a/src/migration/triple-store-user-configuration-migration.js
+++ b/src/migration/triple-store-user-configuration-migration.js
@@ -1,130 +1,36 @@
-import path from 'path';
import appRootPath from 'app-root-path';
+import path from 'path';
import BaseMigration from './base-migration.js';
-import { NODE_ENVIRONMENTS } from '../constants/constants.js';
class TripleStoreUserConfigurationMigration extends BaseMigration {
async executeMigration() {
- if (
- process.env.NODE_ENV !== NODE_ENVIRONMENTS.DEVELOPMENT &&
- process.env.NODE_ENV !== NODE_ENVIRONMENTS.TEST
- ) {
- const configurationFolderPath = path.join(appRootPath.path, '..');
- const configurationFilePath = path.join(
- configurationFolderPath,
- this.config.configFilename,
- );
-
- const userConfiguration = await this.fileService.readFile(configurationFilePath, true);
- if (userConfiguration.modules.tripleStore.implementation) {
- for (const implementationName in userConfiguration.modules.tripleStore
- .implementation) {
- const oldImplementationConfig =
- userConfiguration.modules.tripleStore.implementation[implementationName]
- .config;
- if (oldImplementationConfig && !oldImplementationConfig.repositories) {
- let { url, username, password, repository } = oldImplementationConfig;
-
- if (!url) {
- url =
- implementationName === 'ot-blazegraph'
- ? 'http://localhost:9999'
- : 'http://localhost:3030';
- }
-
- if (!username) {
- username = 'admin';
- }
-
- if (!password) {
- password = '';
- }
-
- if (!repository) {
- if (implementationName === 'ot-blazegraph') {
- repository = 'kb';
- }
- if (implementationName === 'ot-fuseki') {
- repository = 'node0';
- }
- }
- const newImplementationConfig = {
- repositories: {
- publicCurrent: {
- url,
- name: repository,
- username,
- password,
- },
- publicHistory: {
- url,
- name: 'public-history',
- username,
- password,
- },
- privateCurrent: {
- url,
- name: 'private-current',
- username,
- password,
- },
- privateHistory: {
- url,
- name: 'private-history',
- username,
- password,
- },
- },
- };
-
- userConfiguration.modules.tripleStore.implementation[
- implementationName
- ].config = newImplementationConfig;
- }
- }
- } else {
- const configurationTemplatePath = path.join(
- appRootPath.path,
- 'tools',
- 'local-network-setup',
- '.origintrail_noderc_template.json',
- );
- const configurationTemplate = await this.fileService.readFile(
- configurationTemplatePath,
- true,
- );
-
- if (
- userConfiguration.modules.tripleStore.defaultImplementation === 'ot-blazegraph'
- ) {
- userConfiguration.modules.tripleStore.implementation = {
- 'ot-blazegraph':
- configurationTemplate.modules.tripleStore.implementation[
- 'ot-blazegraph'
- ],
- };
- configurationTemplate.modules.tripleStore.implementation[
- 'ot-blazegraph'
- ].enabled = true;
- configurationTemplate.modules.tripleStore.implementation[
- 'ot-blazegraph'
- ].config.repositories.publicCurrent.name = 'kb';
- } else if (
- userConfiguration.modules.tripleStore.defaultImplementation === 'ot-fuseki'
- ) {
- userConfiguration.modules.tripleStore.implementation = {
- 'ot-fuseki':
- configurationTemplate.modules.tripleStore.implementation['ot-fuseki'],
+ const configurationFolderPath = path.join(appRootPath.path, '..');
+ const configurationFilePath = path.join(
+ configurationFolderPath,
+ this.config.configFilename,
+ );
+
+ const userConfiguration = await this.fileService.readFile(configurationFilePath, true);
+
+ if ('tripleStore' in userConfiguration.modules) {
+ const oldConfigTripleStore = userConfiguration.modules;
+ for (const implementation in oldConfigTripleStore.tripleStore.implementation) {
+ if (oldConfigTripleStore.tripleStore.implementation[implementation].enabled) {
+ const { url, username, password } =
+ oldConfigTripleStore.tripleStore.implementation[implementation].config
+ .repositories.publicCurrent;
+
+ oldConfigTripleStore.tripleStore.implementation[
+ implementation
+ ].config.repositories.dkg = {
+ url,
+ name: 'dkg',
+ username,
+ password,
};
- configurationTemplate.modules.tripleStore.implementation[
- 'ot-fuseki'
- ].enabled = true;
- configurationTemplate.modules.tripleStore.implementation[
- 'ot-fuseki'
- ].config.repositories.publicCurrent.name = 'node0';
}
}
- delete userConfiguration.modules.tripleStore.defaultImplementation;
+
await this.fileService.writeContentsToFile(
configurationFolderPath,
this.config.configFilename,
diff --git a/src/migration/ual-extension-triple-store-migration.js b/src/migration/ual-extension-triple-store-migration.js
deleted file mode 100644
index 4709c6133b..0000000000
--- a/src/migration/ual-extension-triple-store-migration.js
+++ /dev/null
@@ -1,95 +0,0 @@
-/* eslint-disable no-await-in-loop */
-import BaseMigration from './base-migration.js';
-import { TRIPLE_STORE_REPOSITORIES } from '../constants/constants.js';
-
-const CHAIN_IDS = {
- development: 31337,
- test: 31337,
- devnet: 2160,
- testnet: 20430,
- mainnet: 2043,
-};
-const chainId = CHAIN_IDS[process.env.NODE_ENV];
-
-class UalExtensionTripleStoreMigration extends BaseMigration {
- constructor(migrationName, logger, config, tripleStoreService) {
- super(migrationName, logger, config);
- this.tripleStoreService = tripleStoreService;
- }
-
- async executeMigration() {
- const oldBlockchainId = this.getOldBlockchainId();
- const newBlockchainId = `${oldBlockchainId}:${chainId}`;
-
- const chunkSize = 10000;
-
- for (const repository in TRIPLE_STORE_REPOSITORIES) {
- const getUalListQuery = `
- PREFIX schema:
- SELECT DISTINCT ?subject ?object
- WHERE {
- ?subject schema:assertion ?object .
- }`;
-
- const ualList = await this.tripleStoreService.select(
- TRIPLE_STORE_REPOSITORIES[repository],
- getUalListQuery,
- );
-
- this.logger.info(
- `Ual extension triple store migration: found ${ualList.length} distinct UALs in ${repository}`,
- );
- const subjectsSet = new Set(ualList.map((item) => item.subject));
- const newTriples = [];
- for (const { subject: ual, object: assertionId } of ualList) {
- if (assertionId.startsWith('assertion:')) {
- let newUal;
- if (ual.includes(newBlockchainId)) {
- newUal = ual.replace(newBlockchainId, oldBlockchainId);
- } else {
- newUal = ual.replace(oldBlockchainId, newBlockchainId);
- }
- if (!subjectsSet.has(newUal)) {
- newTriples.push(`<${newUal}> schema:assertion <${assertionId}>`);
- }
- }
- }
-
- while (newTriples.length) {
- const triplesForInsert = newTriples.splice(0, chunkSize);
- const insertQuery = `
- PREFIX schema:
- INSERT DATA {
- GRAPH {
- ${triplesForInsert.join(' .\n')}
- }
- }`;
- await this.tripleStoreService.queryVoid(
- TRIPLE_STORE_REPOSITORIES[repository],
- insertQuery,
- );
- this.logger.info(
- `Inserted ${triplesForInsert.length} triples, left for insert: ${newTriples.length} repository: ${repository}`,
- );
- }
- this.logger.info(`Finished processing of UALs in repository: ${repository}`);
- }
- }
-
- getOldBlockchainId() {
- let oldBlockchainId;
- if (this.config.modules.blockchain.implementation) {
- for (const implementationName in this.config.modules.blockchain.implementation) {
- if (this.config.modules.blockchain.implementation[implementationName].enabled) {
- oldBlockchainId = implementationName;
- }
- }
- }
- if (!oldBlockchainId) {
- throw Error('Unable to find old blockchain id in configuration');
- }
- return oldBlockchainId.split(':')[0];
- }
-}
-
-export default UalExtensionTripleStoreMigration;
diff --git a/src/migration/ual-extension-user-configuration-migration.js b/src/migration/ual-extension-user-configuration-migration.js
deleted file mode 100644
index 5d0c74f570..0000000000
--- a/src/migration/ual-extension-user-configuration-migration.js
+++ /dev/null
@@ -1,71 +0,0 @@
-import appRootPath from 'app-root-path';
-import path from 'path';
-import BaseMigration from './base-migration.js';
-
-const CHAIN_IDS = {
- development: 31337,
- test: 31337,
- devnet: 2160,
- testnet: 20430,
- mainnet: 2043,
-};
-const chainId = CHAIN_IDS[process.env.NODE_ENV];
-
-class UalExtensionUserConfigurationMigration extends BaseMigration {
- constructor(migrationName, logger, config, repositoryModuleManager) {
- super(migrationName, logger, config);
- this.repositoryModuleManager = repositoryModuleManager;
- }
-
- async executeMigration() {
- const configurationFolderPath = path.join(appRootPath.path, '..');
- const configurationFilePath = path.join(
- configurationFolderPath,
- this.config.configFilename,
- );
-
- const userConfiguration = await this.fileService.readFile(configurationFilePath, true);
-
- const oldBlockchainId = this.getOldBlockchainId(userConfiguration);
-
- if (this.blockchainIdInNewFormat(oldBlockchainId)) {
- this.logger.info(
- 'Blockchain id in user configuration already updated to be in new format, migration will be skipped',
- );
- return null;
- }
-
- const newBlockchainId = `${oldBlockchainId}:${chainId}`;
- userConfiguration.modules.blockchain.defaultImplementation = newBlockchainId;
- userConfiguration.modules.blockchain.implementation[newBlockchainId] =
- userConfiguration.modules.blockchain.implementation[oldBlockchainId];
- userConfiguration.modules.blockchain.implementation[newBlockchainId].enabled = true;
- delete userConfiguration.modules.blockchain.implementation[oldBlockchainId];
- await this.fileService.writeContentsToFile(
- configurationFolderPath,
- this.config.configFilename,
- JSON.stringify(userConfiguration, null, 4),
- );
- }
-
- blockchainIdInNewFormat(blockchainId) {
- return blockchainId.includes(':');
- }
-
- getOldBlockchainId(userConfiguration) {
- let oldBlockchainId;
- if (userConfiguration.modules.blockchain.implementation) {
- for (const implementationName in userConfiguration.modules.blockchain.implementation) {
- if (implementationName.includes('otp')) {
- oldBlockchainId = implementationName;
- }
- }
- }
- if (!oldBlockchainId) {
- throw Error('Unable to find old blockchain id in user configuration');
- }
- return oldBlockchainId;
- }
-}
-
-export default UalExtensionUserConfigurationMigration;
diff --git a/src/modules/blockchain-events/blockchain-events-module-manager.js b/src/modules/blockchain-events/blockchain-events-module-manager.js
new file mode 100644
index 0000000000..4ddc821eb9
--- /dev/null
+++ b/src/modules/blockchain-events/blockchain-events-module-manager.js
@@ -0,0 +1,55 @@
+import BaseModuleManager from '../base-module-manager.js';
+
+class BlockchainEventsModuleManager extends BaseModuleManager {
+ getContractAddress(implementationName, blockchain, contractName) {
+ if (this.getImplementation(implementationName)) {
+ return this.getImplementation(implementationName).module.getContractAddress(
+ blockchain,
+ contractName,
+ );
+ }
+ }
+
+ updateContractAddress(implementationName, blockchain, contractName, contractAddress) {
+ if (this.getImplementation(implementationName)) {
+ return this.getImplementation(implementationName).module.updateContractAddress(
+ blockchain,
+ contractName,
+ contractAddress,
+ );
+ }
+ }
+
+ async getBlock(implementationName, blockchain, tag) {
+ if (this.getImplementation(implementationName)) {
+ return this.getImplementation(implementationName).module.getBlock(blockchain, tag);
+ }
+ }
+
+ async getPastEvents(
+ implementationName,
+ blockchain,
+ contractNames,
+ eventsToFilter,
+ lastCheckedBlock,
+ lastCheckedTimestamp,
+ currentBlock,
+ ) {
+ if (this.getImplementation(implementationName)) {
+ return this.getImplementation(implementationName).module.getPastEvents(
+ blockchain,
+ contractNames,
+ eventsToFilter,
+ lastCheckedBlock,
+ lastCheckedTimestamp,
+ currentBlock,
+ );
+ }
+ }
+
+ getName() {
+ return 'blockchainEvents';
+ }
+}
+
+export default BlockchainEventsModuleManager;
diff --git a/src/modules/blockchain-events/implementation/blockchain-events-service.js b/src/modules/blockchain-events/implementation/blockchain-events-service.js
new file mode 100644
index 0000000000..a0a3cb3a10
--- /dev/null
+++ b/src/modules/blockchain-events/implementation/blockchain-events-service.js
@@ -0,0 +1,24 @@
+class BlockchainEventsService {
+ async initialize(config, logger) {
+ this.logger = logger;
+ this.config = config;
+ }
+
+ getContractAddress() {
+ throw Error('getContractAddress not implemented');
+ }
+
+ updateContractAddress() {
+ throw Error('updateContractAddress not implemented');
+ }
+
+ async getBlock() {
+ throw Error('getBlock not implemented');
+ }
+
+ async getPastEvents() {
+ throw Error('getPastEvents not implemented');
+ }
+}
+
+export default BlockchainEventsService;
diff --git a/src/modules/blockchain-events/implementation/ot-ethers/ot-ethers.js b/src/modules/blockchain-events/implementation/ot-ethers/ot-ethers.js
new file mode 100644
index 0000000000..afd87ef4f4
--- /dev/null
+++ b/src/modules/blockchain-events/implementation/ot-ethers/ot-ethers.js
@@ -0,0 +1,242 @@
+/* eslint-disable no-await-in-loop */
+import { ethers } from 'ethers';
+import BlockchainEventsService from '../blockchain-events-service.js';
+
+import {
+ MAXIMUM_NUMBERS_OF_BLOCKS_TO_FETCH,
+ MAX_BLOCKCHAIN_EVENT_SYNC_OF_HISTORICAL_BLOCKS_IN_MILLS,
+ NODE_ENVIRONMENTS,
+ ABIs,
+ MONITORED_CONTRACTS,
+} from '../../../../constants/constants.js';
+
+class OtEthers extends BlockchainEventsService {
+ async initialize(config, logger) {
+ await super.initialize(config, logger);
+ this.contractCallCache = {};
+ await this._initializeRpcProviders();
+ await this._initializeContracts();
+ }
+
+ async _initializeRpcProviders() {
+ this.providers = {};
+ for (const blockchain of this.config.blockchains) {
+ const validProviders = [];
+ for (const rpcEndpoint of this.config.rpcEndpoints[blockchain]) {
+ try {
+ const provider = new ethers.providers.JsonRpcProvider(rpcEndpoint);
+
+ // eslint-disable-next-line no-await-in-loop
+ await provider.getNetwork();
+ validProviders.push(provider);
+ } catch (error) {
+ this.logger.error(
+ `Failed to initialize provider: ${rpcEndpoint}. Error: ${error.message}`,
+ );
+ }
+ }
+
+ if (validProviders.length === 0) {
+ throw new Error(`No valid providers found for blockchain: ${blockchain}`);
+ }
+
+ this.providers[blockchain] = validProviders;
+ this.logger.info(
+ `Initialized ${validProviders.length} valid providers for blockchain: ${blockchain}`,
+ );
+ }
+ }
+
+ _getRandomProvider(blockchain) {
+ const blockchainProviders = this.providers[blockchain];
+ if (!blockchainProviders || blockchainProviders.length === 0) {
+ throw new Error(`No providers available for blockchain: ${blockchain}`);
+ }
+ const randomIndex = Math.floor(Math.random() * blockchainProviders.length);
+ return blockchainProviders[randomIndex];
+ }
+
+ async _initializeContracts() {
+ this.contracts = {};
+
+ for (const blockchain of this.config.blockchains) {
+ this.contracts[blockchain] = {};
+
+ this.logger.info(
+ `Initializing contracts with hub contract address: ${this.config.hubContractAddress[blockchain]}`,
+ );
+ this.contracts[blockchain].Hub = this.config.hubContractAddress[blockchain];
+
+ const provider = this._getRandomProvider(blockchain);
+ const hubContract = new ethers.Contract(
+ this.config.hubContractAddress[blockchain],
+ ABIs.Hub,
+ provider,
+ );
+
+ const contractsAray = await hubContract.getAllContracts();
+ const assetStoragesArray = await hubContract.getAllAssetStorages();
+
+ const allContracts = [...contractsAray, ...assetStoragesArray];
+
+ for (const [contractName, contractAddress] of allContracts) {
+ if (MONITORED_CONTRACTS.includes(contractName) && ABIs[contractName] != null) {
+ this.contracts[blockchain][contractName] = contractAddress;
+ }
+ }
+ }
+ }
+
+ getContractAddress(blockchain, contractName) {
+ return this.contracts[blockchain][contractName];
+ }
+
+ updateContractAddress(blockchain, contractName, contractAddress) {
+ this.contracts[blockchain][contractName] = contractAddress;
+ }
+
+ async getBlock(blockchain, tag) {
+ const provider = this._getRandomProvider(blockchain);
+ return provider.getBlock(tag);
+ }
+
+ async getPastEvents(blockchain, contractNames, eventsToFilter, lastCheckedBlock, currentBlock) {
+ const maxBlocksToSync = await this._getMaxNumberOfHistoricalBlocksForSync(blockchain);
+ let fromBlock =
+ currentBlock - lastCheckedBlock > maxBlocksToSync ? currentBlock : lastCheckedBlock + 1;
+ const eventsMissed = currentBlock - lastCheckedBlock > maxBlocksToSync;
+ if (eventsMissed) {
+ return {
+ events: [],
+ lastCheckedBlock: currentBlock,
+ eventsMissed,
+ };
+ }
+
+ const contractAddresses = [];
+ const topics = [];
+ const addressToContractNameMap = {};
+
+ for (const contractName of contractNames) {
+ const contractAddress = this.contracts[blockchain][contractName];
+
+ if (!contractAddress) {
+ continue;
+ }
+
+ const provider = this._getRandomProvider(blockchain);
+ const contract = new ethers.Contract(contractAddress, ABIs[contractName], provider);
+ const contractTopics = [];
+ for (const filterName in contract.filters) {
+ if (!eventsToFilter.includes(filterName)) {
+ continue;
+ }
+ const filter = contract.filters[filterName]().topics[0];
+ contractTopics.push(filter);
+ }
+
+ if (contractTopics.length > 0) {
+ contractAddresses.push(contract.address);
+ topics.push(...contractTopics);
+ addressToContractNameMap[contract.address.toLowerCase()] = contractName;
+ }
+ }
+
+ const events = [];
+ let toBlock = currentBlock;
+ try {
+ while (fromBlock <= currentBlock) {
+ toBlock = Math.min(
+ fromBlock + MAXIMUM_NUMBERS_OF_BLOCKS_TO_FETCH - 1,
+ currentBlock,
+ );
+
+ const fromBlockParam = ethers.BigNumber.from(fromBlock)
+ .toHexString()
+ .replace(/^0x0+/, '0x');
+ const toBlockParam = ethers.BigNumber.from(toBlock)
+ .toHexString()
+ .replace(/^0x0+/, '0x');
+ const provider = this._getRandomProvider(blockchain);
+ const newLogs = await provider.send('eth_getLogs', [
+ {
+ address: contractAddresses,
+ fromBlock: fromBlockParam,
+ toBlock: toBlockParam,
+ topics: [topics],
+ },
+ ]);
+
+ for (const log of newLogs) {
+ const contractName = addressToContractNameMap[log.address];
+ const contractInterface = new ethers.utils.Interface(ABIs[contractName]);
+
+ try {
+ const parsedLog = contractInterface.parseLog(log);
+ events.push({
+ blockchain,
+ contract: contractName,
+ contractAddress: log.address,
+ event: parsedLog.name,
+ data: JSON.stringify(
+ Object.fromEntries(
+ Object.entries(parsedLog.args).map(([k, v]) => [
+ k,
+ ethers.BigNumber.isBigNumber(v) ? v.toString() : v,
+ ]),
+ ),
+ ),
+ blockNumber: parseInt(log.blockNumber, 16),
+ transactionIndex: parseInt(log.transactionIndex, 16),
+ logIndex: parseInt(log.logIndex, 16),
+ });
+ } catch (error) {
+ this.logger.warn(
+ `Failed to parse log for contract: ${contractName}. Error: ${error.message}`,
+ );
+ }
+ }
+
+ fromBlock = toBlock + 1;
+ }
+ } catch (error) {
+ this.logger.warn(
+ `Unable to process block range from: ${fromBlock} to: ${toBlock} on blockchain: ${blockchain}. Error: ${error.message}`,
+ );
+ }
+
+ return {
+ events,
+ eventsMissed,
+ };
+ }
+
+ async _getMaxNumberOfHistoricalBlocksForSync(blockchain) {
+ if (!this.maxNumberOfHistoricalBlocksForSync) {
+ if (
+ [NODE_ENVIRONMENTS.DEVELOPMENT, NODE_ENVIRONMENTS.TEST].includes(
+ process.env.NODE_ENV,
+ )
+ ) {
+ this.maxNumberOfHistoricalBlocksForSync = Infinity;
+ } else {
+ const blockTimeMillis = await this._getBlockTimeMillis(blockchain);
+
+ this.maxNumberOfHistoricalBlocksForSync = Math.round(
+ MAX_BLOCKCHAIN_EVENT_SYNC_OF_HISTORICAL_BLOCKS_IN_MILLS / blockTimeMillis,
+ );
+ }
+ }
+ return this.maxNumberOfHistoricalBlocksForSync;
+ }
+
+ async _getBlockTimeMillis(blockchain, blockRange = 1000) {
+ const latestBlock = await this.getBlock(blockchain);
+ const olderBlock = await this.getBlock(blockchain, latestBlock.number - blockRange);
+
+ const timeDiffMillis = (latestBlock.timestamp - olderBlock.timestamp) * 1000;
+ return timeDiffMillis / blockRange;
+ }
+}
+
+export default OtEthers;
diff --git a/src/modules/blockchain/blockchain-module-manager.js b/src/modules/blockchain/blockchain-module-manager.js
index 1d8f9c755c..9e6f691ea4 100644
--- a/src/modules/blockchain/blockchain-module-manager.js
+++ b/src/modules/blockchain/blockchain-module-manager.js
@@ -5,6 +5,16 @@ class BlockchainModuleManager extends BaseModuleManager {
return 'blockchain';
}
+ callImplementationFunction(blockchain, functionName, args = []) {
+ if (blockchain) {
+ if (this.getImplementation(blockchain)) {
+ return this.getImplementation(blockchain).module[functionName](...args);
+ }
+ } else {
+ return this.getImplementation().module[functionName](...args);
+ }
+ }
+
initializeTransactionQueues(blockchain, concurrency) {
return this.callImplementationFunction(blockchain, 'getTotalTransactionQueueLength', [
concurrency,
@@ -32,6 +42,10 @@ class BlockchainModuleManager extends BaseModuleManager {
]);
}
+ getContractAddress(blockchain, contractName) {
+ return this.callImplementationFunction(blockchain, 'getContractAddress', [contractName]);
+ }
+
setContractCallCache(blockchain, contractName, functionName, value) {
return this.callImplementationFunction(blockchain, 'setContractCallCache', [
contractName,
@@ -82,41 +96,34 @@ class BlockchainModuleManager extends BaseModuleManager {
return this.callImplementationFunction(blockchain, 'restartService');
}
- async getMinProofWindowOffsetPerc(blockchain) {
- return this.callImplementationFunction(blockchain, 'getMinProofWindowOffsetPerc');
- }
-
- async getMaxProofWindowOffsetPerc(blockchain) {
- return this.callImplementationFunction(blockchain, 'getMaxProofWindowOffsetPerc');
- }
-
- async generatePseudorandomUint8(blockchain, assetCreator, blockNumber, blockTimestamp, limit) {
- return this.callImplementationFunction(blockchain, 'generatePseudorandomUint8', [
- assetCreator,
- blockNumber,
- blockTimestamp,
- limit,
- ]);
- }
-
- async getAssertionIdByIndex(blockchain, assetContractAddress, tokenId, index) {
- return this.callImplementationFunction(blockchain, 'getAssertionIdByIndex', [
- assetContractAddress,
- tokenId,
+ async getKnowledgeCollectionMerkleRootByIndex(
+ blockchain,
+ assetStorageContractAddress,
+ knowledgeCollectionId,
+ index,
+ ) {
+ return this.callImplementationFunction(blockchain, 'getCollectionMerkleRootByIndex', [
+ assetStorageContractAddress,
+ knowledgeCollectionId,
index,
]);
}
- async getLatestAssertionId(blockchain, assetContractAddress, tokenId) {
- return this.callImplementationFunction(blockchain, 'getLatestAssertionId', [
- assetContractAddress,
- tokenId,
- ]);
+ async getKnowledgeCollectionLatestMerkleRoot(
+ blockchain,
+ assetStorageContractAddress,
+ knowledgeCollectionId,
+ ) {
+ return this.callImplementationFunction(
+ blockchain,
+ 'getKnowledgeCollectionLatestMerkleRoot',
+ [assetStorageContractAddress, knowledgeCollectionId],
+ );
}
- async getLatestTokenId(blockchain, assetContractAddress) {
- return this.callImplementationFunction(blockchain, 'getLatestTokenId', [
- assetContractAddress,
+ async getLatestKnowledgeCollectionId(blockchain, assetStorageContractAddress) {
+ return this.callImplementationFunction(blockchain, 'getLatestKnowledgeCollectionId', [
+ assetStorageContractAddress,
]);
}
@@ -124,22 +131,33 @@ class BlockchainModuleManager extends BaseModuleManager {
return this.callImplementationFunction(blockchain, 'getAssetStorageContractAddresses');
}
- async getAssertionIds(blockchain, assetContractAddress, tokenId) {
- return this.callImplementationFunction(blockchain, 'getAssertionIds', [
- assetContractAddress,
- tokenId,
+ async getKnowledgeCollectionMerkleRoots(
+ blockchain,
+ assetStorageContractAddress,
+ knowledgeCollectionId,
+ ) {
+ return this.callImplementationFunction(blockchain, 'getKnowledgeCollectionMerkleRoots', [
+ assetStorageContractAddress,
+ knowledgeCollectionId,
]);
}
- async getKnowledgeAssetOwner(blockchain, assetContractAddress, tokenId) {
- return this.callImplementationFunction(blockchain, 'getKnowledgeAssetOwner', [
- assetContractAddress,
- tokenId,
- ]);
- }
+ // async getKnowledgeAssetOwner(blockchain, assetContractAddress, tokenId) {
+ // return this.callImplementationFunction(blockchain, 'getKnowledgeAssetOwner', [
+ // assetContractAddress,
+ // tokenId,
+ // ]);
+ // }
- async getUnfinalizedAssertionId(blockchain, tokenId) {
- return this.callImplementationFunction(blockchain, 'getUnfinalizedState', [tokenId]);
+ async getLatestMerkleRootPublisher(
+ blockchain,
+ assetStorageContractAddress,
+ knowledgeCollectionId,
+ ) {
+ return this.callImplementationFunction(blockchain, 'getLatestMerkleRootPublisher', [
+ assetStorageContractAddress,
+ knowledgeCollectionId,
+ ]);
}
async getShardingTableHead(blockchain) {
@@ -157,107 +175,16 @@ class BlockchainModuleManager extends BaseModuleManager {
]);
}
- async getTransaction(blockchain, transactionHash) {
- return this.callImplementationFunction(blockchain, 'getTransaction', [transactionHash]);
- }
-
- async getAllPastEvents(
- blockchain,
- contractName,
- eventsToFilter,
- lastCheckedBlock,
- lastCheckedTimestamp,
- currentBlock,
- ) {
- return this.callImplementationFunction(blockchain, 'getAllPastEvents', [
- blockchain,
- contractName,
- eventsToFilter,
- lastCheckedBlock,
- lastCheckedTimestamp,
- currentBlock,
- ]);
- }
-
- toBigNumber(blockchain, value) {
- return this.callImplementationFunction(blockchain, 'toBigNumber', [value]);
- }
-
- keccak256(blockchain, bytesLikeData) {
- return this.callImplementationFunction(blockchain, 'keccak256', [bytesLikeData]);
- }
-
- sha256(blockchain, bytesLikeData) {
- return this.callImplementationFunction(blockchain, 'sha256', [bytesLikeData]);
- }
-
- encodePacked(blockchain, types, values) {
- return this.callImplementationFunction(blockchain, 'encodePacked', [types, values]);
- }
-
- convertAsciiToHex(blockchain, string) {
- return this.callImplementationFunction(blockchain, 'convertAsciiToHex', [string]);
- }
-
- convertHexToAscii(blockchain, hexString) {
- return this.callImplementationFunction(blockchain, 'convertHexToAscii', [hexString]);
- }
-
- convertBytesToUint8Array(blockchain, bytesLikeData) {
- return this.callImplementationFunction(blockchain, 'convertBytesToUint8Array', [
- bytesLikeData,
+ async getKnowledgeCollectionSize(blockchain, knowledgeCollectionId) {
+ return this.callImplementationFunction(blockchain, 'getKnowledgeCollectionSize', [
+ knowledgeCollectionId,
]);
}
- convertToWei(blockchain, value, fromUnit) {
- return this.callImplementationFunction(blockchain, 'convertToWei', [value, fromUnit]);
- }
-
- convertFromWei(blockchain, value, toUnit) {
- return this.callImplementationFunction(blockchain, 'convertFromWei', [value, toUnit]);
- }
-
- async isCommitWindowOpen(blockchain, agreementId, epoch, stateIndex) {
- return this.callImplementationFunction(blockchain, 'isCommitWindowOpen', [
- agreementId,
- epoch,
- stateIndex,
- ]);
- }
-
- async isUpdateCommitWindowOpen(blockchain, agreementId, epoch, latestStateIndex) {
- return this.callImplementationFunction(blockchain, 'isUpdateCommitWindowOpen', [
- agreementId,
- epoch,
- latestStateIndex,
- ]);
- }
-
- async getTopCommitSubmissions(blockchain, agreementId, epoch, latestStateIndex) {
- return this.callImplementationFunction(blockchain, 'getTopCommitSubmissions', [
- agreementId,
- epoch,
- latestStateIndex,
- ]);
- }
-
- async getAgreementData(blockchain, agreementId) {
- return this.callImplementationFunction(blockchain, 'getAgreementData', [agreementId]);
- }
-
- async getAssertionSize(blockchain, assertionid) {
- return this.callImplementationFunction(blockchain, 'getAssertionSize', [assertionid]);
- }
-
- async getAssertionTriplesNumber(blockchain, assertionid) {
- return this.callImplementationFunction(blockchain, 'getAssertionTriplesNumber', [
- assertionid,
- ]);
- }
-
- async getAssertionChunksNumber(blockchain, assertionid) {
- return this.callImplementationFunction(blockchain, 'getAssertionChunksNumber', [
- assertionid,
+ async getKnowledgeAssetsRange(blockchain, assetStorageContractAddress, knowledgeCollectionId) {
+ return this.callImplementationFunction(blockchain, 'getKnowledgeAssetsRange', [
+ assetStorageContractAddress,
+ knowledgeCollectionId,
]);
}
@@ -275,110 +202,6 @@ class BlockchainModuleManager extends BaseModuleManager {
);
}
- async getAssertionData(blockchain, assertionid) {
- return this.callImplementationFunction(blockchain, 'getAssertionData', [assertionid]);
- }
-
- submitCommit(
- blockchain,
- assetContractAddress,
- tokenId,
- keyword,
- hashFunctionId,
- closestNode,
- leftNeighborhoodEdge,
- rightNeighborhoodEdge,
- epoch,
- latestStateIndex,
- callback,
- gasPrice,
- ) {
- return this.callImplementationFunction(blockchain, 'submitCommit', [
- assetContractAddress,
- tokenId,
- keyword,
- hashFunctionId,
- closestNode,
- leftNeighborhoodEdge,
- rightNeighborhoodEdge,
- epoch,
- latestStateIndex,
- callback,
- gasPrice,
- ]);
- }
-
- submitUpdateCommit(
- blockchain,
- assetContractAddress,
- tokenId,
- keyword,
- hashFunctionId,
- closestNode,
- leftNeighborhoodEdge,
- rightNeighborhoodEdge,
- epoch,
- callback,
- gasPrice,
- ) {
- return this.callImplementationFunction(blockchain, 'submitUpdateCommit', [
- assetContractAddress,
- tokenId,
- keyword,
- hashFunctionId,
- closestNode,
- leftNeighborhoodEdge,
- rightNeighborhoodEdge,
- epoch,
- callback,
- gasPrice,
- ]);
- }
-
- async isProofWindowOpen(blockchain, agreementId, epoch, latestStateIndex) {
- return this.callImplementationFunction(blockchain, 'isProofWindowOpen', [
- agreementId,
- epoch,
- latestStateIndex,
- ]);
- }
-
- async getChallenge(blockchain, assetContractAddress, tokenId, epoch, latestStateIndex) {
- return this.callImplementationFunction(blockchain, 'getChallenge', [
- assetContractAddress,
- tokenId,
- epoch,
- latestStateIndex,
- ]);
- }
-
- sendProof(
- blockchain,
- assetContractAddress,
- tokenId,
- keyword,
- hashFunctionId,
- epoch,
- proof,
- chunkHash,
- latestStateIndex,
- callback,
- gasPrice,
- ) {
- return this.callImplementationFunction(blockchain, 'sendProof', [
- assetContractAddress,
- tokenId,
- keyword,
- hashFunctionId,
- epoch,
- proof,
- chunkHash,
- latestStateIndex,
- callback,
- gasPrice,
- ]);
- }
-
async getMinimumStake(blockchain) {
return this.callImplementationFunction(blockchain, 'getMinimumStake');
}
@@ -387,60 +210,6 @@ class BlockchainModuleManager extends BaseModuleManager {
return this.callImplementationFunction(blockchain, 'getMaximumStake');
}
- async getR2(blockchain) {
- return this.callImplementationFunction(blockchain, 'getR2');
- }
-
- async getR1(blockchain) {
- return this.callImplementationFunction(blockchain, 'getR1');
- }
-
- async getR0(blockchain) {
- return this.callImplementationFunction(blockchain, 'getR0');
- }
-
- async getFinalizationCommitsNumber(blockchain) {
- return this.callImplementationFunction(blockchain, 'getFinalizationCommitsNumber');
- }
-
- async getUpdateCommitWindowDuration(blockchain) {
- return this.callImplementationFunction(blockchain, 'getUpdateCommitWindowDuration');
- }
-
- async getCommitWindowDurationPerc(blockchain) {
- return this.callImplementationFunction(blockchain, 'getCommitWindowDurationPerc');
- }
-
- async getEpochLength(blockchain) {
- return this.callImplementationFunction(blockchain, 'getEpochLength');
- }
-
- async getProofWindowDurationPerc(blockchain) {
- return this.callImplementationFunction(blockchain, 'getProofWindowDurationPerc');
- }
-
- async isHashFunction(blockchain, hashFunctionId) {
- return this.callImplementationFunction(blockchain, 'isHashFunction', [hashFunctionId]);
- }
-
- getScoreFunctionIds(blockchain) {
- return this.callImplementationFunction(blockchain, 'getScoreFunctionIds');
- }
-
- async getLog2PLDSFParams(blockchain) {
- return this.callImplementationFunction(blockchain, 'getLog2PLDSFParams');
- }
-
- callImplementationFunction(blockchain, functionName, args = []) {
- if (blockchain) {
- if (this.getImplementation(blockchain)) {
- return this.getImplementation(blockchain).module[functionName](...args);
- }
- } else {
- return this.getImplementation().module[functionName](...args);
- }
- }
-
async getLatestBlock(blockchain) {
return this.callImplementationFunction(blockchain, 'getLatestBlock');
}
@@ -449,28 +218,6 @@ class BlockchainModuleManager extends BaseModuleManager {
return this.callImplementationFunction(blockchain, 'getBlockchainTimestamp');
}
- getBlockTimeMillis(blockchain) {
- return this.callImplementationFunction(blockchain, 'getBlockTimeMillis');
- }
-
- async hasPendingUpdate(blockchain, tokenId) {
- return this.callImplementationFunction(blockchain, 'hasPendingUpdate', [tokenId]);
- }
-
- async getAgreementScoreFunctionId(blockchain, agreementId) {
- return this.callImplementationFunction(blockchain, 'getAgreementScoreFunctionId', [
- agreementId,
- ]);
- }
-
- convertUint8ArrayToHex(blockchain, uint8Array) {
- return this.callImplementationFunction(blockchain, 'convertUint8ArrayToHex', [uint8Array]);
- }
-
- async getLinearSumParams(blockchain) {
- return this.callImplementationFunction(blockchain, 'getLinearSumParams');
- }
-
async getParanetMetadata(blockchain, paranetId) {
return this.callImplementationFunction(blockchain, 'getParanetMetadata', [paranetId]);
}
@@ -489,26 +236,51 @@ class BlockchainModuleManager extends BaseModuleManager {
]);
}
- async getKnowledgeAssetLocatorFromParanetId(blockchain, paranetId) {
- return this.callImplementationFunction(
- blockchain,
- 'getKnowledgeAssetLocatorFromParanetId',
- [paranetId],
- );
- }
-
async paranetExists(blockchain, paranetId) {
return this.callImplementationFunction(blockchain, 'paranetExists', [paranetId]);
}
- async isParanetKnowledgeAsset(blockchain, knowledgeAssetId) {
- return this.callImplementationFunction(blockchain, 'isParanetKnowledgeAsset', [
- knowledgeAssetId,
+ async isCuratedNode(blockchain, paranetId, identityId) {
+ return this.callImplementationFunction(blockchain, 'isCuratedNode', [
+ paranetId,
+ identityId,
]);
}
- async getParanetId(blockchain, knowledgeAssetId) {
- return this.callImplementationFunction(blockchain, 'getParanetId', [knowledgeAssetId]);
+ async getNodesAccessPolicy(blockchain, paranetId) {
+ return this.callImplementationFunction(blockchain, 'getNodesAccessPolicy', [paranetId]);
+ }
+
+ async getParanetCuratedNodes(blockchain, paranetId) {
+ return this.callImplementationFunction(blockchain, 'getParanetCuratedNodes', [paranetId]);
+ }
+
+ async getNodeId(blockchain, identityId) {
+ return this.callImplementationFunction(blockchain, 'getNodeId', [identityId]);
+ }
+
+ async signMessage(blockchain, messageHash) {
+ return this.callImplementationFunction(blockchain, 'signMessage', [messageHash]);
+ }
+
+ async getStakeWeightedAverageAsk(blockchain) {
+ return this.callImplementationFunction(blockchain, 'getStakeWeightedAverageAsk', []);
+ }
+
+ async getTimeUntilNextEpoch(blockchain) {
+ return this.callImplementationFunction(blockchain, 'getTimeUntilNextEpoch', []);
+ }
+
+ async getEpochLength(blockchain) {
+ return this.callImplementationFunction(blockchain, 'getEpochLength', []);
+ }
+
+ // SUPPORT FOR OLD CONTRACTS
+ async getLatestAssertionId(blockchain, assetContractAddress, tokenId) {
+ return this.callImplementationFunction(blockchain, 'getLatestAssertionId', [
+ assetContractAddress,
+ tokenId,
+ ]);
}
}
diff --git a/src/modules/blockchain/implementation/base/base-service.js b/src/modules/blockchain/implementation/base/base-service.js
index c6dd518cdd..57dbcc6e98 100644
--- a/src/modules/blockchain/implementation/base/base-service.js
+++ b/src/modules/blockchain/implementation/base/base-service.js
@@ -1,5 +1,4 @@
import Web3Service from '../web3-service.js';
-import { BLOCK_TIME_MILLIS } from '../../../../constants/constants.js';
class BaseService extends Web3Service {
constructor(ctx) {
@@ -9,17 +8,9 @@ class BaseService extends Web3Service {
this.tracTicker = 'TRAC';
}
- getBlockTimeMillis() {
- return BLOCK_TIME_MILLIS.BASE;
- }
-
async getGasPrice() {
return this.provider.getGasPrice();
}
-
- async getAgreementScoreFunctionId() {
- return 2;
- }
}
export default BaseService;
diff --git a/src/modules/blockchain/implementation/gnosis/gnosis-service.js b/src/modules/blockchain/implementation/gnosis/gnosis-service.js
index 5a83949d5b..30ea45e3f4 100644
--- a/src/modules/blockchain/implementation/gnosis/gnosis-service.js
+++ b/src/modules/blockchain/implementation/gnosis/gnosis-service.js
@@ -1,10 +1,7 @@
import axios from 'axios';
+import ethers from 'ethers';
import Web3Service from '../web3-service.js';
-import {
- BLOCK_TIME_MILLIS,
- GNOSIS_DEFAULT_GAS_PRICE,
- NODE_ENVIRONMENTS,
-} from '../../../../constants/constants.js';
+import { GNOSIS_DEFAULT_GAS_PRICE, NODE_ENVIRONMENTS } from '../../../../constants/constants.js';
class GnosisService extends Web3Service {
constructor(ctx) {
@@ -13,18 +10,14 @@ class GnosisService extends Web3Service {
this.baseTokenTicker = 'GNO';
this.tracTicker = 'TRAC';
- this.defaultGasPrice = this.convertToWei(
+ this.defaultGasPrice = ethers.utils.parseUnits(
process.env.NODE_ENV === NODE_ENVIRONMENTS.MAINNET
- ? GNOSIS_DEFAULT_GAS_PRICE.MAINNET
- : GNOSIS_DEFAULT_GAS_PRICE.TESTNET,
+ ? GNOSIS_DEFAULT_GAS_PRICE.MAINNET.toString()
+ : GNOSIS_DEFAULT_GAS_PRICE.TESTNET.toString(),
'gwei',
);
}
- getBlockTimeMillis() {
- return BLOCK_TIME_MILLIS.GNOSIS;
- }
-
async getGasPrice() {
let gasPrice;
@@ -34,7 +27,7 @@ class GnosisService extends Web3Service {
// returns gwei
gasPrice = Number(response.data.average);
this.logger.debug(`Gas price from Gnosis oracle link: ${gasPrice} gwei`);
- gasPrice = this.convertToWei(gasPrice, 'gwei');
+ gasPrice = ethers.utils.parseUnits(gasPrice.toString(), 'gwei');
} else if (response?.data?.result) {
// returns wei
gasPrice = Number(response.data.result, 10);
@@ -65,10 +58,6 @@ class GnosisService extends Web3Service {
}
return false;
}
-
- async getAgreementScoreFunctionId() {
- return 2;
- }
}
export default GnosisService;
diff --git a/src/modules/blockchain/implementation/hardhat/hardhat-service.js b/src/modules/blockchain/implementation/hardhat/hardhat-service.js
index 5a89c03a27..d6911591c5 100644
--- a/src/modules/blockchain/implementation/hardhat/hardhat-service.js
+++ b/src/modules/blockchain/implementation/hardhat/hardhat-service.js
@@ -1,4 +1,4 @@
-import { BLOCK_TIME_MILLIS } from '../../../../constants/constants.js';
+import ethers from 'ethers';
import Web3Service from '../web3-service.js';
class HardhatService extends Web3Service {
@@ -13,20 +13,12 @@ class HardhatService extends Web3Service {
return latestBlock.timestamp;
}
- getBlockTimeMillis() {
- return BLOCK_TIME_MILLIS.HARDHAT;
- }
-
async providerReady() {
return this.provider.ready;
}
async getGasPrice() {
- return this.convertToWei(20, 'wei');
- }
-
- async getAgreementScoreFunctionId() {
- return 2;
+ return ethers.utils.parseUnits('20', 'wei');
}
}
diff --git a/src/modules/blockchain/implementation/ot-parachain/ot-parachain-service.js b/src/modules/blockchain/implementation/ot-parachain/ot-parachain-service.js
index 9f4e15e51f..6d065b6305 100644
--- a/src/modules/blockchain/implementation/ot-parachain/ot-parachain-service.js
+++ b/src/modules/blockchain/implementation/ot-parachain/ot-parachain-service.js
@@ -1,10 +1,6 @@
import { ApiPromise, WsProvider, HttpProvider } from '@polkadot/api';
import { ethers } from 'ethers';
-import {
- BLOCK_TIME_MILLIS,
- NEURO_DEFAULT_GAS_PRICE,
- NODE_ENVIRONMENTS,
-} from '../../../../constants/constants.js';
+import { NEURO_DEFAULT_GAS_PRICE, NODE_ENVIRONMENTS } from '../../../../constants/constants.js';
import Web3Service from '../web3-service.js';
const NATIVE_TOKEN_DECIMALS = 12;
@@ -135,7 +131,8 @@ class OtParachainService extends Web3Service {
process.env.NODE_ENV === NODE_ENVIRONMENTS.MAINNET
? NEURO_DEFAULT_GAS_PRICE.MAINNET
: NEURO_DEFAULT_GAS_PRICE.TESTNET;
- return this.convertToWei(defaultGasPrice, 'wei');
+
+ return ethers.utils.parseUnits(defaultGasPrice.toString(), 'wei');
}
}
@@ -174,10 +171,6 @@ class OtParachainService extends Web3Service {
return nativeBalance / 10 ** NATIVE_TOKEN_DECIMALS;
}
- getBlockTimeMillis() {
- return BLOCK_TIME_MILLIS.OTP;
- }
-
getValidOperationalWallets() {
const wallets = [];
this.config.operationalWallets.forEach((wallet) => {
diff --git a/src/modules/blockchain/implementation/web3-service-validator.js b/src/modules/blockchain/implementation/web3-service-validator.js
index e46699916a..c94b4144e3 100644
--- a/src/modules/blockchain/implementation/web3-service-validator.js
+++ b/src/modules/blockchain/implementation/web3-service-validator.js
@@ -8,26 +8,6 @@ class Web3ServiceValidator {
}
return true;
}
-
- static getAgreementDataValidator(result) {
- if (!result) {
- return false;
- }
- const agreementData = {
- startTime: result['0'].toNumber(),
- epochsNumber: result['1'],
- epochLength: result['2'].toNumber(),
- scoreFunctionId: result['4'][0],
- proofWindowOffsetPerc: result['4'][1],
- };
- return !(
- agreementData.startTime === 0 &&
- agreementData.epochsNumber === 0 &&
- agreementData.epochLength === 0 &&
- agreementData.scoreFunctionId === 0 &&
- agreementData.proofWindowOffsetPerc === 0
- );
- }
}
export default Web3ServiceValidator;
diff --git a/src/modules/blockchain/implementation/web3-service.js b/src/modules/blockchain/implementation/web3-service.js
index 76b5148913..34149490ef 100644
--- a/src/modules/blockchain/implementation/web3-service.js
+++ b/src/modules/blockchain/implementation/web3-service.js
@@ -3,18 +3,15 @@ import { ethers, BigNumber } from 'ethers';
import axios from 'axios';
import async from 'async';
import { setTimeout as sleep } from 'timers/promises';
-import { createRequire } from 'module';
import {
SOLIDITY_ERROR_STRING_PREFIX,
SOLIDITY_PANIC_CODE_PREFIX,
SOLIDITY_PANIC_REASONS,
ZERO_PREFIX,
- MAXIMUM_NUMBERS_OF_BLOCKS_TO_FETCH,
TRANSACTION_QUEUE_CONCURRENCY,
TRANSACTION_POLLING_TIMEOUT_MILLIS,
TRANSACTION_CONFIRMATIONS,
- BLOCK_TIME_MILLIS,
WS_RPC_PROVIDER_PRIORITY,
HTTP_RPC_PROVIDER_PRIORITY,
FALLBACK_PROVIDER_QUORUM,
@@ -25,46 +22,10 @@ import {
CONTRACT_FUNCTION_PRIORITY,
TRANSACTION_PRIORITY,
CONTRACT_FUNCTION_GAS_LIMIT_INCREASE_FACTORS,
- MAX_BLOCKCHAIN_EVENT_SYNC_OF_HISTORICAL_BLOCKS_IN_MILLS,
+ ABIs,
} from '../../../constants/constants.js';
import Web3ServiceValidator from './web3-service-validator.js';
-const require = createRequire(import.meta.url);
-
-const ABIs = {
- ContentAsset: require('dkg-evm-module/abi/ContentAsset.json'),
- ContentAssetStorage: require('dkg-evm-module/abi/ContentAssetStorageV2.json'),
- AssertionStorage: require('dkg-evm-module/abi/AssertionStorage.json'),
- Staking: require('dkg-evm-module/abi/Staking.json'),
- StakingStorage: require('dkg-evm-module/abi/StakingStorage.json'),
- Token: require('dkg-evm-module/abi/Token.json'),
- HashingProxy: require('dkg-evm-module/abi/HashingProxy.json'),
- Hub: require('dkg-evm-module/abi/Hub.json'),
- IdentityStorage: require('dkg-evm-module/abi/IdentityStorage.json'),
- Log2PLDSF: require('dkg-evm-module/abi/Log2PLDSF.json'),
- ParametersStorage: require('dkg-evm-module/abi/ParametersStorage.json'),
- Profile: require('dkg-evm-module/abi/Profile.json'),
- ProfileStorage: require('dkg-evm-module/abi/ProfileStorage.json'),
- ScoringProxy: require('dkg-evm-module/abi/ScoringProxy.json'),
- ServiceAgreementV1: require('dkg-evm-module/abi/ServiceAgreementV1.json'),
- CommitManagerV1: require('dkg-evm-module/abi/CommitManagerV2.json'),
- CommitManagerV1U1: require('dkg-evm-module/abi/CommitManagerV2U1.json'),
- ProofManagerV1: require('dkg-evm-module/abi/ProofManagerV1.json'),
- ProofManagerV1U1: require('dkg-evm-module/abi/ProofManagerV1U1.json'),
- ShardingTable: require('dkg-evm-module/abi/ShardingTableV2.json'),
- ShardingTableStorage: require('dkg-evm-module/abi/ShardingTableStorageV2.json'),
- ServiceAgreementStorageProxy: require('dkg-evm-module/abi/ServiceAgreementStorageProxy.json'),
- UnfinalizedStateStorage: require('dkg-evm-module/abi/UnfinalizedStateStorage.json'),
- LinearSum: require('dkg-evm-module/abi/LinearSum.json'),
- ParanetsRegistry: require('dkg-evm-module/abi/ParanetsRegistry.json'),
- ParanetKnowledgeAssetsRegistry: require('dkg-evm-module/abi/ParanetKnowledgeAssetsRegistry.json'),
-};
-
-const SCORING_FUNCTIONS = {
- 1: 'Log2PLDSF',
- 2: 'LinearSum',
-};
-
class Web3Service {
async initialize(config, logger) {
this.config = config;
@@ -72,7 +33,6 @@ class Web3Service {
this.contractCallCache = {};
await this.initializeWeb3();
this.initializeTransactionQueues();
- this.startBlock = await this.getBlockNumber();
await this.initializeContracts();
this.initializeProviderDebugging();
@@ -81,7 +41,7 @@ class Web3Service {
initializeTransactionQueues(concurrency = TRANSACTION_QUEUE_CONCURRENCY) {
this.transactionQueues = {};
for (const operationalWallet of this.operationalWallets) {
- const transactionQueue = async.queue((args, cb) => {
+ const transactionQueue = async.priorityQueue((args, cb) => {
const { contractInstance, functionName, transactionArgs, gasPrice } = args;
this._executeContractFunction(
contractInstance,
@@ -104,33 +64,18 @@ class Web3Service {
queueTransaction(contractInstance, functionName, transactionArgs, callback, gasPrice) {
const selectedQueue = this.selectTransactionQueue();
- const priority = CONTRACT_FUNCTION_PRIORITY[functionName] ?? TRANSACTION_PRIORITY.REGULAR;
+ const priority = CONTRACT_FUNCTION_PRIORITY[functionName] ?? TRANSACTION_PRIORITY.MEDIUM;
this.logger.info(`Calling ${functionName} with priority: ${priority}`);
- switch (priority) {
- case TRANSACTION_PRIORITY.HIGH:
- selectedQueue.unshift(
- {
- contractInstance,
- functionName,
- transactionArgs,
- gasPrice,
- },
- callback,
- );
- break;
- case TRANSACTION_PRIORITY.REGULAR:
- default:
- selectedQueue.push(
- {
- contractInstance,
- functionName,
- transactionArgs,
- gasPrice,
- },
- callback,
- );
- break;
- }
+ selectedQueue.push(
+ {
+ contractInstance,
+ functionName,
+ transactionArgs,
+ gasPrice,
+ },
+ priority,
+ callback,
+ );
}
removeTransactionQueue(walletAddress) {
@@ -182,6 +127,11 @@ class Web3Service {
return wallets;
}
+ getRandomOperationalWallet() {
+ const randomIndex = Math.floor(Math.random() * this.operationalWallets.length);
+ return this.operationalWallets[randomIndex];
+ }
+
async initializeWeb3() {
const providers = [];
for (const rpcEndpoint of this.config.rpcEndpoints) {
@@ -235,25 +185,22 @@ class Web3Service {
}
}
- getABIs() {
- return ABIs;
- }
-
async initializeContracts() {
+ this.contracts = {};
this.contractAddresses = {};
this.logger.info(
`Initializing contracts with hub contract address: ${this.config.hubContractAddress}`,
);
- this.HubContract = new ethers.Contract(
+ this.contracts.Hub = new ethers.Contract(
this.config.hubContractAddress,
- this.getABIs().Hub,
+ ABIs.Hub,
this.operationalWallets[0],
);
- this.contractAddresses[this.config.hubContractAddress] = this.HubContract;
+ this.contractAddresses[this.config.hubContractAddress] = this.contracts.Hub;
const contractsArray = await this.callContractFunction(
- this.HubContract,
+ this.contracts.Hub,
'getAllContracts',
[],
);
@@ -262,19 +209,9 @@ class Web3Service {
this.initializeContract(contractName, contractAddress);
});
- this.scoringFunctionsContracts = {};
- const scoringFunctionsArray = await this.callContractFunction(
- this.ScoringProxyContract,
- 'getAllScoreFunctions',
- [],
- );
- scoringFunctionsArray.forEach(([id, scoringContractAddress]) => {
- this.initializeScoringContract(id, scoringContractAddress);
- });
-
this.assetStorageContracts = {};
const assetStoragesArray = await this.callContractFunction(
- this.HubContract,
+ this.contracts.Hub,
'getAllAssetStorages',
[],
);
@@ -354,30 +291,13 @@ class Web3Service {
initializeAssetStorageContract(assetStorageAddress) {
this.assetStorageContracts[assetStorageAddress.toLowerCase()] = new ethers.Contract(
assetStorageAddress,
- this.getABIs().ContentAssetStorage,
+ ABIs.KnowledgeCollectionStorage,
this.operationalWallets[0],
);
this.contractAddresses[assetStorageAddress] =
this.assetStorageContracts[assetStorageAddress.toLowerCase()];
}
- initializeScoringContract(id, contractAddress) {
- const contractName = SCORING_FUNCTIONS[id];
-
- if (this.getABIs()[contractName] != null) {
- this.scoringFunctionsContracts[id] = new ethers.Contract(
- contractAddress,
- this.getABIs()[contractName],
- this.operationalWallets[0],
- );
- this.contractAddresses[contractAddress] = this.scoringFunctionsContracts[id];
- } else {
- this.logger.trace(
- `Skipping initialisation of contract with id: ${id}, address: ${contractAddress}`,
- );
- }
- }
-
setContractCallCache(contractName, functionName, value) {
if (CACHED_FUNCTIONS[contractName]?.[functionName]) {
const type = CACHED_FUNCTIONS[contractName][functionName];
@@ -405,20 +325,26 @@ class Web3Service {
}
initializeContract(contractName, contractAddress) {
- if (this.getABIs()[contractName] != null) {
- this[`${contractName}Contract`] = new ethers.Contract(
+ if (ABIs[contractName] != null) {
+ this.contracts[contractName] = new ethers.Contract(
contractAddress,
- this.getABIs()[contractName],
+ ABIs[contractName],
this.operationalWallets[0],
);
- this.contractAddresses[contractAddress] = this[`${contractName}Contract`];
- } else {
- this.logger.trace(
- `Skipping initialisation of contract: ${contractName}, address: ${contractAddress}`,
- );
+ this.contractAddresses[contractAddress] = this.contracts[contractName];
}
}
+ getContractAddress(contractName) {
+ const contract = this.contracts[contractName];
+
+ if (!contract) {
+ return null;
+ }
+
+ return contract.address;
+ }
+
async providerReady() {
return this.provider.getNetwork();
}
@@ -449,7 +375,7 @@ class Web3Service {
}
async getTokenBalance(publicKey) {
- const tokenBalance = await this.callContractFunction(this.TokenContract, 'balanceOf', [
+ const tokenBalance = await this.callContractFunction(this.contracts.Token, 'balanceOf', [
publicKey,
]);
return Number(ethers.utils.formatEther(tokenBalance));
@@ -460,10 +386,6 @@ class Web3Service {
return latestBlock.number;
}
- getBlockTimeMillis() {
- return BLOCK_TIME_MILLIS.DEFAULT;
- }
-
async getIdentityId() {
if (this.identityId) {
return this.identityId;
@@ -471,10 +393,10 @@ class Web3Service {
const promises = this.operationalWallets.map((wallet) =>
this.callContractFunction(
- this.IdentityStorageContract,
+ this.contracts.IdentityStorage,
'getIdentityId',
[wallet.address],
- CONTRACTS.IDENTITY_STORAGE_CONTRACT,
+ CONTRACTS.IDENTITY_STORAGE,
).then((identityId) => [wallet.address, Number(identityId)]),
);
const results = await Promise.all(promises);
@@ -535,9 +457,9 @@ class Web3Service {
}
async createProfile(peerId) {
- if (!this.config.sharesTokenName || !this.config.sharesTokenSymbol) {
+ if (!this.config.nodeName) {
throw new Error(
- 'Missing sharesTokenName and sharesTokenSymbol in blockchain configuration. Please add it and start the node again.',
+ 'Missing nodeName in blockchain configuration. Please add it and start the node again.',
);
}
@@ -549,23 +471,20 @@ class Web3Service {
try {
// eslint-disable-next-line no-await-in-loop
await this._executeContractFunction(
- this.ProfileContract,
+ this.contracts.Profile,
'createProfile',
[
this.getManagementKey(),
this.getPublicKeys().slice(1),
- this.convertAsciiToHex(peerId),
- this.config.sharesTokenName,
- this.config.sharesTokenSymbol,
+ this.config.nodeName,
+ ethers.utils.hexlify(ethers.utils.toUtf8Bytes(peerId)),
this.config.operatorFee,
],
null,
this.operationalWallets[0],
);
this.logger.info(
- `Profile created with name: ${this.config.sharesTokenName} and symbol: ${
- this.config.sharesTokenSymbol
- }, wallet: ${
+ `Profile created with name: ${this.config.nodeName}, wallet: ${
this.operationalWallets[0].address
}, on blockchain ${this.getBlockchainId()}`,
);
@@ -652,7 +571,7 @@ class Web3Service {
this._decodeEstimateGasError(contractInstance, functionName, error, args);
}
- gasLimit = gasLimit ?? this.convertToWei(900, 'kwei');
+ gasLimit = gasLimit ?? ethers.utils.parseUnits('900', 'kwei');
const gasLimitMultiplier = CONTRACT_FUNCTION_GAS_LIMIT_INCREASE_FACTORS[functionName] ?? 1;
@@ -915,325 +834,141 @@ class Web3Service {
return value.toString();
}
- async getTransaction(transactionHash) {
- return this.provider.getTransaction(transactionHash);
- }
-
- async getAllPastEvents(
- blockchainId,
- contractName,
- eventsToFilter,
- lastCheckedBlock,
- lastCheckedTimestamp,
- currentBlock,
- ) {
- const contract = this[contractName];
- if (!contract) {
- // this will happen when we have different set of contracts on different blockchains
- // eg LinearSum contract is available on gnosis but not on NeuroWeb, so the node should not fetch events
- // from LinearSum contract on NeuroWeb blockchain
- return {
- events: [],
- lastCheckedBlock: currentBlock,
- eventsMissed: false,
- };
- }
-
- let fromBlock;
- let eventsMissed = false;
- if (this.startBlock - lastCheckedBlock > this.getMaxNumberOfHistoricalBlocksForSync()) {
- fromBlock = this.startBlock;
- eventsMissed = true;
- } else {
- fromBlock = lastCheckedBlock + 1;
- }
-
- const topics = [];
- for (const filterName in contract.filters) {
- if (!eventsToFilter.includes(filterName)) continue;
- const filter = contract.filters[filterName]().topics[0];
- topics.push(filter);
- }
-
- const events = [];
- let toBlock = currentBlock;
- try {
- while (fromBlock <= currentBlock) {
- toBlock = Math.min(
- fromBlock + MAXIMUM_NUMBERS_OF_BLOCKS_TO_FETCH - 1,
- currentBlock,
- );
- const newEvents = await this.processBlockRange(
- fromBlock,
- toBlock,
- contract,
- topics,
- );
- newEvents.forEach((e) => events.push(...e));
- fromBlock = toBlock + 1;
- }
- } catch (error) {
- this.logger.warn(
- `Unable to process block range from: ${fromBlock} to: ${toBlock} for contract ${contractName} on blockchain: ${blockchainId}. Error: ${error.message}`,
- );
- }
-
- return {
- events: events.map((event) => ({
- contract: contractName,
- event: event.event,
- data: JSON.stringify(
- Object.fromEntries(
- Object.entries(event.args).map(([k, v]) => [
- k,
- ethers.BigNumber.isBigNumber(v) ? v.toString() : v,
- ]),
- ),
- ),
- block: event.blockNumber,
- blockchainId,
- })),
- lastCheckedBlock: toBlock,
- eventsMissed,
- };
- }
-
- getMaxNumberOfHistoricalBlocksForSync() {
- if (!this.maxNumberOfHistoricalBlocksForSync) {
- this.maxNumberOfHistoricalBlocksForSync = Math.round(
- MAX_BLOCKCHAIN_EVENT_SYNC_OF_HISTORICAL_BLOCKS_IN_MILLS / this.getBlockTimeMillis(),
- );
- }
- return this.maxNumberOfHistoricalBlocksForSync;
- }
-
- async processBlockRange(fromBlock, toBlock, contract, topics) {
- const newEvents = await Promise.all(
- topics.map((topic) => contract.queryFilter(topic, fromBlock, toBlock)),
- );
- return newEvents;
- }
-
- isOlderThan(timestamp, olderThanInMills) {
- if (!timestamp) return true;
- const timestampThirtyDaysInPast = new Date().getTime() - olderThanInMills;
- return timestamp < timestampThirtyDaysInPast;
- }
-
async isAssetStorageContract(contractAddress) {
- return this.callContractFunction(this.HubContract, 'isAssetStorage(address)', [
+ return this.callContractFunction(this.contracts.Hub, 'isAssetStorage(address)', [
contractAddress,
]);
}
- async getMinProofWindowOffsetPerc() {
- return this.callContractFunction(
- this.ParametersStorageContract,
- 'minProofWindowOffsetPerc',
- [],
- CONTRACTS.PARAMETERS_STORAGE_CONTRACT,
- );
- }
-
- async getMaxProofWindowOffsetPerc() {
- return this.callContractFunction(
- this.ParametersStorageContract,
- 'maxProofWindowOffsetPerc',
- [],
- CONTRACTS.PARAMETERS_STORAGE_CONTRACT,
- );
- }
-
- async generatePseudorandomUint8(assetCreator, blockNumber, blockTimestamp, limit) {
- const encodedData = ethers.utils.encodePacked(
- ['uint256', 'address', 'uint256'],
- [blockTimestamp, assetCreator, blockNumber],
- );
- const hash = ethers.utils.keccak256(encodedData);
- const hashBigNumber = BigNumber.from(hash);
- const hashModulo = hashBigNumber.mod(limit);
-
- return hashModulo.mod(256);
- }
-
- async getAssertionIdByIndex(assetContractAddress, tokenId, index) {
+ async getKnowledgeCollectionMerkleRootByIndex(
+ assetStorageContractAddress,
+ knowledgeCollectionId,
+ index,
+ ) {
const assetStorageContractInstance =
- this.assetStorageContracts[assetContractAddress.toLowerCase()];
+ this.assetStorageContracts[assetStorageContractAddress.toLowerCase()];
if (!assetStorageContractInstance)
throw new Error('Unknown asset storage contract address');
- return this.callContractFunction(assetStorageContractInstance, 'getAssertionIdByIndex', [
- tokenId,
+ return this.callContractFunction(assetStorageContractInstance, 'getMerkleRootByIndex', [
+ knowledgeCollectionId,
index,
]);
}
- async getLatestAssertionId(assetContractAddress, tokenId) {
+ async getKnowledgeCollectionLatestMerkleRoot(
+ assetStorageContractAddress,
+ knowledgeCollectionId,
+ ) {
const assetStorageContractInstance =
- this.assetStorageContracts[assetContractAddress.toString().toLowerCase()];
+ this.assetStorageContracts[assetStorageContractAddress.toString().toLowerCase()];
if (!assetStorageContractInstance)
throw new Error('Unknown asset storage contract address');
- return this.callContractFunction(assetStorageContractInstance, 'getLatestAssertionId', [
- tokenId,
+ return this.callContractFunction(assetStorageContractInstance, 'getLatestMerkleRoot', [
+ knowledgeCollectionId,
]);
}
- async getLatestTokenId(assetContractAddress) {
+ async getLatestKnowledgeCollectionId(assetStorageContractAddress) {
const assetStorageContractInstance =
- this.assetStorageContracts[assetContractAddress.toString().toLowerCase()];
+ this.assetStorageContracts[assetStorageContractAddress.toString().toLowerCase()];
if (!assetStorageContractInstance)
throw new Error('Unknown asset storage contract address');
- const lastTokenId = await this.callContractFunction(
+ const lastKnowledgeCollectionId = await this.callContractFunction(
assetStorageContractInstance,
- 'lastTokenId',
+ 'getLatestKnowledgeCollectionId',
[],
);
- return lastTokenId;
+ return lastKnowledgeCollectionId;
}
getAssetStorageContractAddresses() {
return Object.keys(this.assetStorageContracts);
}
- async getAssertionIds(assetContractAddress, tokenId) {
+ async getKnowledgeCollectionMerkleRoots(assetStorageContractAddress, tokenId) {
const assetStorageContractInstance =
- this.assetStorageContracts[assetContractAddress.toString().toLowerCase()];
+ this.assetStorageContracts[assetStorageContractAddress.toString().toLowerCase()];
if (!assetStorageContractInstance)
throw new Error('Unknown asset storage contract address');
- return this.callContractFunction(assetStorageContractInstance, 'getAssertionIds', [
- tokenId,
- ]);
+ return this.callContractFunction(assetStorageContractInstance, 'getMerkleRoots', [tokenId]);
}
- async getKnowledgeAssetOwner(assetContractAddress, tokenId) {
+ // async getKnowledgeAssetOwner(assetContractAddress, tokenId) {
+ // const assetStorageContractInstance =
+ // this.assetStorageContracts[assetContractAddress.toString().toLowerCase()];
+ // if (!assetStorageContractInstance)
+ // throw new Error('Unknown asset storage contract address');
+
+ // return this.callContractFunction(assetStorageContractInstance, 'ownerOf', [tokenId]);
+ // }
+
+ async getLatestMerkleRootPublisher(assetStorageContractAddress, knowledgeCollectionId) {
const assetStorageContractInstance =
- this.assetStorageContracts[assetContractAddress.toString().toLowerCase()];
+ this.assetStorageContracts[assetStorageContractAddress.toString().toLowerCase()];
if (!assetStorageContractInstance)
throw new Error('Unknown asset storage contract address');
-
- return this.callContractFunction(assetStorageContractInstance, 'ownerOf', [tokenId]);
- }
-
- async getUnfinalizedState(tokenId) {
- return this.callContractFunction(
- this.UnfinalizedStateStorageContract,
- 'getUnfinalizedState',
- [tokenId],
- );
- }
-
- async getAgreementData(agreementId) {
- const result = await this.callContractFunction(
- this.ServiceAgreementStorageProxyContract,
- 'getAgreementData',
- [agreementId],
- );
- if (!result) {
- return null;
- }
- return {
- startTime: result['0'].toNumber(),
- epochsNumber: result['1'],
- epochLength: result['2'].toNumber(),
- tokenAmount: result['3'][0],
- updateTokenAmount: result['3'][1],
- scoreFunctionId: result['4'][0],
- proofWindowOffsetPerc: result['4'][1],
- };
- }
-
- async getAssertionSize(assertionId) {
- const assertionSize = await this.callContractFunction(
- this.AssertionStorageContract,
- 'getAssertionSize',
- [assertionId],
- );
- return Number(assertionSize);
- }
-
- async getAssertionTriplesNumber(assertionId) {
- const assertionTriplesNumber = await this.callContractFunction(
- this.AssertionStorageContract,
- 'getAssertionTriplesNumber',
- [assertionId],
+ const knowledgeCollectionPublisher = await this.callContractFunction(
+ assetStorageContractInstance,
+ 'getLatestMerkleRootPublisher',
+ [knowledgeCollectionId],
);
- return Number(assertionTriplesNumber);
+ return knowledgeCollectionPublisher;
}
- async getAssertionChunksNumber(assertionId) {
- const assertionChunksNumber = await this.callContractFunction(
- this.AssertionStorageContract,
- 'getAssertionChunksNumber',
- [assertionId],
+ async getKnowledgeCollectionSize(assetStorageContractAddress, knowledgeCollectionId) {
+ const assetStorageContractInstance =
+ this.assetStorageContracts[assetStorageContractAddress.toString().toLowerCase()];
+ if (!assetStorageContractInstance)
+ throw new Error('Unknown asset storage contract address');
+ const knowledgeCollectionSize = await this.callContractFunction(
+ assetStorageContractInstance,
+ 'getByteSize',
+ [knowledgeCollectionId],
);
- return Number(assertionChunksNumber);
+ return Number(knowledgeCollectionSize);
}
- async getAssertionData(assertionId) {
- const assertionData = await this.callContractFunction(
- this.AssertionStorageContract,
- 'getAssertion',
- [assertionId],
+ async getKnowledgeAssetsRange(assetStorageContractAddress, knowledgeCollectionId) {
+ const assetStorageContractInstance =
+ this.assetStorageContracts[assetStorageContractAddress.toString().toLowerCase()];
+ if (!assetStorageContractInstance)
+ throw new Error('Unknown asset storage contract address');
+ const knowledgeAssetsRange = await this.callContractFunction(
+ assetStorageContractInstance,
+ 'getKnowledgeAssetsRange',
+ [knowledgeCollectionId],
);
return {
- timestamp: Number(assertionData.timestamp),
- size: Number(assertionData.size),
- triplesNumber: Number(assertionData.triplesNumber),
- chunksNumber: Number(assertionData.chunksNumber),
+ startTokenId: Number(
+ knowledgeAssetsRange[0]
+ .sub(BigNumber.from(knowledgeCollectionId - 1).mul('0x0f4240'))
+ .toString(),
+ ),
+ endTokenId: Number(
+ knowledgeAssetsRange[1]
+ .sub(BigNumber.from(knowledgeCollectionId - 1).mul('0x0f4240'))
+ .toString(),
+ ),
+ burned: knowledgeAssetsRange[2].map((burned) =>
+ Number(
+ burned
+ .sub(BigNumber.from(knowledgeCollectionId - 1).mul('0x0f4240'))
+ .toString(),
+ ),
+ ),
};
}
- selectCommitManagerContract(latestStateIndex) {
- return latestStateIndex === 0
- ? this.CommitManagerV1Contract
- : this.CommitManagerV1U1Contract;
- }
-
- async isCommitWindowOpen(agreementId, epoch, latestStateIndex) {
- return this.callContractFunction(
- this.selectCommitManagerContract(latestStateIndex),
- 'isCommitWindowOpen',
- [agreementId, epoch],
- );
- }
-
- async isUpdateCommitWindowOpen(agreementId, epoch, stateIndex) {
- return this.callContractFunction(
- this.CommitManagerV1U1Contract,
- 'isUpdateCommitWindowOpen',
- [agreementId, epoch, stateIndex],
- );
- }
-
- async getTopCommitSubmissions(agreementId, epoch, latestStateIndex) {
- const args =
- latestStateIndex === 0 ? [agreementId, epoch] : [agreementId, epoch, latestStateIndex];
-
- const commits = await this.callContractFunction(
- this.selectCommitManagerContract(latestStateIndex),
- 'getTopCommitSubmissions',
- args,
- );
-
- return commits
- .filter((commit) => commit.identityId !== '0')
- .map((commit) => ({
- prevIdentityId: commit.prevIdentityId,
- identityId: commit.identityId,
- nextIdentityId: commit.nextIdentityId,
- score: commit.score,
- }));
- }
-
async getMinimumStake() {
const minimumStake = await this.callContractFunction(
- this.ParametersStorageContract,
+ this.contracts.ParametersStorage,
'minimumStake',
[],
- CONTRACTS.PARAMETERS_STORAGE_CONTRACT,
+ CONTRACTS.PARAMETERS_STORAGE,
);
return Number(ethers.utils.formatEther(minimumStake));
@@ -1241,175 +976,22 @@ class Web3Service {
async getMaximumStake() {
const maximumStake = await this.callContractFunction(
- this.ParametersStorageContract,
+ this.contracts.ParametersStorage,
'maximumStake',
[],
- CONTRACTS.PARAMETERS_STORAGE_CONTRACT,
+ CONTRACTS.PARAMETERS_STORAGE,
);
return Number(ethers.utils.formatEther(maximumStake));
}
- async getR2() {
- const r2 = await this.callContractFunction(
- this.ParametersStorageContract,
- 'r2',
- [],
- CONTRACTS.PARAMETERS_STORAGE_CONTRACT,
- );
- return r2;
- }
-
- async getR1() {
- const r1 = await this.callContractFunction(
- this.ParametersStorageContract,
- 'r1',
- [],
- CONTRACTS.PARAMETERS_STORAGE_CONTRACT,
- );
- return r1;
- }
-
- async getR0() {
- const r0 = await this.callContractFunction(
- this.ParametersStorageContract,
- 'r0',
- [],
- CONTRACTS.PARAMETERS_STORAGE_CONTRACT,
- );
- return r0;
- }
-
- async getFinalizationCommitsNumber() {
- const finalizationCommitsNumber = await this.callContractFunction(
- this.ParametersStorageContract,
- 'finalizationCommitsNumber',
- [],
- CONTRACTS.PARAMETERS_STORAGE_CONTRACT,
- );
- return finalizationCommitsNumber;
- }
-
- submitCommit(
- assetContractAddress,
- tokenId,
- keyword,
- hashFunctionId,
- closestNode,
- leftNeighborhoodEdge,
- rightNeighborhoodEdge,
- epoch,
- latestStateIndex,
- callback,
- gasPrice,
- ) {
- const submitCommitArgs = [assetContractAddress, tokenId, keyword, hashFunctionId, epoch];
- let functionName = 'submitCommit((address,uint256,bytes,uint8,uint16))';
- if (
- closestNode !== undefined &&
- leftNeighborhoodEdge !== undefined &&
- rightNeighborhoodEdge !== undefined
- ) {
- submitCommitArgs.push(closestNode, leftNeighborhoodEdge, rightNeighborhoodEdge);
- functionName =
- 'submitCommit((address,uint256,bytes,uint8,uint16,uint72,uint72,uint72))';
- }
- return this.queueTransaction(
- this.selectCommitManagerContract(latestStateIndex),
- functionName,
- [submitCommitArgs],
- callback,
- gasPrice,
- );
- }
-
- submitUpdateCommit(
- assetContractAddress,
- tokenId,
- keyword,
- hashFunctionId,
- closestNode,
- leftNeighborhoodEdge,
- rightNeighborhoodEdge,
- epoch,
- callback,
- gasPrice,
- ) {
- const submitCommitArgs = [assetContractAddress, tokenId, keyword, hashFunctionId, epoch];
- let functionName = 'submitUpdateCommit((address,uint256,bytes,uint8,uint16))';
- if (
- closestNode !== undefined &&
- leftNeighborhoodEdge !== undefined &&
- rightNeighborhoodEdge !== undefined
- ) {
- submitCommitArgs.push(closestNode, leftNeighborhoodEdge, rightNeighborhoodEdge);
- functionName =
- 'submitUpdateCommit((address,uint256,bytes,uint8,uint16,uint72,uint72,uint72))';
- }
- return this.queueTransaction(
- this.CommitManagerV1U1Contract,
- functionName,
- [submitCommitArgs],
- callback,
- gasPrice,
- );
- }
-
- selectProofManagerContract(latestStateIndex) {
- return latestStateIndex === 0 ? this.ProofManagerV1Contract : this.ProofManagerV1U1Contract;
- }
-
- async isProofWindowOpen(agreementId, epoch, latestStateIndex) {
- return this.callContractFunction(
- this.selectProofManagerContract(latestStateIndex),
- 'isProofWindowOpen',
- [agreementId, epoch],
- );
- }
-
- async getChallenge(assetContractAddress, tokenId, epoch, latestStateIndex) {
- const args =
- latestStateIndex === 0
- ? [this.getPublicKeys()[0], assetContractAddress, tokenId, epoch]
- : [assetContractAddress, tokenId, epoch];
-
- const result = await this.callContractFunction(
- this.selectProofManagerContract(latestStateIndex),
- 'getChallenge',
- args,
- );
-
- return { assertionId: result['0'], challenge: result['1'] };
- }
-
- sendProof(
- assetContractAddress,
- tokenId,
- keyword,
- hashFunctionId,
- epoch,
- proof,
- chunkHash,
- latestStateIndex,
- callback,
- gasPrice,
- ) {
- return this.queueTransaction(
- this.selectProofManagerContract(latestStateIndex),
- 'sendProof',
- [[assetContractAddress, tokenId, keyword, hashFunctionId, epoch, proof, chunkHash]],
- callback,
- gasPrice,
- );
- }
-
async getShardingTableHead() {
- return this.callContractFunction(this.ShardingTableStorageContract, 'head', []);
+ return this.callContractFunction(this.contracts.ShardingTableStorage, 'head', []);
}
async getShardingTableLength() {
const nodesCount = await this.callContractFunction(
- this.ShardingTableStorageContract,
+ this.contracts.ShardingTableStorage,
'nodesCount',
[],
);
@@ -1418,7 +1000,7 @@ class Web3Service {
async getShardingTablePage(startingIdentityId, nodesNum) {
return this.callContractFunction(
- this.ShardingTableContract,
+ this.contracts.ShardingTable,
'getShardingTable(uint72,uint72)',
[startingIdentityId, nodesNum],
);
@@ -1428,46 +1010,6 @@ class Web3Service {
return this.getImplementationName();
}
- toBigNumber(value) {
- return ethers.BigNumber.from(value);
- }
-
- keccak256(bytesLikeData) {
- return ethers.utils.keccak256(bytesLikeData);
- }
-
- sha256(bytesLikeData) {
- return ethers.utils.sha256(bytesLikeData);
- }
-
- encodePacked(types, values) {
- return ethers.utils.solidityPack(types, values);
- }
-
- convertUint8ArrayToHex(uint8Array) {
- return ethers.utils.hexlify(uint8Array);
- }
-
- convertAsciiToHex(string) {
- return this.convertUint8ArrayToHex(ethers.utils.toUtf8Bytes(string));
- }
-
- convertHexToAscii(hexString) {
- return ethers.utils.toUtf8String(hexString);
- }
-
- convertBytesToUint8Array(bytesLikeData) {
- return ethers.utils.arrayify(bytesLikeData);
- }
-
- convertToWei(value, fromUnit = 'ether') {
- return ethers.utils.parseUnits(value.toString(), fromUnit);
- }
-
- convertFromWei(value, toUnit = 'ether') {
- return ethers.utils.formatUnits(value, toUnit);
- }
-
async healthCheck() {
try {
const gasPrice = await this.operationalWallets[0].getGasPrice();
@@ -1484,84 +1026,6 @@ class Web3Service {
await this.initializeContracts();
}
- async getUpdateCommitWindowDuration() {
- const commitWindowDurationPerc = await this.callContractFunction(
- this.ParametersStorageContract,
- 'updateCommitWindowDuration',
- [],
- CONTRACTS.PARAMETERS_STORAGE_CONTRACT,
- );
- return Number(commitWindowDurationPerc);
- }
-
- async getCommitWindowDurationPerc() {
- const commitWindowDurationPerc = await this.callContractFunction(
- this.ParametersStorageContract,
- 'commitWindowDurationPerc',
- [],
- CONTRACTS.PARAMETERS_STORAGE_CONTRACT,
- );
- return Number(commitWindowDurationPerc);
- }
-
- async getProofWindowDurationPerc() {
- return this.callContractFunction(
- this.ParametersStorageContract,
- 'proofWindowDurationPerc',
- [],
- CONTRACTS.PARAMETERS_STORAGE_CONTRACT,
- );
- }
-
- async getEpochLength() {
- const epochLength = await this.callContractFunction(
- this.ParametersStorageContract,
- 'epochLength',
- [],
- CONTRACTS.PARAMETERS_STORAGE_CONTRACT,
- );
- return Number(epochLength);
- }
-
- async isHashFunction(hashFunctionId) {
- return this.callContractFunction(this.HashingProxyContract, 'isHashFunction(uint8)', [
- hashFunctionId,
- ]);
- }
-
- getScoreFunctionIds() {
- return Object.keys(this.scoringFunctionsContracts);
- }
-
- async getLog2PLDSFParams() {
- const log2pldsfParams = await this.callContractFunction(
- this.scoringFunctionsContracts[1],
- 'getParameters',
- [],
- CONTRACTS.LOG2PLDSF_CONTRACT,
- );
-
- const params = {};
- params.distanceMappingCoefficient = log2pldsfParams['0'];
- params.stakeMappingCoefficient = log2pldsfParams['1'];
-
- const paramNames = [
- 'multiplier',
- 'logArgumentConstant',
- 'a',
- 'stakeExponent',
- 'b',
- 'c',
- 'distanceExponent',
- 'd',
- ];
- log2pldsfParams['2'].forEach((val, index) => {
- params[paramNames[index]] = val;
- });
-
- return params;
- }
-
async getBlockchainTimestamp() {
return Math.floor(Date.now() / 1000);
}
@@ -1572,83 +1036,54 @@ class Web3Service {
return blockTimestamp;
}
- async hasPendingUpdate(tokenId) {
- return this.callContractFunction(this.UnfinalizedStateStorageContract, 'hasPendingUpdate', [
- tokenId,
- ]);
- }
-
- async getAgreementScoreFunctionId(agreementId) {
- return this.callContractFunction(
- this.ServiceAgreementStorageProxyContract,
- 'getAgreementScoreFunctionId',
- [agreementId],
- );
- }
-
- async getLinearSumParams() {
- const linearSumParams = await this.callContractFunction(
- this.scoringFunctionsContracts[2],
- 'getParameters',
- [],
- CONTRACTS.LINEAR_SUM_CONTRACT,
- );
- return {
- distanceScaleFactor: BigNumber.from(linearSumParams[0]),
- stakeScaleFactor: BigNumber.from(linearSumParams[1]),
- w1: Number(linearSumParams[2]),
- w2: Number(linearSumParams[3]),
- };
- }
-
async getParanetKnowledgeAssetsCount(paranetId) {
return this.callContractFunction(
- this.ParanetsRegistryContract,
+ this.contracts.ParanetsRegistry,
'getKnowledgeAssetsCount',
[paranetId],
- CONTRACTS.PARANETS_REGISTRY_CONTRACT,
+ CONTRACTS.PARANETS_REGISTRY,
);
}
async getParanetKnowledgeAssetsWithPagination(paranetId, offset, limit) {
return this.callContractFunction(
- this.ParanetsRegistryContract,
+ this.contracts.ParanetsRegistry,
'getKnowledgeAssetsWithPagination',
[paranetId, offset, limit],
- CONTRACTS.PARANETS_REGISTRY_CONTRACT,
+ CONTRACTS.PARANETS_REGISTRY,
);
}
async getParanetMetadata(paranetId) {
return this.callContractFunction(
- this.ParanetsRegistryContract,
+ this.contracts.ParanetsRegistry,
'getParanetMetadata',
[paranetId],
- CONTRACTS.PARANETS_REGISTRY_CONTRACT,
+ CONTRACTS.PARANETS_REGISTRY,
);
}
- async getName(paranetId) {
+ async getParanetName(paranetId) {
return this.callContractFunction(
- this.ParanetsRegistryContract,
+ this.contracts.ParanetsRegistry,
'getName',
[paranetId],
- CONTRACTS.PARANETS_REGISTRY_CONTRACT,
+ CONTRACTS.PARANETS_REGISTRY,
);
}
async getDescription(paranetId) {
return this.callContractFunction(
- this.ParanetsRegistryContract,
+ this.contracts.ParanetsRegistry,
'getDescription',
[paranetId],
- CONTRACTS.PARANETS_REGISTRY_CONTRACT,
+ CONTRACTS.PARANETS_REGISTRY,
);
}
async getParanetKnowledgeAssetLocator(knowledgeAssetId) {
const [knowledgeAssetStorageContract, kaTokenId] = await this.callContractFunction(
- this.ParanetKnowledgeAssetsRegistryContract,
+ this.contracts.ParanetKnowledgeAssetsRegistry,
'getKnowledgeAssetLocator',
[knowledgeAssetId],
);
@@ -1657,41 +1092,73 @@ class Web3Service {
return knowledgeAssetLocator;
}
- async getKnowledgeAssetLocatorFromParanetId(paranetId) {
- const [paranetKAStorageContract, paranetKATokenId] = await this.callContractFunction(
- this.ParanetsRegistryContract,
- 'getParanetKnowledgeAssetLocator',
- [paranetId],
- );
- const tokenId = paranetKATokenId.toNumber();
- const knowledgeAssetLocator = { paranetKAStorageContract, tokenId };
- return knowledgeAssetLocator;
- }
-
async paranetExists(paranetId) {
return this.callContractFunction(
- this.ParanetsRegistryContract,
+ this.contracts.ParanetsRegistry,
'paranetExists',
[paranetId],
- CONTRACTS.PARANETS_REGISTRY_CONTRACT,
+ CONTRACTS.PARANETS_REGISTRY,
);
}
- async getParanetId(knowledgeAssetId) {
+ async isCuratedNode(paranetId, identityId) {
+ return this.callContractFunction(this.contracts.ParanetsRegistry, 'isCuratedNode', [
+ paranetId,
+ identityId,
+ ]);
+ }
+
+ async getNodesAccessPolicy(paranetId) {
+ return this.callContractFunction(this.contracts.ParanetsRegistry, 'getNodesAccessPolicy', [
+ paranetId,
+ ]);
+ }
+
+ async getParanetCuratedNodes(paranetId) {
return this.callContractFunction(
- this.ParanetKnowledgeAssetsRegistryContract,
- 'getParanetId',
- [knowledgeAssetId],
+ this.contracts.ParanetsRegistry,
+ 'getCuratedNodes',
+ [paranetId],
+ CONTRACTS.PARANETS_REGISTRY,
);
}
- async isParanetKnowledgeAsset(knowledgeAssetId) {
+ async getNodeId(identityId) {
+ return this.callContractFunction(this.contracts.ProfileStorage, 'getNodeId', [identityId]);
+ }
+
+ async signMessage(messageHash) {
+ const wallet = this.getRandomOperationalWallet();
+ return wallet.signMessage(ethers.utils.arrayify(messageHash));
+ }
+
+ async getStakeWeightedAverageAsk() {
return this.callContractFunction(
- this.ParanetKnowledgeAssetsRegistryContract,
- 'isParanetKnowledgeAsset',
- [knowledgeAssetId],
+ this.contracts.AskStorage,
+ 'getStakeWeightedAverageAsk',
+ [],
);
}
+
+ async getTimeUntilNextEpoch() {
+ return this.callContractFunction(this.contracts.Chronos, 'timeUntilNextEpoch', []);
+ }
+
+ async getEpochLength() {
+ return this.callContractFunction(this.contracts.Chronos, 'epochLength', []);
+ }
+ // SUPPORT FOR OLD CONTRACTS
+
+ async getLatestAssertionId(assetContractAddress, tokenId) {
+ const assetStorageContractInstance =
+ this.assetStorageContracts[assetContractAddress.toString().toLowerCase()];
+ if (!assetStorageContractInstance)
+ throw new Error('Unknown asset storage contract address');
+
+ return this.callContractFunction(assetStorageContractInstance, 'getLatestAssertionId', [
+ tokenId,
+ ]);
+ }
}
export default Web3Service;
diff --git a/src/modules/module-config-validation.js b/src/modules/module-config-validation.js
index fc2cd00619..ffd5a51bab 100644
--- a/src/modules/module-config-validation.js
+++ b/src/modules/module-config-validation.js
@@ -12,7 +12,7 @@ class ModuleConfigValidation {
if (typeof this[`validate${capitalizedName}`] === 'function') {
this[`validate${capitalizedName}`](config);
} else {
- throw Error(`Missing validation for ${capitalizedName}`);
+ throw new Error(`Missing validation for ${capitalizedName}`);
}
}
@@ -36,20 +36,85 @@ class ModuleConfigValidation {
return true;
}
+ validateBlockchainEvents(config) {
+ const occurences = {};
+ for (const implementation of Object.values(config.implementation)) {
+ // eslint-disable-next-line no-continue
+ if (!implementation.enabled) {
+ continue;
+ }
+
+ if (implementation.config.blockchains.length === 0) {
+ throw new Error(
+ 'Blockchains must be specified in the blockchain events service config.',
+ );
+ }
+
+ if (
+ implementation.config.blockchains.length >
+ Object.keys(implementation.config.rpcEndpoints).length
+ ) {
+ throw new Error('Missing RPC edpoints in the blockchain events service config.');
+ }
+
+ if (
+ implementation.config.blockchains.length >
+ Object.keys(implementation.config.hubContractAddress).length
+ ) {
+ throw new Error('Missing hub addresses in the blockchain events service config.');
+ }
+
+ for (const blockchain of implementation.config.blockchains) {
+ if (!occurences[blockchain]) {
+ occurences[blockchain] = 0;
+ }
+ occurences[blockchain] += 1;
+
+ if (occurences[blockchain] > 1) {
+ throw new Error(
+ `Exactly one blockchain events service for blockchain ${blockchain} needs to be defined.`,
+ );
+ }
+
+ if (
+ !implementation.config.rpcEndpoints[blockchain] ||
+ implementation.config.rpcEndpoints[blockchain].length === 0
+ ) {
+ throw new Error(
+ `RPC endpoint is not defined for blockchain: ${blockchain} in the blockchain events service config.`,
+ );
+ }
+
+ if (!implementation.config.hubContractAddress[blockchain]) {
+ throw new Error(
+ `Hub contract address is not defined for blockchain: ${blockchain} in the blockchain events service config.`,
+ );
+ }
+ }
+ }
+ }
+
validateTripleStore(config) {
const occurences = {};
for (const implementation of Object.values(config.implementation)) {
// eslint-disable-next-line no-continue
- if (!implementation.enabled) continue;
+ if (!implementation.enabled) {
+ continue;
+ }
for (const repository in implementation.config.repositories) {
- if (!occurences[repository]) occurences[repository] = 0;
+ if (!occurences[repository]) {
+ occurences[repository] = 0;
+ }
occurences[repository] += 1;
}
}
for (const repository of Object.values(TRIPLE_STORE_REPOSITORIES)) {
- if (occurences[repository] !== 1)
- throw Error(`Exactly one config for repository ${repository} needs to be defined.`);
+ if (occurences[repository] !== 1) {
+ throw new Error(
+ `Exactly one config for repository ${repository} needs to be defined.`,
+ );
+ }
}
}
diff --git a/src/modules/network/implementation/libp2p-service.js b/src/modules/network/implementation/libp2p-service.js
index 19d1eeb9df..f1baad9f7e 100644
--- a/src/modules/network/implementation/libp2p-service.js
+++ b/src/modules/network/implementation/libp2p-service.js
@@ -104,17 +104,6 @@ class Libp2pService {
initializationObject.peerId = this.config.peerId;
this._initializeRateLimiters();
- /**
- * sessions = {
- * [peerId]: {
- * [operationId]: {
- * [keywordUuid] : {
- * stream
- * }
- * }
- * }
- * }
- */
this.sessions = {};
this.node = await libp2p.create(initializationObject);
const peerId = this.node.peerId.toB58String();
@@ -222,12 +211,7 @@ class Libp2pService {
peerIdString,
);
- this.updateSessionStream(
- message.header.operationId,
- message.header.keywordUuid,
- peerIdString,
- stream,
- );
+ this.updateSessionStream(message.header.operationId, peerIdString, stream);
if (!valid) {
await this.sendMessageResponse(
@@ -235,28 +219,18 @@ class Libp2pService {
peerIdString,
NETWORK_MESSAGE_TYPES.RESPONSES.NACK,
message.header.operationId,
- message.header.keywordUuid,
{ errorMessage: 'Invalid request message' },
);
- this.removeCachedSession(
- message.header.operationId,
- message.header.keywordUuid,
- peerIdString,
- );
+ this.removeCachedSession(message.header.operationId, peerIdString);
} else if (busy) {
await this.sendMessageResponse(
protocol,
peerIdString,
NETWORK_MESSAGE_TYPES.RESPONSES.BUSY,
message.header.operationId,
- message.header.keywordUuid,
{},
);
- this.removeCachedSession(
- message.header.operationId,
- message.header.keywordUuid,
- peerIdString,
- );
+ this.removeCachedSession(message.header.operationId, peerIdString);
} else {
this.logger.debug(
`Receiving message from ${peerIdString} to ${this.config.id}: protocol: ${protocol}, messageType: ${message.header.messageType};`,
@@ -266,65 +240,48 @@ class Libp2pService {
});
}
- updateSessionStream(operationId, keywordUuid, peerIdString, stream) {
+ updateSessionStream(operationId, peerIdString, stream) {
this.logger.trace(
`Storing new session stream for remotePeerId: ${peerIdString} with operation id: ${operationId}`,
);
if (!this.sessions[peerIdString]) {
this.sessions[peerIdString] = {
[operationId]: {
- [keywordUuid]: {
- stream,
- },
+ stream,
},
};
} else if (!this.sessions[peerIdString][operationId]) {
this.sessions[peerIdString][operationId] = {
- [keywordUuid]: {
- stream,
- },
+ stream,
};
} else {
- this.sessions[peerIdString][operationId][keywordUuid] = {
+ this.sessions[peerIdString][operationId] = {
stream,
};
}
}
- getSessionStream(operationId, keywordUuid, peerIdString) {
- if (
- this.sessions[peerIdString] &&
- this.sessions[peerIdString][operationId] &&
- this.sessions[peerIdString][operationId][keywordUuid]
- ) {
+ getSessionStream(operationId, peerIdString) {
+ if (this.sessions[peerIdString] && this.sessions[peerIdString][operationId]) {
this.logger.trace(
`Session found remotePeerId: ${peerIdString}, operation id: ${operationId}`,
);
- return this.sessions[peerIdString][operationId][keywordUuid].stream;
+ return this.sessions[peerIdString][operationId].stream;
}
return null;
}
- createStreamMessage(message, operationId, keywordUuid, messageType) {
+ createStreamMessage(message, operationId, messageType) {
return {
header: {
messageType,
operationId,
- keywordUuid,
},
data: message,
};
}
- async sendMessage(
- protocol,
- peerIdString,
- messageType,
- operationId,
- keywordUuid,
- message,
- timeout,
- ) {
+ async sendMessage(protocol, peerIdString, messageType, operationId, message, timeout) {
const nackMessage = {
header: { messageType: NETWORK_MESSAGE_TYPES.RESPONSES.NACK },
data: {
@@ -366,14 +323,9 @@ class Libp2pService {
const { stream } = dialResult;
- this.updateSessionStream(operationId, keywordUuid, peerIdString, stream);
+ this.updateSessionStream(operationId, peerIdString, stream);
- const streamMessage = this.createStreamMessage(
- message,
- operationId,
- keywordUuid,
- messageType,
- );
+ const streamMessage = this.createStreamMessage(message, operationId, messageType);
this.logger.trace(
`Sending message to ${peerIdString}. protocol: ${protocol}, messageType: ${messageType}, operationId: ${operationId}`,
@@ -452,24 +404,17 @@ class Libp2pService {
return response.message;
}
- async sendMessageResponse(
- protocol,
- peerIdString,
- messageType,
- operationId,
- keywordUuid,
- message,
- ) {
+ async sendMessageResponse(protocol, peerIdString, messageType, operationId, message) {
this.logger.debug(
`Sending response from ${this.config.id} to ${peerIdString}: protocol: ${protocol}, messageType: ${messageType};`,
);
- const stream = this.getSessionStream(operationId, keywordUuid, peerIdString);
+ const stream = this.getSessionStream(operationId, peerIdString);
if (!stream) {
throw Error(`Unable to find opened stream for remotePeerId: ${peerIdString}`);
}
- const response = this.createStreamMessage(message, operationId, keywordUuid, messageType);
+ const response = this.createStreamMessage(message, operationId, messageType);
await this._sendMessageToStream(stream, response);
}
@@ -511,7 +456,7 @@ class Libp2pService {
}
async readMessageSink(source, isMessageValid, peerIdString) {
- const message = { header: { operationId: '', keywordUuid: '' }, data: {} };
+ const message = { header: { operationId: '' }, data: {} };
// we expect first buffer to be header
const stringifiedHeader = (await source.next()).value;
@@ -551,7 +496,6 @@ class Libp2pService {
// header well formed
if (
!header.operationId ||
- !header.keywordUuid ||
!header.messageType ||
!Object.keys(NETWORK_MESSAGE_TYPES.REQUESTS).includes(header.messageType)
)
@@ -560,7 +504,7 @@ class Libp2pService {
return true;
}
- return this.sessionExists(peerIdString, header.operationId, header.keywordUuid);
+ return this.sessionExists(peerIdString, header.operationId);
}
sessionExists() {
@@ -646,9 +590,9 @@ class Libp2pService {
return this.node.peerStore.get(createFromB58String(peerId));
}
- removeCachedSession(operationId, keywordUuid, peerIdString) {
- if (this.sessions[peerIdString]?.[operationId]?.[keywordUuid]?.stream) {
- this.sessions[peerIdString][operationId][keywordUuid].stream.close();
+ removeCachedSession(operationId, peerIdString) {
+ if (this.sessions[peerIdString]?.[operationId]?.stream) {
+ this.sessions[peerIdString][operationId].stream.close();
delete this.sessions[peerIdString][operationId];
this.logger.trace(
`Removed session for remotePeerId: ${peerIdString}, operationId: ${operationId}.`,
diff --git a/src/modules/network/network-module-manager.js b/src/modules/network/network-module-manager.js
index 698c7f5697..4216734a05 100644
--- a/src/modules/network/network-module-manager.js
+++ b/src/modules/network/network-module-manager.js
@@ -29,36 +29,26 @@ class NetworkModuleManager extends BaseModuleManager {
}
}
- async sendMessage(
- protocol,
- remotePeerId,
- messageType,
- operationId,
- keywordUuid,
- message,
- timeout,
- ) {
+ async sendMessage(protocol, remotePeerId, messageType, operationId, message, timeout) {
if (this.initialized) {
return this.getImplementation().module.sendMessage(
protocol,
remotePeerId,
messageType,
operationId,
- keywordUuid,
message,
timeout,
);
}
}
- async sendMessageResponse(protocol, remotePeerId, messageType, operationId, keyword, message) {
+ async sendMessageResponse(protocol, remotePeerId, messageType, operationId, message) {
if (this.initialized) {
return this.getImplementation().module.sendMessageResponse(
protocol,
remotePeerId,
messageType,
operationId,
- keyword,
message,
);
}
@@ -100,13 +90,9 @@ class NetworkModuleManager extends BaseModuleManager {
}
}
- removeCachedSession(operationId, keywordUuid, remotePeerId) {
+ removeCachedSession(operationId, remotePeerId) {
if (this.initialized) {
- this.getImplementation().module.removeCachedSession(
- operationId,
- keywordUuid,
- remotePeerId,
- );
+ this.getImplementation().module.removeCachedSession(operationId, remotePeerId);
}
}
}
diff --git a/src/modules/repository/implementation/sequelize/migrations/20240301095400-remove-corrupted-service-agreements-for-gnosis.js b/src/modules/repository/implementation/sequelize/migrations/20240301095400-remove-corrupted-service-agreements- for-gnosis.js
similarity index 100%
rename from src/modules/repository/implementation/sequelize/migrations/20240301095400-remove-corrupted-service-agreements-for-gnosis.js
rename to src/modules/repository/implementation/sequelize/migrations/20240301095400-remove-corrupted-service-agreements- for-gnosis.js
diff --git a/src/modules/repository/implementation/sequelize/migrations/20240923195000-create-publish-paranet.js b/src/modules/repository/implementation/sequelize/migrations/20240923195000-create-publish-paranet.js
new file mode 100644
index 0000000000..c0c6cfa5f6
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20240923195000-create-publish-paranet.js
@@ -0,0 +1,30 @@
+export async function up({ context: { queryInterface, Sequelize } }) {
+ await queryInterface.createTable('publish_paranet', {
+ id: {
+ type: Sequelize.INTEGER,
+ primaryKey: true,
+ autoIncrement: true,
+ },
+ operation_id: {
+ type: Sequelize.UUID,
+ allowNull: false,
+ },
+ status: {
+ allowNull: false,
+ type: Sequelize.STRING,
+ },
+ created_at: {
+ allowNull: false,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ updated_at: {
+ allowNull: false,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ });
+}
+export async function down({ context: { queryInterface } }) {
+ await queryInterface.dropTable('publish_paranet');
+}
diff --git a/src/modules/repository/implementation/sequelize/migrations/20240924161700-create-paranet-synced-asset.js b/src/modules/repository/implementation/sequelize/migrations/20240924161700-create-paranet-synced-asset.js
new file mode 100644
index 0000000000..3c71386115
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20240924161700-create-paranet-synced-asset.js
@@ -0,0 +1,89 @@
+export const up = async ({ context: { queryInterface, Sequelize } }) => {
+ await queryInterface.createTable('paranet_synced_asset', {
+ id: {
+ autoIncrement: true,
+ primaryKey: true,
+ type: Sequelize.INTEGER,
+ },
+ blockchain_id: {
+ allowNull: false,
+ type: Sequelize.STRING,
+ },
+ ual: {
+ allowNull: false,
+ type: Sequelize.STRING,
+ },
+ paranet_ual: {
+ allowNull: false,
+ type: Sequelize.STRING,
+ },
+ public_assertion_id: {
+ allowNull: true,
+ type: Sequelize.STRING,
+ },
+ private_assertion_id: {
+ allowNull: false,
+ type: Sequelize.STRING,
+ },
+ sender: {
+ allowNull: false,
+ type: Sequelize.STRING,
+ },
+ transaction_hash: {
+ allowNull: false,
+ type: Sequelize.STRING,
+ },
+ created_at: {
+ allowNull: false,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ updated_at: {
+ allowNull: false,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ });
+
+ await queryInterface.sequelize.query(`
+ CREATE TRIGGER before_insert_paranet_synced_asset
+ BEFORE INSERT ON paranet_synced_asset
+ FOR EACH ROW
+ SET NEW.created_at = NOW();
+ `);
+
+ await queryInterface.sequelize.query(`
+ CREATE TRIGGER before_update_paranet_synced_asset
+ BEFORE UPDATE ON paranet_synced_asset
+ FOR EACH ROW
+ SET NEW.updated_at = NOW();
+ `);
+
+ await queryInterface.sequelize.query(`
+ CREATE INDEX idx_paranet_ual_created_at
+ ON paranet_synced_asset (paranet_ual, created_at);
+ `);
+
+ await queryInterface.sequelize.query(`
+ CREATE INDEX idx_sender
+ ON paranet_synced_asset (sender);
+ `);
+
+ await queryInterface.sequelize.query(`
+ CREATE INDEX idx_paranet_ual_unique
+ ON paranet_synced_asset (paranet_ual);
+ `);
+};
+
+export const down = async ({ context: { queryInterface } }) => {
+ await queryInterface.dropTable('paranet_synced_asset');
+
+ await queryInterface.sequelize.query(`
+ DROP TRIGGER IF EXISTS before_insert_paranet_synced_asset;
+ `);
+
+ // Delete the before-update trigger
+ await queryInterface.sequelize.query(`
+ DROP TRIGGER IF EXISTS before_update_paranet_synced_asset;
+ `);
+};
diff --git a/src/modules/repository/implementation/sequelize/migrations/20240924205500-create-publish-paranet-response.js b/src/modules/repository/implementation/sequelize/migrations/20240924205500-create-publish-paranet-response.js
new file mode 100644
index 0000000000..13a8293f6e
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20240924205500-create-publish-paranet-response.js
@@ -0,0 +1,38 @@
+export async function up({ context: { queryInterface, Sequelize } }) {
+ await queryInterface.createTable('publish_paranet_response', {
+ id: {
+ type: Sequelize.INTEGER,
+ primaryKey: true,
+ autoIncrement: true,
+ },
+ operation_id: {
+ type: Sequelize.UUID,
+ allowNull: false,
+ },
+ keyword: {
+ allowNull: false,
+ type: Sequelize.STRING,
+ },
+ status: {
+ allowNull: false,
+ type: Sequelize.STRING,
+ },
+ message: {
+ allowNull: true,
+ type: Sequelize.TEXT,
+ },
+ created_at: {
+ allowNull: false,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ updated_at: {
+ allowNull: false,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ });
+}
+export async function down({ context: { queryInterface } }) {
+ await queryInterface.dropTable('publish_paranet_response');
+}
diff --git a/src/modules/repository/implementation/sequelize/migrations/20240927110000-change-paranet-synced-asset-nullable-assertions.js b/src/modules/repository/implementation/sequelize/migrations/20240927110000-change-paranet-synced-asset-nullable-assertions.js
new file mode 100644
index 0000000000..303d9b8ab3
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20240927110000-change-paranet-synced-asset-nullable-assertions.js
@@ -0,0 +1,23 @@
+export async function up({ context: { queryInterface, Sequelize } }) {
+ await queryInterface.changeColumn('paranet_synced_asset', 'public_assertion_id', {
+ type: Sequelize.STRING,
+ allowNull: false,
+ });
+
+ await queryInterface.changeColumn('paranet_synced_asset', 'private_assertion_id', {
+ type: Sequelize.STRING,
+ allowNull: true,
+ });
+}
+
+export async function down({ context: { queryInterface, Sequelize } }) {
+ await queryInterface.changeColumn('paranet_synced_asset', 'public_assertion_id', {
+ type: Sequelize.STRING,
+ allowNull: true,
+ });
+
+ await queryInterface.changeColumn('paranet_synced_asset', 'private_assertion_id', {
+ type: Sequelize.STRING,
+ allowNull: false,
+ });
+}
diff --git a/src/modules/repository/implementation/sequelize/migrations/20240930113000-add-error-message.js b/src/modules/repository/implementation/sequelize/migrations/20240930113000-add-error-message.js
new file mode 100644
index 0000000000..cb0d633bd5
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20240930113000-add-error-message.js
@@ -0,0 +1,10 @@
+export async function up({ context: { queryInterface, Sequelize } }) {
+ await queryInterface.addColumn('missed_paranet_asset', 'error_message', {
+ type: Sequelize.TEXT,
+ allowNull: true,
+ });
+}
+
+export async function down({ context: { queryInterface } }) {
+ await queryInterface.removeColumn('missed_paranet_asset', 'error_message');
+}
diff --git a/src/modules/repository/implementation/sequelize/migrations/20241011112100-remove-knowledge-asset-id.js b/src/modules/repository/implementation/sequelize/migrations/20241011112100-remove-knowledge-asset-id.js
new file mode 100644
index 0000000000..eefa3b0eed
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20241011112100-remove-knowledge-asset-id.js
@@ -0,0 +1,10 @@
+export async function up({ context: { queryInterface } }) {
+ await queryInterface.removeColumn('missed_paranet_asset', 'knowledge_asset_id');
+}
+
+export async function down({ context: { queryInterface, Sequelize } }) {
+ await queryInterface.addColumn('missed_paranet_asset', 'knowledge_asset_id', {
+ type: Sequelize.STRING,
+ allowNull: false,
+ });
+}
diff --git a/src/modules/repository/implementation/sequelize/migrations/20241014164500-paranet-synced-asset-optional-fileds.js b/src/modules/repository/implementation/sequelize/migrations/20241014164500-paranet-synced-asset-optional-fileds.js
new file mode 100644
index 0000000000..8b89584c92
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20241014164500-paranet-synced-asset-optional-fileds.js
@@ -0,0 +1,21 @@
+export async function up({ context: { queryInterface, Sequelize } }) {
+ await queryInterface.changeColumn('paranet_synced_asset', 'sender', {
+ type: Sequelize.STRING,
+ allowNull: true,
+ });
+ await queryInterface.changeColumn('paranet_synced_asset', 'transaction_hash', {
+ type: Sequelize.STRING,
+ allowNull: true,
+ });
+}
+
+export async function down({ context: { queryInterface, Sequelize } }) {
+ await queryInterface.changeColumn('paranet_synced_asset', 'sender', {
+ type: Sequelize.STRING,
+ allowNull: false,
+ });
+ await queryInterface.changeColumn('paranet_synced_asset', 'transaction_hash', {
+ type: Sequelize.STRING,
+ allowNull: false,
+ });
+}
diff --git a/src/modules/repository/implementation/sequelize/migrations/20241023170300-add-synced-data-source.js b/src/modules/repository/implementation/sequelize/migrations/20241023170300-add-synced-data-source.js
new file mode 100644
index 0000000000..5681e4ae95
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20241023170300-add-synced-data-source.js
@@ -0,0 +1,10 @@
+export async function up({ context: { queryInterface, Sequelize } }) {
+ await queryInterface.addColumn('paranet_synced_asset', 'data_source', {
+ type: Sequelize.TEXT,
+ allowNull: true,
+ });
+}
+
+export async function down({ context: { queryInterface } }) {
+ await queryInterface.removeColumn('paranet_synced_asset', 'data_source');
+}
diff --git a/src/modules/repository/implementation/sequelize/migrations/20241105150000-change-data-source-col-type-in-paranet-synced-asset.js b/src/modules/repository/implementation/sequelize/migrations/20241105150000-change-data-source-col-type-in-paranet-synced-asset.js
new file mode 100644
index 0000000000..06696b4eee
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20241105150000-change-data-source-col-type-in-paranet-synced-asset.js
@@ -0,0 +1,13 @@
+export async function up({ context: { queryInterface, Sequelize } }) {
+ await queryInterface.changeColumn('paranet_synced_asset', 'data_source', {
+ type: Sequelize.ENUM('sync', 'local_store'),
+ allowNull: true,
+ });
+}
+
+export async function down({ context: { queryInterface, Sequelize } }) {
+ await queryInterface.changeColumn('paranet_synced_asset', 'data_source', {
+ type: Sequelize.TEXT,
+ allowNull: true,
+ });
+}
diff --git a/src/modules/repository/implementation/sequelize/migrations/20241105160000-add-indexes-to-tables.js b/src/modules/repository/implementation/sequelize/migrations/20241105160000-add-indexes-to-tables.js
new file mode 100644
index 0000000000..e78f89736c
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20241105160000-add-indexes-to-tables.js
@@ -0,0 +1,169 @@
+export async function up({ context: { queryInterface } }) {
+ const indexes = [
+ { table: 'shard', column: ['blockchain_id'], name: 'shard_blockchain_id_index' },
+ { table: 'shard', column: ['last_dialed'], name: 'last_dialed_index' },
+ {
+ table: 'service_agreement',
+ column: ['blockchain_id'],
+ name: 'service_agreement_blockchain_id_index',
+ },
+ {
+ table: 'service_agreement',
+ column: ['blockchain_id', 'token_id'],
+ name: 'blockchain_id_token_id_index',
+ },
+ { table: 'service_agreement', column: ['token_id'], name: 'token_id_index' },
+ { table: 'paranet_synced_asset', column: ['ual'], name: 'paranet_synced_asset_ual_index' },
+ {
+ table: 'paranet_synced_asset',
+ column: ['paranet_ual', 'data_source'],
+ name: 'paranet_ual_data_source_index',
+ },
+ {
+ table: 'paranet',
+ column: ['blockchain_id', 'paranet_id'],
+ name: 'blockchain_id_paranet_id_index',
+ },
+ { table: 'missed_paranet_asset', column: ['paranet_ual'], name: 'paranet_ual_index' },
+ { table: 'missed_paranet_asset', column: ['ual'], name: 'missed_paranet_asset_ual_index' },
+ { table: 'event', column: ['name', 'timestamp'], name: 'name_timestamp_index' },
+ { table: 'event', column: ['operation_id'], name: 'event_operation_id_index' },
+ { table: 'commands', column: ['name', 'status'], name: 'name_status_index' },
+ { table: 'commands', column: ['status', 'started_at'], name: 'status_started_at_index' },
+ { table: 'get', column: ['operation_id'], name: 'get_operation_id_index' },
+ { table: 'publish', column: ['operation_id'], name: 'publish_operation_id_index' },
+ { table: 'update', column: ['operation_id'], name: 'update_operation_id_index' },
+ {
+ table: 'publish_paranet',
+ column: ['operation_id'],
+ name: 'publish_paranet_operation_id_index',
+ },
+ { table: 'get', column: ['created_at'], name: 'get_created_at_index' },
+ { table: 'publish', column: ['created_at'], name: 'publish_created_at_index' },
+ { table: 'update', column: ['created_at'], name: 'update_created_at_index' },
+ {
+ table: 'publish_paranet',
+ column: ['created_at'],
+ name: 'publish_paranet_created_at_index',
+ },
+ {
+ table: 'get_response',
+ column: ['operation_id'],
+ name: 'get_response_operation_id_index',
+ },
+ { table: 'publish_response', column: ['operation_id'], name: 'operation_id_index' },
+ {
+ table: 'update_response',
+ column: ['operation_id'],
+ name: 'update_response_operation_id_index',
+ },
+ {
+ table: 'publish_paranet_response',
+ column: ['operation_id'],
+ name: 'publish_paranet_response_operation_id_index',
+ },
+ { table: 'get_response', column: ['created_at'], name: 'get_response_created_at_index' },
+ {
+ table: 'publish_response',
+ column: ['created_at'],
+ name: 'publish_response_created_at_index',
+ },
+ {
+ table: 'update_response',
+ column: ['created_at'],
+ name: 'update_response_created_at_index',
+ },
+ {
+ table: 'publish_paranet_response',
+ column: ['created_at'],
+ name: 'publish_paranet_response_created_at_index',
+ },
+ { table: 'blockchain', column: ['contract'], name: 'contract_index' },
+ ];
+
+ for (const index of indexes) {
+ const { table, column, name } = index;
+
+ // eslint-disable-next-line no-await-in-loop
+ const [results] = await queryInterface.sequelize.query(`
+ SELECT COUNT(1) AS count
+ FROM INFORMATION_SCHEMA.STATISTICS
+ WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = '${table}' AND INDEX_NAME = '${name}';
+ `);
+
+ if (results[0].count === 0) {
+ // eslint-disable-next-line no-await-in-loop
+ await queryInterface.addIndex(table, column, { name });
+ }
+ }
+}
+
+export async function down({ context: { queryInterface } }) {
+ await queryInterface.removeIndex('shard', 'shard_blockchain_id_index');
+
+ await queryInterface.removeIndex('shard', 'last_dialed_index');
+
+ await queryInterface.removeIndex('service_agreement', 'service_agreement_blockchain_id_index');
+
+ await queryInterface.removeIndex('service_agreement', 'blockchain_id_token_id_index');
+
+ await queryInterface.removeIndex('service_agreement', 'token_id_index');
+
+ await queryInterface.removeIndex('paranet_synced_asset', 'paranet_synced_asset_ual_index');
+
+ await queryInterface.removeIndex('paranet_synced_asset', 'paranet_ual_data_source_index');
+
+ await queryInterface.removeIndex('paranet', 'blockchain_id_paranet_id_index');
+
+ await queryInterface.removeIndex('missed_paranet_asset', 'paranet_ual_index');
+
+ await queryInterface.removeIndex('missed_paranet_asset', 'missed_paranet_asset_ual_index');
+
+ await queryInterface.removeIndex('event', 'name_timestamp_index');
+
+ await queryInterface.removeIndex('event', 'event_operation_id_index');
+
+ await queryInterface.removeIndex('commands', 'name_status_index');
+
+ await queryInterface.removeIndex('commands', 'status_started_at_index');
+
+ await queryInterface.removeIndex('get', 'get_operation_id_index');
+
+ await queryInterface.removeIndex('publish', 'publish_operation_id_index');
+
+ await queryInterface.removeIndex('update', 'update_operation_id_index');
+
+ await queryInterface.removeIndex('publish_paranet', 'publish_paranet_operation_id_index');
+
+ await queryInterface.removeIndex('get', 'get_created_at_index');
+
+ await queryInterface.removeIndex('publish', 'publish_created_at_index');
+
+ await queryInterface.removeIndex('update', 'update_created_at_index');
+
+ await queryInterface.removeIndex('publish_paranet', 'publish_paranet_created_at_index');
+
+ await queryInterface.removeIndex('get_response', 'get_response_operation_id_index');
+
+ await queryInterface.removeIndex('publish_response', 'publish_response_operation_id_index');
+
+ await queryInterface.removeIndex('update_response', 'update_response_operation_id_index');
+
+ await queryInterface.removeIndex(
+ 'publish_paranet_response',
+ 'publish_paranet_response_operation_id_index',
+ );
+
+ await queryInterface.removeIndex('get_response', 'get_response_created_at_index');
+
+ await queryInterface.removeIndex('publish_response', 'publish_response_created_at_index');
+
+ await queryInterface.removeIndex('update_response', 'update_response_created_at_index');
+
+ await queryInterface.removeIndex(
+ 'publish_paranet_response',
+ 'publish_paranet_response_created_at_index',
+ );
+
+ await queryInterface.removeIndex('blockchain', 'contract_index');
+}
diff --git a/src/modules/repository/implementation/sequelize/migrations/20241125151200-rename-keyword-column-to-datasetroot-in-responses.js b/src/modules/repository/implementation/sequelize/migrations/20241125151200-rename-keyword-column-to-datasetroot-in-responses.js
new file mode 100644
index 0000000000..0ac4d26f1f
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20241125151200-rename-keyword-column-to-datasetroot-in-responses.js
@@ -0,0 +1,9 @@
+export async function up({ context: { queryInterface } }) {
+ await queryInterface.renameColumn('publish_response', 'keyword', 'dataset_root');
+ await queryInterface.renameColumn('get_response', 'keyword', 'dataset_root');
+}
+
+export async function down({ context: { queryInterface } }) {
+ await queryInterface.renameColumn('publish_response', 'dataset_root', 'keyword');
+ await queryInterface.renameColumn('get_response', 'dataset_root', 'keyword');
+}
diff --git a/src/modules/repository/implementation/sequelize/migrations/20241126114400-add-commands-priority.js b/src/modules/repository/implementation/sequelize/migrations/20241126114400-add-commands-priority.js
new file mode 100644
index 0000000000..09e969fb8c
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20241126114400-add-commands-priority.js
@@ -0,0 +1,9 @@
+export async function up({ context: { queryInterface, Sequelize } }) {
+ await queryInterface.addColumn('commands', 'priority', {
+ type: Sequelize.BIGINT,
+ });
+}
+
+export async function down({ context: { queryInterface } }) {
+ await queryInterface.removeColumn('commands', 'priority');
+}
diff --git a/src/modules/repository/implementation/sequelize/migrations/20241129120000-add-commands-is_blocking.js b/src/modules/repository/implementation/sequelize/migrations/20241129120000-add-commands-is_blocking.js
new file mode 100644
index 0000000000..16c78763b9
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20241129120000-add-commands-is_blocking.js
@@ -0,0 +1,9 @@
+export async function up({ context: { queryInterface, Sequelize } }) {
+ await queryInterface.addColumn('commands', 'is_blocking', {
+ type: Sequelize.BOOLEAN,
+ });
+}
+
+export async function down({ context: { queryInterface } }) {
+ await queryInterface.removeColumn('commands', 'is_blocking');
+}
diff --git a/src/modules/repository/implementation/sequelize/migrations/20241129125800-remove-datasetroot-response-table.js b/src/modules/repository/implementation/sequelize/migrations/20241129125800-remove-datasetroot-response-table.js
new file mode 100644
index 0000000000..d80ed68fa0
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20241129125800-remove-datasetroot-response-table.js
@@ -0,0 +1,15 @@
+export async function up({ context: { queryInterface } }) {
+ await queryInterface.removeColumn('publish_response', 'dataset_root');
+ await queryInterface.removeColumn('get_response', 'dataset_root');
+}
+
+export async function down({ context: { queryInterface, Sequelize } }) {
+ await queryInterface.addColumn('publish_response', 'dataset_root', {
+ type: Sequelize.STRING,
+ allowNull: false,
+ });
+ await queryInterface.addColumn('get_response', 'dataset_root', {
+ type: Sequelize.STRING,
+ allowNull: false,
+ });
+}
diff --git a/src/modules/repository/implementation/sequelize/migrations/20241201152000-update-blockchain-events.js b/src/modules/repository/implementation/sequelize/migrations/20241201152000-update-blockchain-events.js
new file mode 100644
index 0000000000..d4909d2cac
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20241201152000-update-blockchain-events.js
@@ -0,0 +1,37 @@
+export async function up({ context: { queryInterface, Sequelize } }) {
+ await queryInterface.renameColumn('blockchain_event', 'blockchain_id', 'blockchain');
+
+ await queryInterface.changeColumn('blockchain_event', 'block', {
+ type: Sequelize.BIGINT,
+ });
+
+ await queryInterface.renameColumn('blockchain_event', 'block', 'block_number');
+
+ await queryInterface.addColumn('blockchain_event', 'transaction_index', {
+ type: Sequelize.BIGINT,
+ });
+
+ await queryInterface.addColumn('blockchain_event', 'log_index', {
+ type: Sequelize.BIGINT,
+ });
+
+ await queryInterface.addColumn('blockchain_event', 'contract_address', {
+ type: Sequelize.STRING,
+ });
+}
+
+export async function down({ context: { queryInterface, Sequelize } }) {
+ await queryInterface.renameColumn('blockchain_event', 'block_number', 'block');
+
+ await queryInterface.changeColumn('blockchain_event', 'block', {
+ type: Sequelize.INTEGER,
+ });
+
+ await queryInterface.renameColumn('blockchain_event', 'blockchain', 'blockchain_id');
+
+ await queryInterface.removeColumn('blockchain_event', 'transaction_index');
+
+ await queryInterface.removeColumn('blockchain_event', 'log_index');
+
+ await queryInterface.removeColumn('blockchain_event', 'contract_address');
+}
diff --git a/src/modules/repository/implementation/sequelize/migrations/20241202214500-update-blockchain-table.js b/src/modules/repository/implementation/sequelize/migrations/20241202214500-update-blockchain-table.js
new file mode 100644
index 0000000000..ac2d1a5eb6
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20241202214500-update-blockchain-table.js
@@ -0,0 +1,37 @@
+export async function up({ context: { queryInterface } }) {
+ const tableInfo = await queryInterface.describeTable('blockchain');
+
+ if (tableInfo.blockchain_id) {
+ await queryInterface.renameColumn('blockchain', 'blockchain_id', 'blockchain');
+ }
+
+ await queryInterface.sequelize.query(`
+ DELETE t1
+ FROM blockchain t1
+ JOIN blockchain t2
+ ON t1.blockchain = t2.blockchain
+ AND (
+ t1.last_checked_block > t2.last_checked_block OR
+ (t1.last_checked_block = t2.last_checked_block AND t1.last_checked_timestamp > t2.last_checked_timestamp)
+ );
+ `);
+
+ await queryInterface.sequelize.query(`
+ ALTER TABLE blockchain DROP PRIMARY KEY, ADD PRIMARY KEY (blockchain);
+ `);
+
+ await queryInterface.removeColumn('blockchain', 'contract');
+}
+
+export async function down({ context: { queryInterface, Sequelize } }) {
+ await queryInterface.renameColumn('blockchain', 'blockchain', 'blockchain_id');
+
+ await queryInterface.addColumn('blockchain', 'contract', {
+ type: Sequelize.STRING,
+ allowNull: false,
+ });
+
+ await queryInterface.sequelize.query(`
+ ALTER TABLE blockchain DROP PRIMARY KEY, ADD PRIMARY KEY (blockchain_id, contract);
+ `);
+}
diff --git a/src/modules/repository/implementation/sequelize/migrations/20241203125000-create-finality.js b/src/modules/repository/implementation/sequelize/migrations/20241203125000-create-finality.js
new file mode 100644
index 0000000000..a75c168ea8
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20241203125000-create-finality.js
@@ -0,0 +1,30 @@
+export async function up({ context: { queryInterface, Sequelize } }) {
+ await queryInterface.createTable('finality', {
+ id: {
+ type: Sequelize.INTEGER,
+ primaryKey: true,
+ autoIncrement: true,
+ },
+ operation_id: {
+ type: Sequelize.UUID,
+ allowNull: false,
+ },
+ status: {
+ allowNull: false,
+ type: Sequelize.STRING,
+ },
+ created_at: {
+ allowNull: false,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ updated_at: {
+ allowNull: false,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ });
+}
+export async function down({ context: { queryInterface } }) {
+ await queryInterface.dropTable('finality');
+}
diff --git a/src/modules/repository/implementation/sequelize/migrations/20241203125001-create-finality-response.js b/src/modules/repository/implementation/sequelize/migrations/20241203125001-create-finality-response.js
new file mode 100644
index 0000000000..dcd973bbbf
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20241203125001-create-finality-response.js
@@ -0,0 +1,34 @@
+export async function up({ context: { queryInterface, Sequelize } }) {
+ await queryInterface.createTable('finality_response', {
+ id: {
+ type: Sequelize.INTEGER,
+ primaryKey: true,
+ autoIncrement: true,
+ },
+ operation_id: {
+ type: Sequelize.UUID,
+ allowNull: false,
+ },
+ status: {
+ allowNull: false,
+ type: Sequelize.STRING,
+ },
+ message: {
+ allowNull: true,
+ type: Sequelize.TEXT,
+ },
+ created_at: {
+ allowNull: false,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ updated_at: {
+ allowNull: false,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ });
+}
+export async function down({ context: { queryInterface } }) {
+ await queryInterface.dropTable('finality_response');
+}
diff --git a/src/modules/repository/implementation/sequelize/migrations/20241211204400-rename-ask.js b/src/modules/repository/implementation/sequelize/migrations/20241211204400-rename-ask.js
new file mode 100644
index 0000000000..954f87a84b
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20241211204400-rename-ask.js
@@ -0,0 +1,9 @@
+export async function up({ context: { queryInterface } }) {
+ await queryInterface.renameTable('finality', 'ask');
+ await queryInterface.renameTable('finality_response', 'ask_response');
+}
+
+export async function down({ context: { queryInterface } }) {
+ await queryInterface.renameTable('ask', 'finality');
+ await queryInterface.renameTable('ask_response', 'finality_response');
+}
diff --git a/src/modules/repository/implementation/sequelize/migrations/20241211205400-create-finality-response.js b/src/modules/repository/implementation/sequelize/migrations/20241211205400-create-finality-response.js
new file mode 100644
index 0000000000..dcd973bbbf
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20241211205400-create-finality-response.js
@@ -0,0 +1,34 @@
+export async function up({ context: { queryInterface, Sequelize } }) {
+ await queryInterface.createTable('finality_response', {
+ id: {
+ type: Sequelize.INTEGER,
+ primaryKey: true,
+ autoIncrement: true,
+ },
+ operation_id: {
+ type: Sequelize.UUID,
+ allowNull: false,
+ },
+ status: {
+ allowNull: false,
+ type: Sequelize.STRING,
+ },
+ message: {
+ allowNull: true,
+ type: Sequelize.TEXT,
+ },
+ created_at: {
+ allowNull: false,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ updated_at: {
+ allowNull: false,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ });
+}
+export async function down({ context: { queryInterface } }) {
+ await queryInterface.dropTable('finality_response');
+}
diff --git a/src/modules/repository/implementation/sequelize/migrations/20241211205400-create-finality-status.js b/src/modules/repository/implementation/sequelize/migrations/20241211205400-create-finality-status.js
new file mode 100644
index 0000000000..324e1c0179
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20241211205400-create-finality-status.js
@@ -0,0 +1,37 @@
+export async function up({ context: { queryInterface, Sequelize } }) {
+ await queryInterface.createTable('finality_status', {
+ id: {
+ type: Sequelize.INTEGER,
+ primaryKey: true,
+ autoIncrement: true,
+ },
+ operation_id: {
+ type: Sequelize.STRING,
+ allowNull: false,
+ },
+ ual: {
+ type: Sequelize.STRING,
+ },
+ peer_id: {
+ type: Sequelize.STRING,
+ },
+ created_at: {
+ allowNull: false,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ updated_at: {
+ allowNull: false,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ });
+ await queryInterface.addConstraint('finality_status', {
+ fields: ['ual', 'peer_id'],
+ type: 'unique',
+ });
+}
+
+export async function down({ context: { queryInterface } }) {
+ await queryInterface.dropTable('finality_status');
+}
diff --git a/src/modules/repository/implementation/sequelize/migrations/20241211205400-create-finality.js b/src/modules/repository/implementation/sequelize/migrations/20241211205400-create-finality.js
new file mode 100644
index 0000000000..a75c168ea8
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20241211205400-create-finality.js
@@ -0,0 +1,30 @@
+export async function up({ context: { queryInterface, Sequelize } }) {
+ await queryInterface.createTable('finality', {
+ id: {
+ type: Sequelize.INTEGER,
+ primaryKey: true,
+ autoIncrement: true,
+ },
+ operation_id: {
+ type: Sequelize.UUID,
+ allowNull: false,
+ },
+ status: {
+ allowNull: false,
+ type: Sequelize.STRING,
+ },
+ created_at: {
+ allowNull: false,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ updated_at: {
+ allowNull: false,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ });
+}
+export async function down({ context: { queryInterface } }) {
+ await queryInterface.dropTable('finality');
+}
diff --git a/src/modules/repository/implementation/sequelize/migrations/20241212122200-add-min-acks-reached-column.js b/src/modules/repository/implementation/sequelize/migrations/20241212122200-add-min-acks-reached-column.js
new file mode 100644
index 0000000000..dbca86ceeb
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20241212122200-add-min-acks-reached-column.js
@@ -0,0 +1,9 @@
+export async function up({ context: { queryInterface, Sequelize } }) {
+ await queryInterface.addColumn('operation_ids', 'min_acks_reached', {
+ type: Sequelize.BOOLEAN,
+ });
+}
+
+export async function down({ context: { queryInterface } }) {
+ await queryInterface.removeColumn('operation_ids', 'min_acks_reached');
+}
diff --git a/src/modules/repository/implementation/sequelize/models/ask-response.js b/src/modules/repository/implementation/sequelize/models/ask-response.js
new file mode 100644
index 0000000000..21f0959403
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/models/ask-response.js
@@ -0,0 +1,22 @@
+export default (sequelize, DataTypes) => {
+ const askResponse = sequelize.define(
+ 'ask_response',
+ {
+ id: {
+ type: DataTypes.INTEGER,
+ primaryKey: true,
+ autoIncrement: true,
+ },
+ operationId: DataTypes.UUID,
+ status: DataTypes.STRING,
+ message: DataTypes.TEXT,
+ createdAt: DataTypes.DATE,
+ updatedAt: DataTypes.DATE,
+ },
+ { underscored: true },
+ );
+ askResponse.associate = () => {
+ // associations can be defined here
+ };
+ return askResponse;
+};
diff --git a/src/modules/repository/implementation/sequelize/models/ask.js b/src/modules/repository/implementation/sequelize/models/ask.js
new file mode 100644
index 0000000000..4636161cd6
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/models/ask.js
@@ -0,0 +1,21 @@
+export default (sequelize, DataTypes) => {
+ const ask = sequelize.define(
+ 'ask',
+ {
+ id: {
+ type: DataTypes.INTEGER,
+ primaryKey: true,
+ autoIncrement: true,
+ },
+ operationId: DataTypes.UUID,
+ status: DataTypes.STRING,
+ createdAt: DataTypes.DATE,
+ updatedAt: DataTypes.DATE,
+ },
+ { underscored: true },
+ );
+ ask.associate = () => {
+ // associations can be defined here
+ };
+ return ask;
+};
diff --git a/src/modules/repository/implementation/sequelize/models/blockchain-event.js b/src/modules/repository/implementation/sequelize/models/blockchain-event.js
index b15537849f..40ba9cb1f6 100644
--- a/src/modules/repository/implementation/sequelize/models/blockchain-event.js
+++ b/src/modules/repository/implementation/sequelize/models/blockchain-event.js
@@ -8,10 +8,13 @@ export default (sequelize, DataTypes) => {
autoIncrement: true,
},
contract: DataTypes.STRING,
- blockchainId: DataTypes.STRING,
+ contractAddress: DataTypes.STRING,
+ blockchain: DataTypes.STRING,
event: DataTypes.STRING,
data: DataTypes.TEXT,
- block: DataTypes.INTEGER,
+ blockNumber: DataTypes.BIGINT,
+ transactionIndex: DataTypes.BIGINT,
+ logIndex: DataTypes.BIGINT,
processed: DataTypes.BOOLEAN,
createdAt: DataTypes.DATE,
updatedAt: DataTypes.DATE,
diff --git a/src/modules/repository/implementation/sequelize/models/blockchain.js b/src/modules/repository/implementation/sequelize/models/blockchain.js
index 6bb7977805..0c2807965e 100644
--- a/src/modules/repository/implementation/sequelize/models/blockchain.js
+++ b/src/modules/repository/implementation/sequelize/models/blockchain.js
@@ -2,11 +2,7 @@ export default (sequelize, DataTypes) => {
const blockchain = sequelize.define(
'blockchain',
{
- blockchainId: {
- type: DataTypes.STRING,
- primaryKey: true,
- },
- contract: {
+ blockchain: {
type: DataTypes.STRING,
primaryKey: true,
},
diff --git a/src/modules/repository/implementation/sequelize/models/commands.js b/src/modules/repository/implementation/sequelize/models/commands.js
index dde59ba7f0..a0396d6d6d 100644
--- a/src/modules/repository/implementation/sequelize/models/commands.js
+++ b/src/modules/repository/implementation/sequelize/models/commands.js
@@ -17,12 +17,14 @@ export default (sequelize, DataTypes) => {
},
name: DataTypes.STRING,
data: DataTypes.JSON,
+ priority: DataTypes.BIGINT,
+ isBlocking: DataTypes.BOOLEAN,
sequence: DataTypes.JSON,
readyAt: DataTypes.BIGINT,
delay: DataTypes.BIGINT,
startedAt: DataTypes.BIGINT,
deadlineAt: DataTypes.BIGINT,
- period: DataTypes.INTEGER,
+ period: DataTypes.BIGINT,
status: DataTypes.STRING,
message: DataTypes.TEXT,
parentId: DataTypes.UUID,
diff --git a/src/modules/repository/implementation/sequelize/models/finality-response.js b/src/modules/repository/implementation/sequelize/models/finality-response.js
new file mode 100644
index 0000000000..c377107691
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/models/finality-response.js
@@ -0,0 +1,22 @@
+export default (sequelize, DataTypes) => {
+ const finalityResponse = sequelize.define(
+ 'finality_response',
+ {
+ id: {
+ type: DataTypes.INTEGER,
+ primaryKey: true,
+ autoIncrement: true,
+ },
+ operationId: DataTypes.UUID,
+ status: DataTypes.STRING,
+ message: DataTypes.TEXT,
+ createdAt: DataTypes.DATE,
+ updatedAt: DataTypes.DATE,
+ },
+ { underscored: true },
+ );
+ finalityResponse.associate = () => {
+ // associations can be defined here
+ };
+ return finalityResponse;
+};
diff --git a/src/modules/repository/implementation/sequelize/models/finality-status.js b/src/modules/repository/implementation/sequelize/models/finality-status.js
new file mode 100644
index 0000000000..41cbe2b3c5
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/models/finality-status.js
@@ -0,0 +1,22 @@
+export default (sequelize, DataTypes) => {
+ const finalityStatus = sequelize.define(
+ 'finality_status',
+ {
+ id: {
+ type: DataTypes.INTEGER,
+ primaryKey: true,
+ autoIncrement: true,
+ },
+ operationId: DataTypes.STRING,
+ ual: DataTypes.STRING,
+ peerId: DataTypes.STRING,
+ createdAt: DataTypes.DATE,
+ updatedAt: DataTypes.DATE,
+ },
+ { underscored: true },
+ );
+ finalityStatus.associate = () => {
+ // associations can be defined here
+ };
+ return finalityStatus;
+};
diff --git a/src/modules/repository/implementation/sequelize/models/finality.js b/src/modules/repository/implementation/sequelize/models/finality.js
new file mode 100644
index 0000000000..1ee1d3cf47
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/models/finality.js
@@ -0,0 +1,21 @@
+export default (sequelize, DataTypes) => {
+ const finality = sequelize.define(
+ 'finality',
+ {
+ id: {
+ type: DataTypes.INTEGER,
+ primaryKey: true,
+ autoIncrement: true,
+ },
+ operationId: DataTypes.UUID,
+ status: DataTypes.STRING,
+ createdAt: DataTypes.DATE,
+ updatedAt: DataTypes.DATE,
+ },
+ { underscored: true },
+ );
+ finality.associate = () => {
+ // associations can be defined here
+ };
+ return finality;
+};
diff --git a/src/modules/repository/implementation/sequelize/models/get-response.js b/src/modules/repository/implementation/sequelize/models/get-response.js
index 201873eb81..5c529b81ae 100644
--- a/src/modules/repository/implementation/sequelize/models/get-response.js
+++ b/src/modules/repository/implementation/sequelize/models/get-response.js
@@ -8,7 +8,6 @@ export default (sequelize, DataTypes) => {
autoIncrement: true,
},
operationId: DataTypes.UUID,
- keyword: DataTypes.STRING,
status: DataTypes.STRING,
message: DataTypes.TEXT,
createdAt: DataTypes.DATE,
diff --git a/src/modules/repository/implementation/sequelize/models/missed-paranet-asset.js b/src/modules/repository/implementation/sequelize/models/missed-paranet-asset.js
index 0fb068266b..c7788955df 100644
--- a/src/modules/repository/implementation/sequelize/models/missed-paranet-asset.js
+++ b/src/modules/repository/implementation/sequelize/models/missed-paranet-asset.js
@@ -19,9 +19,9 @@ export default (sequelize, DataTypes) => {
allowNull: false,
type: DataTypes.STRING,
},
- knowledgeAssetId: {
- allowNull: false,
- type: DataTypes.STRING,
+ errorMessage: {
+ allowNull: true,
+ type: DataTypes.TEXT,
},
createdAt: {
type: DataTypes.DATE,
diff --git a/src/modules/repository/implementation/sequelize/models/operation_ids.js b/src/modules/repository/implementation/sequelize/models/operation_ids.js
index f26d85f5db..17fd08ac4d 100644
--- a/src/modules/repository/implementation/sequelize/models/operation_ids.js
+++ b/src/modules/repository/implementation/sequelize/models/operation_ids.js
@@ -11,6 +11,7 @@ export default (sequelize, DataTypes) => {
},
data: DataTypes.TEXT,
status: DataTypes.STRING,
+ minAcksReached: DataTypes.BOOLEAN,
timestamp: {
type: DataTypes.BIGINT,
defaultValue: () => Date.now(),
diff --git a/src/modules/repository/implementation/sequelize/models/paranet-synced-asset.js b/src/modules/repository/implementation/sequelize/models/paranet-synced-asset.js
new file mode 100644
index 0000000000..97eb6c0a90
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/models/paranet-synced-asset.js
@@ -0,0 +1,57 @@
+import { PARANET_SYNC_SOURCES } from '../../../../../constants/constants.js';
+
+export default (sequelize, DataTypes) => {
+ const blockchain = sequelize.define(
+ 'paranet_synced_asset',
+ {
+ id: {
+ autoIncrement: true,
+ primaryKey: true,
+ type: DataTypes.INTEGER,
+ },
+ blockchainId: {
+ allowNull: false,
+ type: DataTypes.STRING,
+ },
+ ual: {
+ allowNull: false,
+ type: DataTypes.STRING,
+ },
+ paranetUal: {
+ allowNull: false,
+ type: DataTypes.STRING,
+ },
+ publicAssertionId: {
+ allowNull: true,
+ type: DataTypes.STRING,
+ },
+ privateAssertionId: {
+ allowNull: true,
+ type: DataTypes.STRING,
+ },
+ sender: {
+ allowNull: true,
+ type: DataTypes.STRING,
+ },
+ transactionHash: {
+ allowNull: true,
+ type: DataTypes.STRING,
+ },
+ dataSource: {
+ allowNull: true,
+ type: DataTypes.ENUM(...Object.values(PARANET_SYNC_SOURCES)),
+ },
+ createdAt: {
+ type: DataTypes.DATE,
+ },
+ updatedAt: {
+ type: DataTypes.DATE,
+ },
+ },
+ { underscored: true },
+ );
+ blockchain.associate = () => {
+ // associations can be defined here
+ };
+ return blockchain;
+};
diff --git a/src/modules/repository/implementation/sequelize/models/publish-paranet-response.js b/src/modules/repository/implementation/sequelize/models/publish-paranet-response.js
new file mode 100644
index 0000000000..3bce635f3b
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/models/publish-paranet-response.js
@@ -0,0 +1,22 @@
+export default (sequelize, DataTypes) => {
+ const publishParanetResponse = sequelize.define(
+ 'publish_paranet_response',
+ {
+ id: {
+ type: DataTypes.INTEGER,
+ primaryKey: true,
+ autoIncrement: true,
+ },
+ operationId: DataTypes.UUID,
+ status: DataTypes.STRING,
+ message: DataTypes.TEXT,
+ createdAt: DataTypes.DATE,
+ updatedAt: DataTypes.DATE,
+ },
+ { underscored: true },
+ );
+ publishParanetResponse.associate = () => {
+ // associations can be defined here
+ };
+ return publishParanetResponse;
+};
diff --git a/src/modules/repository/implementation/sequelize/models/publish-paranet.js b/src/modules/repository/implementation/sequelize/models/publish-paranet.js
new file mode 100644
index 0000000000..3019377398
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/models/publish-paranet.js
@@ -0,0 +1,21 @@
+export default (sequelize, DataTypes) => {
+ const publishParanet = sequelize.define(
+ 'publish_paranet',
+ {
+ id: {
+ type: DataTypes.INTEGER,
+ primaryKey: true,
+ autoIncrement: true,
+ },
+ operationId: DataTypes.UUID,
+ status: DataTypes.STRING,
+ createdAt: DataTypes.DATE,
+ updatedAt: DataTypes.DATE,
+ },
+ { underscored: true },
+ );
+ publishParanet.associate = () => {
+ // associations can be defined here
+ };
+ return publishParanet;
+};
diff --git a/src/modules/repository/implementation/sequelize/models/publish-response.js b/src/modules/repository/implementation/sequelize/models/publish-response.js
index f9b44bc5e8..ccc932b850 100644
--- a/src/modules/repository/implementation/sequelize/models/publish-response.js
+++ b/src/modules/repository/implementation/sequelize/models/publish-response.js
@@ -8,7 +8,6 @@ export default (sequelize, DataTypes) => {
autoIncrement: true,
},
operationId: DataTypes.UUID,
- keyword: DataTypes.STRING,
status: DataTypes.STRING,
message: DataTypes.TEXT,
createdAt: DataTypes.DATE,
diff --git a/src/modules/repository/implementation/sequelize/models/service-agreement.js b/src/modules/repository/implementation/sequelize/models/service-agreement.js
deleted file mode 100644
index b00bb300fd..0000000000
--- a/src/modules/repository/implementation/sequelize/models/service-agreement.js
+++ /dev/null
@@ -1,75 +0,0 @@
-import { SERVICE_AGREEMENT_SOURCES } from '../../../../../constants/constants.js';
-
-export default (sequelize, DataTypes) => {
- const serviceAgreement = sequelize.define(
- 'service_agreement',
- {
- blockchainId: {
- type: DataTypes.STRING,
- allowNull: false,
- },
- assetStorageContractAddress: {
- type: DataTypes.STRING(42),
- allowNull: false,
- },
- tokenId: {
- type: DataTypes.INTEGER.UNSIGNED,
- allowNull: false,
- },
- agreementId: {
- type: DataTypes.STRING,
- primaryKey: true,
- },
- startTime: {
- type: DataTypes.INTEGER.UNSIGNED,
- allowNull: false,
- },
- epochsNumber: {
- type: DataTypes.SMALLINT.UNSIGNED,
- allowNull: false,
- },
- epochLength: {
- type: DataTypes.INTEGER.UNSIGNED,
- allowNull: false,
- },
- scoreFunctionId: {
- type: DataTypes.TINYINT.UNSIGNED,
- allowNull: false,
- },
- stateIndex: {
- type: DataTypes.SMALLINT.UNSIGNED,
- allowNull: false,
- },
- assertionId: {
- type: DataTypes.STRING,
- allowNull: false,
- },
- hashFunctionId: {
- type: DataTypes.TINYINT.UNSIGNED,
- allowNull: false,
- },
- keyword: {
- type: DataTypes.STRING,
- allowNull: false,
- },
- proofWindowOffsetPerc: {
- type: DataTypes.TINYINT.UNSIGNED,
- allowNull: false,
- },
- dataSource: {
- type: DataTypes.ENUM(...Object.values(SERVICE_AGREEMENT_SOURCES)),
- },
- lastCommitEpoch: {
- type: DataTypes.SMALLINT.UNSIGNED,
- },
- lastProofEpoch: {
- type: DataTypes.SMALLINT.UNSIGNED,
- },
- },
- { underscored: true },
- );
- serviceAgreement.associate = () => {
- // associations can be defined here
- };
- return serviceAgreement;
-};
diff --git a/src/modules/repository/implementation/sequelize/models/update-response.js b/src/modules/repository/implementation/sequelize/models/update-response.js
index 40c6143c87..429f77e31b 100644
--- a/src/modules/repository/implementation/sequelize/models/update-response.js
+++ b/src/modules/repository/implementation/sequelize/models/update-response.js
@@ -8,7 +8,6 @@ export default (sequelize, DataTypes) => {
autoIncrement: true,
},
operationId: DataTypes.UUID,
- keyword: DataTypes.STRING,
status: DataTypes.STRING,
message: DataTypes.TEXT,
createdAt: DataTypes.DATE,
diff --git a/src/modules/repository/implementation/sequelize/repositories/blockchain-event-repository.js b/src/modules/repository/implementation/sequelize/repositories/blockchain-event-repository.js
index 92f4edf035..4bde67a877 100644
--- a/src/modules/repository/implementation/sequelize/repositories/blockchain-event-repository.js
+++ b/src/modules/repository/implementation/sequelize/repositories/blockchain-event-repository.js
@@ -6,7 +6,7 @@ class BlockchainEventRepository {
this.model = models.blockchain_event;
}
- async insertBlockchainEvents(events) {
+ async insertBlockchainEvents(events, options) {
const chunkSize = 10000;
let insertedEvents = [];
@@ -15,15 +15,19 @@ class BlockchainEventRepository {
// eslint-disable-next-line no-await-in-loop
const insertedChunk = await this.model.bulkCreate(
chunk.map((event) => ({
+ blockchain: event.blockchain,
contract: event.contract,
+ contractAddress: event.contractAddress,
event: event.event,
data: event.data,
- block: event.block,
- blockchainId: event.blockchainId,
+ blockNumber: event.blockNumber,
+ transactionIndex: event.transactionIndex,
+ logIndex: event.logIndex,
processed: false,
})),
{
ignoreDuplicates: true,
+ ...options,
},
);
@@ -33,49 +37,69 @@ class BlockchainEventRepository {
return insertedEvents;
}
- async getAllUnprocessedBlockchainEvents(eventNames, blockchainId) {
+ async getAllUnprocessedBlockchainEvents(blockchain, eventNames, options) {
return this.model.findAll({
where: {
- blockchainId,
+ blockchain,
processed: false,
event: { [Sequelize.Op.in]: eventNames },
},
- order: [['block', 'asc']],
+ order: [
+ ['blockNumber', 'asc'],
+ ['transactionIndex', 'asc'],
+ ['logIndex', 'asc'],
+ ],
+ ...options,
});
}
- async blockchainEventExists(contract, event, data, block, blockchainId) {
- const dbEvent = await this.model.findOne({
- where: {
- contract,
- event,
- data,
- block,
- blockchainId,
- },
- });
- return !!dbEvent;
- }
-
- async markBlockchainEventsAsProcessed(events) {
- const idsForUpdate = events.flatMap((event) => event.id);
+ async markAllBlockchainEventsAsProcessed(blockchain, options) {
return this.model.update(
{ processed: true },
{
- where: { id: { [Sequelize.Op.in]: idsForUpdate } },
+ where: { blockchain },
+ ...options,
},
);
}
- async removeEvents(ids) {
+ async removeEvents(ids, options) {
await this.model.destroy({
where: {
id: { [Sequelize.Op.in]: ids },
},
+ ...options,
+ });
+ }
+
+ async removeContractEventsAfterBlock(
+ blockchain,
+ contract,
+ contractAddress,
+ blockNumber,
+ transactionIndex,
+ options,
+ ) {
+ return this.model.destroy({
+ where: {
+ blockchain,
+ contract,
+ contractAddress,
+ [Sequelize.Op.or]: [
+ // Events in blocks after the given blockNumber
+ { blockNumber: { [Sequelize.Op.gt]: blockNumber } },
+ // Events in the same blockNumber but with a higher transactionIndex
+ {
+ blockNumber,
+ transactionIndex: { [Sequelize.Op.gt]: transactionIndex },
+ },
+ ],
+ },
+ ...options,
});
}
- async findProcessedEvents(timestamp, limit) {
+ async findProcessedEvents(timestamp, limit, options) {
return this.model.findAll({
where: {
processed: true,
@@ -84,6 +108,7 @@ class BlockchainEventRepository {
order: [['createdAt', 'asc']],
raw: true,
limit,
+ ...options,
});
}
}
diff --git a/src/modules/repository/implementation/sequelize/repositories/blockchain-repository.js b/src/modules/repository/implementation/sequelize/repositories/blockchain-repository.js
index 8d16e18026..baba9ccc3c 100644
--- a/src/modules/repository/implementation/sequelize/repositories/blockchain-repository.js
+++ b/src/modules/repository/implementation/sequelize/repositories/blockchain-repository.js
@@ -4,27 +4,22 @@ class BlockchainRepository {
this.model = models.blockchain;
}
- async getLastCheckedBlock(blockchainId, contract) {
+ async getLastCheckedBlock(blockchain, options) {
return this.model.findOne({
- where: { blockchainId, contract },
+ where: { blockchain },
+ ...options,
});
}
- async removeLastCheckedBlockForContract(contract) {
- return this.model.destroy({
- where: {
- contract,
+ async updateLastCheckedBlock(blockchain, currentBlock, timestamp, options) {
+ return this.model.upsert(
+ {
+ blockchain,
+ lastCheckedBlock: currentBlock,
+ lastCheckedTimestamp: timestamp,
},
- });
- }
-
- async updateLastCheckedBlock(blockchainId, currentBlock, timestamp, contract) {
- return this.model.upsert({
- blockchainId,
- contract,
- lastCheckedBlock: currentBlock,
- lastCheckedTimestamp: timestamp,
- });
+ options,
+ );
}
}
diff --git a/src/modules/repository/implementation/sequelize/repositories/command-repository.js b/src/modules/repository/implementation/sequelize/repositories/command-repository.js
index 44c08b6bed..a789069822 100644
--- a/src/modules/repository/implementation/sequelize/repositories/command-repository.js
+++ b/src/modules/repository/implementation/sequelize/repositories/command-repository.js
@@ -7,23 +7,24 @@ class CommandRepository {
this.model = models.commands;
}
- async updateCommand(update, opts) {
- await this.model.update(update, opts);
+ async updateCommand(update, options) {
+ await this.model.update(update, options);
}
- async destroyCommand(name) {
+ async destroyCommand(name, options) {
await this.model.destroy({
where: {
name: { [Sequelize.Op.eq]: name },
},
+ ...options,
});
}
- async createCommand(command, opts) {
- return this.model.create(command, opts);
+ async createCommand(command, options) {
+ return this.model.create(command, options);
}
- async getCommandsWithStatus(statusArray, excludeNameArray) {
+ async getCommandsWithStatus(statusArray, excludeNameArray, options) {
return this.model.findAll({
where: {
status: {
@@ -31,26 +32,29 @@ class CommandRepository {
},
name: { [Sequelize.Op.notIn]: excludeNameArray },
},
+ ...options,
});
}
- async getCommandWithId(id) {
+ async getCommandWithId(id, options) {
return this.model.findOne({
where: {
id,
},
+ ...options,
});
}
- async removeCommands(ids) {
+ async removeCommands(ids, options) {
await this.model.destroy({
where: {
id: { [Sequelize.Op.in]: ids },
},
+ ...options,
});
}
- async findFinalizedCommands(timestamp, limit) {
+ async findFinalizedCommands(timestamp, limit, options) {
return this.model.findAll({
where: {
status: {
@@ -66,6 +70,25 @@ class CommandRepository {
order: [['startedAt', 'asc']],
raw: true,
limit,
+ ...options,
+ });
+ }
+
+ async findUnfinalizedCommandsByName(name, options) {
+ return this.model.findAll({
+ where: {
+ name,
+ status: {
+ [Sequelize.Op.notIn]: [
+ COMMAND_STATUS.COMPLETED,
+ COMMAND_STATUS.FAILED,
+ COMMAND_STATUS.EXPIRED,
+ COMMAND_STATUS.UNKNOWN,
+ ],
+ },
+ },
+ raw: true,
+ ...options,
});
}
}
diff --git a/src/modules/repository/implementation/sequelize/repositories/event-repository.js b/src/modules/repository/implementation/sequelize/repositories/event-repository.js
index 276f83ce52..d4f3eae9e9 100644
--- a/src/modules/repository/implementation/sequelize/repositories/event-repository.js
+++ b/src/modules/repository/implementation/sequelize/repositories/event-repository.js
@@ -11,19 +11,31 @@ class EventRepository {
this.model = models.event;
}
- async createEventRecord(operationId, blockchainId, name, timestamp, value1, value2, value3) {
- return this.model.create({
- operationId,
- blockchainId,
- name,
- timestamp,
- value1,
- value2,
- value3,
- });
+ async createEventRecord(
+ operationId,
+ blockchainId,
+ name,
+ timestamp,
+ value1,
+ value2,
+ value3,
+ options,
+ ) {
+ return this.model.create(
+ {
+ operationId,
+ blockchainId,
+ name,
+ timestamp,
+ value1,
+ value2,
+ value3,
+ },
+ options,
+ );
}
- async getUnpublishedEvents() {
+ async getUnpublishedEvents(options) {
// events without COMPLETE/FAILED status which are older than 30min
// are also considered finished
const minutes = 5;
@@ -53,6 +65,7 @@ class EventRepository {
limit:
Math.floor(HIGH_TRAFFIC_OPERATIONS_NUMBER_PER_HOUR / 60) *
SEND_TELEMETRY_COMMAND_FREQUENCY_MINUTES,
+ ...options,
});
operationIds = operationIds.map((e) => e.operation_id);
@@ -63,16 +76,18 @@ class EventRepository {
[Sequelize.Op.in]: operationIds,
},
},
+ ...options,
});
}
- async destroyEvents(ids) {
+ async destroyEvents(ids, options) {
await this.model.destroy({
where: {
id: {
[Sequelize.Op.in]: ids,
},
},
+ ...options,
});
}
}
diff --git a/src/modules/repository/implementation/sequelize/repositories/finality-status-repository.js b/src/modules/repository/implementation/sequelize/repositories/finality-status-repository.js
new file mode 100644
index 0000000000..53e10639d1
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/repositories/finality-status-repository.js
@@ -0,0 +1,19 @@
+class FinalityStatusRepository {
+ constructor(models) {
+ this.sequelize = models.sequelize;
+ this.model = models.finality_status;
+ }
+
+ async getFinalityAcksCount(ual, options) {
+ return this.model.count({
+ where: { ual },
+ ...options,
+ });
+ }
+
+ async saveFinalityAck(operationId, ual, peerId, options) {
+ return this.model.upsert({ operationId, ual, peerId }, options);
+ }
+}
+
+export default FinalityStatusRepository;
diff --git a/src/modules/repository/implementation/sequelize/repositories/missed-paranet-asset-repository.js b/src/modules/repository/implementation/sequelize/repositories/missed-paranet-asset-repository.js
index 30484391ec..cd9a0c8eb0 100644
--- a/src/modules/repository/implementation/sequelize/repositories/missed-paranet-asset-repository.js
+++ b/src/modules/repository/implementation/sequelize/repositories/missed-paranet-asset-repository.js
@@ -1,41 +1,112 @@
+import Sequelize from 'sequelize';
+
class MissedParanetAssetRepository {
constructor(models) {
this.sequelize = models.sequelize;
this.model = models.missed_paranet_asset;
}
- async createMissedParanetAssetRecord(missedParanetAsset) {
- return this.model.create(missedParanetAsset);
+ async createMissedParanetAssetRecord(missedParanetAsset, options) {
+ return this.model.create(missedParanetAsset, options);
}
- async getMissedParanetAssetsRecords(paranetUal, count = null) {
+ async getMissedParanetAssetsRecordsWithRetryCount(
+ paranetUal,
+ retryCountLimit,
+ retryDelayInMs,
+ limit,
+ options,
+ ) {
+ const now = new Date();
+ const delayDate = new Date(now.getTime() - retryDelayInMs);
+
const queryOptions = {
+ attributes: [
+ 'blockchainId',
+ 'ual',
+ 'paranetUal',
+ [Sequelize.fn('MAX', Sequelize.col('created_at')), 'latestCreatedAt'],
+ [Sequelize.fn('COUNT', Sequelize.col('ual')), 'retryCount'],
+ ],
where: {
paranetUal,
},
+ group: ['ual', 'blockchainId', 'paranetUal'],
+ having: Sequelize.and(
+ Sequelize.literal(`COUNT(ual) < ${retryCountLimit}`),
+ Sequelize.literal(`MAX(created_at) <= '${delayDate.toISOString()}'`),
+ ),
+ ...options,
};
- if (count !== null) {
- queryOptions.limit = count;
+ if (limit !== null) {
+ queryOptions.limit = limit;
}
return this.model.findAll(queryOptions);
}
- async removeMissedParanetAssetRecord(ual) {
+ async missedParanetAssetRecordExists(ual, options) {
+ const missedParanetAssetRecord = await this.model.findOne({
+ where: { ual },
+ ...options,
+ });
+
+ return !!missedParanetAssetRecord;
+ }
+
+ async removeMissedParanetAssetRecordsByUAL(ual, options) {
await this.model.destroy({
where: {
ual,
},
+ ...options,
+ });
+ }
+
+ async getCountOfMissedAssetsOfParanet(paranetUal, options) {
+ const records = await this.model.findAll({
+ attributes: ['paranet_ual', 'ual'],
+ where: {
+ paranetUal,
+ },
+ group: ['paranet_ual', 'ual'],
+ ...options,
});
+
+ return records.length;
}
- async getCountOfMissedAssetsOfParanet(paranetUal) {
- return this.model.count({
+ async getFilteredCountOfMissedAssetsOfParanet(
+ paranetUal,
+ retryCountLimit,
+ retryDelayInMs,
+ options,
+ ) {
+ const now = new Date();
+ const delayDate = new Date(now.getTime() - retryDelayInMs);
+
+ const records = await this.model.findAll({
+ attributes: [
+ [Sequelize.fn('MAX', Sequelize.col('created_at')), 'latestCreatedAt'],
+ [Sequelize.fn('COUNT', Sequelize.col('ual')), 'retryCount'],
+ ],
where: {
paranetUal,
},
+ group: ['paranet_ual', 'ual'],
+ having: {
+ retryCount: {
+ [Sequelize.Op.lt]: retryCountLimit,
+ },
+ latestCreatedAt: {
+ [Sequelize.Op.lte]: delayDate,
+ },
+ },
+ ...options,
});
+
+ return records.length;
}
}
diff --git a/src/modules/repository/implementation/sequelize/repositories/operation-id-repository.js b/src/modules/repository/implementation/sequelize/repositories/operation-id-repository.js
index 9d85d2da79..cc46114c3a 100644
--- a/src/modules/repository/implementation/sequelize/repositories/operation-id-repository.js
+++ b/src/modules/repository/implementation/sequelize/repositories/operation-id-repository.js
@@ -6,34 +6,49 @@ class OperationIdRepository {
this.model = models.operation_ids;
}
- async createOperationIdRecord(handlerData) {
- return this.model.create(handlerData);
+ async createOperationIdRecord(handlerData, options) {
+ return this.model.create(handlerData, options);
}
- async getOperationIdRecord(operationId) {
+ async getOperationIdRecord(operationId, options) {
return this.model.findOne({
where: {
operationId,
},
+ ...options,
});
}
- async updateOperationIdRecord(data, operationId) {
+ async updateOperationIdRecord(data, operationId, options) {
await this.model.update(data, {
where: {
operationId,
},
+ ...options,
});
}
- async removeOperationIdRecord(timeToBeDeleted, statuses) {
+ async removeOperationIdRecord(timeToBeDeleted, statuses, options) {
await this.model.destroy({
where: {
timestamp: { [Sequelize.Op.lt]: timeToBeDeleted },
status: { [Sequelize.Op.in]: statuses },
},
+ ...options,
});
}
+
+ async updateMinAcksReached(operationId, minAcksReached, options) {
+ await this.model.update(
+ { minAcksReached },
+ {
+ where: {
+ operationId,
+ },
+ ...options,
+ },
+ );
+ }
}
export default OperationIdRepository;
diff --git a/src/modules/repository/implementation/sequelize/repositories/operation-repository.js b/src/modules/repository/implementation/sequelize/repositories/operation-repository.js
index e0634aaccb..a1e6cd37c6 100644
--- a/src/modules/repository/implementation/sequelize/repositories/operation-repository.js
+++ b/src/modules/repository/implementation/sequelize/repositories/operation-repository.js
@@ -3,51 +3,70 @@ import { Sequelize } from 'sequelize';
class OperationRepository {
constructor(models) {
this.sequelize = models.sequelize;
- this.models = { get: models.get, publish: models.publish, update: models.update };
+ this.models = {
+ get: models.get,
+ publish: models.publish,
+ update: models.update,
+ publish_paranet: models.publish_paranet,
+ ask: models.ask,
+ finality: models.finality,
+ };
}
- async createOperationRecord(operation, operationId, status) {
- return this.models[operation].create({
- operationId,
- status,
- });
+ async createOperationRecord(operation, operationId, status, options) {
+ const operationModel = operation.replace(/([a-z0-9])([A-Z])/g, '$1_$2').toLowerCase();
+ return this.models[operationModel].create(
+ {
+ operationId,
+ status,
+ },
+ options,
+ );
}
- async removeOperationRecords(operation, ids) {
- return this.models[operation].destroy({
+ async removeOperationRecords(operation, ids, options) {
+ const operationModel = operation.replace(/([a-z0-9])([A-Z])/g, '$1_$2').toLowerCase();
+ return this.models[operationModel].destroy({
where: {
id: { [Sequelize.Op.in]: ids },
},
+ ...options,
});
}
- async findProcessedOperations(operation, timestamp, limit) {
- return this.models[`${operation}`].findAll({
+ async findProcessedOperations(operation, timestamp, limit, options) {
+ const operationModel = operation.replace(/([a-z0-9])([A-Z])/g, '$1_$2').toLowerCase();
+ return this.models[`${operationModel}`].findAll({
where: {
createdAt: { [Sequelize.Op.lte]: timestamp },
},
order: [['createdAt', 'asc']],
raw: true,
limit,
+ ...options,
});
}
- async getOperationStatus(operation, operationId) {
- return this.models[operation].findOne({
+ async getOperationStatus(operation, operationId, options) {
+ const operationModel = operation.replace(/([a-z0-9])([A-Z])/g, '$1_$2').toLowerCase();
+ return this.models[operationModel].findOne({
attributes: ['status'],
where: {
operationId,
},
+ ...options,
});
}
- async updateOperationStatus(operation, operationId, status) {
- await this.models[operation].update(
+ async updateOperationStatus(operation, operationId, status, options) {
+ const operationModel = operation.replace(/([a-z0-9])([A-Z])/g, '$1_$2').toLowerCase();
+ await this.models[operationModel].update(
{ status },
{
where: {
operationId,
},
+ ...options,
},
);
}
diff --git a/src/modules/repository/implementation/sequelize/repositories/operation-response.js b/src/modules/repository/implementation/sequelize/repositories/operation-response.js
index 7c55f5d139..3d59c40f98 100644
--- a/src/modules/repository/implementation/sequelize/repositories/operation-response.js
+++ b/src/modules/repository/implementation/sequelize/repositories/operation-response.js
@@ -7,43 +7,55 @@ class OperationResponseRepository {
get_response: models.get_response,
publish_response: models.publish_response,
update_response: models.update_response,
+ publish_paranet_response: models.publish_paranet_response,
+ ask_response: models.ask_response,
+ finality_response: models.finality_response,
};
}
- async createOperationResponseRecord(status, operation, operationId, keyword, message) {
- await this.models[`${operation}_response`].create({
- status,
- message,
- operationId,
- keyword,
- });
+ async createOperationResponseRecord(status, operation, operationId, message, options) {
+ const operationModel = operation.replace(/([a-z0-9])([A-Z])/g, '$1_$2').toLowerCase();
+ await this.models[`${operationModel}_response`].create(
+ {
+ status,
+ message,
+ operationId,
+ },
+ options,
+ );
}
- async getOperationResponsesStatuses(operation, operationId) {
- return this.models[`${operation}_response`].findAll({
- attributes: ['status', 'keyword'],
+ async getOperationResponsesStatuses(operation, operationId, options) {
+ const operationModel = operation.replace(/([a-z0-9])([A-Z])/g, '$1_$2').toLowerCase();
+ return this.models[`${operationModel}_response`].findAll({
+ attributes: ['status'],
where: {
operationId,
},
+ ...options,
});
}
- async findProcessedOperationResponse(timestamp, limit, operation) {
- return this.models[`${operation}_response`].findAll({
+ async findProcessedOperationResponse(timestamp, limit, operation, options) {
+ const operationModel = operation.replace(/([a-z0-9])([A-Z])/g, '$1_$2').toLowerCase();
+ return this.models[`${operationModel}_response`].findAll({
where: {
createdAt: { [Sequelize.Op.lte]: timestamp },
},
order: [['createdAt', 'asc']],
raw: true,
limit,
+ ...options,
});
}
- async removeOperationResponse(ids, operation) {
- await this.models[`${operation}_response`].destroy({
+ async removeOperationResponse(ids, operation, options) {
+ const operationModel = operation.replace(/([a-z0-9])([A-Z])/g, '$1_$2').toLowerCase();
+ await this.models[`${operationModel}_response`].destroy({
where: {
id: { [Sequelize.Op.in]: ids },
},
+ ...options,
});
}
}
diff --git a/src/modules/repository/implementation/sequelize/repositories/paranet-repository.js b/src/modules/repository/implementation/sequelize/repositories/paranet-repository.js
index 94ff743e9a..af46d4e4cb 100644
--- a/src/modules/repository/implementation/sequelize/repositories/paranet-repository.js
+++ b/src/modules/repository/implementation/sequelize/repositories/paranet-repository.js
@@ -6,7 +6,7 @@ class ParanetRepository {
this.model = models.paranet;
}
- async createParanetRecord(name, description, paranetId, blockchainId) {
+ async createParanetRecord(name, description, paranetId, blockchainId, options) {
return this.model.create(
{
name,
@@ -17,56 +17,79 @@ class ParanetRepository {
},
{
ignoreDuplicates: true,
+ ...options,
},
);
}
- async getParanet(paranetId, blockchainId) {
+ async getParanet(paranetId, blockchainId, options) {
return this.model.findOne({
where: {
paranetId,
blockchainId,
},
+ ...options,
});
}
- async updateParanetKaCount(paranetId, blockchainId, kaCount) {
+ async addToParanetKaCount(paranetId, blockchainId, kaCount, options) {
return this.model.update(
- { kaCount },
+ {
+ kaCount: Sequelize.literal(`ka_count + ${kaCount}`),
+ },
{
where: {
paranetId,
blockchainId,
},
+ ...options,
},
);
}
- async paranetExists(paranetId, blockchainId) {
+ async paranetExists(paranetId, blockchainId, options) {
const paranetRecord = await this.model.findOne({
where: {
paranetId,
blockchainId,
},
+ ...options,
});
return !!paranetRecord;
}
- async getParanetKnowledgeAssetsCount(paranetId, blockchainId) {
+ async getParanetKnowledgeAssetsCount(paranetId, blockchainId, options) {
return this.model.findAll({
attributes: ['ka_count'],
where: {
paranetId,
blockchainId,
},
+ ...options,
});
}
- async getParanetsBlockchains() {
+ async incrementParanetKaCount(paranetId, blockchainId, options) {
+ return this.model.update(
+ {
+ kaCount: Sequelize.literal(`ka_count + 1`),
+ },
+ {
+ where: {
+ paranetId,
+ blockchainId,
+ },
+ ...options,
+ },
+ );
+ }
+
+ async getParanetsBlockchains(options) {
return this.model.findAll({
attributes: [
[Sequelize.fn('DISTINCT', Sequelize.col('blockchain_id')), 'blockchain_id'],
],
+ ...options,
});
}
}
diff --git a/src/modules/repository/implementation/sequelize/repositories/paranet-synced-asset-repository.js b/src/modules/repository/implementation/sequelize/repositories/paranet-synced-asset-repository.js
new file mode 100644
index 0000000000..c9cde1c422
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/repositories/paranet-synced-asset-repository.js
@@ -0,0 +1,57 @@
+class ParanetSyncedAssetRepository {
+ constructor(models) {
+ this.sequelize = models.sequelize;
+ this.model = models.paranet_synced_asset;
+ }
+
+ async createParanetSyncedAssetRecord(
+ blockchainId,
+ ual,
+ paranetUal,
+ publicAssertionId,
+ privateAssertionId,
+ sender,
+ transactionHash,
+ dataSource,
+ options,
+ ) {
+ return this.model.create(
+ {
+ blockchainId,
+ ual,
+ paranetUal,
+ publicAssertionId,
+ privateAssertionId,
+ sender,
+ transactionHash,
+ dataSource,
+ },
+ options,
+ );
+ }
+
+ async getParanetSyncedAssetRecordByUAL(ual, options) {
+ return this.model.findOne({
+ where: { ual },
+ ...options,
+ });
+ }
+
+ async getParanetSyncedAssetRecordsCountByDataSource(paranetUal, dataSource, options) {
+ return this.model.count({
+ where: {
+ paranetUal,
+ dataSource,
+ },
+ ...options,
+ });
+ }
+
+ async paranetSyncedAssetRecordExists(ual, options) {
+ const paranetSyncedAssetRecord = await this.getParanetSyncedAssetRecordByUAL(ual, options);
+
+ return !!paranetSyncedAssetRecord;
+ }
+}
+
+export default ParanetSyncedAssetRepository;
diff --git a/src/modules/repository/implementation/sequelize/repositories/service-agreement-repository.js b/src/modules/repository/implementation/sequelize/repositories/service-agreement-repository.js
deleted file mode 100644
index 844a523dcd..0000000000
--- a/src/modules/repository/implementation/sequelize/repositories/service-agreement-repository.js
+++ /dev/null
@@ -1,336 +0,0 @@
-import Sequelize from 'sequelize';
-
-class ServiceAgreementRepository {
- constructor(models) {
- this.sequelize = models.sequelize;
- this.model = models.service_agreement;
- }
-
- async updateServiceAgreementEpochsNumber(agreementId, epochsNumber) {
- return this.model.update(
- { epochsNumber },
- {
- where: { agreementId },
- },
- );
- }
-
- async removeServiceAgreements(agreementIds) {
- return this.model.destroy({
- where: { agreementId: { [Sequelize.Op.in]: agreementIds } },
- });
- }
-
- async removeServiceAgreementsForBlockchain(blockchainId) {
- await this.model.destroy({
- where: {
- blockchainId,
- },
- });
- }
-
- async updateServiceAgreementRecord(
- blockchainId,
- assetStorageContractAddress,
- tokenId,
- agreementId,
- startTime,
- epochsNumber,
- epochLength,
- scoreFunctionId,
- proofWindowOffsetPerc,
- hashFunctionId,
- keyword,
- assertionId,
- stateIndex,
- dataSource,
- lastCommitEpoch,
- lastProofEpoch,
- ) {
- return this.model.upsert({
- blockchainId,
- assetStorageContractAddress,
- tokenId,
- agreementId,
- startTime,
- epochsNumber,
- epochLength,
- scoreFunctionId,
- proofWindowOffsetPerc,
- hashFunctionId,
- keyword,
- assertionId,
- stateIndex,
- dataSource,
- lastCommitEpoch,
- lastProofEpoch,
- });
- }
-
- async updateServiceAgreementForTokenId(tokenId, agreementId, keyword, assertionId, stateIndex) {
- return this.model.update(
- {
- agreementId,
- keyword,
- assertionId,
- stateIndex,
- },
- {
- where: {
- tokenId,
- },
- },
- );
- }
-
- async serviceAgreementExists(blockchainId, tokenId) {
- const agreementRecord = await this.model.findOne({
- where: {
- blockchainId,
- tokenId,
- },
- });
- return !!agreementRecord;
- }
-
- async bulkCreateServiceAgreementRecords(serviceAgreements) {
- return this.model.bulkCreate(serviceAgreements, {
- ignoreDuplicates: true,
- });
- }
-
- async getServiceAgreementRecord(agreementId) {
- return this.model.findOne({
- where: {
- agreementId,
- },
- });
- }
-
- async updateServiceAgreementLastCommitEpoch(agreementId, lastCommitEpoch) {
- return this.model.update(
- { lastCommitEpoch },
- {
- where: {
- agreementId,
- },
- },
- );
- }
-
- async updateServiceAgreementLastProofEpoch(agreementId, lastProofEpoch) {
- return this.model.update(
- { lastProofEpoch },
- {
- where: {
- agreementId,
- },
- },
- );
- }
-
- async removeServiceAgreementRecord(blockchainId, contract, tokenId) {
- await this.model.destroy({
- where: {
- blockchainId,
- assetStorageContractAddress: contract,
- tokenId,
- },
- });
- }
-
- getEligibleAgreementsForSubmitCommit(
- timestampSeconds,
- blockchain,
- commitWindowDurationPerc,
- startTimeDelay,
- ) {
- const cutoffTimestamp = timestampSeconds - startTimeDelay;
- const currentEpoch = `FLOOR((${timestampSeconds} - start_time) / epoch_length)`;
- const currentEpochPerc = `((${timestampSeconds} - start_time) % epoch_length) / epoch_length * 100`;
-
- return this.model.findAll({
- attributes: {
- include: [
- [Sequelize.literal(currentEpoch), 'currentEpoch'],
- [
- Sequelize.cast(
- Sequelize.literal(`${commitWindowDurationPerc} - ${currentEpochPerc}`),
- 'DOUBLE',
- ),
- 'timeLeftInSubmitCommitWindow',
- ],
- ],
- },
- where: {
- blockchainId: blockchain,
- start_time: {
- [Sequelize.Op.lt]: cutoffTimestamp,
- },
- [Sequelize.Op.or]: [
- {
- lastCommitEpoch: {
- [Sequelize.Op.is]: null,
- },
- },
- {
- lastCommitEpoch: {
- [Sequelize.Op.lt]: Sequelize.literal(currentEpoch),
- },
- },
- ],
- [Sequelize.Op.and]: Sequelize.literal(
- `${currentEpochPerc} < ${commitWindowDurationPerc}`,
- ),
- epochsNumber: {
- [Sequelize.Op.gt]: Sequelize.literal(currentEpoch),
- },
- },
- order: [
- ['scoreFunctionId', 'DESC'],
- [Sequelize.col('timeLeftInSubmitCommitWindow'), 'ASC'],
- ],
- limit: 500,
- raw: true,
- });
- }
-
- async getEligibleAgreementsForSubmitProof(
- timestampSeconds,
- blockchain,
- proofWindowDurationPerc,
- ) {
- const currentEpoch = `FLOOR((${timestampSeconds} - start_time) / epoch_length)`;
- const currentEpochPerc = `((${timestampSeconds} - start_time) % epoch_length) / epoch_length * 100`;
-
- return this.model.findAll({
- attributes: {
- include: [
- [Sequelize.literal(currentEpoch), 'currentEpoch'],
- [
- Sequelize.cast(
- Sequelize.literal(
- `proof_window_offset_perc + ${proofWindowDurationPerc} - ${currentEpochPerc}`,
- ),
- 'DOUBLE',
- ),
- 'timeLeftInSubmitProofWindow',
- ],
- ],
- },
- where: {
- blockchainId: blockchain,
- lastCommitEpoch: {
- [Sequelize.Op.eq]: Sequelize.literal(currentEpoch),
- },
- [Sequelize.Op.or]: [
- {
- lastProofEpoch: {
- [Sequelize.Op.is]: null,
- },
- },
- {
- lastProofEpoch: {
- [Sequelize.Op.lt]: Sequelize.literal(currentEpoch),
- },
- },
- ],
- proofWindowOffsetPerc: {
- [Sequelize.Op.lte]: Sequelize.literal(`${currentEpochPerc}`),
- [Sequelize.Op.gt]: Sequelize.literal(
- `${currentEpochPerc} - ${proofWindowDurationPerc}`,
- ),
- },
- epochsNumber: {
- [Sequelize.Op.gt]: Sequelize.literal(currentEpoch),
- },
- },
- order: [
- ['scoreFunctionId', 'DESC'],
- [Sequelize.col('timeLeftInSubmitProofWindow'), 'ASC'],
- ],
- limit: 500,
- raw: true,
- });
- }
-
- async getNumberOfActiveServiceAgreements() {
- return this.model.count();
- }
-
- async getServiceAgreements(fromTokenId, batchSize) {
- return this.model.findAll({
- where: {
- tokenId: { [Sequelize.Op.gte]: fromTokenId },
- },
- limit: batchSize,
- order: [['token_id', 'asc']],
- });
- }
-
- async getServiceAgreementsTokenIds(fromTokenId, blockchainId) {
- return this.model.findAll({
- attributes: ['tokenId'],
- where: {
- tokenId: { [Sequelize.Op.gte]: fromTokenId },
- blockchainId,
- },
- order: [['token_id', 'asc']],
- });
- }
-
- async getLatestServiceAgreementTokenId(blockchainId) {
- return this.model.max('tokenId', {
- where: {
- blockchainId,
- },
- });
- }
-
- async getCountOfServiceAgreementsByBlockchainAndContract(blockchainId, contract) {
- return this.model.count({
- where: {
- blockchainId,
- assetStorageContractAddress: {
- [Sequelize.Op.ne]: contract,
- },
- },
- });
- }
-
- // Sequelize destroy method doesn't support limit
- async removeServiceAgreementsByBlockchainAndContract(blockchainId, contract) {
- const query = `
- DELETE FROM service_agreement
- WHERE blockchain_id = '${blockchainId}'
- AND asset_storage_contract_address != '${contract}'
- LIMIT 100000;
- `;
- await this.sequelize.query(query, {
- type: Sequelize.QueryTypes.DELETE,
- });
- }
-
- async findDuplicateServiceAgreements(blockchainId) {
- return this.model.findAll({
- attributes: ['token_id', [Sequelize.fn('COUNT', Sequelize.col('*')), 'count']],
- where: {
- blockchain_id: `${blockchainId}`,
- },
- group: ['token_id'],
- having: Sequelize.literal('count > 1'),
- });
- }
-
- async findServiceAgreementsByTokenIds(tokenIds, blockchainId) {
- return this.model.findAll({
- where: {
- tokenId: { [Sequelize.Op.in]: tokenIds },
- blockchainId,
- },
- order: [['token_id']],
- });
- }
-}
-
-export default ServiceAgreementRepository;
diff --git a/src/modules/repository/implementation/sequelize/repositories/shard-repository.js b/src/modules/repository/implementation/sequelize/repositories/shard-repository.js
index 945aa5810a..6d34ec9984 100644
--- a/src/modules/repository/implementation/sequelize/repositories/shard-repository.js
+++ b/src/modules/repository/implementation/sequelize/repositories/shard-repository.js
@@ -6,20 +6,22 @@ class ShardRepository {
this.model = models.shard;
}
- async createManyPeerRecords(peerRecords) {
+ async createManyPeerRecords(peerRecords, options) {
return this.model.bulkCreate(peerRecords, {
validate: true,
updateOnDuplicate: ['ask', 'stake', 'sha256'],
+ ...options,
});
}
- async removeShardingTablePeerRecords(blockchainId) {
+ async removeShardingTablePeerRecords(blockchainId, options) {
return this.model.destroy({
where: { blockchainId },
+ ...options,
});
}
- async createPeerRecord(peerId, blockchainId, ask, stake, lastSeen, sha256) {
+ async createPeerRecord(peerId, blockchainId, ask, stake, lastSeen, sha256, options) {
return this.model.create(
{
peerId,
@@ -31,11 +33,12 @@ class ShardRepository {
},
{
ignoreDuplicates: true,
+ ...options,
},
);
}
- async getAllPeerRecords(blockchainId) {
+ async getAllPeerRecords(blockchainId, options) {
const query = {
where: {
blockchainId,
@@ -50,29 +53,44 @@ class ShardRepository {
'sha256',
],
order: [['sha256', 'asc']],
+ ...options,
};
return this.model.findAll(query);
}
- async getPeerRecord(peerId, blockchainId) {
+ async getPeerRecordsByIds(blockchainId, peerIds, options) {
+ return this.model.findAll({
+ where: {
+ blockchainId,
+ peerId: {
+ [Sequelize.Op.in]: peerIds,
+ },
+ },
+ ...options,
+ });
+ }
+
+ async getPeerRecord(peerId, blockchainId, options) {
return this.model.findOne({
where: {
blockchainId,
peerId,
},
+ ...options,
});
}
- async getPeersCount(blockchainId) {
+ async getPeersCount(blockchainId, options) {
return this.model.count({
where: {
blockchainId,
},
+ ...options,
});
}
- async getPeersToDial(limit, dialFrequencyMillis) {
+ async getPeersToDial(limit, dialFrequencyMillis, options) {
const result = await this.model.findAll({
attributes: ['peer_id'],
where: {
@@ -84,11 +102,12 @@ class ShardRepository {
group: ['peer_id', 'last_dialed'],
limit,
raw: true,
+ ...options,
});
return (result ?? []).map((record) => ({ peerId: record.peer_id }));
}
- async updatePeerAsk(peerId, blockchainId, ask) {
+ async updatePeerAsk(peerId, blockchainId, ask, options) {
return this.model.update(
{ ask },
{
@@ -96,11 +115,12 @@ class ShardRepository {
peerId,
blockchainId,
},
+ ...options,
},
);
}
- async updatePeerStake(peerId, blockchainId, stake) {
+ async updatePeerStake(peerId, blockchainId, stake, options) {
return this.model.update(
{ stake },
{
@@ -108,22 +128,24 @@ class ShardRepository {
peerId,
blockchainId,
},
+ ...options,
},
);
}
- async updatePeerRecordLastDialed(peerId, timestamp) {
+ async updatePeerRecordLastDialed(peerId, timestamp, options) {
return this.model.update(
{
lastDialed: timestamp,
},
{
where: { peerId },
+ ...options,
},
);
}
- async updatePeerRecordLastSeenAndLastDialed(peerId, timestamp) {
+ async updatePeerRecordLastSeenAndLastDialed(peerId, timestamp, options) {
return this.model.update(
{
lastDialed: timestamp,
@@ -131,24 +153,36 @@ class ShardRepository {
},
{
where: { peerId },
+ ...options,
},
);
}
- async removePeerRecord(blockchainId, peerId) {
+ async removePeerRecord(blockchainId, peerId, options) {
await this.model.destroy({
where: {
blockchainId,
peerId,
},
+ ...options,
});
}
- async cleanShardingTable(blockchainId) {
+ async cleanShardingTable(blockchainId, options) {
await this.model.destroy({
where: blockchainId ? { blockchainId } : {},
+ ...options,
});
}
+
+ async isNodePartOfShard(blockchainId, peerId, options) {
+ const nodeIsPartOfShard = await this.model.findOne({
+ where: { blockchainId, peerId },
+ ...options,
+ });
+
+ return !!nodeIsPartOfShard;
+ }
}
export default ShardRepository;
diff --git a/src/modules/repository/implementation/sequelize/repositories/token-repository.js b/src/modules/repository/implementation/sequelize/repositories/token-repository.js
index 6c3e601267..3de7ba92a8 100644
--- a/src/modules/repository/implementation/sequelize/repositories/token-repository.js
+++ b/src/modules/repository/implementation/sequelize/repositories/token-repository.js
@@ -6,22 +6,25 @@ class TokenRepository {
this.model = models.token;
}
- async saveToken(tokenId, userId, tokenName, expiresAt) {
- return this.model.create({
- id: tokenId,
- userId,
- expiresAt,
- name: tokenName,
- });
+ async saveToken(tokenId, userId, tokenName, expiresAt, options) {
+ return this.model.create(
+ {
+ id: tokenId,
+ userId,
+ expiresAt,
+ name: tokenName,
+ },
+ options,
+ );
}
- async isTokenRevoked(tokenId) {
- const token = await this.model.findByPk(tokenId);
+ async isTokenRevoked(tokenId, options) {
+ const token = await this.model.findByPk(tokenId, options);
return token && token.revoked;
}
- async getTokenAbilities(tokenId) {
+ async getTokenAbilities(tokenId, options) {
const abilities = await this.sequelize.query(
`SELECT a.name FROM token t
INNER JOIN user u ON t.user_id = u.id
@@ -29,7 +32,11 @@ class TokenRepository {
INNER JOIN role_ability ra on r.id = ra.role_id
INNER JOIN ability a on ra.ability_id = a.id
WHERE t.id=$tokenId;`,
- { bind: { tokenId }, type: Sequelize.QueryTypes.SELECT },
+ {
+ bind: { tokenId },
+ type: Sequelize.QueryTypes.SELECT,
+ ...options,
+ },
);
return abilities.map((e) => e.name);
diff --git a/src/modules/repository/implementation/sequelize/repositories/user-repository.js b/src/modules/repository/implementation/sequelize/repositories/user-repository.js
index c54a84a155..16fb043e81 100644
--- a/src/modules/repository/implementation/sequelize/repositories/user-repository.js
+++ b/src/modules/repository/implementation/sequelize/repositories/user-repository.js
@@ -4,11 +4,12 @@ class UserRepository {
this.model = models.user;
}
- async getUser(username) {
+ async getUser(username, options) {
return this.model.findOne({
where: {
name: username,
},
+ ...options,
});
}
}
diff --git a/src/modules/repository/implementation/sequelize/sequelize-repository.js b/src/modules/repository/implementation/sequelize/sequelize-repository.js
index 90ab1c7f54..e72060f707 100644
--- a/src/modules/repository/implementation/sequelize/sequelize-repository.js
+++ b/src/modules/repository/implementation/sequelize/sequelize-repository.js
@@ -12,11 +12,12 @@ import ParanetRepository from './repositories/paranet-repository.js';
import OperationIdRepository from './repositories/operation-id-repository.js';
import OperationRepository from './repositories/operation-repository.js';
import OperationResponseRepository from './repositories/operation-response.js';
-import ServiceAgreementRepository from './repositories/service-agreement-repository.js';
import ShardRepository from './repositories/shard-repository.js';
import TokenRepository from './repositories/token-repository.js';
import UserRepository from './repositories/user-repository.js';
import MissedParanetAssetRepository from './repositories/missed-paranet-asset-repository.js';
+import ParanetSyncedAssetRepository from './repositories/paranet-synced-asset-repository.js';
+import FinalityStatusRepository from './repositories/finality-status-repository.js';
const __dirname = fileURLToPath(new URL('.', import.meta.url));
@@ -37,14 +38,15 @@ class SequelizeRepository {
command: new CommandRepository(this.models),
event: new EventRepository(this.models),
paranet: new ParanetRepository(this.models),
+ paranet_synced_asset: new ParanetSyncedAssetRepository(this.models),
missed_paranet_asset: new MissedParanetAssetRepository(this.models),
operation_id: new OperationIdRepository(this.models),
operation: new OperationRepository(this.models),
operation_response: new OperationResponseRepository(this.models),
- service_agreement: new ServiceAgreementRepository(this.models),
shard: new ShardRepository(this.models),
token: new TokenRepository(this.models),
user: new UserRepository(this.models),
+ finality_status: new FinalityStatusRepository(this.models),
};
}
@@ -73,7 +75,7 @@ class SequelizeRepository {
}
async createDatabaseIfNotExists() {
- const connection = await mysql.createConnection({
+ const connection = mysql.createConnection({
host: process.env.SEQUELIZE_REPOSITORY_HOST,
port: process.env.SEQUELIZE_REPOSITORY_PORT,
user: process.env.SEQUELIZE_REPOSITORY_USER,
@@ -86,7 +88,7 @@ class SequelizeRepository {
}
async dropDatabase() {
- const connection = await mysql.createConnection({
+ const connection = mysql.createConnection({
host: process.env.SEQUELIZE_REPOSITORY_HOST,
port: process.env.SEQUELIZE_REPOSITORY_PORT,
user: process.env.SEQUELIZE_REPOSITORY_USER,
@@ -127,20 +129,23 @@ class SequelizeRepository {
});
}
- transaction(execFn) {
- return this.models.sequelize.transaction(async (t) => execFn(t));
+ async transaction(execFn) {
+ if (execFn) {
+ return this.models.sequelize.transaction(async (t) => execFn(t));
+ }
+ return this.models.sequelize.transaction();
}
getRepository(repositoryName) {
return this.repositories[repositoryName];
}
- async query(query) {
- return this.models.sequelize.query(query);
+ async query(query, options) {
+ return this.models.sequelize.query(query, options);
}
- async destroyAllRecords(table) {
- return this.models[table].destroy({ where: {} });
+ async destroyAllRecords(table, options) {
+ return this.models[table].destroy({ where: {}, ...options });
}
}
diff --git a/src/modules/repository/repository-module-manager.js b/src/modules/repository/repository-module-manager.js
index eea9d49833..92f4793043 100644
--- a/src/modules/repository/repository-module-manager.js
+++ b/src/modules/repository/repository-module-manager.js
@@ -12,7 +12,7 @@ class RepositoryModuleManager extends BaseModuleManager {
return this.getImplementation().module.getRepository(repoName);
}
- transaction(execFn) {
+ async transaction(execFn) {
if (this.initialized) {
return this.getImplementation().module.transaction(execFn);
}
@@ -24,132 +24,165 @@ class RepositoryModuleManager extends BaseModuleManager {
}
}
- async query(query) {
+ async query(query, options = {}) {
if (this.initialized) {
- return this.getImplementation().module.query(query);
+ return this.getImplementation().module.query(query, options);
}
}
- async destroyAllRecords(table) {
+ async destroyAllRecords(table, options = {}) {
if (this.initialized) {
- return this.getImplementation().module.destroyAllRecords(table);
+ return this.getImplementation().module.destroyAllRecords(table, options);
}
}
- async updateCommand(update, opts) {
- return this.getRepository('command').updateCommand(update, opts);
+ async updateCommand(update, options = {}) {
+ return this.getRepository('command').updateCommand(update, options);
}
- async destroyCommand(name) {
- return this.getRepository('command').destroyCommand(name);
+ async destroyCommand(name, options = {}) {
+ return this.getRepository('command').destroyCommand(name, options);
}
- async createCommand(command, opts) {
- return this.getRepository('command').createCommand(command, opts);
+ async createCommand(command, options = {}) {
+ return this.getRepository('command').createCommand(command, options);
}
- async getCommandsWithStatus(statusArray, excludeNameArray = []) {
- return this.getRepository('command').getCommandsWithStatus(statusArray, excludeNameArray);
+ async getCommandsWithStatus(statusArray, excludeNameArray = [], options = {}) {
+ return this.getRepository('command').getCommandsWithStatus(
+ statusArray,
+ excludeNameArray,
+ options,
+ );
+ }
+
+ async getCommandWithId(id, options = {}) {
+ return this.getRepository('command').getCommandWithId(id, options);
}
- async getCommandWithId(id) {
- return this.getRepository('command').getCommandWithId(id);
+ async removeCommands(ids, options = {}) {
+ return this.getRepository('command').removeCommands(ids, options);
}
- async removeCommands(ids) {
- return this.getRepository('command').removeCommands(ids);
+ async findFinalizedCommands(timestamp, limit, options = {}) {
+ return this.getRepository('command').findFinalizedCommands(timestamp, limit, options);
}
- async findFinalizedCommands(timestamp, limit) {
- return this.getRepository('command').findFinalizedCommands(timestamp, limit);
+ async findUnfinalizedCommandsByName(limit, options = {}) {
+ return this.getRepository('command').findUnfinalizedCommandsByName(limit, options);
}
- async createOperationIdRecord(handlerData) {
- return this.getRepository('operation_id').createOperationIdRecord(handlerData);
+ async createOperationIdRecord(handlerData, options = {}) {
+ return this.getRepository('operation_id').createOperationIdRecord(handlerData, options);
}
- async updateOperationIdRecord(data, operationId) {
- return this.getRepository('operation_id').updateOperationIdRecord(data, operationId);
+ async updateOperationIdRecord(data, operationId, options = {}) {
+ return this.getRepository('operation_id').updateOperationIdRecord(
+ data,
+ operationId,
+ options,
+ );
}
- async getOperationIdRecord(operationId) {
- return this.getRepository('operation_id').getOperationIdRecord(operationId);
+ async getOperationIdRecord(operationId, options = {}) {
+ return this.getRepository('operation_id').getOperationIdRecord(operationId, options);
}
- async removeOperationIdRecord(timeToBeDeleted, statuses) {
+ async removeOperationIdRecord(timeToBeDeleted, statuses, options = {}) {
return this.getRepository('operation_id').removeOperationIdRecord(
timeToBeDeleted,
statuses,
+ options,
);
}
- async createOperationRecord(operation, operationId, status) {
+ async updateMinAcksReached(operationId, minAcksReached, options = {}) {
+ return this.getRepository('operation_id').updateMinAcksReached(
+ operationId,
+ minAcksReached,
+ options,
+ );
+ }
+
+ async createOperationRecord(operation, operationId, status, options = {}) {
return this.getRepository('operation').createOperationRecord(
operation,
operationId,
status,
+ options,
);
}
- async removeOperationRecords(operation, ids) {
- return this.getRepository('operation').removeOperationRecords(operation, ids);
+ async removeOperationRecords(operation, ids, options = {}) {
+ return this.getRepository('operation').removeOperationRecords(operation, ids, options);
}
- async findProcessedOperations(operation, timestamp, limit) {
- return this.getRepository('operation').findProcessedOperations(operation, timestamp, limit);
+ async findProcessedOperations(operation, timestamp, limit, options = {}) {
+ return this.getRepository('operation').findProcessedOperations(
+ operation,
+ timestamp,
+ limit,
+ options,
+ );
}
- async getOperationStatus(operation, operationId) {
- return this.getRepository('operation').getOperationStatus(operation, operationId);
+ async getOperationStatus(operation, operationId, options = {}) {
+ return this.getRepository('operation').getOperationStatus(operation, operationId, options);
}
- async updateOperationStatus(operation, operationId, status) {
+ async updateOperationStatus(operation, operationId, status, options = {}) {
return this.getRepository('operation').updateOperationStatus(
operation,
operationId,
status,
+ options,
);
}
- async createOperationResponseRecord(status, operation, operationId, keyword, errorMessage) {
+ async createOperationResponseRecord(status, operation, operationId, errorMessage, options) {
return this.getRepository('operation_response').createOperationResponseRecord(
status,
operation,
operationId,
- keyword,
errorMessage,
+ options,
);
}
- async getOperationResponsesStatuses(operation, operationId) {
+ async getOperationResponsesStatuses(operation, operationId, options = {}) {
return this.getRepository('operation_response').getOperationResponsesStatuses(
operation,
operationId,
+ options,
);
}
- async findProcessedOperationResponse(timestamp, limit, operation) {
+ async findProcessedOperationResponse(timestamp, limit, operation, options = {}) {
return this.getRepository('operation_response').findProcessedOperationResponse(
timestamp,
limit,
operation,
+ options,
);
}
- async removeOperationResponse(ids, operation) {
- return this.getRepository('operation_response').removeOperationResponse(ids, operation);
+ async removeOperationResponse(ids, operation, options = {}) {
+ return this.getRepository('operation_response').removeOperationResponse(
+ ids,
+ operation,
+ options,
+ );
}
- // Sharding Table
- async createManyPeerRecords(peers) {
- return this.getRepository('shard').createManyPeerRecords(peers);
+ async createManyPeerRecords(peers, options = {}) {
+ return this.getRepository('shard').createManyPeerRecords(peers, options);
}
- async removeShardingTablePeerRecords(blockchain) {
- return this.getRepository('shard').removeShardingTablePeerRecords(blockchain);
+ async removeShardingTablePeerRecords(blockchain, options = {}) {
+ return this.getRepository('shard').removeShardingTablePeerRecords(blockchain, options);
}
- async createPeerRecord(peerId, blockchain, ask, stake, lastSeen, sha256) {
+ async createPeerRecord(peerId, blockchain, ask, stake, lastSeen, sha256, options = {}) {
return this.getRepository('shard').createPeerRecord(
peerId,
blockchain,
@@ -157,402 +190,323 @@ class RepositoryModuleManager extends BaseModuleManager {
stake,
lastSeen,
sha256,
+ options,
);
}
- async getPeerRecord(peerId, blockchain) {
- return this.getRepository('shard').getPeerRecord(peerId, blockchain);
+ async getPeerRecord(peerId, blockchain, options = {}) {
+ return this.getRepository('shard').getPeerRecord(peerId, blockchain, options);
}
- async getAllPeerRecords(blockchain) {
- return this.getRepository('shard').getAllPeerRecords(blockchain);
+ async getAllPeerRecords(blockchain, options = {}) {
+ return this.getRepository('shard').getAllPeerRecords(blockchain, options);
}
- async getPeersCount(blockchain) {
- return this.getRepository('shard').getPeersCount(blockchain);
+ async getPeerRecordsByIds(blockchain, peerIds, options = {}) {
+ return this.getRepository('shard').getPeerRecordsByIds(blockchain, peerIds, options);
}
- async getPeersToDial(limit, dialFrequencyMillis) {
- return this.getRepository('shard').getPeersToDial(limit, dialFrequencyMillis);
+ async getPeersCount(blockchain, options = {}) {
+ return this.getRepository('shard').getPeersCount(blockchain, options);
}
- async removePeerRecord(blockchain, peerId) {
- return this.getRepository('shard').removePeerRecord(blockchain, peerId);
+ async getPeersToDial(limit, dialFrequencyMillis, options = {}) {
+ return this.getRepository('shard').getPeersToDial(limit, dialFrequencyMillis, options);
}
- async updatePeerRecordLastDialed(peerId, timestamp) {
- return this.getRepository('shard').updatePeerRecordLastDialed(peerId, timestamp);
+ async removePeerRecord(blockchain, peerId, options = {}) {
+ return this.getRepository('shard').removePeerRecord(blockchain, peerId, options);
}
- async updatePeerRecordLastSeenAndLastDialed(peerId, timestamp) {
- return this.getRepository('shard').updatePeerRecordLastSeenAndLastDialed(peerId, timestamp);
+ async updatePeerRecordLastDialed(peerId, timestamp, options = {}) {
+ return this.getRepository('shard').updatePeerRecordLastDialed(peerId, timestamp, options);
}
- async updatePeerAsk(peerId, blockchainId, ask) {
- return this.getRepository('shard').updatePeerAsk(peerId, blockchainId, ask);
+ async updatePeerRecordLastSeenAndLastDialed(peerId, timestamp, options = {}) {
+ return this.getRepository('shard').updatePeerRecordLastSeenAndLastDialed(
+ peerId,
+ timestamp,
+ options,
+ );
}
- async updatePeerStake(peerId, blockchainId, stake) {
- return this.getRepository('shard').updatePeerStake(peerId, blockchainId, stake);
+ async updatePeerAsk(peerId, blockchainId, ask, options = {}) {
+ return this.getRepository('shard').updatePeerAsk(peerId, blockchainId, ask, options);
}
- async getNeighbourhood(assertionId, r2) {
- return this.getRepository('shard').getNeighbourhood(assertionId, r2);
+ async updatePeerStake(peerId, blockchainId, stake, options = {}) {
+ return this.getRepository('shard').updatePeerStake(peerId, blockchainId, stake, options);
}
- async cleanShardingTable(blockchainId) {
- return this.getRepository('shard').cleanShardingTable(blockchainId);
+ async getNeighbourhood(assertionId, r2, options = {}) {
+ return this.getRepository('shard').getNeighbourhood(assertionId, r2, options);
}
- async createEventRecord(
- operationId,
- blockchainId,
- name,
- timestamp,
- value1 = null,
- value2 = null,
- value3 = null,
- ) {
- return this.getRepository('event').createEventRecord(
- operationId,
- blockchainId,
- name,
- timestamp,
- value1,
- value2,
- value3,
- );
+ async cleanShardingTable(blockchainId, options = {}) {
+ return this.getRepository('shard').cleanShardingTable(blockchainId, options);
}
- async getUnpublishedEvents() {
- return this.getRepository('event').getUnpublishedEvents();
+ async isNodePartOfShard(blockchainId, peerId, options = {}) {
+ return this.getRepository('shard').isNodePartOfShard(blockchainId, peerId, options);
}
- async destroyEvents(ids) {
- return this.getRepository('event').destroyEvents(ids);
+ async destroyEvents(ids, options = {}) {
+ return this.getRepository('event').destroyEvents(ids, options);
}
- async getUser(username) {
- return this.getRepository('user').getUser(username);
+ async getUser(username, options = {}) {
+ return this.getRepository('user').getUser(username, options);
}
- async saveToken(tokenId, userId, tokenName, expiresAt) {
- return this.getRepository('token').saveToken(tokenId, userId, tokenName, expiresAt);
+ async saveToken(tokenId, userId, tokenName, expiresAt, options = {}) {
+ return this.getRepository('token').saveToken(
+ tokenId,
+ userId,
+ tokenName,
+ expiresAt,
+ options,
+ );
}
- async isTokenRevoked(tokenId) {
- return this.getRepository('token').isTokenRevoked(tokenId);
+ async isTokenRevoked(tokenId, options = {}) {
+ return this.getRepository('token').isTokenRevoked(tokenId, options);
}
- async getTokenAbilities(tokenId) {
- return this.getRepository('token').getTokenAbilities(tokenId);
+ async getTokenAbilities(tokenId, options = {}) {
+ return this.getRepository('token').getTokenAbilities(tokenId, options);
}
- async insertBlockchainEvents(events) {
- return this.getRepository('blockchain_event').insertBlockchainEvents(events);
+ async insertBlockchainEvents(events, options = {}) {
+ return this.getRepository('blockchain_event').insertBlockchainEvents(events, options);
}
- async getAllUnprocessedBlockchainEvents(eventNames, blockchainId) {
+ async getAllUnprocessedBlockchainEvents(blockchain, eventNames, options = {}) {
return this.getRepository('blockchain_event').getAllUnprocessedBlockchainEvents(
+ blockchain,
eventNames,
- blockchainId,
+ options,
);
}
- async markBlockchainEventsAsProcessed(events) {
- return this.getRepository('blockchain_event').markBlockchainEventsAsProcessed(events);
- }
-
- async removeBlockchainEvents(contract) {
- return this.getRepository('blockchain_event').removeBlockchainEvents(contract);
+ async markAllBlockchainEventsAsProcessed(blockchain, options = {}) {
+ return this.getRepository('blockchain_event').markAllBlockchainEventsAsProcessed(
+ blockchain,
+ options,
+ );
}
- async removeEvents(ids) {
- return this.getRepository('blockchain_event').removeEvents(ids);
+ async removeEvents(ids, options = {}) {
+ return this.getRepository('blockchain_event').removeEvents(ids, options);
}
- async findProcessedEvents(timestamp, limit) {
- return this.getRepository('blockchain_event').findProcessedEvents(timestamp, limit);
+ async removeContractEventsAfterBlock(
+ blockchain,
+ contract,
+ contractAddress,
+ blockNumber,
+ transactionIndex,
+ options = {},
+ ) {
+ return this.getRepository('blockchain_event').removeContractEventsAfterBlock(
+ blockchain,
+ contract,
+ contractAddress,
+ blockNumber,
+ transactionIndex,
+ options,
+ );
}
- async removeLastCheckedBlockForContract(contract) {
- return this.getRepository('blockchain').removeLastCheckedBlockForContract(contract);
+ async findProcessedEvents(timestamp, limit, options = {}) {
+ return this.getRepository('blockchain_event').findProcessedEvents(
+ timestamp,
+ limit,
+ options,
+ );
}
- async getLastCheckedBlock(blockchainId, contract) {
- return this.getRepository('blockchain').getLastCheckedBlock(blockchainId, contract);
+ async getLastCheckedBlock(blockchain, options = {}) {
+ return this.getRepository('blockchain').getLastCheckedBlock(blockchain, options);
}
- async updateLastCheckedBlock(blockchainId, currentBlock, timestamp, contract) {
+ async updateLastCheckedBlock(blockchain, currentBlock, timestamp, options = {}) {
return this.getRepository('blockchain').updateLastCheckedBlock(
- blockchainId,
+ blockchain,
currentBlock,
timestamp,
- contract,
+ options,
);
}
- async getOrCreateParanetById(paranetId) {
- return this.getRepository('paranet').getOrCreateParanet(paranetId);
- }
-
- async updateParanetKaCount(paranetId, blockchainId, kaCount) {
- return this.getRepository('paranet').updateParanetKaCount(paranetId, blockchainId, kaCount);
- }
-
- async updateServiceAgreementRecord(
- blockchainId,
- contract,
- tokenId,
- agreementId,
- startTime,
- epochsNumber,
- epochLength,
- scoreFunctionId,
- proofWindowOffsetPerc,
- hashFunctionId,
- keyword,
- assertionId,
- stateIndex,
- dataSource,
- lastCommitEpoch,
- lastProofEpoch,
- ) {
- if (this.initialized) {
- return this.getRepository('service_agreement').updateServiceAgreementRecord(
- blockchainId,
- contract,
- tokenId,
- agreementId,
- startTime,
- epochsNumber,
- epochLength,
- scoreFunctionId,
- proofWindowOffsetPerc,
- hashFunctionId,
- keyword,
- assertionId,
- stateIndex,
- dataSource,
- lastCommitEpoch,
- lastProofEpoch,
- );
- }
- }
-
- async updateServiceAgreementForTokenId(tokenId, agreementId, keyword, assertionId, stateIndex) {
- if (this.initialized) {
- return this.getRepository('service_agreement').updateServiceAgreementForTokenId(
- tokenId,
- agreementId,
- keyword,
- assertionId,
- stateIndex,
- );
- }
- }
-
- async serviceAgreementExists(blockchain, tokenId) {
- if (this.initialized) {
- return this.getRepository('service_agreement').serviceAgreementExists(
- blockchain,
- tokenId,
- );
- }
- }
-
- async bulkCreateServiceAgreementRecords(records) {
- if (this.initialized) {
- return this.getRepository('service_agreement').bulkCreateServiceAgreementRecords(
- records,
- );
- }
- }
-
- async getServiceAgreementRecord(agreementId) {
- if (this.initialized) {
- return this.getRepository('service_agreement').getServiceAgreementRecord(agreementId);
- }
- }
-
- async updateServiceAgreementLastCommitEpoch(agreementId, lastCommitEpoch) {
- if (this.initialized) {
- return this.getRepository('service_agreement').updateServiceAgreementLastCommitEpoch(
- agreementId,
- lastCommitEpoch,
- );
- }
- }
-
- async updateServiceAgreementLastProofEpoch(agreementId, lastProofEpoch) {
- if (this.initialized) {
- return this.getRepository('service_agreement').updateServiceAgreementLastProofEpoch(
- agreementId,
- lastProofEpoch,
- );
- }
- }
-
- async removeServiceAgreementRecord(blockchainId, contract, tokenId) {
- if (this.initialized) {
- return this.getRepository('service_agreement').removeServiceAgreementRecord(
- blockchainId,
- contract,
- tokenId,
- );
- }
- }
-
- async getCountOfServiceAgreementsByBlockchainAndContract(blockchainId, contract) {
- if (this.initialized) {
- return this.getRepository(
- 'service_agreement',
- ).getCountOfServiceAgreementsByBlockchainAndContract(blockchainId, contract);
- }
- }
-
- async removeServiceAgreementsByBlockchainAndContract(blockchainId, contract) {
- if (this.initialized) {
- return this.getRepository(
- 'service_agreement',
- ).removeServiceAgreementsByBlockchainAndContract(blockchainId, contract);
- }
+ async addToParanetKaCount(paranetId, blockchainId, kaCount, options = {}) {
+ return this.getRepository('paranet').addToParanetKaCount(
+ paranetId,
+ blockchainId,
+ kaCount,
+ options,
+ );
}
- async getEligibleAgreementsForSubmitCommit(
- timestampSeconds,
- blockchain,
- commitWindowDurationPerc,
- ask,
- startTimeDelay,
- ) {
- if (this.initialized) {
- return this.getRepository('service_agreement').getEligibleAgreementsForSubmitCommit(
- timestampSeconds,
- blockchain,
- commitWindowDurationPerc,
- ask,
- startTimeDelay,
- );
- }
+ async createParanetRecord(name, description, paranetId, blockchainId, options = {}) {
+ this.getRepository('paranet').createParanetRecord(
+ name,
+ description,
+ paranetId,
+ blockchainId,
+ options,
+ );
}
- async getEligibleAgreementsForSubmitProof(
- timestampSeconds,
- blockchain,
- proofWindowDurationPerc,
- ) {
- if (this.initialized) {
- return this.getRepository('service_agreement').getEligibleAgreementsForSubmitProof(
- timestampSeconds,
- blockchain,
- proofWindowDurationPerc,
- );
- }
+ async paranetExists(paranetId, blockchainId, options = {}) {
+ return this.getRepository('paranet').paranetExists(paranetId, blockchainId, options);
}
- async removeServiceAgreements(agreementIds) {
- return this.getRepository('service_agreement').removeServiceAgreements(agreementIds);
+ async getParanet(paranetId, blockchainId, options = {}) {
+ return this.getRepository('paranet').getParanet(paranetId, blockchainId, options);
}
- async removeServiceAgreementsForBlockchain(blockchainId) {
- return this.getRepository('service_agreement').removeServiceAgreementsForBlockchain(
+ async getParanetKnowledgeAssetsCount(paranetId, blockchainId, options = {}) {
+ return this.getRepository('paranet').getParanetKnowledgeAssetsCount(
+ paranetId,
blockchainId,
+ options,
);
}
- async updateServiceAgreementEpochsNumber(agreementId, epochsNumber) {
- return this.getRepository('service_agreement').updateServiceAgreementEpochsNumber(
- agreementId,
- epochsNumber,
+ async createMissedParanetAssetRecord(missedParanetAssset, options = {}) {
+ return this.getRepository('missed_paranet_asset').createMissedParanetAssetRecord(
+ missedParanetAssset,
+ options,
);
}
- async getNumberOfActiveServiceAgreements() {
- return this.getRepository('service_agreement').getNumberOfActiveServiceAgreements();
- }
-
- async getServiceAgreements(fromTokenId, batchSize) {
- return this.getRepository('service_agreement').getServiceAgreements(fromTokenId, batchSize);
- }
-
- async getServiceAgreementsTokenIds(fromTokenId, blockchainId) {
- return this.getRepository('service_agreement').getServiceAgreementsTokenIds(
- fromTokenId,
+ async getMissedParanetAssetRecords(blockchainId, options = {}) {
+ return this.getRepository('missed_paranet_asset').getMissedParanetAssetRecords(
blockchainId,
+ options,
);
}
- async getLatestServiceAgreementTokenId(blockchainId) {
- return this.getRepository('service_agreement').getLatestServiceAgreementTokenId(
- blockchainId,
+ async missedParanetAssetRecordExists(ual, options = {}) {
+ return this.getRepository('missed_paranet_asset').missedParanetAssetRecordExists(
+ ual,
+ options,
);
}
- async findDuplicateServiceAgreements(blockchainId) {
- return this.getRepository('service_agreement').findDuplicateServiceAgreements(blockchainId);
+ async removeMissedParanetAssetRecordsByUAL(ual, options = {}) {
+ return this.getRepository('missed_paranet_asset').removeMissedParanetAssetRecordsByUAL(
+ ual,
+ options,
+ );
}
- async findServiceAgreementsByTokenIds(tokenIds, blockchainId) {
- return this.getRepository('service_agreement').findServiceAgreementsByTokenIds(
- tokenIds,
- blockchainId,
+ async getMissedParanetAssetsRecordsWithRetryCount(
+ paranetUal,
+ retryCountLimit,
+ retryDelayInMs,
+ limit = null,
+ options = {},
+ ) {
+ return this.getRepository(
+ 'missed_paranet_asset',
+ ).getMissedParanetAssetsRecordsWithRetryCount(
+ paranetUal,
+ retryCountLimit,
+ retryDelayInMs,
+ limit,
+ options,
);
}
- async createParanetRecord(name, description, paranetId, blockchainId) {
- this.getRepository('paranet').createParanetRecord(
- name,
- description,
- paranetId,
- blockchainId,
+ async getCountOfMissedAssetsOfParanet(ual, options = {}) {
+ return this.getRepository('missed_paranet_asset').getCountOfMissedAssetsOfParanet(
+ ual,
+ options,
);
}
- async paranetExists(paranetId, blockchainId) {
- return this.getRepository('paranet').paranetExists(paranetId, blockchainId);
+ async getFilteredCountOfMissedAssetsOfParanet(
+ ual,
+ retryCountLimit,
+ retryDelayInMs,
+ options = {},
+ ) {
+ return this.getRepository('missed_paranet_asset').getFilteredCountOfMissedAssetsOfParanet(
+ ual,
+ retryCountLimit,
+ retryDelayInMs,
+ options,
+ );
}
- async getParanet(paranetId, blockchainId) {
- return this.getRepository('paranet').getParanet(paranetId, blockchainId);
+ async getParanetsBlockchains(options = {}) {
+ return this.getRepository('paranet').getParanetsBlockchains(options);
}
- async getParanetKnowledgeAssetsCount(paranetId, blockchainId) {
- return this.getRepository('paranet').getParanetKnowledgeAssetsCount(
- paranetId,
+ async createParanetSyncedAssetRecord(
+ blockchainId,
+ ual,
+ paranetUal,
+ publicAssertionId,
+ privateAssertionId,
+ sender,
+ transactionHash,
+ dataSource,
+ options = {},
+ ) {
+ return this.getRepository('paranet_synced_asset').createParanetSyncedAssetRecord(
blockchainId,
+ ual,
+ paranetUal,
+ publicAssertionId,
+ privateAssertionId,
+ sender,
+ transactionHash,
+ dataSource,
+ options,
);
}
- async createMissedParanetAssetRecord(missedParanetAssset) {
- return this.getRepository('missed_paranet_asset').createMissedParanetAssetRecord(
- missedParanetAssset,
+ async getParanetSyncedAssetRecordByUAL(ual, options = {}) {
+ return this.getRepository('paranet_synced_asset').getParanetSyncedAssetRecordByUAL(
+ ual,
+ options,
);
}
- async getMissedParanetAssetRecords(blockchainId) {
- return this.getRepository('missed_paranet_asset').getMissedParanetAssetRecords(
- blockchainId,
- );
+ async getParanetSyncedAssetRecordsCountByDataSource(paranetUal, dataSource, options = {}) {
+ return this.getRepository(
+ 'paranet_synced_asset',
+ ).getParanetSyncedAssetRecordsCountByDataSource(paranetUal, dataSource, options);
}
- async removeMissedParanetAssetRecord(ual) {
- return this.getRepository('missed_paranet_asset').removeMissedParanetAssetRecord(ual);
+ async paranetSyncedAssetRecordExists(ual, options = {}) {
+ return this.getRepository('paranet_synced_asset').paranetSyncedAssetRecordExists(
+ ual,
+ options,
+ );
}
- async getMissedParanetAssetsRecords(paranetUal, count) {
- return this.getRepository('missed_paranet_asset').getMissedParanetAssetsRecords(
- paranetUal,
- count,
+ async incrementParanetKaCount(paranetId, blockchainId, options = {}) {
+ return this.getRepository('paranet').incrementParanetKaCount(
+ paranetId,
+ blockchainId,
+ options,
);
}
- async getCountOfMissedAssetsOfParanet(ual) {
- return this.getRepository('missed_paranet_asset').getCountOfMissedAssetsOfParanet(ual);
+ async getFinalityAcksCount(ual, options = {}) {
+ return this.getRepository('finality_status').getFinalityAcksCount(ual, options);
}
- async getParanetsBlockchains() {
- return this.getRepository('paranet').getParanetsBlockchains();
+ async saveFinalityAck(publishOperationId, ual, peerId, options = {}) {
+ return this.getRepository('finality_status').saveFinalityAck(
+ publishOperationId,
+ ual,
+ peerId,
+ options,
+ );
}
}
diff --git a/src/modules/telemetry/implementation/ot-telemetry.js b/src/modules/telemetry/implementation/ot-telemetry.js
deleted file mode 100644
index c4460c7572..0000000000
--- a/src/modules/telemetry/implementation/ot-telemetry.js
+++ /dev/null
@@ -1,29 +0,0 @@
-import axios from 'axios';
-
-class OTTelemetry {
- async initialize(config, logger) {
- this.config = config;
- this.logger = logger;
- }
-
- listenOnEvents(eventEmitter, onEventReceived) {
- return eventEmitter.on('operation_status_changed', onEventReceived);
- }
-
- async sendTelemetryData(nodeData, events) {
- const signalingMessage = { nodeData, events };
- const config = {
- method: 'post',
- url: this.config.signalingServerUrl,
- headers: {
- 'Content-Type': 'application/json',
- },
- data: JSON.stringify(signalingMessage),
- };
- const response = await axios(config);
- const isSuccess = response.status === 200;
- return isSuccess;
- }
-}
-
-export default OTTelemetry;
diff --git a/src/modules/telemetry/implementation/quest-telemetry.js b/src/modules/telemetry/implementation/quest-telemetry.js
new file mode 100644
index 0000000000..13faf4fab6
--- /dev/null
+++ b/src/modules/telemetry/implementation/quest-telemetry.js
@@ -0,0 +1,48 @@
+import { Sender } from '@questdb/nodejs-client';
+
+class QuestTelemetry {
+ async initialize(config, logger) {
+ this.config = config;
+ this.logger = logger;
+ this.localSender = Sender.fromConfig(this.config.localEndpoint);
+ if (this.config.sendToSignalingService) {
+ this.signalingServiceSender = Sender.fromConfig(this.config.signalingServiceEndpoint);
+ }
+ }
+
+ listenOnEvents(eventEmitter, onEventReceived) {
+ return eventEmitter.on('operation_status_changed', onEventReceived);
+ }
+
+ async sendTelemetryData(
+ operationId,
+ timestamp,
+ blockchainId = '',
+ name = '',
+ value1 = null,
+ value2 = null,
+ value3 = null,
+ ) {
+ try {
+ const table = this.localSender.table('event');
+
+ table.symbol('operationId', operationId || 'NULL');
+ table.symbol('blockchainId', blockchainId || 'NULL');
+ table.symbol('name', name || 'NULL');
+ if (value1 !== null) table.symbol('value1', value1);
+ if (value2 !== null) table.symbol('value2', value2);
+ if (value3 !== null) table.symbol('value3', value3);
+ table.timestampColumn('timestamp', timestamp * 1000);
+
+ await table.at(Date.now(), 'ms');
+ await this.localSender.flush();
+ await this.localSender.close();
+
+ // this.logger.info('Event telemetry successfully sent to local QuestDB');
+ } catch (err) {
+ this.logger.error(`Error sending telemetry to local QuestDB: ${err.message}`);
+ }
+ }
+}
+
+export default QuestTelemetry;
diff --git a/src/modules/telemetry/telemetry-module-manager.js b/src/modules/telemetry/telemetry-module-manager.js
index f5ef04377e..7c80fd4150 100644
--- a/src/modules/telemetry/telemetry-module-manager.js
+++ b/src/modules/telemetry/telemetry-module-manager.js
@@ -10,6 +10,22 @@ class TelemetryModuleManager extends BaseModuleManager {
return 'telemetry';
}
+ async initialize() {
+ await super.initialize();
+
+ this.listenOnEvents((eventData) => {
+ this.sendTelemetryData(
+ eventData.operationId,
+ eventData.timestamp,
+ eventData.blockchainId,
+ eventData.lastEvent,
+ eventData.value1,
+ eventData.value2,
+ eventData.value3,
+ );
+ });
+ }
+
listenOnEvents(onEventReceived) {
if (this.config.modules.telemetry.enabled && this.initialized) {
return this.getImplementation().module.listenOnEvents(
@@ -19,9 +35,17 @@ class TelemetryModuleManager extends BaseModuleManager {
}
}
- async sendTelemetryData(nodeData, events) {
- if (this.initialized) {
- return this.getImplementation().module.sendTelemetryData(nodeData, events);
+ async sendTelemetryData(operationId, timestamp, blockchainId, name, value1, value2, value3) {
+ if (this.config.modules.telemetry.enabled && this.initialized) {
+ return this.getImplementation().module.sendTelemetryData(
+ operationId,
+ timestamp,
+ blockchainId,
+ name,
+ value1,
+ value2,
+ value3,
+ );
}
}
}
diff --git a/src/modules/triple-store/implementation/ot-blazegraph/ot-blazegraph.js b/src/modules/triple-store/implementation/ot-blazegraph/ot-blazegraph.js
index bf770bdede..e6567c5b75 100644
--- a/src/modules/triple-store/implementation/ot-blazegraph/ot-blazegraph.js
+++ b/src/modules/triple-store/implementation/ot-blazegraph/ot-blazegraph.js
@@ -19,7 +19,18 @@ class OtBlazegraph extends OtTripleStore {
if (!(await this.repositoryExists(repository))) {
await axios.post(
`${url}/blazegraph/namespace`,
- `com.bigdata.rdf.sail.truthMaintenance=false\ncom.bigdata.namespace.${name}.lex.com.bigdata.btree.BTree.branchingFactor=400\ncom.bigdata.rdf.store.AbstractTripleStore.textIndex=false\ncom.bigdata.rdf.store.AbstractTripleStore.justify=false\ncom.bigdata.namespace.${name}.spo.com.bigdata.btree.BTree.branchingFactor=1024\ncom.bigdata.rdf.store.AbstractTripleStore.statementIdentifiers=false\ncom.bigdata.rdf.store.AbstractTripleStore.axiomsClass=com.bigdata.rdf.axioms.NoAxioms\ncom.bigdata.rdf.sail.namespace=${name}\ncom.bigdata.rdf.store.AbstractTripleStore.quads=true\ncom.bigdata.rdf.store.AbstractTripleStore.geoSpatial=false\ncom.bigdata.journal.Journal.groupCommit=false\ncom.bigdata.rdf.sail.isolatableIndices=false\n`,
+ `com.bigdata.rdf.sail.truthMaintenance=false\n` +
+ `com.bigdata.namespace.${name}.lex.com.bigdata.btree.BTree.branchingFactor=400\n` +
+ `com.bigdata.rdf.store.AbstractTripleStore.textIndex=false\n` +
+ `com.bigdata.rdf.store.AbstractTripleStore.justify=false\n` +
+ `com.bigdata.namespace.${name}.spo.com.bigdata.btree.BTree.branchingFactor=1024\n` +
+ `com.bigdata.rdf.store.AbstractTripleStore.statementIdentifiers=false\n` +
+ `com.bigdata.rdf.store.AbstractTripleStore.axiomsClass=com.bigdata.rdf.axioms.NoAxioms\n` +
+ `com.bigdata.rdf.sail.namespace=${name}\n` +
+ `com.bigdata.rdf.store.AbstractTripleStore.quads=true\n` +
+ `com.bigdata.rdf.store.AbstractTripleStore.geoSpatial=false\n` +
+ `com.bigdata.journal.Journal.groupCommit=false\n` +
+ `com.bigdata.rdf.sail.isolatableIndices=false\n`,
{
headers: {
'Content-Type': 'text/plain',
@@ -37,21 +48,6 @@ class OtBlazegraph extends OtTripleStore {
].sparqlEndpointUpdate = `${url}/blazegraph/namespace/${name}/sparql`;
}
- async insertAssertion(repository, assertionId, assertionNquads) {
- const exists = await this.assertionExists(repository, assertionId);
-
- if (!exists) {
- return axios({
- method: 'post',
- url: `${this.repositories[repository].sparqlEndpointUpdate}?context-uri=assertion:${assertionId}`,
- headers: {
- 'Content-Type': 'text/x-nquads',
- },
- data: assertionNquads,
- });
- }
- }
-
hasUnicodeCodePoints(input) {
return this.unicodeRegex.test(input);
}
diff --git a/src/modules/triple-store/implementation/ot-fuseki/ot-fuseki.js b/src/modules/triple-store/implementation/ot-fuseki/ot-fuseki.js
index 1f499d3978..f0f41d2862 100644
--- a/src/modules/triple-store/implementation/ot-fuseki/ot-fuseki.js
+++ b/src/modules/triple-store/implementation/ot-fuseki/ot-fuseki.js
@@ -6,23 +6,27 @@ class OtFuseki extends OtTripleStore {
await super.initialize(config, logger);
await Promise.all(
Object.keys(this.repositories).map(async (repository) => {
- const { url, name } = this.repositories[repository];
-
- if (!(await this.repositoryExists(repository))) {
- await axios.post(
- `${url}/$/datasets?dbName=${name}&dbType=tdb`,
- {},
- {
- headers: {
- 'Content-Type': 'text/plain',
- },
- },
- );
- }
+ await this.createRepository(repository);
}),
);
}
+ async createRepository(repository) {
+ const { url, name } = this.repositories[repository];
+
+ if (!(await this.repositoryExists(repository))) {
+ await axios.post(
+ `${url}/$/datasets?dbName=${name}&dbType=tdb`,
+ {},
+ {
+ headers: {
+ 'Content-Type': 'text/plain',
+ },
+ },
+ );
+ }
+ }
+
initializeSparqlEndpoints(repository) {
const { url, name } = this.repositories[repository];
this.repositories[repository].sparqlEndpoint = `${url}/${name}/sparql`;
diff --git a/src/modules/triple-store/implementation/ot-graphdb/ot-graphdb.js b/src/modules/triple-store/implementation/ot-graphdb/ot-graphdb.js
index 97745cb2cd..851d987aa7 100644
--- a/src/modules/triple-store/implementation/ot-graphdb/ot-graphdb.js
+++ b/src/modules/triple-store/implementation/ot-graphdb/ot-graphdb.js
@@ -10,47 +10,51 @@ class OtGraphdb extends OtTripleStore {
await Promise.all(
Object.keys(this.repositories).map(async (repository) => {
- const { url, name } = this.repositories[repository];
- const serverConfig = new server.ServerClientConfig(url)
- .setTimeout(40000)
- .setHeaders({
- Accept: http.RDFMimeType.N_QUADS,
- })
- .setKeepAlive(true);
- const s = new server.GraphDBServerClient(serverConfig);
- // eslint-disable-next-line no-await-in-loop
- const exists = await s.hasRepository(name);
- if (!exists) {
- try {
- // eslint-disable-next-line no-await-in-loop
- await s.createRepository(
- new repo.RepositoryConfig(
- name,
- '',
- new Map(),
- '',
- 'Repo title',
- repo.RepositoryType.FREE,
- ),
- );
- } catch (e) {
- // eslint-disable-next-line no-await-in-loop
- await s.createRepository(
- new repo.RepositoryConfig(
- name,
- '',
- {},
- 'graphdb:SailRepository',
- 'Repo title',
- 'graphdb',
- ),
- );
- }
- }
+ await this.createRepository(repository);
}),
);
}
+ async createRepository(repository) {
+ const { url, name } = this.repositories[repository];
+ const serverConfig = new server.ServerClientConfig(url)
+ .setTimeout(40000)
+ .setHeaders({
+ Accept: http.RDFMimeType.N_QUADS,
+ })
+ .setKeepAlive(true);
+ const s = new server.GraphDBServerClient(serverConfig);
+ // eslint-disable-next-line no-await-in-loop
+ const exists = await s.hasRepository(name);
+ if (!exists) {
+ try {
+ // eslint-disable-next-line no-await-in-loop
+ await s.createRepository(
+ new repo.RepositoryConfig(
+ name,
+ '',
+ new Map(),
+ '',
+ 'Repo title',
+ repo.RepositoryType.FREE,
+ ),
+ );
+ } catch (e) {
+ // eslint-disable-next-line no-await-in-loop
+ await s.createRepository(
+ new repo.RepositoryConfig(
+ name,
+ '',
+ {},
+ 'graphdb:SailRepository',
+ 'Repo title',
+ 'graphdb',
+ ),
+ );
+ }
+ }
+ }
+
initializeSparqlEndpoints(repository) {
const { url, name } = this.repositories[repository];
this.repositories[repository].sparqlEndpoint = `${url}/repositories/${name}`;
@@ -108,6 +112,20 @@ class OtGraphdb extends OtTripleStore {
);
}
+ async repositoryExists(repository) {
+ const { url, name } = this.repositories[repository];
+
+ const serverConfig = new server.ServerClientConfig(url)
+ .setTimeout(40000)
+ .setHeaders({
+ Accept: http.RDFMimeType.N_QUADS,
+ })
+ .setKeepAlive(true);
+ const s = new server.GraphDBServerClient(serverConfig);
+
+ return s.hasRepository(name);
+ }
+
getName() {
return 'GraphDB';
}
diff --git a/src/modules/triple-store/implementation/ot-triple-store.js b/src/modules/triple-store/implementation/ot-triple-store.js
index f15649d437..53c89af9c5 100644
--- a/src/modules/triple-store/implementation/ot-triple-store.js
+++ b/src/modules/triple-store/implementation/ot-triple-store.js
@@ -5,6 +5,10 @@ import {
TRIPLE_STORE_CONNECT_MAX_RETRIES,
TRIPLE_STORE_CONNECT_RETRY_FREQUENCY,
MEDIA_TYPES,
+ UAL_PREDICATE,
+ BASE_NAMED_GRAPHS,
+ TRIPLE_ANNOTATION_LABEL_PREDICATE,
+ TRIPLES_VISIBILITY,
} from '../../../constants/constants.js';
class OtTripleStore {
@@ -97,172 +101,427 @@ class OtTripleStore {
await Promise.all(ensureConnectionPromises);
}
- async assetExists(repository, ual) {
- const query = `PREFIX schema: <${SCHEMA_CONTEXT}>
- ASK WHERE {
- GRAPH {
- <${ual}> ?p ?o
- }
- }`;
+ async insetAssertionInNamedGraph(repository, namedGraph, nquads) {
+ const query = `
+ PREFIX schema: <${SCHEMA_CONTEXT}>
+ INSERT DATA {
+ GRAPH <${namedGraph}> {
+ ${nquads.join('\n')}
+ }
+ }
+ `;
- return this.ask(repository, query);
+ await this.queryVoid(repository, query);
}
- async insertAssetAssertionLink(repository, ual, assertionId) {
- const assetExists = await this.assetExists(repository, ual);
+ async deleteUniqueKnowledgeCollectionTriplesFromUnifiedGraph(repository, namedGraph, ual) {
+ const query = `
+ DELETE {
+ GRAPH <${namedGraph}> {
+ ?s ?p ?o .
+ << ?s ?p ?o >> ?annotationPredicate ?annotationValue .
+ }
+ }
+ WHERE {
+ GRAPH <${namedGraph}> {
+ << ?s ?p ?o >> ${UAL_PREDICATE} ?annotationValue .
+ }
+ FILTER(STRSTARTS(STR(?annotationValue), "${ual}/"))
- if (assetExists) {
- const insertQuery = `
- PREFIX schema: <${SCHEMA_CONTEXT}>
- INSERT DATA {
- GRAPH {
- <${ual}> schema:assertion .
+ {
+ SELECT ?s ?p ?o (COUNT(?annotationValue) AS ?annotationCount)
+ WHERE {
+ GRAPH <${namedGraph}> {
+ << ?s ?p ?o >> ${UAL_PREDICATE} ?annotationValue .
+ }
}
- }`;
- await this.queryVoid(repository, insertQuery);
- }
+ GROUP BY ?s ?p ?o
+ HAVING(?annotationCount = 1)
+ }
+ }
+ `;
+
+ await this.queryVoid(repository, query);
}
- async deleteAssetAssertionLink(repository, ual, assertionId) {
- const linkExists = await this.assetAssertionLinkExists(repository, ual, assertionId);
+ async getKnowledgeCollectionFromUnifiedGraph(repository, namedGraph, ual, sort) {
+ const query = `
+ PREFIX schema: <${SCHEMA_CONTEXT}>
+ CONSTRUCT { ?s ?p ?o . }
+ WHERE {
+ GRAPH <${namedGraph}> {
+ << ?s ?p ?o >> ${UAL_PREDICATE} ?ual .
+ FILTER(STRSTARTS(STR(?ual), "${ual}/"))
+ }
+ }
+ ${sort ? 'ORDER BY ?s' : ''}
+ `;
+
+ return this.construct(repository, query);
+ }
- if (linkExists) {
- const deleteQuery = `
- PREFIX schema: <${SCHEMA_CONTEXT}>
- DELETE DATA {
- GRAPH {
- <${ual}> schema:assertion .
+ async getKnowledgeCollectionPublicFromUnifiedGraph(repository, namedGraph, ual, sort) {
+ const query = `
+ PREFIX schema: <${SCHEMA_CONTEXT}>
+ CONSTRUCT { ?s ?p ?o }
+ WHERE {
+ GRAPH <${namedGraph}> {
+ << ?s ?p ?o >> ${UAL_PREDICATE} ?ual .
+ FILTER(STRSTARTS(STR(?ual), "${ual}/"))
+ FILTER NOT EXISTS {
+ << ?s ?p ?o >> ${TRIPLE_ANNOTATION_LABEL_PREDICATE} "private" .
}
- }`;
- await this.queryVoid(repository, deleteQuery);
- }
+ }
+ }
+ ${sort ? 'ORDER BY ?s' : ''}
+ `;
+
+ return this.construct(repository, query);
+ }
+
+ async knowledgeCollectionExistsInUnifiedGraph(repository, namedGraph, ual) {
+ const query = `
+ ASK
+ WHERE {
+ GRAPH <${namedGraph}> {
+ << ?s ?p ?o >> ${UAL_PREDICATE} ?ual
+ FILTER(STRSTARTS(STR(?ual), "${ual}/"))
+ }
+ }
+ `;
+
+ return this.ask(repository, query);
}
- async updateAssetAssertionLink(repository, ual, oldAssertionId, newAssertionId) {
- const linkExists = await this.assetAssertionLinkExists(repository, ual, oldAssertionId);
+ async deleteUniqueKnowledgeAssetTriplesFromUnifiedGraph(repository, namedGraph, ual) {
+ const query = `
+ DELETE {
+ GRAPH <${namedGraph}> {
+ ?s ?p ?o .
+ << ?s ?p ?o >> ?annotationPredicate ?annotationValue .
+ }
+ }
+ WHERE {
+ GRAPH <${namedGraph}> {
+ << ?s ?p ?o >> ${UAL_PREDICATE} <${ual}> .
+ }
- if (linkExists) {
- const updateQuery = `
- PREFIX schema: <${SCHEMA_CONTEXT}>
- DELETE {
- GRAPH {
- <${ual}> schema:assertion .
+ {
+ SELECT ?s ?p ?o (COUNT(?annotationValue) AS ?annotationCount)
+ WHERE {
+ GRAPH <${namedGraph}> {
+ << ?s ?p ?o >> ${UAL_PREDICATE} ?annotationValue .
+ }
}
- } INSERT {
- GRAPH {
- <${ual}> schema:assertion .
+ GROUP BY ?s ?p ?o
+ HAVING(?annotationCount = 1)
+ }
+ }
+ `;
+
+ await this.queryVoid(repository, query);
+ }
+
+ async getKnowledgeAssetFromUnifiedGraph(repository, namedGraph, ual) {
+ const query = `
+ PREFIX schema: <${SCHEMA_CONTEXT}>
+ CONSTRUCT { ?s ?p ?o . }
+ WHERE {
+ GRAPH <${namedGraph}> {
+ << ?s ?p ?o >> ${UAL_PREDICATE} <${ual}> .
+ }
+ }
+ `;
+
+ return this.construct(repository, query);
+ }
+
+ async getKnowledgeAssetPublicFromUnifiedGraph(repository, namedGraph, ual) {
+ const query = `
+ PREFIX schema: <${SCHEMA_CONTEXT}>
+ CONSTRUCT { ?s ?p ?o }
+ WHERE {
+ GRAPH <${namedGraph}> {
+ << ?s ?p ?o >> ${UAL_PREDICATE} <${ual}> .
+ FILTER NOT EXISTS {
+ << ?s ?p ?o >> ${TRIPLE_ANNOTATION_LABEL_PREDICATE} "private" .
}
- } WHERE {
- GRAPH {
- <${ual}> schema:assertion .
+ }
+ }
+ `;
+
+ return this.construct(repository, query);
+ }
+
+ async knowledgeAssetExistsInUnifiedGraph(repository, namedGraph, ual) {
+ const query = `
+ ASK
+ WHERE {
+ GRAPH <${namedGraph}> {
+ << ?s ?p ?o >> ${UAL_PREDICATE} <${ual}>
+ }
+ }
+ `;
+
+ return this.ask(repository, query);
+ }
+
+ async createKnowledgeCollectionNamedGraphs(repository, uals, assetsNQuads, visibility) {
+ const query = `
+ PREFIX schema: <${SCHEMA_CONTEXT}>
+ INSERT DATA {
+ ${uals
+ .map(
+ (ual, index) => `
+ GRAPH <${ual}/${visibility}> {
+ ${assetsNQuads[index].join('\n')}
}
- }`;
- await this.queryVoid(repository, updateQuery);
+ `,
+ )
+ .join('\n')}
+ }
+ `;
+
+ await this.queryVoid(repository, query);
+ }
+
+ async deleteKnowledgeCollectionNamedGraphs(repository, uals) {
+ const query = `${uals.map((ual) => `DROP GRAPH <${ual}>`).join(';\n')};`;
+
+ await this.queryVoid(repository, query);
+ }
+
+ async getKnowledgeCollectionNamedGraphs(repository, tokenIds, ual, visibility) {
+ const namedGraphs = Array.from(
+ { length: tokenIds.endTokenId - tokenIds.startTokenId + 1 },
+ (_, i) => tokenIds.startTokenId + i,
+ )
+ .filter((id) => !tokenIds.burned.includes(id))
+ .map((id) => `${ual}/${id}`);
+ const assertion = {};
+ if (visibility === TRIPLES_VISIBILITY.PUBLIC || visibility === TRIPLES_VISIBILITY.ALL) {
+ const query = `
+ PREFIX schema:
+ CONSTRUCT {
+ ?s ?p ?o .
+ }
+ WHERE {
+ GRAPH ?g {
+ ?s ?p ?o .
+ }
+ VALUES ?g {
+ ${namedGraphs
+ .map((graph) => `<${graph}/${TRIPLES_VISIBILITY.PUBLIC}>`)
+ .join('\n')}
+ }
+ }`;
+ assertion.public = await this.construct(repository, query);
+ }
+ if (visibility === TRIPLES_VISIBILITY.PRIVATE || visibility === TRIPLES_VISIBILITY.ALL) {
+ const query = `
+ PREFIX schema:
+ CONSTRUCT {
+ ?s ?p ?o .
+ }
+ WHERE {
+ GRAPH ?g {
+ ?s ?p ?o .
+ }
+ VALUES ?g {
+ ${namedGraphs
+ .map((graph) => `<${graph}/${TRIPLES_VISIBILITY.PRIVATE}>`)
+ .join('\n')}
+ }
+ }`;
+ assertion.private = await this.construct(repository, query);
}
+
+ return assertion;
}
- async getAssetAssertionLinks(repository, ual) {
- const query = `PREFIX schema: <${SCHEMA_CONTEXT}>
- SELECT ?assertion WHERE {
- GRAPH {
- <${ual}> schema:assertion ?assertion
- }
- }`;
+ async knowledgeCollectionNamedGraphsExist(repository, ual) {
+ const query = `
+ ASK {
+ GRAPH <${ual}/1/public> {
+ ?s ?p ?o
+ }
+ }
+ `;
- return this.select(repository, query);
+ return this.ask(repository, query);
}
- async assetAssertionLinkExists(repository, ual, assertionId) {
+ async deleteKnowledgeAssetNamedGraph(repository, ual) {
+ const query = `
+ DROP GRAPH <${ual}>
+ `;
+
+ await this.queryVoid(repository, query);
+ }
+
+ async getKnowledgeAssetNamedGraph(repository, ual, visibility) {
+ let whereClause;
+
+ switch (visibility) {
+ case TRIPLES_VISIBILITY.PUBLIC:
+ case TRIPLES_VISIBILITY.PRIVATE:
+ whereClause = `
+ WHERE {
+ GRAPH <${ual}/${visibility}> {
+ ?s ?p ?o .
+ }
+ }
+ `;
+ break;
+ case TRIPLES_VISIBILITY.ALL:
+ whereClause = `
+ WHERE {
+ {
+ GRAPH <${ual}/${TRIPLES_VISIBILITY.PUBLIC}> {
+ ?s ?p ?o .
+ }
+ }
+ UNION
+ {
+ GRAPH <${ual}/${TRIPLES_VISIBILITY.PRIVATE}> {
+ ?s ?p ?o .
+ }
+ }
+ }
+ `;
+ break;
+ default:
+ throw new Error(`Unsupported visibility: ${visibility}`);
+ }
+
const query = `
PREFIX schema: <${SCHEMA_CONTEXT}>
+ CONSTRUCT { ?s ?p ?o }
+ ${whereClause}
+ `;
+
+ return this.construct(repository, query);
+ }
+
+ async knowledgeAssetNamedGraphExists(repository, name) {
+ const query = `
ASK {
- GRAPH {
- <${ual}> schema:assertion .
+ GRAPH <${name}> {
+ ?s ?p ?o
}
- }`;
+ }
+ `;
return this.ask(repository, query);
}
- async updateAssetNonAssertionMetadata(repository, ual, assetNquads) {
- const updateQuery = `
+ async insertKnowledgeCollectionMetadata(repository, metadataNQuads) {
+ const query = `
PREFIX schema: <${SCHEMA_CONTEXT}>
- DELETE {
- GRAPH {
- <${ual}> ?p ?o .
- FILTER(?p != schema:assertion)
+ INSERT DATA {
+ GRAPH <${BASE_NAMED_GRAPHS.METADATA}> {
+ ${metadataNQuads}
+ }
+ }
+ `;
+
+ await this.queryVoid(repository, query);
+ }
+
+ async deleteKnowledgeCollectionMetadata(repository, ual) {
+ const query = `
+ DELETE
+ WHERE {
+ GRAPH <${BASE_NAMED_GRAPHS.METADATA}> {
+ ?ual ?p ?o .
+ FILTER(STRSTARTS(STR(?ual), "${ual}/"))
}
}
- INSERT {
- GRAPH {
- ${assetNquads}
+ `;
+
+ await this.queryVoid(repository, query);
+ }
+
+ async getKnowledgeCollectionMetadata(repository, ual) {
+ const query = `
+ CONSTRUCT { ?ual ?p ?o . }
+ WHERE {
+ GRAPH <${BASE_NAMED_GRAPHS.METADATA}> {
+ ?ual ?p ?o .
+ FILTER(STRSTARTS(STR(?ual), "${ual}/"))
}
}
+ `;
+
+ return this.construct(repository, query);
+ }
+
+ async getKnowledgeAssetMetadata(repository, ual) {
+ const query = `
+ CONSTRUCT { <${ual}> ?p ?o . }
WHERE {
- GRAPH {
+ GRAPH <${BASE_NAMED_GRAPHS.METADATA}> {
<${ual}> ?p ?o .
- FILTER(?p != schema:assertion)
}
- }`;
- await this.queryVoid(repository, updateQuery);
+ }
+ `;
+
+ return this.construct(repository, query);
}
- async deleteAssetMetadata(repository, ual) {
- const query = `DELETE WHERE {
- GRAPH {
- <${ual}> ?p ?o
+ async knowledgeCollectionMetadataExists(repository, ual) {
+ const query = `
+ ASK {
+ GRAPH <${BASE_NAMED_GRAPHS.METADATA}> {
+ ?ual ?p ?o
+ FILTER(STRSTARTS(STR(?ual), "${ual}/"))
}
- };`;
+ }
+ `;
- return this.queryVoid(repository, query);
+ return this.ask(repository, query);
}
- async countAssetsWithAssertionId(repository, assertionId) {
- const query = `PREFIX schema: <${SCHEMA_CONTEXT}>
- SELECT (COUNT(DISTINCT ?ual) as ?count)
- WHERE {
- GRAPH {
- ?ual schema:assertion
- }
- }`;
- return this.select(repository, query);
- }
+ async findAllNamedGraphsByUAL(repository, ual) {
+ const query = `
+ SELECT DISTINCT ?g
+ WHERE {
+ GRAPH ?g {
+ ?s ?p ?o
+ }
+ FILTER(STRSTARTS(STR(?g), "${ual}"))
+ }`;
- async getAssetAssertionIds(repository, ual) {
- const query = `PREFIX schema: <${SCHEMA_CONTEXT}>
- SELECT DISTINCT ?assertionId
- WHERE {
- GRAPH {
- <${ual}> schema:assertion ?assertionId .
- }
- }`;
- return this.select(repository, query);
+ this.select(repository, query);
}
- async insertAssetAssertionMetadata(repository, assetNquads) {
+ async findAllSubjectsWithGraphNames(repository, ual) {
const query = `
- PREFIX schema: <${SCHEMA_CONTEXT}>
- INSERT DATA {
- GRAPH {
- ${assetNquads}
+ SELECT DISTINCT ?s ?g
+ WHERE {
+ GRAPH ?g {
+ ?s ?p ?o
}
+ FILTER(STRSTARTS(STR(?g), "${ual}"))
}`;
- await this.queryVoid(repository, query);
+ this.select(repository, query);
}
- async insertAssertion(repository, assertionId, assertionNquads) {
- const exists = await this.assertionExists(repository, assertionId);
+ async getLatestAssertionId(repository, ual) {
+ const query = `SELECT ?assertionId
+ WHERE {
+ GRAPH {
+ <${ual}> ?p ?assertionId
+ }
+ }`;
- if (!exists) {
- const query = `
- PREFIX schema: <${SCHEMA_CONTEXT}>
- INSERT DATA {
- GRAPH {
- ${assertionNquads}
- }
- }`;
- await this.queryVoid(repository, query);
- }
+ const data = await this.select(repository, query);
+
+ const fullAssertionId = data?.[0]?.assertionId;
+
+ const latestAssertionId = fullAssertionId?.replace('assertion:', '');
+
+ return latestAssertionId;
}
async construct(repository, query) {
@@ -285,35 +544,6 @@ class OtTripleStore {
return this.queryEngine.queryBoolean(query, this.repositories[repository].queryContext);
}
- async assertionExists(repository, assertionId) {
- const escapedAssertionId = this.cleanEscapeCharacter(assertionId);
- const query = `ASK WHERE { GRAPH { ?s ?p ?o } }`;
-
- return this.ask(repository, query);
- }
-
- async deleteAssertion(repository, assertionId) {
- const query = `DROP GRAPH `;
-
- await this.queryVoid(repository, query);
- }
-
- async getAssertion(repository, assertionId) {
- const escapedGraphName = this.cleanEscapeCharacter(assertionId);
-
- const query = `PREFIX schema: <${SCHEMA_CONTEXT}>
- CONSTRUCT { ?s ?p ?o }
- WHERE {
- {
- GRAPH
- {
- ?s ?p ?o .
- }
- }
- }`;
- return this.construct(repository, query);
- }
-
async healthCheck() {
return true;
}
@@ -334,10 +564,6 @@ class OtTripleStore {
return response;
}
- cleanEscapeCharacter(query) {
- return query.replace(/['|[\]\\]/g, '\\$&');
- }
-
async reinitialize() {
const ready = await this.healthCheck();
if (!ready) {
@@ -348,6 +574,30 @@ class OtTripleStore {
this.implementation.initialize(this.logger);
}
}
+
+ // OLD REPOSITORIES SUPPORT
+
+ cleanEscapeCharacter(query) {
+ return query.replace(/['|[\]\\]/g, '\\$&');
+ }
+
+ async getV6Assertion(repository, assertionId) {
+ if (!assertionId) return '';
+
+ const escapedGraphName = this.cleanEscapeCharacter(assertionId);
+
+ const query = `PREFIX schema: <${SCHEMA_CONTEXT}>
+ CONSTRUCT { ?s ?p ?o }
+ WHERE {
+ {
+ GRAPH
+ {
+ ?s ?p ?o .
+ }
+ }
+ }`;
+ return this.construct(repository, query);
+ }
}
export default OtTripleStore;
diff --git a/src/modules/triple-store/triple-store-module-manager.js b/src/modules/triple-store/triple-store-module-manager.js
index 75a0d44ad8..cde1972f0f 100644
--- a/src/modules/triple-store/triple-store-module-manager.js
+++ b/src/modules/triple-store/triple-store-module-manager.js
@@ -5,147 +5,236 @@ class TripleStoreModuleManager extends BaseModuleManager {
return this.getImplementation().module.initializeParanetRepository(repository);
}
- async insertAssetAssertionMetadata(implementationName, repository, assetNquads) {
+ async insetAssertionInNamedGraph(implementationName, repository, namedGraph, nquads) {
if (this.getImplementation(implementationName)) {
- return this.getImplementation(implementationName).module.insertAssetAssertionMetadata(
+ return this.getImplementation(implementationName).module.insetAssertionInNamedGraph(
repository,
- assetNquads,
+ namedGraph,
+ nquads,
);
}
}
- async updateAssetNonAssertionMetadata(implementationName, repository, ual, assetNquads) {
+ async deleteUniqueKnowledgeCollectionTriplesFromUnifiedGraph(
+ implementationName,
+ repository,
+ namedGraph,
+ ual,
+ ) {
if (this.getImplementation(implementationName)) {
- return this.getImplementation(implementationName).module.updateAssetMetadata(
+ return this.getImplementation(
+ implementationName,
+ ).module.deleteUniqueKnowledgeCollectionTriplesFromUnifiedGraph(
repository,
+ namedGraph,
ual,
- assetNquads,
);
}
}
- async deleteAssetMetadata(implementationName, repository, ual) {
+ async getKnowledgeCollectionFromUnifiedGraph(
+ implementationName,
+ repository,
+ namedGraph,
+ ual,
+ sort,
+ ) {
if (this.getImplementation(implementationName)) {
- return this.getImplementation(implementationName).module.deleteAssetMetadata(
+ return this.getImplementation(
+ implementationName,
+ ).module.getKnowledgeCollectionFromUnifiedGraph(repository, namedGraph, ual, sort);
+ }
+ }
+
+ async getKnowledgeCollectionPublicFromUnifiedGraph(
+ implementationName,
+ repository,
+ namedGraph,
+ ual,
+ sort,
+ ) {
+ if (this.getImplementation(implementationName)) {
+ return this.getImplementation(
+ implementationName,
+ ).module.getKnowledgeCollectionPublicFromUnifiedGraph(
repository,
+ namedGraph,
ual,
+ sort,
);
}
}
- async assetExists(implementationName, repository, ual) {
+ async knowledgeCollectionExistsInUnifiedGraph(implementationName, repository, namedGraph, ual) {
if (this.getImplementation(implementationName)) {
- return this.getImplementation(implementationName).module.assetExists(repository, ual);
+ return this.getImplementation(
+ implementationName,
+ ).module.knowledgeCollectionExistsInUnifiedGraph(repository, namedGraph, ual);
}
}
- async insertAssetAssertionLink(implementationName, repository, ual, assertionId) {
+ async deleteUniqueKnowledgeAssetTriplesFromUnifiedGraph(
+ implementationName,
+ repository,
+ namedGraph,
+ ual,
+ ) {
if (this.getImplementation(implementationName)) {
- return this.getImplementation(implementationName).module.insertAssetAssertionLink(
- repository,
- ual,
- assertionId,
- );
+ return this.getImplementation(
+ implementationName,
+ ).module.deleteUniqueKnowledgeAssetTriplesFromUnifiedGraph(repository, namedGraph, ual);
+ }
+ }
+
+ async getKnowledgeAssetFromUnifiedGraph(implementationName, repository, namedGraph, ual) {
+ if (this.getImplementation(implementationName)) {
+ return this.getImplementation(
+ implementationName,
+ ).module.getKnowledgeAssetFromUnifiedGraph(repository, namedGraph, ual);
+ }
+ }
+
+ async getKnowledgeAssetPublicFromUnifiedGraph(implementationName, repository, namedGraph, ual) {
+ if (this.getImplementation(implementationName)) {
+ return this.getImplementation(
+ implementationName,
+ ).module.getKnowledgeAssetPublicFromUnifiedGraph(repository, namedGraph, ual);
+ }
+ }
+
+ async knowledgeAssetExistsInUnifiedGraph(implementationName, repository, namedGraph, ual) {
+ if (this.getImplementation(implementationName)) {
+ return this.getImplementation(
+ implementationName,
+ ).module.knowledgeAssetExistsInUnifiedGraph(repository, namedGraph, ual);
}
}
- async deleteAssetAssertionLink(implementationName, repository, ual, assertionId) {
+ async createKnowledgeCollectionNamedGraphs(
+ implementationName,
+ repository,
+ uals,
+ assetsNQuads,
+ visibility,
+ ) {
if (this.getImplementation(implementationName)) {
- return this.getImplementation(implementationName).module.deleteAssetAssertionLink(
+ return this.getImplementation(
+ implementationName,
+ ).module.createKnowledgeCollectionNamedGraphs(
repository,
- ual,
- assertionId,
+ uals,
+ assetsNQuads,
+ visibility,
);
}
}
- async updateAssetAssertionLink(
+ async deleteKnowledgeCollectionNamedGraphs(implementationName, repository, uals) {
+ if (this.getImplementation(implementationName)) {
+ return this.getImplementation(
+ implementationName,
+ ).module.deleteKnowledgeCollectionNamedGraphs(repository, uals);
+ }
+ }
+
+ async getKnowledgeCollectionNamedGraphs(
implementationName,
repository,
ual,
- oldAssertionId,
- newAssertionId,
+ tokenIds,
+ visibility,
+ sort,
) {
if (this.getImplementation(implementationName)) {
- return this.getImplementation(implementationName).module.updateAssetAssertionLink(
- repository,
- ual,
- oldAssertionId,
- newAssertionId,
- );
+ return this.getImplementation(
+ implementationName,
+ ).module.getKnowledgeCollectionNamedGraphs(repository, tokenIds, ual, visibility, sort);
}
}
- async getAssetAssertionLinks(implementationName, repository, ual) {
+ async knowledgeCollectionNamedGraphsExist(implementationName, repository, ual) {
if (this.getImplementation(implementationName)) {
- return this.getImplementation(implementationName).module.getAssetAssertionLinks(
+ return this.getImplementation(
+ implementationName,
+ ).module.knowledgeCollectionNamedGraphsExist(repository, ual);
+ }
+ }
+
+ async deleteKnowledgeAssetNamedGraph(implementationName, repository, ual) {
+ if (this.getImplementation(implementationName)) {
+ return this.getImplementation(implementationName).module.deleteKnowledgeAssetNamedGraph(
repository,
ual,
);
}
}
- async assetAssertionLinkExists(implementationName, repository, ual, assertionId) {
+ async getKnowledgeAssetNamedGraph(implementationName, repository, ual, visibility) {
if (this.getImplementation(implementationName)) {
- return this.getImplementation(implementationName).module.assetAssertionLinkExists(
+ return this.getImplementation(implementationName).module.getKnowledgeAssetNamedGraph(
repository,
ual,
- assertionId,
+ visibility,
);
}
}
- async insertAssertion(implementationName, repository, assertionId, assertionNquads) {
+ async knowledgeAssetNamedGraphExists(implementationName, repository, name) {
if (this.getImplementation(implementationName)) {
- return this.getImplementation(implementationName).module.insertAssertion(
+ return this.getImplementation(implementationName).module.knowledgeAssetNamedGraphExists(
repository,
- assertionId,
- assertionNquads,
+ name,
);
}
}
- async assertionExists(implementationName, repository, uri) {
+ async insertKnowledgeCollectionMetadata(implementationName, repository, metadataNQuads) {
if (this.getImplementation(implementationName)) {
- return this.getImplementation(implementationName).module.assertionExists(
- repository,
- uri,
- );
+ return this.getImplementation(
+ implementationName,
+ ).module.insertKnowledgeCollectionMetadata(repository, metadataNQuads);
}
}
- async countAssetsWithAssertionId(implementationName, repository, assertionId) {
+ async deleteKnowledgeCollectionMetadata(implementationName, repository, ual) {
if (this.getImplementation(implementationName)) {
- return this.getImplementation(implementationName).module.countAssetsWithAssertionId(
- repository,
- assertionId,
- );
+ return this.getImplementation(
+ implementationName,
+ ).module.deleteKnowledgeCollectionMetadata(repository, ual);
}
}
- async getAssetAssertionIds(implementationName, repository, ual) {
+ async getKnowledgeCollectionMetadata(implementationName, repository, ual) {
if (this.getImplementation(implementationName)) {
- return this.getImplementation(implementationName).module.getAssetAssertionIds(
+ return this.getImplementation(implementationName).module.getKnowledgeCollectionMetadata(
repository,
ual,
);
}
}
- async getAssertion(implementationName, repository, assertionId) {
+ async getKnowledgeAssetMetadata(implementationName, repository, ual) {
if (this.getImplementation(implementationName)) {
- return this.getImplementation(implementationName).module.getAssertion(
+ return this.getImplementation(implementationName).module.getKnowledgeAssetMetadata(
repository,
- assertionId,
+ ual,
);
}
}
- async deleteAssertion(implementationName, repository, assertionId) {
+ async knowledgeCollectionMetadataExists(implementationName, repository, ual) {
if (this.getImplementation(implementationName)) {
- return this.getImplementation(implementationName).module.deleteAssertion(
+ return this.getImplementation(
+ implementationName,
+ ).module.knowledgeCollectionMetadataExists(repository, ual);
+ }
+ }
+
+ async getLatestAssertionId(implementationName, repository, ual) {
+ if (this.getImplementation(implementationName)) {
+ return this.getImplementation(implementationName).module.getLatestAssertionId(
repository,
- assertionId,
+ ual,
);
}
}
@@ -174,9 +263,39 @@ class TripleStoreModuleManager extends BaseModuleManager {
}
}
+ async findAllNamedGraphsByUAL(implementationName, repository, ual) {
+ if (this.getImplementation(implementationName)) {
+ return this.getImplementation(implementationName).module.findAllNamedGraphsByUAL(
+ repository,
+ ual,
+ );
+ }
+ }
+
+ async findAllSubjectsWithGraphNames(implementationName, repository, ual) {
+ if (this.getImplementation(implementationName)) {
+ return this.getImplementation(implementationName).module.findAllSubjectsWithGraphNames(
+ implementationName,
+ repository,
+ ual,
+ );
+ }
+ }
+
getName() {
return 'tripleStore';
}
+
+ // OLD REPOSITORIES SUPPORT
+
+ async getV6Assertion(implementationName, repository, assertionId) {
+ if (this.getImplementation(implementationName)) {
+ return this.getImplementation(implementationName).module.getV6Assertion(
+ repository,
+ assertionId,
+ );
+ }
+ }
}
export default TripleStoreModuleManager;
diff --git a/src/modules/validation/implementation/merkle-validation.js b/src/modules/validation/implementation/merkle-validation.js
index 72980825f5..48005b5038 100644
--- a/src/modules/validation/implementation/merkle-validation.js
+++ b/src/modules/validation/implementation/merkle-validation.js
@@ -1,40 +1,13 @@
-import { ethers } from 'ethers';
-import { calculateRoot, getMerkleProof } from 'assertion-tools';
+import { kcTools } from 'assertion-tools';
class MerkleValidation {
async initialize(config, logger) {
this.config = config;
this.logger = logger;
-
- this.hashFunctions = {
- // TODO: Change this nonsense
- 1: 'sha256',
- };
- }
-
- calculateRoot(assertion) {
- return calculateRoot(assertion);
- }
-
- getMerkleProof(nquadsArray, challenge) {
- return getMerkleProof(nquadsArray, challenge);
- }
-
- async callHashFunction(hashFunctionId, data) {
- const hashFunctionName = this.getHashFunctionName(hashFunctionId);
- return this[hashFunctionName](data); // TODO: Change this nonsense
- }
-
- getHashFunctionName(hashFunctionId) {
- return this.hashFunctions[hashFunctionId];
}
- async sha256(data) {
- if (!ethers.utils.isBytesLike(data)) {
- const bytesLikeData = ethers.utils.toUtf8Bytes(data);
- return ethers.utils.sha256(bytesLikeData);
- }
- return ethers.utils.sha256(data);
+ async calculateRoot(assertion) {
+ return kcTools.calculateMerkleRoot(assertion);
}
}
diff --git a/src/modules/validation/validation-module-manager.js b/src/modules/validation/validation-module-manager.js
index 8f326905ae..b94fe06b8d 100644
--- a/src/modules/validation/validation-module-manager.js
+++ b/src/modules/validation/validation-module-manager.js
@@ -5,7 +5,7 @@ class ValidationModuleManager extends BaseModuleManager {
return 'validation';
}
- calculateRoot(assertion) {
+ async calculateRoot(assertion) {
if (this.initialized) {
if (!assertion) {
throw new Error('Calculation failed: Assertion cannot be null or undefined.');
@@ -14,39 +14,6 @@ class ValidationModuleManager extends BaseModuleManager {
}
throw new Error('Validation module is not initialized.');
}
-
- getMerkleProof(assertion, index) {
- if (this.initialized) {
- if (!assertion) {
- throw new Error('Get merkle proof failed: Assertion cannot be null or undefined.');
- }
- return this.getImplementation().module.getMerkleProof(assertion, index);
- }
- throw new Error('Validation module is not initialized.');
- }
-
- getHashFunctionName(hashFunctionId) {
- if (this.initialized) {
- if (!hashFunctionId) {
- throw new Error(
- 'Getting function name failed: Function ID cannot be null or undefined.',
- );
- }
- return this.getImplementation().module.getHashFunctionName(hashFunctionId);
- }
- throw new Error('Validation module is not initialized.');
- }
-
- async callHashFunction(hashFunctionId, data) {
- if (this.initialized) {
- if (!!hashFunctionId && !!data) {
- return this.getImplementation().module.callHashFunction(hashFunctionId, data);
- }
- throw new Error('Calling hash fn failed: Values cannot be null or undefined.');
- } else {
- throw new Error('Validation module is not initialized.');
- }
- }
}
export default ValidationModuleManager;
diff --git a/src/service/ask-service.js b/src/service/ask-service.js
new file mode 100644
index 0000000000..450ca76933
--- /dev/null
+++ b/src/service/ask-service.js
@@ -0,0 +1,111 @@
+import { Mutex } from 'async-mutex';
+import OperationService from './operation-service.js';
+import {
+ OPERATION_ID_STATUS,
+ NETWORK_PROTOCOLS,
+ ERROR_TYPE,
+ OPERATIONS,
+ OPERATION_REQUEST_STATUS,
+ ASK_BATCH_SIZE,
+} from '../constants/constants.js';
+
+class AskService extends OperationService {
+ constructor(ctx) {
+ super(ctx);
+
+ this.operationName = OPERATIONS.ASK;
+ this.networkProtocols = NETWORK_PROTOCOLS.ASK;
+ this.errorType = ERROR_TYPE.ASK.ASK_ERROR;
+ this.completedStatuses = [
+ OPERATION_ID_STATUS.ASK.ASK_FETCH_FROM_NODES_END,
+ OPERATION_ID_STATUS.ASK.ASK_END,
+ OPERATION_ID_STATUS.COMPLETED,
+ ];
+ this.operationMutex = new Mutex();
+ }
+
+ async processResponse(command, responseStatus, responseData) {
+ const { operationId, blockchain, numberOfFoundNodes, leftoverNodes, batchSize } =
+ command.data;
+
+ const responseStatusesFromDB = await this.getResponsesStatuses(
+ responseStatus,
+ responseData.errorMessage,
+ operationId,
+ );
+
+ const { completedNumber, failedNumber } = responseStatusesFromDB[operationId];
+
+ const totalResponses = completedNumber + failedNumber;
+ const isAllNodesResponded = numberOfFoundNodes === totalResponses;
+ const isBatchCompleted = totalResponses % batchSize === 0;
+
+ const minimumNumberOfNodeReplications =
+ command.data.minimumNumberOfNodeReplications ?? numberOfFoundNodes;
+
+ this.logger.debug(
+ `Processing ${
+ this.operationName
+ } response with status: ${responseStatus} for operationId: ${operationId}. Total number of nodes: ${numberOfFoundNodes}, number of nodes in batch: ${Math.min(
+ numberOfFoundNodes,
+ batchSize,
+ )} number of leftover nodes: ${
+ leftoverNodes.length
+ }, number of responses: ${totalResponses}, Completed: ${completedNumber}, Failed: ${failedNumber}`,
+ );
+ if (responseData.errorMessage) {
+ this.logger.trace(
+ `Error message for operation id: ${operationId} : ${responseData.errorMessage}`,
+ );
+ }
+
+ if (
+ responseStatus === OPERATION_REQUEST_STATUS.COMPLETED &&
+ completedNumber === minimumNumberOfNodeReplications
+ ) {
+ await this.markOperationAsCompleted(
+ operationId,
+ blockchain,
+ {
+ completedNodes: completedNumber,
+ allNodesReplicatedData: true,
+ },
+ [...this.completedStatuses],
+ );
+ this.logResponsesSummary(completedNumber, failedNumber);
+ } else if (
+ completedNumber < minimumNumberOfNodeReplications &&
+ (isAllNodesResponded || isBatchCompleted)
+ ) {
+ const potentialCompletedNumber = completedNumber + leftoverNodes.length;
+
+ await this.operationIdService.cacheOperationIdDataToFile(operationId, {
+ completedNodes: completedNumber,
+ allNodesReplicatedData: false,
+ });
+
+ // Still possible to meet minimumNumberOfNodeReplications, schedule leftover nodes
+ if (
+ leftoverNodes.length > 0 &&
+ potentialCompletedNumber >= minimumNumberOfNodeReplications
+ ) {
+ await this.scheduleOperationForLeftoverNodes(command.data, leftoverNodes);
+ } else {
+ // Not enough potential responses to meet minimumNumberOfNodeReplications, or no leftover nodes
+ await this.markOperationAsFailed(
+ operationId,
+ blockchain,
+ `Unable to replicate data on the network!`,
+ this.errorType,
+ );
+ this.logResponsesSummary(completedNumber, failedNumber);
+ }
+ }
+ }
+
+ getBatchSize(batchSize = null) {
+ return batchSize ?? ASK_BATCH_SIZE;
+ }
+}
+
+export default AskService;
diff --git a/src/service/blockchain-event-listener-service.js b/src/service/blockchain-event-listener-service.js
deleted file mode 100644
index f0ea2fb9c7..0000000000
--- a/src/service/blockchain-event-listener-service.js
+++ /dev/null
@@ -1,648 +0,0 @@
-import { setTimeout } from 'timers/promises';
-import {
- CONTENT_ASSET_HASH_FUNCTION_ID,
- CONTRACTS,
- CONTRACT_EVENT_FETCH_INTERVALS,
- TRIPLE_STORE_REPOSITORIES,
- NODE_ENVIRONMENTS,
- PENDING_STORAGE_REPOSITORIES,
- CONTRACT_EVENTS,
- MAXIMUM_FETCH_EVENTS_FAILED_COUNT,
- DELAY_BETWEEN_FAILED_FETCH_EVENTS_MILLIS,
- CONTRACT_EVENT_TO_GROUP_MAPPING,
- GROUPED_CONTRACT_EVENTS,
- ZERO_BYTES32,
-} from '../constants/constants.js';
-
-const fetchEventsFailedCount = {};
-
-const eventNames = Object.values(CONTRACT_EVENTS).flatMap((e) => e);
-
-class BlockchainEventListenerService {
- constructor(ctx) {
- this.logger = ctx.logger;
- this.blockchainModuleManager = ctx.blockchainModuleManager;
- this.repositoryModuleManager = ctx.repositoryModuleManager;
- this.tripleStoreService = ctx.tripleStoreService;
- this.pendingStorageService = ctx.pendingStorageService;
- this.ualService = ctx.ualService;
- this.hashingService = ctx.hashingService;
- this.serviceAgreementService = ctx.serviceAgreementService;
- this.shardingTableService = ctx.shardingTableService;
- this.paranetService = ctx.paranetService;
-
- this.eventGroupsBuffer = {};
- }
-
- async initialize() {
- const promises = [];
- for (const blockchainId of this.blockchainModuleManager.getImplementationNames()) {
- this.logger.info(
- `Initializing blockchain event listener for blockchain ${blockchainId}, handling missed events`,
- );
- this.eventGroupsBuffer[blockchainId] = {};
- promises.push(this.fetchAndHandleBlockchainEvents(blockchainId));
- }
- await Promise.all(promises);
- }
-
- startListeningOnEvents() {
- for (const blockchainId of this.blockchainModuleManager.getImplementationNames()) {
- this.listenOnBlockchainEvents(blockchainId);
- this.logger.info(`Event listener initialized for blockchain: '${blockchainId}'.`);
- }
- }
-
- async fetchAndHandleBlockchainEvents(blockchainId) {
- const devEnvironment =
- process.env.NODE_ENV === NODE_ENVIRONMENTS.DEVELOPMENT ||
- process.env.NODE_ENV === NODE_ENVIRONMENTS.TEST;
-
- const currentBlock = await this.blockchainModuleManager.getBlockNumber(blockchainId);
-
- if (devEnvironment) {
- // handling sharding table node added events first for tests and local network setup
- // because of race condition for node added and ask updated events
- const shardingTableEvents = await this.getContractEvents(
- blockchainId,
- CONTRACTS.SHARDING_TABLE_CONTRACT,
- currentBlock,
- CONTRACT_EVENTS.SHARDING_TABLE,
- );
-
- await this.handleBlockchainEvents(shardingTableEvents, blockchainId);
- }
-
- const syncContractEventsPromises = [
- this.getContractEvents(
- blockchainId,
- CONTRACTS.SHARDING_TABLE_CONTRACT,
- currentBlock,
- CONTRACT_EVENTS.SHARDING_TABLE,
- ),
- this.getContractEvents(
- blockchainId,
- CONTRACTS.STAKING_CONTRACT,
- currentBlock,
- CONTRACT_EVENTS.STAKING,
- ),
- this.getContractEvents(
- blockchainId,
- CONTRACTS.PROFILE_CONTRACT,
- currentBlock,
- CONTRACT_EVENTS.PROFILE,
- ),
- this.getContractEvents(
- blockchainId,
- CONTRACTS.COMMIT_MANAGER_V1_U1_CONTRACT,
- currentBlock,
- CONTRACT_EVENTS.COMMIT_MANAGER_V1,
- ),
- this.getContractEvents(
- blockchainId,
- CONTRACTS.SERVICE_AGREEMENT_V1_CONTRACT,
- currentBlock,
- CONTRACT_EVENTS.SERVICE_AGREEMENT_V1,
- ),
- this.getContractEvents(
- blockchainId,
- CONTRACTS.PARAMETERS_STORAGE_CONTRACT,
- currentBlock,
- CONTRACT_EVENTS.PARAMETERS_STORAGE,
- ),
- this.getContractEvents(
- blockchainId,
- CONTRACTS.LOG2PLDSF_CONTRACT,
- currentBlock,
- CONTRACT_EVENTS.LOG2PLDSF,
- ),
- this.getContractEvents(
- blockchainId,
- CONTRACTS.LINEAR_SUM_CONTRACT,
- currentBlock,
- CONTRACT_EVENTS.LINEAR_SUM,
- ),
- ];
-
- if (!devEnvironment) {
- syncContractEventsPromises.push(
- this.getContractEvents(
- blockchainId,
- CONTRACTS.HUB_CONTRACT,
- currentBlock,
- CONTRACT_EVENTS.HUB,
- ),
- );
- }
- const contractEvents = await Promise.all(syncContractEventsPromises);
-
- await this.handleBlockchainEvents(
- contractEvents.flatMap((events) => events),
- blockchainId,
- );
- }
-
- listenOnBlockchainEvents(blockchainId) {
- const devEnvironment =
- process.env.NODE_ENV === NODE_ENVIRONMENTS.DEVELOPMENT ||
- process.env.NODE_ENV === NODE_ENVIRONMENTS.TEST;
-
- const eventFetchInterval = devEnvironment
- ? CONTRACT_EVENT_FETCH_INTERVALS.DEVELOPMENT
- : CONTRACT_EVENT_FETCH_INTERVALS.MAINNET;
-
- let working = false;
- fetchEventsFailedCount[blockchainId] = 0;
- const fetchEventInterval = setInterval(async () => {
- if (working) return;
- try {
- working = true;
- await this.fetchAndHandleBlockchainEvents(blockchainId);
- fetchEventsFailedCount[blockchainId] = 0;
- } catch (e) {
- if (fetchEventsFailedCount[blockchainId] >= MAXIMUM_FETCH_EVENTS_FAILED_COUNT) {
- clearInterval(fetchEventInterval);
- this.blockchainModuleManager.removeImplementation(blockchainId);
- if (!this.blockchainModuleManager.getImplementationNames().length) {
- this.logger.error(
- `Unable to fetch new events for blockchain: ${blockchainId}. Error message: ${e.message} OT-node shutting down...`,
- );
- process.exit(1);
- }
- this.logger.error(
- `Unable to fetch new events for blockchain: ${blockchainId}. Error message: ${e.message} blockchain implementation removed.`,
- );
- }
- this.logger.error(
- `Failed to get and process blockchain events for blockchain: ${blockchainId}. Error: ${e}`,
- );
- fetchEventsFailedCount[blockchainId] += 1;
- await setTimeout(DELAY_BETWEEN_FAILED_FETCH_EVENTS_MILLIS);
- } finally {
- working = false;
- }
- }, eventFetchInterval);
- }
-
- async getContractEvents(blockchainId, contractName, currentBlock, eventsToFilter) {
- const lastCheckedBlockObject = await this.repositoryModuleManager.getLastCheckedBlock(
- blockchainId,
- contractName,
- );
-
- const result = await this.blockchainModuleManager.getAllPastEvents(
- blockchainId,
- contractName,
- eventsToFilter,
- lastCheckedBlockObject?.lastCheckedBlock ?? 0,
- lastCheckedBlockObject?.lastCheckedTimestamp ?? 0,
- currentBlock,
- );
-
- await this.repositoryModuleManager.updateLastCheckedBlock(
- blockchainId,
- result.lastCheckedBlock,
- Date.now(0),
- contractName,
- );
-
- if (!result.eventsMissed) {
- await this.shardingTableService.pullBlockchainShardingTable(blockchainId, true);
- }
-
- return result.events;
- }
-
- async handleBlockchainEvents(events, blockchainId) {
- const eventsForProcessing = events.filter((event) => eventNames.includes(event.event));
-
- if (eventsForProcessing?.length) {
- this.logger.trace(
- `${eventsForProcessing.length} blockchain events caught on blockchain ${blockchainId}.`,
- );
- await this.repositoryModuleManager.insertBlockchainEvents(eventsForProcessing);
- }
- const unprocessedEvents =
- await this.repositoryModuleManager.getAllUnprocessedBlockchainEvents(
- eventNames,
- blockchainId,
- );
-
- if (unprocessedEvents?.length) {
- this.logger.trace(
- `Processing ${unprocessedEvents.length} blockchain events on blockchain ${blockchainId}.`,
- );
- let batchedEvents = {};
- let currentBlockNumber = 0;
- for (const event of unprocessedEvents) {
- if (event.block !== currentBlockNumber) {
- // eslint-disable-next-line no-await-in-loop
- await this.handleBlockBatchedEvents(batchedEvents);
- batchedEvents = {};
- currentBlockNumber = event.block;
- }
-
- // Check if event should be grouped with other event
- const eventsGroupName = CONTRACT_EVENT_TO_GROUP_MAPPING[event.event];
- if (eventsGroupName) {
- // Get Events Group object containing predefined events and Grouping Key (Event Argument)
- const eventsGroup = GROUPED_CONTRACT_EVENTS[eventsGroupName];
- // Get value of the Grouping Key from the Event
- const groupingKeyValue = JSON.parse(event.data)[eventsGroup.groupingKey];
-
- if (!this.eventGroupsBuffer[blockchainId][eventsGroupName]) {
- this.eventGroupsBuffer[blockchainId][eventsGroupName] = {};
- }
-
- if (!this.eventGroupsBuffer[blockchainId][eventsGroupName][groupingKeyValue]) {
- this.eventGroupsBuffer[blockchainId][eventsGroupName][groupingKeyValue] =
- [];
- }
-
- // Push event to the buffer until Events Group is not full
- this.eventGroupsBuffer[blockchainId][eventsGroupName][groupingKeyValue].push(
- event,
- );
-
- // Mark event as processed
- // TODO: There should be a smarter way to do this, because it will cause troubles
- // in case node goes offline while only catched some of the events from the group
- // and not all of them. Buffer will be cleared and event is already marked as processed.
- // eslint-disable-next-line no-await-in-loop
- await this.repositoryModuleManager.markBlockchainEventsAsProcessed([event]);
-
- // When all expected Events from the Event Group are collected
- if (
- this.eventGroupsBuffer[blockchainId][eventsGroupName][groupingKeyValue]
- .length === eventsGroup.events.length
- ) {
- if (!batchedEvents[eventsGroupName]) {
- batchedEvents[eventsGroupName] = [];
- }
-
- // Add Events Group to the Processing Queue
- batchedEvents[eventsGroupName].push(
- this.eventGroupsBuffer[blockchainId][eventsGroupName][groupingKeyValue],
- );
-
- // Remove Events Group from the Buffer
- delete this.eventGroupsBuffer[blockchainId][eventsGroupName][
- groupingKeyValue
- ];
- }
- } else if (batchedEvents[event.event]) {
- batchedEvents[event.event].push(event);
- } else {
- batchedEvents[event.event] = [event];
- }
- }
-
- await this.handleBlockBatchedEvents(batchedEvents);
- }
- }
-
- async handleBlockBatchedEvents(batchedEvents) {
- const handleBlockEventsPromises = [];
- for (const [eventName, blockEvents] of Object.entries(batchedEvents)) {
- handleBlockEventsPromises.push(this.handleBlockEvents(eventName, blockEvents));
- }
- // eslint-disable-next-line no-await-in-loop
- await Promise.all(handleBlockEventsPromises);
- }
-
- async handleBlockEvents(eventName, blockEvents) {
- const handlerFunctionName = `handle${eventName}Events`;
- if (!this[handlerFunctionName]) return;
- this.logger.trace(`${blockEvents.length} ${eventName} events caught.`);
- try {
- await this[handlerFunctionName](blockEvents);
- await this.repositoryModuleManager.markBlockchainEventsAsProcessed(blockEvents);
- } catch (error) {
- this.logger.warn(
- `Error while processing events: ${eventName}. Error: ${error.message}`,
- );
- }
- }
-
- async handleParameterChangedEvents(blockEvents) {
- for (const event of blockEvents) {
- const { blockchainId, contract, data } = event;
- const { parameterName, parameterValue } = JSON.parse(data);
- switch (contract) {
- case CONTRACTS.LOG2PLDSF_CONTRACT:
- // This invalidates contracts parameter
- // TODO: Create function for contract call cache invalidation
- this.blockchainModuleManager.setContractCallCache(
- blockchainId,
- CONTRACTS.LOG2PLDSF_CONTRACT,
- parameterName,
- null,
- );
- break;
- case CONTRACTS.LINEAR_SUM_CONTRACT:
- this.blockchainModuleManager.setContractCallCache(
- blockchainId,
- CONTRACTS.LINEAR_SUM_CONTRACT,
- parameterName,
- null,
- );
- break;
- case CONTRACTS.PARAMETERS_STORAGE_CONTRACT:
- this.blockchainModuleManager.setContractCallCache(
- blockchainId,
- CONTRACTS.PARAMETERS_STORAGE_CONTRACT,
- parameterName,
- parameterValue,
- );
- break;
- default:
- this.logger.warn(
- `Unable to handle parameter changed event. Unknown contract name ${event.contract}`,
- );
- }
- }
- }
-
- handleNewContractEvents(blockEvents) {
- for (const event of blockEvents) {
- const { contractName, newContractAddress } = JSON.parse(event.data);
- this.blockchainModuleManager.initializeContract(
- event.blockchainId,
- contractName,
- newContractAddress,
- );
- }
- }
-
- async handleContractChangedEvents(blockEvents) {
- await Promise.all(
- blockEvents.map(async (event) => {
- const { contractName, newContractAddress } = JSON.parse(event.data);
- this.blockchainModuleManager.initializeContract(
- event.blockchainId,
- contractName,
- newContractAddress,
- );
-
- if (contractName === CONTRACTS.SHARDING_TABLE_CONTRACT) {
- await this.shardingTableService.pullBlockchainShardingTable(
- event.blockchainId,
- true,
- );
- }
- }),
- );
- }
-
- handleNewAssetStorageEvents(blockEvents) {
- for (const event of blockEvents) {
- const { newContractAddress } = JSON.parse(event.data);
- this.blockchainModuleManager.initializeAssetStorageContract(
- event.blockchainId,
- newContractAddress,
- );
- }
- }
-
- handleAssetStorageChangedEvents(blockEvents) {
- for (const event of blockEvents) {
- const { newContractAddress } = JSON.parse(event.data);
- this.blockchainModuleManager.initializeAssetStorageContract(
- event.blockchainId,
- newContractAddress,
- );
- }
- }
-
- async handleNodeAddedEvents(blockEvents) {
- const peerRecords = await Promise.all(
- blockEvents.map(async (event) => {
- const eventData = JSON.parse(event.data);
-
- const nodeId = this.blockchainModuleManager.convertHexToAscii(
- event.blockchainId,
- eventData.nodeId,
- );
-
- const sha256 = await this.hashingService.callHashFunction(
- CONTENT_ASSET_HASH_FUNCTION_ID,
- nodeId,
- );
-
- this.logger.trace(`Adding peer id: ${nodeId} to sharding table.`);
- return {
- peerId: nodeId,
- blockchainId: event.blockchainId,
- ask: this.blockchainModuleManager.convertFromWei(
- event.blockchainId,
- eventData.ask,
- ),
- stake: this.blockchainModuleManager.convertFromWei(
- event.blockchainId,
- eventData.stake,
- ),
- lastSeen: new Date(0),
- sha256,
- };
- }),
- );
- await this.repositoryModuleManager.createManyPeerRecords(peerRecords);
- }
-
- async handleNodeRemovedEvents(blockEvents) {
- await Promise.all(
- blockEvents.map(async (event) => {
- const eventData = JSON.parse(event.data);
-
- const nodeId = this.blockchainModuleManager.convertHexToAscii(
- event.blockchainId,
- eventData.nodeId,
- );
-
- this.logger.trace(`Removing peer id: ${nodeId} from sharding table.`);
-
- await this.repositoryModuleManager.removePeerRecord(event.blockchainId, nodeId);
- }),
- );
- }
-
- async handleStakeIncreasedEvents(blockEvents) {
- await Promise.all(
- blockEvents.map(async (event) => {
- const eventData = JSON.parse(event.data);
-
- const nodeId = this.blockchainModuleManager.convertHexToAscii(
- event.blockchainId,
- eventData.nodeId,
- );
-
- this.logger.trace(`Updating stake value for peer id: ${nodeId} in sharding table.`);
-
- await this.repositoryModuleManager.updatePeerStake(
- nodeId,
- event.blockchainId,
- this.blockchainModuleManager.convertFromWei(
- event.blockchainId,
- eventData.newStake,
- ),
- );
- }),
- );
- }
-
- async handleStakeWithdrawalStartedEvents(blockEvents) {
- await this.handleStakeIncreasedEvents(blockEvents);
- }
-
- async handleAskUpdatedEvents(blockEvents) {
- await Promise.all(
- blockEvents.map(async (event) => {
- const eventData = JSON.parse(event.data);
-
- const nodeId = this.blockchainModuleManager.convertHexToAscii(
- event.blockchainId,
- eventData.nodeId,
- );
-
- this.logger.trace(`Updating ask value for peer id: ${nodeId} in sharding table.`);
-
- await this.repositoryModuleManager.updatePeerAsk(
- nodeId,
- event.blockchainId,
- this.blockchainModuleManager.convertFromWei(event.blockchainId, eventData.ask),
- );
- }),
- );
- }
-
- async handleServiceAgreementV1ExtendedEvents(blockEvents) {
- await Promise.all(
- blockEvents.map(async (event) => {
- const { agreementId, epochsNumber } = JSON.parse(event.data);
-
- return this.repositoryModuleManager.updateServiceAgreementEpochsNumber(
- agreementId,
- epochsNumber,
- );
- }),
- );
- }
-
- async handleServiceAgreementV1TerminatedEvents(blockEvents) {
- await this.repositoryModuleManager.removeServiceAgreements(
- blockEvents.map((event) => JSON.parse(event.data).agreementId),
- );
- }
-
- async handleStateFinalizedEvents(blockEvents) {
- // todo: find a way to safely parallelize this
- for (const event of blockEvents) {
- const eventData = JSON.parse(event.data);
-
- const { tokenId, keyword, hashFunctionId, state, stateIndex } = eventData;
- const blockchain = event.blockchainId;
- const contract = eventData.assetContract;
- this.logger.trace(
- `Handling event: ${event.event} for asset with ual: ${this.ualService.deriveUAL(
- blockchain,
- contract,
- tokenId,
- )} with keyword: ${keyword}, assertion id: ${state}.`,
- );
-
- // eslint-disable-next-line no-await-in-loop
- await Promise.all([
- this.pendingStorageService.moveAndDeletePendingState(
- TRIPLE_STORE_REPOSITORIES.PUBLIC_CURRENT,
- TRIPLE_STORE_REPOSITORIES.PUBLIC_HISTORY,
- PENDING_STORAGE_REPOSITORIES.PUBLIC,
- blockchain,
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- state,
- stateIndex,
- ),
- this.pendingStorageService.moveAndDeletePendingState(
- TRIPLE_STORE_REPOSITORIES.PRIVATE_CURRENT,
- TRIPLE_STORE_REPOSITORIES.PRIVATE_HISTORY,
- PENDING_STORAGE_REPOSITORIES.PRIVATE,
- blockchain,
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- state,
- stateIndex,
- ),
- ]);
-
- // eslint-disable-next-line no-await-in-loop
- const paranetsBlockchains = await this.repositoryModuleManager.getParanetsBlockchains();
-
- if (paranetsBlockchains.includes(blockchain)) {
- // eslint-disable-next-line no-await-in-loop
- const knowledgeAssetId = await this.paranetService.constructKnowledgeAssetId(
- blockchain,
- contract,
- tokenId,
- );
-
- // eslint-disable-next-line no-await-in-loop
- const paranetId = await this.blockchainModuleManager.getParanetId(
- blockchain,
- knowledgeAssetId,
- );
- if (paranetId && paranetId !== ZERO_BYTES32) {
- // eslint-disable-next-line no-await-in-loop
- const paranetExists = await this.repositoryModuleManager.paranetExists(
- paranetId,
- blockchain,
- );
- if (paranetExists) {
- const {
- paranetKAStorageContract: paranetKasContract,
- tokenId: paranetTokenId,
- } =
- // eslint-disable-next-line no-await-in-loop
- await this.blockchainModuleManager.getKnowledgeAssetLocatorFromParanetId(
- blockchain,
- paranetId,
- );
- const paranetUAL = this.ualService.deriveUAL(
- blockchain,
- paranetKasContract,
- paranetTokenId,
- );
-
- // eslint-disable-next-line no-await-in-loop
- const paranetAssetExists = await this.tripleStoreService.paranetAssetExists(
- blockchain,
- contract,
- tokenId,
- paranetKasContract,
- paranetTokenId,
- );
-
- if (paranetAssetExists) {
- const kaUAL = this.ualService.deriveUAL(blockchain, contract, tokenId);
-
- // Create a record for missing Paranet KA
- // Paranet sync command will get it from network
- // eslint-disable-next-line no-await-in-loop
- await this.repositoryModuleManager.createMissedParanetAssetRecord({
- blockchainId: blockchain,
- ual: kaUAL,
- paranetUal: paranetUAL,
- knowledgeAssetId,
- });
- }
- }
- }
- }
- }
- }
-}
-
-export default BlockchainEventListenerService;
diff --git a/src/service/blockchain-events-service.js b/src/service/blockchain-events-service.js
new file mode 100644
index 0000000000..e7ba7f03a9
--- /dev/null
+++ b/src/service/blockchain-events-service.js
@@ -0,0 +1,65 @@
+class BlockchainEventsService {
+ constructor(ctx) {
+ this.config = ctx.config;
+ this.logger = ctx.logger;
+
+ this.blockchainEventsModuleManager = ctx.blockchainEventsModuleManager;
+ }
+
+ initializeBlockchainEventsServices() {
+ this.blockchainEventsServicesImplementations = {};
+ for (const implementationName of this.blockchainEventsModuleManager.getImplementationNames()) {
+ for (const blockchain in this.blockchainEventsModuleManager.getImplementation(
+ implementationName,
+ ).module.blockchains) {
+ this.blockchainEventsServicesImplementations[blockchain] = implementationName;
+ }
+ }
+ }
+
+ getContractAddress(blockchain, contractName) {
+ return this.blockchainEventsModuleManager.getContractAddress(
+ this.blockchainEventsServicesImplementations[blockchain],
+ blockchain,
+ contractName,
+ );
+ }
+
+ updateContractAddress(blockchain, contractName, contractAddress) {
+ return this.blockchainEventsModuleManager.updateContractAddress(
+ this.blockchainEventsServicesImplementations[blockchain],
+ blockchain,
+ contractName,
+ contractAddress,
+ );
+ }
+
+ async getBlock(blockchain, tag = 'latest') {
+ return this.blockchainEventsModuleManager.getBlock(
+ this.blockchainEventsServicesImplementations[blockchain],
+ blockchain,
+ tag,
+ );
+ }
+
+ async getPastEvents(
+ blockchain,
+ contractNames,
+ eventsToFilter,
+ lastCheckedBlock,
+ lastCheckedTimestamp,
+ currentBlock,
+ ) {
+ return this.blockchainEventsModuleManager.getPastEvents(
+ this.blockchainEventsServicesImplementations[blockchain],
+ blockchain,
+ contractNames,
+ eventsToFilter,
+ lastCheckedBlock,
+ lastCheckedTimestamp,
+ currentBlock,
+ );
+ }
+}
+
+export default BlockchainEventsService;
diff --git a/src/service/crypto-service.js b/src/service/crypto-service.js
new file mode 100644
index 0000000000..c030bf3d22
--- /dev/null
+++ b/src/service/crypto-service.js
@@ -0,0 +1,70 @@
+import ethers from 'ethers';
+
+class CryptoService {
+ constructor(ctx) {
+ this.config = ctx.config;
+ this.logger = ctx.logger;
+ }
+
+ toBigNumber(value) {
+ return ethers.BigNumber.from(value);
+ }
+
+ keccak256(data) {
+ if (!ethers.utils.isBytesLike(data)) {
+ const bytesLikeData = ethers.utils.toUtf8Bytes(data);
+ return ethers.utils.keccak256(bytesLikeData);
+ }
+ return ethers.utils.keccak256(data);
+ }
+
+ sha256(data) {
+ if (!ethers.utils.isBytesLike(data)) {
+ const bytesLikeData = ethers.utils.toUtf8Bytes(data);
+ return ethers.utils.sha256(bytesLikeData);
+ }
+ return ethers.utils.sha256(data);
+ }
+
+ encodePacked(types, values) {
+ return ethers.utils.solidityPack(types, values);
+ }
+
+ keccak256EncodePacked(types, values) {
+ return ethers.utils.solidityKeccak256(types, values);
+ }
+
+ sha256EncodePacked(types, values) {
+ return ethers.utils.soliditySha256(types, values);
+ }
+
+ convertUint8ArrayToHex(uint8Array) {
+ return ethers.utils.hexlify(uint8Array);
+ }
+
+ convertAsciiToHex(string) {
+ return this.convertUint8ArrayToHex(ethers.utils.toUtf8Bytes(string));
+ }
+
+ convertHexToAscii(hexString) {
+ return ethers.utils.toUtf8String(hexString);
+ }
+
+ convertBytesToUint8Array(bytesLikeData) {
+ return ethers.utils.arrayify(bytesLikeData);
+ }
+
+ convertToWei(value, fromUnit = 'ether') {
+ return ethers.utils.parseUnits(value.toString(), fromUnit);
+ }
+
+ convertFromWei(value, toUnit = 'ether') {
+ return ethers.utils.formatUnits(value, toUnit);
+ }
+
+ splitSignature(flatSignature) {
+ return ethers.utils.splitSignature(flatSignature);
+ }
+}
+
+export default CryptoService;
diff --git a/src/service/data-service.js b/src/service/data-service.js
index 2f51a4b972..0d776b6626 100644
--- a/src/service/data-service.js
+++ b/src/service/data-service.js
@@ -1,49 +1,41 @@
-import jsonld from 'jsonld';
+import { kcTools } from 'assertion-tools';
import {
- SCHEMA_CONTEXT,
- MEDIA_TYPES,
XML_DATA_TYPES,
- PRIVATE_ASSERTION_PREDICATE,
+ PRIVATE_HASH_SUBJECT_PREFIX,
+ V0_PRIVATE_ASSERTION_PREDICATE,
+ CHUNK_BYTE_SIZE,
} from '../constants/constants.js';
-const ALGORITHM = 'URDNA2015';
-
class DataService {
constructor(ctx) {
this.config = ctx.config;
this.logger = ctx.logger;
- }
-
- async toNQuads(content, inputFormat) {
- const options = {
- algorithm: ALGORITHM,
- format: MEDIA_TYPES.N_QUADS,
- };
-
- if (inputFormat) {
- options.inputFormat = inputFormat;
- }
-
- const canonized = await jsonld.canonize(content, options);
- return canonized.split('\n').filter((x) => x !== '');
+ this.cryptoService = ctx.cryptoService;
}
- async compact(content) {
- const result = await jsonld.compact(content, {
- '@context': SCHEMA_CONTEXT,
- });
+ calculateAssertionSize(assertion) {
+ const numberOfChunks = kcTools.calculateNumberOfChunks(assertion, CHUNK_BYTE_SIZE);
+ return numberOfChunks * CHUNK_BYTE_SIZE;
+ }
- return result;
+ createTripleAnnotations(groupedTriples, annotationPredicate, annotations) {
+ return groupedTriples.flatMap((knowledgeAssetTriples, index) =>
+ knowledgeAssetTriples.map(
+ (triple) =>
+ `<< ${triple.replace(' .', '')} >> ${annotationPredicate} ${
+ annotations[index]
+ } .`,
+ ),
+ );
}
- async canonize(content) {
- const nquads = await this.toNQuads(content);
- if (nquads && nquads.length === 0) {
- throw new Error('File format is corrupted, no n-quads extracted.');
- }
+ countDistinctSubjects(triples) {
+ return kcTools.countDistinctSubjects(triples);
+ }
- return nquads;
+ groupTriplesBySubject(triples, sort = true) {
+ return kcTools.groupNquadsBySubject(triples, sort);
}
/**
@@ -90,12 +82,87 @@ class DataService {
getPrivateAssertionId(publicAssertion) {
const privateAssertionLinkTriple = publicAssertion.filter((triple) =>
- triple.includes(PRIVATE_ASSERTION_PREDICATE),
+ triple.includes(V0_PRIVATE_ASSERTION_PREDICATE),
)[0];
if (!privateAssertionLinkTriple) return;
return privateAssertionLinkTriple.match(/"(.*?)"/)[1];
}
+
+ // Asumes nobody is using PRIVATE_HASH_SUBJECT_PREFIX subject in assertion
+ quadsContainsPrivateRepresentations(quads) {
+ return (
+ quads[0].split(' ')[0].startsWith(`<${PRIVATE_HASH_SUBJECT_PREFIX}`) ||
+ quads[quads.length - 1].split(' ')[0].startsWith(`<${PRIVATE_HASH_SUBJECT_PREFIX}`)
+ );
+ }
+
+ generateHashFromString(string) {
+ return this.cryptoService.sha256EncodePacked(['string'], [string]);
+ }
+
+ splitConnectedArrays(publicTriples) {
+ const groupedPublic = [];
+ let currentSubject = publicTriples[0].split(' ')[0];
+ let currentSubjectHash = currentSubject.startsWith('`;
+ let currentKA = [publicTriples[0]];
+
+ for (let i = 1; i < publicTriples.length; i += 1) {
+ const [subject] = publicTriples[i].split(' ');
+
+ const subjectHash = subject.startsWith('`;
+
+ if (
+ currentSubject === subject ||
+ currentSubjectHash === subject ||
+ subjectHash === currentSubject
+ ) {
+ currentKA.push(publicTriples[i]);
+ } else {
+ groupedPublic.push(currentKA);
+ currentSubject = subject;
+ currentSubjectHash = subjectHash;
+ currentKA = [publicTriples[i]];
+ }
+ }
+
+ // Push the last group
+ groupedPublic.push(currentKA);
+
+ return groupedPublic;
+ }
+
+ insertStringInSortedArray(array, str) {
+ // Assuming triplesArray is already sorted
+ let left = 0;
+ let right = array.length;
+ while (left < right) {
+ const mid = Math.floor((left + right) / 2);
+ if (array[mid].localeCompare(str) < 0) {
+ left = mid + 1;
+ } else {
+ right = mid;
+ }
+ }
+ array.splice(left, 0, str);
+ return left;
+ }
+
+ removeDuplicateObjectsFromArray(array) {
+ const seen = new Set();
+ return array.filter((item) => {
+ const key = Object.values(item).join('_');
+ if (seen.has(key)) {
+ return false;
+ }
+ seen.add(key);
+ return true;
+ });
+ }
}
export default DataService;
diff --git a/src/service/file-service.js b/src/service/file-service.js
index 34c1c68c45..59a720d5ad 100644
--- a/src/service/file-service.js
+++ b/src/service/file-service.js
@@ -1,10 +1,24 @@
+import os from 'os';
import path from 'path';
-import { mkdir, writeFile, readFile, unlink, stat, readdir, rm } from 'fs/promises';
+import {
+ mkdir,
+ writeFile,
+ readFile,
+ unlink,
+ stat,
+ readdir,
+ rm,
+ appendFile,
+ chmod,
+} from 'fs/promises';
import appRootPath from 'app-root-path';
-
-const MIGRATION_FOLDER_NAME = 'migrations';
-
-const ARCHIVE_FOLDER_NAME = 'archive';
+import {
+ ARCHIVE_FOLDER,
+ BLS_KEY_DIRECTORY,
+ BLS_KEY_FILENAME,
+ MIGRATION_FOLDER,
+ NODE_ENVIRONMENTS,
+} from '../constants/constants.js';
class FileService {
constructor(ctx) {
@@ -23,16 +37,28 @@ class FileService {
* @param data
* @returns {Promise}
*/
- async writeContentsToFile(directory, filename, data, log = true) {
+ async writeContentsToFile(directory, filename, data, log = true, flag = 'w') {
if (log) {
this.logger.debug(`Saving file with name: ${filename} in the directory: ${directory}`);
}
await mkdir(directory, { recursive: true });
const fullpath = path.join(directory, filename);
- await writeFile(fullpath, data);
+ await writeFile(fullpath, data, { flag });
return fullpath;
}
+ async appendContentsToFile(directory, filename, data, log = true) {
+ if (log) {
+ this.logger.debug(`Saving file with name: ${filename} in the directory: ${directory}`);
+ }
+ await mkdir(directory, { recursive: true });
+ const fullPath = path.join(directory, filename);
+
+ await appendFile(fullPath, data);
+
+ return fullPath;
+ }
+
async readDirectory(dirPath) {
this.logger.debug(`Reading folder at path: ${dirPath}`);
try {
@@ -103,11 +129,43 @@ class FileService {
}
}
+ getBinariesFolderPath() {
+ return path.join(appRootPath.path, 'bin');
+ }
+
+ getBinaryPath(binary) {
+ let binaryName = binary;
+ if (process.platform === 'win32') {
+ binaryName += '.exe';
+ }
+ return path.join(this.getBinariesFolderPath(), process.platform, process.arch, binaryName);
+ }
+
+ async makeBinaryExecutable(binary) {
+ const binaryPath = this.getBinaryPath(binary);
+ if (os.platform() !== 'win32') {
+ await chmod(binaryPath, '755', (err) => {
+ if (err) {
+ throw err;
+ }
+ this.logger.debug(`Permissions for binary ${binaryPath} have been set to 755.`);
+ });
+ }
+ }
+
+ getBLSSecretKeyFolderPath() {
+ return path.join(this.getDataFolderPath(), BLS_KEY_DIRECTORY);
+ }
+
+ getBLSSecretKeyPath() {
+ return path.join(this.getBLSSecretKeyFolderPath(), BLS_KEY_FILENAME);
+ }
+
getDataFolderPath() {
if (
- process.env.NODE_ENV === 'testnet' ||
- process.env.NODE_ENV === 'mainnet' ||
- process.env.NODE_ENV === 'devnet'
+ process.env.NODE_ENV === NODE_ENVIRONMENTS.DEVNET ||
+ process.env.NODE_ENV === NODE_ENVIRONMENTS.TESTNET ||
+ process.env.NODE_ENV === NODE_ENVIRONMENTS.MAINNET
) {
return path.join(appRootPath.path, '..', this.config.appDataPath);
}
@@ -119,7 +177,7 @@ class FileService {
}
getMigrationFolderPath() {
- return path.join(this.getDataFolderPath(), MIGRATION_FOLDER_NAME);
+ return path.join(this.getDataFolderPath(), MIGRATION_FOLDER);
}
getOperationIdCachePath() {
@@ -130,64 +188,28 @@ class FileService {
return path.join(this.getOperationIdCachePath(), operationId);
}
- getPendingStorageCachePath(repository) {
- return path.join(this.getDataFolderPath(), 'pending_storage_cache', repository);
+ getPendingStorageCachePath() {
+ return path.join(this.getDataFolderPath(), 'pending_storage_cache');
}
- getPendingStorageFolderPath(repository, blockchain, contract, tokenId) {
- return path.join(
- this.getPendingStorageCachePath(repository),
- `${blockchain.toLowerCase()}:${contract.toLowerCase()}:${tokenId}`,
- );
+ getPendingStorageDocumentPath(operationId) {
+ return path.join(this.getPendingStorageCachePath(), operationId);
}
- async getPendingStorageLatestDocument(repository, blockchain, contract, tokenId) {
- const pendingStorageFolder = this.getPendingStorageFolderPath(
- repository,
- blockchain,
- contract,
- tokenId,
- );
-
- let latestFile;
- let latestMtime = 0;
- try {
- const files = await readdir(pendingStorageFolder);
-
- for (const file of files) {
- const filePath = path.join(pendingStorageFolder, file);
- // eslint-disable-next-line no-await-in-loop
- const stats = await stat(filePath);
-
- if (stats.mtimeMs > latestMtime) {
- latestFile = file;
- latestMtime = stats.mtimeMs;
- }
- }
- } catch (error) {
- if (error.code === 'ENOENT') {
- this.logger.debug(`Folder not found at path: ${pendingStorageFolder}`);
- return false;
- }
- throw error;
- }
-
- return latestFile ?? false;
+ getSignatureStorageCachePath() {
+ return path.join(this.getDataFolderPath(), 'signature_storage_cache');
}
- async getPendingStorageDocumentPath(repository, blockchain, contract, tokenId, assertionId) {
- const pendingStorageFolder = this.getPendingStorageFolderPath(
- repository,
- blockchain,
- contract,
- tokenId,
- );
+ getSignatureStorageFolderPath(folderName) {
+ return path.join(this.getSignatureStorageCachePath(), folderName);
+ }
- return path.join(pendingStorageFolder, assertionId);
+ getSignatureStorageDocumentPath(folderName, operationId) {
+ return path.join(this.getSignatureStorageFolderPath(folderName), operationId);
}
getArchiveFolderPath(subFolder) {
- return path.join(this.getDataFolderPath(), ARCHIVE_FOLDER_NAME, subFolder);
+ return path.join(this.getDataFolderPath(), ARCHIVE_FOLDER, subFolder);
}
getParentDirectory(filePath) {
diff --git a/src/service/finality-service.js b/src/service/finality-service.js
new file mode 100644
index 0000000000..a39e2087b8
--- /dev/null
+++ b/src/service/finality-service.js
@@ -0,0 +1,85 @@
+import { Mutex } from 'async-mutex';
+import OperationService from './operation-service.js';
+import {
+ OPERATION_ID_STATUS,
+ NETWORK_PROTOCOLS,
+ ERROR_TYPE,
+ OPERATIONS,
+ OPERATION_REQUEST_STATUS,
+ FINALITY_BATCH_SIZE,
+ FINALITY_MIN_NUM_OF_NODE_REPLICATIONS,
+} from '../constants/constants.js';
+
+class FinalityService extends OperationService {
+ constructor(ctx) {
+ super(ctx);
+
+ this.operationName = OPERATIONS.FINALITY;
+ this.networkProtocols = NETWORK_PROTOCOLS.FINALITY;
+ this.errorType = ERROR_TYPE.FINALITY.FINALITY_ERROR;
+ this.completedStatuses = [
+ OPERATION_ID_STATUS.FINALITY.FINALITY_FETCH_FROM_NODES_END,
+ OPERATION_ID_STATUS.FINALITY.FINALITY_END,
+ OPERATION_ID_STATUS.COMPLETED,
+ ];
+ this.ualService = ctx.ualService;
+ this.tripleStoreService = ctx.tripleStoreService;
+ this.repositoryModuleManager = ctx.repositoryModuleManager;
+ this.blockchainModuleManager = ctx.blockchainModuleManager;
+ this.paranetService = ctx.paranetService;
+ this.operationMutex = new Mutex();
+ }
+
+ async processResponse(command, responseStatus, responseData) {
+ const { operationId, blockchain } = command.data;
+
+ const responseStatusesFromDB = await this.getResponsesStatuses(
+ responseStatus,
+ responseData.errorMessage,
+ operationId,
+ );
+
+ const { completedNumber, failedNumber } = responseStatusesFromDB[operationId];
+
+ this.logger.debug(
+ `Processing ${this.operationName} response with status: ${responseStatus} for operationId: ${operationId}. ` +
+ `Completed: ${completedNumber}, Failed: ${failedNumber}`,
+ );
+ if (responseData.errorMessage) {
+ this.logger.trace(
+ `Error message for operation id: ${operationId} : ${responseData.errorMessage}`,
+ );
+ }
+
+ if (responseStatus === OPERATION_REQUEST_STATUS.COMPLETED) {
+ await this.markOperationAsCompleted(
+ operationId,
+ blockchain,
+ {
+ completedNodes: 1,
+ allNodesReplicatedData: true,
+ },
+ [...this.completedStatuses],
+ );
+ this.logResponsesSummary(completedNumber, failedNumber);
+ } else {
+ await this.markOperationAsFailed(
+ operationId,
+ blockchain,
+ `Unable to send ACK for finalization!`,
+ this.errorType,
+ );
+ this.logResponsesSummary(completedNumber, failedNumber);
+ }
+ }
+
+ getBatchSize(batchSize = null) {
+ return batchSize ?? FINALITY_BATCH_SIZE;
+ }
+
+ getMinAckResponses(minimumNumberOfNodeReplications = null) {
+ return minimumNumberOfNodeReplications ?? FINALITY_MIN_NUM_OF_NODE_REPLICATIONS;
+ }
+}
+
+export default FinalityService;
diff --git a/src/service/get-service.js b/src/service/get-service.js
index 442692b43b..e7de8a066d 100644
--- a/src/service/get-service.js
+++ b/src/service/get-service.js
@@ -6,7 +6,8 @@ import {
ERROR_TYPE,
OPERATIONS,
OPERATION_REQUEST_STATUS,
- TRIPLE_STORE_REPOSITORIES,
+ GET_BATCH_SIZE,
+ GET_MIN_NUM_OF_NODE_REPLICATIONS,
} from '../constants/constants.js';
class GetService extends OperationService {
@@ -21,10 +22,6 @@ class GetService extends OperationService {
OPERATION_ID_STATUS.GET.GET_END,
OPERATION_ID_STATUS.COMPLETED,
];
- this.ualService = ctx.ualService;
- this.tripleStoreService = ctx.tripleStoreService;
- this.blockchainModuleManager = ctx.blockchainModuleManager;
- this.paranetService = ctx.paranetService;
this.operationMutex = new Mutex();
}
@@ -34,41 +31,36 @@ class GetService extends OperationService {
blockchain,
numberOfFoundNodes,
leftoverNodes,
- keyword,
batchSize,
minAckResponses,
- contract,
- tokenId,
assertionId,
- assetSync,
- stateIndex,
- paranetSync,
- paranetTokenId,
- paranetLatestAsset,
} = command.data;
- const keywordsStatuses = await this.getResponsesStatuses(
+ const responseStatusesFromDB = await this.getResponsesStatuses(
responseStatus,
responseData.errorMessage,
operationId,
- keyword,
);
- const { completedNumber, failedNumber } = keywordsStatuses[keyword];
- const numberOfResponses = completedNumber + failedNumber;
+ const { completedNumber, failedNumber } = responseStatusesFromDB[operationId];
+
+ const totalResponses = completedNumber + failedNumber;
+ const isAllNodesResponded = numberOfFoundNodes === totalResponses;
+ const isBatchCompleted = totalResponses % batchSize === 0;
+
this.logger.debug(
`Processing ${
this.operationName
- } response with status: ${responseStatus} for operationId: ${operationId}, keyword: ${keyword}. Total number of nodes: ${numberOfFoundNodes}, number of nodes in batch: ${Math.min(
+ } response with status: ${responseStatus} for operationId: ${operationId}. Total number of nodes: ${numberOfFoundNodes}, number of nodes in batch: ${Math.min(
numberOfFoundNodes,
batchSize,
)} number of leftover nodes: ${
leftoverNodes.length
- }, number of responses: ${numberOfResponses}, Completed: ${completedNumber}, Failed: ${failedNumber}`,
+ }, number of responses: ${totalResponses}, Completed: ${completedNumber}, Failed: ${failedNumber}`,
);
if (responseData.errorMessage) {
this.logger.trace(
- `Error message for operation id: ${operationId}, keyword: ${keyword} : ${responseData.errorMessage}`,
+ `Error message for operation id: ${operationId} : ${responseData.errorMessage}`,
);
}
@@ -76,98 +68,36 @@ class GetService extends OperationService {
responseStatus === OPERATION_REQUEST_STATUS.COMPLETED &&
completedNumber === minAckResponses
) {
- await this.markOperationAsCompleted(
- operationId,
- blockchain,
- { assertion: responseData.nquads },
- this.completedStatuses,
- );
+ await this.markOperationAsCompleted(operationId, blockchain, responseData, [
+ ...this.completedStatuses,
+ ]);
this.logResponsesSummary(completedNumber, failedNumber);
+ } else if (completedNumber < minAckResponses && (isAllNodesResponded || isBatchCompleted)) {
+ const potentialCompletedNumber = completedNumber + leftoverNodes.length;
- const ual = this.ualService.deriveUAL(blockchain, contract, tokenId);
-
- // Fetched old state - store it in public history repo
- if (paranetSync && !paranetLatestAsset) {
- this.logger.debug(
- `Paranet sync: ${responseData.nquads.length} nquads found for asset with ual: ${ual}, state index: ${stateIndex}, assertionId: ${assertionId}`,
- );
- await this.tripleStoreService.localStoreAsset(
- TRIPLE_STORE_REPOSITORIES.PUBLIC_HISTORY,
- assertionId,
- responseData.nquads,
- blockchain,
- contract,
- tokenId,
- keyword,
- );
- } else if (assetSync) {
- this.logger.debug(
- `Asset sync: ${responseData.nquads.length} nquads found for asset with ual: ${ual}, state index: ${stateIndex}, assertionId: ${assertionId}`,
- );
-
- await this.tripleStoreService.localStoreAsset(
- TRIPLE_STORE_REPOSITORIES.PUBLIC_CURRENT,
- assertionId,
- responseData.nquads,
- blockchain,
- contract,
- tokenId,
- keyword,
- );
-
- // Paranet sync for latest state
- if (paranetSync) {
- this.logger.debug(
- `Paranet sync: ${responseData.nquads.length} nquads found for asset with ual: ${ual}, state index: ${stateIndex}, assertionId: ${assertionId}`,
- );
- const paranetUAL = this.ualService.deriveUAL(
- blockchain,
- contract,
- paranetTokenId,
- );
- const paranetRepository =
- this.paranetService.getParanetRepositoryName(paranetUAL);
- await this.tripleStoreService.localStoreAsset(
- paranetRepository,
- assertionId,
- responseData.nquads,
- blockchain,
- contract,
- tokenId,
- keyword,
- );
- }
- }
- }
-
- if (
- completedNumber < minAckResponses &&
- (numberOfFoundNodes === failedNumber || failedNumber % batchSize === 0)
- ) {
- if (leftoverNodes.length === 0) {
- this.logger.info(
- `Unable to find assertion on the network for operation id: ${operationId}`,
- );
- await this.markOperationAsCompleted(
+ // Still possible to meet minAckResponses, schedule leftover nodes
+ if (leftoverNodes.length > 0 && potentialCompletedNumber >= minAckResponses) {
+ await this.scheduleOperationForLeftoverNodes(command.data, leftoverNodes);
+ } else {
+ // Not enough potential responses to meet minAckResponses, or no leftover nodes
+ this.markOperationAsFailed(
operationId,
blockchain,
- {
- message: 'Unable to find assertion on the network!',
- },
- this.completedStatuses,
+ `Unable to find assertion ${assertionId} on the network!`,
+ this.errorType,
);
this.logResponsesSummary(completedNumber, failedNumber);
- if (assetSync) {
- const ual = this.ualService.deriveUAL(blockchain, contract, tokenId);
- this.logger.debug(
- `ASSET_SYNC: No nquads found for asset with ual: ${ual}, state index: ${stateIndex}, assertionId: ${assertionId}`,
- );
- }
- } else {
- await this.scheduleOperationForLeftoverNodes(command.data, leftoverNodes);
}
}
}
+
+ getBatchSize(batchSize = null) {
+ return batchSize ?? GET_BATCH_SIZE;
+ }
+
+ getMinAckResponses(minimumNumberOfNodeReplications = null) {
+ return minimumNumberOfNodeReplications ?? GET_MIN_NUM_OF_NODE_REPLICATIONS;
+ }
}
export default GetService;
diff --git a/src/service/hashing-service.js b/src/service/hashing-service.js
deleted file mode 100644
index a9404ed8f9..0000000000
--- a/src/service/hashing-service.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import { ethers } from 'ethers';
-
-class HashingService {
- constructor(ctx) {
- this.config = ctx.config;
- this.logger = ctx.logger;
-
- this.hashFunctions = {
- 1: 'sha256',
- };
- }
-
- callHashFunction(hashFunctionId, data) {
- const hashFunctionName = this.getHashFunctionName(hashFunctionId);
- return this[hashFunctionName](data);
- }
-
- getHashFunctionName(hashFunctionId) {
- return this.hashFunctions[hashFunctionId];
- }
-
- sha256(data) {
- if (!ethers.utils.isBytesLike(data)) {
- const bytesLikeData = ethers.utils.toUtf8Bytes(data);
- return ethers.utils.sha256(bytesLikeData);
- }
- return ethers.utils.sha256(data);
- }
-}
-
-export default HashingService;
diff --git a/src/service/json-schema-service.js b/src/service/json-schema-service.js
index 859d9edab2..1bf802afb6 100644
--- a/src/service/json-schema-service.js
+++ b/src/service/json-schema-service.js
@@ -26,6 +26,7 @@ class JsonSchemaService {
switch (version) {
case 'v0':
+ case 'v1':
schemaArgs.blockchainImplementationNames =
this.blockchainModuleManager.getImplementationNames();
break;
@@ -41,6 +42,7 @@ class JsonSchemaService {
switch (version) {
case 'v0':
+ case 'v1':
schemaArgs.blockchainImplementationNames =
this.blockchainModuleManager.getImplementationNames();
break;
@@ -56,6 +58,7 @@ class JsonSchemaService {
switch (version) {
case 'v0':
+ case 'v1':
schemaArgs.blockchainImplementationNames =
this.blockchainModuleManager.getImplementationNames();
break;
@@ -71,6 +74,7 @@ class JsonSchemaService {
switch (version) {
case 'v0':
+ case 'v1':
break;
default:
throw Error(`HTTP API version: ${version} isn't supported.`);
@@ -84,6 +88,7 @@ class JsonSchemaService {
switch (version) {
case 'v0':
+ case 'v1':
break;
default:
throw Error(`HTTP API version: ${version} isn't supported.`);
@@ -97,6 +102,7 @@ class JsonSchemaService {
switch (version) {
case 'v0':
+ case 'v1':
schemaArgs.blockchainImplementationNames =
this.blockchainModuleManager.getImplementationNames();
break;
@@ -106,6 +112,36 @@ class JsonSchemaService {
return this.loadSchema(version, 'local-store', schemaArgs);
}
+
+ async finalitySchema(version) {
+ const schemaArgs = {};
+
+ switch (version) {
+ case 'v1':
+ schemaArgs.blockchainImplementationNames =
+ this.blockchainModuleManager.getImplementationNames();
+ break;
+ default:
+ throw Error(`HTTP API version: ${version} isn't supported.`);
+ }
+
+ return this.loadSchema(version, 'finality', schemaArgs);
+ }
+
+ async askSchema(version) {
+ const schemaArgs = {};
+
+ switch (version) {
+ case 'v1':
+ schemaArgs.blockchainImplementationNames =
+ this.blockchainModuleManager.getImplementationNames();
+ break;
+ default:
+ throw Error(`HTTP API version: ${version} isn't supported.`);
+ }
+
+ return this.loadSchema(version, 'ask', schemaArgs);
+ }
}
export default JsonSchemaService;
diff --git a/src/service/operation-id-service.js b/src/service/operation-id-service.js
index 8331c067ea..658d6359b1 100644
--- a/src/service/operation-id-service.js
+++ b/src/service/operation-id-service.js
@@ -15,12 +15,12 @@ class OperationIdService {
return uuidv4();
}
- async generateOperationId(status) {
+ async generateOperationId(status, previousOperationId = null) {
const operationIdObject = await this.repositoryModuleManager.createOperationIdRecord({
status,
});
const { operationId } = operationIdObject;
- this.emitChangeEvent(status, operationId);
+ this.emitChangeEvent(status, operationId, null, previousOperationId);
this.logger.debug(`Generated operation id for request ${operationId}`);
return operationId;
}
@@ -72,8 +72,11 @@ class OperationIdService {
await this.removeOperationIdCache(operationId);
}
- this.emitChangeEvent(status, operationId, blockchain, errorMessage, errorType);
-
+ if (errorType) {
+ this.emitChangeEvent(errorType, operationId, blockchain, errorMessage, errorType);
+ } else {
+ this.emitChangeEvent(status, operationId, blockchain, errorMessage, errorType);
+ }
await this.repositoryModuleManager.updateOperationIdRecord(response, operationId);
}
@@ -101,7 +104,13 @@ class OperationIdService {
this.eventEmitter.emit(eventName, eventData);
}
- async cacheOperationIdData(operationId, data) {
+ async cacheOperationIdDataToMemory(operationId, data) {
+ this.logger.debug(`Caching data for operation id: ${operationId} in memory`);
+
+ this.memoryCachedHandlersData[operationId] = { data, timestamp: Date.now() };
+ }
+
+ async cacheOperationIdDataToFile(operationId, data) {
this.logger.debug(`Caching data for operation id: ${operationId} in file`);
const operationIdCachePath = this.fileService.getOperationIdCachePath();
@@ -110,8 +119,6 @@ class OperationIdService {
operationId,
JSON.stringify(data),
);
-
- this.memoryCachedHandlersData[operationId] = { data, timestamp: Date.now() };
}
async getCachedOperationIdData(operationId) {
@@ -120,7 +127,9 @@ class OperationIdService {
return this.memoryCachedHandlersData[operationId].data;
}
- this.logger.debug(`Reading operation id: ${operationId} cached data from file`);
+ this.logger.debug(
+ `Didn't manage to get cached ${operationId} data from memory, trying file`,
+ );
const documentPath = this.fileService.getOperationIdDocumentPath(operationId);
let data;
if (await this.fileService.pathExists(documentPath)) {
diff --git a/src/service/operation-service.js b/src/service/operation-service.js
index c2897d7222..40e53b0d4b 100644
--- a/src/service/operation-service.js
+++ b/src/service/operation-service.js
@@ -27,15 +27,14 @@ class OperationService {
);
}
- async getResponsesStatuses(responseStatus, errorMessage, operationId, keyword) {
- const self = this;
+ async getResponsesStatuses(responseStatus, errorMessage, operationId) {
let responses = 0;
+ const self = this;
await this.operationMutex.runExclusive(async () => {
await self.repositoryModuleManager.createOperationResponseRecord(
responseStatus,
this.operationName,
operationId,
- keyword,
errorMessage,
);
responses = await self.repositoryModuleManager.getOperationResponsesStatuses(
@@ -44,34 +43,37 @@ class OperationService {
);
});
- const keywordsStatuses = {};
- responses.forEach((response) => {
- if (!keywordsStatuses[response.keyword])
- keywordsStatuses[response.keyword] = { failedNumber: 0, completedNumber: 0 };
+ const operationIdStatuses = {};
+ for (const response of responses) {
+ if (!operationIdStatuses[operationId])
+ operationIdStatuses[operationId] = { failedNumber: 0, completedNumber: 0 };
if (response.status === OPERATION_REQUEST_STATUS.FAILED) {
- keywordsStatuses[response.keyword].failedNumber += 1;
+ operationIdStatuses[operationId].failedNumber += 1;
} else {
- keywordsStatuses[response.keyword].completedNumber += 1;
+ operationIdStatuses[operationId].completedNumber += 1;
}
- });
+ }
- return keywordsStatuses;
+ return operationIdStatuses;
}
async markOperationAsCompleted(operationId, blockchain, responseData, endStatuses) {
this.logger.info(`Finalizing ${this.operationName} for operationId: ${operationId}`);
+ if (responseData === null) {
+ await this.operationIdService.removeOperationIdCache(operationId);
+ } else {
+ await this.operationIdService.cacheOperationIdDataToMemory(operationId, responseData);
+ await this.operationIdService.cacheOperationIdDataToFile(operationId, responseData);
+ }
+
await this.repositoryModuleManager.updateOperationStatus(
this.operationName,
operationId,
OPERATION_STATUS.COMPLETED,
);
- if (responseData != null) {
- await this.operationIdService.cacheOperationIdData(operationId, responseData);
- }
-
for (const status of endStatuses) {
// eslint-disable-next-line no-await-in-loop
await this.operationIdService.updateOperationIdStatus(operationId, blockchain, status);
@@ -81,6 +83,8 @@ class OperationService {
async markOperationAsFailed(operationId, blockchain, message, errorType) {
this.logger.info(`${this.operationName} for operationId: ${operationId} failed.`);
+ await this.operationIdService.removeOperationIdCache(operationId);
+
await this.repositoryModuleManager.updateOperationStatus(
this.operationName,
operationId,
@@ -112,6 +116,14 @@ class OperationService {
}, failed: ${failedNumber}, completed: ${completedNumber}`,
);
}
+
+ getBatchSize() {
+ throw Error('getBatchSize not implemented');
+ }
+
+ getMinAckResponses() {
+ throw Error('getMinAckResponses not implemented');
+ }
}
export default OperationService;
diff --git a/src/service/paranet-service.js b/src/service/paranet-service.js
index 86b1d1e29f..ed1e7210f0 100644
--- a/src/service/paranet-service.js
+++ b/src/service/paranet-service.js
@@ -3,6 +3,7 @@ class ParanetService {
this.blockchainModuleManager = ctx.blockchainModuleManager;
this.repositoryModuleManager = ctx.repositoryModuleManager;
this.ualService = ctx.ualService;
+ this.cryptoService = ctx.cryptoService;
}
async initializeParanetRecord(blockchain, paranetId) {
@@ -24,35 +25,34 @@ class ParanetService {
}
}
- constructParanetId(blockchain, contract, tokenId) {
- const keyword = this.blockchainModuleManager.encodePacked(
- blockchain,
+ constructParanetId(contract, tokenId) {
+ return this.cryptoService.keccak256EncodePacked(
['address', 'uint256'],
[contract, tokenId],
);
-
- return this.blockchainModuleManager.keccak256(blockchain, keyword);
}
- constructKnowledgeAssetId(blockchain, contract, tokenId) {
- const keyword = this.blockchainModuleManager.encodePacked(
- blockchain,
+ constructKnowledgeAssetId(contract, tokenId) {
+ return this.cryptoService.keccak256EncodePacked(
['address', 'uint256'],
[contract, tokenId],
);
-
- return this.blockchainModuleManager.keccak256(blockchain, keyword);
}
- getParanetRepositoryName(paranetId) {
- if (this.ualService.isUAL(paranetId)) {
+ getParanetRepositoryName(paranetUAL) {
+ if (this.ualService.isUAL(paranetUAL)) {
// Replace : and / with -
- return paranetId.replace(/[/:]/g, '-').toLowerCase();
+ return paranetUAL.replace(/[/:]/g, '-').toLowerCase();
}
throw new Error(
- `Unable to get Paranet repository name. Paranet id doesn't have UAL format: ${paranetId}`,
+ `Unable to get Paranet repository name. Paranet id doesn't have UAL format: ${paranetUAL}`,
);
}
+
+ getParanetIdFromUAL(paranetUAL) {
+ const { contract, tokenId } = this.ualService.resolveUAL(paranetUAL);
+ return this.constructParanetId(contract, tokenId);
+ }
}
export default ParanetService;
diff --git a/src/service/pending-storage-service.js b/src/service/pending-storage-service.js
index 1269e760f0..f049ad927a 100644
--- a/src/service/pending-storage-service.js
+++ b/src/service/pending-storage-service.js
@@ -1,46 +1,132 @@
+import path from 'path';
import {
- CONTENT_ASSET_HASH_FUNCTION_ID,
- SERVICE_AGREEMENT_SOURCES,
+ NETWORK_SIGNATURES_FOLDER,
+ PUBLISHER_NODE_SIGNATURES_FOLDER,
} from '../constants/constants.js';
class PendingStorageService {
constructor(ctx) {
this.logger = ctx.logger;
this.fileService = ctx.fileService;
- this.ualService = ctx.ualService;
- this.serviceAgreementService = ctx.serviceAgreementService;
- this.repositoryModuleManager = ctx.repositoryModuleManager;
- this.blockchainModuleManager = ctx.blockchainModuleManager;
- this.tripleStoreService = ctx.tripleStoreService;
+ this.repositoryModuleManager = ctx.repositoryModuleManager; // this is not used
+ this.tripleStoreService = ctx.tripleStoreService; // this is not used
}
- async cacheAssertion(
- repository,
- blockchain,
- contract,
- tokenId,
- assertionId,
- assertion,
- operationId,
- ) {
- const ual = this.ualService.deriveUAL(blockchain, contract, tokenId);
-
+ async cacheDataset(operationId, datasetRoot, dataset, remotePeerId) {
this.logger.debug(
- `Caching ${assertionId} assertion for ual: ${ual}, operation id: ${operationId} in file in ${repository} pending storage`,
+ `Caching ${datasetRoot} dataset root, operation id: ${operationId} in file in pending storage`,
);
- const pendingStorageFolderPath = this.fileService.getPendingStorageFolderPath(
- repository,
- blockchain,
- contract,
- tokenId,
+ await this.fileService.writeContentsToFile(
+ this.fileService.getPendingStorageCachePath(),
+ operationId,
+ JSON.stringify({
+ merkleRoot: datasetRoot,
+ assertion: dataset,
+ remotePeerId,
+ }),
);
+ }
- await this.fileService.writeContentsToFile(
- pendingStorageFolderPath,
- assertionId,
- JSON.stringify(assertion),
+ async getCachedDataset(operationId) {
+ this.logger.debug(`Retrieving cached dataset for ${operationId} from pending storage`);
+
+ const filePath = this.fileService.getPendingStorageDocumentPath(operationId);
+
+ try {
+ const fileContents = await this.fileService.readFile(filePath, true);
+ return fileContents.assertion;
+ } catch (error) {
+ this.logger.error(
+ `Failed to retrieve or parse cached dataset for ${operationId}: ${error.message}`,
+ );
+ throw error;
+ }
+ }
+
+ async removeExpiredFileCache(expirationTimeMillis, maxRemovalCount) {
+ this.logger.debug(
+ `Cleaning up expired files older than ${expirationTimeMillis} milliseconds. Max removal: ${maxRemovalCount}`,
);
+
+ const now = Date.now();
+ let removedCount = 0;
+
+ try {
+ // Define the paths to the directories we want to clean
+ const storagePaths = [
+ this.fileService.getPendingStorageCachePath(),
+ this.fileService.getSignatureStorageFolderPath(NETWORK_SIGNATURES_FOLDER),
+ this.fileService.getSignatureStorageFolderPath(PUBLISHER_NODE_SIGNATURES_FOLDER),
+ ];
+
+ const filesToDelete = [];
+
+ // Function to collect files from the provided base path
+ const collectFiles = async (basePath) => {
+ if (!(await this.fileService.pathExists(basePath))) {
+ this.logger.warn(`Storage path does not exist: ${basePath}`);
+ return;
+ }
+
+ const files = await this.fileService.readDirectory(basePath);
+
+ // Add all files found in the directory to the filesToDelete array
+ files.forEach((file) => {
+ filesToDelete.push({ file, basePath });
+ });
+ };
+
+ // Collect files from both storage paths
+ for (const basePath of storagePaths) {
+ // eslint-disable-next-line no-await-in-loop
+ await collectFiles(basePath);
+ }
+
+ // Function to delete an expired file
+ const deleteFile = async ({ file, basePath }) => {
+ const filePath = path.join(basePath, file);
+ this.logger.debug(`Attempting to delete file: ${filePath}`);
+
+ try {
+ const fileStats = await this.fileService.stat(filePath);
+ this.logger.debug(`File stats for ${filePath}: ${JSON.stringify(fileStats)}`);
+
+ const createdDate = fileStats.mtime;
+ if (createdDate.getTime() + expirationTimeMillis < now) {
+ await this.fileService.removeFile(filePath);
+ this.logger.debug(`Deleted expired file: ${filePath}`);
+ return true;
+ }
+ } catch (fileError) {
+ this.logger.warn(`Failed to process file ${filePath}: ${fileError.message}`);
+ }
+ return false;
+ };
+
+ // Process files in batches
+ for (let i = 0; i < filesToDelete.length; i += maxRemovalCount) {
+ const batch = filesToDelete.slice(i, i + maxRemovalCount);
+
+ // eslint-disable-next-line no-await-in-loop
+ const deletionResults = await Promise.allSettled(batch.map(deleteFile));
+
+ removedCount += deletionResults.filter(
+ (result) => result.status === 'fulfilled' && result.value,
+ ).length;
+
+ if (removedCount >= maxRemovalCount) {
+ this.logger.debug(`Reached max removal count: ${maxRemovalCount}`);
+ return removedCount;
+ }
+ }
+ } catch (error) {
+ this.logger.error(`Error during file cleanup: ${error.message}`);
+ throw error;
+ }
+
+ this.logger.debug(`Total files removed: ${removedCount}`);
+ return removedCount;
}
async getCachedAssertion(repository, blockchain, contract, tokenId, assertionId, operationId) {
@@ -50,13 +136,7 @@ class PendingStorageService {
`Reading cached assertion for ual: ${ual}, assertion id: ${assertionId}, operation id: ${operationId} from file in ${repository} pending storage`,
);
try {
- const documentPath = await this.fileService.getPendingStorageDocumentPath(
- repository,
- blockchain,
- contract,
- tokenId,
- assertionId,
- );
+ const documentPath = await this.fileService.getPendingStorageDocumentPath(operationId);
const data = await this.fileService.readFile(documentPath, true);
return data;
@@ -68,14 +148,7 @@ class PendingStorageService {
}
}
- async removeCachedAssertion(
- repository,
- blockchain,
- contract,
- tokenId,
- assertionId,
- operationId,
- ) {
+ async removeCachedAssertion(repository, blockchain, contract, tokenId, operationId) {
const ual = this.ualService.deriveUAL(blockchain, contract, tokenId);
this.logger.debug(
@@ -83,11 +156,7 @@ class PendingStorageService {
);
const pendingAssertionPath = await this.fileService.getPendingStorageDocumentPath(
- repository,
- blockchain,
- contract,
- tokenId,
- assertionId,
+ operationId,
);
await this.fileService.removeFile(pendingAssertionPath);
@@ -108,170 +177,8 @@ class PendingStorageService {
}
}
- async assetHasPendingState(repository, blockchain, contract, tokenId, assertionId) {
- try {
- const documentPath = await this.fileService.getPendingStorageDocumentPath(
- repository,
- blockchain,
- contract,
- tokenId,
- assertionId,
- );
- this.logger.trace(
- `Checking if assertion exists in pending storage at path: ${documentPath}`,
- );
- return this.fileService.pathExists(documentPath);
- } catch (error) {
- return false;
- }
- }
-
- async getPendingState(repository, blockchain, contract, tokenId) {
- return this.fileService.getPendingStorageLatestDocument(
- repository,
- blockchain,
- contract,
- tokenId,
- );
- }
-
- async moveAndDeletePendingState(
- currentRepository,
- historyRepository,
- pendingRepository,
- blockchain,
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- assertionId,
- stateIndex,
- ) {
- const agreementId = this.serviceAgreementService.generateId(
- blockchain,
- contract,
- tokenId,
- keyword,
- hashFunctionId,
- );
-
- let serviceAgreementData = await this.repositoryModuleManager.getServiceAgreementRecord(
- agreementId,
- );
- if (!serviceAgreementData) {
- serviceAgreementData = await this.blockchainModuleManager.getAgreementData(
- blockchain,
- agreementId,
- );
- }
-
- await this.repositoryModuleManager.updateServiceAgreementRecord(
- blockchain,
- contract,
- tokenId,
- agreementId,
- serviceAgreementData.startTime,
- serviceAgreementData.epochsNumber,
- serviceAgreementData.epochLength,
- serviceAgreementData.scoreFunctionId,
- serviceAgreementData.proofWindowOffsetPerc,
- CONTENT_ASSET_HASH_FUNCTION_ID,
- keyword,
- assertionId,
- stateIndex,
- serviceAgreementData.dataSource ?? SERVICE_AGREEMENT_SOURCES.BLOCKCHAIN,
- serviceAgreementData?.lastCommitEpoch,
- serviceAgreementData?.lastProofEpoch,
- );
-
- const assertionLinks = await this.tripleStoreService.getAssetAssertionLinks(
- currentRepository,
- blockchain,
- contract,
- tokenId,
- );
- const storedAssertionIds = assertionLinks.map(({ assertion }) =>
- assertion.replace('assertion:', ''),
- );
-
- // event already handled
- if (storedAssertionIds.includes(assertionId)) {
- return;
- }
-
- // move old assertions to history repository
- await Promise.all(
- storedAssertionIds.map((storedAssertionId) =>
- this.tripleStoreService.moveAsset(
- currentRepository,
- historyRepository,
- storedAssertionId,
- blockchain,
- contract,
- tokenId,
- keyword,
- ),
- ),
- );
-
- await this.tripleStoreService.deleteAssetMetadata(
- currentRepository,
- blockchain,
- contract,
- tokenId,
- );
-
- const cachedData = await this.getCachedAssertion(
- pendingRepository,
- blockchain,
- contract,
- tokenId,
- assertionId,
- );
-
- const storePromises = [];
- if (cachedData?.public?.assertion) {
- // insert public assertion in current repository
- storePromises.push(
- this.tripleStoreService.localStoreAsset(
- currentRepository,
- assertionId,
- cachedData.public.assertion,
- blockchain,
- contract,
- tokenId,
- keyword,
- ),
- );
- }
-
- if (cachedData?.private?.assertion && cachedData?.private?.assertionId) {
- // insert private assertion in current repository
- storePromises.push(
- this.tripleStoreService.localStoreAsset(
- currentRepository,
- cachedData.private.assertionId,
- cachedData.private.assertion,
- blockchain,
- contract,
- tokenId,
- keyword,
- ),
- );
- }
-
- await Promise.all(storePromises);
-
- // remove asset from pending storage
- if (cachedData) {
- await this.removeCachedAssertion(
- pendingRepository,
- blockchain,
- contract,
- tokenId,
- assertionId,
- );
- }
+ async getPendingState(operationId) {
+ return this.fileService.getPendingStorageLatestDocument(operationId);
}
}
diff --git a/src/service/protocol-service.js b/src/service/protocol-service.js
index 919689b213..d99850e7f3 100644
--- a/src/service/protocol-service.js
+++ b/src/service/protocol-service.js
@@ -36,7 +36,7 @@ class ProtocolService {
const prefix = `${version}Handle${capitalizedOperation}`;
- return [`${prefix}InitCommand`, `${prefix}RequestCommand`];
+ return [`${prefix}RequestCommand`];
}
getSenderCommandSequence(protocol) {
@@ -46,7 +46,7 @@ class ProtocolService {
const prefix = `${version}${capitalizedOperation}`;
- return [`${prefix}InitCommand`, `${prefix}RequestCommand`];
+ return [`${prefix}RequestCommand`];
}
}
diff --git a/src/service/proximity-scoring-service.js b/src/service/proximity-scoring-service.js
deleted file mode 100644
index cf62d708f4..0000000000
--- a/src/service/proximity-scoring-service.js
+++ /dev/null
@@ -1,198 +0,0 @@
-import { xor as uint8ArrayXor } from 'uint8arrays/xor';
-import {
- HASH_RING_SIZE,
- UINT40_MAX_BN,
- UINT64_MAX_BN,
- UINT256_MAX_BN,
-} from '../constants/constants.js';
-
-class ProximityScoringService {
- constructor(ctx) {
- this.config = ctx.config;
- this.logger = ctx.logger;
-
- this.blockchainModuleManager = ctx.blockchainModuleManager;
-
- this.proximityScoreFunctionsPairs = {
- 1: [this.calculateBinaryXOR.bind(this), this.log2PLDSF.bind(this)],
- 2: [
- this.calculateBidirectionalProximityOnHashRing.bind(this),
- this.linearSum.bind(this),
- ],
- };
- }
-
- async callProximityFunction(
- blockchain,
- proximityFunctionId,
- peerHash,
- keyHash,
- ...additionalArgs
- ) {
- return this.proximityScoreFunctionsPairs[proximityFunctionId][0](
- blockchain,
- peerHash,
- keyHash,
- ...additionalArgs,
- );
- }
-
- async callScoreFunction(blockchain, scoreFunctionId, distance, stake, ...additionalArgs) {
- return this.proximityScoreFunctionsPairs[scoreFunctionId][1](
- blockchain,
- distance,
- stake,
- ...additionalArgs,
- );
- }
-
- async calculateBinaryXOR(blockchain, peerHash, keyHash) {
- const distance = uint8ArrayXor(
- this.blockchainModuleManager.convertBytesToUint8Array(blockchain, peerHash),
- this.blockchainModuleManager.convertBytesToUint8Array(blockchain, keyHash),
- );
-
- const distanceHex = await this.blockchainModuleManager.convertUint8ArrayToHex(
- blockchain,
- distance,
- );
-
- return this.blockchainModuleManager.toBigNumber(blockchain, distanceHex);
- }
-
- async calculateBidirectionalProximityOnHashRing(blockchain, peerHash, keyHash) {
- const peerPositionOnHashRing = await this.blockchainModuleManager.toBigNumber(
- blockchain,
- peerHash,
- );
- const keyPositionOnHashRing = await this.blockchainModuleManager.toBigNumber(
- blockchain,
- keyHash,
- );
-
- const directDistance = peerPositionOnHashRing.gt(keyPositionOnHashRing)
- ? peerPositionOnHashRing.sub(keyPositionOnHashRing)
- : keyPositionOnHashRing.sub(peerPositionOnHashRing);
- const wraparoundDistance = HASH_RING_SIZE.sub(directDistance);
-
- return directDistance.lt(wraparoundDistance) ? directDistance : wraparoundDistance;
- }
-
- async log2PLDSF(blockchain, distance, stake) {
- const log2PLDSFParams = await this.blockchainModuleManager.getLog2PLDSFParams(blockchain);
-
- const {
- distanceMappingCoefficient,
- stakeMappingCoefficient,
- multiplier,
- logArgumentConstant,
- a,
- stakeExponent,
- b,
- c,
- distanceExponent,
- d,
- } = log2PLDSFParams;
-
- const mappedStake = this.blockchainModuleManager
- .convertToWei(blockchain, stake)
- .div(stakeMappingCoefficient);
-
- const mappedDistance = distance.div(distanceMappingCoefficient);
-
- const dividend = mappedStake.pow(stakeExponent).mul(a).add(b);
- const divisor = mappedDistance.pow(distanceExponent).mul(c).add(d);
-
- return Math.floor(
- Number(multiplier) *
- Math.log2(Number(logArgumentConstant) + dividend.toNumber() / divisor.toNumber()),
- );
- }
-
- async linearSum(
- blockchain,
- distance,
- stake,
- maxNeighborhoodDistance,
- r2,
- nodesNumber,
- minStake,
- maxStake,
- ) {
- const linearSumParams = await this.blockchainModuleManager.getLinearSumParams(blockchain);
- const { distanceScaleFactor, stakeScaleFactor, w1, w2 } = linearSumParams;
- const mappedStake = this.blockchainModuleManager.convertToWei(blockchain, stake);
- const mappedMinStake = this.blockchainModuleManager.convertToWei(blockchain, minStake);
- const mappedMaxStake = this.blockchainModuleManager.convertToWei(blockchain, maxStake);
-
- const idealMaxDistanceInNeighborhood = HASH_RING_SIZE.div(nodesNumber).mul(
- Math.ceil(r2 / 2),
- );
- const divisor = maxNeighborhoodDistance.lte(idealMaxDistanceInNeighborhood)
- ? maxNeighborhoodDistance
- : idealMaxDistanceInNeighborhood;
-
- const maxMultiplier = UINT256_MAX_BN.div(distance);
-
- let scaledDistanceScaleFactor = distanceScaleFactor;
- let compensationFactor = 1;
-
- if (scaledDistanceScaleFactor.gt(maxMultiplier)) {
- compensationFactor = scaledDistanceScaleFactor.div(maxMultiplier);
- scaledDistanceScaleFactor = maxMultiplier;
- }
-
- const scaledDistance = distance.mul(scaledDistanceScaleFactor);
- const adjustedDivisor = divisor.div(compensationFactor);
-
- let normalizedDistance = scaledDistance.div(adjustedDivisor);
- if (normalizedDistance.gt(UINT64_MAX_BN)) {
- this.logger.warn(
- `Invalid normalized distance: ${normalizedDistance.toString()}. Max value: ${UINT64_MAX_BN.toString()}`,
- );
- normalizedDistance = normalizedDistance.mod(UINT64_MAX_BN.add(1));
- }
-
- let normalizedStake = stakeScaleFactor
- .mul(mappedStake.sub(mappedMinStake))
- .div(mappedMaxStake.sub(mappedMinStake));
- if (normalizedStake.gt(UINT64_MAX_BN)) {
- this.logger.warn(
- `Invalid normalized stake: ${normalizedDistance.toString()}. Max value: ${UINT64_MAX_BN.toString()}`,
- );
- normalizedStake = normalizedStake.mod(UINT64_MAX_BN.add(1));
- }
-
- const oneEther = await this.blockchainModuleManager.toBigNumber(
- blockchain,
- '1000000000000000000',
- );
-
- const isProximityScorePositive = oneEther.gte(normalizedDistance);
-
- const proximityScore = isProximityScorePositive
- ? oneEther.sub(normalizedDistance).mul(w1)
- : normalizedDistance.sub(oneEther).mul(w1);
- const stakeScore = normalizedStake.mul(w2);
-
- let finalScore;
- if (isProximityScorePositive) {
- finalScore = proximityScore.add(stakeScore);
- } else if (stakeScore.gte(proximityScore)) {
- finalScore = stakeScore.sub(proximityScore);
- } else {
- finalScore = await this.blockchainModuleManager.toBigNumber(blockchain, 0);
- }
-
- finalScore = this.toUint40(finalScore, oneEther.mul(w1 + w2));
-
- return finalScore.toNumber();
- }
-
- toUint40(value, maxValue) {
- const result = value.mul(UINT40_MAX_BN).div(maxValue);
- return result;
- }
-}
-
-export default ProximityScoringService;
diff --git a/src/service/publish-service.js b/src/service/publish-service.js
index ee0c8fb169..3c8dfe1f6b 100644
--- a/src/service/publish-service.js
+++ b/src/service/publish-service.js
@@ -6,12 +6,14 @@ import {
NETWORK_PROTOCOLS,
ERROR_TYPE,
OPERATIONS,
- OPERATION_REQUEST_STATUS,
+ PUBLISH_BATCH_SIZE,
+ PUBLISH_MIN_NUM_OF_NODE_REPLICATIONS,
} from '../constants/constants.js';
class PublishService extends OperationService {
constructor(ctx) {
super(ctx);
+ this.repositoryModuleManager = ctx.repositoryModuleManager;
this.operationName = OPERATIONS.PUBLISH;
this.networkProtocols = NETWORK_PROTOCOLS.STORE;
@@ -30,78 +32,87 @@ class PublishService extends OperationService {
blockchain,
numberOfFoundNodes,
leftoverNodes,
- keyword,
batchSize,
minAckResponses,
+ datasetRoot,
} = command.data;
- const keywordsStatuses = await this.getResponsesStatuses(
+ const datasetRootStatus = await this.getResponsesStatuses(
responseStatus,
errorMessage,
operationId,
- keyword,
);
- const { completedNumber, failedNumber } = keywordsStatuses[keyword];
- const numberOfResponses = completedNumber + failedNumber;
+ const { completedNumber, failedNumber } = datasetRootStatus[operationId];
+
+ const totalResponses = completedNumber + failedNumber;
+
this.logger.debug(
`Processing ${
this.operationName
- } response with status: ${responseStatus} for operationId: ${operationId}, keyword: ${keyword}. Total number of nodes: ${numberOfFoundNodes}, number of nodes in batch: ${Math.min(
+ } response with status: ${responseStatus} for operationId: ${operationId}, dataset root: ${datasetRoot}. Total number of nodes: ${numberOfFoundNodes}, number of nodes in batch: ${Math.min(
numberOfFoundNodes,
batchSize,
)} number of leftover nodes: ${
leftoverNodes.length
- }, number of responses: ${numberOfResponses}, Completed: ${completedNumber}, Failed: ${failedNumber}, minimum replication factor: ${minAckResponses}`,
+ }, number of responses: ${totalResponses}, Completed: ${completedNumber}, Failed: ${failedNumber}, minimum replication factor: ${minAckResponses}`,
);
if (responseData.errorMessage) {
this.logger.trace(
- `Error message for operation id: ${operationId}, keyword: ${keyword} : ${responseData.errorMessage}`,
+ `Error message for operation id: ${operationId}, dataset root: ${datasetRoot} : ${responseData.errorMessage}`,
+ );
+ }
+
+ // Minimum replication reached, mark in the operational DB
+ if (completedNumber === minAckResponses) {
+ this.logger.debug(
+ `Minimum replication ${minAckResponses} reached for operationId: ${operationId}, dataset root: ${datasetRoot}`,
+ );
+
+ await this.repositoryModuleManager.updateMinAcksReached(operationId, true);
+ }
+
+ // All requests sent, minimum replication reached, mark as completed
+ if (leftoverNodes.length === 0 && completedNumber >= minAckResponses) {
+ await this.markOperationAsCompleted(
+ operationId,
+ blockchain,
+ null,
+ this.completedStatuses,
);
+ this.logResponsesSummary(completedNumber, failedNumber);
}
+ // All requests sent, minimum replication not reached, mark as failed
+ if (leftoverNodes.length === 0 && completedNumber < minAckResponses) {
+ this.markOperationAsFailed(
+ operationId,
+ blockchain,
+ 'Not replicated to enough nodes!',
+ this.errorType,
+ );
+ this.logResponsesSummary(completedNumber, failedNumber);
+ }
+
+ // Not all requests sent, still possible to reach minimum replication,
+ // schedule requests for leftover nodes
+ const potentialCompletedNumber = completedNumber + leftoverNodes.length;
if (
- responseStatus === OPERATION_REQUEST_STATUS.COMPLETED &&
- completedNumber === minAckResponses
- ) {
- let allCompleted = true;
- for (const key in keywordsStatuses) {
- if (keywordsStatuses[key].completedNumber < minAckResponses) {
- allCompleted = false;
- break;
- }
- }
- if (allCompleted) {
- await this.markOperationAsCompleted(
- operationId,
- blockchain,
- null,
- this.completedStatuses,
- );
- this.logResponsesSummary(completedNumber, failedNumber);
- this.logger.info(
- `${this.operationName} with operation id: ${operationId} with status: ${
- this.completedStatuses[this.completedStatuses.length - 1]
- }`,
- );
- }
- } else if (
- completedNumber < minAckResponses &&
- (numberOfFoundNodes === numberOfResponses || numberOfResponses % batchSize === 0)
+ leftoverNodes.length > 0 &&
+ potentialCompletedNumber >= minAckResponses &&
+ (totalResponses - 1) % batchSize === 0
) {
- if (leftoverNodes.length === 0) {
- await this.markOperationAsFailed(
- operationId,
- blockchain,
- 'Not replicated to enough nodes!',
- this.errorType,
- );
- this.logResponsesSummary(completedNumber, failedNumber);
- } else {
- await this.scheduleOperationForLeftoverNodes(command.data, leftoverNodes);
- }
+ await this.scheduleOperationForLeftoverNodes(command.data, leftoverNodes);
}
}
+
+ getBatchSize(batchSize = null) {
+ return batchSize ?? PUBLISH_BATCH_SIZE;
+ }
+
+ getMinAckResponses(minimumNumberOfNodeReplications = null) {
+ return minimumNumberOfNodeReplications ?? PUBLISH_MIN_NUM_OF_NODE_REPLICATIONS;
+ }
}
export default PublishService;
diff --git a/src/service/service-agreement-service.js b/src/service/service-agreement-service.js
deleted file mode 100644
index 903ca7805b..0000000000
--- a/src/service/service-agreement-service.js
+++ /dev/null
@@ -1,141 +0,0 @@
-class ServiceAgreementService {
- constructor(ctx) {
- this.logger = ctx.logger;
-
- this.blockchainModuleManager = ctx.blockchainModuleManager;
- this.repositoryModuleManager = ctx.repositoryModuleManager;
- this.shardingTableService = ctx.shardingTableService;
- this.networkModuleManager = ctx.networkModuleManager;
- this.hashingService = ctx.hashingService;
- this.proximityScoringService = ctx.proximityScoringService;
- }
-
- generateId(blockchain, assetTypeContract, tokenId, keyword, hashFunctionId) {
- return this.hashingService.callHashFunction(
- hashFunctionId,
- this.blockchainModuleManager.encodePacked(
- blockchain,
- ['address', 'uint256', 'bytes'],
- [assetTypeContract, tokenId, keyword],
- ),
- );
- }
-
- randomIntFromInterval(min, max) {
- return Math.floor(Math.random() * (max - min + 1) + min);
- }
-
- async calculateBid(blockchain, blockchainAssertionSize, agreementData, r0) {
- const currentEpoch = await this.calculateCurrentEpoch(
- agreementData.startTime,
- agreementData.epochLength,
- blockchain,
- );
-
- // todo: consider optimizing to take into account cases where some proofs have already been submitted
- const epochsLeft = Number(agreementData.epochsNumber) - currentEpoch;
-
- const divisor = this.blockchainModuleManager
- .toBigNumber(blockchain, r0)
- .mul(epochsLeft)
- .mul(blockchainAssertionSize);
-
- return agreementData.tokenAmount
- .add(agreementData.updateTokenAmount)
- .mul(1024)
- .div(divisor)
- .add(1); // add 1 wei because of the precision loss
- }
-
- async calculateRank(
- blockchain,
- keyword,
- hashFunctionId,
- proximityScoreFunctionsPairId,
- r2,
- neighbourhood,
- neighbourhoodEdges,
- totalNodesNumber,
- minStake,
- maxStake,
- ) {
- const peerId = this.networkModuleManager.getPeerId().toB58String();
- if (!neighbourhood.some((node) => node.peerId === peerId)) {
- return;
- }
-
- const scores = await Promise.all(
- neighbourhood.map(async (node) => ({
- score: await this.calculateScore(
- node.peerId,
- blockchain,
- keyword,
- hashFunctionId,
- proximityScoreFunctionsPairId,
- neighbourhoodEdges,
- r2,
- totalNodesNumber,
- minStake,
- maxStake,
- ),
- peerId: node.peerId,
- })),
- );
-
- scores.sort((a, b) => b.score - a.score);
-
- return scores.findIndex((node) => node.peerId === peerId);
- }
-
- async calculateScore(
- peerId,
- blockchainId,
- keyword,
- hashFunctionId,
- proximityScoreFunctionsPairId,
- neighbourhoodEdges,
- r2,
- totalNodesNumber,
- minStake,
- maxStake,
- ) {
- const peerRecord = await this.repositoryModuleManager.getPeerRecord(peerId, blockchainId);
- const keyHash = await this.hashingService.callHashFunction(hashFunctionId, keyword);
-
- const hashFunctionName = this.hashingService.getHashFunctionName(hashFunctionId);
-
- const distance = await this.proximityScoringService.callProximityFunction(
- blockchainId,
- proximityScoreFunctionsPairId,
- peerRecord[hashFunctionName],
- keyHash,
- );
- let maxNeighborhoodDistance;
- if (neighbourhoodEdges) {
- maxNeighborhoodDistance = neighbourhoodEdges.leftEdge.distance.gt(
- neighbourhoodEdges.rightEdge.distance,
- )
- ? neighbourhoodEdges.leftEdge.distance
- : neighbourhoodEdges.rightEdge.distance;
- }
-
- return this.proximityScoringService.callScoreFunction(
- blockchainId,
- proximityScoreFunctionsPairId,
- distance,
- peerRecord.stake,
- maxNeighborhoodDistance,
- r2,
- totalNodesNumber,
- minStake,
- maxStake,
- );
- }
-
- async calculateCurrentEpoch(startTime, epochLength, blockchain) {
- const now = await this.blockchainModuleManager.getBlockchainTimestamp(blockchain);
- return Math.floor((Number(now) - Number(startTime)) / Number(epochLength));
- }
-}
-
-export default ServiceAgreementService;
diff --git a/src/service/sharding-table-service.js b/src/service/sharding-table-service.js
index 203417a3ab..d20bea388d 100644
--- a/src/service/sharding-table-service.js
+++ b/src/service/sharding-table-service.js
@@ -1,18 +1,4 @@
-import {
- BYTES_IN_KILOBYTE,
- CONTRACTS,
- DEFAULT_BLOCKCHAIN_EVENT_SYNC_PERIOD_IN_MILLS,
- PEER_RECORD_UPDATE_DELAY,
- LOW_BID_SUGGESTION,
- MED_BID_SUGGESTION,
- HIGH_BID_SUGGESTION,
- ALL_BID_SUGGESTION,
- LOW_BID_SUGGESTION_OFFSET,
- MED_BID_SUGGESTION_OFFSET,
- HIGH_BID_SUGGESTION_OFFSET,
- ERROR_TYPE,
- BID_SUGGESTION_RANGE_ENUM,
-} from '../constants/constants.js';
+import { BYTES_IN_KILOBYTE, PEER_RECORD_UPDATE_DELAY } from '../constants/constants.js';
class ShardingTableService {
constructor(ctx) {
@@ -20,22 +6,13 @@ class ShardingTableService {
this.blockchainModuleManager = ctx.blockchainModuleManager;
this.repositoryModuleManager = ctx.repositoryModuleManager;
this.networkModuleManager = ctx.networkModuleManager;
- this.hashingService = ctx.hashingService;
- this.proximityScoringService = ctx.proximityScoringService;
+ this.cryptoService = ctx.cryptoService;
this.memoryCachedPeerIds = {};
}
async initialize() {
- const pullBlockchainShardingTables = this.blockchainModuleManager
- .getImplementationNames()
- .map((blockchainId) => this.pullBlockchainShardingTable(blockchainId));
- await Promise.all(pullBlockchainShardingTables);
-
await this.networkModuleManager.onPeerConnected((connection) => {
- this.logger.trace(
- `Node connected to ${connection.remotePeer.toB58String()}, updating sharding table last seen and last dialed.`,
- );
this.updatePeerRecordLastSeenAndLastDialed(connection.remotePeer.toB58String()).catch(
(error) => {
this.logger.warn(`Unable to update connected peer, error: ${error.message}`);
@@ -44,25 +21,13 @@ class ShardingTableService {
});
}
- async pullBlockchainShardingTable(blockchainId, force = false) {
- const lastCheckedBlock = await this.repositoryModuleManager.getLastCheckedBlock(
- blockchainId,
- CONTRACTS.SHARDING_TABLE_CONTRACT,
- );
-
- if (
- force ||
- (lastCheckedBlock?.lastCheckedTimestamp &&
- Date.now() - lastCheckedBlock.lastCheckedTimestamp <
- DEFAULT_BLOCKCHAIN_EVENT_SYNC_PERIOD_IN_MILLS)
- ) {
- return;
- }
+ async pullBlockchainShardingTable(blockchainId, transaction = null) {
+ const options = transaction ? { transaction } : {};
this.logger.debug(
`Removing nodes from local sharding table for blockchain ${blockchainId}.`,
);
- await this.repositoryModuleManager.removeShardingTablePeerRecords(blockchainId);
+ await this.repositoryModuleManager.removeShardingTablePeerRecords(blockchainId, options);
const shardingTableLength = await this.blockchainModuleManager.getShardingTableLength(
blockchainId,
@@ -94,174 +59,41 @@ class ShardingTableService {
`Finished pulling ${shardingTable.length} nodes from blockchain sharding table.`,
);
- await this.repositoryModuleManager.createManyPeerRecords(
- await Promise.all(
- shardingTable.map(async (peer) => {
- const nodeId = this.blockchainModuleManager.convertHexToAscii(
- blockchainId,
- peer.nodeId,
- );
- const sha256 = await this.hashingService.callHashFunction(1, nodeId);
+ const newPeerRecords = await Promise.all(
+ shardingTable.map(async (peer) => {
+ const nodeId = this.cryptoService.convertHexToAscii(peer.nodeId);
+ const sha256 = await this.cryptoService.sha256(nodeId);
- return {
- peerId: nodeId,
- blockchainId,
- ask: this.blockchainModuleManager.convertFromWei(
- blockchainId,
- peer.ask,
- 'ether',
- ),
- stake: this.blockchainModuleManager.convertFromWei(
- blockchainId,
- peer.stake,
- 'ether',
- ),
- sha256,
- };
- }),
- ),
+ return {
+ peerId: nodeId,
+ blockchainId,
+ ask: this.cryptoService.convertFromWei(peer.ask, 'ether'),
+ stake: this.cryptoService.convertFromWei(peer.stake, 'ether'),
+ sha256,
+ };
+ }),
);
+
+ await this.repositoryModuleManager.createManyPeerRecords(newPeerRecords, options);
}
- async findNeighbourhood(blockchainId, key, r2, hashFunctionId, proximityScoreFunctionsPairId) {
+ async findShard(blockchainId /* filterInactive = false */) {
let peers = await this.repositoryModuleManager.getAllPeerRecords(blockchainId);
peers = peers.map((peer, index) => ({ ...peer.dataValues, index }));
- const keyHash = await this.hashingService.callHashFunction(hashFunctionId, key);
-
- const sortedPeers = this.sortPeers(
- blockchainId,
- keyHash,
- peers,
- r2,
- hashFunctionId,
- proximityScoreFunctionsPairId,
- );
- return sortedPeers;
+ return peers;
}
- async sortPeers(
- blockchainId,
- keyHash,
- peers,
- count,
- hashFunctionId,
- proximityScoreFunctionsPairId,
- ) {
- const hashFunctionName = this.hashingService.getHashFunctionName(hashFunctionId);
- const peersWithDistance = await Promise.all(
- peers.map(async (peer) => ({
- ...peer,
- distance: await this.proximityScoringService.callProximityFunction(
- blockchainId,
- proximityScoreFunctionsPairId,
- peer[hashFunctionName],
- keyHash,
- ),
- })),
- );
- peersWithDistance.sort((a, b) => {
- if (a.distance.lt(b.distance)) {
- return -1;
- }
- if (a.distance.gt(b.distance)) {
- return 1;
- }
- return 0;
- });
- return peersWithDistance.slice(0, count);
- }
-
- async getBidSuggestion(
- blockchainId,
- epochsNumber,
- assertionSize,
- contentAssetStorageAddress,
- firstAssertionId,
- hashFunctionId,
- proximityScoreFunctionsPairId,
- bidSuggestionRange = LOW_BID_SUGGESTION,
- ) {
- const kbSize = assertionSize < BYTES_IN_KILOBYTE ? BYTES_IN_KILOBYTE : assertionSize;
- const peerRecords = await this.findNeighbourhood(
- blockchainId,
- this.blockchainModuleManager.encodePacked(
- blockchainId,
- ['address', 'bytes32'],
- [contentAssetStorageAddress, firstAssertionId],
- ),
- await this.blockchainModuleManager.getR2(blockchainId),
- hashFunctionId,
- proximityScoreFunctionsPairId,
- );
- const r0 = await this.blockchainModuleManager.getR0(blockchainId);
- // todo remove this line once we implement logic for storing assertion in publish node if it's in neighbourhood
- const myPeerId = this.networkModuleManager.getPeerId().toB58String();
- const filteredPeerRecords = peerRecords.filter((peer) => peer.peerId !== myPeerId);
- const sorted = filteredPeerRecords.sort((a, b) => a.ask - b.ask);
-
- if (bidSuggestionRange === ALL_BID_SUGGESTION) {
- const allBidSuggestions = {};
- allBidSuggestions[LOW_BID_SUGGESTION] = this.calculateBidSuggestion(
- LOW_BID_SUGGESTION_OFFSET,
- sorted,
- blockchainId,
- kbSize,
- epochsNumber,
- r0,
- );
- allBidSuggestions[MED_BID_SUGGESTION] = this.calculateBidSuggestion(
- MED_BID_SUGGESTION_OFFSET,
- sorted,
- blockchainId,
- kbSize,
- epochsNumber,
- r0,
- );
- allBidSuggestions[HIGH_BID_SUGGESTION] = this.calculateBidSuggestion(
- HIGH_BID_SUGGESTION_OFFSET,
- sorted,
- blockchainId,
- kbSize,
- epochsNumber,
- r0,
- );
-
- return allBidSuggestions;
- }
- let askOffset;
- switch (bidSuggestionRange) {
- case LOW_BID_SUGGESTION:
- askOffset = LOW_BID_SUGGESTION_OFFSET;
- break;
- case MED_BID_SUGGESTION:
- askOffset = MED_BID_SUGGESTION_OFFSET;
- break;
- case HIGH_BID_SUGGESTION:
- askOffset = HIGH_BID_SUGGESTION_OFFSET;
- break;
- default:
- this.logger.error(
- `${ERROR_TYPE.UNSUPPORTED_BID_SUGGESTION_RANGE_ERROR}: Supported values: ${BID_SUGGESTION_RANGE_ENUM}.`,
- );
- throw Error(ERROR_TYPE.UNSUPPORTED_BID_SUGGESTION_RANGE_ERROR);
- }
- const bidSuggestion = this.calculateBidSuggestion(
- askOffset,
- sorted,
- blockchainId,
- kbSize,
- epochsNumber,
- r0,
- );
- return bidSuggestion;
+ async isNodePartOfShard(blockchainId, peerId) {
+ return this.repositoryModuleManager.isNodePartOfShard(blockchainId, peerId);
}
+ // TODO: Remove this
calculateBidSuggestion(askOffset, sorted, blockchainId, kbSize, epochsNumber, r0) {
const effectiveAskOffset = Math.min(askOffset, sorted.length - 1);
const { ask } = sorted[effectiveAskOffset];
- const bidSuggestion = this.blockchainModuleManager
- .convertToWei(blockchainId, ask)
+ const bidSuggestion = this.cryptoService
+ .convertToWei(ask)
.mul(kbSize)
.mul(epochsNumber)
.mul(r0)
@@ -359,56 +191,6 @@ class ShardingTableService {
protocols: peerInfo?.protocols ?? [],
};
}
-
- async getNeighboorhoodEdgeNodes(
- neighbourhood,
- blockchainId,
- hashFunctionId,
- proximityScoreFunctionsPairId,
- key,
- ) {
- const keyHash = await this.hashingService.callHashFunction(hashFunctionId, key);
-
- const hashFunctionName = this.hashingService.getHashFunctionName(hashFunctionId);
- const assetPositionOnHashRing = await this.blockchainModuleManager.toBigNumber(
- blockchainId,
- keyHash,
- );
- const hashRing = [];
-
- const maxDistance = await this.proximityScoringService.callProximityFunction(
- blockchainId,
- proximityScoreFunctionsPairId,
- neighbourhood[neighbourhood.length - 1][hashFunctionName],
- keyHash,
- );
-
- for (const neighbour of neighbourhood) {
- // eslint-disable-next-line no-await-in-loop
- const neighbourPositionOnHashRing = await this.blockchainModuleManager.toBigNumber(
- blockchainId,
- neighbour[hashFunctionName],
- );
- if (assetPositionOnHashRing.lte(neighbourPositionOnHashRing)) {
- if (neighbourPositionOnHashRing.sub(assetPositionOnHashRing).lte(maxDistance)) {
- hashRing.push(neighbour);
- } else {
- hashRing.unshift(neighbour);
- }
- } else if (assetPositionOnHashRing.gt(neighbourPositionOnHashRing)) {
- if (assetPositionOnHashRing.sub(neighbourPositionOnHashRing).lte(maxDistance)) {
- hashRing.unshift(neighbour);
- } else {
- hashRing.push(neighbour);
- }
- }
- }
-
- return {
- leftEdge: hashRing[0],
- rightEdge: hashRing[hashRing.length - 1],
- };
- }
}
export default ShardingTableService;
diff --git a/src/service/signature-service.js b/src/service/signature-service.js
new file mode 100644
index 0000000000..694195b0fb
--- /dev/null
+++ b/src/service/signature-service.js
@@ -0,0 +1,47 @@
+class SignatureService {
+ constructor(ctx) {
+ this.config = ctx.config;
+ this.logger = ctx.logger;
+
+ this.cryptoService = ctx.cryptoService;
+ this.blockchainModuleManager = ctx.blockchainModuleManager;
+ this.fileService = ctx.fileService;
+ }
+
+ async signMessage(blockchain, messageHash) {
+ const flatSignature = await this.blockchainModuleManager.signMessage(
+ blockchain,
+ messageHash,
+ );
+ const { v, r, s, _vs } = this.cryptoService.splitSignature(flatSignature);
+ return { v, r, s, vs: _vs };
+ }
+
+ async addSignatureToStorage(folderName, operationId, identityId, v, r, s, vs) {
+ await this.fileService.appendContentsToFile(
+ this.fileService.getSignatureStorageFolderPath(folderName),
+ operationId,
+ `${JSON.stringify({ identityId, v, r, s, vs })}\n`,
+ );
+ }
+
+ async getSignaturesFromStorage(folderName, operationId) {
+ const signatureStorageFile = this.fileService.getSignatureStorageDocumentPath(
+ folderName,
+ operationId,
+ );
+
+ const rawSignatures = await this.fileService.readFile(signatureStorageFile);
+ const signaturesArray = [];
+ for (const line of rawSignatures.split('\n')) {
+ const trimmedLine = line.trim();
+ if (trimmedLine) {
+ signaturesArray.push(JSON.parse(trimmedLine));
+ }
+ }
+
+ return signaturesArray;
+ }
+}
+
+export default SignatureService;
diff --git a/src/service/triple-store-service.js b/src/service/triple-store-service.js
index 920d0ab7a3..8ab9214ac2 100644
--- a/src/service/triple-store-service.js
+++ b/src/service/triple-store-service.js
@@ -1,6 +1,13 @@
-import { formatAssertion } from 'assertion-tools';
+/* eslint-disable no-await-in-loop */
+import { setTimeout } from 'timers/promises';
+import { kcTools } from 'assertion-tools';
-import { SCHEMA_CONTEXT, TRIPLE_STORE_REPOSITORIES, MEDIA_TYPES } from '../constants/constants.js';
+import {
+ BASE_NAMED_GRAPHS,
+ TRIPLE_STORE_REPOSITORY,
+ TRIPLES_VISIBILITY,
+ PRIVATE_HASH_SUBJECT_PREFIX,
+} from '../constants/constants.js';
class TripleStoreService {
constructor(ctx) {
@@ -8,9 +15,11 @@ class TripleStoreService {
this.logger = ctx.logger;
this.tripleStoreModuleManager = ctx.tripleStoreModuleManager;
+ this.operationIdService = ctx.operationIdService;
this.ualService = ctx.ualService;
this.dataService = ctx.dataService;
this.paranetService = ctx.paranetService;
+ this.cryptoService = ctx.cryptoService;
}
initializeRepositories() {
@@ -24,269 +33,410 @@ class TripleStoreService {
}
}
- async localStoreAsset(
+ async insertKnowledgeCollection(
repository,
- assertionId,
- assertion,
- blockchain,
- contract,
- tokenId,
- keyword,
+ knowledgeCollectionUAL,
+ triples,
+ retries = 1,
+ retryDelay = 0,
) {
- const ual = this.ualService.deriveUAL(blockchain, contract, tokenId);
-
this.logger.info(
- `Inserting Knowledge Asset with the UAL: ${ual}, Assertion ID: ${assertionId}, ` +
+ `Inserting Knowledge Collection with the UAL: ${knowledgeCollectionUAL} ` +
`to the Triple Store's ${repository} repository.`,
);
- const currentAssetNquads = await formatAssertion({
- '@context': SCHEMA_CONTEXT,
- '@id': ual,
- blockchain,
- contract,
- tokenId,
- assertion: { '@id': `assertion:${assertionId}` },
- keyword,
- });
-
- const oldUalConnection = await formatAssertion({
- '@context': SCHEMA_CONTEXT,
- '@id': this.ualService.getUalWithoutChainId(ual, blockchain),
- assertion: { '@id': `assertion:${assertionId}` },
- });
-
- await Promise.all([
- this.tripleStoreModuleManager.insertAssetAssertionMetadata(
- this.repositoryImplementations[repository],
- repository,
- currentAssetNquads.join('\n'),
- ),
- this.tripleStoreModuleManager.insertAssetAssertionMetadata(
- this.repositoryImplementations[repository],
- repository,
- oldUalConnection.join('\n'),
- ),
- this.tripleStoreModuleManager.insertAssertion(
+ const existsInNamedGraphs =
+ await this.tripleStoreModuleManager.knowledgeCollectionNamedGraphsExist(
this.repositoryImplementations[repository],
repository,
- assertionId,
- assertion.join('\n'),
- ),
- ]);
+ knowledgeCollectionUAL,
+ );
- this.logger.info(
- `Knowledge Asset with the UAL: ${ual}, Assertion ID: ${assertionId}, ` +
- `has been successfully inserted to the Triple Store's ${repository} repository.`,
- );
- }
+ // TODO: Add with the introduction of RDF-star mode
+ // const tripleAnnotations = this.dataService.createTripleAnnotations(
+ // knowledgeAssetsTriples,
+ // UAL_PREDICATE,
+ // knowledgeAssetsUALs.map((ual) => `<${ual}>`),
+ // );
+ // const unifiedGraphTriples = [...triples, ...tripleAnnotations];
+ const promises = [];
+ const publicAssertion = triples.public ?? triples;
+
+ const filteredPublic = [];
+ const privateHashTriples = [];
+ publicAssertion.forEach((triple) => {
+ if (triple.startsWith(`<${PRIVATE_HASH_SUBJECT_PREFIX}`)) {
+ privateHashTriples.push(triple);
+ } else {
+ filteredPublic.push(triple);
+ }
+ });
- async moveAsset(
- fromRepository,
- toRepository,
- assertionId,
- blockchain,
- contract,
- tokenId,
- keyword,
- ) {
- let assertion;
- // Try-catch to prevent infinite processing loop when unexpected error is thrown while getting KA
- try {
- assertion = await this.getAssertion(fromRepository, assertionId);
- } catch (e) {
- this.logger.error(`Error while getting assertion for moving asset: ${e.message}`);
- return;
- }
+ const publicKnowledgeAssetsTriplesGrouped = kcTools.groupNquadsBySubject(
+ filteredPublic,
+ true,
+ );
+ publicKnowledgeAssetsTriplesGrouped.push(
+ ...kcTools.groupNquadsBySubject(privateHashTriples, true),
+ );
- // copy metadata and assertion
- await this.localStoreAsset(
- toRepository,
- assertionId,
- assertion,
- blockchain,
- contract,
- tokenId,
- keyword,
+ const publicKnowledgeAssetsUALs = publicKnowledgeAssetsTriplesGrouped.map(
+ (_, index) => `${knowledgeCollectionUAL}/${index + 1}`,
);
- const [assetsWithAssertionIdCount] = await this.countAssetsWithAssertionId(
- fromRepository,
- assertionId,
+ if (!existsInNamedGraphs) {
+ promises.push(
+ this.tripleStoreModuleManager.createKnowledgeCollectionNamedGraphs(
+ this.repositoryImplementations[repository],
+ repository,
+ publicKnowledgeAssetsUALs,
+ publicKnowledgeAssetsTriplesGrouped,
+ TRIPLES_VISIBILITY.PUBLIC,
+ ),
+ );
+
+ if (triples.private?.length) {
+ const privateKnowledgeAssetsTriplesGrouped = kcTools.groupNquadsBySubject(
+ triples.private,
+ true,
+ );
+
+ const privateKnowledgeAssetsUALs = [];
+
+ const publicSubjectMap = publicKnowledgeAssetsTriplesGrouped.reduce(
+ (map, group, index) => {
+ const [publicSubject] = group[0].split(' ');
+ map.set(publicSubject, index);
+ return map;
+ },
+ new Map(),
+ );
+
+ for (const privateTriple of privateKnowledgeAssetsTriplesGrouped) {
+ const [privateSubject] = privateTriple[0].split(' ');
+ if (publicSubjectMap.has(privateSubject)) {
+ const ualIndex = publicSubjectMap.get(privateSubject);
+ privateKnowledgeAssetsUALs.push(publicKnowledgeAssetsUALs[ualIndex]);
+ } else {
+ const privateSubjectHashed = `<${PRIVATE_HASH_SUBJECT_PREFIX}${this.cryptoService.sha256(
+ privateSubject.slice(1, -1),
+ )}>`;
+ if (publicSubjectMap.has(privateSubjectHashed)) {
+ const ualIndex = publicSubjectMap.get(privateSubjectHashed);
+ privateKnowledgeAssetsUALs.push(publicKnowledgeAssetsUALs[ualIndex]);
+ }
+ }
+ }
+ promises.push(
+ this.tripleStoreModuleManager.createKnowledgeCollectionNamedGraphs(
+ this.repositoryImplementations[repository],
+ repository,
+ privateKnowledgeAssetsUALs,
+ privateKnowledgeAssetsTriplesGrouped,
+ TRIPLES_VISIBILITY.PRIVATE,
+ ),
+ );
+ }
+ }
+ const metadataTriples = publicKnowledgeAssetsUALs
+ .map(
+ (publicKnowledgeAssetUAL) =>
+ `<${publicKnowledgeAssetUAL}> "${publicKnowledgeAssetUAL}:0" .`,
+ )
+ .join('\n');
+
+ promises.push(
+ this.tripleStoreModuleManager.insertKnowledgeCollectionMetadata(
+ this.repositoryImplementations[repository],
+ repository,
+ metadataTriples,
+ ),
);
- // delete assertion from repository if not linked to other assets
- if (assetsWithAssertionIdCount?.count <= 1) {
- await this.deleteAssertion(fromRepository, assertionId);
+ let attempts = 0;
+ let success = false;
+
+ while (attempts < retries && !success) {
+ try {
+ await Promise.all(promises);
+
+ success = true;
+
+ this.logger.info(
+ `Knowledge Collection with the UAL: ${knowledgeCollectionUAL} ` +
+ `has been successfully inserted to the Triple Store's ${repository} repository.`,
+ );
+ } catch (error) {
+ this.logger.error(
+ `Error during insertion of the Knowledge Collection to the Triple Store's ${repository} repository. ` +
+ `UAL: ${knowledgeCollectionUAL}. Error: ${error.message}`,
+ );
+ attempts += 1;
+
+ if (attempts < retries) {
+ this.logger.info(
+ `Retrying insertion of the Knowledge Collection with the UAL: ${knowledgeCollectionUAL} ` +
+ `to the Triple Store's ${repository} repository. Attempt ${
+ attempts + 1
+ } of ${retries} after delay of ${retryDelay} ms.`,
+ );
+ await setTimeout(retryDelay);
+ } else {
+ this.logger.error(
+ `Max retries reached for the insertion of the Knowledge Collection with the UAL: ${knowledgeCollectionUAL} ` +
+ `to the Triple Store's ${repository} repository. Rolling back data.`,
+ );
+
+ if (!existsInNamedGraphs) {
+ this.logger.info(
+ `Rolling back Knowledge Collection with the UAL: ${knowledgeCollectionUAL} ` +
+ `from the Triple Store's ${repository} repository Named Graphs.`,
+ );
+ await this.tripleStoreModuleManager.deleteKnowledgeCollectionNamedGraphs(
+ this.repositoryImplementations[repository],
+ repository,
+ publicKnowledgeAssetsUALs,
+ );
+ }
+
+ throw new Error(
+ `Failed to store Knowledge Collection with the UAL: ${knowledgeCollectionUAL} ` +
+ `to the Triple Store's ${repository} repository after maximum retries. Error ${error}`,
+ );
+ }
+ }
}
}
- async moveAssetWithoutDelete(
- fromRepository,
- toRepository,
- assertionId,
- blockchain,
- contract,
- tokenId,
- keyword,
- ) {
- let assertion;
- // Try-catch to prevent infinite processing loop when unexpected error is thrown while getting KA
- try {
- assertion = await this.getAssertion(fromRepository, assertionId);
- } catch (e) {
- this.logger.error(`Error while getting assertion for moving asset: ${e.message}`);
- return;
+ async createV6KnowledgeCollection(triplesPublic, ual, triplesPrivate = null) {
+ this.logger.info(
+ `Inserting Knowledge Collection with the UAL: ${ual} ` +
+ `to the Triple Store's ${TRIPLE_STORE_REPOSITORY.DKG} repository.`,
+ );
+ const publicKnowledgeAssetsTriplesGrouped = [triplesPublic];
+ const publicKnowledgeAssetsUALs = [`${ual}/1`];
+ await this.tripleStoreModuleManager.createKnowledgeCollectionNamedGraphs(
+ this.repositoryImplementations[TRIPLE_STORE_REPOSITORY.DKG],
+ TRIPLE_STORE_REPOSITORY.DKG,
+ publicKnowledgeAssetsUALs,
+ publicKnowledgeAssetsTriplesGrouped,
+ TRIPLES_VISIBILITY.PUBLIC,
+ );
+
+ if (triplesPrivate) {
+ const privateKnowledgeAssetsTriplesGrouped = [triplesPrivate];
+ await this.tripleStoreModuleManager.createKnowledgeCollectionNamedGraphs(
+ this.repositoryImplementations[TRIPLE_STORE_REPOSITORY.DKG],
+ TRIPLE_STORE_REPOSITORY.DKG,
+ publicKnowledgeAssetsUALs,
+ privateKnowledgeAssetsTriplesGrouped,
+ TRIPLES_VISIBILITY.PRIVATE,
+ );
}
- // copy metadata and assertion
- await this.localStoreAsset(
- toRepository,
- assertionId,
- assertion,
- blockchain,
- contract,
- tokenId,
- keyword,
+ const metadataTriples = [`<${ual}> "${ual}:0" .`];
+ await this.tripleStoreModuleManager.insertKnowledgeCollectionMetadata(
+ this.repositoryImplementations[TRIPLE_STORE_REPOSITORY.DKG],
+ TRIPLE_STORE_REPOSITORY.DKG,
+ metadataTriples,
);
}
- async insertAssetAssertionMetadata(
- repository,
- blockchain,
- contract,
- tokenId,
- assertionId,
- keyword,
- ) {
- const ual = this.ualService.deriveUAL(blockchain, contract, tokenId);
-
- this.logger.info(
- `Inserting metadata for the Knowledge Asset with the UAL: ${ual}, Assertion ID: ${assertionId}, ` +
- `to the Triple Store's ${repository} repository.`,
+ async insertUpdatedKnowledgeCollection(preUpdateUalNamedGraphs, ual, triples, firstNewKAIndex) {
+ const preUpdateSubjectUalMap = new Map(
+ preUpdateUalNamedGraphs.map((entry) => [
+ entry.subject,
+ entry.g.split('/').slice(0, -1).join('/'),
+ ]),
);
- const currentAssetNquads = await formatAssertion({
- '@context': SCHEMA_CONTEXT,
- '@id': ual,
- blockchain,
- contract,
- tokenId,
- assertion: { '@id': `assertion:${assertionId}` },
- keyword,
- });
+ const publicKnowledgeAssetsTriples = this.dataService.groupTriplesBySubject(
+ triples.public ?? triples,
+ );
- await this.tripleStoreModuleManager.insertAssetAssertionMetadata(
- this.repositoryImplementations[repository],
- repository,
- currentAssetNquads.join('\n'),
+ const publicKnowledgeAssetsSubjects = publicKnowledgeAssetsTriples.map(
+ ([triple]) => triple.split(' ')[0],
);
- }
+ const publicKnowledgeAssetsStatesUALs = [];
+ let newKnowledgeAssetId = firstNewKAIndex;
+ for (const subject of publicKnowledgeAssetsSubjects) {
+ if (preUpdateSubjectUalMap.has(subject)) {
+ publicKnowledgeAssetsStatesUALs.push(preUpdateSubjectUalMap.get(subject));
+ } else {
+ publicKnowledgeAssetsStatesUALs.push(`${ual}/${newKnowledgeAssetId}`);
+ newKnowledgeAssetId += 1;
+ }
+ }
- async updateAssetNonAssertionMetadata(repository, blockchain, contract, tokenId, keyword) {
- const ual = this.ualService.deriveUAL(blockchain, contract, tokenId);
+ const promises = [];
- this.logger.info(
- `Updating Non-Assertion metadata for the Knowledge Asset with the UAL: ${ual} ` +
- `in the Triple Store's ${repository} repository.`,
+ promises.push(
+ this.tripleStoreModuleManager.createKnowledgeCollectionNamedGraphs(
+ this.repositoryImplementations[TRIPLE_STORE_REPOSITORY.DKG],
+ TRIPLE_STORE_REPOSITORY.DKG,
+ publicKnowledgeAssetsStatesUALs,
+ publicKnowledgeAssetsTriples,
+ TRIPLES_VISIBILITY.PUBLIC,
+ ),
);
- const updatedAssetNquads = await formatAssertion({
- '@context': SCHEMA_CONTEXT,
- '@id': ual,
- blockchain,
- contract,
- tokenId,
- keyword,
- });
+ if (triples.private?.length) {
+ const privateKnowledgeAssetsTriples = this.dataService.groupTriplesBySubject(
+ triples.private,
+ );
- await this.tripleStoreModuleManager.updateAssetNonAssertionMetadata(
- this.repositoryImplementations[repository],
- repository,
- ual,
- updatedAssetNquads.join('\n'),
- );
+ const publicSubjectsMap = new Map(
+ publicKnowledgeAssetsTriples.map(([triple], index) => {
+ const [subject] = triple.split(' ');
+ return [subject, index];
+ }),
+ );
+
+ const privateKnowledgeAssetsStatesUALs = privateKnowledgeAssetsTriples.reduce(
+ (result, [triple]) => {
+ const [privateSubject] = triple.split(' '); // groupTriplesBySubject guarantees format
+ if (publicSubjectsMap.has(privateSubject)) {
+ result.push(
+ publicKnowledgeAssetsStatesUALs[publicSubjectsMap.get(privateSubject)],
+ );
+ }
+ return result;
+ },
+ [],
+ );
+
+ if (privateKnowledgeAssetsStatesUALs.length > 0) {
+ promises.push(
+ this.tripleStoreModuleManager.createKnowledgeCollectionNamedGraphs(
+ this.repositoryImplementations[TRIPLE_STORE_REPOSITORY.DKG],
+ TRIPLE_STORE_REPOSITORY.DKG,
+ privateKnowledgeAssetsStatesUALs,
+ privateKnowledgeAssetsTriples,
+ TRIPLES_VISIBILITY.PRIVATE,
+ ),
+ );
+ }
+ }
}
- async deleteAssetMetadata(repository, blockchain, contract, tokenId) {
- const ual = this.ualService.deriveUAL(blockchain, contract, tokenId);
- this.logger.info(
- `Deleting metadata for the Knowledge Asset with the UAL: ${ual} ` +
- `from the Triple Store's ${repository} repository.`,
- );
+ async moveKnowledgeCollectionBetweenUnifiedGraphs(fromRepository, toRepository, ual) {
+ const knowledgeCollection =
+ await this.tripleStoreModuleManager.getKnowledgeCollectionFromUnifiedGraph(
+ this.repositoryImplementations[fromRepository],
+ fromRepository,
+ BASE_NAMED_GRAPHS.UNIFIED,
+ ual,
+ false,
+ );
- const assertionLinks = await this.getAssetAssertionLinks(
- repository,
- blockchain,
- contract,
- tokenId,
- );
- const linkedAssertionIds = assertionLinks.map(({ assertion }) =>
- assertion.replace('assertion:', ''),
- );
+ // TODO: Add with the introduction of the RDF-star mode
+ // const knowledgeCollectionAnnotations = this.dataService.createTripleAnnotations(
+ // knowledgeCollection,
+ // UAL_PREDICATE,
+ // `<${ual}>`,
+ // );
+ // const knowledgeCollectionWithAnnotations = [
+ // ...knowledgeCollection,
+ // ...knowledgeCollectionAnnotations,
+ // ];
- await this.tripleStoreModuleManager.deleteAssetMetadata(
- this.repositoryImplementations[repository],
- repository,
- ual,
- );
- await this.tripleStoreModuleManager.deleteAssetMetadata(
- this.repositoryImplementations[repository],
- repository,
- this.ualService.getUalWithoutChainId(ual, blockchain),
- );
+ await Promise.all([
+ this.tripleStoreModuleManager.insetAssertionInNamedGraph(
+ this.repositoryImplementations[toRepository],
+ toRepository,
+ BASE_NAMED_GRAPHS.HISTORICAL_UNIFIED,
+ knowledgeCollection,
+ ),
+ this.tripleStoreModuleManager.deleteUniqueKnowledgeCollectionTriplesFromUnifiedGraph(
+ this.repositoryImplementations[toRepository],
+ toRepository,
+ BASE_NAMED_GRAPHS.UNIFIED,
+ ual,
+ ),
+ ]);
+ }
- // Delete assertions that were linked only to this Knowledge Asset
- for (const linkedAssertionId of linkedAssertionIds) {
- // eslint-disable-next-line no-await-in-loop
- const [assetsWithAssertionIdCount] = await this.countAssetsWithAssertionId(
+ async checkIfKnowledgeCollectionExistsInUnifiedGraph(
+ ual,
+ repository = TRIPLE_STORE_REPOSITORY.DKG,
+ ) {
+ const knowledgeCollectionExists =
+ await this.tripleStoreModuleManager.knowledgeCollectionExistsInUnifiedGraph(
+ this.repositoryImplementations[repository],
repository,
- linkedAssertionId,
+ BASE_NAMED_GRAPHS.UNIFIED,
+ ual,
);
- if (assetsWithAssertionIdCount?.count === 0) {
- // eslint-disable-next-line no-await-in-loop
- await this.deleteAssertion(repository, linkedAssertionId);
- }
- }
+ return knowledgeCollectionExists;
}
- async deleteAssertion(repository, assertionId) {
- this.logger.info(
- `Deleting Assertion with the ID: ${assertionId} from the Triple Store's ${repository} repository.`,
- );
- return this.tripleStoreModuleManager.deleteAssertion(
- this.repositoryImplementations[repository],
- repository,
- assertionId,
- );
- }
+ async getAssertion(
+ blockchain,
+ contract,
+ knowledgeCollectionId,
+ knowledgeAssetId,
+ visibility = TRIPLES_VISIBILITY.PUBLIC,
+ repository = TRIPLE_STORE_REPOSITORY.DKG,
+ ) {
+ // TODO: Use stateId
+ let ual = `did:dkg:${blockchain}/${contract}/${knowledgeCollectionId}`;
+
+ let nquads;
+ if (typeof knowledgeAssetId === 'string') {
+ ual = `${ual}/${knowledgeAssetId}`;
+ this.logger.debug(`Getting Assertion with the UAL: ${ual}.`);
+ nquads = await this.tripleStoreModuleManager.getKnowledgeAssetNamedGraph(
+ this.repositoryImplementations[repository],
+ repository,
+ // TODO: Add state with implemented update
+ `${ual}`,
+ knowledgeAssetId,
+ visibility,
+ );
+ } else {
+ this.logger.debug(`Getting Assertion with the UAL: ${ual}.`);
+ nquads = await this.tripleStoreModuleManager.getKnowledgeCollectionNamedGraphs(
+ this.repositoryImplementations[repository],
+ repository,
+ ual,
+ knowledgeAssetId,
+ visibility,
+ );
+ }
+ if (nquads?.public) {
+ nquads.public = nquads.public.split('\n').filter((line) => line !== '');
+ }
+ if (nquads?.private) {
+ nquads.private = nquads.private.split('\n').filter((line) => line !== '');
+ }
- async countAssetsWithAssertionId(repository, assertionId) {
- const bindings = await this.tripleStoreModuleManager.countAssetsWithAssertionId(
- this.repositoryImplementations[repository],
- repository,
- assertionId,
+ const numberOfnquads = (nquads?.public?.length ?? 0) + (nquads?.private?.length ?? 0);
+
+ this.logger.debug(
+ `Assertion: ${ual} ${
+ numberOfnquads ? '' : 'is not'
+ } found in the Triple Store's ${repository} repository.`,
);
- const count = this.dataService.parseBindings(bindings);
- if (count > 1) {
- // since 6.1.0 in asset metadata we are storing two triples connected to assertion id
- // using 2 formats of ual - so we can expect that this query returns 2 triples per asset
- return Math.round(count / 2);
+
+ if (nquads.length) {
+ this.logger.debug(
+ `Number of n-quads retrieved from the Triple Store's ${repository} repository: ${numberOfnquads}.`,
+ );
}
- return count;
+
+ return nquads;
}
- async getAssertion(repository, assertionId) {
+ async getV6Assertion(repository, assertionId) {
this.logger.debug(
`Getting Assertion with the ID: ${assertionId} from the Triple Store's ${repository} repository.`,
);
- let nquads = await this.tripleStoreModuleManager.getAssertion(
+ const nquads = await this.tripleStoreModuleManager.getV6Assertion(
this.repositoryImplementations[repository],
repository,
assertionId,
);
- nquads = await this.dataService.toNQuads(nquads, MEDIA_TYPES.N_QUADS);
this.logger.debug(
`Assertion: ${assertionId} ${
@@ -303,159 +453,140 @@ class TripleStoreService {
return nquads;
}
- async assetExists(repository, blockchain, contract, tokenId) {
- return this.tripleStoreModuleManager.assetExists(
- this.repositoryImplementations[repository],
- repository,
- this.ualService.deriveUAL(blockchain, contract, tokenId),
- );
- }
-
- async paranetAssetExists(blockchain, kaContract, kaTokenId, paranetContract, paranetTokenId) {
- const paranetUAL = this.ualService.deriveUAL(blockchain, paranetContract, paranetTokenId);
- const repository = this.paranetService.getParanetRepositoryName(paranetUAL);
- return this.assetExists(repository, blockchain, kaContract, kaTokenId);
- }
-
- async insertAssetAssertionLink(repository, blockchain, contract, tokenId, assertionId) {
- const ual = this.ualService.deriveUAL(blockchain, contract, tokenId);
- this.logger.info(
- `Inserting Link to the Assertion with the ID: ${assertionId} for the Knowledge Asset with the UAL: ${ual} ` +
- `to the Triple Store's ${repository} repository.`,
- );
-
- return this.tripleStoreModuleManager.insertAssetAssertionLink(
- this.repositoryImplementations[repository],
- repository,
- ual,
- assertionId,
- );
- }
-
- async updateAssetAssertionLink(
- repository,
+ async getAssertionMetadata(
blockchain,
contract,
- tokenId,
- oldAssertionId,
- newAssertionId,
+ knowledgeCollectionId,
+ knowledgeAssetId,
+ repository = TRIPLE_STORE_REPOSITORY.DKG,
) {
- const ual = this.ualService.deriveUAL(blockchain, contract, tokenId);
- this.logger.info(
- `Updating Assertion for the Knowledge Asset with the UAL: ${ual} in the Triple Store's ${repository} repository. ` +
- `Old Assertion ID: ${oldAssertionId}. New Assertion ID: ${newAssertionId}.`,
- );
-
- await this.tripleStoreModuleManager.updateAssetAssertionLink(
- this.repositoryImplementations[repository],
- repository,
- ual,
- oldAssertionId,
- newAssertionId,
- );
+ const ual = `did:dkg:${blockchain}/${contract}/${knowledgeCollectionId}${
+ knowledgeAssetId ? `/${knowledgeAssetId}` : ''
+ }`;
+ this.logger.debug(`Getting Assertion Metadata with the UAL: ${ual}.`);
+ let nquads;
+ if (knowledgeAssetId) {
+ nquads = await this.tripleStoreModuleManager.getKnowledgeAssetMetadata(
+ this.repositoryImplementations[repository],
+ repository,
+ ual,
+ );
+ } else {
+ nquads = await this.tripleStoreModuleManager.getKnowledgeCollectionMetadata(
+ this.repositoryImplementations[repository],
+ repository,
+ ual,
+ );
+ }
+ nquads = nquads.split('\n').filter((line) => line !== '');
- const [assetsWithAssertionIdCount] = await this.countAssetsWithAssertionId(
- repository,
- oldAssertionId,
+ this.logger.debug(
+ `Knowledge Asset Metadata: ${ual} ${
+ nquads.length ? '' : 'is not'
+ } found in the Triple Store's ${repository} repository.`,
);
- // Delete old assertion if it was only linked to this Knowledge Asset
- if (assetsWithAssertionIdCount?.count === 0) {
- await this.deleteAssertion(repository, oldAssertionId);
+ if (nquads.length) {
+ this.logger.debug(
+ `Number of n-quads retrieved from the Triple Store's ${repository} repository: ${nquads.length}.`,
+ );
}
- }
- async deleteAssetAssertionLink(repository, blockchain, contract, tokenId, assertionId) {
- const ual = this.ualService.deriveUAL(blockchain, contract, tokenId);
- this.logger.info(
- `Deleting Link to the Assertion with the ID: ${assertionId} for the Knowledge Asset with the UAL: ${ual} ` +
- `from the Triple Store's ${repository} repository.`,
- );
+ return nquads;
+ }
- await this.tripleStoreModuleManager.deleteAssetAssertionLink(
+ async getLatestAssertionId(repository, ual) {
+ const nquads = await this.tripleStoreModuleManager.getLatestAssertionId(
this.repositoryImplementations[repository],
repository,
ual,
- assertionId,
);
- const [assetsWithAssertionIdCount] = await this.countAssetsWithAssertionId(
- repository,
- assertionId,
- );
-
- // Delete assertion if it was only linked to this Knowledge Asset
- if (assetsWithAssertionIdCount?.count === 0) {
- await this.deleteAssertion(repository, assertionId);
- }
+ return nquads;
}
- async getAssetAssertionLinks(repository, blockchain, contract, tokenId) {
- const bindings = await this.tripleStoreModuleManager.getAssetAssertionLinks(
- this.repositoryImplementations[repository],
+ async construct(query, repository = TRIPLE_STORE_REPOSITORY.DKG) {
+ return this.tripleStoreModuleManager.construct(
+ this.repositoryImplementations[repository] ??
+ this.repositoryImplementations[TRIPLE_STORE_REPOSITORY.DKG],
repository,
- this.ualService.deriveUAL(blockchain, contract, tokenId),
+ query,
);
- return this.dataService.parseBindings(bindings);
}
- async assetAssertionLinkExists(repository, blockchain, contract, tokenId, assertionId) {
- const ual = this.ualService.deriveUAL(blockchain, contract, tokenId);
-
- return this.tripleStoreModuleManager.assetAssertionLinkExists(
- this.repositoryImplementations[repository],
- repository,
+ async moveToHistoricAndDeleteAssertion(ual, stateIndex) {
+ // Find all named graph that exist for given UAL
+ const ualNamedGraphs = this.tripleStoreModuleManager.findAllNamedGraphsByUAL(
+ TRIPLE_STORE_REPOSITORY.DKG,
ual,
- assertionId,
);
- }
+ let stateNamedGraphExistInHistoric = [];
+ const ulaNamedGraphsWithState = [];
+ const checkPromises = [];
+ // Check if they already exist in historic
+ for (const ulaNamedGraph of ualNamedGraphs) {
+ const parts = ulaNamedGraph.split('/');
+ parts[parts.length - 2] = `${parts[parts.length - 2]}:${stateIndex}`;
+ const ulaNamedGraphWithState = parts.join('/');
+ ulaNamedGraphsWithState.push(ulaNamedGraphWithState);
+ checkPromises.push(
+ this.tripleStoreModuleManager.namedGraphExist(
+ TRIPLE_STORE_REPOSITORY.DKG_HISTORIC,
+ ulaNamedGraphWithState,
+ ),
+ );
+ }
+ stateNamedGraphExistInHistoric = await Promise.all(checkPromises);
+ // const insertPromises = [];
+
+ // Insert them in UAL:latestStateIndex - 1 named graph in historic
+ for (const [index, promiseResult] of stateNamedGraphExistInHistoric.entries()) {
+ if (!promiseResult) {
+ const nquads = await this.tripleStoreModuleManager.getAssertionFromNamedGraph(
+ TRIPLE_STORE_REPOSITORY.DKG,
+ ualNamedGraphs[index],
+ );
+ await this.tripleStoreModuleManager.insetAssertionInNamedGraph(
+ TRIPLE_STORE_REPOSITORY.DKG_HISTORIC,
+ ulaNamedGraphsWithState[index],
+ nquads,
+ );
+ }
+ }
- async assertionExists(repository, assertionId) {
- return this.tripleStoreModuleManager.assertionExists(
- this.repositoryImplementations[repository],
- repository,
- assertionId,
+ await this.tripleStoreModuleManager.deleteKnowledgeCollectionNamedGraphs(
+ TRIPLE_STORE_REPOSITORY.DKG,
+ ualNamedGraphs,
);
+
+ return ualNamedGraphs;
}
- async construct(repository, query) {
- return this.tripleStoreModuleManager.construct(
+ async getKnowledgeAssetNamedGraph(repository, ual, visibility) {
+ return this.tripleStoreModuleManager.getKnowledgeAssetNamedGraph(
this.repositoryImplementations[repository],
repository,
- query,
+ ual,
+ visibility,
);
}
- async select(repository, query) {
+ async select(query, repository = TRIPLE_STORE_REPOSITORY.DKG) {
return this.tripleStoreModuleManager.select(
- this.repositoryImplementations[repository],
+ this.repositoryImplementations[repository] ??
+ this.repositoryImplementations[TRIPLE_STORE_REPOSITORY.DKG],
repository,
query,
);
}
- async queryVoid(repository, query) {
+ async queryVoid(repository, query, namedGraphs = null, labels = null) {
return this.tripleStoreModuleManager.queryVoid(
this.repositoryImplementations[repository],
repository,
- query,
+ this.buildQuery(query, namedGraphs, labels),
);
}
-
- async queryVoidAllRepositories(query) {
- const queryPromises = [];
- for (const repository in TRIPLE_STORE_REPOSITORIES) {
- queryPromises.push(
- this.tripleStoreModuleManager.queryVoid(
- this.repositoryImplementations[repository],
- TRIPLE_STORE_REPOSITORIES[repository],
- query,
- ),
- );
- }
-
- return Promise.all(queryPromises);
- }
}
export default TripleStoreService;
diff --git a/src/service/ual-service.js b/src/service/ual-service.js
index f3f2b35266..37741e7929 100644
--- a/src/service/ual-service.js
+++ b/src/service/ual-service.js
@@ -4,6 +4,7 @@ class UALService {
this.logger = ctx.logger;
this.blockchainModuleManager = ctx.blockchainModuleManager;
+ this.cryptoService = ctx.cryptoService;
}
deriveUAL(blockchain, contract, tokenId) {
@@ -14,6 +15,14 @@ class UALService {
isUAL(ual) {
if (!ual.startsWith('did:dkg:')) return false;
const parts = ual.replace('did:', '').replace('dkg:', '').split('/');
+ parts.push(...parts.pop().split(':'));
+ if (parts.length === 4) {
+ return (
+ this.isContract(parts[1]) &&
+ !Number.isNaN(Number(parts[2])) &&
+ !Number.isNaN(Number(parts[3]))
+ );
+ }
if (parts.length === 3) {
// eslint-disable-next-line no-restricted-globals
return this.isContract(parts[1]) && !Number.isNaN(Number(parts[2]));
@@ -36,6 +45,29 @@ class UALService {
resolveUAL(ual) {
const parts = ual.replace('did:', '').replace('dkg:', '').split('/');
+ // TODO: Resolve UAL with state
+ // parts.push(...parts.pop().split(':'));
+ if (parts.length === 4) {
+ const contract = parts[1];
+ if (!this.isContract(contract)) {
+ throw new Error(`Invalid contract format: ${contract}`);
+ }
+ let blockchainName = parts[0];
+ if (blockchainName.split(':').length === 1) {
+ for (const implementation of this.blockchainModuleManager.getImplementationNames()) {
+ if (implementation.split(':')[0] === blockchainName) {
+ blockchainName = implementation;
+ break;
+ }
+ }
+ }
+ return {
+ blockchain: blockchainName,
+ contract,
+ knowledgeCollectionId: Number(parts[2]),
+ knowledgeAssetId: Number(parts[3]),
+ };
+ }
if (parts.length === 3) {
const contract = parts[1];
if (!this.isContract(contract)) {
@@ -50,7 +82,11 @@ class UALService {
}
}
}
- return { blockchain: blockchainName, contract, tokenId: Number(parts[2]) };
+ return {
+ blockchain: blockchainName,
+ contract,
+ knowledgeCollectionId: Number(parts[2]),
+ };
}
if (parts.length === 2) {
const parts2 = parts[0].split(':');
@@ -85,17 +121,22 @@ class UALService {
return contractRegex.test(contract);
}
- async calculateLocationKeyword(blockchain, contract, tokenId, assertionId = null) {
+ // TODO: Do we need still need this
+ async calculateLocationKeyword(
+ blockchain,
+ contract,
+ knowledgeCollectionId,
+ assertionId = null,
+ ) {
const firstAssertionId =
assertionId ??
- (await this.blockchainModuleManager.getAssertionIdByIndex(
+ (await this.blockchainModuleManager.getKnowledgeCollectionMerkleRootByIndex(
blockchain,
contract,
- tokenId,
+ knowledgeCollectionId,
0,
));
- return this.blockchainModuleManager.encodePacked(
- blockchain,
+ return this.cryptoService.encodePacked(
['address', 'bytes32'],
[contract, firstAssertionId],
);
diff --git a/src/service/update-service.js b/src/service/update-service.js
index d3c371fa1c..0ee39c6e1d 100644
--- a/src/service/update-service.js
+++ b/src/service/update-service.js
@@ -6,13 +6,14 @@ import {
NETWORK_PROTOCOLS,
ERROR_TYPE,
OPERATIONS,
- OPERATION_REQUEST_STATUS,
} from '../constants/constants.js';
class UpdateService extends OperationService {
constructor(ctx) {
super(ctx);
+ this.repositoryModuleManager = ctx.repositoryModuleManager;
+
this.operationName = OPERATIONS.UPDATE;
this.networkProtocols = NETWORK_PROTOCOLS.UPDATE;
this.errorType = ERROR_TYPE.UPDATE.UPDATE_ERROR;
@@ -30,76 +31,73 @@ class UpdateService extends OperationService {
blockchain,
numberOfFoundNodes,
leftoverNodes,
- keyword,
batchSize,
minAckResponses,
+ datasetRoot,
} = command.data;
- const keywordsStatuses = await this.getResponsesStatuses(
+ const datasetRootStatus = await this.getResponsesStatuses(
responseStatus,
errorMessage,
operationId,
- keyword,
);
- const { completedNumber, failedNumber } = keywordsStatuses[keyword];
- const numberOfResponses = completedNumber + failedNumber;
+ const { completedNumber, failedNumber } = datasetRootStatus[operationId];
+
+ const totalResponses = completedNumber + failedNumber;
+
this.logger.debug(
`Processing ${
this.operationName
- } response with status: ${responseStatus} for operationId: ${operationId}, keyword: ${keyword}. Total number of nodes: ${numberOfFoundNodes}, number of nodes in batch: ${Math.min(
+ } response with status: ${responseStatus} for operationId: ${operationId}. Total number of nodes: ${numberOfFoundNodes}, number of nodes in batch: ${Math.min(
numberOfFoundNodes,
batchSize,
)} number of leftover nodes: ${
leftoverNodes.length
- }, number of responses: ${numberOfResponses}, Completed: ${completedNumber}, Failed: ${failedNumber}, minimum replication factor: ${minAckResponses}`,
+ }, number of responses: ${totalResponses}, Completed: ${completedNumber}, Failed: ${failedNumber}, minimum replication factor: ${minAckResponses}`,
);
if (responseData.errorMessage) {
this.logger.trace(
- `Error message for operation id: ${operationId}, keyword: ${keyword} : ${responseData.errorMessage}`,
+ `Error message for operation id: ${operationId} : ${responseData.errorMessage}`,
+ );
+ }
+
+ // Minimum replication reached, mark in the operational DB
+ if (completedNumber === minAckResponses) {
+ this.logger.debug(
+ `Minimum replication ${minAckResponses} reached for operationId: ${operationId}, dataset root: ${datasetRoot}`,
+ );
+
+ await this.repositoryModuleManager.updateMinAcksReached(operationId, true);
+ }
+
+ // All requests sent, minimum replication reached, mark as completed
+ if (leftoverNodes.length === 0 && completedNumber >= minAckResponses) {
+ await this.markOperationAsCompleted(
+ operationId,
+ blockchain,
+ null,
+ this.completedStatuses,
+ );
+ this.logResponsesSummary(completedNumber, failedNumber);
+ }
+
+ // All requests sent, minimum replication not reached, mark as failed
+ if (leftoverNodes.length === 0 && completedNumber < minAckResponses) {
+ this.markOperationAsFailed(
+ operationId,
+ blockchain,
+ 'Not replicated to enough nodes!',
+ this.errorType,
);
+ this.logResponsesSummary(completedNumber, failedNumber);
}
- if (
- responseStatus === OPERATION_REQUEST_STATUS.COMPLETED &&
- completedNumber === minAckResponses
- ) {
- let allCompleted = true;
- for (const key in keywordsStatuses) {
- if (keywordsStatuses[key].completedNumber < minAckResponses) {
- allCompleted = false;
- break;
- }
- }
- if (allCompleted) {
- await this.markOperationAsCompleted(
- operationId,
- blockchain,
- null,
- this.completedStatuses,
- );
- this.logResponsesSummary(completedNumber, failedNumber);
- this.logger.info(
- `${this.operationName} with operation id: ${operationId} with status: ${
- this.completedStatuses[this.completedStatuses.length - 1]
- }`,
- );
- }
- } else if (
- completedNumber < minAckResponses &&
- (numberOfFoundNodes === numberOfResponses || numberOfResponses % batchSize === 0)
- ) {
- if (leftoverNodes.length === 0) {
- await this.markOperationAsFailed(
- operationId,
- blockchain,
- 'Not replicated to enough nodes!',
- this.errorType,
- );
- this.logResponsesSummary(completedNumber, failedNumber);
- } else {
- await this.scheduleOperationForLeftoverNodes(command.data, leftoverNodes);
- }
+ // Not all requests sent, still possible to reach minimum replication,
+ // schedule requests for leftover nodes
+ const potentialCompletedNumber = completedNumber + leftoverNodes.length;
+ if (leftoverNodes.length > 0 && potentialCompletedNumber >= minAckResponses) {
+ await this.scheduleOperationForLeftoverNodes(command.data, leftoverNodes);
}
}
}
diff --git a/src/service/validation-service.js b/src/service/validation-service.js
index 6782ddbc36..2ac58c7331 100644
--- a/src/service/validation-service.js
+++ b/src/service/validation-service.js
@@ -1,5 +1,4 @@
-import { assertionMetadata } from 'assertion-tools';
-import { BYTES_IN_KILOBYTE, ZERO_ADDRESS } from '../constants/constants.js';
+import { ZERO_ADDRESS, PRIVATE_ASSERTION_PREDICATE, ZERO_BYTES32 } from '../constants/constants.js';
class ValidationService {
constructor(ctx) {
@@ -16,7 +15,7 @@ class ValidationService {
let isValid = true;
try {
- const result = await this.blockchainModuleManager.getKnowledgeAssetOwner(
+ const result = await this.blockchainModuleManager.getLatestMerkleRootPublisher(
blockchain,
contract,
tokenId,
@@ -31,62 +30,97 @@ class ValidationService {
return isValid;
}
+ async validateUalV6(blockchain, contract, tokenId) {
+ this.logger.info(
+ `Validating UAL: did:dkg:${blockchain.toLowerCase()}/${contract.toLowerCase()}/${tokenId}`,
+ );
+
+ let isValid = true;
+ try {
+ const result = await this.blockchainModuleManager.getLatestAssertionId(
+ blockchain,
+ contract,
+ tokenId,
+ );
+ if (!result || result === ZERO_BYTES32) {
+ isValid = false;
+ }
+ } catch (err) {
+ isValid = false;
+ }
+
+ return isValid;
+ }
+
async validateAssertion(assertionId, blockchain, assertion) {
this.logger.info(`Validating assertionId: ${assertionId}`);
- this.validateAssertionId(assertion, assertionId);
- const blockchainAssertionData = await this.blockchainModuleManager.getAssertionData(
- blockchain,
- assertionId,
- );
- this.validateAssertionSize(blockchainAssertionData.size, assertion);
- this.validateTriplesNumber(blockchainAssertionData.triplesNumber, assertion);
- this.validateChunkSize(blockchainAssertionData.chunksNumber, assertion);
+ await this.validateDatasetRoot(assertion, assertionId);
this.logger.info(`Assertion integrity validated! AssertionId: ${assertionId}`);
}
- validateAssertionSize(blockchainAssertionSize, assertion) {
- const blockchainAssertionSizeInKb = blockchainAssertionSize / BYTES_IN_KILOBYTE;
- if (blockchainAssertionSizeInKb > this.config.maximumAssertionSizeInKb) {
- throw Error(
- `The size of the received assertion exceeds the maximum limit allowed.. Maximum allowed assertion size in kb: ${this.config.maximumAssertionSizeInKb}, assertion size read from blockchain in kb: ${blockchainAssertionSizeInKb}`,
+ async validateDatasetRootOnBlockchain(
+ knowledgeCollectionMerkleRoot,
+ blockchain,
+ assetStorageContractAddress,
+ knowledgeCollectionId,
+ ) {
+ const blockchainAssertionRoot =
+ await this.blockchainModuleManager.getKnowledgeCollectionLatestMerkleRoot(
+ blockchain,
+ assetStorageContractAddress,
+ knowledgeCollectionId,
);
- }
- const assertionSize = assertionMetadata.getAssertionSizeInBytes(assertion);
- if (blockchainAssertionSize !== assertionSize) {
- // todo after corrective component is implemented, update this logic
- this.logger.warn(
- `Invalid assertion size, value read from blockchain: ${blockchainAssertionSize}, calculated: ${assertionSize}`,
+
+ if (knowledgeCollectionMerkleRoot !== blockchainAssertionRoot) {
+ throw new Error(
+ `Merkle Root validation failed. Merkle Root on chain: ${blockchainAssertionRoot}; Calculated Merkle Root: ${knowledgeCollectionMerkleRoot}`,
);
}
}
- validateTriplesNumber(blockchainTriplesNumber, assertion) {
- const triplesNumber = assertionMetadata.getAssertionTriplesNumber(assertion);
- if (blockchainTriplesNumber !== triplesNumber) {
- throw Error(
- `Invalid triples number, value read from blockchain: ${blockchainTriplesNumber}, calculated: ${triplesNumber}`,
- );
- }
+ // Used to validate assertion node received through network get
+ async validateDatasetOnBlockchain(
+ assertion,
+ blockchain,
+ assetStorageContractAddress,
+ knowledgeCollectionId,
+ ) {
+ const knowledgeCollectionMerkleRoot = await this.validationModuleManager.calculateRoot(
+ assertion,
+ );
+
+ await this.validateDatasetRootOnBlockchain(
+ knowledgeCollectionMerkleRoot,
+ blockchain,
+ assetStorageContractAddress,
+ knowledgeCollectionId,
+ );
}
- validateChunkSize(blockchainChunksNumber, assertion) {
- const chunksNumber = assertionMetadata.getAssertionChunksNumber(assertion);
- if (blockchainChunksNumber !== chunksNumber) {
- throw Error(
- `Invalid chunks number, value read from blockchain: ${blockchainChunksNumber}, calculated size: ${chunksNumber}`,
+ async validateDatasetRoot(dataset, datasetRoot) {
+ const calculatedDatasetRoot = await this.validationModuleManager.calculateRoot(dataset);
+
+ if (datasetRoot !== calculatedDatasetRoot) {
+ throw new Error(
+ `Merkle Root validation failed. Received Merkle Root: ${datasetRoot}; Calculated Merkle Root: ${calculatedDatasetRoot}`,
);
}
}
- validateAssertionId(assertion, assertionId) {
- const calculatedAssertionId = this.validationModuleManager.calculateRoot(assertion);
+ async validatePrivateMerkleRoot(publicAssertion, privateAssertion) {
+ const privateAssertionTriple = publicAssertion.find((triple) =>
+ triple.includes(PRIVATE_ASSERTION_PREDICATE),
+ );
+
+ if (privateAssertionTriple) {
+ const privateAssertionRoot = privateAssertionTriple.split(' ')[2].slice(1, -1);
- if (assertionId !== calculatedAssertionId) {
- // todo after corrective component is implemented, update this logic
- this.logger.warn(
- `Invalid assertion id. Received value: ${assertionId}, calculated: ${calculatedAssertionId}`,
+ await this.validateDatasetRoot(privateAssertion, privateAssertionRoot);
+ } else {
+ throw new Error(
+ `Merkle Root validation failed. Private Merkle Root not present in public assertion.`,
);
}
}
diff --git a/test/bdd/steps/lib/local-blockchain.mjs b/test/bdd/steps/lib/local-blockchain.mjs
index b686cec378..e51d591cff 100644
--- a/test/bdd/steps/lib/local-blockchain.mjs
+++ b/test/bdd/steps/lib/local-blockchain.mjs
@@ -5,9 +5,6 @@ import { readFile } from 'fs/promises';
import { exec, execSync } from 'child_process';
const Hub = JSON.parse((await readFile('node_modules/dkg-evm-module/abi/Hub.json')).toString());
-const HubController = JSON.parse(
- (await readFile('node_modules/dkg-evm-module/abi/HubController.json')).toString(),
-);
const ParametersStorage = JSON.parse(
(await readFile('node_modules/dkg-evm-module/abi/ParametersStorage.json')).toString(),
);
@@ -79,22 +76,6 @@ class LocalBlockchain {
this.hubContract = new ethers.Contract(hubContractAddress, Hub, wallet);
await this.provider.ready;
- const hubControllerAddress = await this.hubContract.owner();
- this.HubControllerContract = new ethers.Contract(
- hubControllerAddress,
- HubController,
- wallet,
- );
-
- const parametersStorageAddress = await this.hubContract.getContractAddress(
- 'ParametersStorage',
- );
- this.ParametersStorageInterface = new ethers.utils.Interface(ParametersStorage);
-
- await this.setParametersStorageParams(
- parametersStorageAddress,
- testParametersStorageParams,
- );
}
async stop() {
@@ -118,7 +99,7 @@ class LocalBlockchain {
[params[parameter]],
);
// eslint-disable-next-line no-await-in-loop
- await this.HubControllerContract.forwardCall(parametersStorageAddress, encodedData);
+ await this.hubContract.forwardCall(parametersStorageAddress, encodedData);
}
}
@@ -128,7 +109,7 @@ class LocalBlockchain {
const parametersStorageAddress = await this.hubContract.getContractAddress(
'ParametersStorage',
);
- await this.HubControllerContract.forwardCall(parametersStorageAddress, encodedData);
+ await this.hubContract.forwardCall(parametersStorageAddress, encodedData);
}
async setR1(r1) {
@@ -137,7 +118,7 @@ class LocalBlockchain {
const parametersStorageAddress = await this.hubContract.getContractAddress(
'ParametersStorage',
);
- await this.HubControllerContract.forwardCall(parametersStorageAddress, encodedData);
+ await this.hubContract.forwardCall(parametersStorageAddress, encodedData);
}
async setFinalizationCommitsNumber(commitsNumber) {
@@ -149,7 +130,7 @@ class LocalBlockchain {
const parametersStorageAddress = await this.hubContract.getContractAddress(
'ParametersStorage',
);
- await this.HubControllerContract.forwardCall(parametersStorageAddress, encodedData);
+ await this.hubContract.forwardCall(parametersStorageAddress, encodedData);
}
}
diff --git a/test/unit/mock/operation-id-service-mock.js b/test/unit/mock/operation-id-service-mock.js
index 7e7a728857..9ce690d859 100644
--- a/test/unit/mock/operation-id-service-mock.js
+++ b/test/unit/mock/operation-id-service-mock.js
@@ -3,7 +3,9 @@ class OperationIdServiceMock {
this.repositoryModuleManager = ctx.repositoryModuleManager;
}
- cacheOperationIdData(operationId, data) {}
+ cacheOperationIdDataToFile(operationId, data) {}
+
+ cacheOperationIdDataToMemory(operationId, data) {}
async updateOperationIdStatus(
operationId,
diff --git a/test/unit/mock/repository-module-manager-mock.js b/test/unit/mock/repository-module-manager-mock.js
index ff6aa93168..fc9a4b418b 100644
--- a/test/unit/mock/repository-module-manager-mock.js
+++ b/test/unit/mock/repository-module-manager-mock.js
@@ -130,14 +130,13 @@ class RepositoryModuleManagerMock {
);
}
- async createOperationResponseRecord(status, operation, operationId, keyword, errorMessage) {
+ async createOperationResponseRecord(status, operation, operationId, errorMessage) {
this.responseStatuses = [
...this.responseStatuses,
{
id: this.responseStatuses[this.responseStatuses.length - 1].id + 1,
status,
operationId,
- keyword,
createdAt: new Date().toISOString(),
updatedAt: new Date().toISOString(),
},
diff --git a/test/unit/modules/triple-store/triple-store.test.js b/test/unit/modules/triple-store/triple-store.test.js
index 9209cf8bc3..ec75ee10a4 100644
--- a/test/unit/modules/triple-store/triple-store.test.js
+++ b/test/unit/modules/triple-store/triple-store.test.js
@@ -20,14 +20,14 @@ async function _insertAndGet(content) {
const assertion = await formatAssertion(content);
const assertionId = calculateRoot(assertion);
- await tripleStoreModuleManager.insertAssertion(
+ await tripleStoreModuleManager.insertKnowledgeAssets(
implementationName,
TRIPLE_STORE_REPOSITORIES.PUBLIC_CURRENT,
assertionId,
assertion.join('\n'),
);
- const nquads = await tripleStoreModuleManager.getAssertion(
+ const nquads = await tripleStoreModuleManager.getKnowledgeCollection(
implementationName,
TRIPLE_STORE_REPOSITORIES.PUBLIC_CURRENT,
assertionId,
diff --git a/test/unit/modules/validation/validation-module-manager.test.js b/test/unit/modules/validation/validation-module-manager.test.js
index 4cabe5041a..4e2306d1f0 100644
--- a/test/unit/modules/validation/validation-module-manager.test.js
+++ b/test/unit/modules/validation/validation-module-manager.test.js
@@ -49,8 +49,8 @@ describe.only('Validation module manager', async () => {
});
it('validate successful root hash calculation, expect to be matched', async () => {
- const expectedRootHash = calculateRoot(assertion);
- const calculatedRootHash = validationManager.calculateRoot(assertion);
+ const expectedRootHash = await calculateRoot(assertion);
+ const calculatedRootHash = await validationManager.calculateRoot(assertion);
assert(expect(calculatedRootHash).to.exist);
expect(calculatedRootHash).to.equal(expectedRootHash);
@@ -60,7 +60,7 @@ describe.only('Validation module manager', async () => {
validationManager.initialized = false;
try {
- validationManager.calculateRoot(assertion);
+ await validationManager.calculateRoot(assertion);
} catch (error) {
expect(error.message).to.equal('Validation module is not initialized.');
}
@@ -76,7 +76,7 @@ describe.only('Validation module manager', async () => {
});
it('successful getting merkle proof hash', async () => {
- const calculatedMerkleHash = validationManager.getMerkleProof(assertion, 0);
+ const calculatedMerkleHash = await validationManager.getMerkleProof(assertion, 0);
assert(expect(calculatedMerkleHash).to.exist);
expect(calculatedMerkleHash).to.be.instanceof(Object);
@@ -88,19 +88,20 @@ describe.only('Validation module manager', async () => {
validationManager.initialized = false;
try {
- validationManager.getMerkleProof(assertion, 0);
+ await validationManager.getMerkleProof(assertion, 0);
} catch (error) {
expect(error.message).to.equal('Validation module is not initialized.');
}
});
- it('failed merkle prof hash calculation when assertion is null or undefined', async () => {
- invalidValues.forEach((value) => {
- expect(() => validationManager.getMerkleProof(value, 0)).to.throw(
+ it('failed merkle proof hash calculation when assertion is null or undefined', async () => {
+ for (const value of invalidValues) {
+ // eslint-disable-next-line no-await-in-loop
+ expect(await validationManager.getMerkleProof(value, 0)).to.be.rejectedWith(
Error,
'Get merkle proof failed: Assertion cannot be null or undefined.',
);
- });
+ }
});
it('validate getting function name', async () => {
diff --git a/tools/knowledge-assets-distribution-simulation/mocks/blockchain-module-manager-mock.js b/tools/knowledge-assets-distribution-simulation/mocks/blockchain-module-manager-mock.js
deleted file mode 100644
index 3f78ef96ba..0000000000
--- a/tools/knowledge-assets-distribution-simulation/mocks/blockchain-module-manager-mock.js
+++ /dev/null
@@ -1,58 +0,0 @@
-import { ethers } from 'ethers';
-
-class BlockchainModuleManagerMock {
- convertBytesToUint8Array(blockchain, bytesLikeData) {
- return ethers.utils.arrayify(bytesLikeData);
- }
-
- convertUint8ArrayToHex(blockchain, uint8Array) {
- return ethers.utils.hexlify(uint8Array);
- }
-
- convertFromWei(value, toUnit = 'ether') {
- return ethers.utils.formatUnits(value, toUnit);
- }
-
- convertToWei(blockchain, value, fromUnit = 'ether') {
- return ethers.utils.parseUnits(value.toString(), fromUnit);
- }
-
- toBigNumber(blockchain, value) {
- return ethers.BigNumber.from(value);
- }
-
- getMinimumStake(blockchain) {
- return 50000;
- }
-
- getMaximumStake(blockchain) {
- return 1000000;
- }
-
- getLog2PLDSFParams(blockchain) {
- return {
- distanceMappingCoefficient:
- '115792089237316195423570985008687907853269984665640564039457584007913129639',
- stakeMappingCoefficient: `${Math.floor(5000000 / 200000)}000000000000000000`,
- multiplier: 10000,
- logArgumentConstant: 1,
- a: 1,
- stakeExponent: 1,
- b: 0,
- c: 1,
- distanceExponent: 2,
- d: 1,
- };
- }
-
- getLinearSumParams(blockchain) {
- return {
- distanceScaleFactor: ethers.utils.parseEther('1'),
- stakeScaleFactor: ethers.utils.parseEther('1'),
- w1: 1,
- w2: 1,
- };
- }
-}
-
-export default BlockchainModuleManagerMock;
diff --git a/tools/knowledge-assets-distribution-simulation/simulation.js b/tools/knowledge-assets-distribution-simulation/simulation.js
deleted file mode 100644
index 1bab2dbfd4..0000000000
--- a/tools/knowledge-assets-distribution-simulation/simulation.js
+++ /dev/null
@@ -1,582 +0,0 @@
-/* eslint-disable import/no-extraneous-dependencies */
-/* eslint-disable no-await-in-loop */
-import 'dotenv/config';
-import crypto from 'crypto';
-import DeepExtend from 'deep-extend';
-import rc from 'rc';
-import fs from 'fs-extra';
-import D3Node from 'd3-node';
-import * as d3 from 'd3';
-import sharp from 'sharp';
-import { readFile } from 'fs/promises';
-import { createRequire } from 'module';
-import { create as createLibP2PKey, createFromPrivKey } from 'peer-id';
-import { HASH_RING_SIZE, UINT128_MAX_BN } from '../../src/constants/constants.js';
-import BlockchainModuleManagerMock from './mocks/blockchain-module-manager-mock.js';
-import HashingService from '../../src/service/hashing-service.js';
-import ProximityScoringService from '../../src/service/proximity-scoring-service.js';
-import Logger from '../../src/logger/logger.js';
-
-const require = createRequire(import.meta.url);
-const configjson = require('../../config/config.json');
-const pjson = require('../../package.json');
-
-function getConfig() {
- let config;
- let userConfig;
-
- if (process.env.USER_CONFIG_PATH) {
- const configurationFilename = process.env.USER_CONFIG_PATH;
- const pathSplit = configurationFilename.split('/');
- userConfig = JSON.parse(fs.readFileSync(configurationFilename));
- userConfig.configFilename = pathSplit[pathSplit.length - 1];
- }
-
- const defaultConfig = JSON.parse(JSON.stringify(configjson[process.env.NODE_ENV]));
-
- if (userConfig) {
- config = DeepExtend(defaultConfig, userConfig);
- } else {
- config = rc(pjson.name, defaultConfig);
- }
-
- if (!config.configFilename) {
- config.configFilename = '.origintrail_noderc';
- }
- return config;
-}
-
-function getLogger() {
- return new Logger('debug');
-}
-
-const config = getConfig();
-const logger = getLogger();
-const blockchain = 'hardhat1:31337';
-const blockchainModuleManagerMock = new BlockchainModuleManagerMock();
-const hashingService = new HashingService({ config, logger });
-const proximityScoringService = new ProximityScoringService({
- config,
- logger,
- blockchainModuleManager: blockchainModuleManagerMock,
-});
-
-function generateRandomNumber(min, max) {
- return Math.floor(Math.random() * (max - min + 1)) + min;
-}
-
-function generateRandomHashes(numberOfHashes) {
- const hashes = [];
-
- for (let i = 0; i < numberOfHashes; i += 1) {
- const randomString = crypto.randomBytes(20).toString('hex');
- const hash = `0x${crypto.createHash('sha256').update(randomString).digest('hex')}`;
- hashes.push(hash);
- }
-
- return numberOfHashes === 1 ? hashes[0] : hashes;
-}
-
-async function generateRandomNodes(
- numberOfNodes,
- stakeMin = 50000,
- stakeMax = 2000000,
- hashFunctionId = 1,
-) {
- const nodes = [];
-
- for (let i = 0; i < numberOfNodes; i += 1) {
- const libp2pPrivKey = (await createLibP2PKey({ bits: 1024, keyType: 'RSA' })).toJSON()
- .privKey;
- const nodeId = (await createFromPrivKey(libp2pPrivKey)).toB58String();
- const sha256 = await hashingService.callHashFunction(hashFunctionId, nodeId);
- const stake = String(generateRandomNumber(stakeMin, stakeMax));
-
- nodes.push({ nodeId, sha256, stake });
- }
-
- return nodes;
-}
-
-async function readJsonFromFile(filePath) {
- try {
- const data = await readFile(filePath, 'utf8');
- return JSON.parse(data);
- } catch (error) {
- logger.error(`Error reading file: ${error.stack}`);
- throw error;
- }
-}
-
-function convertSvgToJpg(svgString, outputImageName) {
- sharp(Buffer.from(svgString))
- .flatten({ background: '#FFFFFF' })
- .jpeg({ quality: 100 })
- .toBuffer()
- .then((buffer) => {
- fs.writeFile(
- `tools/knowledge-assets-distribution-simulation/plots/${outputImageName}.jpg`,
- buffer,
- (err) => {
- if (err) {
- logger.error(`Error saving the JPG file: ${err.stack}`);
- } else {
- logger.info(
- `Plot saved as "tools/knowledge-assets-distribution-simulation/plots/${outputImageName}.jpg"`,
- );
- }
- },
- );
- })
- .catch((error) => {
- logger.error('Error converting SVG to JPG:', error);
- });
-}
-
-function generateStakeDistributionPlot(data, outputImageName) {
- logger.info('Generating Node-Stake Distribution Plot.');
-
- const d3n = new D3Node();
- const margin = { top: 60, right: 30, bottom: 60, left: 90 };
- const width = 2000 - margin.left - margin.right;
- const height = 1000 - margin.top - margin.bottom;
-
- data.sort((a, b) => d3.descending(a.stake, b.stake));
-
- const svg = d3n
- .createSVG(width + margin.left + margin.right, height + margin.top + margin.bottom)
- .append('g')
- .attr('transform', `translate(${margin.left},${margin.top})`);
-
- svg.append('text')
- .attr('x', width / 2)
- .attr('y', 0 - margin.top / 2)
- .attr('text-anchor', 'middle')
- .style('font-size', '20px')
- .style('text-decoration', 'underline')
- .text('Node-Stake Distribution Plot');
-
- const x = d3
- .scaleBand()
- .range([0, width])
- .domain(data.map((_, i) => i + 1))
- .padding(0.2);
-
- svg.append('text')
- .attr('transform', `translate(${width / 2}, ${height + margin.top - 20})`)
- .style('text-anchor', 'middle')
- .text('Node Index');
-
- const y = d3
- .scaleLinear()
- .domain([0, Math.round(d3.max(data.map((node) => node.stake)) * 1.1)])
- .range([height, 0]);
-
- svg.append('text')
- .attr('transform', 'rotate(-90)')
- .attr('y', 0 - margin.left)
- .attr('x', 0 - height / 2)
- .attr('dy', '1em')
- .style('text-anchor', 'middle')
- .text('Stake');
-
- svg.selectAll('rect')
- .data(data)
- .enter()
- .append('rect')
- .attr('x', (_, i) => x(i + 1))
- .attr('width', x.bandwidth())
- .attr('y', (d) => y(d.stake))
- .attr('height', (d) => height - y(d.stake))
- .attr('fill', 'steelblue');
-
- svg.append('g')
- .attr('transform', `translate(0, ${height})`)
- .call(d3.axisBottom(x))
- .selectAll('text')
- .style('text-anchor', 'end')
- .attr('dx', '-.8em')
- .attr('dy', '.15em')
- .attr('transform', 'rotate(-65)');
-
- svg.append('g').call(d3.axisLeft(y));
-
- convertSvgToJpg(d3n.svgString(), outputImageName);
-}
-
-function generateScatterPlot(data, metric, outputImageName) {
- const d3n = new D3Node();
- const margin = { top: 60, right: 30, bottom: 60, left: 60 };
- const width = 2000 - margin.left - margin.right;
- const height = 1000 - margin.top - margin.bottom;
-
- const svg = d3n
- .createSVG(width + margin.left + margin.right, height + margin.top + margin.bottom)
- .append('g')
- .attr('transform', `translate(${margin.left},${margin.top})`);
-
- svg.append('text')
- .attr('x', width / 2)
- .attr('y', 0 - margin.top / 2)
- .attr('text-anchor', 'middle')
- .style('font-size', '20px')
- .style('text-decoration', 'underline')
- .text(`Stake / KAs ${metric[0].toUpperCase() + metric.slice(1)} Relation Plot`);
-
- const minStake = d3.min(data.map((node) => node.stake));
- const maxStake = d3.max(data.map((node) => node.stake));
-
- const x = d3
- .scaleLinear()
- .domain([Math.round(minStake * 0.9), Math.round(maxStake * 1.1)])
- .range([0, width]);
-
- svg.append('text')
- .attr('transform', `translate(${width / 2}, ${height + margin.top - 20})`)
- .style('text-anchor', 'middle')
- .text('Stake');
-
- const minKAsNum = d3.min(data.map((node) => node[metric]));
- const maxKAsNum = d3.max(data.map((node) => node[metric]));
-
- const y = d3
- .scaleLinear()
- .domain([Math.round(minKAsNum * 0.9), Math.round(maxKAsNum * 1.1)])
- .range([height, 0]);
-
- svg.append('text')
- .attr('transform', 'rotate(-90)')
- .attr('y', 0 - margin.left)
- .attr('x', 0 - height / 2)
- .attr('dy', '1em')
- .style('text-anchor', 'middle')
- .text(`Knowledge Assets ${metric}`);
-
- svg.append('g').attr('transform', `translate(0, ${height})`).call(d3.axisBottom(x).ticks(15));
-
- svg.append('g').call(d3.axisLeft(y).ticks(30));
-
- svg.append('g')
- .selectAll('dot')
- .data(data)
- .enter()
- .append('circle')
- .attr('cx', (d) => x(d.stake))
- .attr('cy', (d) => y(d[metric]))
- .attr('r', 5)
- .style('fill', '#69b3a2');
-
- svg.append('line')
- .style('stroke', 'red')
- .style('stroke-width', 2)
- .style('stroke-dasharray', '3, 3')
- .attr('x1', 0)
- .attr('y1', y(minKAsNum))
- .attr('x2', width)
- .attr('y2', y(minKAsNum));
-
- svg.append('line')
- .style('stroke', 'red')
- .style('stroke-width', 2)
- .style('stroke-dasharray', '3, 3')
- .attr('x1', 0)
- .attr('y1', y(maxKAsNum))
- .attr('x2', width)
- .attr('y2', y(maxKAsNum));
-
- convertSvgToJpg(d3n.svgString(), outputImageName);
-}
-
-function generateBoxPlot(data, metric, outputImageName) {
- const d3n = new D3Node();
- const margin = { top: 60, right: 30, bottom: 60, left: 60 };
- const width = 2000 - margin.left - margin.right;
- const height = 1000 - margin.top - margin.bottom;
-
- const svg = d3n
- .createSVG(width + margin.left + margin.right, height + margin.top + margin.bottom)
- .append('g')
- .attr('transform', `translate(${margin.left},${margin.top})`);
-
- svg.append('text')
- .attr('x', width / 2)
- .attr('y', 0 - margin.top / 2)
- .attr('text-anchor', 'middle')
- .style('font-size', '20px')
- .style('text-decoration', 'underline')
- .text(`${metric[0].toUpperCase() + metric.slice(1)} Distribution Plot`);
-
- const groupedData = d3.group(data, (d) => d.nodeId);
- const valuesPerNode = Array.from(groupedData.values(), (d) => d.map((item) => item[metric]));
-
- const x = d3
- .scaleBand()
- .domain(valuesPerNode.map((_, i) => i))
- .range([0, width]);
-
- svg.append('text')
- .attr('transform', `translate(${width / 2}, ${height + margin.top - 20})`)
- .style('text-anchor', 'middle')
- .text('Node Index');
-
- const y = d3
- .scaleLinear()
- .domain([0, d3.max(data, (d) => d[metric])])
- .nice()
- .range([height, 0]);
-
- svg.append('text')
- .attr('transform', 'rotate(-90)')
- .attr('y', 0 - margin.left)
- .attr('x', 0 - height / 2)
- .attr('dy', '1em')
- .style('text-anchor', 'middle')
- .text(metric[0].toUpperCase() + metric.slice(1));
-
- svg.append('g')
- .attr('transform', `translate(0, ${height})`)
- .call(d3.axisBottom(x))
- .selectAll('text')
- .style('text-anchor', 'end')
- .attr('dx', '-.8em')
- .attr('dy', '.15em')
- .attr('transform', 'rotate(-65)');
-
- svg.append('g').call(d3.axisLeft(y).ticks(30));
-
- const boxWidth = x.bandwidth() - 3;
-
- valuesPerNode.forEach((d, i) => {
- const box = svg
- .append('g')
- .attr('transform', `translate(${x(i) + (x.bandwidth() - boxWidth) / 2},0)`);
-
- const q1 = d3.quantile(d, 0.25);
- const median = d3.quantile(d, 0.5);
- const q3 = d3.quantile(d, 0.75);
- const iqr = q3 - q1;
- const lowerLimit = q1 - 1.5 * iqr;
- const upperLimit = q3 + 1.5 * iqr;
-
- const lowerWhisker = d3.max([d3.min(data, (n) => n[metric]), lowerLimit]);
- const upperWhisker = d3.min([d3.max(data, (n) => n[metric]), upperLimit]);
-
- box.append('rect')
- .attr('y', y(q3))
- .attr('height', y(q1) - y(q3))
- .attr('width', boxWidth)
- .style('fill', '#69b3a2');
-
- box.append('line')
- .attr('y1', y(median))
- .attr('y2', y(median))
- .attr('x1', 0)
- .attr('x2', boxWidth)
- .style('stroke', 'black')
- .style('width', 80);
-
- box.append('line')
- .attr('y1', y(lowerWhisker))
- .attr('y2', y(upperWhisker))
- .attr('x1', boxWidth / 2)
- .attr('x2', boxWidth / 2)
- .style('stroke', 'black');
-
- box.append('line')
- .attr('y1', y(lowerWhisker))
- .attr('y2', y(lowerWhisker))
- .attr('x1', boxWidth * 0.25)
- .attr('x2', boxWidth * 0.75)
- .style('stroke', 'black');
-
- box.append('line')
- .attr('y1', y(upperWhisker))
- .attr('y2', y(upperWhisker))
- .attr('x1', boxWidth * 0.25)
- .attr('x2', boxWidth * 0.75)
- .style('stroke', 'black');
- });
-
- convertSvgToJpg(d3n.svgString(), outputImageName);
-}
-
-async function runSimulation(
- mode,
- filePath,
- numberOfNodes,
- numberOfKAs,
- proximityScoreFunctionsPairId,
- r0 = 3,
- r2 = 20,
-) {
- let nodes = [];
-
- if (mode === 'load') {
- nodes = await readJsonFromFile(filePath);
- } else if (mode === 'generate') {
- nodes = await generateRandomNodes(numberOfNodes);
- } else {
- logger.error(`Invalid mode: ${mode}. Use "load" or "generate".`);
- return;
- }
-
- logger.info(
- `Running simulation in '${mode}' mode with ${nodes.length} nodes and ${numberOfKAs} KAs.`,
- );
-
- generateStakeDistributionPlot(
- nodes.map((node) => ({ ...node, stake: Number(node.stake) })),
- `${mode}-${nodes.length}-${numberOfKAs}-${proximityScoreFunctionsPairId}-nodes-stake-distribution`,
- );
-
- const knowledgeAssets = generateRandomHashes(numberOfKAs);
- const metrics = [];
- const replicas = {};
-
- for (const node of nodes) {
- replicas[node.nodeId] = {
- stake: Number(node.stake),
- replicated: 0,
- won: 0,
- };
- }
-
- const nodesNumber = nodes.length;
- let IDEAL_MAX_DISTANCE_IN_NEIGHBORHOOD;
-
- if (proximityScoreFunctionsPairId === 2) {
- IDEAL_MAX_DISTANCE_IN_NEIGHBORHOOD = HASH_RING_SIZE.div(nodesNumber).mul(10);
- }
-
- const linearSumParams = blockchainModuleManagerMock.getLinearSumParams(blockchain);
- const { distanceScaleFactor } = linearSumParams;
- const minimumStake = blockchainModuleManagerMock.getMinimumStake(blockchain);
- const maximumStake = blockchainModuleManagerMock.getMaximumStake(blockchain);
-
- for (const key of knowledgeAssets) {
- const nodesWithDistances = await Promise.all(
- nodes.map(async (node) => {
- const distance = await proximityScoringService.callProximityFunction(
- blockchain,
- proximityScoreFunctionsPairId,
- node.sha256,
- key,
- );
-
- return { ...node, distance };
- }),
- );
-
- const nodesSortedByDistance = nodesWithDistances
- .sort((a, b) => a.distance.sub(b.distance))
- .slice(0, r2);
-
- const maxDistanceInNeighborhood =
- nodesSortedByDistance[nodesSortedByDistance.length - 1].distance;
- const maxDistance =
- maxDistanceInNeighborhood > IDEAL_MAX_DISTANCE_IN_NEIGHBORHOOD
- ? IDEAL_MAX_DISTANCE_IN_NEIGHBORHOOD
- : maxDistanceInNeighborhood;
-
- for (const node of nodesSortedByDistance) {
- replicas[node.nodeId].replicated += 1;
- }
-
- const nodesWithScores = await Promise.all(
- nodesSortedByDistance.map(async (node) => {
- const score = await proximityScoringService.callScoreFunction(
- blockchain,
- proximityScoreFunctionsPairId,
- node.distance,
- node.stake,
- maxDistance,
- r2,
- nodesNumber,
- minimumStake,
- maximumStake,
- );
-
- let dividend = node.distance;
- let divisor = maxDistance;
- if (dividend.gt(UINT128_MAX_BN) || divisor.gt(UINT128_MAX_BN)) {
- dividend = dividend.div(distanceScaleFactor);
- divisor = divisor.div(distanceScaleFactor);
- }
-
- const divResult = dividend.mul(distanceScaleFactor).div(divisor);
-
- const mappedDistance =
- parseFloat(divResult.toString()) / parseFloat(distanceScaleFactor.toString());
- const mappedStake = (node.stake - minimumStake) / (maximumStake - minimumStake);
-
- metrics.push({ nodeId: node.nodeId, mappedDistance, mappedStake, score });
-
- return { ...node, score };
- }),
- );
-
- const nodesSortedByScore = nodesWithScores.sort((a, b) => b.score - a.score);
-
- for (const [index, node] of nodesSortedByScore.entries()) {
- if (index < r0) {
- replicas[node.nodeId].won += 1;
- } else {
- break;
- }
- }
- }
-
- generateScatterPlot(
- Object.values(replicas),
- 'replicated',
- `${mode}-${nodes.length}-${numberOfKAs}-${proximityScoreFunctionsPairId}-stake-replications-relation`,
- );
- generateScatterPlot(
- Object.values(replicas),
- 'won',
- `${mode}-${nodes.length}-${numberOfKAs}-${proximityScoreFunctionsPairId}-stake-wins-relation`,
- );
-
- generateBoxPlot(
- metrics,
- 'mappedDistance',
- `${mode}-${nodes.length}-${numberOfKAs}-${proximityScoreFunctionsPairId}-mapped-distances-distribution`,
- );
- generateBoxPlot(
- metrics,
- 'score',
- `${mode}-${nodes.length}-${numberOfKAs}-${proximityScoreFunctionsPairId}-scores-distribution`,
- );
-}
-
-const args = process.argv.slice(2);
-const mode = args[0];
-const filePath = mode === 'load' ? args[1] : undefined;
-const numberOfNodes = mode === 'generate' ? parseInt(args[1], 10) : undefined;
-const numberOfKAs = parseInt(args[2], 10);
-const proximityScoreFunctionsPairId = parseInt(args[3], 10);
-
-logger.info(`mode: ${mode}`);
-logger.info(`filePath: ${filePath}`);
-logger.info(`numberOfNodes: ${numberOfNodes}`);
-logger.info(`numberOfKAs: ${numberOfKAs}`);
-logger.info(`proximityScoreFunctionsPairId: ${proximityScoreFunctionsPairId}`);
-
-if (
- (mode === 'load' && !filePath) ||
- (mode === 'generate' && numberOfNodes === undefined) ||
- numberOfKAs === undefined ||
- proximityScoreFunctionsPairId === undefined
-) {
- logger.error('Incorrect arguments. Please provide the correct format.');
- logger.error(
- 'To load nodes list from the JSON file: node simulate.js load ',
- );
- logger.error(
- 'To generate random nodes: node simulate.js generate ',
- );
-} else {
- runSimulation(mode, filePath, numberOfNodes, numberOfKAs, proximityScoreFunctionsPairId).catch(
- (error) => logger.error(`Simulation error: ${error.stack}`),
- );
-}
diff --git a/tools/local-network-setup/.origintrail_noderc_template.json b/tools/local-network-setup/.origintrail_noderc_template.json
index 6b976bfe90..9beb566dad 100644
--- a/tools/local-network-setup/.origintrail_noderc_template.json
+++ b/tools/local-network-setup/.origintrail_noderc_template.json
@@ -27,15 +27,15 @@
"package": "./triple-store/implementation/ot-blazegraph/ot-blazegraph.js",
"config": {
"repositories": {
- "privateCurrent": {
+ "dkg": {
"url": "http://localhost:9999",
- "name": "private-current",
+ "name": "dkg",
"username": "admin",
"password": ""
},
- "privateHistory": {
+ "privateCurrent": {
"url": "http://localhost:9999",
- "name": "private-history",
+ "name": "private-current",
"username": "admin",
"password": ""
},
@@ -44,12 +44,6 @@
"name": "public-current",
"username": "admin",
"password": ""
- },
- "publicHistory": {
- "url": "http://localhost:9999",
- "name": "public-history",
- "username": "admin",
- "password": ""
}
}
}
@@ -59,27 +53,9 @@
"package": "./triple-store/implementation/ot-fuseki/ot-fuseki.js",
"config": {
"repositories": {
- "privateCurrent": {
+ "dkg": {
"url": "http://localhost:3030",
- "name": "private-current",
- "username": "admin",
- "password": ""
- },
- "privateHistory": {
- "url": "http://localhost:3030",
- "name": "private-history",
- "username": "admin",
- "password": ""
- },
- "publicCurrent": {
- "url": "http://localhost:3030",
- "name": "public-current",
- "username": "admin",
- "password": ""
- },
- "publicHistory": {
- "url": "http://localhost:3030",
- "name": "public-history",
+ "name": "dkg",
"username": "admin",
"password": ""
}
@@ -91,27 +67,9 @@
"package": "./triple-store/implementation/ot-graphdb/ot-graphdb.js",
"config": {
"repositories": {
- "privateCurrent": {
+ "dkg": {
"url": "http://localhost:7200",
- "name": "private-current",
- "username": "admin",
- "password": ""
- },
- "privateHistory": {
- "url": "http://localhost:7200",
- "name": "private-history",
- "username": "admin",
- "password": ""
- },
- "publicCurrent": {
- "url": "http://localhost:7200",
- "name": "public-current",
- "username": "admin",
- "password": ""
- },
- "publicHistory": {
- "url": "http://localhost:7200",
- "name": "public-history",
+ "name": "dkg",
"username": "admin",
"password": ""
}
@@ -162,6 +120,26 @@
}
}
}
+ },
+ "blockchainEvents": {
+ "enabled": true,
+ "implementation": {
+ "ot-ethers": {
+ "enabled": true,
+ "package": "./blockchain-events/implementation/ot-ethers/ot-ethers.js",
+ "config": {
+ "blockchains": ["hardhat1:31337", "hardhat2:31337"],
+ "rpcEndpoints": {
+ "hardhat1:31337": ["http://localhost:8545"],
+ "hardhat2:31337": ["http://localhost:9545"]
+ },
+ "hubContractAddress": {
+ "hardhat1:31337": "0x5FbDB2315678afecb367f032d93F642f64180aa3",
+ "hardhat2:31337": "0x5FbDB2315678afecb367f032d93F642f64180aa3"
+ }
+ }
+ }
+ }
}
},
"auth": {
diff --git a/tools/local-network-setup/README.md b/tools/local-network-setup/README.md
index ef5a075faf..74736f6f92 100644
--- a/tools/local-network-setup/README.md
+++ b/tools/local-network-setup/README.md
@@ -1,6 +1,6 @@
# DKG local network setup tool
-This tool will help you set up a local DKG v6 network running with the Hardhat blockchain. It is useful for development and testing purposes and is used internally by the OriginTrail core developers.
+This tool will help you set up a local DKG V8 network running with the Hardhat blockchain. It is useful for development and testing purposes and is used internally by the OriginTrail core developers.
**Note: This tool is an internal tool used by the OriginTrail team and thus is developed for our workflow, meaning that it currently only supports MacOS and Linux**, but we encourage you to adapt it for your workflow as well.
@@ -10,7 +10,7 @@ This tool will help you set up a local DKG v6 network running with the Hardhat b
- An installed and running triplestore (graph database)
- We recommend testing with Blazegraph. In order to download Blazegraph, please visit their official [website](https://blazegraph.com/). Alternatively other triple stores can be used (GraphBD or and other RDF native graph databases)
- An installed and running MySQL server
-- You should have installed npm and Node.js (v16)
+- You should have installed npm and Node.js (v20)
# Setup instructions
@@ -19,7 +19,7 @@ In order to run the local network you fist need to clone the "ot-node" repositor
## 1. CLONE OT-NODE REPOSITORY & INSTALL DEPENDENCIES
-After cloning the **ot-node** repository, please checkout to "v6/develop" branch and install dependencies by running:
+After cloning the **ot-node** repository, please checkout to "v8/develop" branch and install dependencies by running:
```bash
git clone https://github.com/OriginTrail/ot-node.git && cd ot-node/ && npm install && cd ..
diff --git a/tools/local-network-setup/generate-config-files.js b/tools/local-network-setup/generate-config-files.js
index 1d9bf3cada..86abba9de3 100644
--- a/tools/local-network-setup/generate-config-files.js
+++ b/tools/local-network-setup/generate-config-files.js
@@ -122,8 +122,7 @@ function generateBlockchainConfig(templateBlockchainConfig, nodeIndex) {
],
evmManagementWalletPublicKey: publicKeysManagementWallet[nodeIndex + 1],
evmManagementWalletPrivateKey: privateKeysManagementWallet[nodeIndex + 1],
- sharesTokenName: `LocalNode${nodeIndex + 1}`,
- sharesTokenSymbol: `LN${nodeIndex + 1}`,
+ nodeName: `LocalNode${nodeIndex + 1}`,
};
// TODO: Don't use string
diff --git a/tools/local-network-setup/setup-linux-environment.sh b/tools/local-network-setup/setup-linux-environment.sh
index 6aba854ee5..0726f59798 100755
--- a/tools/local-network-setup/setup-linux-environment.sh
+++ b/tools/local-network-setup/setup-linux-environment.sh
@@ -48,13 +48,13 @@ then
echo ================================
echo ====== Starting hardhat1 ======
echo ================================
- sh -c "cd $pathToOtNode && node tools/local-network-setup/run-local-blockchain.js 8545 :v2" &
+ sh -c "cd $pathToOtNode && node tools/local-network-setup/run-local-blockchain.js 8545 " &
echo Waiting for hardhat to start and contracts deployment
echo ================================
echo ====== Starting hardhat 2 ======
echo ================================
- sh -c "cd $pathToOtNode && node tools/local-network-setup/run-local-blockchain.js 9545 :v2" &
+ sh -c "cd $pathToOtNode && node tools/local-network-setup/run-local-blockchain.js 9545 " &
echo Waiting for hardhat to start and contracts deployment
fi
diff --git a/tools/local-network-setup/setup-macos-environment.sh b/tools/local-network-setup/setup-macos-environment.sh
index b7f0dba41a..2238d3757e 100755
--- a/tools/local-network-setup/setup-macos-environment.sh
+++ b/tools/local-network-setup/setup-macos-environment.sh
@@ -51,7 +51,7 @@ then
osascript -e "tell app \"Terminal\"
do script \"cd $pathToOtNode
- node tools/local-network-setup/run-local-blockchain.js 8545 :v2\"
+ node tools/local-network-setup/run-local-blockchain.js 8545 \"
end tell"
echo Waiting for hardhat to start and contracts deployment
@@ -61,7 +61,7 @@ then
osascript -e "tell app \"Terminal\"
do script \"cd $pathToOtNode
- node tools/local-network-setup/run-local-blockchain.js 9545 :v2\"
+ node tools/local-network-setup/run-local-blockchain.js 9545 \"
end tell"
echo Waiting for hardhat to start and contracts deployment
fi
diff --git a/v8-data-migration/abi/ContentAssetStorage.json b/v8-data-migration/abi/ContentAssetStorage.json
new file mode 100644
index 0000000000..b93183199d
--- /dev/null
+++ b/v8-data-migration/abi/ContentAssetStorage.json
@@ -0,0 +1,706 @@
+[
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "hubAddress",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "assetAssertionId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "assertionExists",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "assertionId",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "deleteAssertionIssuer",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "deleteAsset",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "generateTokenId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "getAssertionIdByIndex",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getAssertionIds",
+ "outputs": [
+ {
+ "internalType": "bytes32[]",
+ "name": "",
+ "type": "bytes32[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getAssertionIdsLength",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "assertionId",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint256",
+ "name": "assertionIndex",
+ "type": "uint256"
+ }
+ ],
+ "name": "getAssertionIssuer",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getAsset",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bool",
+ "name": "immutable_",
+ "type": "bool"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "assertionIds",
+ "type": "bytes32[]"
+ }
+ ],
+ "internalType": "struct ContentAssetStructs.Asset",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getLatestAssertionId",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "hub",
+ "outputs": [
+ {
+ "internalType": "contract Hub",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isMutable",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "name": "issuers",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "assertionId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "pushAssertionId",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "assertionId",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "issuer",
+ "type": "address"
+ }
+ ],
+ "name": "setAssertionIssuer",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "immutable_",
+ "type": "bool"
+ }
+ ],
+ "name": "setMutability",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "version",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ }
+]
diff --git a/v8-data-migration/abi/ContentAssetStorageV2.json b/v8-data-migration/abi/ContentAssetStorageV2.json
new file mode 100644
index 0000000000..418789efdc
--- /dev/null
+++ b/v8-data-migration/abi/ContentAssetStorageV2.json
@@ -0,0 +1,782 @@
+[
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "hubAddress",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "NoMintedAssets",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "_fromTokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "_toTokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "BatchMetadataUpdate",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "_tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "MetadataUpdate",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "assetAssertionId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "assertionExists",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "assertionId",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "deleteAssertionIssuer",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "deleteAsset",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "generateTokenId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "getAssertionIdByIndex",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getAssertionIds",
+ "outputs": [
+ {
+ "internalType": "bytes32[]",
+ "name": "",
+ "type": "bytes32[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getAssertionIdsLength",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "assertionId",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint256",
+ "name": "assertionIndex",
+ "type": "uint256"
+ }
+ ],
+ "name": "getAssertionIssuer",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getAsset",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bool",
+ "name": "immutable_",
+ "type": "bool"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "assertionIds",
+ "type": "bytes32[]"
+ }
+ ],
+ "internalType": "struct ContentAssetStructs.Asset",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getLatestAssertionId",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "hub",
+ "outputs": [
+ {
+ "internalType": "contract Hub",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isMutable",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "name": "issuers",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "lastTokenId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "assertionId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "pushAssertionId",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "assertionId",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "issuer",
+ "type": "address"
+ }
+ ],
+ "name": "setAssertionIssuer",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "baseURI",
+ "type": "string"
+ }
+ ],
+ "name": "setBaseURI",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "immutable_",
+ "type": "bool"
+ }
+ ],
+ "name": "setMutability",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "tokenBaseURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "version",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ }
+]
diff --git a/v8-data-migration/blockchain-utils.js b/v8-data-migration/blockchain-utils.js
new file mode 100644
index 0000000000..fdc81cf1ab
--- /dev/null
+++ b/v8-data-migration/blockchain-utils.js
@@ -0,0 +1,94 @@
+import { ethers } from 'ethers';
+import { BLOCKCHAINS, ABIs, CONTENT_ASSET_STORAGE_CONTRACT } from './constants.js';
+import {
+ validateProvider,
+ validateStorageContractAddress,
+ validateStorageContractName,
+ validateStorageContractAbi,
+ validateBlockchainDetails,
+} from './validation.js';
+import logger from './logger.js';
+
+function maskRpcUrl(url) {
+ // Validation
+ if (!url || typeof url !== 'string') {
+ throw new Error(`URL is not defined or it is not a string. URL: ${url}`);
+ }
+
+ if (url.includes('apiKey')) {
+ return url.split('apiKey')[0];
+ }
+ return url;
+}
+
+// Initialize rpc
+export async function initializeRpc(rpcEndpoint) {
+ // Validation
+ if (!rpcEndpoint || typeof rpcEndpoint !== 'string') {
+ logger.error(
+ `RPC endpoint is not defined or it is not a string. RPC endpoint: ${rpcEndpoint}`,
+ );
+ process.exit(1);
+ }
+ // initialize all possible providers
+ const Provider = ethers.providers.JsonRpcProvider;
+
+ try {
+ const provider = new Provider(rpcEndpoint);
+ // eslint-disable-next-line no-await-in-loop
+ await provider.getNetwork();
+ logger.info(`Connected to the blockchain RPC: ${maskRpcUrl(rpcEndpoint)}.`);
+ return provider;
+ } catch (e) {
+ logger.error(`Unable to connect to the blockchain RPC: ${maskRpcUrl(rpcEndpoint)}.`);
+ process.exit(1);
+ }
+}
+
+export async function getStorageContractAndAddress(
+ provider,
+ storageContractAddress,
+ storageContractName,
+ storageContractAbi,
+) {
+ // Validation
+ validateProvider(provider);
+ validateStorageContractAddress(storageContractAddress);
+ validateStorageContractName(storageContractName);
+ validateStorageContractAbi(storageContractAbi);
+
+ logger.info(
+ `Initializing asset contract: ${storageContractName} with address: ${storageContractAddress}`,
+ );
+ // initialize asset contract
+ const storageContract = new ethers.Contract(
+ storageContractAddress,
+ storageContractAbi,
+ provider,
+ );
+
+ logger.info(
+ `Contract ${storageContractName} initialized with address: ${storageContractAddress}`,
+ );
+ return storageContract;
+}
+
+export async function getContentAssetStorageContract(provider, blockchainDetails) {
+ // Validation
+ validateProvider(provider);
+ validateBlockchainDetails(blockchainDetails);
+
+ const contentAssetStorageContarct =
+ blockchainDetails.NAME === BLOCKCHAINS.NEUROWEB_TESTNET.NAME ||
+ blockchainDetails.NAME === BLOCKCHAINS.NEUROWEB_MAINNET.NAME
+ ? ABIs.ContentAssetStorage
+ : ABIs.ContentAssetStorageV2;
+ const storageContract = await getStorageContractAndAddress(
+ provider,
+ blockchainDetails.CONTENT_ASSET_STORAGE_CONTRACT_ADDRESS,
+ CONTENT_ASSET_STORAGE_CONTRACT,
+ contentAssetStorageContarct,
+ );
+
+ return storageContract;
+}
diff --git a/v8-data-migration/constants.js b/v8-data-migration/constants.js
new file mode 100644
index 0000000000..b467e701d8
--- /dev/null
+++ b/v8-data-migration/constants.js
@@ -0,0 +1,94 @@
+import { createRequire } from 'module';
+
+// Triple store constants
+export const SCHEMA_CONTEXT = 'http://schema.org/';
+export const METADATA_NAMED_GRAPH = 'metadata:graph';
+export const PRIVATE_ASSERTION_ONTOLOGY =
+ '';
+export const TRIPLE_STORE_CONNECT_MAX_RETRIES = 10;
+export const TRIPLE_STORE_CONNECT_RETRY_FREQUENCY = 10;
+export const N_QUADS = 'application/n-quads';
+export const OT_BLAZEGRAPH = 'ot-blazegraph';
+export const OT_FUSEKI = 'ot-fuseki';
+export const OT_GRAPHDB = 'ot-graphdb';
+export const PRIVATE_CURRENT = 'privateCurrent';
+export const PUBLIC_CURRENT = 'publicCurrent';
+export const DKG_REPOSITORY = 'dkg';
+export const VISIBILITY = {
+ PUBLIC: 'public',
+ PRIVATE: 'private',
+};
+export const BATCH_SIZE = 50;
+
+export const DEFAULT_CONFIG_PATH = '/root/ot-node/current/config/config.json';
+export const NODERC_CONFIG_PATH = '/root/ot-node/.origintrail_noderc';
+export const DATA_MIGRATION_DIR = '/root/ot-node/data/data-migration';
+export const LOG_DIR = '/root/ot-node/data/data-migration/logs';
+export const ENV_PATH = '/root/ot-node/current/.env';
+export const MIGRATION_DIR = '/root/ot-node/data/migrations/';
+export const MIGRATION_PROGRESS_FILE = 'v8DataMigration';
+
+export const DB_URLS = {
+ testnet: 'https://hosting.origin-trail.network/csv/testnet.db',
+ mainnet: 'https://hosting.origin-trail.network/csv/mainnet.db',
+};
+
+const require = createRequire(import.meta.url);
+
+export const ABIs = {
+ ContentAssetStorageV2: require('./abi/ContentAssetStorageV2.json'),
+ ContentAssetStorage: require('./abi/ContentAssetStorage.json'),
+};
+
+export const BLOCKCHAINS = {
+ BASE_DEVNET: {
+ ID: 'base:84532',
+ ENV: 'devnet',
+ NAME: 'base_devnet',
+ CONTENT_ASSET_STORAGE_CONTRACT_ADDRESS: '0xBe08A25dcF2B68af88501611e5456571f50327B4',
+ },
+ BASE_TESTNET: {
+ ID: 'base:84532',
+ ENV: 'testnet',
+ NAME: 'base_testnet',
+ CONTENT_ASSET_STORAGE_CONTRACT_ADDRESS: '0x9e3071Dc0730CB6dd0ce42969396D716Ea33E7e1',
+ },
+ BASE_MAINNET: {
+ ID: 'base:8453',
+ ENV: 'mainnet',
+ NAME: 'base_mainnet',
+ CONTENT_ASSET_STORAGE_CONTRACT_ADDRESS: '0x3bdfA81079B2bA53a25a6641608E5E1E6c464597',
+ },
+ GNOSIS_DEVNET: {
+ ID: 'gnosis:10200',
+ ENV: 'devnet',
+ NAME: 'gnosis_devnet',
+ CONTENT_ASSET_STORAGE_CONTRACT_ADDRESS: '0x3db64dD0Ac054610d1e2Af9Cca0fbCB1A7f4C2d8',
+ },
+ GNOSIS_TESTNET: {
+ ID: 'gnosis:10200',
+ ENV: 'testnet',
+ NAME: 'gnosis_testnet',
+ CONTENT_ASSET_STORAGE_CONTRACT_ADDRESS: '0xeA3423e02c8d231532dab1BCE5D034f3737B3638',
+ },
+ GNOSIS_MAINNET: {
+ ID: 'gnosis:100',
+ ENV: 'mainnet',
+ NAME: 'gnosis_mainnet',
+ CONTENT_ASSET_STORAGE_CONTRACT_ADDRESS: '0xf81a8C0008DE2DCdb73366Cf78F2b178616d11DD',
+ },
+ NEUROWEB_TESTNET: {
+ ID: 'otp:20430',
+ ENV: 'testnet',
+ NAME: 'neuroweb_testnet',
+ CONTENT_ASSET_STORAGE_CONTRACT_ADDRESS: '0x1A061136Ed9f5eD69395f18961a0a535EF4B3E5f',
+ },
+ NEUROWEB_MAINNET: {
+ ID: 'otp:2043',
+ ENV: 'mainnet',
+ NAME: 'neuroweb_mainnet',
+ CONTENT_ASSET_STORAGE_CONTRACT_ADDRESS: '0x5cAC41237127F94c2D21dAe0b14bFeFa99880630',
+ },
+};
+
+export const CONTENT_ASSET_STORAGE_CONTRACT = 'ContentAssetStorage';
diff --git a/v8-data-migration/logger.js b/v8-data-migration/logger.js
new file mode 100644
index 0000000000..10a1e07d31
--- /dev/null
+++ b/v8-data-migration/logger.js
@@ -0,0 +1,67 @@
+import pino from 'pino';
+import fs from 'fs';
+import { LOG_DIR } from './constants.js';
+
+// Ensure logs directory exists
+if (!fs.existsSync(LOG_DIR)) {
+ fs.mkdirSync(LOG_DIR, { recursive: true });
+
+ if (!fs.existsSync(LOG_DIR)) {
+ throw new Error(
+ `Something went wrong. Directory: ${LOG_DIR} does not exist after creation.`,
+ );
+ }
+}
+
+const timers = new Map();
+
+const baseLogger = pino({
+ transport: {
+ targets: [
+ {
+ target: 'pino-pretty',
+ level: 'info',
+ options: {
+ colorize: true,
+ translateTime: 'yyyy-mm-dd HH:MM:ss',
+ },
+ },
+ {
+ target: 'pino-pretty',
+ level: 'info',
+ options: {
+ destination: `${LOG_DIR}/migration.log`,
+ colorize: false,
+ translateTime: 'yyyy-mm-dd HH:MM:ss',
+ },
+ },
+ ],
+ },
+});
+
+// Create enhanced logger with proper method binding
+const logger = {
+ // Bind all methods from the base logger
+ info: baseLogger.info.bind(baseLogger),
+ error: baseLogger.error.bind(baseLogger),
+ warn: baseLogger.warn.bind(baseLogger),
+ debug: baseLogger.debug.bind(baseLogger),
+
+ // Add our custom timing methods
+ time(label) {
+ timers.set(label, performance.now());
+ },
+ timeEnd(label) {
+ const start = timers.get(label);
+ if (!start) {
+ this.warn(`Timer '${label}' does not exist`);
+ return;
+ }
+ const duration = (performance.now() - start).toFixed(3);
+ timers.delete(label);
+ this.info(`${label}: ${duration}ms`);
+ return duration;
+ },
+};
+
+export default logger;
diff --git a/v8-data-migration/run-data-migration.sh b/v8-data-migration/run-data-migration.sh
new file mode 100644
index 0000000000..3b8d1c243b
--- /dev/null
+++ b/v8-data-migration/run-data-migration.sh
@@ -0,0 +1,3 @@
+cd /root/ot-node/current/v8-data-migration/ &&
+npm rebuild sqlite3 &&
+nohup node v8-data-migration.js > /root/ot-node/data/nohup.out 2>&1 &
\ No newline at end of file
diff --git a/v8-data-migration/sqlite-utils.js b/v8-data-migration/sqlite-utils.js
new file mode 100644
index 0000000000..3bc682fb22
--- /dev/null
+++ b/v8-data-migration/sqlite-utils.js
@@ -0,0 +1,143 @@
+import sqlite3 from 'sqlite3';
+import { open } from 'sqlite';
+import path from 'path';
+import { DATA_MIGRATION_DIR } from './constants.js';
+import logger from './logger.js';
+
+export class SqliteDatabase {
+ constructor() {
+ this.db = null;
+ }
+
+ async initialize() {
+ if (this.db) {
+ return;
+ }
+
+ const dbPath = path.join(DATA_MIGRATION_DIR, `${process.env.NODE_ENV}.db`);
+
+ this.db = await open({
+ filename: dbPath,
+ driver: sqlite3.Database,
+ });
+
+ if (!this.db) {
+ logger.error('Failed to initialize SQLite database');
+ process.exit(1);
+ }
+ }
+
+ async getTableExists(blockchainName) {
+ this._validateConnection();
+ this._validateBlockchainName(blockchainName);
+
+ const tableExists = await this.db.get(
+ `SELECT name FROM sqlite_master WHERE type='table' AND name=?`,
+ [blockchainName],
+ );
+
+ return tableExists;
+ }
+
+ async getBatchOfUnprocessedTokenIds(blockchainName, batchSize) {
+ this._validateConnection();
+ this._validateBlockchainName(blockchainName);
+
+ const rows = await this.db.all(
+ `
+ SELECT token_id, ual, assertion_id
+ FROM ${blockchainName}
+ WHERE processed = 0
+ LIMIT ?
+ `,
+ batchSize,
+ );
+
+ const batchData = {};
+ rows.forEach((row) => {
+ batchData[row.token_id] = {
+ ual: row.ual,
+ assertionId: row.assertion_id,
+ processed: 'false',
+ };
+ });
+
+ return batchData;
+ }
+
+ async markRowsAsProcessed(blockchainName, tokenIds) {
+ this._validateConnection();
+ this._validateBlockchainName(blockchainName);
+
+ const placeholders = tokenIds.map(() => '?').join(',');
+ await this.db.run(
+ `
+ UPDATE ${blockchainName}
+ SET processed = 1
+ WHERE token_id IN (${placeholders})
+ `,
+ tokenIds,
+ );
+ }
+
+ async getHighestTokenId(blockchainName) {
+ this._validateConnection();
+ this._validateBlockchainName(blockchainName);
+
+ const result = await this.db.get(`SELECT MAX(token_id) as max_id FROM ${blockchainName}`);
+ return result.max_id;
+ }
+
+ async getUnprocessedCount(blockchainName) {
+ this._validateConnection();
+ this._validateBlockchainName(blockchainName);
+
+ const result = await this.db.get(`
+ SELECT COUNT(*) as count
+ FROM ${blockchainName}
+ WHERE processed = 0
+ `);
+ return result.count;
+ }
+
+ async insertAssertion(blockchainName, tokenId, ual, assertionId) {
+ this._validateConnection();
+ this._validateBlockchainName(blockchainName);
+
+ try {
+ await this.db.run(
+ `INSERT OR IGNORE INTO ${blockchainName} (token_id, ual, assertion_id, processed) VALUES (?, ?, ?, 1)`,
+ [tokenId, ual, assertionId],
+ );
+ return true;
+ } catch (error) {
+ logger.error(`Error inserting assertion into ${blockchainName} table:`, error.message);
+ return false;
+ }
+ }
+
+ async close() {
+ if (this.db) {
+ await this.db.close();
+ this.db = null;
+ }
+ }
+
+ _validateConnection() {
+ if (!this.db) {
+ logger.error('Database not initialized. Call initialize() first.');
+ process.exit(1);
+ }
+ }
+
+ _validateBlockchainName(blockchainName) {
+ if (!blockchainName) {
+ logger.error('Blockchain name is required');
+ process.exit(1);
+ }
+ }
+}
+
+// Export a single instance
+const sqliteDb = new SqliteDatabase();
+export default sqliteDb;
diff --git a/v8-data-migration/triple-store-utils.js b/v8-data-migration/triple-store-utils.js
new file mode 100644
index 0000000000..8e68989bde
--- /dev/null
+++ b/v8-data-migration/triple-store-utils.js
@@ -0,0 +1,697 @@
+import { setTimeout } from 'timers/promises';
+import axios from 'axios';
+import {
+ OT_BLAZEGRAPH,
+ OT_FUSEKI,
+ OT_GRAPHDB,
+ N_QUADS,
+ SCHEMA_CONTEXT,
+ PRIVATE_ASSERTION_ONTOLOGY,
+ PUBLIC_CURRENT,
+ PRIVATE_CURRENT,
+ DKG_REPOSITORY,
+ VISIBILITY,
+ METADATA_NAMED_GRAPH,
+ TRIPLE_STORE_CONNECT_MAX_RETRIES,
+ TRIPLE_STORE_CONNECT_RETRY_FREQUENCY,
+} from './constants.js';
+import {
+ validateTripleStoreConfig,
+ validateTripleStoreRepositories,
+ validateTripleStoreImplementation,
+ validateRepository,
+ validateQuery,
+ validateAssertionId,
+ validateTokenId,
+ validateAssertion,
+ validateUal,
+} from './validation.js';
+import logger from './logger.js';
+
+export function getTripleStoreData(tripleStoreConfig) {
+ // Validation
+ validateTripleStoreConfig(tripleStoreConfig);
+
+ let tripleStoreImplementation;
+ const tripleStoreRepositories = {};
+
+ for (const [implementationName, implementationDetails] of Object.entries(
+ tripleStoreConfig.implementation,
+ )) {
+ if (implementationDetails.enabled) {
+ tripleStoreImplementation = implementationName;
+ for (const [repository, repositoryDetails] of Object.entries(
+ implementationDetails.config.repositories,
+ )) {
+ if (
+ repository === PRIVATE_CURRENT ||
+ repository === PUBLIC_CURRENT ||
+ repository === DKG_REPOSITORY
+ ) {
+ tripleStoreRepositories[repository] = repositoryDetails;
+ }
+ }
+ break;
+ }
+ }
+
+ return { tripleStoreImplementation, tripleStoreRepositories };
+}
+
+// Initialize sparql endpoints
+function initializeSparqlEndpoints(tripleStoreRepositories, repository, tripleStoreImplementation) {
+ // Validation
+ validateTripleStoreRepositories(tripleStoreRepositories);
+ validateRepository(repository);
+ validateTripleStoreImplementation(tripleStoreImplementation);
+
+ const { url, name } = tripleStoreRepositories[repository];
+ const updatedTripleStoreRepositories = tripleStoreRepositories;
+
+ switch (tripleStoreImplementation) {
+ case OT_BLAZEGRAPH:
+ updatedTripleStoreRepositories[
+ repository
+ ].sparqlEndpoint = `${url}/blazegraph/namespace/${name}/sparql`;
+ updatedTripleStoreRepositories[
+ repository
+ ].sparqlEndpointUpdate = `${url}/blazegraph/namespace/${name}/sparql`;
+ break;
+ case OT_FUSEKI:
+ updatedTripleStoreRepositories[repository].sparqlEndpoint = `${url}/${name}/sparql`;
+ updatedTripleStoreRepositories[
+ repository
+ ].sparqlEndpointUpdate = `${url}/${name}/update`;
+ break;
+ case OT_GRAPHDB:
+ updatedTripleStoreRepositories[
+ repository
+ ].sparqlEndpoint = `${url}/repositories/${name}`;
+ updatedTripleStoreRepositories[
+ repository
+ ].sparqlEndpointUpdate = `${url}/repositories/${name}/statements`;
+ break;
+ default:
+ throw new Error('Invalid triple store name in initializeSparqlEndpoints');
+ }
+
+ return updatedTripleStoreRepositories;
+}
+
+export function initializeRepositories(tripleStoreRepositories, tripleStoreImplementation) {
+ // Validation
+ validateTripleStoreRepositories(tripleStoreRepositories);
+ validateTripleStoreImplementation(tripleStoreImplementation);
+
+ let updatedTripleStoreRepositories = tripleStoreRepositories;
+ for (const repository in tripleStoreRepositories) {
+ logger.info(`Initializing a triple store repository: ${repository}`);
+ updatedTripleStoreRepositories = initializeSparqlEndpoints(
+ updatedTripleStoreRepositories,
+ repository,
+ tripleStoreImplementation,
+ );
+ }
+
+ return updatedTripleStoreRepositories;
+}
+
+export function initializeContexts(tripleStoreRepositories) {
+ // Validation
+ validateTripleStoreRepositories(tripleStoreRepositories);
+
+ const updatedTripleStoreRepositories = tripleStoreRepositories;
+
+ for (const repository in updatedTripleStoreRepositories) {
+ const sources = [
+ {
+ type: 'sparql',
+ value: updatedTripleStoreRepositories[repository].sparqlEndpoint,
+ },
+ ];
+
+ updatedTripleStoreRepositories[repository].updateContext = {
+ sources,
+ destination: {
+ type: 'sparql',
+ value: updatedTripleStoreRepositories[repository].sparqlEndpointUpdate,
+ },
+ };
+ updatedTripleStoreRepositories[repository].queryContext = {
+ sources,
+ };
+ }
+
+ return updatedTripleStoreRepositories;
+}
+
+export async function healthCheck(tripleStoreRepositories, repository, tripleStoreImplementation) {
+ // Validation
+ validateTripleStoreRepositories(tripleStoreRepositories);
+ validateRepository(repository);
+ validateTripleStoreImplementation(tripleStoreImplementation);
+
+ switch (tripleStoreImplementation) {
+ case OT_BLAZEGRAPH: {
+ try {
+ const response = await axios.get(
+ `${tripleStoreRepositories[repository].url}/blazegraph/status`,
+ {},
+ );
+ if (response.data !== null) {
+ return true;
+ }
+ return false;
+ } catch (e) {
+ logger.error(`Health check failed for repository ${repository}:`, e);
+ return false;
+ }
+ }
+ case OT_FUSEKI: {
+ try {
+ const response = await axios.get(
+ `${tripleStoreRepositories[repository].url}/$/ping`,
+ {},
+ );
+ if (response.data !== null) {
+ return true;
+ }
+ return false;
+ } catch (e) {
+ logger.error(`Health check failed for repository ${repository}:`, e);
+ return false;
+ }
+ }
+ case OT_GRAPHDB: {
+ const { url, username, password } = tripleStoreRepositories[repository];
+ try {
+ const response = await axios.get(
+ `${url}/repositories/${repository}/health`,
+ {},
+ {
+ auth: {
+ username,
+ password,
+ },
+ },
+ );
+ if (response.data.status === 'green') {
+ return true;
+ }
+ return false;
+ } catch (e) {
+ if (e.response && e.response.status === 404) {
+ // Expected error: GraphDB is up but has not created node0 repository
+ // Ot-node will create repo in initialization
+ return true;
+ }
+ logger.error(`Health check failed for repository ${repository}:`, e);
+ return false;
+ }
+ }
+ default:
+ throw new Error('Invalid triple store name in healthCheck');
+ }
+}
+
+export async function ensureConnections(tripleStoreRepositories, tripleStoreImplementation) {
+ // Validation
+ validateTripleStoreRepositories(tripleStoreRepositories);
+ validateTripleStoreImplementation(tripleStoreImplementation);
+
+ const ensureConnectionPromises = Object.keys(tripleStoreRepositories).map(
+ async (repository) => {
+ let ready = await healthCheck(
+ tripleStoreRepositories,
+ repository,
+ tripleStoreImplementation,
+ );
+ let retries = 0;
+ while (!ready && retries < TRIPLE_STORE_CONNECT_MAX_RETRIES) {
+ retries += 1;
+ logger.warn(
+ `Cannot connect to Triple store repository: ${repository}, located at: ${tripleStoreRepositories[repository].url} retry number: ${retries}/${TRIPLE_STORE_CONNECT_MAX_RETRIES}. Retrying in ${TRIPLE_STORE_CONNECT_RETRY_FREQUENCY} seconds.`,
+ );
+ /* eslint-disable no-await-in-loop */
+ await setTimeout(TRIPLE_STORE_CONNECT_RETRY_FREQUENCY * 1000);
+ ready = await healthCheck(
+ tripleStoreRepositories,
+ repository,
+ tripleStoreImplementation,
+ );
+ }
+ if (retries === TRIPLE_STORE_CONNECT_MAX_RETRIES) {
+ logger.error(
+ `Triple Store repository: ${repository} not available, max retries reached.`,
+ );
+ process.exit(1);
+ }
+ },
+ );
+
+ await Promise.all(ensureConnectionPromises);
+}
+
+// blazegraph only
+function hasUnicodeCodePoints(input) {
+ const unicodeRegex = /(? {
+ const codePoint = parseInt(hex, 16);
+ return String.fromCodePoint(codePoint);
+ });
+
+ return decodedString;
+}
+
+export async function _executeQuery(
+ tripleStoreRepositories,
+ repository,
+ tripleStoreImplementation,
+ query,
+ mediaType,
+) {
+ // Validation
+ validateTripleStoreRepositories(tripleStoreRepositories);
+ validateRepository(repository);
+ validateTripleStoreImplementation(tripleStoreImplementation);
+ validateQuery(query);
+
+ if (!mediaType) {
+ logger.error(`[VALIDATION ERROR] Media type is not defined. Media type: ${mediaType}`);
+ process.exit(1);
+ }
+
+ const response = await axios.post(
+ tripleStoreRepositories[repository].sparqlEndpoint,
+ new URLSearchParams({
+ query,
+ }),
+ {
+ headers: {
+ Accept: mediaType,
+ },
+ },
+ );
+
+ let { data } = response;
+
+ if (tripleStoreImplementation === OT_BLAZEGRAPH) {
+ // Handle Blazegraph special characters corruption
+ if (hasUnicodeCodePoints(data)) {
+ data = decodeUnicodeCodePoints(data);
+ }
+ }
+
+ return data;
+}
+
+export async function construct(
+ tripleStoreRepositories,
+ repository,
+ tripleStoreImplementation,
+ query,
+) {
+ // Validation
+ validateTripleStoreRepositories(tripleStoreRepositories);
+ validateRepository(repository);
+ validateTripleStoreImplementation(tripleStoreImplementation);
+ validateQuery(query);
+
+ return _executeQuery(
+ tripleStoreRepositories,
+ repository,
+ tripleStoreImplementation,
+ query,
+ N_QUADS,
+ );
+}
+
+function cleanEscapeCharacter(query) {
+ return query.replace(/['|[\]\\]/g, '\\$&');
+}
+
+export async function getAssertion(
+ tripleStoreRepositories,
+ repository,
+ tripleStoreImplementation,
+ assertionId,
+) {
+ // Validation
+ validateTripleStoreRepositories(tripleStoreRepositories);
+ validateRepository(repository);
+ validateTripleStoreImplementation(tripleStoreImplementation);
+ validateAssertionId(assertionId);
+
+ const escapedGraphName = cleanEscapeCharacter(assertionId);
+ const query = `PREFIX schema: <${SCHEMA_CONTEXT}>
+ CONSTRUCT { ?s ?p ?o }
+ WHERE {
+ {
+ GRAPH
+ {
+ ?s ?p ?o .
+ }
+ }
+ }`;
+ return construct(tripleStoreRepositories, repository, tripleStoreImplementation, query);
+}
+
+export function extractPrivateAssertionId(publicAssertion) {
+ // Validation
+ validateAssertion(publicAssertion);
+
+ const split = publicAssertion.split(PRIVATE_ASSERTION_ONTOLOGY);
+ if (split.length <= 1 || !split[1].includes('"') || !split[1].includes('0x')) {
+ return null;
+ }
+ const input = split[1];
+ const openingQuoteIndex = input.indexOf('"') + 1;
+ const closingQuoteIndex = input.indexOf('"', openingQuoteIndex);
+ const privateAssertionId = input.substring(openingQuoteIndex, closingQuoteIndex).trim();
+ if (!privateAssertionId || !privateAssertionId.includes('0x')) {
+ return null;
+ }
+ return privateAssertionId;
+}
+
+export async function getAssertionFromV6TripleStore(
+ tripleStoreRepositories,
+ tripleStoreImplementation,
+ tokenId,
+ ualAssertionIdData,
+) {
+ // Validation
+ validateTripleStoreRepositories(tripleStoreRepositories);
+ validateTripleStoreImplementation(tripleStoreImplementation);
+ validateTokenId(tokenId);
+
+ if (
+ !ualAssertionIdData ||
+ typeof ualAssertionIdData !== 'object' ||
+ !ualAssertionIdData.assertionId ||
+ !ualAssertionIdData.ual
+ ) {
+ logger.error(
+ `[VALIDATION ERROR] Ual assertion ID data is not properly defined or it is not an object. Ual assertion ID data: ${ualAssertionIdData}`,
+ );
+ process.exit(1);
+ }
+
+ const { assertionId, ual } = ualAssertionIdData;
+ let success = false;
+ let publicAssertion = null;
+ let privateAssertion = null;
+
+ try {
+ // First try to fetch public data from private current repository
+ publicAssertion = await getAssertion(
+ tripleStoreRepositories,
+ PRIVATE_CURRENT,
+ tripleStoreImplementation,
+ assertionId,
+ );
+
+ // Check if public assertion is found in private current repository
+ if (publicAssertion) {
+ success = true;
+ // Check if assertion contains a private assertion
+ if (publicAssertion.includes(PRIVATE_ASSERTION_ONTOLOGY)) {
+ // Extract the private assertionId from the publicAssertion if it exists
+ const privateAssertionId = extractPrivateAssertionId(publicAssertion);
+ if (!privateAssertionId) {
+ logger.warn(
+ `There was a problem while extracting the private assertionId from public assertion: ${publicAssertion}. Extracted privateAssertionId: ${privateAssertionId}`,
+ );
+ success = false;
+ return { tokenId, ual, publicAssertion, privateAssertion, success };
+ }
+
+ privateAssertion = await getAssertion(
+ tripleStoreRepositories,
+ PRIVATE_CURRENT,
+ tripleStoreImplementation,
+ privateAssertionId,
+ );
+
+ // If private assertionId exists but assertion could not be fetched
+ if (!privateAssertion) {
+ logger.warn(
+ `Private assertion with id ${privateAssertionId} could not be fetched from ${PRIVATE_CURRENT} repository even though it should exist`,
+ );
+ }
+ }
+ } else {
+ publicAssertion = await getAssertion(
+ tripleStoreRepositories,
+ PUBLIC_CURRENT,
+ tripleStoreImplementation,
+ assertionId,
+ );
+ success = true;
+ }
+ } catch (e) {
+ logger.error(
+ `Error fetching assertion from triple store for tokenId: ${tokenId}, assertionId: ${assertionId}, error: ${e}`,
+ );
+ success = false;
+ }
+
+ return {
+ tokenId,
+ ual,
+ publicAssertion,
+ privateAssertion,
+ success,
+ assertionId,
+ };
+}
+
+export function processContent(str) {
+ return str
+ .split('\n')
+ .map((line) => line.trim())
+ .filter((line) => line !== '');
+}
+
+async function ask(tripleStoreRepositories, repository, query) {
+ // Validation
+ validateTripleStoreRepositories(tripleStoreRepositories);
+ validateRepository(repository);
+ validateQuery(query);
+ try {
+ const response = await axios.post(
+ tripleStoreRepositories[repository].sparqlEndpoint,
+ new URLSearchParams({
+ query,
+ }),
+ {
+ headers: {
+ Accept: 'application/json',
+ },
+ },
+ );
+
+ return response.data.boolean;
+ } catch (e) {
+ logger.error(
+ `Error while doing ASK query: ${query} in repository: ${repository}. Error: ${e.message}`,
+ );
+ return false;
+ }
+}
+
+export async function getKnowledgeCollectionNamedGraphsExist(
+ tokenId,
+ tripleStoreRepositories,
+ knowledgeAssetUal,
+ privateAssertion,
+) {
+ const askQueries = [];
+ askQueries.push(`
+ FILTER EXISTS {
+ GRAPH <${knowledgeAssetUal}/${VISIBILITY.PUBLIC}> {
+ ?s ?p ?o
+ }
+ }
+ `);
+ if (privateAssertion) {
+ askQueries.push(`
+ FILTER EXISTS {
+ GRAPH <${knowledgeAssetUal}/${VISIBILITY.PRIVATE}> {
+ ?s ?p ?o
+ }
+ }
+ `);
+ }
+ askQueries.push(`
+ FILTER EXISTS {
+ GRAPH <${METADATA_NAMED_GRAPH}> {
+ <${knowledgeAssetUal}> ?p ?o .
+ }
+ }
+ `);
+
+ const combinedQuery = `
+ ASK {
+ ${askQueries.join('\n')}
+ }
+ `;
+
+ const exists = await ask(tripleStoreRepositories, DKG_REPOSITORY, combinedQuery);
+
+ return { tokenId, exists };
+}
+
+export async function queryVoid(tripleStoreRepositories, repository, query) {
+ // Validation
+ validateTripleStoreRepositories(tripleStoreRepositories);
+ validateRepository(repository);
+ validateQuery(query);
+
+ await axios.post(tripleStoreRepositories[repository].sparqlEndpointUpdate, query, {
+ headers: {
+ 'Content-Type': 'application/sparql-update',
+ },
+ });
+}
+
+function hasSpecialCharactersInIRI(assertion) {
+ const lines = assertion.split('\n');
+ // {, }, |, ^, `, and \ without u or U
+ // eslint-disable-next-line no-useless-escape
+ const iriPattern = /<[^>]*(?:[\s{}\|^`]|\\(?![uU]))[^>]*>/;
+
+ return lines.some((line) => {
+ // Split quad into subject, predicate, object (ignore graph if present)
+ const parts = line.trim().split(' ');
+
+ // Check each part only if it starts with < and ends with >
+ return parts.some((part) => {
+ if (part.startsWith('<') && part.endsWith('>')) {
+ return iriPattern.test(part);
+ }
+ return false;
+ });
+ });
+}
+
+export async function insertAssertionsIntoV8UnifiedRepository(
+ v6Assertions,
+ tripleStoreRepositories,
+) {
+ // Insert into new repository
+ const successfullyProcessed = [];
+ const assertionsToCheck = [];
+ const insertQueries = [];
+ for (const assertion of v6Assertions) {
+ const { tokenId, ual, publicAssertion, privateAssertion } = assertion;
+
+ // Assertion with assertionId does not exist in triple store. Continue
+ if (!publicAssertion) {
+ successfullyProcessed.push(tokenId);
+ continue;
+ }
+
+ if (hasSpecialCharactersInIRI(publicAssertion)) {
+ logger.warn(
+ `Public assertion with tokenId: ${tokenId} contains illegal characters in IRI. Skipping...
+ Public assertion: ${publicAssertion}`,
+ );
+ successfullyProcessed.push(tokenId);
+ continue;
+ }
+
+ const knowledgeAssetUal = `${ual}/1`;
+
+ const publicNQuads = processContent(publicAssertion);
+ insertQueries.push(`
+ GRAPH <${knowledgeAssetUal}/${VISIBILITY.PUBLIC}> {
+ ${publicNQuads.join('\n')}
+ }
+ `);
+
+ if (privateAssertion) {
+ const privateNQuads = processContent(privateAssertion);
+ insertQueries.push(`
+ GRAPH <${knowledgeAssetUal}/${VISIBILITY.PRIVATE}> {
+ ${privateNQuads.join('\n')}
+ }
+ `);
+ }
+
+ const metadataNQuads = `<${knowledgeAssetUal}> "${knowledgeAssetUal}:0" .`;
+ insertQueries.push(`
+ GRAPH <${METADATA_NAMED_GRAPH}> {
+ ${metadataNQuads}
+ }
+ `);
+
+ assertionsToCheck.push(assertion);
+ }
+
+ if (insertQueries.length > 0) {
+ const combinedQuery = `
+ PREFIX schema: <${SCHEMA_CONTEXT}>
+ INSERT DATA {
+ ${insertQueries.join('\n')}
+ }
+ `;
+
+ logger.time(`INSERTING ${assertionsToCheck.length} ASSERTIONS INTO V8 TRIPLE STORE`);
+ await queryVoid(tripleStoreRepositories, DKG_REPOSITORY, combinedQuery);
+ logger.timeEnd(`INSERTING ${assertionsToCheck.length} ASSERTIONS INTO V8 TRIPLE STORE`);
+ }
+
+ return { successfullyProcessed, assertionsToCheck };
+}
+
+export async function knowledgeCollectionNamedGraphExists(
+ tripleStoreRepositories,
+ repository,
+ ual,
+ visibility,
+) {
+ // Validation
+ validateTripleStoreRepositories(tripleStoreRepositories);
+ validateRepository(repository);
+ validateUal(ual);
+ if (!visibility || !Object.values(VISIBILITY).includes(visibility)) {
+ throw new Error(
+ `Visibility is not defined or it is not a valid visibility. Visibility: ${visibility}`,
+ );
+ }
+
+ const query = `
+ ASK {
+ GRAPH ?g {
+ ?s ?p ?o
+ }
+ FILTER(STRSTARTS(STR(?g), "${ual}/${visibility}"))
+ }
+ `;
+
+ return ask(tripleStoreRepositories, repository, query);
+}
+
+export async function knowledgeAssetMetadataExists(tripleStoreRepositories, repository, ual) {
+ // Validation
+ validateTripleStoreRepositories(tripleStoreRepositories);
+ validateRepository(repository);
+ validateUal(ual);
+
+ const query = `
+ ASK {
+ GRAPH <${METADATA_NAMED_GRAPH}> {
+ <${ual}> ?p ?o .
+ }
+ }
+ `;
+
+ return ask(tripleStoreRepositories, repository, query);
+}
diff --git a/v8-data-migration/v8-data-migration-utils.js b/v8-data-migration/v8-data-migration-utils.js
new file mode 100644
index 0000000000..2a8f1731c6
--- /dev/null
+++ b/v8-data-migration/v8-data-migration-utils.js
@@ -0,0 +1,75 @@
+import fs from 'fs';
+import path from 'path';
+import {
+ NODERC_CONFIG_PATH,
+ MIGRATION_PROGRESS_FILE,
+ DEFAULT_CONFIG_PATH,
+ MIGRATION_DIR,
+} from './constants.js';
+import { validateConfig } from './validation.js';
+import logger from './logger.js';
+
+export function initializeConfig() {
+ const configPath = path.resolve(NODERC_CONFIG_PATH);
+ const config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
+ validateConfig(config);
+ return config;
+}
+
+export function initializeDefaultConfig() {
+ const configPath = path.resolve(DEFAULT_CONFIG_PATH);
+ const config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
+ validateConfig(config);
+ return config;
+}
+
+export function ensureDirectoryExists(dirPath) {
+ if (!fs.existsSync(dirPath)) {
+ fs.mkdirSync(dirPath, { recursive: true });
+ logger.info(`Created directory: ${dirPath}`);
+
+ if (!fs.existsSync(dirPath)) {
+ logger.error(
+ `Something went wrong. Directory: ${dirPath} does not exist after creation.`,
+ );
+ process.exit(1);
+ }
+ }
+}
+
+export function ensureMigrationProgressFileExists() {
+ ensureDirectoryExists(MIGRATION_DIR);
+ const migrationProgressFilePath = path.join(MIGRATION_DIR, MIGRATION_PROGRESS_FILE);
+
+ if (!fs.existsSync(migrationProgressFilePath)) {
+ fs.writeFileSync(migrationProgressFilePath, '');
+ logger.info(`Created migration progress file: ${migrationProgressFilePath}`);
+ if (!fs.existsSync(migrationProgressFilePath)) {
+ throw new Error(
+ `Something went wrong. Progress file: ${migrationProgressFilePath} does not exist after creation.`,
+ );
+ }
+ } else {
+ logger.info(`Migration progress file already exists: ${migrationProgressFilePath}.`);
+ logger.info('Checking if migration is already successful...');
+ const fileContent = fs.readFileSync(migrationProgressFilePath, 'utf8');
+ if (fileContent === 'MIGRATED') {
+ logger.info('Migration is already successful. Exiting...');
+ process.exit(0);
+ }
+ }
+}
+
+export function markMigrationAsSuccessfull() {
+ // Construct the full path to the migration progress file
+ const migrationProgressFilePath = path.join(MIGRATION_DIR, MIGRATION_PROGRESS_FILE);
+
+ // open file
+ const file = fs.openSync(migrationProgressFilePath, 'w');
+
+ // write MIGRATED
+ fs.writeSync(file, 'MIGRATED');
+
+ // close file
+ fs.closeSync(file);
+}
diff --git a/v8-data-migration/v8-data-migration.js b/v8-data-migration/v8-data-migration.js
new file mode 100644
index 0000000000..4eb43361c3
--- /dev/null
+++ b/v8-data-migration/v8-data-migration.js
@@ -0,0 +1,543 @@
+import path from 'path';
+import fs from 'fs';
+import { createRequire } from 'module';
+import dotenv from 'dotenv';
+import axios from 'axios';
+import { BATCH_SIZE, ENV_PATH, BLOCKCHAINS, DATA_MIGRATION_DIR, DB_URLS } from './constants.js';
+import {
+ initializeConfig,
+ initializeDefaultConfig,
+ ensureDirectoryExists,
+ ensureMigrationProgressFileExists,
+ markMigrationAsSuccessfull,
+} from './v8-data-migration-utils.js';
+import {
+ getAssertionFromV6TripleStore,
+ insertAssertionsIntoV8UnifiedRepository,
+ getTripleStoreData,
+ initializeRepositories,
+ initializeContexts,
+ ensureConnections,
+ getKnowledgeCollectionNamedGraphsExist,
+} from './triple-store-utils.js';
+import { getContentAssetStorageContract, initializeRpc } from './blockchain-utils.js';
+import {
+ validateBlockchainName,
+ validateBlockchainDetails,
+ validateTokenId,
+ validateTripleStoreRepositories,
+ validateTripleStoreImplementation,
+ validateBatchData,
+} from './validation.js';
+import sqliteDb from './sqlite-utils.js';
+import logger from './logger.js';
+
+dotenv.config({ path: ENV_PATH, override: true });
+
+const require = createRequire(import.meta.url);
+const { setTimeout } = require('timers/promises');
+
+const successfulInsertsSet = new Set();
+const totalInsertsSet = new Set();
+
+async function processAndInsertNewerAssertions(
+ blockchainDetails,
+ blockchainName,
+ highestTokenId,
+ tripleStoreRepositories,
+ tripleStoreImplementation,
+ rpcEndpoints,
+) {
+ // Validation
+ validateBlockchainName(blockchainName);
+ validateBlockchainDetails(blockchainDetails);
+ validateTokenId(highestTokenId);
+ validateTripleStoreRepositories(tripleStoreRepositories);
+ validateTripleStoreImplementation(tripleStoreImplementation);
+
+ const provider = await initializeRpc(rpcEndpoints[0]);
+ const storageContract = await getContentAssetStorageContract(provider, blockchainDetails);
+ let assertionExists = true;
+ let newTokenId = highestTokenId;
+
+ /* eslint-disable no-await-in-loop */
+ while (assertionExists) {
+ // increase the tokenId by 1
+ newTokenId += 1;
+ logger.info(`Fetching assertion for tokenId: ${newTokenId}`);
+
+ // construct new ual
+ const newUal = `did:dkg:${blockchainDetails.ID}/${blockchainDetails.CONTENT_ASSET_STORAGE_CONTRACT_ADDRESS}/${newTokenId}`;
+
+ const assertionIds = await storageContract.getAssertionIds(newTokenId);
+ if (assertionIds.length === 0) {
+ logger.info(
+ `You have processed all assertions on ${blockchainName}. Moving to the next blockchain...`,
+ );
+ assertionExists = false;
+ break;
+ }
+
+ // Get the latest assertionId
+ const assertionId = assertionIds[assertionIds.length - 1];
+
+ const assertion = await getAssertionFromV6TripleStore(
+ tripleStoreRepositories,
+ tripleStoreImplementation,
+ newTokenId,
+ {
+ assertionId,
+ ual: newUal,
+ },
+ );
+
+ if (!assertion.success) {
+ logger.error(
+ `Assertion with assertionId ${assertionId} exists in V6 triple store but could not be fetched. Retrying...`,
+ );
+ newTokenId -= 1;
+ continue;
+ }
+
+ const { successfullyProcessed, assertionsToCheck } =
+ await insertAssertionsIntoV8UnifiedRepository([assertion], tripleStoreRepositories);
+
+ if (successfullyProcessed.length > 0) {
+ logger.info(
+ `Assertion with assertionId ${assertionId} does not exist in V6 triple store.`,
+ );
+ }
+
+ if (assertionsToCheck.length > 0) {
+ const { tokenId, ual, privateAssertion } = assertionsToCheck[0];
+ const knowledgeAssetUal = `${ual}/1`;
+ logger.time(`GETTING KNOWLEDGE COLLECTION NAMED GRAPHS EXIST FOR 1 ASSERTION`);
+ // eslint-disable-next-line no-await-in-loop
+ const { exists } = await getKnowledgeCollectionNamedGraphsExist(
+ tokenId,
+ tripleStoreRepositories,
+ knowledgeAssetUal,
+ privateAssertion,
+ );
+ logger.timeEnd(`GETTING KNOWLEDGE COLLECTION NAMED GRAPHS EXIST FOR 1 ASSERTION`);
+
+ if (!exists) {
+ logger.error(
+ `Assertion with assertionId ${assertionId} was inserted but its KA named graph does not exist. Retrying...`,
+ );
+ newTokenId -= 1;
+ continue;
+ }
+
+ logger.info(
+ `Successfully inserted public/private assertions into V8 triple store for tokenId: ${newTokenId}`,
+ );
+
+ successfulInsertsSet.add(assertionId);
+ totalInsertsSet.add(newTokenId);
+ }
+
+ const inserted = await sqliteDb.insertAssertion(
+ blockchainName,
+ newTokenId,
+ newUal,
+ assertionId,
+ );
+ if (!inserted) {
+ logger.error(
+ `Assertion with assertionId ${assertionId} could not be inserted. Retrying...`,
+ );
+ newTokenId -= 1;
+ continue;
+ }
+ logger.info(
+ `Assertion with tokenId ${newTokenId} inserted into db and marked as processed.`,
+ );
+ }
+}
+
+async function processAndInsertAssertions(
+ v6Assertions,
+ tripleStoreRepositories,
+ tripleStoreImplementation,
+) {
+ // Validation
+ if (!v6Assertions || !Array.isArray(v6Assertions)) {
+ throw new Error(
+ `v6Assertions is not defined or it is not an array. V6 assertions: ${v6Assertions}`,
+ );
+ }
+ validateTripleStoreRepositories(tripleStoreRepositories);
+ validateTripleStoreImplementation(tripleStoreImplementation);
+
+ const { successfullyProcessed, assertionsToCheck } =
+ await insertAssertionsIntoV8UnifiedRepository(v6Assertions, tripleStoreRepositories);
+
+ logger.info(
+ `Number of assertions that do not exist in V6 triple store: ${successfullyProcessed.length}`,
+ );
+
+ logger.info(`Verifying V8 triple store insertions for ${assertionsToCheck.length} assertions`);
+
+ const promises = [];
+ for (const assertion of assertionsToCheck) {
+ const { tokenId, ual, privateAssertion } = assertion;
+ const knowledgeAssetUal = `${ual}/1`;
+
+ promises.push(
+ getKnowledgeCollectionNamedGraphsExist(
+ tokenId,
+ tripleStoreRepositories,
+ knowledgeAssetUal,
+ privateAssertion,
+ ),
+ );
+ }
+
+ logger.time(
+ `GETTING KNOWLEDGE COLLECTION NAMED GRAPHS EXIST FOR ${promises.length} ASSERTIONS`,
+ );
+ const results = await Promise.all(promises);
+ logger.timeEnd(
+ `GETTING KNOWLEDGE COLLECTION NAMED GRAPHS EXIST FOR ${promises.length} ASSERTIONS`,
+ );
+
+ const successfulInserts = results
+ .filter((result) => result.exists)
+ .map((result) => result.tokenId);
+
+ // Find the assertion associated with the tokenId
+ successfulInserts.forEach((tokenId) => {
+ const assertionInserted = assertionsToCheck.find(
+ (assertion) => assertion.tokenId === tokenId,
+ );
+ if (assertionInserted) {
+ successfulInsertsSet.add(assertionInserted.assertionId);
+ }
+ });
+
+ successfulInserts.forEach((tokenId) => {
+ totalInsertsSet.add(tokenId);
+ });
+
+ logger.info(`Number of successfully inserted assertions: ${successfulInserts.length}`);
+
+ successfullyProcessed.push(...successfulInserts);
+ logger.info(`Successfully processed assertions: ${successfullyProcessed.length}`);
+
+ return successfullyProcessed;
+}
+
+async function getAssertionsInBatch(
+ batchKeys,
+ batchData,
+ tripleStoreRepositories,
+ tripleStoreImplementation,
+) {
+ // Validation
+ if (!batchKeys || !Array.isArray(batchKeys)) {
+ logger.error(`Batch keys is not defined or it is not an array. Batch keys: ${batchKeys}`);
+ process.exit(1);
+ }
+ validateBatchData(batchData);
+ validateTripleStoreRepositories(tripleStoreRepositories);
+ validateTripleStoreImplementation(tripleStoreImplementation);
+
+ const batchPromises = [];
+ for (const tokenId of batchKeys) {
+ batchPromises.push(
+ getAssertionFromV6TripleStore(
+ tripleStoreRepositories,
+ tripleStoreImplementation,
+ tokenId,
+ batchData[tokenId],
+ ),
+ );
+ }
+
+ const batchResults = await Promise.all(batchPromises);
+
+ // Get all successful assertions
+ const v6Assertions = batchResults.filter((result) => result.success);
+
+ return v6Assertions;
+}
+
+async function main() {
+ ensureMigrationProgressFileExists();
+
+ // Make sure data/data-migration directory exists
+ ensureDirectoryExists(DATA_MIGRATION_DIR);
+
+ // initialize noderc config
+ const config = initializeConfig();
+
+ // initialize default config
+ const defaultConfig = initializeDefaultConfig();
+
+ // Initialize blockchain config
+ const blockchainConfig = config.modules.blockchain;
+ if (!blockchainConfig || !blockchainConfig.implementation) {
+ logger.error('Invalid configuration for blockchain.');
+ process.exit(1);
+ }
+
+ logger.info('TRIPLE STORE INITIALIZATION START');
+
+ // Initialize triple store config
+ const tripleStoreConfig = config.modules.tripleStore;
+ if (!tripleStoreConfig || !tripleStoreConfig.implementation) {
+ logger.error('Invalid configuration for triple store.');
+ process.exit(1);
+ }
+
+ const tripleStoreData = getTripleStoreData(tripleStoreConfig);
+ // eslint-disable-next-line prefer-destructuring
+ const tripleStoreImplementation = tripleStoreData.tripleStoreImplementation;
+ // eslint-disable-next-line prefer-destructuring
+ let tripleStoreRepositories = tripleStoreData.tripleStoreRepositories;
+
+ if (Object.keys(tripleStoreRepositories).length !== 3) {
+ logger.error(
+ `Triple store repositories are not initialized correctly. Expected 3 repositories, got: ${
+ Object.keys(tripleStoreRepositories).length
+ }`,
+ );
+ process.exit(1);
+ }
+
+ // Initialize repositories
+ tripleStoreRepositories = initializeRepositories(
+ tripleStoreRepositories,
+ tripleStoreImplementation,
+ );
+
+ // Initialize contexts
+ tripleStoreRepositories = initializeContexts(tripleStoreRepositories);
+
+ // Ensure connections
+ await ensureConnections(tripleStoreRepositories, tripleStoreImplementation);
+
+ // Check if db exists and if it doesn't download it to the relevant directory
+ const dbFilePath = path.join(DATA_MIGRATION_DIR, `${process.env.NODE_ENV}.db`);
+ if (!fs.existsSync(dbFilePath)) {
+ logger.info(
+ `DB file for ${process.env.NODE_ENV} does not exist in ${DATA_MIGRATION_DIR}. Downloading it...`,
+ );
+ // Fetch the db file from the remote server
+ logger.info(
+ `Fetching ${process.env.NODE_ENV}.db file from ${
+ DB_URLS[process.env.NODE_ENV]
+ }. This may take a while...`,
+ );
+ logger.time(`Database file downloading time`);
+ const writer = fs.createWriteStream(dbFilePath);
+ const response = await axios({
+ url: DB_URLS[process.env.NODE_ENV],
+ method: 'GET',
+ responseType: 'stream',
+ });
+
+ // Pipe the response stream to the file
+ response.data.pipe(writer);
+ // Wait for the file to finish downloading
+ try {
+ await new Promise((resolve, reject) => {
+ let downloadComplete = false;
+
+ response.data.on('end', () => {
+ downloadComplete = true;
+ });
+
+ writer.on('finish', resolve);
+ writer.on('error', (err) =>
+ reject(new Error(`Write stream error: ${err.message}`)),
+ );
+ response.data.on('error', (err) =>
+ reject(new Error(`Download stream error: ${err.message}`)),
+ );
+ response.data.on('close', () => {
+ if (!downloadComplete) {
+ reject(new Error('Download stream closed before completing'));
+ }
+ });
+ });
+ } catch (error) {
+ logger.error(`Critical error during download: ${error.message}`);
+ logger.error('Terminating process to prevent data corruption');
+ process.exit(1);
+ }
+ logger.timeEnd(`Database file downloading time`);
+
+ if (!fs.existsSync(dbFilePath)) {
+ throw new Error(`DB file for ${process.env.NODE_ENV} could not be created.`);
+ }
+ }
+
+ // Initialize SQLite database once before processing blockchains
+ logger.info('Initializing SQLite database');
+ await sqliteDb.initialize();
+
+ try {
+ // make sure blockchains are always migrated in this order - base, gnosis, neuroweb
+ const sortedBlockchains = Object.keys(blockchainConfig.implementation).sort();
+ // Iterate through all chains
+ for (const blockchain of sortedBlockchains) {
+ logger.time(`PROCESSING TIME FOR ${blockchain}`);
+ let processed = 0;
+ const blockchainImplementation = blockchainConfig.implementation[blockchain];
+ if (!blockchainImplementation.enabled) {
+ logger.info(`Blockchain ${blockchain} is not enabled. Skipping...`);
+ continue;
+ }
+ const rpcEndpoints = blockchainImplementation?.config?.rpcEndpoints
+ ? blockchainImplementation.config.rpcEndpoints
+ : defaultConfig[process.env.NODE_ENV].modules.blockchain.implementation[blockchain]
+ .config.rpcEndpoints;
+ if (!Array.isArray(rpcEndpoints) || rpcEndpoints.length === 0) {
+ logger.error(`RPC endpoints are not defined for blockchain ${blockchain}.`);
+ process.exit(1);
+ }
+
+ let blockchainName;
+ let blockchainDetails;
+ for (const [, details] of Object.entries(BLOCKCHAINS)) {
+ if (details.ID === blockchain && details.ENV === process.env.NODE_ENV) {
+ blockchainName = details.NAME;
+ blockchainDetails = details;
+ break;
+ }
+ }
+
+ if (!blockchainName) {
+ logger.error(
+ `Blockchain ${blockchain} not found. Make sure you have the correct blockchain ID and correct NODE_ENV in .env file.`,
+ );
+ process.exit(1);
+ }
+
+ const tableExists = await sqliteDb.getTableExists(blockchainName);
+
+ if (!tableExists) {
+ logger.error(`Required table "${blockchainName}" does not exist in the database`);
+ process.exit(1);
+ }
+
+ const highestTokenId = await sqliteDb.getHighestTokenId(blockchainName);
+ if (!highestTokenId) {
+ logger.error(
+ `Something went wrong. Could not fetch highest tokenId for ${blockchainName}.`,
+ );
+ process.exit(1);
+ }
+ logger.info(`Total amount of tokenIds: ${highestTokenId}`);
+
+ const tokenIdsToProcessCount = await sqliteDb.getUnprocessedCount(blockchainName);
+ logger.info(`Amount of tokenIds left to process: ${tokenIdsToProcessCount}`);
+
+ // Process tokens in batches
+ while (true) {
+ logger.time('BATCH PROCESSING TIME');
+
+ const batchData = await sqliteDb.getBatchOfUnprocessedTokenIds(
+ blockchainName,
+ BATCH_SIZE,
+ );
+ const batchKeys = Object.keys(batchData);
+
+ if (batchKeys.length === 0) {
+ logger.info('No more unprocessed tokenIds found. Moving on...');
+ logger.timeEnd('BATCH PROCESSING TIME');
+ break;
+ }
+
+ logger.info(`Processing batch: ${batchKeys}`);
+
+ try {
+ logger.time('FETCHING V6 ASSERTIONS');
+ const v6Assertions = await getAssertionsInBatch(
+ batchKeys,
+ batchData,
+ tripleStoreRepositories,
+ tripleStoreImplementation,
+ );
+ logger.timeEnd('FETCHING V6 ASSERTIONS');
+
+ if (v6Assertions.length === 0) {
+ throw new Error(
+ `Something went wrong. Could not get any V6 assertions in batch ${batchKeys}`,
+ );
+ }
+
+ logger.info(`Number of V6 assertions to process: ${v6Assertions.length}`);
+
+ const successfullyProcessed = await processAndInsertAssertions(
+ v6Assertions,
+ tripleStoreRepositories,
+ tripleStoreImplementation,
+ );
+
+ if (successfullyProcessed.length === 0) {
+ throw new Error(
+ `Could not insert any assertions out of ${v6Assertions.length}`,
+ );
+ }
+
+ logger.info(
+ `Successfully processed/inserted assertions: ${successfullyProcessed.length}. Marking rows as processed in db...`,
+ );
+
+ await sqliteDb.markRowsAsProcessed(blockchainName, successfullyProcessed);
+ processed += successfullyProcessed.length;
+
+ logger.info(
+ `[PROGRESS] for ${blockchainName}: ${(
+ (processed / tokenIdsToProcessCount) *
+ 100
+ ).toFixed(2)}%. Total processed: ${processed}/${tokenIdsToProcessCount}`,
+ );
+
+ // Pause for 500ms to deload the triple store
+ await setTimeout(500);
+ } catch (error) {
+ logger.error(`Error processing batch: ${error}. Pausing for 5 seconds...`);
+ await setTimeout(5000);
+ }
+ }
+
+ logger.timeEnd(`PROCESSING TIME FOR ${blockchain}`);
+
+ logger.time(`PROCESS AND INSERT NEWER ASSERTIONS FOR ${blockchainName}`);
+ // If newer (unprocessed) assertions exist on-chain, fetch them and insert them into the V8 triple store repository
+ // eslint-disable-next-line no-await-in-loop
+ await processAndInsertNewerAssertions(
+ blockchainDetails,
+ blockchainName,
+ highestTokenId,
+ tripleStoreRepositories,
+ tripleStoreImplementation,
+ rpcEndpoints,
+ );
+ logger.timeEnd(`PROCESS AND INSERT NEWER ASSERTIONS FOR ${blockchainName}`);
+
+ logger.info(
+ `Total amount of unique successfully inserted assertions for ${blockchainName}: ${successfulInsertsSet.size}`,
+ );
+ logger.info(
+ `Total amount of assertions inserted for ${blockchainName}: ${totalInsertsSet.size}`,
+ );
+ }
+ } finally {
+ // Close database connection after all blockchains are processed
+ await sqliteDb.close();
+ }
+
+ markMigrationAsSuccessfull();
+
+ logger.info(
+ `Total amount of unique successfully inserted assertions: ${successfulInsertsSet.size}`,
+ );
+ logger.info(`Total amount of assertions inserted: ${totalInsertsSet.size}`);
+}
+
+main();
diff --git a/v8-data-migration/validation.js b/v8-data-migration/validation.js
new file mode 100644
index 0000000000..42b14e2b96
--- /dev/null
+++ b/v8-data-migration/validation.js
@@ -0,0 +1,160 @@
+import logger from './logger.js';
+
+export function validateConfig(config) {
+ if (!config || typeof config !== 'object') {
+ logger.error(
+ `[VALIDATION ERROR] Config is not defined or it is not an object. Config: ${config}`,
+ );
+ process.exit(1);
+ }
+}
+
+export function validateBlockchainName(blockchainName) {
+ if (!blockchainName || typeof blockchainName !== 'string') {
+ logger.error(
+ `[VALIDATION ERROR] Blockchain name is defined or it is not a string. Blockchain name: ${blockchainName}`,
+ );
+ process.exit(1);
+ }
+}
+
+export function validateBlockchainDetails(blockchainDetails) {
+ if (
+ !blockchainDetails ||
+ typeof blockchainDetails !== 'object' ||
+ !Object.keys(blockchainDetails).includes('ID') ||
+ !Object.keys(blockchainDetails).includes('ENV') ||
+ !Object.keys(blockchainDetails).includes('NAME') ||
+ !Object.keys(blockchainDetails).includes('CONTENT_ASSET_STORAGE_CONTRACT_ADDRESS')
+ ) {
+ logger.error(
+ `[VALIDATION ERROR] Blockchain details is defined or it is not an object. Blockchain details: ${blockchainDetails}`,
+ );
+ process.exit(1);
+ }
+}
+
+export function validateTokenId(tokenId) {
+ if (typeof tokenId !== 'string' && typeof tokenId !== 'number') {
+ logger.error(
+ `[VALIDATION ERROR] Token ID is not a string or number. Token ID: ${tokenId}. Type: ${typeof tokenId}`,
+ );
+ process.exit(1);
+ }
+}
+
+export function validateUal(ual) {
+ if (!ual.startsWith('did:dkg:') || typeof ual !== 'string') {
+ logger.error(`[VALIDATION ERROR] UAL is not a valid UAL. UAL: ${ual}`);
+ process.exit(1);
+ }
+}
+
+export function validateTripleStoreRepositories(tripleStoreRepositories) {
+ if (!tripleStoreRepositories || typeof tripleStoreRepositories !== 'object') {
+ logger.error(
+ `[VALIDATION ERROR] Triple store repositories is not defined or it is not an object. Triple store repositories: ${tripleStoreRepositories}`,
+ );
+ process.exit(1);
+ }
+}
+
+export function validateTripleStoreImplementation(tripleStoreImplementation) {
+ if (!tripleStoreImplementation || typeof tripleStoreImplementation !== 'string') {
+ logger.error(
+ `[VALIDATION ERROR] Triple store implementation is not defined or it is not a string. Triple store implementation: ${tripleStoreImplementation}`,
+ );
+ process.exit(1);
+ }
+}
+
+export function validateTripleStoreConfig(tripleStoreConfig) {
+ if (!tripleStoreConfig || typeof tripleStoreConfig !== 'object') {
+ logger.error(
+ `[VALIDATION ERROR] Triple store config is not defined or it is not an object. Triple store config: ${tripleStoreConfig}`,
+ );
+ process.exit(1);
+ }
+}
+
+export function validateRepository(repository) {
+ if (!repository || typeof repository !== 'string') {
+ logger.error(
+ `[VALIDATION ERROR] Repository is not defined or it is not a string. Repository: ${repository}`,
+ );
+ process.exit(1);
+ }
+}
+
+export function validateQuery(query) {
+ if (!query || typeof query !== 'string') {
+ logger.error(
+ `[VALIDATION ERROR] Query is not defined or it is not a string. Query: ${query}`,
+ );
+ process.exit(1);
+ }
+}
+
+export function validateAssertionId(assertionId) {
+ if (!assertionId || typeof assertionId !== 'string') {
+ logger.error(
+ `[VALIDATION ERROR] Assertion ID is not defined or it is not a string. Assertion ID: ${assertionId}`,
+ );
+ process.exit(1);
+ }
+}
+
+export function validateAssertion(assertion) {
+ if (!assertion || typeof assertion !== 'string') {
+ logger.error(
+ `[VALIDATION ERROR] Assertion is not defined or it is not a string. Assertion: ${assertion}`,
+ );
+ process.exit(1);
+ }
+}
+
+// BLOCKCHAIN
+export function validateProvider(provider) {
+ if (!provider || typeof provider !== 'object') {
+ logger.error(
+ `[VALIDATION ERROR] Provider is not defined or it is not an object. Provider: ${provider}`,
+ );
+ process.exit(1);
+ }
+}
+
+export function validateStorageContractAddress(storageContractAddress) {
+ if (!storageContractAddress || typeof storageContractAddress !== 'string') {
+ logger.error(
+ `[VALIDATION ERROR] Storage contract address is not defined or it is not a string. Storage contract address: ${storageContractAddress}`,
+ );
+ process.exit(1);
+ }
+}
+
+export function validateStorageContractName(storageContractName) {
+ if (!storageContractName || typeof storageContractName !== 'string') {
+ logger.error(
+ `[VALIDATION ERROR] Storage contract name is not defined or it is not a string. Storage contract name: ${storageContractName}`,
+ );
+ process.exit(1);
+ }
+}
+
+export function validateStorageContractAbi(storageContractAbi) {
+ if (!storageContractAbi || typeof storageContractAbi !== 'object') {
+ logger.error(
+ `[VALIDATION ERROR] Storage contract ABI is not defined or it is not an object. Storage contract ABI: ${storageContractAbi}`,
+ );
+ process.exit(1);
+ }
+}
+
+export function validateBatchData(batchData) {
+ if (!batchData || typeof batchData !== 'object') {
+ logger.error(
+ `[VALIDATION ERROR] Batch data is not defined or it is not an object. Batch data: ${batchData}`,
+ );
+ process.exit(1);
+ }
+}