diff --git a/apps/playground/public/logo-mesh/logo-mesh-vector.svg b/apps/playground/public/logo-mesh/black/logo-mesh-vector.svg similarity index 100% rename from apps/playground/public/logo-mesh/logo-mesh-vector.svg rename to apps/playground/public/logo-mesh/black/logo-mesh-vector.svg diff --git a/apps/playground/public/logo-mesh/white/logo-mesh-vector.svg b/apps/playground/public/logo-mesh/white/logo-mesh-vector.svg new file mode 100644 index 00000000..8394def8 --- /dev/null +++ b/apps/playground/public/logo-mesh/white/logo-mesh-vector.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/playground/public/team/abdelkrim.png b/apps/playground/public/team/abdelkrim.png new file mode 100644 index 00000000..496f8a04 Binary files /dev/null and b/apps/playground/public/team/abdelkrim.png differ diff --git a/apps/playground/public/team/felix.png b/apps/playground/public/team/felix.png new file mode 100644 index 00000000..52f4f3ec Binary files /dev/null and b/apps/playground/public/team/felix.png differ diff --git a/apps/playground/public/team/hinson.png b/apps/playground/public/team/hinson.png new file mode 100644 index 00000000..b715e8b0 Binary files /dev/null and b/apps/playground/public/team/hinson.png differ diff --git a/apps/playground/public/team/jingles.png b/apps/playground/public/team/jingles.png new file mode 100644 index 00000000..c5d509e0 Binary files /dev/null and b/apps/playground/public/team/jingles.png differ diff --git a/apps/playground/public/team/tszwai.png b/apps/playground/public/team/tszwai.png new file mode 100644 index 00000000..f1403953 Binary files /dev/null and b/apps/playground/public/team/tszwai.png differ diff --git a/apps/playground/src/data/links-about.ts b/apps/playground/src/data/links-about.ts index c1f49d35..393d96f1 100644 --- a/apps/playground/src/data/links-about.ts +++ b/apps/playground/src/data/links-about.ts @@ -3,6 +3,12 @@ import { FilmIcon, HeartIcon } from "@heroicons/react/24/solid"; import { MenuItem } from "~/types/menu-item"; import { metaCatalyst } from "./links-catalyst"; +export const metaAboutUs = { + link: `/about`, + title: "About Us", + desc: "", + icon: HeartIcon, +}; export const metaSupportUs = { link: `/about/support-us`, title: "Support Us", @@ -17,6 +23,7 @@ export const metaMediaKit = { }; export const linksAbout: MenuItem[] = [ + metaAboutUs, metaCatalyst, metaSupportUs, metaMediaKit, diff --git a/apps/playground/src/data/team.ts b/apps/playground/src/data/team.ts new file mode 100644 index 00000000..c905e693 --- /dev/null +++ b/apps/playground/src/data/team.ts @@ -0,0 +1,31 @@ +export const team = [ + { + name: "Abdelkrim", + image: "abdelkrim.png", + twitter: "https://x.com/abdelkrimdev", + github: "https://github.com/abdelkrimdev", + }, + { + name: "Jingles", + image: "jingles.png", + twitter: "https://x.com/jinglescode", + github: "https://github.com/jinglescode", + website: "https://jingles.dev/", + }, + { + name: "Felix", + image: "felix.png", + twitter: "https://x.com/CatalystSwarm", + }, + { + name: "Hinson", + image: "hinson.png", + twitter: "https://x.com/HinsonSIDAN", + github: "https://github.com/HinsonSIDAN", + }, + { + name: "Tszwai", + image: "tszwai.png", + github: "https://github.com/twwu123", + }, +]; diff --git a/apps/playground/src/pages/about/about-us/hero.tsx b/apps/playground/src/pages/about/about-us/hero.tsx new file mode 100644 index 00000000..63d2e8b4 --- /dev/null +++ b/apps/playground/src/pages/about/about-us/hero.tsx @@ -0,0 +1,65 @@ +export default function AboutHero() { + return ( +
+
+
+

+ We advance the Cardano's tech stack +

+

+ Get started building blockchain applications with our + enterprise-ready, well engineered, and professionally designed SDK, + Mesh. From easy to use Transaction builder to low level APIs, from + wallet integrations to data service providers, building a Web3 + application has never been this easy. +

+ + {/* + Learn more about the plan + + + + */} +
+ {/*
+
+

Fourth quarter 2021

+

+ We announced fourth quarter 2021 results +

+ + Read more + + + + +
+
*/} +
+
+ ); +} diff --git a/apps/playground/src/pages/about/about-us/incorporation.tsx b/apps/playground/src/pages/about/about-us/incorporation.tsx new file mode 100644 index 00000000..4b8fd5ba --- /dev/null +++ b/apps/playground/src/pages/about/about-us/incorporation.tsx @@ -0,0 +1,12 @@ +import { AboutSection } from "../"; + +export default function AboutIncorporation() { + return ( + + <> + + ); +} diff --git a/apps/playground/src/pages/about/about-us/status.tsx b/apps/playground/src/pages/about/about-us/status.tsx new file mode 100644 index 00000000..9cb7bdae --- /dev/null +++ b/apps/playground/src/pages/about/about-us/status.tsx @@ -0,0 +1,44 @@ +import Link from "~/components/link"; +import { AboutSection } from "../"; + +export default function AboutStatus() { + return ( + +
+
+
+

+ Published on NPM +

+ + + +
+
+
+
+

+ Build status +

+ + + +
+
+
+
+

+ Publish status +

+ + + +
+
+
+
+ ); +} diff --git a/apps/playground/src/pages/about/about-us/team.tsx b/apps/playground/src/pages/about/about-us/team.tsx new file mode 100644 index 00000000..6d8c841e --- /dev/null +++ b/apps/playground/src/pages/about/about-us/team.tsx @@ -0,0 +1,106 @@ +import Link from "~/components/link"; +import { team } from "~/data/team"; +import { AboutSection } from "../"; + +export default function AboutTeam() { + return ( + +
+ {team.map((person, i) => ( + + ))} +
+
+ ); +} + +function Person({ + name, + image, + twitter, + github, + website, +}: { + name: string; + image: string; + twitter?: string; + github?: string; + website?: string; +}) { + return ( +
+ {name} +

+ {name} +

+ {/*

*/} + +
+ ); +} diff --git a/apps/playground/src/pages/about/index.tsx b/apps/playground/src/pages/about/index.tsx new file mode 100644 index 00000000..0c0d0ed2 --- /dev/null +++ b/apps/playground/src/pages/about/index.tsx @@ -0,0 +1,41 @@ +import AboutHero from "./about-us/hero"; +import AboutIncorporation from "./about-us/incorporation"; +import AboutStatus from "./about-us/status"; +import AboutTeam from "./about-us/team"; + +export default function AboutPage() { + return ( + <> + + + + + + ); +} + +export function AboutSection({ + children, + title, + description, +}: { + children: React.ReactNode; + title: string; + description: string; +}) { + return ( +
+
+
+

+ {title} +

+

+ {description} +

+
+ {children} +
+
+ ); +} diff --git a/apps/playground/src/pages/apis/transaction/basics/index.tsx b/apps/playground/src/pages/apis/transaction/basics/index.tsx index 59c88e0d..3a92a582 100644 --- a/apps/playground/src/pages/apis/transaction/basics/index.tsx +++ b/apps/playground/src/pages/apis/transaction/basics/index.tsx @@ -15,6 +15,7 @@ import TransactionSendLovelace from "./send-lovelace"; import TransactionSendValue from "./send-value"; import TransactionSetCollateral from "./set-collateral"; import TransactionSetMetadata from "./set-metadata"; +import TransactionSetNetwork from "./set-network"; import TransactionSetRequiredSigners from "./set-required-signers"; import TransactionSetTime from "./set-time"; @@ -37,6 +38,7 @@ const ReactPage: NextPage = () => { { label: "Set required signers", to: "requiredSigners" }, { label: "Set time", to: "setTime" }, + { label: "Set network", to: "setNetwork" }, ]; return ( @@ -78,6 +80,7 @@ const ReactPage: NextPage = () => { + ); diff --git a/apps/playground/src/pages/apis/transaction/basics/set-network.tsx b/apps/playground/src/pages/apis/transaction/basics/set-network.tsx new file mode 100644 index 00000000..e38d0855 --- /dev/null +++ b/apps/playground/src/pages/apis/transaction/basics/set-network.tsx @@ -0,0 +1,31 @@ +import TwoColumnsScroll from "~/components/sections/two-columns-scroll"; +import Codeblock from "~/components/text/codeblock"; + +export default function TransactionSetNetwork() { + return ( + + ); +} + +function Left() { + let code1 = `tx.setNetwork(network: Network)`; + let code2 = `"testnet" | "preview" | "preprod" | "mainnet"`; + + return ( + <> +

+ Sets the network to use, this is mainly to know the cost models to be + used to calculate script integrity hash. You can set the network for the + transaction with setNetwork. +

+ +

The network parameter is a string that can be one of the following:

+ +

+ + ); +} diff --git a/apps/playground/src/pages/apis/txbuilder/basics/index.tsx b/apps/playground/src/pages/apis/txbuilder/basics/index.tsx index ccaddce1..735bc0a6 100644 --- a/apps/playground/src/pages/apis/txbuilder/basics/index.tsx +++ b/apps/playground/src/pages/apis/txbuilder/basics/index.tsx @@ -12,6 +12,7 @@ import TxbuilderCoinSelection from "./coin-selection"; import TxbuilderInitializeTxbuilder from "./initialize-txbuilder"; import TxbuilderMultisig from "./multisig"; import TxbuilderSendValues from "./send-values"; +import TxbuilderSetNetwork from "./set-network"; import TxbuilderSetRequiredSigners from "./set-required-signers"; import TxbuilderSetTime from "./set-time"; @@ -25,6 +26,7 @@ const ReactPage: NextPage = () => { { label: "Set metadata", to: "cip20" }, { label: "Set required signers", to: "requiredSigners" }, { label: "Set time", to: "setTime" }, + { label: "Set network", to: "setNetwork" }, ]; return ( @@ -73,6 +75,7 @@ const ReactPage: NextPage = () => { {/* */} + ); diff --git a/apps/playground/src/pages/apis/txbuilder/basics/set-network.tsx b/apps/playground/src/pages/apis/txbuilder/basics/set-network.tsx new file mode 100644 index 00000000..c705b203 --- /dev/null +++ b/apps/playground/src/pages/apis/txbuilder/basics/set-network.tsx @@ -0,0 +1,31 @@ +import TwoColumnsScroll from "~/components/sections/two-columns-scroll"; +import Codeblock from "~/components/text/codeblock"; + +export default function TxbuilderSetNetwork() { + return ( + + ); +} + +function Left() { + let code1 = `txBuilder.setNetwork(network: Network)`; + let code2 = `"testnet" | "preview" | "preprod" | "mainnet"`; + + return ( + <> +

+ Sets the network to use, this is mainly to know the cost models to be + used to calculate script integrity hash. You can set the network for the + transaction with setNetwork. +

+ +

The network parameter is a string that can be one of the following:

+ +

+ + ); +} diff --git a/apps/playground/src/pages/providers/submitters/submit-transaction.tsx b/apps/playground/src/pages/providers/submitters/submit-transaction.tsx index 3de4c69d..48cc1d36 100644 --- a/apps/playground/src/pages/providers/submitters/submit-transaction.tsx +++ b/apps/playground/src/pages/providers/submitters/submit-transaction.tsx @@ -22,7 +22,7 @@ function Left() { return ( <>

Submit a serialized transaction to the network.

- + ); } diff --git a/apps/playground/src/pages/react/ui-components/connect-wallet.tsx b/apps/playground/src/pages/react/ui-components/connect-wallet.tsx index 7fbd38ee..84fed757 100644 --- a/apps/playground/src/pages/react/ui-components/connect-wallet.tsx +++ b/apps/playground/src/pages/react/ui-components/connect-wallet.tsx @@ -72,6 +72,17 @@ function Left() {

For a custom label, add the label prop.

`} /> +

+ The customization is limited. For more customization, you can easily + build your own wallet connection component. If you are using React, the{" "} + React hooks will be useful. You + may also take reference from{" "} + + this component + + . +

+

onConnected

If you want to run a function after the wallet is connected, you can add diff --git a/package-lock.json b/package-lock.json index 6d5351c6..d8fd1b34 100644 --- a/package-lock.json +++ b/package-lock.json @@ -215,10 +215,15 @@ "node": ">=14.17" } }, + "apps/docs/node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, "apps/docs/node_modules/use-sync-external-store": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", - "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "license": "MIT", "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } @@ -293,12 +298,12 @@ } }, "apps/playground/node_modules/@types/node": { - "version": "20.14.15", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.15.tgz", - "integrity": "sha512-Fz1xDMCF/B00/tYSVMlmK7hVeLh7jE5f3B7X1/hmV0MJBwE27KlS7EvD/Yp+z1lm8mVhwV5w+n8jOZG8AfTlKw==", + "version": "20.16.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.1.tgz", + "integrity": "sha512-zJDo7wEadFtSyNz5QITDfRcrhqDvQI1xQNQ0VoizPjM/dVAODqqIUWbJPkvsxmTI0MYRGRikcdjMPhOssnPejQ==", "dev": true, "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.19.2" } }, "node_modules/@algolia/autocomplete-core": { @@ -4578,9 +4583,9 @@ "integrity": "sha512-PoKh1tQnJX18f8iEr8Jk1KXxKCn9eqaSslMI1pyOJvYRJhQVDLCh0+9YReufjp0oFJIY1ShcrR+4/WnECVZUKQ==" }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz", - "integrity": "sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", + "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", "cpu": [ "ppc64" ], @@ -4594,9 +4599,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.0.tgz", - "integrity": "sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", + "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", "cpu": [ "arm" ], @@ -4610,9 +4615,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz", - "integrity": "sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", + "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", "cpu": [ "arm64" ], @@ -4626,9 +4631,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.0.tgz", - "integrity": "sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", + "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", "cpu": [ "x64" ], @@ -4642,9 +4647,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz", - "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", + "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", "cpu": [ "arm64" ], @@ -4658,9 +4663,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz", - "integrity": "sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", + "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", "cpu": [ "x64" ], @@ -4674,9 +4679,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz", - "integrity": "sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", + "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", "cpu": [ "arm64" ], @@ -4690,9 +4695,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz", - "integrity": "sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", + "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", "cpu": [ "x64" ], @@ -4706,9 +4711,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz", - "integrity": "sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", + "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", "cpu": [ "arm" ], @@ -4722,9 +4727,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz", - "integrity": "sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", + "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", "cpu": [ "arm64" ], @@ -4738,9 +4743,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz", - "integrity": "sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", + "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", "cpu": [ "ia32" ], @@ -4754,9 +4759,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz", - "integrity": "sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", + "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", "cpu": [ "loong64" ], @@ -4770,9 +4775,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz", - "integrity": "sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", + "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", "cpu": [ "mips64el" ], @@ -4786,9 +4791,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz", - "integrity": "sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", + "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", "cpu": [ "ppc64" ], @@ -4802,9 +4807,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz", - "integrity": "sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", + "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", "cpu": [ "riscv64" ], @@ -4818,9 +4823,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz", - "integrity": "sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", + "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", "cpu": [ "s390x" ], @@ -4834,9 +4839,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz", - "integrity": "sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", + "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", "cpu": [ "x64" ], @@ -4850,9 +4855,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz", - "integrity": "sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", + "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", "cpu": [ "x64" ], @@ -4866,9 +4871,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz", - "integrity": "sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", + "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", "cpu": [ "arm64" ], @@ -4882,9 +4887,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz", - "integrity": "sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", + "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", "cpu": [ "x64" ], @@ -4898,9 +4903,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz", - "integrity": "sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", + "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", "cpu": [ "x64" ], @@ -4914,9 +4919,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz", - "integrity": "sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", + "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", "cpu": [ "arm64" ], @@ -4930,9 +4935,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz", - "integrity": "sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", + "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", "cpu": [ "ia32" ], @@ -4946,9 +4951,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz", - "integrity": "sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", + "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", "cpu": [ "x64" ], @@ -6348,9 +6353,9 @@ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.20.0.tgz", - "integrity": "sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.0.tgz", + "integrity": "sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA==", "cpu": [ "arm" ], @@ -6361,9 +6366,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.20.0.tgz", - "integrity": "sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.0.tgz", + "integrity": "sha512-a1sR2zSK1B4eYkiZu17ZUZhmUQcKjk2/j9Me2IDjk1GHW7LB5Z35LEzj9iJch6gtUfsnvZs1ZNyDW2oZSThrkA==", "cpu": [ "arm64" ], @@ -6374,9 +6379,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.20.0.tgz", - "integrity": "sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.0.tgz", + "integrity": "sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA==", "cpu": [ "arm64" ], @@ -6387,9 +6392,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.20.0.tgz", - "integrity": "sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.0.tgz", + "integrity": "sha512-7doS8br0xAkg48SKE2QNtMSFPFUlRdw9+votl27MvT46vo44ATBmdZdGysOevNELmZlfd+NEa0UYOA8f01WSrg==", "cpu": [ "x64" ], @@ -6400,9 +6405,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.20.0.tgz", - "integrity": "sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.0.tgz", + "integrity": "sha512-pWJsfQjNWNGsoCq53KjMtwdJDmh/6NubwQcz52aEwLEuvx08bzcy6tOUuawAOncPnxz/3siRtd8hiQ32G1y8VA==", "cpu": [ "arm" ], @@ -6413,9 +6418,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.20.0.tgz", - "integrity": "sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.0.tgz", + "integrity": "sha512-efRIANsz3UHZrnZXuEvxS9LoCOWMGD1rweciD6uJQIx2myN3a8Im1FafZBzh7zk1RJ6oKcR16dU3UPldaKd83w==", "cpu": [ "arm" ], @@ -6426,9 +6431,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.20.0.tgz", - "integrity": "sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.0.tgz", + "integrity": "sha512-ZrPhydkTVhyeGTW94WJ8pnl1uroqVHM3j3hjdquwAcWnmivjAwOYjTEAuEDeJvGX7xv3Z9GAvrBkEzCgHq9U1w==", "cpu": [ "arm64" ], @@ -6439,9 +6444,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.20.0.tgz", - "integrity": "sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.0.tgz", + "integrity": "sha512-cfaupqd+UEFeURmqNP2eEvXqgbSox/LHOyN9/d2pSdV8xTrjdg3NgOFJCtc1vQ/jEke1qD0IejbBfxleBPHnPw==", "cpu": [ "arm64" ], @@ -6452,9 +6457,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.20.0.tgz", - "integrity": "sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.0.tgz", + "integrity": "sha512-ZKPan1/RvAhrUylwBXC9t7B2hXdpb/ufeu22pG2psV7RN8roOfGurEghw1ySmX/CmDDHNTDDjY3lo9hRlgtaHg==", "cpu": [ "ppc64" ], @@ -6465,9 +6470,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.20.0.tgz", - "integrity": "sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.0.tgz", + "integrity": "sha512-H1eRaCwd5E8eS8leiS+o/NqMdljkcb1d6r2h4fKSsCXQilLKArq6WS7XBLDu80Yz+nMqHVFDquwcVrQmGr28rg==", "cpu": [ "riscv64" ], @@ -6478,9 +6483,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.20.0.tgz", - "integrity": "sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.0.tgz", + "integrity": "sha512-zJ4hA+3b5tu8u7L58CCSI0A9N1vkfwPhWd/puGXwtZlsB5bTkwDNW/+JCU84+3QYmKpLi+XvHdmrlwUwDA6kqw==", "cpu": [ "s390x" ], @@ -6491,9 +6496,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.20.0.tgz", - "integrity": "sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.0.tgz", + "integrity": "sha512-e2hrvElFIh6kW/UNBQK/kzqMNY5mO+67YtEh9OA65RM5IJXYTWiXjX6fjIiPaqOkBthYF1EqgiZ6OXKcQsM0hg==", "cpu": [ "x64" ], @@ -6504,9 +6509,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.20.0.tgz", - "integrity": "sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.0.tgz", + "integrity": "sha512-1vvmgDdUSebVGXWX2lIcgRebqfQSff0hMEkLJyakQ9JQUbLDkEaMsPTLOmyccyC6IJ/l3FZuJbmrBw/u0A0uCQ==", "cpu": [ "x64" ], @@ -6517,9 +6522,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.20.0.tgz", - "integrity": "sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.0.tgz", + "integrity": "sha512-s5oFkZ/hFcrlAyBTONFY1TWndfyre1wOMwU+6KCpm/iatybvrRgmZVM+vCFwxmC5ZhdlgfE0N4XorsDpi7/4XQ==", "cpu": [ "arm64" ], @@ -6530,9 +6535,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.20.0.tgz", - "integrity": "sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.0.tgz", + "integrity": "sha512-G9+TEqRnAA6nbpqyUqgTiopmnfgnMkR3kMukFBDsiyy23LZvUCpiUwjTRx6ezYCjJODXrh52rBR9oXvm+Fp5wg==", "cpu": [ "ia32" ], @@ -6543,9 +6548,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.20.0.tgz", - "integrity": "sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.0.tgz", + "integrity": "sha512-2jsCDZwtQvRhejHLfZ1JY6w6kEuEtfF9nzYsZxzSlNVKDX+DpsDJ+Rbjkm74nvg2rdx0gwBS+IMdvwJuq3S9pQ==", "cpu": [ "x64" ], @@ -6569,23 +6574,23 @@ } }, "node_modules/@shikijs/core": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.13.0.tgz", - "integrity": "sha512-Mj5NVfbAXcD1GnwOTSPl8hBn/T8UDpfFQTptp+p41n/CbUcJtOq98WaRD7Lz3hCglYotUTHUWtzu3JhK6XlkAA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.14.1.tgz", + "integrity": "sha512-KyHIIpKNaT20FtFPFjCQB5WVSTpLR/n+jQXhWHWVUMm9MaOaG9BGOG0MSyt7yA4+Lm+4c9rTc03tt3nYzeYSfw==", "dev": true, "dependencies": { "@types/hast": "^3.0.4" } }, "node_modules/@sidan-lab/sidan-csl-rs-browser": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@sidan-lab/sidan-csl-rs-browser/-/sidan-csl-rs-browser-0.7.1.tgz", - "integrity": "sha512-vJoZTWTyEGeN6vwAZU6mRNi5JS1OkAYGVMKXaLSnYS8aZiYVqdCJVED0oL6wstIQeLalt3nBO6fbxXnFEXd7wQ==" + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@sidan-lab/sidan-csl-rs-browser/-/sidan-csl-rs-browser-0.7.2.tgz", + "integrity": "sha512-u5XGFwVlD9CuYjgZQ3vYoa6SwS0cMdlUHZg16BgkgzlcFEyidwfcZk3g8sPeEIEWw3nzAB69EUC6gvP/bLIGtA==" }, "node_modules/@sidan-lab/sidan-csl-rs-nodejs": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@sidan-lab/sidan-csl-rs-nodejs/-/sidan-csl-rs-nodejs-0.7.1.tgz", - "integrity": "sha512-YYwU+547HgYg7dXeL6HhS/GfCIC2qx/a002FhPB8bb5l/cjB+bUOoaBKucojO0+331Z7EFSaV9oS9yCOJ2SKkg==" + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@sidan-lab/sidan-csl-rs-nodejs/-/sidan-csl-rs-nodejs-0.7.2.tgz", + "integrity": "sha512-XZqQUs7MX8c+iz0xacnzoof3MVMqEQKYojLEE9qApO/fKjCcKN1xRpBXKQBtnO4Z4lyCJ8XEGonNR4g1Jlc/Eg==" }, "node_modules/@sinclair/typebox": { "version": "0.27.8", @@ -6962,18 +6967,13 @@ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" }, "node_modules/@types/node": { - "version": "22.3.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.3.0.tgz", - "integrity": "sha512-nrWpWVaDZuaVc5X84xJ0vNrLvomM205oQyLsRt7OHNZbSHslcWsvgFR7O7hire2ZonjLrWBbedmotmIlJDVd6g==", + "version": "22.4.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.4.1.tgz", + "integrity": "sha512-1tbpb9325+gPnKK0dMm+/LMriX0vKxf6RnB0SZUqfyVkQ4fMgUSySqhxE/y8Jvs4NyF1yHzTfG9KlnkIODxPKg==", "dependencies": { - "undici-types": "~6.18.2" + "undici-types": "~6.19.2" } }, - "node_modules/@types/node/node_modules/undici-types": { - "version": "6.18.2", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.18.2.tgz", - "integrity": "sha512-5ruQbENj95yDYJNS3TvcaxPMshV7aizdv/hWYjGIKoANWKjhWNBsr2YEuYZKodQulB1b8l7ILOuDQep3afowQQ==" - }, "node_modules/@types/normalize-package-data": { "version": "2.4.4", "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", @@ -7050,13 +7050,18 @@ } }, "node_modules/@types/ssh2/node_modules/@types/node": { - "version": "18.19.44", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.44.tgz", - "integrity": "sha512-ZsbGerYg72WMXUIE9fYxtvfzLEuq6q8mKERdWFnqTmOvudMxnz+CBNRoOwJ2kNpFOncrKjT1hZwxjlFgQ9qvQA==", + "version": "18.19.45", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.45.tgz", + "integrity": "sha512-VZxPKNNhjKmaC1SUYowuXSRSMGyQGmQjvvA1xE4QZ0xce2kLtEhPDS+kqpCPBZYgqblCLQ2DAjSzmgCM5auvhA==", "dependencies": { "undici-types": "~5.26.4" } }, + "node_modules/@types/ssh2/node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, "node_modules/@types/stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", @@ -9602,9 +9607,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.7.tgz", - "integrity": "sha512-6FTNWIWMxMy/ZY6799nBlPtF1DFDQ6VQJ7yyDP27SJNt5lwtQ5ufqVvHylb3fdQefvRcgA3fKcFMJi9OLwBRNw==" + "version": "1.5.11", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.11.tgz", + "integrity": "sha512-R1CccCDYqndR25CaXFd6hp/u9RaaMcftMkphmvuepXr5b1vfLkRml6aWVeBhXJ7rbevHkKEMJtz8XqPf7ffmew==" }, "node_modules/elliptic": { "version": "6.5.4", @@ -9883,9 +9888,9 @@ } }, "node_modules/esbuild": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.0.tgz", - "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", + "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", "dev": true, "hasInstallScript": true, "bin": { @@ -9895,30 +9900,30 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.23.0", - "@esbuild/android-arm": "0.23.0", - "@esbuild/android-arm64": "0.23.0", - "@esbuild/android-x64": "0.23.0", - "@esbuild/darwin-arm64": "0.23.0", - "@esbuild/darwin-x64": "0.23.0", - "@esbuild/freebsd-arm64": "0.23.0", - "@esbuild/freebsd-x64": "0.23.0", - "@esbuild/linux-arm": "0.23.0", - "@esbuild/linux-arm64": "0.23.0", - "@esbuild/linux-ia32": "0.23.0", - "@esbuild/linux-loong64": "0.23.0", - "@esbuild/linux-mips64el": "0.23.0", - "@esbuild/linux-ppc64": "0.23.0", - "@esbuild/linux-riscv64": "0.23.0", - "@esbuild/linux-s390x": "0.23.0", - "@esbuild/linux-x64": "0.23.0", - "@esbuild/netbsd-x64": "0.23.0", - "@esbuild/openbsd-arm64": "0.23.0", - "@esbuild/openbsd-x64": "0.23.0", - "@esbuild/sunos-x64": "0.23.0", - "@esbuild/win32-arm64": "0.23.0", - "@esbuild/win32-ia32": "0.23.0", - "@esbuild/win32-x64": "0.23.0" + "@esbuild/aix-ppc64": "0.23.1", + "@esbuild/android-arm": "0.23.1", + "@esbuild/android-arm64": "0.23.1", + "@esbuild/android-x64": "0.23.1", + "@esbuild/darwin-arm64": "0.23.1", + "@esbuild/darwin-x64": "0.23.1", + "@esbuild/freebsd-arm64": "0.23.1", + "@esbuild/freebsd-x64": "0.23.1", + "@esbuild/linux-arm": "0.23.1", + "@esbuild/linux-arm64": "0.23.1", + "@esbuild/linux-ia32": "0.23.1", + "@esbuild/linux-loong64": "0.23.1", + "@esbuild/linux-mips64el": "0.23.1", + "@esbuild/linux-ppc64": "0.23.1", + "@esbuild/linux-riscv64": "0.23.1", + "@esbuild/linux-s390x": "0.23.1", + "@esbuild/linux-x64": "0.23.1", + "@esbuild/netbsd-x64": "0.23.1", + "@esbuild/openbsd-arm64": "0.23.1", + "@esbuild/openbsd-x64": "0.23.1", + "@esbuild/sunos-x64": "0.23.1", + "@esbuild/win32-arm64": "0.23.1", + "@esbuild/win32-ia32": "0.23.1", + "@esbuild/win32-x64": "0.23.1" } }, "node_modules/escalade": { @@ -18565,9 +18570,9 @@ } }, "node_modules/rollup": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.20.0.tgz", - "integrity": "sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.0.tgz", + "integrity": "sha512-vo+S/lfA2lMS7rZ2Qoubi6I5hwZwzXeUIctILZLbHI+laNtvhhOIon2S1JksA5UEDQ7l3vberd0fxK44lTYjbQ==", "devOptional": true, "dependencies": { "@types/estree": "1.0.5" @@ -18580,22 +18585,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.20.0", - "@rollup/rollup-android-arm64": "4.20.0", - "@rollup/rollup-darwin-arm64": "4.20.0", - "@rollup/rollup-darwin-x64": "4.20.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.20.0", - "@rollup/rollup-linux-arm-musleabihf": "4.20.0", - "@rollup/rollup-linux-arm64-gnu": "4.20.0", - "@rollup/rollup-linux-arm64-musl": "4.20.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.20.0", - "@rollup/rollup-linux-riscv64-gnu": "4.20.0", - "@rollup/rollup-linux-s390x-gnu": "4.20.0", - "@rollup/rollup-linux-x64-gnu": "4.20.0", - "@rollup/rollup-linux-x64-musl": "4.20.0", - "@rollup/rollup-win32-arm64-msvc": "4.20.0", - "@rollup/rollup-win32-ia32-msvc": "4.20.0", - "@rollup/rollup-win32-x64-msvc": "4.20.0", + "@rollup/rollup-android-arm-eabi": "4.21.0", + "@rollup/rollup-android-arm64": "4.21.0", + "@rollup/rollup-darwin-arm64": "4.21.0", + "@rollup/rollup-darwin-x64": "4.21.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.21.0", + "@rollup/rollup-linux-arm-musleabihf": "4.21.0", + "@rollup/rollup-linux-arm64-gnu": "4.21.0", + "@rollup/rollup-linux-arm64-musl": "4.21.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.21.0", + "@rollup/rollup-linux-riscv64-gnu": "4.21.0", + "@rollup/rollup-linux-s390x-gnu": "4.21.0", + "@rollup/rollup-linux-x64-gnu": "4.21.0", + "@rollup/rollup-linux-x64-musl": "4.21.0", + "@rollup/rollup-win32-arm64-msvc": "4.21.0", + "@rollup/rollup-win32-ia32-msvc": "4.21.0", + "@rollup/rollup-win32-x64-msvc": "4.21.0", "fsevents": "~2.3.2" } }, @@ -18811,12 +18816,12 @@ } }, "node_modules/shiki": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.13.0.tgz", - "integrity": "sha512-e0dWfnONbEv6xl7FJy3XIhsVHQ/65XHDZl92+6H9+4xWjfdo7pmkqG7Kg47KWtDiEtzM5Z+oEfb4vtRvoZ/X9w==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.14.1.tgz", + "integrity": "sha512-FujAN40NEejeXdzPt+3sZ3F2dx1U24BY2XTY01+MG8mbxCiA2XukXdcbyMyLAHJ/1AUUnQd1tZlvIjefWWEJeA==", "dev": true, "dependencies": { - "@shikijs/core": "1.13.0", + "@shikijs/core": "1.14.1", "@types/hast": "^3.0.4" } }, @@ -20123,26 +20128,26 @@ "dev": true }, "node_modules/turbo": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/turbo/-/turbo-2.0.13.tgz", - "integrity": "sha512-xZYCpvy+Q5X05HQLVbup/nUva/EPd8QKX/WLfztz8Yhh7yH+VN9t+P9ACG2U0ThlrqX4uFS0tuE0jaCLvL1Imw==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/turbo/-/turbo-2.0.14.tgz", + "integrity": "sha512-00JjdCMD/cpsjP0Izkjcm8Oaor5yUCfDwODtaLb+WyblyadkaDEisGhy3Dbd5az9n+5iLSPiUgf+WjPbns6MRg==", "dev": true, "bin": { "turbo": "bin/turbo" }, "optionalDependencies": { - "turbo-darwin-64": "2.0.13", - "turbo-darwin-arm64": "2.0.13", - "turbo-linux-64": "2.0.13", - "turbo-linux-arm64": "2.0.13", - "turbo-windows-64": "2.0.13", - "turbo-windows-arm64": "2.0.13" + "turbo-darwin-64": "2.0.14", + "turbo-darwin-arm64": "2.0.14", + "turbo-linux-64": "2.0.14", + "turbo-linux-arm64": "2.0.14", + "turbo-windows-64": "2.0.14", + "turbo-windows-arm64": "2.0.14" } }, "node_modules/turbo-darwin-64": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/turbo-darwin-64/-/turbo-darwin-64-2.0.13.tgz", - "integrity": "sha512-1qoFGvSE/kG1Njl1a1b35+AlJyCBE/+cb7GcglxuUM0Fh0JNR6FIWGhiubUhFLoIdFkdRbPpTH5smhPpRk757w==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/turbo-darwin-64/-/turbo-darwin-64-2.0.14.tgz", + "integrity": "sha512-kwfDmjNwlNfvtrvT29+ZBg5n1Wvxl891bFHchMJyzMoR0HOE9N1NSNdSZb9wG3e7sYNIu4uDkNk+VBEqJW0HzQ==", "cpu": [ "x64" ], @@ -20153,9 +20158,9 @@ ] }, "node_modules/turbo-darwin-arm64": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/turbo-darwin-arm64/-/turbo-darwin-arm64-2.0.13.tgz", - "integrity": "sha512-3fgbjKeRjvZTKJhn6eOyA6SaFXlRHx/z7qAWYcTbq7iu2zd+n0OHRyah9Voy2ZihiGAI0Bw4QfVWo3d1qTabgA==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/turbo-darwin-arm64/-/turbo-darwin-arm64-2.0.14.tgz", + "integrity": "sha512-m3LXYEshCx3wc4ZClM6gb01KYpFmtjQ9IBF3A7ofjb6ahux3xlYZJZ3uFCLAGHuvGLuJ3htfiPbwlDPTdknqqw==", "cpu": [ "arm64" ], @@ -20166,9 +20171,9 @@ ] }, "node_modules/turbo-linux-64": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/turbo-linux-64/-/turbo-linux-64-2.0.13.tgz", - "integrity": "sha512-1nMO5NWHWs4jI5SV8SMlGtR3/jBlud1ld/ltayYwOXm6zdznj0/mTNNE9AjfOs/aAei2wZE1HWUHXe46q/nZtw==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/turbo-linux-64/-/turbo-linux-64-2.0.14.tgz", + "integrity": "sha512-7vBzCPdoTtR92SNn2JMgj1FlMmyonGmpMaQdgAB1OVYtuQ6NVGoh7/lODfaILqXjpvmFSVbpBIDrKOT6EvcprQ==", "cpu": [ "x64" ], @@ -20179,9 +20184,9 @@ ] }, "node_modules/turbo-linux-arm64": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/turbo-linux-arm64/-/turbo-linux-arm64-2.0.13.tgz", - "integrity": "sha512-JkQYAAMbEW3jkzhbtY4hi0Q61tlSd46qLEVBQqnur9VymC4TfD6kllVMpRtbmXv8jdfGPu+rEIeYrzjHpyqMfg==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/turbo-linux-arm64/-/turbo-linux-arm64-2.0.14.tgz", + "integrity": "sha512-jwH+c0bfjpBf26K/tdEFatmnYyXwGROjbr6bZmNcL8R+IkGAc/cglL+OToqJnQZTgZvH7uDGbeSyUo7IsHyjuA==", "cpu": [ "arm64" ], @@ -20192,9 +20197,9 @@ ] }, "node_modules/turbo-windows-64": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/turbo-windows-64/-/turbo-windows-64-2.0.13.tgz", - "integrity": "sha512-QYJfYPnmb3j16CR4mucYicC+tlY1fsFws6fkqZe2b8jBpRyOslxkEk4XJWCsvUizPSYpOdAnTL9baunLH7hWrA==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/turbo-windows-64/-/turbo-windows-64-2.0.14.tgz", + "integrity": "sha512-w9/XwkHSzvLjmioo6cl3S1yRfI6swxsV1j1eJwtl66JM4/pn0H2rBa855R0n7hZnmI6H5ywLt/nLt6Ae8RTDmw==", "cpu": [ "x64" ], @@ -20205,9 +20210,9 @@ ] }, "node_modules/turbo-windows-arm64": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/turbo-windows-arm64/-/turbo-windows-arm64-2.0.13.tgz", - "integrity": "sha512-dnVN19dq7jszcKVBy4+T1IMmMY1ergigJZdl76Bbc99QOwaXsTR7ci4sle89HvJb+F1z/MXSq8ePvRTcy6dKRw==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/turbo-windows-arm64/-/turbo-windows-arm64-2.0.14.tgz", + "integrity": "sha512-XaQlyYk+Rf4xS5XWCo8XCMIpssgGGy8blzLfolN6YBp4baElIWMlkLZHDbGyiFmCbNf9I9gJI64XGRG+LVyyjA==", "cpu": [ "arm64" ], @@ -20322,9 +20327,9 @@ } }, "node_modules/typedoc": { - "version": "0.26.5", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.26.5.tgz", - "integrity": "sha512-Vn9YKdjKtDZqSk+by7beZ+xzkkr8T8CYoiasqyt4TTRFy5+UHzL/mF/o4wGBjRF+rlWQHDb0t6xCpA3JNL5phg==", + "version": "0.26.6", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.26.6.tgz", + "integrity": "sha512-SfEU3SH3wHNaxhFPjaZE2kNl/NFtLNW5c1oHsg7mti7GjmUj1Roq6osBQeMd+F4kL0BoRBBr8gQAuqBlfFu8LA==", "dev": true, "dependencies": { "lunr": "^2.3.9", @@ -20400,9 +20405,9 @@ } }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "version": "6.19.6", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.6.tgz", + "integrity": "sha512-e/vggGopEfTKSvj4ihnOLTsqhrKRN3LeO6qSN/GxohhuRv8qH9bNQ4B8W7e/vFL+0XTnmHPB4/kegunZGA4Org==" }, "node_modules/unified": { "version": "11.0.5", @@ -21155,7 +21160,7 @@ }, "packages/mesh-common": { "name": "@meshsdk/common", - "version": "1.6.8", + "version": "1.6.9", "license": "Apache-2.0", "dependencies": { "bech32": "^2.0.0", @@ -21172,7 +21177,7 @@ }, "packages/mesh-contract": { "name": "@meshsdk/contract", - "version": "1.6.8", + "version": "1.6.9", "license": "Apache-2.0", "dependencies": { "@meshsdk/common": "*", @@ -21190,7 +21195,7 @@ }, "packages/mesh-core": { "name": "@meshsdk/core", - "version": "1.6.8", + "version": "1.6.9", "license": "Apache-2.0", "dependencies": { "@meshsdk/common": "*", @@ -21210,12 +21215,12 @@ }, "packages/mesh-core-csl": { "name": "@meshsdk/core-csl", - "version": "1.6.8", + "version": "1.6.9", "license": "Apache-2.0", "dependencies": { "@meshsdk/common": "*", - "@sidan-lab/sidan-csl-rs-browser": "0.7.1", - "@sidan-lab/sidan-csl-rs-nodejs": "0.7.1", + "@sidan-lab/sidan-csl-rs-browser": "0.7.2", + "@sidan-lab/sidan-csl-rs-nodejs": "0.7.2", "json-bigint": "^1.0.0" }, "devDependencies": { @@ -21229,7 +21234,7 @@ }, "packages/mesh-core-cst": { "name": "@meshsdk/core-cst", - "version": "1.6.8", + "version": "1.6.9", "license": "Apache-2.0", "dependencies": { "@cardano-sdk/core": "^0.35.4", @@ -21255,7 +21260,7 @@ }, "packages/mesh-provider": { "name": "@meshsdk/provider", - "version": "1.6.8", + "version": "1.6.9", "license": "Apache-2.0", "dependencies": { "@meshsdk/common": "*", @@ -21271,7 +21276,7 @@ }, "packages/mesh-react": { "name": "@meshsdk/react", - "version": "1.6.8", + "version": "1.6.9", "license": "Apache-2.0", "dependencies": { "@meshsdk/common": "*", @@ -21291,7 +21296,7 @@ }, "packages/mesh-transaction": { "name": "@meshsdk/transaction", - "version": "1.6.8", + "version": "1.6.9", "license": "Apache-2.0", "dependencies": { "@meshsdk/common": "*", @@ -21309,7 +21314,7 @@ }, "packages/mesh-wallet": { "name": "@meshsdk/wallet", - "version": "1.6.8", + "version": "1.6.9", "license": "Apache-2.0", "dependencies": { "@meshsdk/common": "*", diff --git a/packages/mesh-common/package.json b/packages/mesh-common/package.json index fb5f2087..37cf7f85 100644 --- a/packages/mesh-common/package.json +++ b/packages/mesh-common/package.json @@ -1,6 +1,6 @@ { "name": "@meshsdk/common", - "version": "1.6.8", + "version": "1.6.9", "description": "", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/mesh-common/src/constants/protocol-parameters.ts b/packages/mesh-common/src/constants/protocol-parameters.ts index 84f6ee01..2a35ed1c 100644 --- a/packages/mesh-common/src/constants/protocol-parameters.ts +++ b/packages/mesh-common/src/constants/protocol-parameters.ts @@ -21,6 +21,7 @@ export const DEFAULT_PROTOCOL_PARAMETERS: Protocol = { maxTxExSteps: "10000000000", maxBlockExMem: "80000000", maxBlockExSteps: "40000000000", + minFeeRefScriptCostPerByte: 15, }; export const resolveTxFees = ( diff --git a/packages/mesh-common/src/types/protocol.ts b/packages/mesh-common/src/types/protocol.ts index 14f3673b..0a4d380b 100644 --- a/packages/mesh-common/src/types/protocol.ts +++ b/packages/mesh-common/src/types/protocol.ts @@ -21,6 +21,7 @@ export type Protocol = { collateralPercent: number; maxCollateralInputs: number; coinsPerUtxoSize: number; + minFeeRefScriptCostPerByte: number; }; export const castProtocol = ( diff --git a/packages/mesh-common/src/types/transaction-builder/index.ts b/packages/mesh-common/src/types/transaction-builder/index.ts index 0520c65d..7fffc720 100644 --- a/packages/mesh-common/src/types/transaction-builder/index.ts +++ b/packages/mesh-common/src/types/transaction-builder/index.ts @@ -33,6 +33,7 @@ export type MeshTxBuilderBody = { strategy: UtxoSelectionStrategy; includeTxFees: boolean; }; + network: string; }; export const emptyTxBuilderBody = (): MeshTxBuilderBody => ({ @@ -54,6 +55,7 @@ export const emptyTxBuilderBody = (): MeshTxBuilderBody => ({ strategy: "experimental", includeTxFees: true, }, + network: "mainnet", }); // Here @@ -81,4 +83,4 @@ export const validityRangeToObj = (validityRange: ValidityRange): object => { invalidBefore: validityRange.invalidBefore ?? null, invalidHereafter: validityRange.invalidHereafter ?? null, }; -}; \ No newline at end of file +}; diff --git a/packages/mesh-common/src/types/transaction-builder/script.ts b/packages/mesh-common/src/types/transaction-builder/script.ts index 23822e55..97ac77a5 100644 --- a/packages/mesh-common/src/types/transaction-builder/script.ts +++ b/packages/mesh-common/src/types/transaction-builder/script.ts @@ -23,5 +23,5 @@ export type SimpleScriptSourceInfo = type: "Inline"; txHash: string; txIndex: number; - simpleScriptHash: string; + simpleScriptHash?: string; }; diff --git a/packages/mesh-common/test/data/time.test.ts b/packages/mesh-common/test/data/time.test.ts index 140b004b..ad6ea3e4 100644 --- a/packages/mesh-common/test/data/time.test.ts +++ b/packages/mesh-common/test/data/time.test.ts @@ -95,7 +95,10 @@ describe("Time", () => { describe("time tests using blockfrost", () => { it("test preprod", async () => { - if (!process.env.BLOCKFROST_API_KEY_PREPROD) return true; + if (!process.env.BLOCKFROST_API_KEY_PREPROD) { + console.error("could not find blockfrost preprod api key in env"); + process.exit(1); + } const preprodBlockfrost = new BlockfrostProvider( process.env.BLOCKFROST_API_KEY_PREPROD!, ); @@ -114,7 +117,10 @@ describe("Time", () => { }); it("test mainnet", async () => { - if (!process.env.BLOCKFROST_API_KEY_MAINNET) return true; + if (!process.env.BLOCKFROST_API_KEY_MAINNET) { + console.error("could not find blockfrost mainnet api key in env"); + process.exit(1); + } const mainnetBlockfrost = new BlockfrostProvider( process.env.BLOCKFROST_API_KEY_MAINNET!, ); @@ -133,7 +139,10 @@ describe("Time", () => { }); it("test preview", async () => { - if (!process.env.BLOCKFROST_API_KEY_PREVIEW) return true; + if (!process.env.BLOCKFROST_API_KEY_PREVIEW) { + console.error("could not find blockfrost preview api key in env"); + process.exit(1); + } const previewBlockfrost = new BlockfrostProvider( process.env.BLOCKFROST_API_KEY_PREVIEW!, ); diff --git a/packages/mesh-common/test/types/protocol.test.ts b/packages/mesh-common/test/types/protocol.test.ts index 9554f8db..b04b3486 100644 --- a/packages/mesh-common/test/types/protocol.test.ts +++ b/packages/mesh-common/test/types/protocol.test.ts @@ -49,6 +49,7 @@ describe("Protocol", () => { priceStep: 0, epoch: DEFAULT_PROTOCOL_PARAMETERS.epoch, decentralisation: DEFAULT_PROTOCOL_PARAMETERS.decentralisation, + minFeeRefScriptCostPerByte: 15, }; const casted = castProtocol(uncasted); diff --git a/packages/mesh-contract/package.json b/packages/mesh-contract/package.json index 3d3bbc7a..86b476b7 100644 --- a/packages/mesh-contract/package.json +++ b/packages/mesh-contract/package.json @@ -1,6 +1,6 @@ { "name": "@meshsdk/contract", - "version": "1.6.8", + "version": "1.6.9", "description": "", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/mesh-contract/src/swap/offchain.ts b/packages/mesh-contract/src/swap/offchain.ts index 40abc2b0..2544d09f 100644 --- a/packages/mesh-contract/src/swap/offchain.ts +++ b/packages/mesh-contract/src/swap/offchain.ts @@ -4,12 +4,12 @@ import { ConStr0, mConStr0, mConStr1, + MeshValue, pubKeyAddress, PubKeyAddress, UTxO, value, Value, - MeshValue } from "@meshsdk/common"; import { deserializeAddress, @@ -89,7 +89,10 @@ export class MeshSwapContract extends MeshTxInitiator { .spendingReferenceTxInInlineDatumPresent() .spendingReferenceTxInRedeemerValue(mConStr1([])) .txInScript(this.scriptCbor) - .txOut(initiatorAddress, MeshValue.fromValue(initiatorToReceive).toAssets()) + .txOut( + initiatorAddress, + MeshValue.fromValue(initiatorToReceive).toAssets(), + ) .changeAddress(walletAddress) .txInCollateral( collateral.input.txHash, diff --git a/packages/mesh-core-csl/package.json b/packages/mesh-core-csl/package.json index 99a6f9ec..04d0183b 100644 --- a/packages/mesh-core-csl/package.json +++ b/packages/mesh-core-csl/package.json @@ -1,6 +1,6 @@ { "name": "@meshsdk/core-csl", - "version": "1.6.8", + "version": "1.6.9", "description": "", "main": "./dist/index.cjs", "module": "./dist/index.js", @@ -39,8 +39,8 @@ }, "dependencies": { "@meshsdk/common": "*", - "@sidan-lab/sidan-csl-rs-browser": "0.7.1", - "@sidan-lab/sidan-csl-rs-nodejs": "0.7.1", + "@sidan-lab/sidan-csl-rs-browser": "0.7.2", + "@sidan-lab/sidan-csl-rs-nodejs": "0.7.2", "json-bigint": "^1.0.0" }, "prettier": "@meshsdk/configs/prettier", diff --git a/packages/mesh-core-csl/src/core/adaptor/index.ts b/packages/mesh-core-csl/src/core/adaptor/index.ts index 1a709d76..ea20a77f 100644 --- a/packages/mesh-core-csl/src/core/adaptor/index.ts +++ b/packages/mesh-core-csl/src/core/adaptor/index.ts @@ -19,6 +19,7 @@ export const meshTxBuilderBodyToObj = ({ certificates, signingKey, withdrawals, + network, }: MeshTxBuilderBody) => { return { inputs: inputs.map(txInToObj), @@ -33,6 +34,7 @@ export const meshTxBuilderBodyToObj = ({ certificates: certificates.map(certificateToObj), signingKey: signingKey, withdrawals: withdrawals.map(withdrawalToObj), + network, }; }; diff --git a/packages/mesh-core-csl/src/deser/deserializer.ts b/packages/mesh-core-csl/src/deser/deserializer.ts index ab953864..e0d27662 100644 --- a/packages/mesh-core-csl/src/deser/deserializer.ts +++ b/packages/mesh-core-csl/src/deser/deserializer.ts @@ -33,8 +33,8 @@ export const deserializePlutusScript = ( plutusScript: string, version: LanguageVersion, ) => - csl.PlutusScript.from_bytes_with_version( - toBytes(plutusScript), + csl.PlutusScript.from_hex_with_version( + plutusScript, LANGUAGE_VERSIONS[version], ); diff --git a/packages/mesh-core-csl/test/core/builder.test.ts b/packages/mesh-core-csl/test/core/builder.test.ts index b425b5e9..a69452c0 100644 --- a/packages/mesh-core-csl/test/core/builder.test.ts +++ b/packages/mesh-core-csl/test/core/builder.test.ts @@ -90,6 +90,7 @@ describe("Builder", () => { certificates: [], withdrawals: [], signingKey: [], + network: 'preprod' }; const txHex = serializer.serializeTxBody(body, DEFAULT_PROTOCOL_PARAMETERS); expect(txHex).toEqual( diff --git a/packages/mesh-core-cst/package.json b/packages/mesh-core-cst/package.json index 8498accc..ab4e49e1 100644 --- a/packages/mesh-core-cst/package.json +++ b/packages/mesh-core-cst/package.json @@ -1,6 +1,6 @@ { "name": "@meshsdk/core-cst", - "version": "1.6.8", + "version": "1.6.9", "description": "", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/mesh-core/package.json b/packages/mesh-core/package.json index 155fba18..4f423ff0 100644 --- a/packages/mesh-core/package.json +++ b/packages/mesh-core/package.json @@ -1,6 +1,6 @@ { "name": "@meshsdk/core", - "version": "1.6.8", + "version": "1.6.9", "description": "", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/mesh-provider/package.json b/packages/mesh-provider/package.json index cc2a0356..524c6936 100644 --- a/packages/mesh-provider/package.json +++ b/packages/mesh-provider/package.json @@ -1,6 +1,6 @@ { "name": "@meshsdk/provider", - "version": "1.6.8", + "version": "1.6.9", "description": "", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/mesh-provider/src/blockfrost.ts b/packages/mesh-provider/src/blockfrost.ts index 24d4521c..5f267761 100644 --- a/packages/mesh-provider/src/blockfrost.ts +++ b/packages/mesh-provider/src/blockfrost.ts @@ -8,6 +8,7 @@ import { BlockInfo, castProtocol, fromUTF8, + IEvaluator, IFetcher, IListener, ISubmitter, @@ -28,7 +29,9 @@ import { parseAssetUnit } from "./utils/parse-asset-unit"; export type BlockfrostSupportedNetworks = "mainnet" | "preview" | "preprod"; -export class BlockfrostProvider implements IFetcher, IListener, ISubmitter { +export class BlockfrostProvider + implements IFetcher, IListener, ISubmitter, IEvaluator +{ private readonly _axiosInstance: AxiosInstance; private readonly _network: BlockfrostSupportedNetworks; diff --git a/packages/mesh-provider/src/yaci.ts b/packages/mesh-provider/src/yaci.ts index 817135b7..b01f5054 100644 --- a/packages/mesh-provider/src/yaci.ts +++ b/packages/mesh-provider/src/yaci.ts @@ -2,17 +2,20 @@ import axios, { AxiosInstance } from "axios"; import { AccountInfo, + Action, Asset, AssetMetadata, BlockInfo, castProtocol, fromUTF8, + IEvaluator, IFetcher, IListener, ISubmitter, NativeScript, PlutusScript, Protocol, + RedeemerTagType, SUPPORTED_HANDLES, TransactionInfo, Unit, @@ -23,7 +26,9 @@ import { resolveRewardAddress, toScriptRef } from "@meshsdk/core-cst"; import { parseHttpError } from "./utils"; import { parseAssetUnit } from "./utils/parse-asset-unit"; -export class YaciProvider implements IFetcher, IListener, ISubmitter { +export class YaciProvider + implements IFetcher, IListener, ISubmitter, IEvaluator +{ private readonly _axiosInstance: AxiosInstance; /** @@ -385,7 +390,7 @@ export class YaciProvider implements IFetcher, IListener, ISubmitter { } } - async evaluateTx(txHex: string): Promise { + async evaluateTx(txHex: string) { try { const headers = { "Content-Type": "application/cbor" }; const { status, data } = await this._axiosInstance.post( @@ -396,8 +401,26 @@ export class YaciProvider implements IFetcher, IListener, ISubmitter { }, ); - if (status === 200) { - return data; + if (status === 200 && data.result.EvaluationResult) { + const tagMap: { [key: string]: RedeemerTagType } = { + spend: "SPEND", + mint: "MINT", + certificate: "CERT", + withdrawal: "REWARD", + }; + const result: Omit[] = []; + + Object.keys(data.result.EvaluationResult).forEach((key) => { + const [tagKey, index] = key.split(":"); + const { memory, steps } = data.result.EvaluationResult[key]; + result.push({ + tag: tagMap[tagKey!]!, + index: Number(index), + budget: { mem: memory, steps }, + }); + }); + + return result; } throw parseHttpError(data); diff --git a/packages/mesh-react/package.json b/packages/mesh-react/package.json index 7d73cb14..8e121376 100644 --- a/packages/mesh-react/package.json +++ b/packages/mesh-react/package.json @@ -1,6 +1,6 @@ { "name": "@meshsdk/react", - "version": "1.6.8", + "version": "1.6.9", "description": "", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/mesh-transaction/package.json b/packages/mesh-transaction/package.json index 4caa512a..7b0d79aa 100644 --- a/packages/mesh-transaction/package.json +++ b/packages/mesh-transaction/package.json @@ -1,6 +1,6 @@ { "name": "@meshsdk/transaction", - "version": "1.6.8", + "version": "1.6.9", "description": "", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/mesh-transaction/src/mesh-tx-builder/index.ts b/packages/mesh-transaction/src/mesh-tx-builder/index.ts index 3fade083..f8100447 100644 --- a/packages/mesh-transaction/src/mesh-tx-builder/index.ts +++ b/packages/mesh-transaction/src/mesh-tx-builder/index.ts @@ -99,7 +99,7 @@ export class MeshTxBuilder extends MeshTxBuilderCore { const txEvaluation = await this.evaluator .evaluateTx(txHex) .catch((error) => { - throw Error(`Tx evaluation failed: ${error}`); + throw Error(`Tx evaluation failed: ${error} \n For txHex: ${txHex}`); }); this.updateRedeemer(this.meshTxBuilderBody, txEvaluation); txHex = this.serializer.serializeTxBody( @@ -227,8 +227,10 @@ export class MeshTxBuilder extends MeshTxBuilderCore { throw Error( `Couldn't find script reference utxo for ${scriptSource.txHash}#${scriptSource.txIndex}`, ); - scriptSource.scriptHash = scriptRefUtxo?.output.scriptHash; - // TODO: Calculate script size + scriptSource.scriptHash = scriptRefUtxo?.output.scriptHash!; + scriptSource.scriptSize = ( + scriptRefUtxo?.output.scriptRef!.length / 2 + ).toString(); } }; @@ -253,8 +255,9 @@ export class MeshTxBuilder extends MeshTxBuilderCore { private isRefScriptInfoComplete = (scriptTxIn: ScriptTxIn): boolean => { const { scriptSource } = scriptTxIn.scriptTxIn; - if (scriptSource?.type === "Inline" && !scriptSource?.scriptHash) - return false; + if (scriptSource?.type === "Inline") { + if (scriptSource?.scriptHash || scriptSource?.scriptSize) return false; + } return true; }; } diff --git a/packages/mesh-transaction/src/mesh-tx-builder/tx-builder-core.ts b/packages/mesh-transaction/src/mesh-tx-builder/tx-builder-core.ts index d3933f41..d2e4c882 100644 --- a/packages/mesh-transaction/src/mesh-tx-builder/tx-builder-core.ts +++ b/packages/mesh-transaction/src/mesh-tx-builder/tx-builder-core.ts @@ -12,6 +12,7 @@ import { LanguageVersion, MeshTxBuilderBody, MintItem, + Network, Output, PoolParams, Protocol, @@ -405,13 +406,15 @@ export class MeshTxBuilderCore { * Set the reference input where it would also be spent in the transaction * @param txHash The transaction hash of the reference UTxO * @param txIndex The transaction index of the reference UTxO - * @param spendingScriptHash The script hash of the spending script + * @param scriptSize The script size in bytes of the spending script (can be obtained by script hex length / 2) + * @param scriptHash The script hash of the spending script * @returns The MeshTxBuilder instance */ spendingTxInReference = ( txHash: string, txIndex: number, - spendingScriptHash?: string, + scriptSize?: string, + scriptHash?: string, ) => { if (!this.txInQueueItem) throw Error("Undefined input"); if (this.txInQueueItem.type === "PubKey") @@ -426,9 +429,9 @@ export class MeshTxBuilderCore { type: "Inline", txHash, txIndex, - scriptHash: spendingScriptHash, + scriptHash, version: this.plutusSpendingScriptVersion || "V2", - scriptSize: "0", // TODO + scriptSize, }; return this; }; @@ -552,9 +555,16 @@ export class MeshTxBuilderCore { * Use reference script for minting * @param txHash The transaction hash of the UTxO * @param txIndex The transaction index of the UTxO + * @param scriptSize The script size in bytes of the script (can be obtained by script hex length / 2) + * @param scriptHash The script hash of the script * @returns The MeshTxBuilder instance */ - mintTxInReference = (txHash: string, txIndex: number) => { + mintTxInReference = ( + txHash: string, + txIndex: number, + scriptSize?: string, + scriptHash?: string, + ) => { if (!this.mintItem) throw Error("Undefined mint"); if (!this.mintItem.type) throw Error("Mint information missing"); if (this.mintItem.type == "Native") { @@ -569,8 +579,8 @@ export class MeshTxBuilderCore { txHash, txIndex, version: this.plutusMintingScriptVersion, - scriptSize: "0", // TODO - scriptHash: "", // TODO + scriptSize, + scriptHash, }; return this; }; @@ -752,15 +762,15 @@ export class MeshTxBuilderCore { * Add a withdrawal reference to the MeshTxBuilder instance * @param txHash The transaction hash of reference UTxO * @param txIndex The transaction index of reference UTxO - * @param withdrawalScriptHash The script hash of the withdrawal script - * @param scriptSize The script size of the withdrawal script + * @param scriptSize The script size in bytes of the withdrawal script (can be obtained by script hex length / 2) + * @param scriptHash The script hash of the withdrawal script * @returns The MeshTxBuilder instance */ withdrawalTxInReference = ( txHash: string, txIndex: number, - withdrawalScriptHash?: string, scriptSize?: string, + scriptHash?: string, ) => { if (!this.withdrawalItem) throw Error("withdrawalTxInReference: Undefined withdrawal"); @@ -772,9 +782,9 @@ export class MeshTxBuilderCore { type: "Inline", txHash, txIndex, - scriptHash: withdrawalScriptHash, + scriptHash, version: this.plutusWithdrawalScriptVersion || "V2", - scriptSize: scriptSize || "0", + scriptSize, }; return this; }; @@ -936,16 +946,16 @@ export class MeshTxBuilderCore { * Adds a script witness to the certificate * @param txHash The transaction hash of the reference UTxO * @param txIndex The transaction index of the reference UTxO - * @param spendingScriptHash The script hash of the spending script - * @param version Optional - The plutus version of the script, null version implies Native Script - * @param scriptSize The size of the plutus script referenced + * @param scriptSize The size of the plutus script in bytes referenced (can be obtained by script hex length / 2) + * @param scriptHash The script hash of the spending script + * @param version The plutus version of the script, null version implies Native Script */ certificateTxInReference = ( txHash: string, txIndex: number, - spendingScriptHash: string, + scriptSize?: string, + scriptHash?: string, version?: LanguageVersion, - scriptSize = "0", // Must be set in Conway era ) => { const currentCert = this.meshTxBuilderBody.certificates.pop(); if (!currentCert) { @@ -961,7 +971,7 @@ export class MeshTxBuilderCore { type: "Inline", txHash, txIndex, - simpleScriptHash: spendingScriptHash, + simpleScriptHash: scriptHash, }, }); } else { @@ -972,7 +982,7 @@ export class MeshTxBuilderCore { type: "Inline", txHash, txIndex, - scriptHash: spendingScriptHash, + scriptHash, scriptSize, }, redeemer: @@ -1098,6 +1108,16 @@ export class MeshTxBuilderCore { return this; }; + /** + * Sets the network to use, this is mainly to know the cost models to be used to calculate script integrity hash + * @param network The specific network this transaction is being built for ("testnet" | "preview" | "preprod" | "mainnet") + * @returns The MeshTxBuilder instance + */ + setNetwork = (network: Network) => { + this.meshTxBuilderBody.network = network; + return this; + }; + protected queueAllLastItem = () => { if (this.txOutput) { this.meshTxBuilderBody.outputs.push(this.txOutput); diff --git a/packages/mesh-transaction/src/transaction/index.ts b/packages/mesh-transaction/src/transaction/index.ts index 09e0aad3..e678f0e1 100644 --- a/packages/mesh-transaction/src/transaction/index.ts +++ b/packages/mesh-transaction/src/transaction/index.ts @@ -11,6 +11,7 @@ import { metadataToCip68, Mint, NativeScript, + Network, PlutusScript, POLICY_ID_LENGTH, PoolParams, @@ -241,6 +242,7 @@ export class Transaction { .spendingTxInReference( script.input.txHash, script.input.outputIndex, + (script.output.scriptRef.length / 2).toString(), script.output.scriptHash, ) .txInRedeemerValue(red.data, "Mesh", red.budget); @@ -339,6 +341,8 @@ export class Transaction { .mintTxInReference( forgeScript.input.txHash, forgeScript.input.outputIndex, + (forgeScript.output.scriptRef.length / 2).toString(), + forgeScript.output.scriptHash, ) .mintRedeemerValue(redeemer.data, "Mesh", redeemer.budget); if (mint.cip68ScriptAddress) { @@ -347,6 +351,8 @@ export class Transaction { .mintTxInReference( forgeScript.input.txHash, forgeScript.input.outputIndex, + (forgeScript.output.scriptRef.length / 2).toString(), + forgeScript.output.scriptHash, ) .mintRedeemerValue(redeemer.data, "Mesh", redeemer.budget); break; @@ -393,8 +399,9 @@ export class Transaction { this.setMetadata(Number(mint.label), { [policyId]: { [mint.assetName]: mint.metadata }, }); + } else { + this.setMetadata(Number(mint.label), mint.metadata); } - this.setMetadata(Number(mint.label), mint.metadata); } return this; @@ -451,6 +458,16 @@ export class Transaction { return this; } + /** + * Sets the network to use, this is mainly to know the cost models to be used to calculate script integrity hash + * @param network The specific network this transaction is being built for ("testnet" | "preview" | "preprod" | "mainnet") + * @returns The Transaction object. + */ + setNetwork = (network: Network) => { + this.txBuilder.setNetwork(network); + return this; + }; + /** * Sets the required signers for the transaction. * diff --git a/packages/mesh-wallet/package.json b/packages/mesh-wallet/package.json index 08cadb24..39f2d393 100644 --- a/packages/mesh-wallet/package.json +++ b/packages/mesh-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@meshsdk/wallet", - "version": "1.6.8", + "version": "1.6.9", "description": "", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/mesh-wallet/src/browser/index.ts b/packages/mesh-wallet/src/browser/index.ts index 0751da3f..e618b2e7 100644 --- a/packages/mesh-wallet/src/browser/index.ts +++ b/packages/mesh-wallet/src/browser/index.ts @@ -232,21 +232,6 @@ export class BrowserWallet implements IInitiator, ISigner, ISubmitter { return usedAddresses.map((usa) => addressToBech32(deserializeAddress(usa))); } - /** - * Get a list of UTXOs to be used as collateral inputs for transactions with plutus script inputs. - * - * This is used in transaction building. - * - * @returns a list of UTXOs - */ - async getUsedCollateral( - limit = DEFAULT_PROTOCOL_PARAMETERS.maxCollateralInputs, - ): Promise { - const collateral = - (await this._walletInstance.experimental.getCollateral()) ?? []; - return collateral.map((c) => deserializeTxUnspentOutput(c)).slice(0, limit); - } - /** * Return a list of all UTXOs (unspent transaction outputs) controlled by the wallet. * @@ -335,7 +320,7 @@ export class BrowserWallet implements IInitiator, ISigner, ISubmitter { const unsignedTx = unsignedTxs[i]!; const cWitness = witnessSets[i]!; if (cWitness === "") { - // It's possible that txs are signed just to give + // It's possible that txs are signed just to give // browser wallet the tx context signedTxs.push(unsignedTx); } else { @@ -382,10 +367,21 @@ export class BrowserWallet implements IInitiator, ISigner, ISubmitter { * * @returns a list of UTXOs */ - async getCollateralUnspentOutput(): Promise { - const collateral = - (await this._walletInstance.experimental.getCollateral()) ?? []; - return collateral.map((c) => deserializeTxUnspentOutput(c)); + async getCollateralUnspentOutput( + limit = DEFAULT_PROTOCOL_PARAMETERS.maxCollateralInputs, + ): Promise { + let collateral: string[] = []; + try { + collateral = (await this._walletInstance.getCollateral()) ?? []; + } catch (e) { + try { + collateral = + (await this._walletInstance.experimental.getCollateral()) ?? []; + } catch (e) { + console.error(e); + } + } + return collateral.map((c) => deserializeTxUnspentOutput(c)).slice(0, limit); } /** diff --git a/packages/mesh-wallet/src/mesh/index.ts b/packages/mesh-wallet/src/mesh/index.ts index 39768d1f..a3d0b8ad 100644 --- a/packages/mesh-wallet/src/mesh/index.ts +++ b/packages/mesh-wallet/src/mesh/index.ts @@ -283,23 +283,6 @@ export class MeshWallet implements IInitiator, ISigner, ISubmitter { return [this.getChangeAddress()]; } - /** - * Get a list of UTXOs to be used as collateral inputs for transactions with plutus script inputs. - * - * This is used in transaction building. - * - * @returns a list of UTXOs - */ - async getUsedCollateral(): Promise { - const collateralUtxo = await this.getCollateral(); - - const unspentOutput = collateralUtxo.map((utxo) => { - return toTxUnspentOutput(utxo); - }); - - return unspentOutput; - } - /** * Get a list of UTXOs to be used for transaction building. * diff --git a/packages/mesh-wallet/src/types/index.ts b/packages/mesh-wallet/src/types/index.ts index f9758fdb..1ae1baac 100644 --- a/packages/mesh-wallet/src/types/index.ts +++ b/packages/mesh-wallet/src/types/index.ts @@ -23,6 +23,7 @@ export interface Cip30WalletApi { getBalance(): Promise; getChangeAddress(): Promise; getExtensions(): Promise<{ cip: number }[]>; + getCollateral(): Promise; getNetworkId(): Promise; getRewardAddresses(): Promise; getUnusedAddresses(): Promise;