diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index 7d9a7ec7c..bad8b161c 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -31,6 +31,7 @@ jobs:
runs-on: ubuntu-latest
if: github.event.pull_request.merged == true
outputs:
+ hydra-version-updated: ${{ steps.compare-versions.outputs.hydra-version-updated }}
common-version-updated: ${{ steps.compare-versions.outputs.common-version-updated }}
contract-version-updated: ${{ steps.compare-versions.outputs.contract-version-updated }}
core-version-updated: ${{ steps.compare-versions.outputs.core-version-updated }}
@@ -51,6 +52,7 @@ jobs:
- name: Get package version from main branch before merge
id: pre-merge-version
run: |
+ HYDRA_PRE_MERGE_VERSION=$(node -p "require('./packages/hydra/package.json').version")
COMMON_PRE_MERGE_VERSION=$(node -p "require('./packages/mesh-common/package.json').version")
CONTRACT_PRE_MERGE_VERSION=$(node -p "require('./packages/mesh-contract/package.json').version")
CORE_PRE_MERGE_VERSION=$(node -p "require('./packages/mesh-core/package.json').version")
@@ -82,6 +84,7 @@ jobs:
- name: Get package version from main branch after merge
id: post-merge-version
run: |
+ HYDRA_POST_MERGE_VERSION=$(node -p "require('./packages/hydra/package.json').version")
COMMON_POST_MERGE_VERSION=$(node -p "require('./packages/mesh-common/package.json').version")
CONTRACT_POST_MERGE_VERSION=$(node -p "require('./packages/mesh-contract/package.json').version")
CORE_POST_MERGE_VERSION=$(node -p "require('./packages/mesh-core/package.json').version")
@@ -93,6 +96,7 @@ jobs:
TRANSACTION_POST_MERGE_VERSION=$(node -p "require('./packages/mesh-transaction/package.json').version")
WALLET_POST_MERGE_VERSION=$(node -p "require('./packages/mesh-wallet/package.json').version")
CLI_POST_MERGE_VERSION=$(node -p "require('./scripts/mesh-cli/package.json').version")
+ echo "hydra_post_merge_version=$HYDRA_POST_MERGE_VERSION" >> "$GITHUB_OUTPUT"
echo "common_post_merge_version=$COMMON_POST_MERGE_VERSION" >> "$GITHUB_OUTPUT"
echo "contract_post_merge_version=$CONTRACT_POST_MERGE_VERSION" >> "$GITHUB_OUTPUT"
echo "core_post_merge_version=$CORE_POST_MERGE_VERSION" >> "$GITHUB_OUTPUT"
@@ -108,6 +112,11 @@ jobs:
- name: Compare versions
id: compare-versions
run: |
+ if [[ "${{ steps.pre-merge-version.outputs.hydra_pre_merge_version }}" != "${{ steps.post-merge-version.outputs.hydra_post_merge_version }}" ]]; then
+ echo "hydra-version-updated=true" >> "$GITHUB_OUTPUT"
+ else
+ echo "common-version-updated=false" >> "$GITHUB_OUTPUT"
+ fi
if [[ "${{ steps.pre-merge-version.outputs.common_pre_merge_version }}" != "${{ steps.post-merge-version.outputs.common_post_merge_version }}" ]]; then
echo "common-version-updated=true" >> "$GITHUB_OUTPUT"
else
@@ -164,6 +173,21 @@ jobs:
echo "cli-version-updated=false" >> "$GITHUB_OUTPUT"
fi
+ publish-meshsdk-hydra:
+ needs: [build, check-version]
+ if: needs.check-version.outputs.hydra-version-updated == 'true'
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: actions/setup-node@v4
+ with:
+ node-version: 20
+ registry-url: https://registry.npmjs.org/
+ - run: npm install && npm run build
+ - run: cd packages/hydra && npm publish --access public
+ env:
+ NODE_AUTH_TOKEN: ${{secrets.npm_token}}
+
publish-meshsdk-common:
needs: [build, check-version]
if: needs.check-version.outputs.common-version-updated == 'true'
diff --git a/apps/playground/package.json b/apps/playground/package.json
index e57fbe611..726213754 100644
--- a/apps/playground/package.json
+++ b/apps/playground/package.json
@@ -16,6 +16,7 @@
"@mdx-js/react": "^3.0.1",
"@meshsdk/contract": "*",
"@meshsdk/core": "*",
+ "@meshsdk/hydra": "*",
"@meshsdk/react": "*",
"@next/mdx": "^14.2.3",
"@next/third-parties": "^14.2.5",
diff --git a/apps/playground/src/pages/apis/txbuilder/governance/vote-delegation.tsx b/apps/playground/src/pages/apis/txbuilder/governance/vote-delegation.tsx
index 357a015e3..be69a89d3 100644
--- a/apps/playground/src/pages/apis/txbuilder/governance/vote-delegation.tsx
+++ b/apps/playground/src/pages/apis/txbuilder/governance/vote-delegation.tsx
@@ -34,7 +34,7 @@ function Left() {
codeTx += ` rewardAddress,\n`;
codeTx += ` )\n`;
codeTx += ` .changeAddress(changeAddress)\n`;
- codeTx += ` .selectUtxos(utxos, "keepRelevant", "10000000")`;
+ codeTx += ` .selectUtxosFrom(utxos, "keepRelevant", "10000000")`;
let codeBuildSign = `const unsignedTx = await txBuilder.complete();\n`;
codeBuildSign += `const signedTx = await wallet.signTx(unsignedTx);\n`;
diff --git a/apps/playground/src/pages/hydra/tutorial/index.tsx b/apps/playground/src/pages/hydra/tutorial/index.tsx
index 81fbf7c0e..d484e3d9a 100644
--- a/apps/playground/src/pages/hydra/tutorial/index.tsx
+++ b/apps/playground/src/pages/hydra/tutorial/index.tsx
@@ -1,7 +1,8 @@
import type { NextPage } from "next";
import { useState } from "react";
-import { HydraInstance, HydraProvider, MeshWallet } from "@meshsdk/core";
+import { MeshWallet } from "@meshsdk/core";
+import { HydraInstance, HydraProvider } from "@meshsdk/hydra";
import SidebarFullwidth from "~/components/layouts/sidebar-fullwidth";
import Link from "~/components/link";
@@ -23,7 +24,9 @@ const ReactPage: NextPage = () => {
const [bobNode, setBobNode] = useState(undefined);
const [bobFunds, setBobFunds] = useState(undefined);
- const hydraProvider = new HydraProvider({ url: "http://35.189.158.126:4001" });
+ const hydraProvider = new HydraProvider({
+ url: "http://35.189.158.126:4001",
+ });
const hydraInstance = new HydraInstance({
provider: hydraProvider,
});
diff --git a/apps/playground/src/pages/hydra/tutorial/step3.tsx b/apps/playground/src/pages/hydra/tutorial/step3.tsx
index fc8b1cade..bdfa8c1dd 100644
--- a/apps/playground/src/pages/hydra/tutorial/step3.tsx
+++ b/apps/playground/src/pages/hydra/tutorial/step3.tsx
@@ -39,6 +39,28 @@ function Left(
async function startNode() {}
+ let codeOnMessage = ``;
+ codeOnMessage += `hydraProvider.onMessage((message) => {\n`;
+ codeOnMessage += ` console.log(message);\n`;
+ codeOnMessage += `});\n`;
+
+ let codeGreetingsMessage = `{\n`;
+ codeGreetingsMessage += ` "peer": "bob-node",\n`;
+ codeGreetingsMessage += ` "seq": 0,\n`;
+ codeGreetingsMessage += ` "tag": "PeerConnected",\n`;
+ codeGreetingsMessage += ` "timestamp": "2023-08-17T18:25:02.903974459Z"\n`;
+ codeGreetingsMessage += `}\n`;
+ codeGreetingsMessage += `{\n`;
+ codeGreetingsMessage += ` "headStatus": "Idle",\n`;
+ codeGreetingsMessage += ` "hydraNodeVersion": "0.12.0-54db2265c257c755df98773c64754c9854d879e8",\n`;
+ codeGreetingsMessage += ` "me": {\n`;
+ codeGreetingsMessage += ` "vkey": "ab159b29b87b498fa060f6045cccf84ecd20cf623f7820ed130ffc849633a120"\n`;
+ codeGreetingsMessage += ` },\n`;
+ codeGreetingsMessage += ` "seq": 1,\n`;
+ codeGreetingsMessage += ` "tag": "Greetings",\n`;
+ codeGreetingsMessage += ` "timestamp": "2023-08-17T18:32:29.092329511Z"\n`;
+ codeGreetingsMessage += `};\n`;
+
return (
<>
@@ -70,7 +92,14 @@ function Left(
connection to the API port:
-
+
+
+
+ This opens a duplex connection and you should see messages indicating
+ successful connections like:
+
+
+
>
);
}
diff --git a/apps/playground/src/pages/hydra/tutorial/step4.tsx b/apps/playground/src/pages/hydra/tutorial/step4.tsx
index 12279d17e..dc141564f 100644
--- a/apps/playground/src/pages/hydra/tutorial/step4.tsx
+++ b/apps/playground/src/pages/hydra/tutorial/step4.tsx
@@ -1,9 +1,9 @@
import { useState } from "react";
-import { HydraInstance, HydraProvider, MeshWallet } from "@meshsdk/core";
+import { MeshWallet } from "@meshsdk/core";
+import { HydraInstance } from "@meshsdk/hydra";
import Button from "~/components/button/button";
-import Link from "~/components/link";
import TwoColumnsScroll from "~/components/sections/two-columns-scroll";
import Codeblock from "~/components/text/codeblock";
@@ -69,7 +69,7 @@ function Left(
Send this command to initialize a head through the WebSocket connection:
-
+
openHead()}
style={loading ? "warning" : "light"}
@@ -91,6 +91,24 @@ function Left(
given to {"{alice,bob}-funds.vk"}
beforehand:
+ {/* todo, for alice and bob */}
+ {/* https://hydra.family/head-protocol/docs/tutorial/#step-4-open-a-hydra-head */}
+
+ {/* cardano-cli query utxo \
+ --address $(cat credentials/alice-funds.addr) \
+ --out-file alice-commit-utxo.json
+
+curl -X POST 127.0.0.1:4001/commit \
+ --data @alice-commit-utxo.json \
+ > alice-commit-tx.json
+
+cardano-cli transaction sign \
+ --tx-file alice-commit-tx.json \
+ --signing-key-file credentials/alice-funds.sk \
+ --out-file alice-commit-tx-signed.json
+
+cardano-cli transaction submit --tx-file alice-commit-tx-signed.json */}
+
commitFunds()}
diff --git a/apps/playground/src/pages/hydra/tutorial/step5.tsx b/apps/playground/src/pages/hydra/tutorial/step5.tsx
index 5d942c5be..587fd2cda 100644
--- a/apps/playground/src/pages/hydra/tutorial/step5.tsx
+++ b/apps/playground/src/pages/hydra/tutorial/step5.tsx
@@ -1,6 +1,7 @@
import { useState } from "react";
-import { HydraInstance, HydraProvider, MeshWallet } from "@meshsdk/core";
+import { MeshTxBuilder, MeshWallet } from "@meshsdk/core";
+import { HydraInstance, HydraProvider } from "@meshsdk/hydra";
import Button from "~/components/button/button";
import Link from "~/components/link";
@@ -51,12 +52,52 @@ function Left(
console.log("UTXOs: ", utxos);
}
- async function commitFunds() {
- // commit alice funds
- await hydraInstance.commitFunds();
+ async function fetchAddressUTxOs() {
+ const utxosAddress = await hydraInstance.provider.fetchAddressUTxOs(
+ "addr_test1vpd5axpq4qsh8sxvzny49cp22gc5tqx0djf6wmjv5cx7q5qyrzuw8",
+ );
+ console.log("UTXOs Address: ", utxosAddress);
+ }
+
+ async function makeTx() {
+ // wallet
+ const walletA = {
+ addr: "addr_test1vpsthwvxgfkkm2lm8ggy0c5345u6vrfctmug6tdyx4rf4mqn2xcyw",
+ key: "58201aae63d93899640e91b51c5e8bd542262df3ecf3246c3854f39c40f4eb83557d",
+ };
+
+ const wallet = new MeshWallet({
+ networkId: 0,
+ key: {
+ type: "cli",
+ payment: walletA.key,
+ },
+ fetcher: hydraInstance.provider,
+ submitter: hydraInstance.provider,
+ });
+
+ const pp = await hydraInstance.provider.fetchProtocolParameters();
+ const utxos = await wallet.getUtxos("enterprise");
+ const changeAddress = walletA.addr;
- // commit bob funds
- await hydraInstance.commitFunds();
+ const txBuilder = new MeshTxBuilder({
+ fetcher: hydraInstance.provider,
+ params: pp,
+ verbose: true,
+ });
+
+ const unsignedTx = await txBuilder
+ .txOut(
+ "addr_test1vpd5axpq4qsh8sxvzny49cp22gc5tqx0djf6wmjv5cx7q5qyrzuw8",
+ [{ unit: "lovelace", quantity: "3000000" }],
+ )
+ .changeAddress(changeAddress)
+ .selectUtxosFrom(utxos)
+ .complete();
+
+ const signedTx = await wallet.signTx(unsignedTx);
+ const txHash = await hydraInstance.provider.submitTx(signedTx);
+ console.log("txHash", txHash);
}
return (
@@ -66,8 +107,7 @@ function Left(
bob using the Hydra head. Hydra Head operates as an isomorphic protocol,
meaning that functionalities available on the Cardano layer 1 network
are also available on the layer 2 network. This compatibility allows us
- to use familiar tools like cardano-cli for transaction creation within
- the head.
+ to use Mesh for transaction creation within the head.
In this example, we will transfer 10 ada from Alice to Bob. Adjust the
@@ -80,8 +120,9 @@ function Left(
or SnapshotConfirmed
messages. Alternatively, we can query
the current UTxO set directly from the API:
-
-
+
fetchUTxOs()}
style={loading ? "warning" : "light"}
@@ -89,7 +130,57 @@ function Left(
>
Fetch UTxOs
+
+ From the response, we would need to select a UTxO that is owned by alice
+ to spend:
+
+
+ fetchAddressUTxOs()}
+ style={loading ? "warning" : "light"}
+ disabled={loading}
+ >
+ Fetch Address UTxOs
+
+
+ Next, similar to the Cardano layer 1, build a transaction using Mesh
+ that spends this UTxO and sends it to an address. If you haven't done so
+ already, obtain the address of your partner to send the funds to.
+
+
+
+ Before submission, we need to sign the transaction to authorize spending
+ alice's funds:
+
+
+
+ Submit the transaction through the already open WebSocket connection.
+ Generate the NewTx command for WebSocket submission:
+
+
+ makeTx()}
+ style={loading ? "warning" : "light"}
+ disabled={loading}
+ >
+ Build Transaction
+
+
+ The transation will be validated by both hydra-nodes and either result
+ in a TxInvalid message with a reason, or a TxValid message and a
+ SnapshotConfirmed with the new UTxO available in the head shortly after.
+
+
+ 🎉 Congratulations, you just processed your first Cardano transaction
+ off-chain in a Hydra head!
+
>
);
}
diff --git a/apps/playground/src/pages/hydra/tutorial/step6.tsx b/apps/playground/src/pages/hydra/tutorial/step6.tsx
new file mode 100644
index 000000000..16444d93b
--- /dev/null
+++ b/apps/playground/src/pages/hydra/tutorial/step6.tsx
@@ -0,0 +1,105 @@
+import { useState } from "react";
+
+import { MeshWallet } from "@meshsdk/core";
+
+import Button from "~/components/button/button";
+import TwoColumnsScroll from "~/components/sections/two-columns-scroll";
+import Codeblock from "~/components/text/codeblock";
+
+export default function HydraTutorialStep6({
+ aliceNode,
+ aliceFunds,
+ bobNode,
+ bobFunds,
+}: {
+ aliceNode: MeshWallet | undefined;
+ aliceFunds: MeshWallet | undefined;
+ bobNode: MeshWallet | undefined;
+ bobFunds: MeshWallet | undefined;
+}) {
+ return (
+
+ );
+}
+
+function Left(
+ aliceNode: MeshWallet | undefined,
+ aliceFunds: MeshWallet | undefined,
+ bobNode: MeshWallet | undefined,
+ bobFunds: MeshWallet | undefined,
+) {
+ const [loading, setLoading] = useState(false);
+ const [addresses, setAddresses] = useState("");
+ const [balance, setBalance] = useState("");
+
+ async function queryFunds() {}
+
+ return (
+ <>
+
+ Any participant can initiate closing the Hydra head. Use the WebSocket
+ API to submit the closing command:
+
+
+
+
+
+ The hydra-node will then submit a protocol transaction with the last
+ known snapshot to the Cardano network. A smart contract on layer 1 will
+ check the snapshot signatures and confirm the head is closed. The
+ WebSocket API sends a HeadIsClosed message when this' Close' transaction
+ is observed. Note that this can also happen if any other hydra-node
+ closes the head.
+
+
+
+ The message will include a contestationDeadline
, set using
+ the configurable --contestation-period
. Until this
+ deadline, the closing snapshot can be contested with a more recent,
+ multi-signed snapshot. Your hydra-node would contest automatically for
+ you if the closed snapshot is not the last known one.
+
+
+
+ We need to wait now until the deadline has passed, which will be
+ notified by the hydra-node through the WebSocket API with a
+ ReadyToFanout
message.
+
+
+
+ At this point, any head member can issue distribution of funds on layer
+ 1. You can do this through the WebSocket API one last time:
+
+
+
+
+
+ This will submit a transaction to layer 1. Once successful, it will be
+ indicated by a HeadIsFinalized
message that includes the
+ distributed utxo.
+
+
+
+ To confirm, you can query the funds of both alice and bob on layer 1:
+
+
+
+
+ queryFunds()}
+ style={loading ? "warning" : "light"}
+ disabled={loading}
+ >
+ Query Funds
+
+
+ That's it. That's the full life cycle of a Hydra head.
+ >
+ );
+}
diff --git a/apps/playground/src/pages/providers/hydra-endpoints/index.tsx b/apps/playground/src/pages/providers/hydra-endpoints/index.tsx
index b42cf4167..1a35abac1 100644
--- a/apps/playground/src/pages/providers/hydra-endpoints/index.tsx
+++ b/apps/playground/src/pages/providers/hydra-endpoints/index.tsx
@@ -1,4 +1,4 @@
-import { HydraProvider } from "@meshsdk/core";
+import { HydraProvider } from "@meshsdk/hydra";
import HydraInitializeHead from "./init-head";
import HydraOnMessage from "./on-message";
diff --git a/apps/playground/src/pages/providers/hydra-endpoints/init-head.tsx b/apps/playground/src/pages/providers/hydra-endpoints/init-head.tsx
index db6387adc..e54254f9f 100644
--- a/apps/playground/src/pages/providers/hydra-endpoints/init-head.tsx
+++ b/apps/playground/src/pages/providers/hydra-endpoints/init-head.tsx
@@ -1,4 +1,5 @@
-import { HydraProvider, MeshTxBuilder, MeshWallet } from "@meshsdk/core";
+import { MeshTxBuilder, MeshWallet } from "@meshsdk/core";
+import { HydraProvider } from "@meshsdk/hydra";
import Button from "~/components/button/button";
import LiveCodeDemo from "~/components/sections/live-code-demo";
@@ -39,14 +40,16 @@ function Right(hydraProvider: HydraProvider, provider: string) {
async function runDemo() {
hydraProvider.onMessage((message) => {
console.log("Hydra onMessage", message);
+ if (message.tag === "Greetings") {
+ console.log("Greetings", JSON.stringify(message));
+ }
});
hydraProvider.onStatusChange((status) => {
console.log("Hydra status", status);
});
-
await hydraProvider.connect();
- // await hydraProvider.initializesHead();
+ // await hydraProvider.init();
}
async function fetchutxo() {
@@ -83,7 +86,7 @@ function Right(hydraProvider: HydraProvider, provider: string) {
const pp = await hydraProvider.fetchProtocolParameters();
// const utxos = await hydraProvider.fetchAddressUTxOs(walletA.addr);
// console.log("utxos", utxos);
- const utxos = await wallet.getUtxos('enterprise');
+ const utxos = await wallet.getUtxos("enterprise");
// console.log("utxos", utxos);
const changeAddress = walletA.addr;
diff --git a/apps/playground/src/pages/providers/hydra-endpoints/on-message.tsx b/apps/playground/src/pages/providers/hydra-endpoints/on-message.tsx
index 356f38c25..5a0d5dd61 100644
--- a/apps/playground/src/pages/providers/hydra-endpoints/on-message.tsx
+++ b/apps/playground/src/pages/providers/hydra-endpoints/on-message.tsx
@@ -1,6 +1,6 @@
-import { useEffect, useState } from "react";
+import { useEffect } from "react";
-import { HydraProvider } from "@meshsdk/core";
+import { HydraProvider } from "@meshsdk/hydra";
import Link from "~/components/link";
import TwoColumnsScroll from "~/components/sections/two-columns-scroll";
diff --git a/apps/playground/src/pages/providers/hydra.tsx b/apps/playground/src/pages/providers/hydra.tsx
index ac5a9dd6e..feeec7995 100644
--- a/apps/playground/src/pages/providers/hydra.tsx
+++ b/apps/playground/src/pages/providers/hydra.tsx
@@ -1,6 +1,6 @@
import type { NextPage } from "next";
-import { HydraProvider } from "@meshsdk/core";
+import { HydraProvider } from "@meshsdk/hydra";
import ButtonFloatDocumentation from "~/components/button/button-float-documentation";
import SidebarFullwidth from "~/components/layouts/sidebar-fullwidth";
@@ -28,12 +28,15 @@ const ReactPage: NextPage = () => {
{ label: "Get protocol parameters", to: "AA" },
];
- let code1 = `import { HydraProvider } from "@meshsdk/core";\n\n`;
+ let code1 = `import { HydraProvider } from "@meshsdk/hydra";\n\n`;
code1 += `const hydraProvider = new HydraProvider('');`;
code1 += `\nawait hydraProvider.connect();`;
const hydraUrl = useProviders((state) => state.hydraUrl);
- const hydraProvider = new HydraProvider({ url: hydraUrl });
+
+ const hydraProvider = new HydraProvider({
+ url: hydraUrl,
+ });
return (
<>
diff --git a/package-lock.json b/package-lock.json
index 8f572d4f0..3d170d2e2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -287,6 +287,7 @@
"@mdx-js/react": "^3.0.1",
"@meshsdk/contract": "*",
"@meshsdk/core": "*",
+ "@meshsdk/hydra": "*",
"@meshsdk/react": "*",
"@next/mdx": "^14.2.3",
"@next/third-parties": "^14.2.5",
@@ -5981,6 +5982,10 @@
"resolved": "packages/mesh-core-cst",
"link": true
},
+ "node_modules/@meshsdk/hydra": {
+ "resolved": "packages/hydra",
+ "link": true
+ },
"node_modules/@meshsdk/provider": {
"resolved": "packages/mesh-provider",
"link": true
@@ -8037,6 +8042,119 @@
"@sinonjs/commons": "^3.0.0"
}
},
+ "node_modules/@stricahq/bip32ed25519": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@stricahq/bip32ed25519/-/bip32ed25519-1.1.1.tgz",
+ "integrity": "sha512-BwaaH2ZhppJyB+lfd4R16NLJ0we5L2rfT+U+LcXL7h1LP1Kbf6ilxlyhCbUuc9i9U4VFb5hcOfcOZhx6mtoSOg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "blakejs": "^1.1.1",
+ "bn.js": "^5.2.0",
+ "buffer": "^6.0.3",
+ "chai": "^4.3.4",
+ "elliptic": "6.6.1",
+ "hash.js": "^1.1.7",
+ "pbkdf2": "^3.1.2"
+ }
+ },
+ "node_modules/@stricahq/bip32ed25519/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",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/@stricahq/bip32ed25519/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",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
+ }
+ },
+ "node_modules/@stricahq/cbors": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@stricahq/cbors/-/cbors-1.0.3.tgz",
+ "integrity": "sha512-FlV5DaQtTeSSgkC9S4CiO167+x1t6uSNixQ32QMWIMG7+/LhOtzv4GPf4qJR6z7C31mzx+mRlf86dJt9lfBeVw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "bignumber.js": "^9.0.2",
+ "buffer": "^6.0.3"
+ }
+ },
+ "node_modules/@stricahq/cbors/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",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/@stricahq/cbors/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",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
+ }
+ },
"node_modules/@sveltejs/adapter-auto": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-3.3.1.tgz",
@@ -10025,6 +10143,15 @@
"util": "^0.12.5"
}
},
+ "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==",
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/ast-types-flow": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz",
@@ -10812,7 +10939,6 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
"integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==",
- "dev": true,
"license": "MIT"
},
"node_modules/browser-resolve": {
@@ -11404,6 +11530,33 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/chai": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz",
+ "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==",
+ "license": "MIT",
+ "dependencies": {
+ "assertion-error": "^1.1.0",
+ "check-error": "^1.0.3",
+ "deep-eql": "^4.1.3",
+ "get-func-name": "^2.0.2",
+ "loupe": "^2.3.6",
+ "pathval": "^1.1.1",
+ "type-detect": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/chai/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==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
@@ -11470,6 +11623,18 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "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==",
+ "license": "MIT",
+ "dependencies": {
+ "get-func-name": "^2.0.2"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/chokidar": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
@@ -11584,7 +11749,6 @@
"version": "3.9.0",
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
"integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
- "dev": true,
"funding": [
{
"type": "github",
@@ -12430,6 +12594,18 @@
"dev": true,
"license": "MIT"
},
+ "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==",
+ "license": "MIT",
+ "dependencies": {
+ "type-detect": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/deep-extend": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
@@ -12756,7 +12932,6 @@
"version": "6.6.1",
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz",
"integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==",
- "dev": true,
"license": "MIT",
"dependencies": {
"bn.js": "^4.11.9",
@@ -12772,7 +12947,6 @@
"version": "4.12.1",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz",
"integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==",
- "dev": true,
"license": "MIT"
},
"node_modules/emittery": {
@@ -14927,6 +15101,15 @@
"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==",
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/get-intrinsic": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
@@ -15391,7 +15574,6 @@
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
"integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
- "dev": true,
"license": "MIT",
"dependencies": {
"inherits": "^2.0.3",
@@ -15539,7 +15721,6 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
"integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
- "dev": true,
"license": "MIT",
"dependencies": {
"hash.js": "^1.0.3",
@@ -15551,7 +15732,6 @@
"version": "2.8.9",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
"integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
- "dev": true,
"license": "ISC"
},
"node_modules/html-escaper": {
@@ -17391,7 +17571,6 @@
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
"integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true,
"license": "MIT"
},
"node_modules/json-schema-traverse": {
@@ -17811,6 +17990,15 @@
"loose-envify": "cli.js"
}
},
+ "node_modules/loupe": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz",
+ "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==",
+ "license": "MIT",
+ "dependencies": {
+ "get-func-name": "^2.0.1"
+ }
+ },
"node_modules/lower-case": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
@@ -18980,14 +19168,12 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
"integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
- "dev": true,
"license": "ISC"
},
"node_modules/minimalistic-crypto-utils": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
"integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==",
- "dev": true,
"license": "MIT"
},
"node_modules/minimatch": {
@@ -19030,7 +19216,6 @@
"version": "4.2.8",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz",
"integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==",
- "dev": true,
"license": "ISC",
"engines": {
"node": ">=8"
@@ -19458,7 +19643,6 @@
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
"integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
- "dev": true,
"license": "BSD-2-Clause",
"dependencies": {
"hosted-git-info": "^2.1.4",
@@ -19471,7 +19655,6 @@
"version": "5.7.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
- "dev": true,
"license": "ISC",
"bin": {
"semver": "bin/semver"
@@ -22789,6 +22972,15 @@
"node": ">=8"
}
},
+ "node_modules/pathval": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
+ "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/pbkdf2": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
@@ -25192,7 +25384,6 @@
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
"integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
- "dev": true,
"license": "Apache-2.0",
"dependencies": {
"spdx-expression-parse": "^3.0.0",
@@ -25203,14 +25394,12 @@
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
"integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
- "dev": true,
"license": "CC-BY-3.0"
},
"node_modules/spdx-expression-parse": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
"integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
- "dev": true,
"license": "MIT",
"dependencies": {
"spdx-exceptions": "^2.1.0",
@@ -25221,7 +25410,6 @@
"version": "3.0.21",
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz",
"integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==",
- "dev": true,
"license": "CC0-1.0"
},
"node_modules/speed-limiter": {
@@ -26943,7 +27131,6 @@
"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"
@@ -27603,7 +27790,6 @@
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
"integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
- "dev": true,
"license": "Apache-2.0",
"dependencies": {
"spdx-correct": "^3.0.0",
@@ -28580,7 +28766,6 @@
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
"integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
- "dev": true,
"license": "ISC",
"dependencies": {
"imurmurhash": "^0.1.4",
@@ -28594,7 +28779,6 @@
"version": "3.0.7",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true,
"license": "ISC"
},
"node_modules/ws": {
@@ -28843,6 +29027,3159 @@
"typescript": "^5.3.3"
}
},
+ "packages/hydra": {
+ "name": "@meshsdk/hydra",
+ "version": "1.9.0-beta.5",
+ "dependencies": {
+ "@meshsdk/common": "1.9.0-beta.1",
+ "@meshsdk/core-cst": "1.9.0-beta.1",
+ "axios": "^1.7.2"
+ },
+ "devDependencies": {
+ "@meshsdk/configs": "*",
+ "@swc/core": "^1.10.7",
+ "eslint": "^8.57.0",
+ "tsup": "^8.0.2",
+ "typescript": "^5.3.3"
+ }
+ },
+ "packages/hydra/node_modules/@cardano-sdk/core": {
+ "version": "0.43.0",
+ "resolved": "https://registry.npmjs.org/@cardano-sdk/core/-/core-0.43.0.tgz",
+ "integrity": "sha512-hPnZXjObJub0eXV2dDAG2/gEg/vw092RZ1VGMZfBSqavz18Tg/K6jGQ3cOpWZ9d+MqFzZTCB+s5ctdRkYt3idA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@biglup/is-cid": "^1.0.3",
+ "@cardano-ogmios/client": "6.9.0",
+ "@cardano-ogmios/schema": "6.9.0",
+ "@cardano-sdk/crypto": "~0.1.32",
+ "@cardano-sdk/util": "~0.15.5",
+ "@foxglove/crc": "^0.0.3",
+ "@scure/base": "^1.1.1",
+ "fraction.js": "4.0.1",
+ "ip-address": "^9.0.5",
+ "lodash": "^4.17.21",
+ "ts-custom-error": "^3.2.0",
+ "ts-log": "^2.2.4",
+ "web-encoding": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=16.20.2"
+ },
+ "peerDependencies": {
+ "rxjs": "^7.4.0"
+ },
+ "peerDependenciesMeta": {
+ "rxjs": {
+ "optional": true
+ }
+ }
+ },
+ "packages/hydra/node_modules/@cardano-sdk/crypto": {
+ "version": "0.1.32",
+ "resolved": "https://registry.npmjs.org/@cardano-sdk/crypto/-/crypto-0.1.32.tgz",
+ "integrity": "sha512-RCKFvkzD32QpKQ0jULADVRNmfBNkCwiZl2nlFbkZ3aCrfIex+6/2CizoagJ161fA7lL5/HGuzWfjOg3GX2ax6w==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@cardano-sdk/util": "~0.15.5",
+ "blake2b": "^2.1.4",
+ "i": "^0.3.7",
+ "libsodium-wrappers-sumo": "^0.7.5",
+ "lodash": "^4.17.21",
+ "npm": "^9.3.0",
+ "pbkdf2": "^3.1.2",
+ "ts-custom-error": "^3.2.0",
+ "ts-log": "^2.2.4"
+ },
+ "engines": {
+ "node": ">=16.20.2"
+ },
+ "peerDependencies": {
+ "@dcspark/cardano-multiplatform-lib-asmjs": "^3.1.1",
+ "@dcspark/cardano-multiplatform-lib-browser": "^3.1.1",
+ "@dcspark/cardano-multiplatform-lib-nodejs": "^3.1.1"
+ },
+ "peerDependenciesMeta": {
+ "@dcspark/cardano-multiplatform-lib-asmjs": {
+ "optional": true
+ },
+ "@dcspark/cardano-multiplatform-lib-browser": {
+ "optional": true
+ },
+ "@dcspark/cardano-multiplatform-lib-nodejs": {
+ "optional": true
+ }
+ }
+ },
+ "packages/hydra/node_modules/@meshsdk/common": {
+ "version": "1.9.0-beta.1",
+ "resolved": "https://registry.npmjs.org/@meshsdk/common/-/common-1.9.0-beta.1.tgz",
+ "integrity": "sha512-RmKWMg60w1ZxI0jGSlYpk7bM9dO3jErtV1BjiTKx/cLaJtgDK4QfNhKZ8SMokcQ7p25uC1gC4ReqvBb+ypV+mQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "bech32": "^2.0.0",
+ "bip39": "3.1.0",
+ "blake2b": "^2.1.4"
+ }
+ },
+ "packages/hydra/node_modules/@meshsdk/core-cst": {
+ "version": "1.9.0-beta.1",
+ "resolved": "https://registry.npmjs.org/@meshsdk/core-cst/-/core-cst-1.9.0-beta.1.tgz",
+ "integrity": "sha512-MyUf/QSMkVX33NrmLoTnGYrURthrx7GmW8P2oimDUn77OTDE0trcy7T8EPNkhSHBXpGxJIB/2E15Q5xNhRJlOQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@cardano-sdk/core": "^0.43.0",
+ "@cardano-sdk/crypto": "^0.1.32",
+ "@cardano-sdk/util": "^0.15.5",
+ "@harmoniclabs/bytestring": "1.0.0",
+ "@harmoniclabs/cbor": "1.3.0",
+ "@harmoniclabs/crypto": "0.2.4",
+ "@harmoniclabs/pair": "1.0.0",
+ "@harmoniclabs/plutus-data": "1.2.4",
+ "@harmoniclabs/uplc": "1.2.4",
+ "@meshsdk/common": "1.9.0-beta.1",
+ "@stricahq/bip32ed25519": "^1.1.0",
+ "@stricahq/cbors": "^1.0.0",
+ "@types/base32-encoding": "^1.0.2",
+ "base32-encoding": "^1.0.0",
+ "bech32": "^2.0.0",
+ "bn.js": "^5.2.0",
+ "pbkdf2": "^3.1.2"
+ }
+ },
+ "packages/hydra/node_modules/fraction.js": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.0.1.tgz",
+ "integrity": "sha512-NQYzZw8MUsxSZFQo6E8tKOlmSd/BlDTNOR4puXFSHSwFwNaIlmbortQy5PDN/KnVQ4xWG2NtN0J0hjPw7eE06A==",
+ "license": "MIT OR GPL-2.0",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "packages/hydra/node_modules/npm": {
+ "version": "9.9.4",
+ "resolved": "https://registry.npmjs.org/npm/-/npm-9.9.4.tgz",
+ "integrity": "sha512-NzcQiLpqDuLhavdyJ2J3tGJ/ni/ebcqHVFZkv1C4/6lblraUPbPgCJ4Vhb4oa3FFhRa2Yj9gA58jGH/ztKueNQ==",
+ "bundleDependencies": [
+ "@isaacs/string-locale-compare",
+ "@npmcli/arborist",
+ "@npmcli/config",
+ "@npmcli/fs",
+ "@npmcli/map-workspaces",
+ "@npmcli/package-json",
+ "@npmcli/promise-spawn",
+ "@npmcli/run-script",
+ "abbrev",
+ "archy",
+ "cacache",
+ "chalk",
+ "ci-info",
+ "cli-columns",
+ "cli-table3",
+ "columnify",
+ "fastest-levenshtein",
+ "fs-minipass",
+ "glob",
+ "graceful-fs",
+ "hosted-git-info",
+ "ini",
+ "init-package-json",
+ "is-cidr",
+ "json-parse-even-better-errors",
+ "libnpmaccess",
+ "libnpmdiff",
+ "libnpmexec",
+ "libnpmfund",
+ "libnpmhook",
+ "libnpmorg",
+ "libnpmpack",
+ "libnpmpublish",
+ "libnpmsearch",
+ "libnpmteam",
+ "libnpmversion",
+ "make-fetch-happen",
+ "minimatch",
+ "minipass",
+ "minipass-pipeline",
+ "ms",
+ "node-gyp",
+ "nopt",
+ "normalize-package-data",
+ "npm-audit-report",
+ "npm-install-checks",
+ "npm-package-arg",
+ "npm-pick-manifest",
+ "npm-profile",
+ "npm-registry-fetch",
+ "npm-user-validate",
+ "npmlog",
+ "p-map",
+ "pacote",
+ "parse-conflict-json",
+ "proc-log",
+ "qrcode-terminal",
+ "read",
+ "semver",
+ "sigstore",
+ "spdx-expression-parse",
+ "ssri",
+ "supports-color",
+ "tar",
+ "text-table",
+ "tiny-relative-date",
+ "treeverse",
+ "validate-npm-package-name",
+ "which",
+ "write-file-atomic"
+ ],
+ "license": "Artistic-2.0",
+ "workspaces": [
+ "docs",
+ "smoke-tests",
+ "mock-globals",
+ "mock-registry",
+ "workspaces/*"
+ ],
+ "dependencies": {
+ "@isaacs/string-locale-compare": "^1.1.0",
+ "@npmcli/arborist": "^6.5.0",
+ "@npmcli/config": "^6.4.0",
+ "@npmcli/fs": "^3.1.0",
+ "@npmcli/map-workspaces": "^3.0.4",
+ "@npmcli/package-json": "^4.0.1",
+ "@npmcli/promise-spawn": "^6.0.2",
+ "@npmcli/run-script": "^6.0.2",
+ "abbrev": "^2.0.0",
+ "archy": "~1.0.0",
+ "cacache": "^17.1.4",
+ "chalk": "^5.3.0",
+ "ci-info": "^4.0.0",
+ "cli-columns": "^4.0.0",
+ "cli-table3": "^0.6.3",
+ "columnify": "^1.6.0",
+ "fastest-levenshtein": "^1.0.16",
+ "fs-minipass": "^3.0.3",
+ "glob": "^10.3.10",
+ "graceful-fs": "^4.2.11",
+ "hosted-git-info": "^6.1.3",
+ "ini": "^4.1.1",
+ "init-package-json": "^5.0.0",
+ "is-cidr": "^4.0.2",
+ "json-parse-even-better-errors": "^3.0.1",
+ "libnpmaccess": "^7.0.2",
+ "libnpmdiff": "^5.0.20",
+ "libnpmexec": "^6.0.4",
+ "libnpmfund": "^4.2.1",
+ "libnpmhook": "^9.0.3",
+ "libnpmorg": "^5.0.4",
+ "libnpmpack": "^5.0.20",
+ "libnpmpublish": "^7.5.1",
+ "libnpmsearch": "^6.0.2",
+ "libnpmteam": "^5.0.3",
+ "libnpmversion": "^4.0.2",
+ "make-fetch-happen": "^11.1.1",
+ "minimatch": "^9.0.3",
+ "minipass": "^7.0.4",
+ "minipass-pipeline": "^1.2.4",
+ "ms": "^2.1.2",
+ "node-gyp": "^9.4.1",
+ "nopt": "^7.2.0",
+ "normalize-package-data": "^5.0.0",
+ "npm-audit-report": "^5.0.0",
+ "npm-install-checks": "^6.3.0",
+ "npm-package-arg": "^10.1.0",
+ "npm-pick-manifest": "^8.0.2",
+ "npm-profile": "^7.0.1",
+ "npm-registry-fetch": "^14.0.5",
+ "npm-user-validate": "^2.0.0",
+ "npmlog": "^7.0.1",
+ "p-map": "^4.0.0",
+ "pacote": "^15.2.0",
+ "parse-conflict-json": "^3.0.1",
+ "proc-log": "^3.0.0",
+ "qrcode-terminal": "^0.12.0",
+ "read": "^2.1.0",
+ "semver": "^7.6.0",
+ "sigstore": "^1.9.0",
+ "spdx-expression-parse": "^3.0.1",
+ "ssri": "^10.0.5",
+ "supports-color": "^9.4.0",
+ "tar": "^6.2.1",
+ "text-table": "~0.2.0",
+ "tiny-relative-date": "^1.3.0",
+ "treeverse": "^3.0.0",
+ "validate-npm-package-name": "^5.0.0",
+ "which": "^3.0.1",
+ "write-file-atomic": "^5.0.1"
+ },
+ "bin": {
+ "npm": "bin/npm-cli.js",
+ "npx": "bin/npx-cli.js"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/@colors/colors": {
+ "version": "1.5.0",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.1.90"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/@gar/promisify": {
+ "version": "1.1.3",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "packages/hydra/node_modules/npm/node_modules/@isaacs/cliui": {
+ "version": "8.0.2",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/@isaacs/cliui/node_modules/ansi-regex": {
+ "version": "6.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/@isaacs/cliui/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "packages/hydra/node_modules/npm/node_modules/@isaacs/cliui/node_modules/string-width": {
+ "version": "5.1.2",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/@isaacs/cliui/node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/@isaacs/string-locale-compare": {
+ "version": "1.1.0",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "packages/hydra/node_modules/npm/node_modules/@npmcli/arborist": {
+ "version": "6.5.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@isaacs/string-locale-compare": "^1.1.0",
+ "@npmcli/fs": "^3.1.0",
+ "@npmcli/installed-package-contents": "^2.0.2",
+ "@npmcli/map-workspaces": "^3.0.2",
+ "@npmcli/metavuln-calculator": "^5.0.0",
+ "@npmcli/name-from-folder": "^2.0.0",
+ "@npmcli/node-gyp": "^3.0.0",
+ "@npmcli/package-json": "^4.0.0",
+ "@npmcli/query": "^3.1.0",
+ "@npmcli/run-script": "^6.0.0",
+ "bin-links": "^4.0.1",
+ "cacache": "^17.0.4",
+ "common-ancestor-path": "^1.0.1",
+ "hosted-git-info": "^6.1.1",
+ "json-parse-even-better-errors": "^3.0.0",
+ "json-stringify-nice": "^1.1.4",
+ "minimatch": "^9.0.0",
+ "nopt": "^7.0.0",
+ "npm-install-checks": "^6.2.0",
+ "npm-package-arg": "^10.1.0",
+ "npm-pick-manifest": "^8.0.1",
+ "npm-registry-fetch": "^14.0.3",
+ "npmlog": "^7.0.1",
+ "pacote": "^15.0.8",
+ "parse-conflict-json": "^3.0.0",
+ "proc-log": "^3.0.0",
+ "promise-all-reject-late": "^1.0.0",
+ "promise-call-limit": "^1.0.2",
+ "read-package-json-fast": "^3.0.2",
+ "semver": "^7.3.7",
+ "ssri": "^10.0.1",
+ "treeverse": "^3.0.0",
+ "walk-up-path": "^3.0.1"
+ },
+ "bin": {
+ "arborist": "bin/index.js"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/@npmcli/config": {
+ "version": "6.4.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/map-workspaces": "^3.0.2",
+ "ci-info": "^4.0.0",
+ "ini": "^4.1.0",
+ "nopt": "^7.0.0",
+ "proc-log": "^3.0.0",
+ "read-package-json-fast": "^3.0.2",
+ "semver": "^7.3.5",
+ "walk-up-path": "^3.0.1"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/@npmcli/disparity-colors": {
+ "version": "3.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "ansi-styles": "^4.3.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/@npmcli/fs": {
+ "version": "3.1.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/@npmcli/git": {
+ "version": "4.1.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/promise-spawn": "^6.0.0",
+ "lru-cache": "^7.4.4",
+ "npm-pick-manifest": "^8.0.0",
+ "proc-log": "^3.0.0",
+ "promise-inflight": "^1.0.1",
+ "promise-retry": "^2.0.1",
+ "semver": "^7.3.5",
+ "which": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/@npmcli/installed-package-contents": {
+ "version": "2.0.2",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "npm-bundled": "^3.0.0",
+ "npm-normalize-package-bin": "^3.0.0"
+ },
+ "bin": {
+ "installed-package-contents": "lib/index.js"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/@npmcli/map-workspaces": {
+ "version": "3.0.4",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/name-from-folder": "^2.0.0",
+ "glob": "^10.2.2",
+ "minimatch": "^9.0.0",
+ "read-package-json-fast": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/@npmcli/metavuln-calculator": {
+ "version": "5.0.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "cacache": "^17.0.0",
+ "json-parse-even-better-errors": "^3.0.0",
+ "pacote": "^15.0.0",
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/@npmcli/move-file": {
+ "version": "2.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "mkdirp": "^1.0.4",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/@npmcli/name-from-folder": {
+ "version": "2.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/@npmcli/node-gyp": {
+ "version": "3.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/@npmcli/package-json": {
+ "version": "4.0.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/git": "^4.1.0",
+ "glob": "^10.2.2",
+ "hosted-git-info": "^6.1.1",
+ "json-parse-even-better-errors": "^3.0.0",
+ "normalize-package-data": "^5.0.0",
+ "proc-log": "^3.0.0",
+ "semver": "^7.5.3"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/@npmcli/promise-spawn": {
+ "version": "6.0.2",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "which": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/@npmcli/query": {
+ "version": "3.1.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "postcss-selector-parser": "^6.0.10"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/@npmcli/run-script": {
+ "version": "6.0.2",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/node-gyp": "^3.0.0",
+ "@npmcli/promise-spawn": "^6.0.0",
+ "node-gyp": "^9.0.0",
+ "read-package-json-fast": "^3.0.0",
+ "which": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/@sigstore/bundle": {
+ "version": "1.1.0",
+ "inBundle": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@sigstore/protobuf-specs": "^0.2.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/@sigstore/protobuf-specs": {
+ "version": "0.2.1",
+ "inBundle": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/@sigstore/sign": {
+ "version": "1.0.0",
+ "inBundle": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@sigstore/bundle": "^1.1.0",
+ "@sigstore/protobuf-specs": "^0.2.0",
+ "make-fetch-happen": "^11.0.1"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/@sigstore/tuf": {
+ "version": "1.0.3",
+ "inBundle": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@sigstore/protobuf-specs": "^0.2.0",
+ "tuf-js": "^1.1.7"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/@tootallnate/once": {
+ "version": "2.0.0",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/@tufjs/canonical-json": {
+ "version": "1.0.0",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/@tufjs/models": {
+ "version": "1.0.4",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "@tufjs/canonical-json": "1.0.0",
+ "minimatch": "^9.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/abbrev": {
+ "version": "2.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/agent-base": {
+ "version": "6.0.2",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/agentkeepalive": {
+ "version": "4.5.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "humanize-ms": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 8.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/aggregate-error": {
+ "version": "3.1.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "clean-stack": "^2.0.0",
+ "indent-string": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/aproba": {
+ "version": "2.0.0",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "packages/hydra/node_modules/npm/node_modules/archy": {
+ "version": "1.0.0",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "packages/hydra/node_modules/npm/node_modules/are-we-there-yet": {
+ "version": "4.0.2",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "packages/hydra/node_modules/npm/node_modules/bin-links": {
+ "version": "4.0.3",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "cmd-shim": "^6.0.0",
+ "npm-normalize-package-bin": "^3.0.0",
+ "read-cmd-shim": "^4.0.0",
+ "write-file-atomic": "^5.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/binary-extensions": {
+ "version": "2.2.0",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/builtins": {
+ "version": "5.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "semver": "^7.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/cacache": {
+ "version": "17.1.4",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/fs": "^3.1.0",
+ "fs-minipass": "^3.0.0",
+ "glob": "^10.2.2",
+ "lru-cache": "^7.7.1",
+ "minipass": "^7.0.3",
+ "minipass-collect": "^1.0.2",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.4",
+ "p-map": "^4.0.0",
+ "ssri": "^10.0.0",
+ "tar": "^6.1.11",
+ "unique-filename": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/chalk": {
+ "version": "5.3.0",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/chownr": {
+ "version": "2.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/ci-info": {
+ "version": "4.0.0",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/cidr-regex": {
+ "version": "3.1.1",
+ "inBundle": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "ip-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/clean-stack": {
+ "version": "2.2.0",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/cli-columns": {
+ "version": "4.0.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/cli-table3": {
+ "version": "0.6.3",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "string-width": "^4.2.0"
+ },
+ "engines": {
+ "node": "10.* || >= 12.*"
+ },
+ "optionalDependencies": {
+ "@colors/colors": "1.5.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/clone": {
+ "version": "1.0.4",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/cmd-shim": {
+ "version": "6.0.2",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/color-convert": {
+ "version": "2.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/color-name": {
+ "version": "1.1.4",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "packages/hydra/node_modules/npm/node_modules/color-support": {
+ "version": "1.1.3",
+ "inBundle": true,
+ "license": "ISC",
+ "bin": {
+ "color-support": "bin.js"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/columnify": {
+ "version": "1.6.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "strip-ansi": "^6.0.1",
+ "wcwidth": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/common-ancestor-path": {
+ "version": "1.0.1",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "packages/hydra/node_modules/npm/node_modules/concat-map": {
+ "version": "0.0.1",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "packages/hydra/node_modules/npm/node_modules/console-control-strings": {
+ "version": "1.1.0",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "packages/hydra/node_modules/npm/node_modules/cross-spawn": {
+ "version": "7.0.6",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/cross-spawn/node_modules/which": {
+ "version": "2.0.2",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/cssesc": {
+ "version": "3.0.0",
+ "inBundle": true,
+ "license": "MIT",
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/debug": {
+ "version": "4.3.7",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/defaults": {
+ "version": "1.0.4",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "clone": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/delegates": {
+ "version": "1.0.0",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "packages/hydra/node_modules/npm/node_modules/diff": {
+ "version": "5.2.0",
+ "inBundle": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/eastasianwidth": {
+ "version": "0.2.0",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "packages/hydra/node_modules/npm/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "packages/hydra/node_modules/npm/node_modules/encoding": {
+ "version": "0.1.13",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "iconv-lite": "^0.6.2"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/env-paths": {
+ "version": "2.2.1",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/err-code": {
+ "version": "2.0.3",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "packages/hydra/node_modules/npm/node_modules/exponential-backoff": {
+ "version": "3.1.1",
+ "inBundle": true,
+ "license": "Apache-2.0"
+ },
+ "packages/hydra/node_modules/npm/node_modules/fastest-levenshtein": {
+ "version": "1.0.16",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4.9.1"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/foreground-child": {
+ "version": "3.1.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "cross-spawn": "^7.0.0",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/fs-minipass": {
+ "version": "3.0.3",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^7.0.3"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "packages/hydra/node_modules/npm/node_modules/function-bind": {
+ "version": "1.1.2",
+ "inBundle": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/gauge": {
+ "version": "5.0.1",
+ "inBundle": true,
+ "license": "ISC",
+ "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": "^4.0.1",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1",
+ "wide-align": "^1.1.5"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/glob": {
+ "version": "10.3.10",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^2.3.5",
+ "minimatch": "^9.0.1",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
+ "path-scurry": "^1.10.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "packages/hydra/node_modules/npm/node_modules/has-unicode": {
+ "version": "2.0.1",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "packages/hydra/node_modules/npm/node_modules/hasown": {
+ "version": "2.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/hosted-git-info": {
+ "version": "6.1.3",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "lru-cache": "^7.5.1"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/http-cache-semantics": {
+ "version": "4.1.1",
+ "inBundle": true,
+ "license": "BSD-2-Clause"
+ },
+ "packages/hydra/node_modules/npm/node_modules/http-proxy-agent": {
+ "version": "5.0.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "@tootallnate/once": "2",
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/https-proxy-agent": {
+ "version": "5.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/humanize-ms": {
+ "version": "1.2.1",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/iconv-lite": {
+ "version": "0.6.3",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/ignore-walk": {
+ "version": "6.0.4",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "minimatch": "^9.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/indent-string": {
+ "version": "4.0.0",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/infer-owner": {
+ "version": "1.0.4",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "packages/hydra/node_modules/npm/node_modules/inflight": {
+ "version": "1.0.6",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/inherits": {
+ "version": "2.0.4",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "packages/hydra/node_modules/npm/node_modules/ini": {
+ "version": "4.1.1",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/init-package-json": {
+ "version": "5.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "npm-package-arg": "^10.0.0",
+ "promzard": "^1.0.0",
+ "read": "^2.0.0",
+ "read-package-json": "^6.0.0",
+ "semver": "^7.3.5",
+ "validate-npm-package-license": "^3.0.4",
+ "validate-npm-package-name": "^5.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/ip-address": {
+ "version": "9.0.5",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "jsbn": "1.1.0",
+ "sprintf-js": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/ip-address/node_modules/sprintf-js": {
+ "version": "1.1.3",
+ "inBundle": true,
+ "license": "BSD-3-Clause"
+ },
+ "packages/hydra/node_modules/npm/node_modules/ip-regex": {
+ "version": "4.3.0",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/is-cidr": {
+ "version": "4.0.2",
+ "inBundle": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "cidr-regex": "^3.1.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/is-core-module": {
+ "version": "2.13.1",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/is-lambda": {
+ "version": "1.0.1",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "packages/hydra/node_modules/npm/node_modules/isexe": {
+ "version": "2.0.0",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "packages/hydra/node_modules/npm/node_modules/jackspeak": {
+ "version": "2.3.6",
+ "inBundle": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "@isaacs/cliui": "^8.0.2"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/jsbn": {
+ "version": "1.1.0",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "packages/hydra/node_modules/npm/node_modules/json-parse-even-better-errors": {
+ "version": "3.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/json-stringify-nice": {
+ "version": "1.1.4",
+ "inBundle": true,
+ "license": "ISC",
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/jsonparse": {
+ "version": "1.3.1",
+ "engines": [
+ "node >= 0.2.0"
+ ],
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "packages/hydra/node_modules/npm/node_modules/just-diff": {
+ "version": "6.0.2",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "packages/hydra/node_modules/npm/node_modules/just-diff-apply": {
+ "version": "5.5.0",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "packages/hydra/node_modules/npm/node_modules/libnpmaccess": {
+ "version": "7.0.3",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "npm-package-arg": "^10.1.0",
+ "npm-registry-fetch": "^14.0.3"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/libnpmdiff": {
+ "version": "5.0.21",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/arborist": "^6.5.0",
+ "@npmcli/disparity-colors": "^3.0.0",
+ "@npmcli/installed-package-contents": "^2.0.2",
+ "binary-extensions": "^2.2.0",
+ "diff": "^5.1.0",
+ "minimatch": "^9.0.0",
+ "npm-package-arg": "^10.1.0",
+ "pacote": "^15.0.8",
+ "tar": "^6.1.13"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/libnpmexec": {
+ "version": "6.0.5",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/arborist": "^6.5.0",
+ "@npmcli/run-script": "^6.0.0",
+ "ci-info": "^4.0.0",
+ "npm-package-arg": "^10.1.0",
+ "npmlog": "^7.0.1",
+ "pacote": "^15.0.8",
+ "proc-log": "^3.0.0",
+ "read": "^2.0.0",
+ "read-package-json-fast": "^3.0.2",
+ "semver": "^7.3.7",
+ "walk-up-path": "^3.0.1"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/libnpmfund": {
+ "version": "4.2.2",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/arborist": "^6.5.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/libnpmhook": {
+ "version": "9.0.4",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "aproba": "^2.0.0",
+ "npm-registry-fetch": "^14.0.3"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/libnpmorg": {
+ "version": "5.0.5",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "aproba": "^2.0.0",
+ "npm-registry-fetch": "^14.0.3"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/libnpmpack": {
+ "version": "5.0.21",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/arborist": "^6.5.0",
+ "@npmcli/run-script": "^6.0.0",
+ "npm-package-arg": "^10.1.0",
+ "pacote": "^15.0.8"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/libnpmpublish": {
+ "version": "7.5.2",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "ci-info": "^4.0.0",
+ "normalize-package-data": "^5.0.0",
+ "npm-package-arg": "^10.1.0",
+ "npm-registry-fetch": "^14.0.3",
+ "proc-log": "^3.0.0",
+ "semver": "^7.3.7",
+ "sigstore": "^1.4.0",
+ "ssri": "^10.0.1"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/libnpmsearch": {
+ "version": "6.0.3",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "npm-registry-fetch": "^14.0.3"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/libnpmteam": {
+ "version": "5.0.4",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "aproba": "^2.0.0",
+ "npm-registry-fetch": "^14.0.3"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/libnpmversion": {
+ "version": "4.0.3",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/git": "^4.0.1",
+ "@npmcli/run-script": "^6.0.0",
+ "json-parse-even-better-errors": "^3.0.0",
+ "proc-log": "^3.0.0",
+ "semver": "^7.3.7"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/lru-cache": {
+ "version": "7.18.3",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/make-fetch-happen": {
+ "version": "11.1.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "agentkeepalive": "^4.2.1",
+ "cacache": "^17.0.0",
+ "http-cache-semantics": "^4.1.1",
+ "http-proxy-agent": "^5.0.0",
+ "https-proxy-agent": "^5.0.0",
+ "is-lambda": "^1.0.1",
+ "lru-cache": "^7.7.1",
+ "minipass": "^5.0.0",
+ "minipass-fetch": "^3.0.0",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.4",
+ "negotiator": "^0.6.3",
+ "promise-retry": "^2.0.1",
+ "socks-proxy-agent": "^7.0.0",
+ "ssri": "^10.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/make-fetch-happen/node_modules/minipass": {
+ "version": "5.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/minimatch": {
+ "version": "9.0.3",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/minipass": {
+ "version": "7.0.4",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/minipass-collect": {
+ "version": "1.0.2",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/minipass-collect/node_modules/minipass": {
+ "version": "3.3.6",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/minipass-fetch": {
+ "version": "3.0.4",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "minipass": "^7.0.3",
+ "minipass-sized": "^1.0.3",
+ "minizlib": "^2.1.2"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ },
+ "optionalDependencies": {
+ "encoding": "^0.1.13"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/minipass-flush": {
+ "version": "1.0.5",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/minipass-flush/node_modules/minipass": {
+ "version": "3.3.6",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/minipass-json-stream": {
+ "version": "1.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "jsonparse": "^1.3.1",
+ "minipass": "^3.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/minipass-json-stream/node_modules/minipass": {
+ "version": "3.3.6",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/minipass-pipeline": {
+ "version": "1.2.4",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": {
+ "version": "3.3.6",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/minipass-sized": {
+ "version": "1.0.3",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/minipass-sized/node_modules/minipass": {
+ "version": "3.3.6",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/minizlib": {
+ "version": "2.1.2",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "minipass": "^3.0.0",
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/minizlib/node_modules/minipass": {
+ "version": "3.3.6",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/mkdirp": {
+ "version": "1.0.4",
+ "inBundle": true,
+ "license": "MIT",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/ms": {
+ "version": "2.1.3",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "packages/hydra/node_modules/npm/node_modules/mute-stream": {
+ "version": "1.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/negotiator": {
+ "version": "0.6.3",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/node-gyp": {
+ "version": "9.4.1",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "env-paths": "^2.2.0",
+ "exponential-backoff": "^3.1.1",
+ "glob": "^7.1.4",
+ "graceful-fs": "^4.2.6",
+ "make-fetch-happen": "^10.0.3",
+ "nopt": "^6.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": "^12.13 || ^14.13 || >=16"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/node-gyp/node_modules/@npmcli/fs": {
+ "version": "2.1.2",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@gar/promisify": "^1.1.3",
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/node-gyp/node_modules/abbrev": {
+ "version": "1.1.1",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "packages/hydra/node_modules/npm/node_modules/node-gyp/node_modules/are-we-there-yet": {
+ "version": "3.0.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^3.6.0"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/node-gyp/node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/node-gyp/node_modules/cacache": {
+ "version": "16.1.3",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/fs": "^2.1.0",
+ "@npmcli/move-file": "^2.0.0",
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.1.0",
+ "glob": "^8.0.1",
+ "infer-owner": "^1.0.4",
+ "lru-cache": "^7.7.1",
+ "minipass": "^3.1.6",
+ "minipass-collect": "^1.0.2",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.4",
+ "mkdirp": "^1.0.4",
+ "p-map": "^4.0.0",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^3.0.2",
+ "ssri": "^9.0.0",
+ "tar": "^6.1.11",
+ "unique-filename": "^2.0.0"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob": {
+ "version": "8.1.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^5.0.1",
+ "once": "^1.3.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch": {
+ "version": "5.1.6",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/node-gyp/node_modules/fs-minipass": {
+ "version": "2.1.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/node-gyp/node_modules/gauge": {
+ "version": "4.0.4",
+ "inBundle": true,
+ "license": "ISC",
+ "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"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/node-gyp/node_modules/glob": {
+ "version": "7.2.3",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/node-gyp/node_modules/make-fetch-happen": {
+ "version": "10.2.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "agentkeepalive": "^4.2.1",
+ "cacache": "^16.1.0",
+ "http-cache-semantics": "^4.1.0",
+ "http-proxy-agent": "^5.0.0",
+ "https-proxy-agent": "^5.0.0",
+ "is-lambda": "^1.0.1",
+ "lru-cache": "^7.7.1",
+ "minipass": "^3.1.6",
+ "minipass-collect": "^1.0.2",
+ "minipass-fetch": "^2.0.3",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.4",
+ "negotiator": "^0.6.3",
+ "promise-retry": "^2.0.1",
+ "socks-proxy-agent": "^7.0.0",
+ "ssri": "^9.0.0"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/node-gyp/node_modules/minimatch": {
+ "version": "3.1.2",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/node-gyp/node_modules/minipass": {
+ "version": "3.3.6",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/node-gyp/node_modules/minipass-fetch": {
+ "version": "2.1.2",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "minipass": "^3.1.6",
+ "minipass-sized": "^1.0.3",
+ "minizlib": "^2.1.2"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ },
+ "optionalDependencies": {
+ "encoding": "^0.1.13"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/node-gyp/node_modules/nopt": {
+ "version": "6.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "abbrev": "^1.0.0"
+ },
+ "bin": {
+ "nopt": "bin/nopt.js"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/node-gyp/node_modules/npmlog": {
+ "version": "6.0.2",
+ "inBundle": true,
+ "license": "ISC",
+ "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"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/node-gyp/node_modules/signal-exit": {
+ "version": "3.0.7",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "packages/hydra/node_modules/npm/node_modules/node-gyp/node_modules/ssri": {
+ "version": "9.0.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^3.1.1"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/node-gyp/node_modules/unique-filename": {
+ "version": "2.0.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "unique-slug": "^3.0.0"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/node-gyp/node_modules/unique-slug": {
+ "version": "3.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "imurmurhash": "^0.1.4"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/node-gyp/node_modules/which": {
+ "version": "2.0.2",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/nopt": {
+ "version": "7.2.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "abbrev": "^2.0.0"
+ },
+ "bin": {
+ "nopt": "bin/nopt.js"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/normalize-package-data": {
+ "version": "5.0.0",
+ "inBundle": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "hosted-git-info": "^6.0.0",
+ "is-core-module": "^2.8.1",
+ "semver": "^7.3.5",
+ "validate-npm-package-license": "^3.0.4"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/npm-audit-report": {
+ "version": "5.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/npm-bundled": {
+ "version": "3.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "npm-normalize-package-bin": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/npm-install-checks": {
+ "version": "6.3.0",
+ "inBundle": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "semver": "^7.1.1"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/npm-normalize-package-bin": {
+ "version": "3.0.1",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/npm-package-arg": {
+ "version": "10.1.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "hosted-git-info": "^6.0.0",
+ "proc-log": "^3.0.0",
+ "semver": "^7.3.5",
+ "validate-npm-package-name": "^5.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/npm-packlist": {
+ "version": "7.0.4",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "ignore-walk": "^6.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/npm-pick-manifest": {
+ "version": "8.0.2",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "npm-install-checks": "^6.0.0",
+ "npm-normalize-package-bin": "^3.0.0",
+ "npm-package-arg": "^10.0.0",
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/npm-profile": {
+ "version": "7.0.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "npm-registry-fetch": "^14.0.0",
+ "proc-log": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/npm-registry-fetch": {
+ "version": "14.0.5",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "make-fetch-happen": "^11.0.0",
+ "minipass": "^5.0.0",
+ "minipass-fetch": "^3.0.0",
+ "minipass-json-stream": "^1.0.1",
+ "minizlib": "^2.1.2",
+ "npm-package-arg": "^10.0.0",
+ "proc-log": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/npm-registry-fetch/node_modules/minipass": {
+ "version": "5.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/npm-user-validate": {
+ "version": "2.0.0",
+ "inBundle": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/npmlog": {
+ "version": "7.0.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "are-we-there-yet": "^4.0.0",
+ "console-control-strings": "^1.1.0",
+ "gauge": "^5.0.0",
+ "set-blocking": "^2.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/once": {
+ "version": "1.4.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/p-map": {
+ "version": "4.0.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "aggregate-error": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/pacote": {
+ "version": "15.2.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/git": "^4.0.0",
+ "@npmcli/installed-package-contents": "^2.0.1",
+ "@npmcli/promise-spawn": "^6.0.1",
+ "@npmcli/run-script": "^6.0.0",
+ "cacache": "^17.0.0",
+ "fs-minipass": "^3.0.0",
+ "minipass": "^5.0.0",
+ "npm-package-arg": "^10.0.0",
+ "npm-packlist": "^7.0.0",
+ "npm-pick-manifest": "^8.0.0",
+ "npm-registry-fetch": "^14.0.0",
+ "proc-log": "^3.0.0",
+ "promise-retry": "^2.0.1",
+ "read-package-json": "^6.0.0",
+ "read-package-json-fast": "^3.0.0",
+ "sigstore": "^1.3.0",
+ "ssri": "^10.0.0",
+ "tar": "^6.1.11"
+ },
+ "bin": {
+ "pacote": "lib/bin.js"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/pacote/node_modules/minipass": {
+ "version": "5.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/parse-conflict-json": {
+ "version": "3.0.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "json-parse-even-better-errors": "^3.0.0",
+ "just-diff": "^6.0.0",
+ "just-diff-apply": "^5.2.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/path-key": {
+ "version": "3.1.1",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/path-scurry": {
+ "version": "1.10.1",
+ "inBundle": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "lru-cache": "^9.1.1 || ^10.0.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/path-scurry/node_modules/lru-cache": {
+ "version": "10.2.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "14 || >=16.14"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/postcss-selector-parser": {
+ "version": "6.0.15",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/proc-log": {
+ "version": "3.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/promise-all-reject-late": {
+ "version": "1.0.1",
+ "inBundle": true,
+ "license": "ISC",
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/promise-call-limit": {
+ "version": "1.0.2",
+ "inBundle": true,
+ "license": "ISC",
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/promise-inflight": {
+ "version": "1.0.1",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "packages/hydra/node_modules/npm/node_modules/promise-retry": {
+ "version": "2.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "err-code": "^2.0.2",
+ "retry": "^0.12.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/promzard": {
+ "version": "1.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "read": "^2.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/qrcode-terminal": {
+ "version": "0.12.0",
+ "inBundle": true,
+ "bin": {
+ "qrcode-terminal": "bin/qrcode-terminal.js"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/read": {
+ "version": "2.1.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "mute-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/read-cmd-shim": {
+ "version": "4.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/read-package-json": {
+ "version": "6.0.4",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "glob": "^10.2.2",
+ "json-parse-even-better-errors": "^3.0.0",
+ "normalize-package-data": "^5.0.0",
+ "npm-normalize-package-bin": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/read-package-json-fast": {
+ "version": "3.0.2",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "json-parse-even-better-errors": "^3.0.0",
+ "npm-normalize-package-bin": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/readable-stream": {
+ "version": "3.6.2",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/retry": {
+ "version": "0.12.0",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/rimraf": {
+ "version": "3.0.2",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/rimraf/node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/rimraf/node_modules/glob": {
+ "version": "7.2.3",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/rimraf/node_modules/minimatch": {
+ "version": "3.1.2",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "packages/hydra/node_modules/npm/node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "packages/hydra/node_modules/npm/node_modules/semver": {
+ "version": "7.6.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/semver/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/set-blocking": {
+ "version": "2.0.0",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "packages/hydra/node_modules/npm/node_modules/shebang-command": {
+ "version": "2.0.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/signal-exit": {
+ "version": "4.1.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/sigstore": {
+ "version": "1.9.0",
+ "inBundle": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@sigstore/bundle": "^1.1.0",
+ "@sigstore/protobuf-specs": "^0.2.0",
+ "@sigstore/sign": "^1.0.0",
+ "@sigstore/tuf": "^1.0.3",
+ "make-fetch-happen": "^11.0.1"
+ },
+ "bin": {
+ "sigstore": "bin/sigstore.js"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/smart-buffer": {
+ "version": "4.2.0",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6.0.0",
+ "npm": ">= 3.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/socks": {
+ "version": "2.8.1",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "ip-address": "^9.0.5",
+ "smart-buffer": "^4.2.0"
+ },
+ "engines": {
+ "node": ">= 10.0.0",
+ "npm": ">= 3.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/socks-proxy-agent": {
+ "version": "7.0.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "agent-base": "^6.0.2",
+ "debug": "^4.3.3",
+ "socks": "^2.6.2"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/spdx-correct": {
+ "version": "3.2.0",
+ "inBundle": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/spdx-exceptions": {
+ "version": "2.5.0",
+ "inBundle": true,
+ "license": "CC-BY-3.0"
+ },
+ "packages/hydra/node_modules/npm/node_modules/spdx-expression-parse": {
+ "version": "3.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/spdx-license-ids": {
+ "version": "3.0.17",
+ "inBundle": true,
+ "license": "CC0-1.0"
+ },
+ "packages/hydra/node_modules/npm/node_modules/ssri": {
+ "version": "10.0.5",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^7.0.3"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/string_decoder": {
+ "version": "1.3.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/string-width": {
+ "version": "4.2.3",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/string-width-cjs": {
+ "name": "string-width",
+ "version": "4.2.3",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/strip-ansi-cjs": {
+ "name": "strip-ansi",
+ "version": "6.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/supports-color": {
+ "version": "9.4.0",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/tar": {
+ "version": "6.2.1",
+ "inBundle": true,
+ "license": "ISC",
+ "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"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/tar/node_modules/fs-minipass": {
+ "version": "2.1.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": {
+ "version": "3.3.6",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/tar/node_modules/minipass": {
+ "version": "5.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/text-table": {
+ "version": "0.2.0",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "packages/hydra/node_modules/npm/node_modules/tiny-relative-date": {
+ "version": "1.3.0",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "packages/hydra/node_modules/npm/node_modules/treeverse": {
+ "version": "3.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/tuf-js": {
+ "version": "1.1.7",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "@tufjs/models": "1.0.4",
+ "debug": "^4.3.4",
+ "make-fetch-happen": "^11.1.1"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/unique-filename": {
+ "version": "3.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "unique-slug": "^4.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/unique-slug": {
+ "version": "4.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "imurmurhash": "^0.1.4"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "packages/hydra/node_modules/npm/node_modules/validate-npm-package-license": {
+ "version": "3.0.4",
+ "inBundle": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/validate-npm-package-name": {
+ "version": "5.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "builtins": "^5.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/walk-up-path": {
+ "version": "3.0.1",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "packages/hydra/node_modules/npm/node_modules/wcwidth": {
+ "version": "1.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "defaults": "^1.0.3"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/which": {
+ "version": "3.0.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/which.js"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/wide-align": {
+ "version": "1.1.5",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^1.0.2 || 2 || 3 || 4"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/wrap-ansi": {
+ "version": "8.1.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/wrap-ansi-cjs": {
+ "name": "wrap-ansi",
+ "version": "7.0.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": {
+ "version": "6.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-styles": {
+ "version": "6.2.1",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "packages/hydra/node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": {
+ "version": "5.1.2",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/wrappy": {
+ "version": "1.0.2",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "packages/hydra/node_modules/npm/node_modules/write-file-atomic": {
+ "version": "5.0.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "packages/hydra/node_modules/npm/node_modules/yallist": {
+ "version": "4.0.0",
+ "inBundle": true,
+ "license": "ISC"
+ },
"packages/mesh-common": {
"name": "@meshsdk/common",
"version": "1.9.0-beta.5",
diff --git a/packages/hydra/README.md b/packages/hydra/README.md
new file mode 100644
index 000000000..3fbb596cb
--- /dev/null
+++ b/packages/hydra/README.md
@@ -0,0 +1,9 @@
+# mesh-hydra
+
+[meshjs.dev](https://meshjs.dev/)
+
+## Get started
+
+```bash
+npm install @meshsdk/hydra
+```
diff --git a/packages/hydra/package.json b/packages/hydra/package.json
new file mode 100644
index 000000000..91f005599
--- /dev/null
+++ b/packages/hydra/package.json
@@ -0,0 +1,41 @@
+{
+ "name": "@meshsdk/hydra",
+ "version": "1.9.0-beta.5",
+ "description": "Mesh Hydra package",
+ "main": "./dist/index.cjs",
+ "browser": "./dist/index.js",
+ "module": "./dist/index.js",
+ "types": "./dist/index.d.ts",
+ "type": "module",
+ "exports": {
+ ".": {
+ "types": "./dist/index.d.ts",
+ "import": "./dist/index.js",
+ "require": "./dist/index.cjs"
+ }
+ },
+ "files": [
+ "dist/**"
+ ],
+ "scripts": {
+ "build:mesh": "tsup src/index.ts --format esm,cjs --dts",
+ "clean": "rm -rf .turbo && rm -rf dist && rm -rf node_modules",
+ "dev": "tsup src/index.ts --format esm,cjs --watch --dts",
+ "format": "prettier --check . --ignore-path ../../.gitignore",
+ "lint": "eslint",
+ "pack": "npm pack --pack-destination=./dist",
+ "test": "jest"
+ },
+ "dependencies": {
+ "@meshsdk/common": "1.9.0-beta.1",
+ "@meshsdk/core-cst": "1.9.0-beta.1",
+ "axios": "^1.7.2"
+ },
+ "devDependencies": {
+ "@meshsdk/configs": "*",
+ "@swc/core": "^1.10.7",
+ "eslint": "^8.57.0",
+ "tsup": "^8.0.2",
+ "typescript": "^5.3.3"
+ }
+}
diff --git a/packages/mesh-provider/src/hydra/constants/index.ts b/packages/hydra/src/constants/index.ts
similarity index 100%
rename from packages/mesh-provider/src/hydra/constants/index.ts
rename to packages/hydra/src/constants/index.ts
diff --git a/packages/mesh-provider/src/hydra/convertor.ts b/packages/hydra/src/convertor.ts
similarity index 100%
rename from packages/mesh-provider/src/hydra/convertor.ts
rename to packages/hydra/src/convertor.ts
diff --git a/packages/mesh-provider/src/hydra/hydra-connection.ts b/packages/hydra/src/hydra-connection.ts
similarity index 96%
rename from packages/mesh-provider/src/hydra/hydra-connection.ts
rename to packages/hydra/src/hydra-connection.ts
index 4c5579639..4a2dfafd3 100644
--- a/packages/mesh-provider/src/hydra/hydra-connection.ts
+++ b/packages/hydra/src/hydra-connection.ts
@@ -48,8 +48,7 @@ export class HydraConnection extends EventEmitter {
console.error("Hydra websocket closed", code);
};
this._websocket.onmessage = (data) => {
- // console.log("Received message", JSON.parse(data.data));
- const message = JSON.parse(data.data);
+ const message = JSON.parse(data.data as string);
this._eventEmitter.emit("onmessage", message);
this.processStatus(message);
};
diff --git a/packages/hydra/src/hydra-instance.ts b/packages/hydra/src/hydra-instance.ts
new file mode 100644
index 000000000..2a18d8d16
--- /dev/null
+++ b/packages/hydra/src/hydra-instance.ts
@@ -0,0 +1,58 @@
+import { HydraProvider } from "./hydra-provider";
+
+/**
+ * todo: implement https://hydra.family/head-protocol/docs/tutorial/
+ */
+export class HydraInstance {
+ provider: HydraProvider;
+
+ constructor({ provider }: { provider: HydraProvider }) {
+ this.provider = provider;
+ }
+
+ /**
+ * To commit funds to the head, choose which UTxO you would like to make available on layer 2.
+ */
+ async commitFunds() {
+ // cardano-cli query utxo \
+ // --address $(cat credentials/bob-funds.addr) \
+ // --out-file bob-commit-utxo.json
+ // curl -X POST 127.0.0.1:4002/commit \
+ // --data @bob-commit-utxo.json \
+ // > bob-commit-tx.json
+ // cardano-cli transaction sign \
+ // --tx-file bob-commit-tx.json \
+ // --signing-key-file credentials/bob-funds.sk \
+ // --out-file bob-commit-tx-signed.json
+ // cardano-cli transaction submit --tx-file bob-commit-tx-signed.json
+ }
+
+ /**
+ * https://hydra.family/head-protocol/docs/how-to/commit-blueprint/
+ *
+ * If you don't want to commit any funds and only want to receive on layer two, you can request an empty commit transaction.:
+ * @returns
+ */
+ async commitBlueprint() {
+ return "txHash";
+ }
+
+ /**
+ * https://hydra.family/head-protocol/unstable/docs/how-to/incremental-commit
+ *
+ * If you don't want to commit any funds and only want to receive on layer two, you can request an empty commit transaction.:
+ * @returns
+ */
+ async incrementalCommit() {
+ return "txHash";
+ }
+
+ /**
+ * https://hydra.family/head-protocol/docs/how-to/incremental-decommit
+ *
+ * @returns
+ */
+ async incrementalDecommit() {
+ return "txHash";
+ }
+}
diff --git a/packages/mesh-provider/src/hydra/hydra-provider.ts b/packages/hydra/src/hydra-provider.ts
similarity index 57%
rename from packages/mesh-provider/src/hydra/hydra-provider.ts
rename to packages/hydra/src/hydra-provider.ts
index ce7f1caa5..90fad5af5 100644
--- a/packages/mesh-provider/src/hydra/hydra-provider.ts
+++ b/packages/hydra/src/hydra-provider.ts
@@ -15,18 +15,43 @@ import {
UTxO,
} from "@meshsdk/common";
-import { parseHttpError } from "../utils";
+import { parseHttpError } from "./utils";
import { toUTxO } from "./convertor";
import { HydraConnection } from "./hydra-connection";
-import { IHydraTransaction } from "./interfaces";
-import { HydraStatus, HydraUTxO } from "./types";
+import { HydraStatus, HydraTransaction, HydraUTxO } from "./types";
+import {
+ CommandFailed,
+ Committed,
+ DecommitApproved,
+ DecommitFinalized,
+ DecommitInvalid,
+ DecommitRequested,
+ GetUTxOResponse,
+ Greetings,
+ HeadIsAborted,
+ HeadIsClosed,
+ HeadIsContested,
+ HeadIsFinalized,
+ HeadIsInitializing,
+ HeadIsOpen,
+ IgnoredHeadInitializing,
+ InvalidInput,
+ PeerConnected,
+ PeerDisconnected,
+ PeerHandshakeFailure,
+ PostTxOnChainFailed,
+ ReadyToFanout,
+ SnapshotConfirmed,
+ TxInvalid,
+ TxValid,
+} from "./types/events";
/**
* HydraProvider is a tool for administrating & interacting with Hydra Heads.
*
* Usage:
* ```
- * import { HydraProvider } from "@meshsdk/core";
+ * import { HydraProvider } from "@meshsdk/hydra";
*
* const hydraProvider = new HydraProvider({url:'http://123.45.67.890:4001'});
*/
@@ -170,6 +195,24 @@ export class HydraProvider implements IFetcher, ISubmitter {
}
}
+ /**
+ * A generic method to post data to a URL.
+ * @param url - The URL to post data to
+ * @param payload - The data to post
+ * @returns - The response from the URL
+ */
+ async post(url: string, payload: any): Promise {
+ try {
+ const { data, status } = await this._axiosInstance.post(url, payload);
+ if (status === 200 || status == 202) {
+ return data;
+ }
+ throw parseHttpError(data);
+ } catch (error) {
+ throw parseHttpError(error);
+ }
+ }
+
/**
* Submit a transaction to the Hydra node. Note, unlike other providers, Hydra does not return a transaction hash.
* @param tx - The transaction in CBOR hex format
@@ -177,13 +220,15 @@ export class HydraProvider implements IFetcher, ISubmitter {
async submitTx(tx: string): Promise {
try {
await this.newTx(tx, "Witnessed Tx ConwayEra");
-
const txId = await new Promise((resolve) => {
this.onMessage((message) => {
- if (message.transaction && message.transaction.cborHex === tx) {
- if (message.tag === "TxValid") {
- resolve(message.transaction.txId);
- } else if (message.tag == "TxInvalid") {
+ if (message.tag === "TxValid") {
+ if (message.transaction && message.transaction.cborHex === tx) {
+ resolve(message.transaction.txId!);
+ }
+ }
+ if (message.tag === "TxInvalid") {
+ if (message.transaction && message.transaction.cborHex === tx) {
throw JSON.stringify(message.validationError);
}
}
@@ -195,6 +240,20 @@ export class HydraProvider implements IFetcher, ISubmitter {
}
}
+ /**
+ * Commands sent to the Hydra node.
+ * https://hydra.family/head-protocol/api-reference/#operation-publish-/
+ *
+ * Accepts one of the following commands:
+ * - Init: init()
+ * - Abort: abort()
+ * - NewTx: newTx()
+ * - Decommit: decommit()
+ * - Close: close()
+ * - Contest: contest()
+ * - Fanout: fanout()
+ */
+
/**
* Initializes a new Head. This command is a no-op when a Head is already open and the server will output an CommandFailed message should this happen.
*/
@@ -225,7 +284,7 @@ export class HydraProvider implements IFetcher, ISubmitter {
description = "",
txId?: string,
) {
- const transaction: IHydraTransaction = {
+ const transaction: HydraTransaction = {
type: type,
description: description,
cborHex: cborHex,
@@ -289,8 +348,138 @@ export class HydraProvider implements IFetcher, ISubmitter {
this._connection.send(data);
}
- onMessage(callback: (message: any) => void) {
- this._eventEmitter.on("onmessage", callback);
+ // todo: is this function https://hydra.family/head-protocol/api-reference/#operation-publish-/commit the same as the POST?
+ // curl -X POST 127.0.0.1:4001/commit \
+ // --data @alice-commit-utxo.json \
+ // > alice-commit-tx.json
+ /**
+ * Draft a commit transaction, which can be completed and later submitted to the L1 network.
+ * https://hydra.family/head-protocol/api-reference/#operation-publish-/commit
+ */
+ async commit(){
+ await this.post("/commit", {
+ // todo --data @alice-commit-utxo.json
+ });
+ // return alice-commit-tx.json
+
+// If you don't want to commit any funds and only want to receive on layer two, you can request an empty commit transaction as shown below (example for bob):
+// curl -X POST 127.0.0.1:4002/commit --data "{}" > bob-commit-tx.json
+// cardano-cli transaction submit --tx-file bob-commit-tx.json
+ }
+
+ /**
+ * Events emitted by the Hydra node.
+ * https://hydra.family/head-protocol/api-reference/#operation-subscribe-/
+ *
+ * @param callback - The callback function to be called when a message is received
+ */
+ onMessage(
+ callback: (
+ data:
+ | Greetings
+ | PeerConnected
+ | PeerDisconnected
+ | PeerHandshakeFailure
+ | HeadIsInitializing
+ | Committed
+ | HeadIsOpen
+ | HeadIsClosed
+ | HeadIsContested
+ | ReadyToFanout
+ | HeadIsAborted
+ | HeadIsFinalized
+ | TxValid
+ | TxInvalid
+ | SnapshotConfirmed
+ | GetUTxOResponse
+ | InvalidInput
+ | PostTxOnChainFailed
+ | CommandFailed
+ | IgnoredHeadInitializing
+ | DecommitInvalid
+ | DecommitRequested
+ | DecommitApproved
+ | DecommitFinalized,
+ ) => void,
+ ) {
+ this._eventEmitter.on("onmessage", (message) => {
+ switch (message.tag) {
+ case "Greetings":
+ callback(message as Greetings);
+ break;
+ case "PeerConnected":
+ callback(message as PeerConnected);
+ break;
+ case "onPeerDisconnected":
+ callback(message as PeerDisconnected);
+ break;
+ case "PeerHandshakeFailure":
+ callback(message as PeerHandshakeFailure);
+ break;
+ case "HeadIsInitializing":
+ callback(message as HeadIsInitializing);
+ break;
+ case "Committed":
+ callback(message as Committed);
+ break;
+ case "HeadIsOpen":
+ callback(message as HeadIsOpen);
+ break;
+ case "HeadIsClosed":
+ callback(message as HeadIsClosed);
+ break;
+ case "HeadIsContested":
+ callback(message as HeadIsContested);
+ break;
+ case "ReadyToFanout":
+ callback(message as ReadyToFanout);
+ break;
+ case "HeadIsAborted":
+ callback(message as HeadIsAborted);
+ break;
+ case "HeadIsFinalized":
+ callback(message as HeadIsFinalized);
+ break;
+ case "TxValid":
+ callback(message as TxValid);
+ break;
+ case "TxInvalid":
+ callback(message as TxInvalid);
+ break;
+ case "SnapshotConfirmed":
+ callback(message as SnapshotConfirmed);
+ break;
+ case "GetUTxOResponse":
+ callback(message as GetUTxOResponse);
+ break;
+ case "InvalidInput":
+ callback(message as InvalidInput);
+ break;
+ case "PostTxOnChainFailed":
+ callback(message as PostTxOnChainFailed);
+ break;
+ case "CommandFailed":
+ callback(message as CommandFailed);
+ break;
+ case "IgnoredHeadInitializing":
+ callback(message as IgnoredHeadInitializing);
+ break;
+ case "DecommitInvalid":
+ callback(message as DecommitInvalid);
+ break;
+ case "DecommitRequested":
+ callback(message as DecommitRequested);
+ break;
+ case "DecommitApproved":
+ callback(message as DecommitApproved);
+ break;
+ case "DecommitFinalized":
+ callback(message as DecommitFinalized);
+ break;
+ default:
+ break;
+ }
+ });
}
onStatusChange(callback: (status: HydraStatus) => void) {
diff --git a/packages/mesh-provider/src/hydra/index.ts b/packages/hydra/src/index.ts
similarity index 100%
rename from packages/mesh-provider/src/hydra/index.ts
rename to packages/hydra/src/index.ts
diff --git a/packages/hydra/src/types/events.ts b/packages/hydra/src/types/events.ts
new file mode 100644
index 000000000..48bd54d92
--- /dev/null
+++ b/packages/hydra/src/types/events.ts
@@ -0,0 +1,236 @@
+import {
+ HydraParty,
+ HydraSnapshot,
+ HydraTransaction,
+ HydraUTxOs,
+} from "../types";
+import { PostChainTx } from "./hydra-post-chain-tx";
+
+export type Greetings = {
+ tag: "Greetings";
+ me: {
+ vkey: string;
+ };
+ headStatus:
+ | "Idle"
+ | "Initializing"
+ | "Open"
+ | "Closed"
+ | "FanoutPossible"
+ | "Final";
+ hydraHeadId: string;
+ snapshotUtxo: HydraUTxOs;
+ timestamp: string;
+ hydraNodeVersion: string;
+};
+
+export type PeerConnected = {
+ tag: "PeerConnected";
+ peer: string;
+ seq: number;
+ timestamp: string;
+};
+
+export type PeerDisconnected = {
+ tag: "PeerDisconnected";
+ peer: string;
+ seq: number;
+ timestamp: string;
+};
+
+export type PeerHandshakeFailure = {
+ tag: "PeerHandshakeFailure";
+ remoteHost:
+ | {
+ tag: "IPv4";
+ ipv4: string;
+ }
+ | {
+ tag: "IPv6";
+ ipv6: string;
+ };
+ ourVersion: number;
+ theirVersions: number[];
+ seq: number;
+ timestamp: string;
+};
+
+export type HeadIsInitializing = {
+ tag: "HeadIsInitializing";
+ headId: string;
+ parties: HydraParty[];
+ seq: number;
+ timestamp: string;
+};
+
+export type Committed = {
+ tag: "Committed";
+ parties: HydraParty[];
+ utxo: HydraUTxOs;
+ seq: number;
+ timestamp: string;
+};
+
+export type HeadIsOpen = {
+ tag: "HeadIsOpen";
+ headId: string;
+ utxo: HydraUTxOs;
+ seq: number;
+ timestamp: string;
+};
+
+export type HeadIsClosed = {
+ tag: "HeadIsClosed";
+ headId: string;
+ snapshotNumber: number;
+ contestationDeadline: string;
+ seq: number;
+ timestamp: string;
+};
+
+export type HeadIsContested = {
+ tag: "HeadIsContested";
+ headId: string;
+ snapshotNumber: number;
+ contestationDeadline: string;
+ seq: number;
+ timestamp: string;
+};
+
+export type ReadyToFanout = {
+ tag: "ReadyToFanout";
+ headId: string;
+ seq: number;
+ timestamp: string;
+};
+
+export type HeadIsAborted = {
+ tag: "HeadIsAborted";
+ headId: string;
+ utxo: HydraUTxOs;
+ seq: number;
+ timestamp: string;
+};
+
+export type HeadIsFinalized = {
+ tag: "HeadIsFinalized";
+ headId: string;
+ utxo: HydraUTxOs;
+ seq: number;
+ timestamp: string;
+};
+
+export type TxValid = {
+ tag: "TxValid";
+ headId: string;
+ transaction: HydraTransaction;
+ seq: number;
+ timestamp: string;
+};
+
+export type TxInvalid = {
+ tag: "TxInvalid";
+ headId: string;
+ utxo: HydraUTxOs;
+ transaction: HydraTransaction;
+ validationError: { reason: string };
+ seq: number;
+ timestamp: string;
+};
+
+export type SnapshotConfirmed = {
+ tag: "SnapshotConfirmed";
+ headId: string;
+ snapshot: HydraSnapshot;
+ seq: number;
+ timestamp: string;
+};
+
+export type GetUTxOResponse = {
+ tag: "GetUTxOResponse";
+ headId: string;
+ utxo: HydraUTxOs;
+ seq: number;
+ timestamp: string;
+};
+
+export type InvalidInput = {
+ tag: "InvalidInput";
+ reason: string;
+ input: string;
+ seq: number;
+ timestamp: string;
+};
+
+export type PostTxOnChainFailed = {
+ tag: "PostTxOnChainFailed";
+ postChainTx: PostChainTx;
+ postTxError: any;
+ seq: number;
+ timestamp: string;
+};
+
+export type CommandFailed = {
+ tag: "CommandFailed";
+ clientInput:
+ | {
+ tag: "Abort";
+ }
+ | { tag: "NewTx"; transaction: HydraTransaction }
+ | { tag: "GetUTxO" }
+ | { tag: "Decommit"; decommitTx: HydraTransaction }
+ | { tag: "Close" }
+ | { tag: "Contest" }
+ | { tag: "Fanout" };
+ seq: number;
+ timestamp: string;
+};
+
+export type IgnoredHeadInitializing = {
+ tag: "IgnoredHeadInitializing";
+ headId: string;
+ contestationPeriod: number;
+ parties: HydraParty[];
+ participants: string[];
+ seq: number;
+ timestamp: string;
+};
+
+export type DecommitInvalid = {
+ tag: "DecommitInvalid";
+ headId: string;
+ decommitTx: HydraTransaction;
+ decommitInvalidReason:
+ | {
+ tag: "DecommitTxInvalid";
+ localUtxo: HydraUTxOs;
+ validationError: { reason: string };
+ }
+ | { tag: "DecommitAlreadyInFlight"; otherDecommitTxId: string };
+};
+
+export type DecommitRequested = {
+ tag: "DecommitRequested";
+ headId: string;
+ decommitTx: HydraTransaction;
+ utxoToDecommit: HydraUTxOs;
+ seq: number;
+ timestmap: string;
+};
+
+export type DecommitApproved = {
+ tag: "DecommitApproved";
+ headId: string;
+ decommitTxId: string;
+ utxoToDecommit: HydraUTxOs;
+ seq: number;
+ timestamp: string;
+};
+
+export type DecommitFinalized = {
+ tag: "DecommitFinalized";
+ headId: string;
+ decommitTxId: string;
+ seq: number;
+ timestamp: string;
+};
diff --git a/packages/hydra/src/types/hydra-post-chain-tx.ts b/packages/hydra/src/types/hydra-post-chain-tx.ts
new file mode 100644
index 000000000..ee8c9dee1
--- /dev/null
+++ b/packages/hydra/src/types/hydra-post-chain-tx.ts
@@ -0,0 +1,73 @@
+import { HydraHeadParameters, HydraSnapshot, HydraUTxO } from "./hydra";
+
+export type PostChainTx =
+ | InitTx
+ | AbortTx
+ | CollectComTx
+ | DecrementTx
+ | CloseTx
+ | ContestTx
+ | FanoutTx;
+
+export type InitTx = {
+ tag: "InitTx";
+ participants: string[];
+ headParameters: HydraHeadParameters;
+};
+
+export type AbortTx = {
+ tag: "AbortTx";
+ utxo: { [txRef: string]: HydraUTxO };
+ headSeed: string;
+};
+
+export type CollectComTx = {
+ tag: "CollectComTx";
+ utxo: { [txRef: string]: HydraUTxO };
+ headId: string;
+ headParameters: HydraHeadParameters;
+};
+
+export type InitialSnapshot = {
+ headId: string;
+ initialUtxo: { [txRef: string]: HydraUTxO };
+ tag: "InitialSnapshot";
+};
+
+export type ConfirmedSnapshot = {
+ snapshot: HydraSnapshot;
+ signatures: {
+ mutliSignature: string[];
+ };
+ tag: "ConfirmedSnapshot";
+};
+export type DecrementTx = {
+ tag: "DecrementTx";
+ headId: string;
+ headParameters: HydraHeadParameters;
+ decerementingSnapshot: InitialSnapshot | ConfirmedSnapshot;
+};
+
+export type CloseTx = {
+ tag: "CloseTx";
+ headId: string;
+ headParameters: HydraHeadParameters;
+ closingSnapshot: InitialSnapshot | ConfirmedSnapshot;
+ openVersion: number;
+};
+
+export type ContestTx = {
+ tag: "ContestTx";
+ headId: string;
+ headParameters: HydraHeadParameters;
+ contestingSnapshot: InitialSnapshot | ConfirmedSnapshot;
+ openVersion: number;
+};
+
+export type FanoutTx = {
+ tag: "FanoutTx";
+ utxo: { [txRef: string]: HydraUTxO };
+ utxoToDecommit: { [txRef: string]: HydraUTxO };
+ headSeed: string;
+ contestationDeadline: string;
+};
diff --git a/packages/mesh-provider/src/hydra/types/index.ts b/packages/hydra/src/types/hydra.ts
similarity index 61%
rename from packages/mesh-provider/src/hydra/types/index.ts
rename to packages/hydra/src/types/hydra.ts
index 4e0c4f4eb..138c1cb0b 100644
--- a/packages/mesh-provider/src/hydra/types/index.ts
+++ b/packages/hydra/src/types/hydra.ts
@@ -1,21 +1,5 @@
import { HYDRA_STATUS } from "../constants";
-export type HydraStatus = (typeof HYDRA_STATUS)[keyof typeof HYDRA_STATUS];
-
-export type HydraUTxOs = {
- [x: string]: HydraUTxO;
-};
-
-export type HydraUTxO = {
- address: string;
- value: HydraAssets;
- referenceScript?: HydraReferenceScript;
- datumhash?: string;
- inlineDatum?: object;
- inlineDatumhash?: string;
- datum?: string;
-};
-
export type HydraAssets = {
lovelace: number;
} & {
@@ -26,6 +10,22 @@ export type HydraAssets = {
| undefined;
};
+export type HydraCommitTransaction = {
+ cborHex: string;
+ description: string;
+ txId: string;
+ type: string;
+};
+
+export interface HydraHeadParameters {
+ contestationPeriod: number;
+ parties: HydraParty[];
+}
+
+export type HydraParty = {
+ vkey: string;
+};
+
export type HydraReferenceScript = {
scriptLanguage: string;
script: {
@@ -39,9 +39,34 @@ export type HydraReferenceScript = {
};
};
-export type HydraCommitTransaction = {
- cborHex: string;
+export type HydraStatus = (typeof HYDRA_STATUS)[keyof typeof HYDRA_STATUS];
+
+export type HydraSnapshot = {
+ headId: string;
+ snapshotNumber: string;
+ utxo: HydraUTxOs;
+ confirmedTransactions: string[];
+ utxoToDecommit: HydraUTxOs;
+ version: number;
+};
+
+export type HydraTransaction = {
+ type: "Tx ConwayEra" | "Unwitnessed Tx ConwayEra" | "Witnessed Tx ConwayEra";
description: string;
- txId: string;
- type: string;
+ cborHex: string;
+ txId?: string;
+};
+
+export type HydraUTxOs = {
+ [txRef: string]: HydraUTxO;
+};
+
+export type HydraUTxO = {
+ address: string;
+ value: HydraAssets;
+ referenceScript?: HydraReferenceScript;
+ datumhash?: string;
+ inlineDatum?: object;
+ inlineDatumhash?: string;
+ datum?: string;
};
diff --git a/packages/hydra/src/types/index.ts b/packages/hydra/src/types/index.ts
new file mode 100644
index 000000000..424de48f3
--- /dev/null
+++ b/packages/hydra/src/types/index.ts
@@ -0,0 +1,2 @@
+export * from "./events";
+export * from "./hydra";
diff --git a/packages/hydra/src/utils/index.ts b/packages/hydra/src/utils/index.ts
new file mode 100644
index 000000000..62a725b83
--- /dev/null
+++ b/packages/hydra/src/utils/index.ts
@@ -0,0 +1 @@
+export * from "./parse-http-error";
diff --git a/packages/hydra/src/utils/parse-http-error.ts b/packages/hydra/src/utils/parse-http-error.ts
new file mode 100644
index 000000000..86d8a229e
--- /dev/null
+++ b/packages/hydra/src/utils/parse-http-error.ts
@@ -0,0 +1,19 @@
+import axios from "axios";
+
+export const parseHttpError = (error: unknown): string => {
+ if (axios.isAxiosError(error)) {
+ if (error.response) {
+ return JSON.stringify({
+ data: error.response.data,
+ headers: error.response.headers,
+ status: error.response.status,
+ });
+ } else if (error.request && !(error.request instanceof XMLHttpRequest)) {
+ return JSON.stringify(error.request);
+ } else {
+ return JSON.stringify({ code: error.code, message: error.message });
+ }
+ } else {
+ return JSON.stringify(error);
+ }
+};
diff --git a/packages/hydra/tsconfig.json b/packages/hydra/tsconfig.json
new file mode 100644
index 000000000..44863d662
--- /dev/null
+++ b/packages/hydra/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "extends": "@meshsdk/configs/typescript/base.json",
+ "include": ["src/**/*"],
+ "exclude": ["dist", "node_modules"],
+ "compilerOptions": {
+ "esModuleInterop": true,
+ "allowSyntheticDefaultImports": true
+ }
+}
diff --git a/packages/hydra/tsup.config.ts b/packages/hydra/tsup.config.ts
new file mode 100644
index 000000000..13e90e597
--- /dev/null
+++ b/packages/hydra/tsup.config.ts
@@ -0,0 +1,28 @@
+import { defineConfig } from "tsup";
+
+export default defineConfig({
+ entry: ["src/index.ts"],
+ format: ["esm", "cjs"],
+ dts: true,
+ splitting: false,
+ sourcemap: true,
+ clean: true,
+ external: [
+ "bip32",
+ "ecpair",
+ "@bitcoin-js/tiny-secp256k1-asmjs",
+ "bitcoinjs-lib",
+ ],
+ noExternal: ["@meshsdk/bitcoin"],
+ esbuildOptions(options) {
+ options.define = {
+ global: "globalThis",
+ process: JSON.stringify({
+ env: {
+ NODE_ENV: "production",
+ },
+ }),
+ };
+ options.platform = "browser";
+ },
+});
\ No newline at end of file
diff --git a/packages/mesh-provider/src/hydra/hydra-instance.ts b/packages/mesh-provider/src/hydra/hydra-instance.ts
deleted file mode 100644
index 69c2db9a2..000000000
--- a/packages/mesh-provider/src/hydra/hydra-instance.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-import { HydraProvider } from "./hydra-provider";
-
-/**
- * todo: implement https://hydra.family/head-protocol/docs/tutorial/
- */
-export class HydraInstance {
- provider: HydraProvider;
-
- constructor({ provider }: { provider: HydraProvider }) {
- this.provider = provider;
- }
-
- /**
- * needed?
- */
- async openHead() {}
-
- /**
- * https://hydra.family/head-protocol/docs/how-to/commit-blueprint/
- *
- * If you don't want to commit any funds and only want to receive on layer two, you can request an empty commit transaction.:
- * @returns
- */
- async commitFunds() {
- return "txHash";
- }
-
- /**
- * https://hydra.family/head-protocol/docs/how-to/incremental-decommit
- * @returns
- */
- async decommitFunds() {
- return "txHash";
- }
-}
diff --git a/packages/mesh-provider/src/hydra/interfaces/index.ts b/packages/mesh-provider/src/hydra/interfaces/index.ts
deleted file mode 100644
index 7372e15ad..000000000
--- a/packages/mesh-provider/src/hydra/interfaces/index.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-export interface IHydraTransaction {
- type: "Tx ConwayEra" | "Unwitnessed Tx ConwayEra" | "Witnessed Tx ConwayEra";
- description: string;
- cborHex: string;
- txId?: string;
-}
-
-export interface ICommandFailed {
- tag: "CommandFailed";
- clientInput:
- | {
- tag: "Init";
- }
- | {
- tag: "Abort";
- }
- | { tag: "NewTx"; transaction: IHydraTransaction }
- | { tag: "GetUTxO" }
- | { tag: "Decommit"; decommitTx: IHydraTransaction }
- | { tag: "Close" }
- | { tag: "Contest" }
- | { tag: "Fanout" };
- seq: number;
- timestamp: string;
-}
diff --git a/packages/mesh-provider/src/index.ts b/packages/mesh-provider/src/index.ts
index 72189ad0d..7470e1364 100644
--- a/packages/mesh-provider/src/index.ts
+++ b/packages/mesh-provider/src/index.ts
@@ -1,6 +1,5 @@
export * from "./begin";
export * from "./blockfrost";
-export * from "./hydra";
export * from "./koios";
export * from "./maestro";
export * from "./ogmios";