diff --git a/examples/cactus-example-carbon-accounting-frontend/angular.json b/examples/cactus-example-carbon-accounting-frontend/angular.json
index de1988e243..dcce832c64 100644
--- a/examples/cactus-example-carbon-accounting-frontend/angular.json
+++ b/examples/cactus-example-carbon-accounting-frontend/angular.json
@@ -178,7 +178,8 @@
"cli": {
"schematicCollections": [
"@ionic/angular-toolkit"
- ]
+ ],
+ "analytics": false
},
"schematics": {
"@ionic/angular-toolkit:component": {
diff --git a/examples/cactus-example-carbon-accounting-frontend/package.json b/examples/cactus-example-carbon-accounting-frontend/package.json
index c6fc1018d7..b5def6f082 100644
--- a/examples/cactus-example-carbon-accounting-frontend/package.json
+++ b/examples/cactus-example-carbon-accounting-frontend/package.json
@@ -77,9 +77,12 @@
"@angular/compiler-cli": "15.2.9",
"@angular/language-service": "15.2.9",
"@ionic/angular-toolkit": "9.0.0",
+ "browserify-fs": "1.0.0",
"https-browserify": "1.0.0",
+ "net-browserify": "0.2.4",
"os-browserify": "0.3.0",
- "path-browserify": "1.0.1"
+ "path-browserify": "1.0.1",
+ "tls-browserify": "0.2.2"
},
"engines": {
"node": ">=10",
diff --git a/examples/cactus-example-carbon-accounting-frontend/webpack.config.overrides.js b/examples/cactus-example-carbon-accounting-frontend/webpack.config.overrides.js
index 16c5aebdbb..0eee5cb3f1 100644
--- a/examples/cactus-example-carbon-accounting-frontend/webpack.config.overrides.js
+++ b/examples/cactus-example-carbon-accounting-frontend/webpack.config.overrides.js
@@ -8,11 +8,14 @@ module.exports = {
fallback: {
crypto: require.resolve("crypto-browserify"),
buffer: require.resolve("buffer/"),
+ fs: require.resolve("browserify-fs"),
http: require.resolve("stream-http"),
https: require.resolve("https-browserify"),
+ net: require.resolve("net-browserify"),
os: require.resolve("os-browserify/browser"),
path: require.resolve("path-browserify"),
stream: require.resolve("stream-browserify"),
+ tls: require.resolve("tls-browserify"),
zlib: require.resolve("browserify-zlib"),
},
},
diff --git a/examples/cactus-example-supply-chain-frontend/package.json b/examples/cactus-example-supply-chain-frontend/package.json
index ff1ca7b95c..b6a3c28aa9 100644
--- a/examples/cactus-example-supply-chain-frontend/package.json
+++ b/examples/cactus-example-supply-chain-frontend/package.json
@@ -77,7 +77,13 @@
"@angular/compiler": "15.2.9",
"@angular/compiler-cli": "15.2.9",
"@angular/language-service": "15.2.9",
- "@ionic/angular-toolkit": "9.0.0"
+ "@ionic/angular-toolkit": "9.0.0",
+ "browserify-fs": "1.0.0",
+ "https-browserify": "1.0.0",
+ "net-browserify": "0.2.4",
+ "os-browserify": "0.3.0",
+ "path-browserify": "1.0.1",
+ "tls-browserify": "0.2.2"
},
"engines": {
"node": ">=10",
diff --git a/examples/cactus-example-supply-chain-frontend/webpack.config.overrides.js b/examples/cactus-example-supply-chain-frontend/webpack.config.overrides.js
index 86e74dcfae..193a333d86 100644
--- a/examples/cactus-example-supply-chain-frontend/webpack.config.overrides.js
+++ b/examples/cactus-example-supply-chain-frontend/webpack.config.overrides.js
@@ -24,11 +24,14 @@ module.exports = {
constants: require.resolve("constants-browserify"),
crypto: require.resolve("crypto-browserify"),
buffer: require.resolve("buffer/"),
+ fs: require.resolve("browserify-fs"),
+ net: require.resolve("net-browserify"),
http: require.resolve("stream-http"),
https: require.resolve("https-browserify"),
os: require.resolve("os-browserify/browser"),
path: require.resolve("path-browserify"),
stream: require.resolve("stream-browserify"),
+ tls: require.resolve("tls-browserify"),
zlib: require.resolve("browserify-zlib"),
},
},
diff --git a/lerna.json b/lerna.json
index 2dc8f3ea4f..dc4094b381 100644
--- a/lerna.json
+++ b/lerna.json
@@ -3,6 +3,9 @@
"packages/cactus-*",
"examples/cactus-*",
"extensions/cactus-*",
+ "packages/cacti-*",
+ "examples/cacti-*",
+ "extensions/cacti-*",
"weaver/common/protos-js",
"weaver/sdks/fabric/interoperation-node-sdk",
"weaver/sdks/besu/node",
diff --git a/package.json b/package.json
index 82ee8c122c..a414dfdc0f 100644
--- a/package.json
+++ b/package.json
@@ -7,6 +7,9 @@
"packages/cactus-*",
"examples/cactus-*",
"extensions/cactus-*",
+ "packages/cacti-*",
+ "examples/cacti-*",
+ "extensions/cacti-*",
"weaver/common/protos-js",
"weaver/sdks/fabric/interoperation-node-sdk",
"weaver/sdks/besu/node",
@@ -57,7 +60,7 @@
"build:prod:frontend": "lerna run build:prod:frontend",
"build:dev": "npm-run-all build:dev:backend webpack:dev:web build:dev:frontend",
"build:dev:backend": "npm-run-all tsc build:dev:backend:postbuild",
- "build:dev:frontend": "lerna run build:dev:frontend --scope=\"@hyperledger/cactus-example-supply-chain-frontend\" && lerna run build:dev:frontend --scope=\"@hyperledger/cactus-example-carbon-accounting-frontend\"",
+ "build:dev:frontend": "lerna run build:dev:frontend --scope='@hyperledger/cactus-example-*-frontend' --scope='@hyperledger/cacti-cmd-gui-app'",
"build:dev:common": "lerna exec --stream --scope '*/*common' -- 'del-cli dist/** && tsc --project ./tsconfig.json && webpack --env=dev --target=node --config ../../webpack.config.js'",
"build:dev:backend:postbuild": "lerna run build:dev:backend:postbuild",
"test:cmd-api-server": "tap --ts --timeout=600 \"packages/cactus-*cmd-api-server/src/test/typescript/{unit,integration}/\"",
diff --git a/packages/cacti-cmd-gui-app/README.md b/packages/cacti-cmd-gui-app/README.md
new file mode 100644
index 0000000000..8f63795e1e
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/README.md
@@ -0,0 +1,61 @@
+# `@hyperledger/cacti-cmd-gui-app`
+
+This component allows viewing ledger data in Supabase or other postgreSQL compatible database. The data is fed to supabase by persistence plugins for each ledgers.
+
+## Summary
+
+- [`@hyperledger/cacti-cmd-gui-app`](#hyperledgercacti-cmd-gui-app)
+ - [Summary](#summary)
+ - [Remarks](#remarks)
+ - [Getting Started](#getting-started)
+ - [Prerequisites using yarn](#prerequisites-using-yarn)
+ - [Alternative Prerequisites using npm](#alternative-prerequisites-using-npm)
+ - [Usage](#usage)
+ - [Contributing](#contributing)
+ - [License](#license)
+ - [Acknowledgments](#acknowledgments)
+
+## Remarks
+
+- Plugin requires running Supabase or other database and persistence plugins in order to properly view ledger data.
+- Currently, fabric and ethereum based ledgers are supported.
+
+## Getting Started
+
+Clone the git repository on your local machine. Follow these instructions that will get you a copy of the project up and running on your local machine for development and testing purposes.
+
+### Prerequisites using yarn
+
+In the root of the project, execute the command to install and build the dependencies. It will also build this GUI front-end component:
+
+```sh
+yarn run build
+```
+### Alternative Prerequisites using npm
+
+In the root of the project, execute the command to install and build the dependencies. It will also build this GUI front-end component:
+
+```sh
+npm install
+```
+
+### Usage
+- Run Supabase instance (see documentation for detailed instructions). For development purposes, you can use our image located in `tools/docker/supabase-all-in-one`.
+- Run one or more persistence plugins:
+ - [Ethereum](../cacti-plugin-persistence-ethereum)
+ - [Fabric] (../cacti-plugin-persistence-fabric)
+- Edit [Supabase configuration file](./src/supabase-client.tsx), set correct supabase API URL and service_role key.
+- Execute `yarn run start` or `npm start` in this package directory.
+- The running application address: http://localhost:3001/ (can be changed in [Vite configuration](./vite.config.ts))
+
+## Contributing
+
+We welcome contributions to Hyperledger Cacti in many forms, and there’s always plenty to do!
+
+Please review [CONTIRBUTING.md](../../CONTRIBUTING.md) to get started.
+
+## License
+
+This distribution is published under the Apache License Version 2.0 found in the [LICENSE](../../LICENSE) file.
+
+## Acknowledgments
\ No newline at end of file
diff --git a/packages/cacti-cmd-gui-app/index.html b/packages/cacti-cmd-gui-app/index.html
new file mode 100644
index 0000000000..6da7c5535b
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/index.html
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+ Cacti GUI
+
+
+
+
+
+
+
+
diff --git a/packages/cacti-cmd-gui-app/package.json b/packages/cacti-cmd-gui-app/package.json
new file mode 100644
index 0000000000..4eab4f134c
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/package.json
@@ -0,0 +1,77 @@
+{
+ "name": "@hyperledger/cacti-cmd-gui-app",
+ "version": "2.0.0-alpha.1",
+ "description": "Cacti GUI for visualizing ledger data.",
+ "keywords": [
+ "Hyperledger",
+ "Cacti",
+ "Integration",
+ "Blockchain",
+ "Distributed Ledger Technology"
+ ],
+ "homepage": "https://github.com/hyperledger/cacti#readme",
+ "bugs": {
+ "url": "https://github.com/hyperledger/cacti/issues"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/hyperledger/cacti.git"
+ },
+ "license": "Apache-2.0",
+ "author": {
+ "name": "Hyperledger Cacti Contributors",
+ "email": "cacti@lists.hyperledger.org",
+ "url": "https://www.hyperledger.org/use/cacti"
+ },
+ "contributors": [
+ {
+ "name": "Please add yourself to the list of contributors",
+ "email": "your.name@example.com",
+ "url": "https://example.com"
+ },
+ {
+ "name": "Eryk Baranowski",
+ "email": "eryk.baranowski@fujitsu.com",
+ "url": "https://www.fujitsu.com/global/"
+ },
+ {
+ "name": "Barnaba Pawelczak",
+ "email": "barnaba.pawelczak@fujitsu.com",
+ "url": "https://www.fujitsu.com/global/"
+ }
+ ],
+ "scripts": {
+ "start": "vite",
+ "serve": "vite preview",
+ "build": "yarn run build:prod:frontend",
+ "build:dev:frontend": "vite build --mode=development",
+ "build:prod:frontend": "vite build"
+ },
+ "devDependencies": {
+ "autoprefixer": "10.4.8",
+ "postcss": "8.4.16",
+ "supabase": "1.28.4",
+ "typescript-plugin-css-modules": "4.1.1",
+ "vite": "3.0.0",
+ "vite-plugin-solid": "2.3.0"
+ },
+ "dependencies": {
+ "@solidjs/router": "0.4.2",
+ "@supabase/supabase-js": "1.35.6",
+ "apexcharts": "3.36.0",
+ "chart.js": "3.9.1",
+ "moment": "2.29.4",
+ "solid-apexcharts": "0.1.6",
+ "solid-icons": "1.0.4",
+ "solid-js": "1.5.7",
+ "solid-slider": "1.3.9",
+ "solid-toast": "^0.4.0"
+ },
+ "engines": {
+ "npm": ">=6"
+ },
+ "publishConfig": {
+ "access": "public"
+ },
+ "watch": {}
+}
diff --git a/packages/cacti-cmd-gui-app/postcss.config.js b/packages/cacti-cmd-gui-app/postcss.config.js
new file mode 100644
index 0000000000..a47ef4f952
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/postcss.config.js
@@ -0,0 +1,5 @@
+module.exports = {
+ plugins: {
+ autoprefixer: {},
+ },
+};
diff --git a/packages/cacti-cmd-gui-app/src/App.module.css b/packages/cacti-cmd-gui-app/src/App.module.css
new file mode 100644
index 0000000000..cba488b71c
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/App.module.css
@@ -0,0 +1,12 @@
+.main {
+ width: 100%;
+}
+.content {
+ margin: 1rem 2rem;
+}
+
+@media (max-width: 1699px) {
+ .content {
+ margin: 1rem;
+ }
+}
\ No newline at end of file
diff --git a/packages/cacti-cmd-gui-app/src/App.tsx b/packages/cacti-cmd-gui-app/src/App.tsx
new file mode 100644
index 0000000000..a810c8f041
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/App.tsx
@@ -0,0 +1,18 @@
+import { Component } from "solid-js";
+import Pages from "./pages/Pages";
+import Menu from "./components/UI/Menu/Menu";
+// @ts-expect-error
+import styles from "./App.module.css";
+
+const App: Component = () => {
+ return (
+
+ );
+};
+
+export default App;
diff --git a/packages/cacti-cmd-gui-app/src/assets/favicon.ico b/packages/cacti-cmd-gui-app/src/assets/favicon.ico
new file mode 100644
index 0000000000..b836b2bcca
Binary files /dev/null and b/packages/cacti-cmd-gui-app/src/assets/favicon.ico differ
diff --git a/packages/cacti-cmd-gui-app/src/components/AccountCard/AccountCard.module.css b/packages/cacti-cmd-gui-app/src/components/AccountCard/AccountCard.module.css
new file mode 100644
index 0000000000..45da5dea56
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/components/AccountCard/AccountCard.module.css
@@ -0,0 +1,19 @@
+.card {
+ display: flex;
+ justify-content: center;
+ background-color: rgb(252, 249, 249);
+ align-items: center;
+ height: 5rem;
+ padding: 0 2rem;
+ margin-top: 5px;
+ border-radius: 10px;
+ border: .5px solid rgb(224, 228, 224);
+ width: 35rem;
+ font-size: 18px;
+}
+
+.card:hover {
+ cursor: pointer;
+ background-color: #ffffff;
+ border:1px solid rgb(39, 153, 39);
+}
\ No newline at end of file
diff --git a/packages/cacti-cmd-gui-app/src/components/AccountCard/AccountCard.tsx b/packages/cacti-cmd-gui-app/src/components/AccountCard/AccountCard.tsx
new file mode 100644
index 0000000000..322125ca5e
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/components/AccountCard/AccountCard.tsx
@@ -0,0 +1,19 @@
+import { useParams, useNavigate } from "@solidjs/router";
+import { Component } from "solid-js";
+// @ts-expect-error
+import styles from "./AccountCard.module.css";
+
+const AccountCard: Component<{ address: string }> = (props) => {
+ const params = useParams();
+ const navigate = useNavigate();
+ const handleClick = () => {
+ navigate(`/${params.standard}/${props.address}`);
+ };
+ return (
+
+ {props.address}
+
+ );
+};
+
+export default AccountCard;
diff --git a/packages/cacti-cmd-gui-app/src/components/BlockCard/BlockCard.module.css b/packages/cacti-cmd-gui-app/src/components/BlockCard/BlockCard.module.css
new file mode 100644
index 0000000000..3e90ee76fa
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/components/BlockCard/BlockCard.module.css
@@ -0,0 +1,33 @@
+.block-card {
+ display: flex;
+ gap: 1rem;
+ background-color: rgb(252, 249, 249);
+ height: 5rem;
+ align-items: center;
+ justify-content: space-around;
+ width: 100%;
+ padding: 1rem 0rem;
+ margin-top: 5px;
+ border-radius: 10px;
+ border: .5px solid rgb(242, 245, 242);
+ max-height: 100vh;
+ font-size: 14px;
+}
+
+.block-card:hover {
+ cursor: pointer;
+ background-color: #ffffff;
+}
+
+.block-num {
+ color: rgb(12, 105, 12);
+}
+
+.block-hash {
+ display: block;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ width: min-content;
+ max-width: 50%;
+}
\ No newline at end of file
diff --git a/packages/cacti-cmd-gui-app/src/components/BlockCard/BlockCard.tsx b/packages/cacti-cmd-gui-app/src/components/BlockCard/BlockCard.tsx
new file mode 100644
index 0000000000..774b7163f6
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/components/BlockCard/BlockCard.tsx
@@ -0,0 +1,28 @@
+import { useNavigate } from "@solidjs/router";
+import { HiSolidHashtag } from "solid-icons/hi";
+import { Component } from "solid-js";
+// @ts-expect-error
+import styles from "./BlockCard.module.css";
+
+const BlockCard: Component<{
+ number: string;
+ created_at: Date;
+ hash: string;
+}> = (props) => {
+ const navigate = useNavigate();
+ const handleClick = () => {
+ navigate(`/blockDetails/${props.number}`);
+ };
+
+ return (
+
+
{props.created_at.toLocaleString()}
+
{props.number}
+
+ {props.hash}
+
+
+ );
+};
+
+export default BlockCard;
diff --git a/packages/cacti-cmd-gui-app/src/components/CardWrapper/CardWrapper.module.css b/packages/cacti-cmd-gui-app/src/components/CardWrapper/CardWrapper.module.css
new file mode 100644
index 0000000000..d20ba47158
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/components/CardWrapper/CardWrapper.module.css
@@ -0,0 +1,85 @@
+.wrapper {
+ background-color: rgb(253, 253, 253);
+ padding: 1rem;
+ border-radius: 10px;
+ border: 1px solid rgb(233, 236, 233);
+ height: fit-content;
+}
+
+.wrapper-half-width {
+ width: 50%;
+}
+
+.wrapper-full-width {
+ width: 100%;
+}
+
+.wrapper-cards {
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ padding: 1rem;
+}
+
+.wrapper-title {
+ margin-top: .5rem;
+ display: flex;
+ gap:5px;
+ align-items: center;
+ font-weight: 700;
+ font-size: 1.2rem;
+ color: rgb(9, 75, 9);
+}
+
+.wrapper-btns {
+ display: flex;
+ justify-content: flex-end;
+ padding-right: 1rem;
+}
+
+.wrapper-header {
+ width: 100%;
+ display: flex;
+ justify-content: space-between;
+ padding: 0 1rem;
+}
+
+.wrapper-columns {
+ display: flex;
+ justify-content: space-around;
+ background-color: rgb(243, 239, 239);
+ align-items: center;
+ border-radius: 10px;
+ border: 1px solid rgb(233, 236, 233);
+ height: 50px;
+}
+
+.wrapper-columns span {
+ display: flex;
+ width: 150px;
+}
+
+.wrapper-search {
+ display: flex;
+ gap: 5px;
+}
+
+@media (max-width: 1699px) {
+ .wrapper {
+ width: 100%;
+ }
+
+ .wrapper-header {
+ padding-left: 0;
+ padding-right: 0;
+ }
+
+ .wrapper-cards {
+ flex-direction: column;
+ padding: 1rem 0;
+ }
+
+ .wrapper-title svg {
+ margin-bottom: -3px;
+ }
+}
diff --git a/packages/cacti-cmd-gui-app/src/components/CardWrapper/CardWrapper.tsx b/packages/cacti-cmd-gui-app/src/components/CardWrapper/CardWrapper.tsx
new file mode 100644
index 0000000000..2d4633e752
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/components/CardWrapper/CardWrapper.tsx
@@ -0,0 +1,168 @@
+import {
+ createSignal,
+ createEffect,
+ ParentComponent,
+ onCleanup,
+} from "solid-js";
+import { TbCactus } from "solid-icons/tb";
+import { useNavigate } from "@solidjs/router";
+import Button from "../UI/Button/Button";
+import Search from "../UI/Search/Search";
+import CustomTable from "../UI/CustomTable/CustomTable";
+import { TableProps } from "../../schema/supabase-types";
+import Pagination from "../Pagination/Pagination";
+// @ts-expect-error
+import styles from "./CardWrapper.module.css";
+import EmptyTablePlaceholder from "../UI/CustomTable/EmptyTablePlaceholder/EmptyTablePlaceholder";
+
+type cardWrapperProp = {
+ filters?: string[];
+ data: any[];
+ display: string;
+ trimmed?: boolean;
+ columns?: TableProps;
+ title: string;
+ getSearchValue?: (val: string) => {};
+};
+
+const pageSize: number = 6;
+
+const CardWrapper: ParentComponent = (props) => {
+ const navigate = useNavigate();
+ const [searchKey, setSearchKey] = createSignal("");
+ const [filteredData, setFilteredData] = createSignal([]);
+ const [paginatedData, setPaginatedData] = createSignal([]);
+ const [currentPage, setCurrentPage] = createSignal(1);
+ const [totalPages, setTotalPages] = createSignal(1);
+ const [viewport, setViewport] = createSignal("");
+
+ const handleGoToPage = (pageNumber: number) => {
+ if (pageNumber < 1 || pageNumber > totalPages()) return;
+ setCurrentPage(pageNumber);
+ };
+
+ const handleNextPage = () => {
+ if (currentPage() === totalPages()) return;
+ setCurrentPage((prev) => prev + 1);
+ };
+
+ const handlePrevPage = () => {
+ if (currentPage() === 1) return;
+ setCurrentPage((prev) => prev - 1);
+ };
+
+ const filterData = () => {
+ const { filters, data } = props;
+ if (searchKey().length === 0) {
+ setFilteredData(data);
+ return;
+ }
+ let newData = data.filter((row) => {
+ let isMatch: boolean = false;
+ filters?.forEach((property) => {
+ if (row[property]?.toString().toLowerCase().includes(searchKey())) {
+ isMatch = true;
+ }
+ });
+ return isMatch;
+ });
+ setFilteredData(newData);
+ };
+
+ const handleSearch = () => {
+ filterData();
+ if (props.getSearchValue) {
+ props.getSearchValue(searchKey());
+ }
+ };
+
+ createEffect(() => {
+ setFilteredData(props.data);
+ });
+
+ createEffect(() => {
+ const screenResized = () =>
+ setViewport(window.innerWidth <= 1699 ? "small" : "wide");
+ screenResized();
+ window.addEventListener("resize", screenResized, true);
+ onCleanup(() => {
+ window.removeEventListener("resize", screenResized, true);
+ });
+ });
+
+ createEffect(() => {
+ if (filteredData().length <= pageSize) {
+ setPaginatedData(filteredData());
+ } else {
+ const firstEl = currentPage() * pageSize - pageSize;
+ setPaginatedData(filteredData().slice(firstEl, firstEl + pageSize));
+ }
+ });
+
+ createEffect(() => {
+ const pageNum = Math.ceil(filteredData().length / pageSize);
+ setTotalPages(pageNum);
+ });
+
+ return (
+
+
+
+ {props?.columns && props.data?.length > 0 && (
+
+ )}
+ {props?.data?.length === 0 && }
+
+
+ {" "}
+ {props.trimmed && viewport() === "wide" && (
+
+ )}
+
+ {!props.trimmed && (
+
+ )}
+
+ );
+};
+
+export default CardWrapper;
diff --git a/packages/cacti-cmd-gui-app/src/components/Chart/Chart.module.css b/packages/cacti-cmd-gui-app/src/components/Chart/Chart.module.css
new file mode 100644
index 0000000000..be4a07ddb5
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/components/Chart/Chart.module.css
@@ -0,0 +1,29 @@
+.chart-wrapper {
+ width: 100%;
+ height:fit-content;
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+ justify-content: center;
+ align-items: center;
+ background-color: rgb(253, 253, 253);
+ border-radius: 10px;
+ border: 1px solid rgb(238, 238, 238);
+}
+
+.chart-wrapper > span {
+ margin-top: 1rem;
+ font-size: 24px;
+}
+
+.chart-wrapper-line{
+ padding:1rem;
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ background-color: rgb(253, 253, 253);
+ border-radius: 10px;
+ border: 1px solid rgb(238, 238, 238);
+}
\ No newline at end of file
diff --git a/packages/cacti-cmd-gui-app/src/components/Chart/Chart.tsx b/packages/cacti-cmd-gui-app/src/components/Chart/Chart.tsx
new file mode 100644
index 0000000000..23c1bf9188
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/components/Chart/Chart.tsx
@@ -0,0 +1,66 @@
+import { SolidApexCharts } from "solid-apexcharts";
+import { createSignal, createEffect, Component } from "solid-js";
+import { ERC20Txn } from "../../schema/supabase-types";
+// @ts-expect-error
+import styles from "./Chart.module.css";
+
+const Chart: Component<{ chartData: any }> = (props) => {
+ const [chartProps, setChartProps] = createSignal<{
+ series: any;
+ options: any;
+ }>({
+ series: {
+ list: [
+ {
+ name: "balance",
+ data: [],
+ },
+ ],
+ },
+ options: {
+ chart: {
+ id: "solidchart-example",
+ },
+ xaxis: {
+ type: "datetime",
+ },
+ },
+ });
+
+ createEffect(async () => {
+ const { chartData } = props;
+
+ setChartProps({
+ options: {
+ chart: {
+ id: "solidchart-example",
+ },
+ xaxis: {
+ categories: chartData()?.map((txn: ERC20Txn) => txn.token_address),
+ },
+ },
+ series: {
+ list: [
+ {
+ name: "balance",
+ data: chartData()?.map((txn: ERC20Txn) => txn.balance),
+ },
+ ],
+ },
+ });
+ });
+
+ return (
+
+ Balance
+
+
+ );
+};
+
+export default Chart;
diff --git a/packages/cacti-cmd-gui-app/src/components/Chart/LineChart.tsx b/packages/cacti-cmd-gui-app/src/components/Chart/LineChart.tsx
new file mode 100644
index 0000000000..4ee210d8fb
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/components/Chart/LineChart.tsx
@@ -0,0 +1,80 @@
+import { SolidApexCharts } from "solid-apexcharts";
+import { createSignal, createEffect, Component } from "solid-js";
+import moment from "moment";
+import { balanceDate } from "../../schema/supabase-types";
+// @ts-expect-error
+import styles from "./Chart.module.css";
+
+const LineChart: Component<{ chartData: any }> = (props) => {
+ const [chartProps, setChartProps] = createSignal({
+ series: {
+ list: [
+ {
+ name: "balance",
+ data: [],
+ },
+ ],
+ },
+ options: {
+ chart: {
+ id: "solidchart-example",
+ },
+ xaxis: {
+ categories: [],
+ },
+ },
+ });
+
+ createEffect(async () => {
+ const { chartData } = props;
+
+ setChartProps({
+ options: {
+ chart: {
+ id: "solidchart-example",
+ },
+ stroke: {
+ curve: "stepline",
+ },
+ tooltip: {
+ x: {
+ show: true,
+ format: "dd MM yyyy h:mm",
+ formatter: undefined,
+ },
+ },
+ xaxis: {
+ type: "datetime",
+ categories: chartData()?.map((txn: balanceDate) =>
+ moment(txn.created_at).format("YYYY-MM-DD h:mm:ss a"),
+ ),
+ labels: {
+ format: "dd MM yyyy h:mm",
+ },
+ },
+ },
+ series: {
+ list: [
+ {
+ name: "balance",
+ data: chartData()?.map((txn: balanceDate) => txn.balance),
+ },
+ ],
+ },
+ });
+ });
+
+ return (
+
+
+
+ );
+};
+
+export default LineChart;
diff --git a/packages/cacti-cmd-gui-app/src/components/Pagination/Pagination.module.css b/packages/cacti-cmd-gui-app/src/components/Pagination/Pagination.module.css
new file mode 100644
index 0000000000..0632e5e845
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/components/Pagination/Pagination.module.css
@@ -0,0 +1,51 @@
+.pagination {
+ width: 100%;
+ padding: 1rem;
+ justify-content: flex-end;
+ display: flex;
+ align-items: center;
+ gap: 10px;
+}
+
+.pagination-counter {
+ height: 2.5rem;
+ display: flex;
+ align-items: center;
+ padding: 0 1rem;
+ border-radius: 10px;
+ border: 1px solid rgb(204, 206, 205);
+}
+
+.pagination-jump {
+ display: flex;
+ gap: 10px;
+ padding: 9px 1rem;
+ background-color: rgb(233, 229, 229);
+ border-radius: 10px;
+}
+
+input {
+ border-radius: 10px;
+ border: 1px solid rgb(54, 51, 224);
+ padding: 0 0.5rem;
+ width: 7rem;
+ text-align: center;
+ font-size: 1rem;
+}
+
+@media (max-width: 1699px) {
+ .pagination {
+ padding: 0;
+ justify-content: center;
+ position: relative;
+ }
+
+ .pagination button {
+ min-width: 85px;
+ }
+
+ .pagination-jump {
+ position: absolute;
+ top: 2.75rem;
+ }
+}
diff --git a/packages/cacti-cmd-gui-app/src/components/Pagination/Pagination.tsx b/packages/cacti-cmd-gui-app/src/components/Pagination/Pagination.tsx
new file mode 100644
index 0000000000..abc483bb06
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/components/Pagination/Pagination.tsx
@@ -0,0 +1,66 @@
+import Button from "../UI/Button/Button";
+import {
+ FaSolidAngleRight,
+ FaSolidAngleLeft,
+ FaSolidAnglesLeft,
+ FaSolidAnglesRight,
+} from "solid-icons/fa";
+import { Component, createSignal } from "solid-js";
+// @ts-expect-error
+import styles from "./Pagination.module.css";
+
+type pagination = {
+ current: number;
+ total: number;
+ goToPage: (pageNumber: number) => void;
+ goNextPage: () => void;
+ goPrevPage: () => void;
+};
+
+const Pagination: Component = (props) => {
+ let inputRef: any;
+ const getInputValue = () =>
+ inputRef?.value ? inputRef.value : props.current;
+ const [goToPageVisible, setGoToPageVisible] = createSignal(false);
+
+ return (
+
+ );
+};
+
+export default Pagination;
diff --git a/packages/cacti-cmd-gui-app/src/components/TokenHeader/TokenAccount.tsx b/packages/cacti-cmd-gui-app/src/components/TokenHeader/TokenAccount.tsx
new file mode 100644
index 0000000000..8a7125a1a7
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/components/TokenHeader/TokenAccount.tsx
@@ -0,0 +1,20 @@
+import { BiRegularWallet } from "solid-icons/bi";
+import { Component } from "solid-js";
+// @ts-expect-error
+import styles from "./TokenHeader.module.css";
+
+const TokenAccount: Component<{ accountNum: string }> = (props) => {
+ return (
+
+
+ {" "}
+
+
+ {" "}
+ {props.accountNum}
+
+
+ );
+};
+
+export default TokenAccount;
diff --git a/packages/cacti-cmd-gui-app/src/components/TokenHeader/TokenHeader.module.css b/packages/cacti-cmd-gui-app/src/components/TokenHeader/TokenHeader.module.css
new file mode 100644
index 0000000000..2d9ef9600c
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/components/TokenHeader/TokenHeader.module.css
@@ -0,0 +1,57 @@
+.token-header {
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ gap: 1rem;
+}
+
+.token-details {
+ width: 100%;
+ height: min-content;
+ border: 1px solid rgb(240, 236, 236);
+ border-radius: 10px;
+ gap: 3rem;
+ padding: 1rem 2rem;
+ display: flex;
+ justify-content: flex-start;
+ align-items: center;
+ background-color: rgb(247, 245, 245);
+}
+
+.token-details div {
+ display: flex;
+ align-items: center;
+ gap: 1rem;
+}
+
+.token-icon {
+ height: 100%;
+ transform: translateY(10%);
+ color: rgb(34, 70, 70);
+}
+
+.token-account {
+ font-size: 16px;
+ width: 100%;
+ height: min-content;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background-color: rgb(247, 245, 245);
+ border-radius: 10px;
+ padding: 1rem;
+ padding-left: 2rem;
+}
+
+.token-account span {
+ display: flex;
+ align-items: center;
+ gap: .5rem;
+}
+
+.token-account-icon {
+ color: rgb(22, 92, 65);
+ font-size: 28px;
+ height: 30px;
+ width: 30px;
+}
\ No newline at end of file
diff --git a/packages/cacti-cmd-gui-app/src/components/TokenHeader/TokenHeader.tsx b/packages/cacti-cmd-gui-app/src/components/TokenHeader/TokenHeader.tsx
new file mode 100644
index 0000000000..9224480d95
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/components/TokenHeader/TokenHeader.tsx
@@ -0,0 +1,52 @@
+import TokenAccount from './TokenAccount'
+import { Component } from 'solid-js'
+import { createSignal, createEffect } from 'solid-js'
+import { TokenMetadata20 } from '../../schema/supabase-types'
+import { supabase } from '../../supabase-client'
+// @ts-expect-error
+import styles from "./TokenHeader.module.css";
+
+const TokenHeader: Component<{ accountNum: string; token_address: string }> = (
+ props,
+) => {
+ const [tokenData, setTokenData] = createSignal();
+
+ createEffect(async () => {
+ try {
+ const { data, error } = await supabase
+ .from(`token_metadata_erc20`)
+ .select("*")
+ .match({ address: props.token_address });
+ console.log(data);
+ if (data?.[0]) {
+ setTokenData(data[0]);
+ } else {
+ throw new Error("Failed to load token details");
+ }
+ } catch (error: any) {
+ console.error(error.message);
+ }
+ }, []);
+
+ return (
+
+ );
+};
+
+export default TokenHeader;
+
+
diff --git a/packages/cacti-cmd-gui-app/src/components/UI/Button/Button.module.css b/packages/cacti-cmd-gui-app/src/components/UI/Button/Button.module.css
new file mode 100644
index 0000000000..eab9eabd84
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/components/UI/Button/Button.module.css
@@ -0,0 +1,77 @@
+.button {
+ color: rgb(14, 48, 23);
+ background-color: rgb(248, 248, 250);
+ height: 2.5rem;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: max-content;
+ min-width: 100px;
+ padding: 10px;
+ border: 1px solid rgb(32, 133, 77);
+ font-family: 'Roboto';
+ border-radius: 10px;
+}
+
+.button:hover {
+ background-color: rgb(219, 219, 224);
+ transform: scale(1.01);
+ cursor: pointer;
+}
+
+.button-primary {
+ background-color: rgb(244, 247, 245);
+ color:rgb(14, 44, 14);
+ border-radius: 5px;
+ width:150px;
+}
+
+.button-primary:hover { background-color: rgb(226, 253, 219);}
+
+.button-warn { background-color: rgb(155, 22, 13);}
+
+.button-warn:hover { background-color: rgb(114, 22, 16);}
+
+.button-menu{
+ border:none;
+ background: transparent;
+ height: 100%;
+ transition: background-color 0.5s ease-out;
+ position:relative;
+ border-radius: 0;
+
+}
+.button-menu:hover{
+color:rgb(0, 0, 0);
+background-color: rgb(243, 242, 242);
+}
+.button-menu:hover:after {
+ content: '';
+ display: block;
+ position: absolute;
+ left: 0;
+ right: 0;
+ bottom: 1px;
+ width: 100%;
+ height: 1px;
+ border-bottom: 2px solid green;
+
+}
+
+.button-link {
+ background: transparent;
+ border:none;
+ height: min-content;
+ color:rgb(64, 64, 228);
+}
+
+.button-link:hover{
+ background: transparent;
+ color:rgb(78, 78, 236);
+}
+
+@media (max-width: 1699px) {
+ .button-primary {
+ font-size: 1rem;
+ }
+}
\ No newline at end of file
diff --git a/packages/cacti-cmd-gui-app/src/components/UI/Button/Button.tsx b/packages/cacti-cmd-gui-app/src/components/UI/Button/Button.tsx
new file mode 100644
index 0000000000..c69ad06233
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/components/UI/Button/Button.tsx
@@ -0,0 +1,28 @@
+import { ParentComponent } from "solid-js";
+// @ts-expect-error
+import styles from "./Button.module.css";
+
+const Button: ParentComponent<{
+ type?: string;
+ onClick: () => void;
+ disabled?: boolean;
+}> = (props) => {
+ type ObjectKey = keyof typeof styles;
+ const buttonTypeStyle = `button-${props.type}` as ObjectKey;
+
+ const handleClick = (e: MouseEvent) => {
+ e.stopPropagation();
+ props.onClick();
+ };
+
+ return (
+
+ );
+};
+
+export default Button;
diff --git a/packages/cacti-cmd-gui-app/src/components/UI/CustomTable/CustomTable.css b/packages/cacti-cmd-gui-app/src/components/UI/CustomTable/CustomTable.css
new file mode 100644
index 0000000000..d94c8789f0
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/components/UI/CustomTable/CustomTable.css
@@ -0,0 +1,53 @@
+table {
+ border-collapse: separate;
+ border-spacing: 0;
+ width: 100%;
+ }
+
+ tbody tr {
+ background-color: rgb(248, 248, 248);
+ border: 1px solid rgb(219, 241, 232);
+ border-radius: 10px;
+ }
+
+ tbody tr:hover {
+ cursor: pointer;
+ background-color: rgb(235, 240, 237);
+ }
+
+ th {
+ background-color: rgb(240, 235, 235);
+ border-style: none;
+ border-bottom: solid 1px rgb(223, 218, 218);
+ padding: 10px;
+ }
+
+ td {
+ min-height: 2rem;
+ border-style: none;
+ border-bottom: solid 4px rgb(255, 255, 255);
+ padding: 1.5rem .5rem;
+ text-align: center;
+ }
+
+ tr {
+ min-height: 20rem;
+ background-color: rgb(90, 103, 116);
+ padding: 1rem;
+ }
+
+ tr:first-child th:first-child {
+ border-top-left-radius: 10px;
+ }
+
+ tr:first-child th:last-child {
+ border-top-right-radius: 10px;
+ }
+
+ tr:last-child td:first-child {
+ border-bottom-left-radius: 10px;
+ }
+
+ tr:last-child td:last-child {
+ border-bottom-right-radius: 10px;
+ }
\ No newline at end of file
diff --git a/packages/cacti-cmd-gui-app/src/components/UI/CustomTable/CustomTable.module.css b/packages/cacti-cmd-gui-app/src/components/UI/CustomTable/CustomTable.module.css
new file mode 100644
index 0000000000..306f13ac57
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/components/UI/CustomTable/CustomTable.module.css
@@ -0,0 +1,137 @@
+table {
+ border-collapse: separate;
+ border-spacing: 0;
+ width: 100%;
+}
+
+tbody tr {
+ background-color: rgb(248, 248, 248);
+ border: 1px solid rgb(219, 241, 232);
+ border-radius: 10px;
+}
+
+tbody tr:hover {
+ cursor: pointer;
+ background-color: rgb(235, 240, 237);
+}
+
+th {
+ background-color: rgb(240, 235, 235);
+ border-style: none;
+ border-bottom: solid 1px rgb(155, 153, 153);
+ padding: 10px;
+}
+
+td {
+ min-height: 2rem;
+ border-style: none;
+ border-bottom: solid 2px rgb(255, 255, 255);
+ padding: 1.5rem 0.5rem;
+ text-align: center;
+}
+
+tr {
+ min-height: 20rem;
+ background-color: rgb(90, 103, 116);
+ padding: 1rem;
+}
+
+tr:first-child th:first-child {
+ border-top-left-radius: 10px;
+}
+
+tr:first-child th:last-child {
+ border-top-right-radius: 10px;
+}
+
+tr:last-child td:first-child {
+ border-bottom-left-radius: 10px;
+}
+
+tr:last-child td:last-child {
+ border-bottom-right-radius: 10px;
+}
+
+@media (max-width: 1699px) {
+ table {
+ width: 100%;
+ margin-bottom: 0.75rem;
+ table-layout: fixed;
+ }
+
+ table:hover td:nth-child(even) {
+ cursor: pointer;
+ background-color: rgb(235, 240, 237);
+ }
+
+ td {
+ position: relative;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ padding: 0.75rem;
+ }
+
+ .table-rwd {
+ border: solid 1px rgb(223, 218, 218);
+ overflow: hidden;
+ }
+
+ .table-rwd td {
+ border-bottom: solid 2px rgb(253, 253, 253);
+ }
+
+ .table-rwd-heading {
+ background-color: rgb(240, 235, 235);
+ border-style: none;
+ padding: 0.5rem;
+ width: 140px;
+ font-weight: 700;
+ font-size: 0.9rem;
+ border-right: solid 1px rgb(223, 218, 218);
+ }
+
+ .table-rwd:first-child {
+ border-top-left-radius: 10px;
+ }
+
+ .table-rwd:first-child {
+ border-top-right-radius: 10px;
+ }
+
+ .table-rwd:last-child {
+ border-bottom-left-radius: 10px;
+ }
+
+ .table-rwd:last-child {
+ border-bottom-right-radius: 10px;
+ }
+
+ .table-rwd tr:last-child > td:nth-last-of-type(2) {
+ border-bottom: 0;
+ }
+
+ .table-rwd tr:last-child > td:last-of-type {
+ border-bottom: 0;
+ }
+
+ .table-rwd td:last-child {
+ text-align: left;
+ }
+
+ tr:first-child th:first-child {
+ border-top-left-radius: 0;
+ }
+
+ tr:first-child th:last-child {
+ border-top-right-radius: 0;
+ }
+
+ tr:last-child td:first-child {
+ border-bottom-left-radius: 0;
+ }
+
+ tr:last-child td:last-child {
+ border-bottom-right-radius: 0;
+ }
+}
diff --git a/packages/cacti-cmd-gui-app/src/components/UI/CustomTable/CustomTable.tsx b/packages/cacti-cmd-gui-app/src/components/UI/CustomTable/CustomTable.tsx
new file mode 100644
index 0000000000..e549ff40ea
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/components/UI/CustomTable/CustomTable.tsx
@@ -0,0 +1,108 @@
+import { Component, createSignal, createEffect, onCleanup } from "solid-js";
+import { TableProps, TableProperty } from "../../../schema/supabase-types";
+
+import EmptyTablePlaceholder from "./EmptyTablePlaceholder/EmptyTablePlaceholder";
+// @ts-expect-error
+import styles from "./CustomTable.module.css";
+
+
+const CustomTable: Component<{ cols: TableProps; data: any[] }> = (props) => {
+
+ const [viewport, setViewport] = createSignal("");
+
+createEffect(() => {
+ const screenResized = () =>
+ setViewport(window.innerWidth <= 1699 ? "small" : "wide");
+ screenResized();
+ window.addEventListener("resize", screenResized, true);
+ onCleanup(() => {
+ window.removeEventListener("resize", screenResized, true);
+ });
+});
+
+
+
+ const getObjPropVal = (objProp: string[], row: any) => {
+ if (objProp.length === 1) return row[objProp[0]];
+ else {
+ return objProp.map((prop) => (
+ <>
+ {row[prop]}
+
+ >
+ ));
+ }
+ };
+
+ const handleRowClick = (row: any) => {
+ props.cols.onClick.action(row[props.cols.onClick.prop]);
+ };
+
+ return (
+ <>
+ {props.data.length === 0 ? (
+
+ ) : (
+ <>
+ {viewport() === "wide" && (
+
+
+
+ {props.cols.schema.map((col) => (
+ {col.display} |
+ ))}
+
+
+
+ {props.data.map((row) => {
+ return (
+
+ {props.cols.schema.map((col: TableProperty) => (
+ handleRowClick(row)}>
+ {getObjPropVal(col.objProp, row)}
+ |
+ ))}
+
+ );
+ })}
+
+
+ )}
+
+ {viewport() === "small" && (
+ <>
+ {props.data.map((row) => {
+ return (
+ handleRowClick(row)}
+ >
+
+ {props.cols.schema.map((heading, idx) => {
+ return (
+
+
+ {heading.display}
+ |
+
+ {getObjPropVal(
+ props.cols.schema[idx].objProp,
+ row,
+ )}
+ |
+
+ );
+ })}
+
+
+ );
+ })}
+ >
+ )}
+ >
+ )}
+ >
+ );
+};
+
+export default CustomTable;
diff --git a/packages/cacti-cmd-gui-app/src/components/UI/CustomTable/EmptyTablePlaceholder/EmptyTablePlaceholder.module.css b/packages/cacti-cmd-gui-app/src/components/UI/CustomTable/EmptyTablePlaceholder/EmptyTablePlaceholder.module.css
new file mode 100644
index 0000000000..8d9bbfa661
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/components/UI/CustomTable/EmptyTablePlaceholder/EmptyTablePlaceholder.module.css
@@ -0,0 +1,7 @@
+.placeholder-container {
+ display: flex;
+ justify-content: center;
+ font-size: 2rem;
+ font-weight: bold;
+ color: rgb(9, 75, 9);
+}
\ No newline at end of file
diff --git a/packages/cacti-cmd-gui-app/src/components/UI/CustomTable/EmptyTablePlaceholder/EmptyTablePlaceholder.tsx b/packages/cacti-cmd-gui-app/src/components/UI/CustomTable/EmptyTablePlaceholder/EmptyTablePlaceholder.tsx
new file mode 100644
index 0000000000..0a70ca9c27
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/components/UI/CustomTable/EmptyTablePlaceholder/EmptyTablePlaceholder.tsx
@@ -0,0 +1,10 @@
+import { Component } from "solid-js";
+
+// @ts-ignore
+import styles from "./EmptyTablePlaceholder.module.css";
+
+const EmptyTablePlaceholder: Component = () => {
+ return No data available
;
+};
+
+export default EmptyTablePlaceholder;
diff --git a/packages/cacti-cmd-gui-app/src/components/UI/Menu/Menu.module.css b/packages/cacti-cmd-gui-app/src/components/UI/Menu/Menu.module.css
new file mode 100644
index 0000000000..ab9a7591e0
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/components/UI/Menu/Menu.module.css
@@ -0,0 +1,22 @@
+.nav-bar{
+ width: 100%;
+ display: flex;
+ justify-content: flex-start;
+ padding-left: 8rem;
+ height: 4rem;
+ background-color: rgb(180, 218, 167);
+ align-items: center;
+ gap: 2rem;
+}
+
+.navigation {
+ height: 100%;
+ display: flex;
+ gap: 1rem;
+}
+
+@media (max-width: 1699px) {
+ .nav-bar{
+ padding-left: 1rem;
+ }
+}
\ No newline at end of file
diff --git a/packages/cacti-cmd-gui-app/src/components/UI/Menu/Menu.tsx b/packages/cacti-cmd-gui-app/src/components/UI/Menu/Menu.tsx
new file mode 100644
index 0000000000..970c4dc367
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/components/UI/Menu/Menu.tsx
@@ -0,0 +1,60 @@
+import Button from "../Button/Button";
+import { createSignal, createEffect, For, Show } from "solid-js";
+import { useNavigate, useLocation } from "@solidjs/router";
+// @ts-expect-error
+import styles from "./Menu.module.css";
+import Select from "../Select/Select";
+
+const pathsEth = [
+ { title: "DASHBOARD", path: "/eth" },
+ { title: "ERC20", path: "/eth/accounts/erc20" },
+ { title: "NFT ERC721", path: "/eth/accounts/erc721" },
+];
+const pathsFabric = [{ title: "DASHBOARD", path: "/fabric" }];
+
+const Menu = () => {
+ const navigate = useNavigate();
+ const location = useLocation();
+ const [activeLedger, setActiveLedger] = createSignal("");
+
+ const handleSelect = (selectedValue: string) => {
+ setActiveLedger(selectedValue);
+ navigate(`/${activeLedger()}`)
+ };
+
+ createEffect(()=>{
+ if(activeLedger().length > 0) return
+ const currentPath = location.pathname
+ const ledgers = ['eth', 'fabric']
+
+ ledgers.forEach(ledger => {
+ if(currentPath.includes(ledger)){
+ setActiveLedger(ledger)
+ }
+ })
+ })
+
+ return (
+
+
+ );
+};
+
+export default Menu;
diff --git a/packages/cacti-cmd-gui-app/src/components/UI/Search/Search.module.css b/packages/cacti-cmd-gui-app/src/components/UI/Search/Search.module.css
new file mode 100644
index 0000000000..13b6c8e9ac
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/components/UI/Search/Search.module.css
@@ -0,0 +1,43 @@
+.input {
+ border: none;
+ border-radius: 10px;
+ width: 30rem;
+ height: 2.5rem;
+ background-color: rgb(240, 236, 236);
+ padding: 1rem;
+ font-size: 16px;
+}
+
+.input-wrapper {
+ position: relative;
+}
+
+.input-reset {
+ background: transparent;
+ position: absolute;
+ right: 0.5rem;
+ border: none;
+ height: 2.5rem;
+ width: 2.5rem;
+ font-size: 1.5rem;
+ cursor: pointer;
+}
+
+.input-reset:hover {
+ color: green;
+}
+.input-reset-icon {
+ pointer-events: none;
+}
+
+@media (max-width: 1699px) {
+ .input {
+ width: 12rem;
+ text-align: left;
+ }
+
+ .input-reset {
+ right: 0;
+ top: 0.1rem;
+ }
+}
diff --git a/packages/cacti-cmd-gui-app/src/components/UI/Search/Search.tsx b/packages/cacti-cmd-gui-app/src/components/UI/Search/Search.tsx
new file mode 100644
index 0000000000..8482384563
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/components/UI/Search/Search.tsx
@@ -0,0 +1,46 @@
+import { Component, createSignal } from "solid-js";
+import { BiRegularReset } from "solid-icons/bi";
+// @ts-expect-error
+import styles from "./Search.module.css";
+
+const Search: Component<{
+ type: string;
+ onKeyUp: (value: string) => void;
+ placeholder: string;
+}> = (props) => {
+ const [val, setValue] = createSignal("");
+
+ const handleInput = (e: InputEvent | ClipboardEvent) => {
+ const inputValue = (e.currentTarget as HTMLInputElement).value;
+ if (inputValue) {
+ setValue(inputValue);
+ props.onKeyUp(inputValue);
+ }
+ };
+
+ const handleReset = () => {
+ setValue("");
+ props.onKeyUp("");
+ };
+
+ return (
+
+ handleInput(e)}
+ onPaste={(e) => handleInput(e)}
+ />
+
+
+ );
+};
+
+export default Search;
diff --git a/packages/cacti-cmd-gui-app/src/components/UI/Select/Select.module.css b/packages/cacti-cmd-gui-app/src/components/UI/Select/Select.module.css
new file mode 100644
index 0000000000..19e2f837af
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/components/UI/Select/Select.module.css
@@ -0,0 +1,73 @@
+.select-wrapper {
+ height: 2.2rem;
+ width: 13rem;
+}
+
+.select {
+ width: 100%;
+ height: 100%;
+ display: flex;
+}
+
+.select-icon {
+ position: relative;
+ right: 30px;
+ height: 10px;
+ width: 10px;
+ transform: translateY(-50%) rotate(45deg);
+ pointer-events: none;
+}
+
+.select-icon-up {
+ top: 60%;
+ border-top: 2px solid rgb(32, 133, 77);
+ border-left: 2px solid rgb(32, 133, 77);
+}
+
+.select-icon-down {
+ top: 40%;
+ border-bottom: 2px solid rgb(32, 133, 77);
+ border-right: 2px solid rgb(32, 133, 77);
+}
+
+.select-input {
+ width: 100%;
+ height: 100%;
+ font-family: "Roboto";
+ font-size: 1rem;
+ color: rgb(102, 117, 106);
+ background-color: rgb(248, 248, 250);
+ border: 1px solid rgb(32, 133, 77);
+ border-radius: 10px;
+ cursor: pointer;
+ text-align: start;
+}
+
+.select-input:hover {
+ background-color: rgb(235, 240, 237);
+}
+
+.options-container {
+ z-index: 1000;
+ width: 100%;
+ position: relative;
+ overflow-y: auto;
+ border: 1px solid rgb(32, 133, 77);
+ border-radius: 10px;
+ color: rgb(102, 117, 106);
+ background: white;
+ cursor: pointer;
+}
+
+.option {
+ padding: 5px;
+}
+
+.selected-option {
+ padding: 5px;
+ background-color: rgb(235, 240, 237);
+}
+
+.option:hover {
+ background-color: rgb(235, 240, 237);
+}
diff --git a/packages/cacti-cmd-gui-app/src/components/UI/Select/Select.tsx b/packages/cacti-cmd-gui-app/src/components/UI/Select/Select.tsx
new file mode 100644
index 0000000000..b2ca834bcf
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/components/UI/Select/Select.tsx
@@ -0,0 +1,78 @@
+import { For, Component, createSignal } from "solid-js";
+import { useLocation } from "@solidjs/router";
+
+// @ts-ignore
+import styles from "./Select.module.css";
+
+const options = [
+ { value: "", display: "Select the ledger" },
+ { value: "eth", display: "Ethereum" },
+ { value: "fabric", display: "Fabric" },
+];
+
+const Select: Component<{
+ onSelect: (selectedOption: string) => void;
+ value: string;
+}> = (props) => {
+ const selectStartLedgerByUrl = (path: string) =>
+ options.find((option) => option.value === path);
+
+ const [dropdownVisible, setDropdownVisible] = createSignal(false);
+ const startLocation = useLocation().pathname.split("/")[1];
+ const [selectedOption, setSelectedOption] = createSignal(
+ selectStartLedgerByUrl(startLocation) || options[0],
+ );
+
+ const selectOption = (item: any) => {
+ setSelectedOption(item);
+ props.onSelect(item.value);
+ setDropdownVisible(false);
+ };
+
+ return (
+
+
setDropdownVisible(!dropdownVisible())}
+ >
+
setDropdownVisible(true)}
+ onBlur={() => setDropdownVisible(false)}
+ class={styles["select-input"]}
+ />
+
+
+ {dropdownVisible() ? (
+
+
+ {(item) => (
+ selectOption(item)}
+ >
+ {item.display}
+
+ )}
+
+
+ ) : null}
+
+ );
+};
+
+export default Select;
diff --git a/packages/cacti-cmd-gui-app/src/index.css b/packages/cacti-cmd-gui-app/src/index.css
new file mode 100644
index 0000000000..46ecb129e1
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/index.css
@@ -0,0 +1,16 @@
+@import url('https://fonts.googleapis.com/css?family=Roboto');
+*{
+ box-sizing: border-box;
+ padding: 0;
+ margin: 0;
+}
+
+body {
+ margin: 0;
+ font-family: 'Roboto';
+}
+
+h1,h2,h3,h4,h5 {
+ color:rgb(36, 143, 36);
+}
+
diff --git a/packages/cacti-cmd-gui-app/src/index.tsx b/packages/cacti-cmd-gui-app/src/index.tsx
new file mode 100644
index 0000000000..388b856121
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/index.tsx
@@ -0,0 +1,14 @@
+/* @refresh reload */
+import { render } from "solid-js/web";
+import { Router } from "@solidjs/router";
+import "./index.css";
+import App from "./App";
+
+render(
+ () => (
+
+
+
+ ),
+ document.getElementById("root")!,
+);
diff --git a/packages/cacti-cmd-gui-app/src/logo.svg b/packages/cacti-cmd-gui-app/src/logo.svg
new file mode 100644
index 0000000000..025aa303c5
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/logo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/cacti-cmd-gui-app/src/pages/Pages.tsx b/packages/cacti-cmd-gui-app/src/pages/Pages.tsx
new file mode 100644
index 0000000000..06ae9707d3
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/Pages.tsx
@@ -0,0 +1,65 @@
+import { Routes, Route } from "@solidjs/router";
+import TransactionDetails from "./eth/Details/TransactionDetails";
+import BlockDetails from "./eth/Details/BlockDetails";
+import TokenTransactionDetails from "./eth/Details/TokenTransactionDetails";
+import TokenDetails from "./eth/Details/TokenDetails";
+import Dashboard from "./eth/Dashboard/Dashboard";
+import Transactions from "./eth/Transactions/Transactions";
+import Blocks from "./eth/Blocks/Blocks";
+import Accounts from "./eth/Accounts/Accounts";
+import ERC20 from "./eth/ERC20/ERC20";
+import ERC721 from "./eth/ERC721/ERC721";
+import SingleTokenHistory from "./eth/SingleTokenHistory/SingleTokenHistory";
+
+import TransactionsFabric from "./fabric/TransactionsFabric/TransactionsFabric";
+import BlocksFabric from "./fabric/BlocksFabric/BlocksFabric";
+import DashFabric from "./fabric/DashFabric/DashFabric";
+import FabricBlock from "./fabric/FabricBlock/FabricBlock";
+import FabricTransaction from "./fabric/FabricTransaction/FabricTransaction";
+
+import Home from "./shared/Home/Home";
+
+const Pages = () => {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
+export default Pages;
diff --git a/packages/cacti-cmd-gui-app/src/pages/eth/Accounts/Accounts.module.css b/packages/cacti-cmd-gui-app/src/pages/eth/Accounts/Accounts.module.css
new file mode 100644
index 0000000000..43c52de4a5
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/eth/Accounts/Accounts.module.css
@@ -0,0 +1,6 @@
+.accounts-wrapper{
+ width:100%;
+ display:grid;
+ grid-template-columns: repeat(auto-fit, 35rem);
+ gap: 1rem;
+}
\ No newline at end of file
diff --git a/packages/cacti-cmd-gui-app/src/pages/eth/Accounts/Accounts.tsx b/packages/cacti-cmd-gui-app/src/pages/eth/Accounts/Accounts.tsx
new file mode 100644
index 0000000000..2964bd0f3c
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/eth/Accounts/Accounts.tsx
@@ -0,0 +1,63 @@
+import { createSignal, createEffect } from "solid-js";
+import { useParams, useNavigate } from "@solidjs/router";
+import { supabase } from "../../../supabase-client";
+import CardWrapper from "../../../components/CardWrapper/CardWrapper";
+
+const Accounts = () => {
+ const params = useParams();
+ const navigate = useNavigate();
+ const [accounts, setAccounts] = createSignal<{ address: string }[]>([]);
+ const [searchKey, setSearchKey] = createSignal("");
+
+ const tableProps = {
+ onClick: {
+ action: (param: string) => navigate(`/eth/${params.standard}/${param}`),
+ prop: "address",
+ },
+ schema: [
+ {
+ display: "Account address",
+ objProp: ["address"],
+ },
+ ],
+ };
+
+ const fetchAccounts = async () => {
+ try {
+ const { data, error } = await supabase
+ .from(`token_${params.standard.toLowerCase()}`)
+ .select("account_address");
+ if (data) {
+ const objData = [
+ ...new Set(data.map((el) => el.account_address)),
+ ].map((el) => ({ address: el }));
+ setAccounts(objData);
+ }
+ if (error) {
+ console.error(error.message);
+ }
+ } catch (error:any) {
+ console.error(error.message);
+ }
+ };
+
+ createEffect(async () => {
+ await fetchAccounts();
+ }, []);
+
+ return (
+
+ setSearchKey(e)}
+ >
+
+ );
+};
+
+export default Accounts;
diff --git a/packages/cacti-cmd-gui-app/src/pages/eth/Blocks/Blocks.module.css b/packages/cacti-cmd-gui-app/src/pages/eth/Blocks/Blocks.module.css
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/packages/cacti-cmd-gui-app/src/pages/eth/Blocks/Blocks.tsx b/packages/cacti-cmd-gui-app/src/pages/eth/Blocks/Blocks.tsx
new file mode 100644
index 0000000000..f3b9ff15dc
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/eth/Blocks/Blocks.tsx
@@ -0,0 +1,60 @@
+import { createSignal, createEffect } from "solid-js";
+import { useNavigate } from "@solidjs/router";
+import { supabase } from "../../../supabase-client";
+import CardWrapper from "../../../components/CardWrapper/CardWrapper";
+import { Block } from "../../../schema/supabase-types";
+// @ts-expect-error
+import styles from "./Blocks.module.css";
+
+type ObjectKey = keyof typeof styles;
+
+const Blocks = () => {
+ const navigate = useNavigate();
+ const [block, setBlock] = createSignal([]);
+
+ const blocksTableProps = {
+ onClick: {
+ action: (param: string) => navigate(`/eth/block-details/${param}`),
+ prop: "number",
+ },
+ schema: [
+ { display: "created at", objProp: ["created_at"] },
+ { display: "block number", objProp: ["number"] },
+ { display: "hash", objProp: ["hash"] },
+ ],
+ };
+
+ const fetchBlock = async () => {
+ try {
+ const { data, error } = await supabase.from("block").select("*");
+ if (data) {
+ console.log(JSON.stringify(data))
+ setBlock(data);
+ }
+ if (error) {
+ console.error(error.message);
+ }
+ } catch (error:any) {
+ console.error(error.message);
+ }
+ };
+
+ createEffect(async () => {
+ await fetchBlock();
+ }, []);
+
+ return (
+
+
+
+ );
+};
+
+export default Blocks;
diff --git a/packages/cacti-cmd-gui-app/src/pages/eth/Dashboard/Dashboard.module.css b/packages/cacti-cmd-gui-app/src/pages/eth/Dashboard/Dashboard.module.css
new file mode 100644
index 0000000000..f2443fc562
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/eth/Dashboard/Dashboard.module.css
@@ -0,0 +1,10 @@
+.dashboard-wrapper {
+ display: flex;
+ gap: 1rem;
+}
+
+@media (max-width: 1699px) {
+ .dashboard-wrapper {
+ flex-direction: column;
+ }
+}
\ No newline at end of file
diff --git a/packages/cacti-cmd-gui-app/src/pages/eth/Dashboard/Dashboard.tsx b/packages/cacti-cmd-gui-app/src/pages/eth/Dashboard/Dashboard.tsx
new file mode 100644
index 0000000000..47fd54a779
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/eth/Dashboard/Dashboard.tsx
@@ -0,0 +1,100 @@
+import { createSignal, createEffect, Show } from "solid-js";
+import { useNavigate, useParams } from "@solidjs/router";
+import { supabase } from "../../../supabase-client";
+import CardWrapper from "../../../components/CardWrapper/CardWrapper";
+import { Transaction } from "../../../schema/supabase-types";
+import { Block } from "../../../schema/supabase-types";
+// @ts-expect-error
+import styles from "./Dashboard.module.css";
+
+const Dashboard = () => {
+ const navigate = useNavigate();
+ const [transaction, setTransaction] = createSignal([]);
+ const [block, setBlock] = createSignal([]);
+
+ const txnTableProps = {
+ onClick: {
+ action: (param: string) => {
+ navigate(`/eth/txn-details/${param}`);
+ },
+ prop: "id",
+ },
+ schema: [
+ { display: "transaction id", objProp: ["id"] },
+ { display: "sender/recipient", objProp: ["from", "to"] },
+ { display: "token value", objProp: ["eth_value"] },
+ ],
+ };
+ const blocksTableProps = {
+ onClick: {
+ action: (param: string) => {
+ navigate(`/eth/block-details/${param}`);
+ },
+ prop: "number",
+ },
+ schema: [
+ { display: "created at", objProp: ["created_at"] },
+ { display: "block number", objProp: ["number"] },
+ { display: "hash", objProp: ["hash"] },
+ ],
+ };
+
+ const fetchTransactions = async () => {
+ try {
+ const { data, error } = await supabase.from("transaction").select("*");
+ if (data) {
+ setTransaction(data);
+ }
+ if (error) {
+ console.error(error.message);
+ }
+ } catch (error:any) {
+ console.error(error.message);
+ }
+ };
+
+ const fetchBlock = async () => {
+ try {
+ const { data, error } = await supabase.from("block").select("*");
+ if (data) {
+ setBlock(data);
+ }
+ if (error) {
+ console.error(error.message);
+ }
+ } catch (error:any) {
+ console.error(error.message);
+ }
+ };
+
+ createEffect(async () => {
+ await fetchBlock();
+ }, []);
+
+ createEffect(async () => {
+ await fetchTransactions();
+ }, []);
+
+ return (
+
+ );
+};
+
+export default Dashboard;
diff --git a/packages/cacti-cmd-gui-app/src/pages/eth/Details/BlockDetails.tsx b/packages/cacti-cmd-gui-app/src/pages/eth/Details/BlockDetails.tsx
new file mode 100644
index 0000000000..4b53ad9eb6
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/eth/Details/BlockDetails.tsx
@@ -0,0 +1,59 @@
+import { createEffect, createSignal, Show } from "solid-js";
+import { useParams } from "@solidjs/router";
+import { supabase } from "../../../supabase-client";
+import { Block } from "../../../schema/supabase-types";
+// @ts-expect-error
+import styles from "./Details.module.css";
+
+const blockDetails = () => {
+ const [details, setDetails] = createSignal({});
+ const params = useParams();
+
+ createEffect(async () => {
+ try {
+ const { data, error } = await supabase
+ .from("block")
+ .select("*")
+ .match({ number: params.number });
+ if (data?.[0]) {
+ setDetails(data[0]);
+ } else {
+ throw new Error("Failed to load block details");
+ }
+ } catch (error:any) {
+ console.error(error.message);
+ }
+ }, []);
+
+ return (
+
+
+ Failed to load details
}>
+
Block Details
+
+ Address: {details().number}{" "}
+
+
+ {" "}
+ Created at:
+ {details().created_at}
+
+
+ Hash:
+ {details().hash}
+
+
+ Number of transaction:
+ {details().number_of_tx}
+
+
+ Sync at:
+ {details().sync_at}
+
+
+
+
+ );
+};
+
+export default blockDetails;
diff --git a/packages/cacti-cmd-gui-app/src/pages/eth/Details/Details.module.css b/packages/cacti-cmd-gui-app/src/pages/eth/Details/Details.module.css
new file mode 100644
index 0000000000..899ff99432
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/eth/Details/Details.module.css
@@ -0,0 +1,32 @@
+h1{
+ padding: 0;
+ margin: 0;
+ margin-bottom: .5rem;
+}
+.details {
+ display: flex;
+ gap: .75rem;
+}
+.details-card{
+ display: flex;
+ flex-direction: column;
+ gap: 15px;
+ border: 1px solid rgb(230, 224, 224);
+ border-radius: 10px;
+ padding: 1.5rem 2rem;
+ width:45%;
+}
+span {
+ display: inline-block;
+ font-size: 1.1rem;
+}
+
+@media (max-width: 1699px) {
+ .details{
+ flex-direction: column;
+ }
+
+ .details-card {
+ width: 100%;
+ }
+}
\ No newline at end of file
diff --git a/packages/cacti-cmd-gui-app/src/pages/eth/Details/TokenDetails.tsx b/packages/cacti-cmd-gui-app/src/pages/eth/Details/TokenDetails.tsx
new file mode 100644
index 0000000000..14a6b4b814
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/eth/Details/TokenDetails.tsx
@@ -0,0 +1,59 @@
+import { createEffect, createSignal } from "solid-js";
+import { useParams } from "@solidjs/router";
+import { supabase } from "../../../supabase-client";
+import { STANDARDS } from "../../../schema/token-standards";
+import { TokenMetadata20, TokenMetadata721 } from "../../../schema/supabase-types";
+// @ts-expect-error
+import styles from "./Details.module.css";
+
+const TokenDetails = () => {
+ const [tokenData, setTokenData] = createSignal<
+ TokenMetadata20 | TokenMetadata721 | any
+ >();
+
+ const params = useParams();
+
+ createEffect(async () => {
+ try {
+ const { data, error } = await supabase
+ .from(`token_metadata_${params.standard.toLowerCase()}`)
+ .select("*")
+ .match({ address: params.address });
+ if (data?.[0]) {
+ setTokenData(data[0]);
+ } else {
+ throw new Error("Failed to load token details");
+ }
+ } catch (error:any) {
+ console.error(error.message);
+ }
+ }, []);
+
+ return (
+
+
+
Token Details
+
+ Adress: {tokenData()?.address}{" "}
+
+
+ Created at:
+ {tokenData()?.created_at}
+
+
+ Name:
+ {tokenData()?.name}
+
+
+ Symbol:
+ {tokenData()?.symbol}
+
+ {params.standard === STANDARDS.erc20 && (
+
total_supply : {tokenData()?.total_supply}
+ )}
+
+
+ );
+};
+
+export default TokenDetails;
diff --git a/packages/cacti-cmd-gui-app/src/pages/eth/Details/TokenTransactionDetails.tsx b/packages/cacti-cmd-gui-app/src/pages/eth/Details/TokenTransactionDetails.tsx
new file mode 100644
index 0000000000..69af02c901
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/eth/Details/TokenTransactionDetails.tsx
@@ -0,0 +1,62 @@
+import { createEffect, createSignal } from "solid-js";
+import { useParams } from "@solidjs/router";
+import { supabase } from "../../../supabase-client";
+import { STANDARDS } from "../../../schema/token-standards";
+import { ERC20Txn, ERC721Txn } from "../../../schema/supabase-types";
+// @ts-expect-error
+import styles from "./Details.module.css";
+
+const TokenTransactionDetails = () => {
+ const [txnData, setTxnData] = createSignal({});
+ const params = useParams();
+
+ createEffect(async () => {
+ try {
+ const { data, error } = await supabase
+ .from(`token_${params.standard.toLowerCase()}`)
+ .select("*")
+ .match({ account_address: params.address });
+ if (data?.[0]) {
+ setTxnData(data[0]);
+ } else {
+ throw new Error("Failed to load transaction details");
+ }
+ } catch (error:any) {
+ console.error(error.message);
+ }
+ }, []);
+
+ return (
+
+
+
Details of Transaction
+
+ {" "}
+ Address:
+ {txnData()?.account_address}{" "}
+
+
+ {" "}
+ Created_at:
+ {txnData()?.token_address}
+
+ {params.standard === STANDARDS.erc20 && (
+
+ {" "}
+ Balance:
+ {txnData()?.balance}
+
+ )}
+ {params.standard === STANDARDS.erc721 && (
+
+ {" "}
+ Uri:
+ {txnData()?.uri}
+
+ )}
+
+
+ );
+};
+
+export default TokenTransactionDetails;
diff --git a/packages/cacti-cmd-gui-app/src/pages/eth/Details/TransactionDetails.tsx b/packages/cacti-cmd-gui-app/src/pages/eth/Details/TransactionDetails.tsx
new file mode 100644
index 0000000000..b0187c3219
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/eth/Details/TransactionDetails.tsx
@@ -0,0 +1,100 @@
+import { createEffect, createSignal } from "solid-js";
+import { useParams, useNavigate } from "@solidjs/router";
+import { supabase } from "../../../supabase-client";
+import CardWrapper from "../../../components/CardWrapper/CardWrapper";
+import { Transaction, TokenTransfer } from "../../../schema/supabase-types";
+// @ts-expect-error
+import styles from "./Details.module.css";
+
+const TransactionsDetails = () => {
+ const [details, setDetails] = createSignal({});
+ const [transfers, setTransfers] = createSignal([]);
+ const params = useParams();
+
+ const detailsTableProps = {
+ onClick: {
+ action: () => {},
+ prop: "id",
+ },
+ schema: [
+ { display: "transfer id", objProp: ["id"] },
+ { display: "sender/recipient", objProp: ["sender", "recipient"] },
+ { display: "value", objProp: ["value"] },
+ ],
+ };
+
+ const fetchDetails = async () => {
+ try {
+ const { data, error } = await supabase
+ .from("transaction")
+ .select("*")
+ .match({ id: params.id });
+ if (data?.[0]) {
+ setDetails(data[0]);
+ } else {
+ throw new Error("Failed to load transaction details");
+ }
+ } catch (error:any) {
+ console.error(error.message);
+ }
+ };
+
+ const fetchTransfers = async () => {
+ try {
+ const { data, error } = await supabase
+ .from("token_transfer")
+ .select("*")
+ .match({ transaction_id: params.id });
+ if (data) {
+ setTransfers(data);
+ } else {
+ throw new Error("Failed to load transfers");
+ }
+ } catch (error:any) {
+ console.error(error.message);
+ }
+ };
+
+ createEffect(async () => {
+ await fetchDetails();
+ await fetchTransfers();
+ }, []);
+
+ return (
+
+
+
Details of Transaction
+
+ {" "}
+ Hash: {details().hash}{" "}
+
+
+ Block:
+ {details().block_number}
+
+
+ From:
+ {details().from}
+
+
+ To:
+ {details().to}{" "}
+
+
+ {" "}
+ Value: {details().eth_value}
+
+
+
+
+ );
+};
+
+export default TransactionsDetails;
diff --git a/packages/cacti-cmd-gui-app/src/pages/eth/ERC20/ERC20.module.css b/packages/cacti-cmd-gui-app/src/pages/eth/ERC20/ERC20.module.css
new file mode 100644
index 0000000000..92eaa56f56
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/eth/ERC20/ERC20.module.css
@@ -0,0 +1,19 @@
+.erc-content {
+ display: flex;
+ gap:2rem;
+}
+
+.erc-wrap{
+ width:100%;
+ display: flex;
+ gap:1rem;
+ flex-direction: column;
+
+}
+
+
+@media (max-width: 1699px) {
+ .erc-content{
+ flex-direction: column;
+ }
+}
\ No newline at end of file
diff --git a/packages/cacti-cmd-gui-app/src/pages/eth/ERC20/ERC20.tsx b/packages/cacti-cmd-gui-app/src/pages/eth/ERC20/ERC20.tsx
new file mode 100644
index 0000000000..d32c5956ae
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/eth/ERC20/ERC20.tsx
@@ -0,0 +1,75 @@
+import { useParams, useNavigate } from "@solidjs/router";
+import { createSignal, createEffect } from "solid-js";
+import TokenAccount from "../../../components/TokenHeader/TokenAccount";
+import { supabase } from "../../../supabase-client";
+import CardWrapper from "../../../components/CardWrapper/CardWrapper";
+import Chart from "../../../components/Chart/Chart";
+import { ERC20Txn } from "../../../schema/supabase-types";
+// @ts-expect-error
+import styles from "./ERC20.module.css";
+
+const ERC20 = () => {
+ const params = useParams();
+ const navigate = useNavigate();
+ const [token_erc20, setToken_erc20] = createSignal([]);
+
+ const ercTableProps = {
+ onClick: {
+ action: (token_address: string) =>
+ navigate(`/eth/erc20/trend/${params.account}/${token_address}`),
+ prop: "token_address",
+ },
+ schema: [
+ {
+ display: "token address",
+ objProp: ["token_address"],
+ },
+ {
+ display: "balance",
+ objProp: ["balance"],
+ },
+ ],
+ };
+
+ const fetchERC20 = async () => {
+ try {
+ const { data, error } = await supabase
+ .from("token_erc20")
+ .select()
+ .eq("account_address", params.account);
+ if (data) {
+ setToken_erc20(data);
+ }
+ if (error) {
+ throw new Error(error.message);
+ }
+ } catch (error: any) {
+ console.error(error.message);
+ }
+ };
+
+ createEffect(async () => {
+ await fetchERC20();
+ }, []);
+
+ return (
+
+ );
+};
+
+export default ERC20;
diff --git a/packages/cacti-cmd-gui-app/src/pages/eth/ERC721/ERC721.module.css b/packages/cacti-cmd-gui-app/src/pages/eth/ERC721/ERC721.module.css
new file mode 100644
index 0000000000..fb8d75ce96
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/eth/ERC721/ERC721.module.css
@@ -0,0 +1,18 @@
+.erc-content {
+ display: flex;
+ gap:2rem;
+}
+
+.erc-wrap{
+ display: flex;
+ gap:1rem;
+ flex-direction: column;
+ align-items: center;
+}
+
+@media (max-width: 1699px) {
+
+ .erc-content{
+ flex-direction: column;
+ }
+}
\ No newline at end of file
diff --git a/packages/cacti-cmd-gui-app/src/pages/eth/ERC721/ERC721.tsx b/packages/cacti-cmd-gui-app/src/pages/eth/ERC721/ERC721.tsx
new file mode 100644
index 0000000000..29caf8be4d
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/eth/ERC721/ERC721.tsx
@@ -0,0 +1,117 @@
+import { useParams, useNavigate } from "@solidjs/router";
+import { createSignal, createEffect, Show } from "solid-js";
+import TokenAccount from "../../../components/TokenHeader/TokenAccount";
+import { supabase } from "../../../supabase-client";
+import CardWrapper from "../../../components/CardWrapper/CardWrapper";
+import { ERC721Txn } from "../../../schema/supabase-types";
+import { TokenMetadata721 } from "../../../schema/supabase-types";
+// @ts-expect-error
+import styles from "./ERC721.module.css";
+
+const ERC721 = () => {
+ const params = useParams();
+ const navigate = useNavigate();
+ const [token_erc721, setToken_erc721] = createSignal([]);
+ const [tokenMetadata, setTokenMetadata] = createSignal(
+ [],
+ );
+
+ const ercTableProps = {
+ onClick: {
+ action: (param: string) => navigate(`/eth/token-details/erc721/${param}`),
+ prop: "token_address",
+ },
+ schema: [
+ {
+ display: "symbol",
+ objProp: ["symbol"],
+ },
+ {
+ display: "URI",
+ objProp: ["uri"],
+ },
+ ],
+ };
+ const metaProps = {
+ onClick: {
+ action: () => {},
+ prop: "",
+ },
+ schema: [
+ {
+ display: "created at",
+ objProp: ["created_at"],
+ },
+ {
+ display: "sender/recipient",
+ objProp: ["sender", "recipient"],
+ },
+ {
+ display: "token address",
+ objProp: ["token_address"],
+ },
+ ],
+ };
+
+ const fetchERC721 = async () => {
+ try {
+ const { data, error } = await supabase
+ .from("erc721_txn_meta_view")
+ .select()
+ .eq("account_address", params.account);
+ if (data) {
+ setToken_erc721(data);
+ }
+ if (error) {
+ throw new Error(error.message);
+ }
+ } catch (error:any) {
+ console.error(error.message);
+ }
+ };
+
+ const fetchMetadata = async () => {
+ try {
+ const { data, error } = await supabase
+ .from(`erc721_token_history_view`)
+ .select("*");
+ if (data) {
+ setTokenMetadata(data);
+ }
+ if (error) {
+ console.error(error.message);
+ }
+ } catch (error:any) {
+ console.error(error.message);
+ }
+ };
+
+ createEffect(async () => {
+ await fetchERC721();
+ await fetchMetadata();
+ }, []);
+
+ return (
+
+ );
+};
+
+export default ERC721;
diff --git a/packages/cacti-cmd-gui-app/src/pages/eth/SingleTokenHistory/SingleTokenHistory.module.css b/packages/cacti-cmd-gui-app/src/pages/eth/SingleTokenHistory/SingleTokenHistory.module.css
new file mode 100644
index 0000000000..aa59d7de7e
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/eth/SingleTokenHistory/SingleTokenHistory.module.css
@@ -0,0 +1,12 @@
+.token-history {
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+}
+
+.transactions {
+ display: flex;
+ flex-direction: column;
+ gap: 2rem;
+ margin-top: 2rem;
+}
\ No newline at end of file
diff --git a/packages/cacti-cmd-gui-app/src/pages/eth/SingleTokenHistory/SingleTokenHistory.tsx b/packages/cacti-cmd-gui-app/src/pages/eth/SingleTokenHistory/SingleTokenHistory.tsx
new file mode 100644
index 0000000000..d1dfbaa54f
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/eth/SingleTokenHistory/SingleTokenHistory.tsx
@@ -0,0 +1,119 @@
+import { createSignal, createEffect, Show } from "solid-js";
+import { supabase } from "../../../supabase-client";
+import CardWrapper from "../../../components/CardWrapper/CardWrapper";
+import LineChart from "../../../components/Chart/LineChart";
+import TokenHeader from "../../../components/TokenHeader/TokenHeader";
+import { useNavigate, useParams } from "@solidjs/router";
+import { TokenHistoryItem20 } from "../../../schema/supabase-types";
+import { balanceDate } from "../../../schema/supabase-types";
+// @ts-expect-error
+import styles from "./SingleTokenHistory.module.css";
+import EmptyTablePlaceholder from "../../../components/UI/CustomTable/EmptyTablePlaceholder/EmptyTablePlaceholder";
+
+const SingleTokenHistory = () => {
+ type ObjectKey = keyof typeof styles;
+ const [transactions, setTransactions] = createSignal(
+ [],
+ );
+ const [balanceHistory, setBalanceHistory] = createSignal([]);
+ const navigate = useNavigate();
+ const params = useParams();
+
+ const tokenTableProps = {
+ onClick: {
+ action: (param: string) => navigate(`/view/${param}`),
+ prop: "id",
+ },
+ schema: [
+ {
+ display: "created at",
+ objProp: ["created_at"],
+ },
+ {
+ display: "transaction hash",
+ objProp: ["transaction_hash"],
+ },
+ {
+ display: "sender/recipient",
+ objProp: ["sender", "recipient"],
+ },
+ {
+ display: "token address",
+ objProp: ["token_address"],
+ },
+ {
+ display: "token value",
+ objProp: ["value"],
+ },
+ ],
+ };
+
+ const calcTokenBalance = (txnData: TokenHistoryItem20[]) => {
+ let balance = 0;
+ const balances = txnData.map((txn) => {
+ let txn_value = txn.value || 0;
+ let account = params.account;
+ if (txn.recipient !== account) {
+ txn_value *= -1;
+ }
+ balance += txn_value;
+ return {
+ created_at: txn.created_at + "Z",
+ balance: balance,
+ };
+ });
+ return balances;
+ };
+
+ const fetchTransactions = async () => {
+ try {
+ const { data, error } = await supabase
+ .from("erc20_token_history_view")
+ .select("*")
+ .match({ token_address: params.address }).or(`sender.eq.${params.account}, recipient.eq.${params.account}`);
+ if (data) {
+ setTransactions(data);
+ setBalanceHistory(calcTokenBalance(data));
+ }
+ if (error) {
+ console.error(error.message);
+ }
+ } catch (error:any) {
+ console.error(error.message);
+ }
+ };
+
+ createEffect(async () => {
+ await fetchTransactions();
+ }, []);
+
+ return (
+
+
+
+ 0 }
+ fallback={}>
+
+
+
+
+
+
+
+ );
+};
+
+export default SingleTokenHistory;
diff --git a/packages/cacti-cmd-gui-app/src/pages/eth/Transactions/Transactions.module.css b/packages/cacti-cmd-gui-app/src/pages/eth/Transactions/Transactions.module.css
new file mode 100644
index 0000000000..7ff183b0da
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/eth/Transactions/Transactions.module.css
@@ -0,0 +1,12 @@
+.transactions{
+ display: flex;
+ flex-direction: column;
+
+}.transactions-search {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ margin-bottom: 2rem;
+
+
+}
\ No newline at end of file
diff --git a/packages/cacti-cmd-gui-app/src/pages/eth/Transactions/Transactions.tsx b/packages/cacti-cmd-gui-app/src/pages/eth/Transactions/Transactions.tsx
new file mode 100644
index 0000000000..1679f054cc
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/eth/Transactions/Transactions.tsx
@@ -0,0 +1,66 @@
+import { createSignal, createEffect, Show } from "solid-js";
+import { useNavigate, useParams } from "@solidjs/router";
+import { supabase } from "../../../supabase-client";
+import CardWrapper from "../../../components/CardWrapper/CardWrapper";
+import { Transaction } from "../../../schema/supabase-types";
+// @ts-expect-error
+import styles from "./Transactions.module.css";
+
+const Transactions = () => {
+ const navigate = useNavigate();
+ const [transactions, setTransactions] = createSignal([]);
+
+ const txnTableProps = {
+ onClick: {
+ action: (param: string) => navigate(`/eth/txn-details/${param}`),
+ prop: "id",
+ },
+ schema: [
+ {
+ display: "transaction id",
+ objProp: ["id"],
+ },
+ {
+ display: "sender/recipient",
+ objProp: ["from", "to"],
+ },
+ {
+ display: "token value",
+ objProp: ["eth_value"],
+ },
+ ],
+ };
+
+ const fetchTransactions = async () => {
+ try {
+ const { data } = await supabase.from("transaction").select("*");
+ if (data) {
+ console.log(JSON.stringify(data))
+ setTransactions(data);
+ } else {
+ throw new Error("Failed to load transactions");
+ }
+ } catch (error:any) {
+ console.error(error.message);
+ }
+ };
+
+ createEffect(async () => {
+ await fetchTransactions();
+ }, []);
+
+ return (
+
+
+
+ );
+};
+
+export default Transactions;
diff --git a/packages/cacti-cmd-gui-app/src/pages/fabric/BlocksFabric/BlocksFabric.module.css b/packages/cacti-cmd-gui-app/src/pages/fabric/BlocksFabric/BlocksFabric.module.css
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/packages/cacti-cmd-gui-app/src/pages/fabric/BlocksFabric/BlocksFabric.tsx b/packages/cacti-cmd-gui-app/src/pages/fabric/BlocksFabric/BlocksFabric.tsx
new file mode 100644
index 0000000000..d3c9b4b547
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/fabric/BlocksFabric/BlocksFabric.tsx
@@ -0,0 +1,63 @@
+import { createSignal, createEffect } from "solid-js";
+import { useNavigate } from "@solidjs/router";
+import { supabase } from "../../../supabase-client";
+import CardWrapper from "../../../components/CardWrapper/CardWrapper";
+import { Block } from "../../../schema/supabase-types";
+// @ts-expect-error
+import styles from "./BlocksFabric.module.css";
+
+type ObjectKey = keyof typeof styles;
+
+const BlocksFabric = () => {
+ const navigate = useNavigate();
+ const [block, setBlock] = createSignal([]);
+
+ const blocksTableProps = {
+ onClick: {
+ action: (param: string) => {
+ navigate(`/fabric/block-details/${param}`);
+ },
+ prop: "id",
+ },
+ schema: [
+ { display: "created at", objProp: ["created_at"] },
+ { display: "block number", objProp: ["block_number"] },
+ { display: "channel name", objProp: ["channel_id"] },
+ { display: "hash", objProp: ["data_hash"] },
+ { display: "transactions count", objProp: ["tx_count"] },
+ ],
+ };
+
+ const fetchBlock = async () => {
+ try {
+ const { data, error } = await supabase.from("fabric_blocks").select("*");
+ if (data) {
+ setBlock(data);
+ }
+ if (error) {
+ console.error(error.message);
+ }
+ } catch (error:any) {
+ console.error(error.message);
+ }
+ };
+
+ createEffect(async () => {
+ await fetchBlock();
+ }, []);
+
+ return (
+
+
+
+ );
+};
+
+export default BlocksFabric;
diff --git a/packages/cacti-cmd-gui-app/src/pages/fabric/DashFabric/DashFabric.module.css b/packages/cacti-cmd-gui-app/src/pages/fabric/DashFabric/DashFabric.module.css
new file mode 100644
index 0000000000..f75a30b767
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/fabric/DashFabric/DashFabric.module.css
@@ -0,0 +1,11 @@
+.dashboard-wrapper {
+ display: flex;
+ gap: 1rem;
+ flex-direction: column;
+}
+
+@media (max-width: 1699px) {
+ .dashboard-wrapper {
+ flex-direction: column;
+ }
+}
\ No newline at end of file
diff --git a/packages/cacti-cmd-gui-app/src/pages/fabric/DashFabric/DashFabric.tsx b/packages/cacti-cmd-gui-app/src/pages/fabric/DashFabric/DashFabric.tsx
new file mode 100644
index 0000000000..1ebf142f39
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/fabric/DashFabric/DashFabric.tsx
@@ -0,0 +1,102 @@
+import { createSignal, createEffect, Show } from "solid-js";
+import { useNavigate, useParams } from "@solidjs/router";
+import { supabase } from "../../../supabase-client";
+import CardWrapper from "../../../components/CardWrapper/CardWrapper";
+import { Transaction } from "../../../schema/supabase-types";
+import { Block } from "../../../schema/supabase-types";
+// @ts-expect-error
+import styles from "./DashFabric.module.css";
+
+const DashFabric = () => {
+ const navigate = useNavigate();
+ const [transaction, setTransaction] = createSignal([]);
+ const [block, setBlock] = createSignal([]);
+
+ const txnTableProps = {
+ onClick: {
+ action: (param: string) => {
+ navigate(`/fabric/txn-details/${param}`);
+ },
+ prop: "id",
+ },
+ schema: [
+ { display: "created at", objProp: ["created_at"] },
+ { display: "transaction id", objProp: ["transaction_id"] },
+ { display: "channel name", objProp: ["channel_id"] },
+ { display: "block id", objProp: ["block_id"] },
+ { display: "status", objProp: ["status"] },
+ ],
+ };
+
+ const blocksTableProps = {
+ onClick: {
+ action: (param: string) => {
+ navigate(`/fabric/block-details/${param}`);
+ },
+ prop: "id",
+ },
+ schema: [
+ { display: "created at", objProp: ["created_at"] },
+ { display: "block number", objProp: ["block_number"] },
+ { display: "channel name", objProp: ["channel_id"] },
+ { display: "hash", objProp: ["data_hash"] },
+ { display: "transactions count", objProp: ["tx_count"] },
+ ],
+ };
+
+ const fetchTransactions = async () => {
+ try {
+ const { data, error } = await supabase.from("fabric_transactions").select("*");
+ if (data) {
+ setTransaction(data);
+ }
+ if (error) {
+ console.error(error.message);
+ }
+ } catch (error:any) {
+ console.error(error.message);
+ }
+ };
+
+ const fetchBlock = async () => {
+ try {
+ const { data, error } = await supabase.from("fabric_blocks").select("*");
+ if (data) {
+ setBlock(data);
+ }
+ if (error) {
+ console.error(error.message);
+ }
+ } catch (error:any) {
+ console.error(error.message);
+ }
+ };
+
+ createEffect(async () => {
+ await fetchBlock();
+ await fetchTransactions();
+ }, []);
+
+ return (
+
+ );
+}
+
+export default DashFabric
\ No newline at end of file
diff --git a/packages/cacti-cmd-gui-app/src/pages/fabric/FabricBlock/FabricBlock.module.css b/packages/cacti-cmd-gui-app/src/pages/fabric/FabricBlock/FabricBlock.module.css
new file mode 100644
index 0000000000..5bfa3e269e
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/fabric/FabricBlock/FabricBlock.module.css
@@ -0,0 +1,8 @@
+.details-card {
+ display: flex;
+ flex-direction: column;
+ gap: 15px;
+ border: 1px solid rgb(230, 224, 224);
+ border-radius: 10px;
+ padding: 1.5rem 2rem;
+}
\ No newline at end of file
diff --git a/packages/cacti-cmd-gui-app/src/pages/fabric/FabricBlock/FabricBlock.tsx b/packages/cacti-cmd-gui-app/src/pages/fabric/FabricBlock/FabricBlock.tsx
new file mode 100644
index 0000000000..5a5b56ce38
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/fabric/FabricBlock/FabricBlock.tsx
@@ -0,0 +1,82 @@
+// @ts-expect-error
+import styles from './FabricBlock.module.css'
+import { createEffect, createSignal, Show } from 'solid-js';
+import { useParams } from '@solidjs/router';
+import { supabase } from '../../../supabase-client';
+
+const FabricBlock = () => {
+ const [details, setDetails] = createSignal({});
+ const params = useParams();
+
+ createEffect(async () => {
+ try {
+ const { data, error } = await supabase
+ .from("fabric_blocks")
+ .select("*")
+ .match({ id: params.id});
+ if (data?.[0]) {
+ setDetails(data[0]);
+ } else {
+ throw new Error("Failed to load block details");
+ }
+ } catch (error:any) {
+ console.error(error.message);
+ }
+ }, []);
+
+ return (
+
+
+ Failed to load details
}>
+
Block Details
+
+ ID: {details().id}{" "}
+
+
+ {" "}
+ Block Number:
+ {details().block_number}
+
+
+ Hash:
+ {details().data_hash}
+
+
+ Tx Count:
+ {details().tx_count}
+
+
+ Created at:
+ {details().created_at}
+
+
+ {" "}
+ Previous Blockhash:
+ {details().prev_blockhash}
+
+
+
+ {" "}
+ Channel name:
+ {details().channel_id}
+
+ {/*
+
+ {" "}
+ Blk Size:
+ {details().blksize}
+
+
+ {" "}
+ Network name:
+ {details().network_name}
+
*/
+ }
+
+
+
+ );
+ };
+export default FabricBlock
+
+
diff --git a/packages/cacti-cmd-gui-app/src/pages/fabric/FabricTransaction/FabricTransaction.module.css b/packages/cacti-cmd-gui-app/src/pages/fabric/FabricTransaction/FabricTransaction.module.css
new file mode 100644
index 0000000000..15fab73ab7
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/fabric/FabricTransaction/FabricTransaction.module.css
@@ -0,0 +1,22 @@
+.details-card {
+ display: flex;
+ flex-direction: column;
+ gap: 15px;
+ border: 1px solid rgb(230, 224, 224);
+ border-radius: 10px;
+ padding: 1.5rem 2rem;
+}
+
+.details-bytes-wrap {
+ display: flex;
+ align-items: center;
+ gap: 1rem;
+}
+.details-bytes {
+ width: 30vw;
+ font-size: 14px;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ resize: horizontal;
+}
\ No newline at end of file
diff --git a/packages/cacti-cmd-gui-app/src/pages/fabric/FabricTransaction/FabricTransaction.tsx b/packages/cacti-cmd-gui-app/src/pages/fabric/FabricTransaction/FabricTransaction.tsx
new file mode 100644
index 0000000000..832eb9bf0d
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/fabric/FabricTransaction/FabricTransaction.tsx
@@ -0,0 +1,123 @@
+// @ts-expect-error
+import styles from './FabricTransaction.module.css'
+import { createEffect, createSignal, Show } from 'solid-js';
+import { AiOutlineCopy } from 'solid-icons/ai'
+import toast, { Toaster } from 'solid-toast';
+import { useParams } from '@solidjs/router';
+import { supabase } from '../../../supabase-client';
+import Button from '../../../components/UI/Button/Button';
+
+const notify = () => toast('Success! Creator ID Bytes was successfully copied to the clipboard.');
+
+const FabricTransaction = () => {
+ const [details, setDetails] = createSignal({});
+ const params = useParams();
+
+ createEffect(async () => {
+ try {
+ const { data, error } = await supabase
+ .from("fabric_transactions")
+ .select("*")
+ .match({ id: params.id});
+ if (data?.[0]) {
+ console.log(data)
+ setDetails(data[0]);
+ } else {
+ throw new Error("Failed to load block details");
+ }
+ } catch (error:any) {
+ console.error(error.message);
+ }
+ }, []);
+
+ const copyIdToClipboard = () => {
+ navigator.clipboard.writeText(details().creator_id_bytes)
+ notify()
+ }
+
+ return (
+
+
+ Failed to load details
}>
+
Transaction Details
+
+ Created at:
+ {details().created_at}
+
+
+ Block ID: {details().block_id}{" "}
+
+
+ {" "}
+ Transaction ID:
+ {details().transaction_id}
+
+
+ {" "}
+ Channel name:
+ {details().channel_id}
+
+
+
+ {" "}
+ Status
+ {details().status}
+
+
+
+ {" "}
+ Type
+ {details().type}
+
+ {/*
+
+ {" "}
+ Validation Code
+ {details().validation_code}
+
+
+ {" "}
+ Network name:
+ {details().network_name}
+
+ */}
+
+ {" "}
+ Chaincode Name:
+ {details().chaincode_name}
+
+
+ {" "}
+ Creator ID Bytes:
+ {details().creator_id_bytes}
+
+
+
+ {" "}
+ Creator nonce:
+ {details().creator_nonce}
+
+
+ {" "}
+ Creator MSP ID:
+ {details().creator_msp_id}
+
+
+ {" "}
+ Endorser MSP ID:
+ {details().endorser_msp_id}
+
+
+ {" "}
+ Payload Proposal Hash:
+ {details().payload_proposal_hash}
+
+
+
+
+
+ );
+ };
+export default FabricTransaction
+
+
diff --git a/packages/cacti-cmd-gui-app/src/pages/fabric/TransactionsFabric/TransactionsFabric.module.css b/packages/cacti-cmd-gui-app/src/pages/fabric/TransactionsFabric/TransactionsFabric.module.css
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/packages/cacti-cmd-gui-app/src/pages/fabric/TransactionsFabric/TransactionsFabric.tsx b/packages/cacti-cmd-gui-app/src/pages/fabric/TransactionsFabric/TransactionsFabric.tsx
new file mode 100644
index 0000000000..a8b7690db5
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/fabric/TransactionsFabric/TransactionsFabric.tsx
@@ -0,0 +1,60 @@
+import { createSignal, createEffect, Show } from "solid-js";
+import { useNavigate, useParams } from "@solidjs/router";
+import { supabase } from "../../../supabase-client";
+import CardWrapper from "../../../components/CardWrapper/CardWrapper";
+import { Transaction } from "../../../schema/supabase-types";
+// @ts-expect-error
+import styles from "./TransactionsFabric.module.css";
+
+const TransactionsFabric = () => {
+ const navigate = useNavigate();
+ const [transactions, setTransactions] = createSignal([]);
+
+ const txnTableProps = {
+ onClick: {
+ action: (param: string) => {
+ navigate(`/fabric/txn-details/${param}`);
+ },
+ prop:"id",
+ },
+ schema: [
+ { display: "created at", objProp: ["created_at"] },
+ { display: "transaction id", objProp: ["transaction_id"] },
+ { display: "channel name", objProp: ["channel_id"] },
+ { display: "block id", objProp: ["block_id"] },
+ { display: "status", objProp: ["status"] },
+ ],
+ };
+
+ const fetchTransactions = async () => {
+ try {
+ const { data } = await supabase.from("fabric_transactions").select("*");
+ if (data) {
+ setTransactions(data);
+ } else {
+ throw new Error("Failed to load transactions");
+ }
+ } catch (error:any) {
+ console.error(error.message);
+ }
+ };
+
+ createEffect(async () => {
+ await fetchTransactions();
+ }, []);
+
+ return (
+
+
+
+ );
+};
+
+export default TransactionsFabric;
diff --git a/packages/cacti-cmd-gui-app/src/pages/shared/Home/Home.module.css b/packages/cacti-cmd-gui-app/src/pages/shared/Home/Home.module.css
new file mode 100644
index 0000000000..0c0f242381
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/shared/Home/Home.module.css
@@ -0,0 +1,16 @@
+.home {
+ font-weight: 700;
+ margin:5rem;
+ font-size: 3rem;
+ color:rgb(14, 87, 32);
+ display: flex;
+ justify-content: center;
+ flex-direction: column;
+ align-items: center;
+ gap:2rem;
+}
+
+.home-icon {
+ font-size: 20rem;
+ color:rgb(194, 202, 194);
+}
\ No newline at end of file
diff --git a/packages/cacti-cmd-gui-app/src/pages/shared/Home/Home.tsx b/packages/cacti-cmd-gui-app/src/pages/shared/Home/Home.tsx
new file mode 100644
index 0000000000..faac0f5b52
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/pages/shared/Home/Home.tsx
@@ -0,0 +1,12 @@
+// @ts-expect-error
+import styles from "./Home.module.css"
+import { TbCactus } from 'solid-icons/tb'
+const Home = () => {
+ return (
+ Select ledger from the dropdown menu
+
+
+ )
+}
+
+export default Home
\ No newline at end of file
diff --git a/packages/cacti-cmd-gui-app/src/schema/supabase-types.ts b/packages/cacti-cmd-gui-app/src/schema/supabase-types.ts
new file mode 100644
index 0000000000..45b608e68e
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/schema/supabase-types.ts
@@ -0,0 +1,103 @@
+export interface ERC20Txn {
+ account_address: string;
+ token_address: string;
+ uri: string;
+ token_id: number;
+ id: string;
+ balance: number;
+ last_owner_change: string;
+}
+
+export interface ERC721Txn {
+ account_address: string;
+ token_address: string;
+ uri: string;
+ token_id: number;
+ id: string;
+ last_owner_change: string;
+}
+
+export interface TokenMetadata20 {
+ address: string;
+ name: string;
+ symbol: string;
+ total_supply: number;
+ created_at: string;
+}
+
+export interface TokenMetadata721 {
+ address: string;
+ name: string;
+ symbol: string;
+ created_at: string;
+}
+
+export interface Block {
+ number: number;
+ created_at: string;
+ hash: string;
+ number_of_tx: number;
+ sync_at: string;
+}
+
+export interface TokenTransfer {
+ transaction_id: string;
+ sender: string;
+ recipient: string;
+ value: number;
+ id: string;
+}
+
+export interface Transaction {
+ index: number;
+ hash: string;
+ block_number: number;
+ from: string;
+ to: string;
+ eth_value: number;
+ method_signature: string;
+ method_name: string;
+ id: string;
+}
+
+export interface TokenHistoryItem {
+ transaction_hash: string | null;
+ token_address: string | null;
+ created_at: string | null;
+ sender: string | null;
+ recipient: string | null;
+}
+
+export interface TokenHistoryItem721 extends TokenHistoryItem {
+ token_id: number | null;
+}
+
+export interface TokenHistoryItem20 extends TokenHistoryItem {
+ value: number | null;
+}
+
+export interface TokenTransactionMetadata721 {
+ account_address: string;
+ token_address: string;
+ uri: string;
+ symbol: string;
+}
+
+export interface TableProperty {
+ display: string;
+ objProp: string[];
+}
+
+export interface TableRowClick {
+ action: (param: string) => void;
+ prop: string;
+}
+export interface TableProps {
+ onClick: TableRowClick;
+ schema: TableProperty[];
+}
+
+export interface balanceDate {
+ created_at: string;
+ balance: number;
+}
diff --git a/packages/cacti-cmd-gui-app/src/schema/token-standards.ts b/packages/cacti-cmd-gui-app/src/schema/token-standards.ts
new file mode 100644
index 0000000000..65ad5a514c
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/schema/token-standards.ts
@@ -0,0 +1,4 @@
+export const STANDARDS = {
+ erc20: "ERC20",
+ erc721: "ERC721",
+};
diff --git a/packages/cacti-cmd-gui-app/src/supabase-client.tsx b/packages/cacti-cmd-gui-app/src/supabase-client.tsx
new file mode 100644
index 0000000000..11dbd850c8
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/src/supabase-client.tsx
@@ -0,0 +1,7 @@
+import { createClient } from "@supabase/supabase-js";
+
+let supabaseUrl = "http://localhost:8000";
+let supabaseKey =
+ "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJhbm9uIiwKICAgICJpc3MiOiAic3VwYWJhc2UtZGVtbyIsCiAgICAiaWF0IjogMTY0MTc2OTIwMCwKICAgICJleHAiOiAxNzk5NTM1NjAwCn0.dc_X5iR_VP_qT0zsiyj_I_OZ2T9FtRU2BBNWN8Bu4GE";
+
+export const supabase = createClient(supabaseUrl, supabaseKey);
diff --git a/packages/cacti-cmd-gui-app/styles.d.ts b/packages/cacti-cmd-gui-app/styles.d.ts
new file mode 100644
index 0000000000..f2d12bb56c
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/styles.d.ts
@@ -0,0 +1,4 @@
+declare module "*.module.css" {
+ const classes: { [key: string]: string };
+ export default classes;
+}
diff --git a/packages/cacti-cmd-gui-app/tailwind.config.ts b/packages/cacti-cmd-gui-app/tailwind.config.ts
new file mode 100644
index 0000000000..06602b374a
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/tailwind.config.ts
@@ -0,0 +1,11 @@
+module.exports = {
+ content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"],
+ darkMode: false, // or 'media' or 'class'
+ theme: {
+ extend: {},
+ },
+ variants: {
+ extend: {},
+ },
+ plugins: [],
+};
diff --git a/packages/cacti-cmd-gui-app/tsconfig.json b/packages/cacti-cmd-gui-app/tsconfig.json
new file mode 100644
index 0000000000..d8f03f3180
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/tsconfig.json
@@ -0,0 +1,19 @@
+{
+ "extends": "../../tsconfig.base.json",
+ "include": [
+ "./src"
+ ],
+ "compilerOptions": {
+ "jsx": "preserve",
+ "jsxImportSource": "solid-js",
+ "plugins": [
+ {
+ "name": "typescript-plugin-css-modules"
+ }
+ ],
+ "outDir": "./dist/out-tsc",
+ "rootDir": "./src",
+ "tsBuildInfoFile": "../../.build-cache/cactus-cmd-gui-app.tsbuildinfo"
+ },
+
+}
\ No newline at end of file
diff --git a/packages/cacti-cmd-gui-app/vite.config.ts b/packages/cacti-cmd-gui-app/vite.config.ts
new file mode 100644
index 0000000000..279d6a4fca
--- /dev/null
+++ b/packages/cacti-cmd-gui-app/vite.config.ts
@@ -0,0 +1,13 @@
+import { defineConfig } from "vite";
+import solidPlugin from "vite-plugin-solid";
+
+export default defineConfig({
+ plugins: [solidPlugin()],
+ server: {
+ port: 3001,
+ },
+ build: {
+ target: "esnext",
+ outDir: "./dist/lib",
+ },
+});
diff --git a/tsconfig.json b/tsconfig.json
index 8e7f7078ce..e34b210a73 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -10,6 +10,9 @@
{
"path": "./packages/cactus-cmd-socketio-server/tsconfig.json"
},
+ {
+ "path": "./packages/cacti-cmd-gui-app/tsconfig.json"
+ },
{
"path": "./packages/cactus-common/tsconfig.json"
},
diff --git a/yarn.lock b/yarn.lock
index 8ad127e2c4..4c73fe36dd 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,6 +2,11 @@
# yarn lockfile v1
+"@adobe/css-tools@^4.0.1":
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.2.0.tgz#e1a84fca468f4b337816fcb7f0964beb620ba855"
+ integrity sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqPA==
+
"@adraffy/ens-normalize@1.9.0":
version "1.9.0"
resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.9.0.tgz#223572538f6bea336750039bb43a4016dcc8182d"
@@ -606,6 +611,11 @@
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.7.tgz#61caffb60776e49a57ba61a88f02bedd8714f6bc"
integrity sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==
+"@babel/compat-data@^7.22.9":
+ version "7.22.9"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730"
+ integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==
+
"@babel/core@7.19.3":
version "7.19.3"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.3.tgz#2519f62a51458f43b682d61583c3810e7dcee64c"
@@ -711,6 +721,27 @@
json5 "^2.1.2"
semver "^6.3.0"
+"@babel/core@^7.18.6":
+ version "7.22.9"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f"
+ integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==
+ dependencies:
+ "@ampproject/remapping" "^2.2.0"
+ "@babel/code-frame" "^7.22.5"
+ "@babel/generator" "^7.22.9"
+ "@babel/helper-compilation-targets" "^7.22.9"
+ "@babel/helper-module-transforms" "^7.22.9"
+ "@babel/helpers" "^7.22.6"
+ "@babel/parser" "^7.22.7"
+ "@babel/template" "^7.22.5"
+ "@babel/traverse" "^7.22.8"
+ "@babel/types" "^7.22.5"
+ convert-source-map "^1.7.0"
+ debug "^4.1.0"
+ gensync "^1.0.0-beta.2"
+ json5 "^2.2.2"
+ semver "^6.3.1"
+
"@babel/generator@7.0.0-beta.51":
version "7.0.0-beta.51"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.51.tgz#6c7575ffde761d07485e04baedc0392c6d9e30f6"
@@ -740,6 +771,16 @@
jsesc "^2.5.1"
source-map "^0.5.0"
+"@babel/generator@^7.18.7", "@babel/generator@^7.22.7", "@babel/generator@^7.22.9":
+ version "7.22.9"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.9.tgz#572ecfa7a31002fa1de2a9d91621fd895da8493d"
+ integrity sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==
+ dependencies:
+ "@babel/types" "^7.22.5"
+ "@jridgewell/gen-mapping" "^0.3.2"
+ "@jridgewell/trace-mapping" "^0.3.17"
+ jsesc "^2.5.1"
+
"@babel/generator@^7.18.9":
version "7.18.9"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.9.tgz#68337e9ea8044d6ddc690fb29acae39359cca0a5"
@@ -860,6 +901,17 @@
lru-cache "^5.1.1"
semver "^6.3.0"
+"@babel/helper-compilation-targets@^7.22.9":
+ version "7.22.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz#f9d0a7aaaa7cd32a3f31c9316a69f5a9bcacb892"
+ integrity sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==
+ dependencies:
+ "@babel/compat-data" "^7.22.9"
+ "@babel/helper-validator-option" "^7.22.5"
+ browserslist "^4.21.9"
+ lru-cache "^5.1.1"
+ semver "^6.3.1"
+
"@babel/helper-create-class-features-plugin@^7.18.6":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz#2192a1970ece4685fbff85b48da2c32fcb130b7c"
@@ -889,6 +941,21 @@
"@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
"@babel/helper-split-export-declaration" "^7.18.6"
+"@babel/helper-create-class-features-plugin@^7.22.9":
+ version "7.22.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz#c36ea240bb3348f942f08b0fbe28d6d979fab236"
+ integrity sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.22.5"
+ "@babel/helper-environment-visitor" "^7.22.5"
+ "@babel/helper-function-name" "^7.22.5"
+ "@babel/helper-member-expression-to-functions" "^7.22.5"
+ "@babel/helper-optimise-call-expression" "^7.22.5"
+ "@babel/helper-replace-supers" "^7.22.9"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
+ "@babel/helper-split-export-declaration" "^7.22.6"
+ semver "^6.3.1"
+
"@babel/helper-create-regexp-features-plugin@^7.16.7":
version "7.17.0"
resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz#1dcc7d40ba0c6b6b25618997c5dbfd310f186fe1"
@@ -1031,6 +1098,13 @@
dependencies:
"@babel/types" "^7.22.5"
+"@babel/helper-module-imports@7.18.6", "@babel/helper-module-imports@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e"
+ integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==
+ dependencies:
+ "@babel/types" "^7.18.6"
+
"@babel/helper-module-imports@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437"
@@ -1038,13 +1112,6 @@
dependencies:
"@babel/types" "^7.16.7"
-"@babel/helper-module-imports@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e"
- integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==
- dependencies:
- "@babel/types" "^7.18.6"
-
"@babel/helper-module-imports@^7.21.4":
version "7.21.4"
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz#ac88b2f76093637489e718a90cec6cf8a9b029af"
@@ -1115,6 +1182,17 @@
"@babel/traverse" "^7.21.5"
"@babel/types" "^7.21.5"
+"@babel/helper-module-transforms@^7.22.9":
+ version "7.22.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129"
+ integrity sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.22.5"
+ "@babel/helper-module-imports" "^7.22.5"
+ "@babel/helper-simple-access" "^7.22.5"
+ "@babel/helper-split-export-declaration" "^7.22.6"
+ "@babel/helper-validator-identifier" "^7.22.5"
+
"@babel/helper-optimise-call-expression@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe"
@@ -1178,6 +1256,15 @@
"@babel/traverse" "^7.22.5"
"@babel/types" "^7.22.5"
+"@babel/helper-replace-supers@^7.22.9":
+ version "7.22.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz#cbdc27d6d8d18cd22c81ae4293765a5d9afd0779"
+ integrity sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.22.5"
+ "@babel/helper-member-expression-to-functions" "^7.22.5"
+ "@babel/helper-optimise-call-expression" "^7.22.5"
+
"@babel/helper-simple-access@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz#d656654b9ea08dbb9659b69d61063ccd343ff0f7"
@@ -1248,6 +1335,13 @@
dependencies:
"@babel/types" "^7.22.5"
+"@babel/helper-split-export-declaration@^7.22.6":
+ version "7.22.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c"
+ integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==
+ dependencies:
+ "@babel/types" "^7.22.5"
+
"@babel/helper-string-parser@^7.19.4":
version "7.19.4"
resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63"
@@ -1349,6 +1443,15 @@
"@babel/traverse" "^7.21.5"
"@babel/types" "^7.21.5"
+"@babel/helpers@^7.22.6":
+ version "7.22.6"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.6.tgz#8e61d3395a4f0c5a8060f309fb008200969b5ecd"
+ integrity sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==
+ dependencies:
+ "@babel/template" "^7.22.5"
+ "@babel/traverse" "^7.22.6"
+ "@babel/types" "^7.22.5"
+
"@babel/highlight@7.0.0-beta.51":
version "7.0.0-beta.51"
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.51.tgz#e8844ae25a1595ccfd42b89623b4376ca06d225d"
@@ -1420,6 +1523,11 @@
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.8.tgz#642af7d0333eab9c0ad70b14ac5e76dbde7bfdf8"
integrity sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==
+"@babel/parser@^7.22.7":
+ version "7.22.7"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae"
+ integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==
+
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz#87245a21cd69a73b0b81bcda98d443d6df08f05e"
@@ -1654,6 +1762,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.16.7"
+"@babel/plugin-syntax-jsx@^7.18.6", "@babel/plugin-syntax-jsx@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918"
+ integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
"@babel/plugin-syntax-jsx@^7.7.2":
version "7.21.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz#f264ed7bf40ffc9ec239edabc17a50c4f5b6fea2"
@@ -1717,6 +1832,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.14.5"
+"@babel/plugin-syntax-typescript@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz#aac8d383b062c5072c647a31ef990c1d0af90272"
+ integrity sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
"@babel/plugin-syntax-typescript@^7.7.2":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz#39c9b55ee153151990fb038651d58d3fd03f98f8"
@@ -1869,7 +1991,7 @@
"@babel/helper-module-transforms" "^7.22.5"
"@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-modules-commonjs@^7.19.6":
+"@babel/plugin-transform-modules-commonjs@^7.19.6", "@babel/plugin-transform-modules-commonjs@^7.22.5":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz#7d9875908d19b8c0536085af7b053fd5bd651bfa"
integrity "sha1-fZh1kI0ZuMBTYIWvewU/1b1lG/o= sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA=="
@@ -2030,6 +2152,16 @@
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
+"@babel/plugin-transform-typescript@^7.22.5":
+ version "7.22.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.9.tgz#91e08ad1eb1028ecc62662a842e93ecfbf3c7234"
+ integrity sha512-BnVR1CpKiuD0iobHPaM1iLvcwPYN2uVFAqoLVSpEDKWuOikoCv5HbKLxclhKYUXlWkX86DoZGtqI4XhbOsyrMg==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.22.5"
+ "@babel/helper-create-class-features-plugin" "^7.22.9"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-typescript" "^7.22.5"
+
"@babel/plugin-transform-unicode-escapes@^7.18.10":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz#ce0c248522b1cb22c7c992d88301a5ead70e806c"
@@ -2137,6 +2269,17 @@
"@babel/types" "^7.4.4"
esutils "^2.0.2"
+"@babel/preset-typescript@^7.18.6":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz#16367d8b01d640e9a507577ed4ee54e0101e51c8"
+ integrity sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-validator-option" "^7.22.5"
+ "@babel/plugin-syntax-jsx" "^7.22.5"
+ "@babel/plugin-transform-modules-commonjs" "^7.22.5"
+ "@babel/plugin-transform-typescript" "^7.22.5"
+
"@babel/regjsgen@^0.8.0":
version "0.8.0"
resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310"
@@ -2319,6 +2462,22 @@
debug "^4.1.0"
globals "^11.1.0"
+"@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8":
+ version "7.22.8"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e"
+ integrity sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==
+ dependencies:
+ "@babel/code-frame" "^7.22.5"
+ "@babel/generator" "^7.22.7"
+ "@babel/helper-environment-visitor" "^7.22.5"
+ "@babel/helper-function-name" "^7.22.5"
+ "@babel/helper-hoist-variables" "^7.22.5"
+ "@babel/helper-split-export-declaration" "^7.22.6"
+ "@babel/parser" "^7.22.7"
+ "@babel/types" "^7.22.5"
+ debug "^4.1.0"
+ globals "^11.1.0"
+
"@babel/types@7.0.0-beta.51":
version "7.0.0-beta.51"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.51.tgz#d802b7b543b5836c778aa691797abf00f3d97ea9"
@@ -2336,15 +2495,7 @@
"@babel/helper-validator-identifier" "^7.16.7"
to-fast-properties "^2.0.0"
-"@babel/types@^7.18.6", "@babel/types@^7.18.9":
- version "7.18.9"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.9.tgz#7148d64ba133d8d73a41b3172ac4b83a1452205f"
- integrity sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==
- dependencies:
- "@babel/helper-validator-identifier" "^7.18.6"
- to-fast-properties "^2.0.0"
-
-"@babel/types@^7.19.3", "@babel/types@^7.20.2", "@babel/types@^7.22.5":
+"@babel/types@^7.18.4", "@babel/types@^7.19.3", "@babel/types@^7.20.2", "@babel/types@^7.22.5":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe"
integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==
@@ -2353,6 +2504,14 @@
"@babel/helper-validator-identifier" "^7.22.5"
to-fast-properties "^2.0.0"
+"@babel/types@^7.18.6", "@babel/types@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.9.tgz#7148d64ba133d8d73a41b3172ac4b83a1452205f"
+ integrity sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.18.6"
+ to-fast-properties "^2.0.0"
+
"@babel/types@^7.20.0", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.4":
version "7.21.4"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.4.tgz#2d5d6bb7908699b3b416409ffd3b5daa25b030d4"
@@ -2972,6 +3131,11 @@
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.8.tgz#ee400af7b3bc69e8ca2e593ca35156ffb9abd54f"
integrity sha512-8svILYKhE5XetuFk/B6raFYIyIqydQi+GngEXJgdPdI7OMKUbSd7uzR02wSY4kb53xBrClLkhH4Xs8P61Q2BaA==
+"@esbuild/linux-loong64@0.14.54":
+ version "0.14.54"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz#de2a4be678bd4d0d1ffbb86e6de779cde5999028"
+ integrity sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==
+
"@esbuild/linux-loong64@0.17.8":
version "0.17.8"
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.8.tgz#8c509d8a454693d39824b83b3f66c400872fce82"
@@ -5842,20 +6006,67 @@
resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553"
integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==
-"@socket.io/component-emitter@~3.1.0":
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553"
- integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==
+"@solid-primitives/timer@^1.3.2":
+ version "1.3.7"
+ resolved "https://registry.yarnpkg.com/@solid-primitives/timer/-/timer-1.3.7.tgz#58bcbc7600137b03ce6887390f300b109f9299b6"
+ integrity sha512-zS3qA7WVZYsW7+iTdk2M4W1wpMvRhdcMnO23Tcd+nX3YD7eMvjOnO15Oz2mymyfl/OC2ZgM1L5ec66GayEvPwQ==
-"@stencil/core@^2.14.2":
- version "2.15.2"
- resolved "https://registry.yarnpkg.com/@stencil/core/-/core-2.15.2.tgz#73a18050714a9edc488e6a2ea3380f5a91a04690"
- integrity sha512-D6dv2KAXlWt9mjC28q0s6anghQgXRn0k93suOf+4pqsv1Uq19zNJXpYL68N5GxMSiNZyMPTU4Tt2NCbut7DVGg==
+"@solidjs/router@0.4.2":
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/@solidjs/router/-/router-0.4.2.tgz#0755a9212e648f1220c081f65aaaa049475ab09f"
+ integrity sha512-RswymVhqnGVHMCo/01X9wE+u98pzYZQ/b23SgjO/PK+8oTgdY1f83OrsWR1A01LieTySkCSw7nunWTi+VOQyWA==
-"@stencil/core@~2.12.0":
- version "2.12.1"
- resolved "https://registry.yarnpkg.com/@stencil/core/-/core-2.12.1.tgz#92364d3e57337b8d36dd9b70cfbed2833929f22d"
- integrity sha512-u24TZ+FEvjnZt5ZgIkLjLpUNsO6Ml3mUZqwmqk81w6RWWz75hgB5p4RFI5rvuErFeh2xvMIGo+pNdG24XUBz1A==
+"@stencil/core@^2.18.0":
+ version "2.22.3"
+ resolved "https://registry.yarnpkg.com/@stencil/core/-/core-2.22.3.tgz#83987e20bba855c450f6d6780e3a20192603f13f"
+ integrity sha512-kmVA0M/HojwsfkeHsifvHVIYe4l5tin7J5+DLgtl8h6WWfiMClND5K3ifCXXI2ETDNKiEk21p6jql3Fx9o2rng==
+
+"@supabase/functions-js@^1.3.4":
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/@supabase/functions-js/-/functions-js-1.3.4.tgz#44f86f7cf949baa7f1bb414f3b8c0985a19df633"
+ integrity sha512-yYVgkECjv7IZEBKBI3EB5Q7R1p0FJ10g8Q9N7SWKIHUU6i6DnbEGHIMFLyQRm1hmiNWD8fL7bRVEYacmTRJhHw==
+ dependencies:
+ cross-fetch "^3.1.5"
+
+"@supabase/gotrue-js@^1.22.21":
+ version "1.24.0"
+ resolved "https://registry.yarnpkg.com/@supabase/gotrue-js/-/gotrue-js-1.24.0.tgz#0afbb158071a8dd5e78cf386a068c71c9f534425"
+ integrity sha512-6PVv7mHCFOxLm6TSBfR7hsq/y3CMKpvzePVR+ZWtlFBTjJ2J87g2OYE9bgC61P5TNeZopUXKw93H92yz0MTALw==
+ dependencies:
+ cross-fetch "^3.0.6"
+
+"@supabase/postgrest-js@^0.37.4":
+ version "0.37.4"
+ resolved "https://registry.yarnpkg.com/@supabase/postgrest-js/-/postgrest-js-0.37.4.tgz#8bc2a1353e139962dca931a8e7c8416d60b4a8ed"
+ integrity sha512-x+c2rk1fz9s6f1PrGxCJ0QTUgXPDI0G3ngIqD5sSiXhhCyfl8Q5V92mXl2EYtlDhkiUkjFNrOZFhXVbXOHgvDw==
+ dependencies:
+ cross-fetch "^3.1.5"
+
+"@supabase/realtime-js@^1.7.4":
+ version "1.7.5"
+ resolved "https://registry.yarnpkg.com/@supabase/realtime-js/-/realtime-js-1.7.5.tgz#387f094655c11d5608df9a3039c5f01186a5f401"
+ integrity sha512-nXuoxt7NE1NTI+G8WBim1K2gkUC8YE3e9evBUG+t6xwd9Sq+sSOrjcE0qJ8/Y631BCnLzlhX6yhFYQFh1oQDOg==
+ dependencies:
+ "@types/phoenix" "^1.5.4"
+ websocket "^1.0.34"
+
+"@supabase/storage-js@^1.7.2":
+ version "1.7.3"
+ resolved "https://registry.yarnpkg.com/@supabase/storage-js/-/storage-js-1.7.3.tgz#b53cd6d289e2223919e6526364fd46977a643fbe"
+ integrity sha512-jnIZWqOc9TGclOozgX9v/RWGFCgJAyW/yvmauexgRZhWknUXoA4b2i8tj7vfwE0WTvNRuA5JpXID98rfJeSG7Q==
+ dependencies:
+ cross-fetch "^3.1.0"
+
+"@supabase/supabase-js@1.35.6":
+ version "1.35.6"
+ resolved "https://registry.yarnpkg.com/@supabase/supabase-js/-/supabase-js-1.35.6.tgz#df5a2c132035ab9e5462ed474587902b3e767a66"
+ integrity sha512-KDRXRr+kdGwruIUizZPALbe5YccMYFVyZJf1sFWKLncaLYSFiM6iKFnqCrNeQ4JFoZZiICkiTl1FUuai62jVpg==
+ dependencies:
+ "@supabase/functions-js" "^1.3.4"
+ "@supabase/gotrue-js" "^1.22.21"
+ "@supabase/postgrest-js" "^0.37.4"
+ "@supabase/realtime-js" "^1.7.4"
+ "@supabase/storage-js" "^1.7.2"
"@szmarczak/http-timer@^1.1.2":
version "1.1.2"
@@ -6895,6 +7106,11 @@
pg-protocol "*"
pg-types "^2.2.0"
+"@types/phoenix@^1.5.4":
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/@types/phoenix/-/phoenix-1.6.0.tgz#eb7536259ee695646e75c4c7b0c9a857ea174781"
+ integrity sha512-qwfpsHmFuhAS/dVd4uBIraMxRd56vwBUYQGZ6GpXnFuM2XMRFJbIyruFKKlW2daQliuYZwe0qfn/UjFCDKic5g==
+
"@types/prettier@^2.1.5":
version "2.4.4"
resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.4.tgz#5d9b63132df54d8909fce1c3f8ca260fdd693e17"
@@ -7629,6 +7845,13 @@ abstract-leveldown@^6.2.1:
level-supports "~1.0.0"
xtend "~4.0.0"
+abstract-leveldown@~0.12.0, abstract-leveldown@~0.12.1:
+ version "0.12.4"
+ resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-0.12.4.tgz#29e18e632e60e4e221d5810247852a63d7b2e410"
+ integrity sha512-TOod9d5RDExo6STLMGa+04HGkl+TlMfbDnTyN93/ETJ9DpQ0DaYLqcMZlbXvdc4W3vVo1Qrl+WhSp8zvDsJ+jA==
+ dependencies:
+ xtend "~3.0.0"
+
abstract-leveldown@~2.7.1:
version "2.7.2"
resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz#87a44d7ebebc341d59665204834c8b7e0932cc93"
@@ -7986,6 +8209,30 @@ anymatch@^3.0.3, anymatch@~3.1.2:
normalize-path "^3.0.0"
picomatch "^2.0.4"
+apexcharts@3.36.0:
+ version "3.36.0"
+ resolved "https://registry.yarnpkg.com/apexcharts/-/apexcharts-3.36.0.tgz#eba378167be3ebe5044b8980d5907bad9e9a7fff"
+ integrity sha512-9r7M/SOfnYS1g4G1gmRRgeIN1Oj+ct1S0G6PpMPPD3F4jGHgWl5EzxqvoQkk3vpTxN8MbZB5ZHWIAQvPuFiA+w==
+ dependencies:
+ svg.draggable.js "^2.2.2"
+ svg.easing.js "^2.0.0"
+ svg.filter.js "^2.0.2"
+ svg.pathmorphing.js "^0.1.3"
+ svg.resize.js "^1.4.3"
+ svg.select.js "^3.0.1"
+
+apexcharts@^3.33.1:
+ version "3.41.0"
+ resolved "https://registry.yarnpkg.com/apexcharts/-/apexcharts-3.41.0.tgz#7aef77275c19dfb925552d6fc8e027443a6d1337"
+ integrity sha512-FJXA7NVjxs1q+ptR3b1I+pN8K/gWuXn+qLZjFz8EHvJOokdgcuwa/HSe5aC465HW/LWnrjWLSTsOQejQbQ42hQ==
+ dependencies:
+ svg.draggable.js "^2.2.2"
+ svg.easing.js "^2.0.0"
+ svg.filter.js "^2.0.2"
+ svg.pathmorphing.js "^0.1.3"
+ svg.resize.js "^1.4.3"
+ svg.select.js "^3.0.1"
+
apisauce@^2.1.5:
version "2.1.6"
resolved "https://registry.yarnpkg.com/apisauce/-/apisauce-2.1.6.tgz#94887f335bf3d735305fc895c8a191c9c2608a7f"
@@ -8574,6 +8821,18 @@ autoprefixer@10.4.13:
picocolors "^1.0.0"
postcss-value-parser "^4.2.0"
+autoprefixer@10.4.8:
+ version "10.4.8"
+ resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.8.tgz#92c7a0199e1cfb2ad5d9427bd585a3d75895b9e5"
+ integrity sha512-75Jr6Q/XpTqEf6D2ltS5uMewJIx5irCU1oBYJrWjFenq/m12WRRrz6g15L1EIoYvPLXTbEry7rDOwrcYNj77xw==
+ dependencies:
+ browserslist "^4.21.3"
+ caniuse-lite "^1.0.30001373"
+ fraction.js "^4.2.0"
+ normalize-range "^0.1.2"
+ picocolors "^1.0.0"
+ postcss-value-parser "^4.2.0"
+
available-typed-arrays@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7"
@@ -8804,6 +9063,17 @@ babel-plugin-jest-hoist@^29.5.0:
"@types/babel__core" "^7.1.14"
"@types/babel__traverse" "^7.0.6"
+babel-plugin-jsx-dom-expressions@^0.36.10:
+ version "0.36.10"
+ resolved "https://registry.yarnpkg.com/babel-plugin-jsx-dom-expressions/-/babel-plugin-jsx-dom-expressions-0.36.10.tgz#8f05f12b1c8622453ec4db48b95e5d1495fe497a"
+ integrity sha512-QA2k/14WGw+RgcGGnEuLWwnu4em6CGhjeXtjvgOYyFHYS2a+CzPeaVQHDOlfuiBcjq/3hWMspHMIMnPEOIzdBg==
+ dependencies:
+ "@babel/helper-module-imports" "7.18.6"
+ "@babel/plugin-syntax-jsx" "^7.18.6"
+ "@babel/types" "^7.20.7"
+ html-entities "2.3.3"
+ validate-html-nesting "^1.2.1"
+
babel-plugin-minify-builtins@^0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.5.0.tgz#31eb82ed1a0d0efdc31312f93b6e4741ce82c36b"
@@ -9043,6 +9313,13 @@ babel-preset-minify@^0.5.1:
babel-plugin-transform-undefined-to-void "^6.9.4"
lodash "^4.17.11"
+babel-preset-solid@^1.4.6:
+ version "1.7.7"
+ resolved "https://registry.yarnpkg.com/babel-preset-solid/-/babel-preset-solid-1.7.7.tgz#316ad3e1c11083772358c3b7796a5ab234987a0e"
+ integrity sha512-tdxVzx3kgcIjNXAOmGRbzIhFBPeJjSakiN9yM+IYdL/+LtXNnbGqb0Va5tJb8Sjbk+QVEriovCyuzB5T7jeTvg==
+ dependencies:
+ babel-plugin-jsx-dom-expressions "^0.36.10"
+
babel-runtime@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
@@ -9140,6 +9417,11 @@ big-integer@1.6.36:
resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.36.tgz#78631076265d4ae3555c04f85e7d9d2f3a071a36"
integrity sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==
+big.js@^3.1.3:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
+ integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==
+
big.js@^5.2.2:
version "5.2.2"
resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
@@ -9243,6 +9525,13 @@ bl@^4.0.3, bl@^4.1.0:
inherits "^2.0.4"
readable-stream "^3.4.0"
+bl@~0.8.1:
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/bl/-/bl-0.8.2.tgz#c9b6bca08d1bc2ea00fc8afb4f1a5fd1e1c66e4e"
+ integrity sha512-pfqikmByp+lifZCS0p6j6KreV6kNU6Apzpm2nKOk+94cZb/jvle55+JxWiByUQ0Wo/+XnDXEy5MxxKMb6r0VIw==
+ dependencies:
+ readable-stream "~1.0.26"
+
blakejs@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.1.tgz#bf313053978b2cd4c444a48795710be05c785702"
@@ -9372,7 +9661,7 @@ body-parser@1.20.1:
type-is "~1.6.18"
unpipe "1.0.0"
-body-parser@1.20.2, body-parser@^1.20.0:
+body-parser@1.20.2, body-parser@^1.10.0, body-parser@^1.20.0:
version "1.20.2"
resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd"
integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==
@@ -9580,6 +9869,15 @@ browserify-des@^1.0.0:
inherits "^2.0.1"
safe-buffer "^5.1.2"
+browserify-fs@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/browserify-fs/-/browserify-fs-1.0.0.tgz#f075aa8a729d4d1716d066620e386fcc1311a96f"
+ integrity sha512-8LqHRPuAEKvyTX34R6tsw4bO2ro6j9DmlYBhiYWHRM26Zv2cBw1fJOU0NeUQ0RkXkPn/PFBjhA0dm4AgaBurTg==
+ dependencies:
+ level-filesystem "^1.0.1"
+ level-js "^2.1.3"
+ levelup "^0.18.2"
+
browserify-rsa@^4.0.0, browserify-rsa@^4.0.1:
version "4.1.0"
resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d"
@@ -9631,7 +9929,7 @@ browserslist@^4.14.5, browserslist@^4.17.5, browserslist@^4.20.2:
node-releases "^2.0.3"
picocolors "^1.0.0"
-browserslist@^4.21.4:
+browserslist@^4.21.4, browserslist@^4.21.9:
version "4.21.9"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635"
integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==
@@ -10107,6 +10405,11 @@ caniuse-lite@^1.0.30001332:
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001340.tgz#029a2f8bfc025d4820fafbfaa6259fd7778340c7"
integrity sha512-jUNz+a9blQTQVu4uFcn17uAD8IDizPzQkIKh3LCJfg9BkyIqExYYdyc/ZSlWUSKb8iYiXxKsxbv4zYSvkqjrxw==
+caniuse-lite@^1.0.30001373:
+ version "1.0.30001516"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001516.tgz#621b1be7d85a8843ee7d210fd9d87b52e3daab3a"
+ integrity sha512-Wmec9pCBY8CWbmI4HsjBeQLqDTqV91nFVR83DnZpYyRnPI1wePDsTg0bGLPC5VU/3OIZV1fmxEea1b+tFKe86g==
+
caniuse-lite@^1.0.30001426, caniuse-lite@^1.0.30001503:
version "1.0.30001510"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001510.tgz#077b7ceba430473142ffd47ed89a78bd7b10075f"
@@ -10273,6 +10576,11 @@ charenc@0.0.2:
resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667"
integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==
+chart.js@3.9.1:
+ version "3.9.1"
+ resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-3.9.1.tgz#3abf2c775169c4c71217a107163ac708515924b8"
+ integrity sha512-Ro2JbLmvg83gXF5F4sniaQ+lTbSv18E+TIf2cOeiH1Iqd2PGFOtem+DUufMZsCJwFE7ywPOpfXFBwRTGq7dh6w==
+
check-error@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
@@ -10575,6 +10883,11 @@ clone@^1.0.2:
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
+clone@~0.1.9:
+ version "0.1.19"
+ resolved "https://registry.yarnpkg.com/clone/-/clone-0.1.19.tgz#613fb68639b26a494ac53253e15b1a6bd88ada85"
+ integrity sha512-IO78I0y6JcSpEPHzK4obKdsL7E7oLdRVDVOLwr2Hkbjsb+Eoz0dxW6tef0WizoKu0gLC4oZSZuEF4U2K6w1WQw==
+
cloudant-follow@~0.17.0:
version "0.17.0"
resolved "https://registry.yarnpkg.com/cloudant-follow/-/cloudant-follow-0.17.0.tgz#842513a74e72c440e61dc2b6fd96eedbd9cef38a"
@@ -10792,6 +11105,11 @@ commander@^9.1.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-9.2.0.tgz#6e21014b2ed90d8b7c9647230d8b7a94a4a419a9"
integrity sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==
+commander@~2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.1.0.tgz#d121bbae860d9992a3d517ba96f56588e47c6781"
+ integrity sha512-J2wnb6TKniXNOtoHS8TSrG9IOQluPrsmyAJ8oCUJOBmv+uLBCyPYAZkD2jFvw2DCzIXNnISIM01NIvr35TkBMQ==
+
comment-json@^4.1.0, comment-json@^4.2.2:
version "4.2.2"
resolved "https://registry.yarnpkg.com/comment-json/-/comment-json-4.2.2.tgz#5fae70a94e0c8f84a077bd31df5aa5269252f293"
@@ -10876,7 +11194,7 @@ concat-map@0.0.1:
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
-concat-stream@^1.5.2, concat-stream@^1.6.0, concat-stream@^1.6.2:
+concat-stream@^1.4.4, concat-stream@^1.5.2, concat-stream@^1.6.0, concat-stream@^1.6.2:
version "1.6.2"
resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
@@ -11426,6 +11744,13 @@ cross-env@7.0.3:
dependencies:
cross-spawn "^7.0.1"
+cross-fetch@^3.0.6, cross-fetch@^3.1.0, cross-fetch@^3.1.5:
+ version "3.1.8"
+ resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82"
+ integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==
+ dependencies:
+ node-fetch "^2.6.12"
+
cross-fetch@^3.1.4:
version "3.1.5"
resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f"
@@ -11622,6 +11947,14 @@ css-select@^5.1.0:
domutils "^3.0.1"
nth-check "^2.0.1"
+css-selector-tokenizer@^0.7.0:
+ version "0.7.3"
+ resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz#735f26186e67c749aaf275783405cf0661fae8f1"
+ integrity sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==
+ dependencies:
+ cssesc "^3.0.0"
+ fastparse "^1.1.2"
+
css-what@^6.0.1, css-what@^6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4"
@@ -11654,6 +11987,11 @@ csstype@^3.0.2:
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.10.tgz#2ad3a7bed70f35b965707c092e5f30b327c290e5"
integrity sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==
+csstype@^3.1.0:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b"
+ integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==
+
csv-parse@^4.4.6:
version "4.16.3"
resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-4.16.3.tgz#7ca624d517212ebc520a36873c3478fa66efbaf7"
@@ -11689,6 +12027,11 @@ dashdash@^1.12.0:
dependencies:
assert-plus "^1.0.0"
+data-uri-to-buffer@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e"
+ integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==
+
data-urls@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe"
@@ -11764,7 +12107,7 @@ debug@3.1.0, debug@~3.1.0:
dependencies:
ms "2.0.0"
-debug@4, debug@4.3.4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2:
+debug@4, debug@4.3.4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2:
version "4.3.4"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
@@ -11995,6 +12338,13 @@ defer-to-connect@^2.0.0, defer-to-connect@^2.0.1:
resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587"
integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==
+deferred-leveldown@~0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-0.2.0.tgz#2cef1f111e1c57870d8bbb8af2650e587cd2f5b4"
+ integrity sha512-+WCbb4+ez/SZ77Sdy1iadagFiVzMB89IKOBhglgnUkVxOxRWmmFsz8UDSNWh4Rhq+3wr/vMFlYj+rdEwWUDdng==
+ dependencies:
+ abstract-leveldown "~0.12.1"
+
deferred-leveldown@~5.3.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz#27a997ad95408b61161aa69bd489b86c71b78058"
@@ -12050,6 +12400,11 @@ defined@^1.0.1:
resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf"
integrity "sha1-wLnbJ7+v/ZXW9hOZQZuJPfD5Hr8= sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q=="
+defu@^6.0.0:
+ version "6.1.2"
+ resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.2.tgz#1217cba167410a1765ba93893c6dbac9ed9d9e5c"
+ integrity sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==
+
del-cli@4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/del-cli/-/del-cli-4.0.1.tgz#2303ccaa45708ee8c6211568344cf87336abf30a"
@@ -12607,6 +12962,11 @@ emoji-regex@^8.0.0:
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+emojis-list@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
+ integrity sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng==
+
emojis-list@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
@@ -12699,11 +13059,6 @@ engine.io-parser@~5.0.3:
dependencies:
"@socket.io/base64-arraybuffer" "~1.0.2"
-engine.io-parser@~5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.1.0.tgz#d593d6372d7f79212df48f807b8cace1ea1cb1b8"
- integrity sha512-enySgNiK5tyZFynt3z7iqBR+Bto9EVVVvDFuTT0ioHCGbzirZVGDGiQjZzEp8hWl6hd5FSVytJGuScX1C1C35w==
-
engine.io@~6.1.0:
version "6.1.3"
resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.1.3.tgz#f156293d011d99a3df5691ac29d63737c3302e6f"
@@ -12736,23 +13091,7 @@ engine.io@~6.2.1:
engine.io-parser "~5.0.3"
ws "~8.2.3"
-engine.io@~6.5.0:
- version "6.5.0"
- resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.5.0.tgz#02b9d9941c0d3ab2d46628e98ac3331dd533dff0"
- integrity sha512-UlfoK1iD62Hkedw2TmuHdhDsZCGaAyp+LZ/AvnImjYBeWagA3qIEETum90d6shMeFZiDuGT66zVCdx1wKYKGGg==
- dependencies:
- "@types/cookie" "^0.4.1"
- "@types/cors" "^2.8.12"
- "@types/node" ">=10.0.0"
- accepts "~1.3.4"
- base64id "2.0.0"
- cookie "~0.4.1"
- cors "~2.8.5"
- debug "~4.3.1"
- engine.io-parser "~5.1.0"
- ws "~8.11.0"
-
-enhanced-resolve@^5.0.0, enhanced-resolve@^5.10.0, enhanced-resolve@^5.9.2, enhanced-resolve@^5.9.3:
+enhanced-resolve@^5.0.0, enhanced-resolve@^5.10.0:
version "5.12.0"
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz#300e1c90228f5b570c4d35babf263f6da7155634"
integrity sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==
@@ -12983,11 +13322,111 @@ es6-symbol@^3.1.1, es6-symbol@~3.1.3:
d "^1.0.1"
ext "^1.1.2"
+esbuild-android-64@0.14.54:
+ version "0.14.54"
+ resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz#505f41832884313bbaffb27704b8bcaa2d8616be"
+ integrity sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==
+
+esbuild-android-arm64@0.14.54:
+ version "0.14.54"
+ resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz#8ce69d7caba49646e009968fe5754a21a9871771"
+ integrity sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==
+
+esbuild-darwin-64@0.14.54:
+ version "0.14.54"
+ resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz#24ba67b9a8cb890a3c08d9018f887cc221cdda25"
+ integrity sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==
+
+esbuild-darwin-arm64@0.14.54:
+ version "0.14.54"
+ resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz#3f7cdb78888ee05e488d250a2bdaab1fa671bf73"
+ integrity sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==
+
+esbuild-freebsd-64@0.14.54:
+ version "0.14.54"
+ resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz#09250f997a56ed4650f3e1979c905ffc40bbe94d"
+ integrity sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==
+
+esbuild-freebsd-arm64@0.14.54:
+ version "0.14.54"
+ resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz#bafb46ed04fc5f97cbdb016d86947a79579f8e48"
+ integrity sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==
+
+esbuild-linux-32@0.14.54:
+ version "0.14.54"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz#e2a8c4a8efdc355405325033fcebeb941f781fe5"
+ integrity sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==
+
+esbuild-linux-64@0.14.54:
+ version "0.14.54"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz#de5fdba1c95666cf72369f52b40b03be71226652"
+ integrity sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==
+
+esbuild-linux-arm64@0.14.54:
+ version "0.14.54"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz#dae4cd42ae9787468b6a5c158da4c84e83b0ce8b"
+ integrity sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==
+
+esbuild-linux-arm@0.14.54:
+ version "0.14.54"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz#a2c1dff6d0f21dbe8fc6998a122675533ddfcd59"
+ integrity sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==
+
+esbuild-linux-mips64le@0.14.54:
+ version "0.14.54"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz#d9918e9e4cb972f8d6dae8e8655bf9ee131eda34"
+ integrity sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==
+
+esbuild-linux-ppc64le@0.14.54:
+ version "0.14.54"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz#3f9a0f6d41073fb1a640680845c7de52995f137e"
+ integrity sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==
+
+esbuild-linux-riscv64@0.14.54:
+ version "0.14.54"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz#618853c028178a61837bc799d2013d4695e451c8"
+ integrity sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==
+
+esbuild-linux-s390x@0.14.54:
+ version "0.14.54"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz#d1885c4c5a76bbb5a0fe182e2c8c60eb9e29f2a6"
+ integrity sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==
+
+esbuild-netbsd-64@0.14.54:
+ version "0.14.54"
+ resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz#69ae917a2ff241b7df1dbf22baf04bd330349e81"
+ integrity sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==
+
+esbuild-openbsd-64@0.14.54:
+ version "0.14.54"
+ resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz#db4c8495287a350a6790de22edea247a57c5d47b"
+ integrity sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==
+
+esbuild-sunos-64@0.14.54:
+ version "0.14.54"
+ resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz#54287ee3da73d3844b721c21bc80c1dc7e1bf7da"
+ integrity sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==
+
esbuild-wasm@0.17.8:
version "0.17.8"
resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.17.8.tgz#c2348306430c27613ee3cc9a955cdd54df29137a"
integrity sha512-zCmpxv95E0FuCmvdw1K836UHnj4EdiQnFfjTby35y3LAjRPtXMj3sbHDRHjbD8Mqg5lTwq3knacr/1qIFU51CQ==
+esbuild-windows-32@0.14.54:
+ version "0.14.54"
+ resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz#f8aaf9a5667630b40f0fb3aa37bf01bbd340ce31"
+ integrity sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==
+
+esbuild-windows-64@0.14.54:
+ version "0.14.54"
+ resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz#bf54b51bd3e9b0f1886ffdb224a4176031ea0af4"
+ integrity sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==
+
+esbuild-windows-arm64@0.14.54:
+ version "0.14.54"
+ resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz#937d15675a15e4b0e4fafdbaa3a01a776a2be982"
+ integrity sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==
+
esbuild@0.17.8:
version "0.17.8"
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.8.tgz#f7f799abc7cdce3f0f2e3e0c01f120d4d55193b4"
@@ -13016,6 +13455,33 @@ esbuild@0.17.8:
"@esbuild/win32-ia32" "0.17.8"
"@esbuild/win32-x64" "0.17.8"
+esbuild@^0.14.47:
+ version "0.14.54"
+ resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.54.tgz#8b44dcf2b0f1a66fc22459943dccf477535e9aa2"
+ integrity sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==
+ optionalDependencies:
+ "@esbuild/linux-loong64" "0.14.54"
+ esbuild-android-64 "0.14.54"
+ esbuild-android-arm64 "0.14.54"
+ esbuild-darwin-64 "0.14.54"
+ esbuild-darwin-arm64 "0.14.54"
+ esbuild-freebsd-64 "0.14.54"
+ esbuild-freebsd-arm64 "0.14.54"
+ esbuild-linux-32 "0.14.54"
+ esbuild-linux-64 "0.14.54"
+ esbuild-linux-arm "0.14.54"
+ esbuild-linux-arm64 "0.14.54"
+ esbuild-linux-mips64le "0.14.54"
+ esbuild-linux-ppc64le "0.14.54"
+ esbuild-linux-riscv64 "0.14.54"
+ esbuild-linux-s390x "0.14.54"
+ esbuild-netbsd-64 "0.14.54"
+ esbuild-openbsd-64 "0.14.54"
+ esbuild-sunos-64 "0.14.54"
+ esbuild-windows-32 "0.14.54"
+ esbuild-windows-64 "0.14.54"
+ esbuild-windows-arm64 "0.14.54"
+
escalade@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
@@ -13963,6 +14429,14 @@ express-unless@^2.1.3:
resolved "https://registry.yarnpkg.com/express-unless/-/express-unless-2.1.3.tgz#f951c6cca52a24da3de32d42cfd4db57bc0f9a2e"
integrity sha512-wj4tLMyCVYuIIKHGt0FhCtIViBcwzWejX0EjNxveAa6dG+0XBCQhMbx+PnkLkFCxLC69qoFrxds4pIyL88inaQ==
+express-ws@^0.2.1:
+ version "0.2.6"
+ resolved "https://registry.yarnpkg.com/express-ws/-/express-ws-0.2.6.tgz#6af2a7034db2f360cdd9403347cabf5253c279e8"
+ integrity sha512-ADNOy9OY5wTki4zLbTYcbfTFM1xG7MVu04+g2Fbf6MD/m3LyoiVXjwj5II6Ig27MmPCxUngyCGS3lSCo90/eLQ==
+ dependencies:
+ url-join "0.0.1"
+ ws "~0.4.31"
+
express@4.16.4:
version "4.16.4"
resolved "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e"
@@ -14071,7 +14545,7 @@ express@4.17.3, express@^4.14.0, express@^4.17.1:
utils-merge "1.0.1"
vary "~1.1.2"
-express@4.18.2, express@^4.17.3, express@^4.18.1:
+express@4.18.2, express@^4.10.6, express@^4.17.3, express@^4.18.1:
version "4.18.2"
resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59"
integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==
@@ -14493,6 +14967,11 @@ fastest-levenshtein@^1.0.12:
resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2"
integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==
+fastparse@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9"
+ integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==
+
fastq@^1.6.0:
version "1.13.0"
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c"
@@ -14526,6 +15005,14 @@ fecha@^4.2.0:
resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.1.tgz#0a83ad8f86ef62a091e22bb5a039cd03d23eecce"
integrity sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==
+fetch-blob@^3.1.2, fetch-blob@^3.1.4:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9"
+ integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==
+ dependencies:
+ node-domexception "^1.0.0"
+ web-streams-polyfill "^3.0.3"
+
fetch-cookie@0.11.0:
version "0.11.0"
resolved "https://registry.yarnpkg.com/fetch-cookie/-/fetch-cookie-0.11.0.tgz#e046d2abadd0ded5804ce7e2cae06d4331c15407"
@@ -14842,7 +15329,7 @@ for-own@^0.1.4:
dependencies:
for-in "^1.0.1"
-foreach@^2.0.4:
+foreach@^2.0.4, foreach@~2.0.1:
version "2.0.6"
resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.6.tgz#87bcc8a1a0e74000ff2bf9802110708cfb02eb6e"
integrity sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==
@@ -14918,6 +15405,13 @@ form-data@~2.3.2:
combined-stream "^1.0.6"
mime-types "^2.1.12"
+formdata-polyfill@^4.0.10:
+ version "4.0.10"
+ resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423"
+ integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==
+ dependencies:
+ fetch-blob "^3.1.2"
+
forwarded@0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
@@ -15135,6 +15629,13 @@ functions-have-names@^1.2.2, functions-have-names@^1.2.3:
resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834"
integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
+fwd-stream@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/fwd-stream/-/fwd-stream-1.0.4.tgz#ed281cabed46feecf921ee32dc4c50b372ac7cfa"
+ integrity sha512-q2qaK2B38W07wfPSQDKMiKOD5Nzv2XyuvQlrmh1q0pxyHNanKHq8lwQ6n9zHucAwA5EbzRJKEgds2orn88rYTg==
+ dependencies:
+ readable-stream "~1.0.26-4"
+
ganache-cli@^6.12.2:
version "6.12.2"
resolved "https://registry.yarnpkg.com/ganache-cli/-/ganache-cli-6.12.2.tgz#c0920f7db0d4ac062ffe2375cb004089806f627a"
@@ -15241,6 +15742,13 @@ gcp-metadata@^4.2.0:
gaxios "^4.0.0"
json-bigint "^1.0.0"
+generic-names@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-1.0.3.tgz#2d786a121aee508876796939e8e3bff836c20917"
+ integrity sha512-b6OHfQuKasIKM9b6YPkX+KUj/TLBTx3B/1aT1T5F12FEuEqyFMdr59OMS53aoaSw8eVtapdqieX6lbg5opaOhA==
+ dependencies:
+ loader-utils "^0.2.16"
+
gensequence@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/gensequence/-/gensequence-3.1.1.tgz#95c1afc7c0680f92942c17f2d6f83f3d26ea97af"
@@ -16362,7 +16870,7 @@ html-encoding-sniffer@^1.0.2:
dependencies:
whatwg-encoding "^1.0.1"
-html-entities@^2.3.2:
+html-entities@2.3.3, html-entities@^2.3.2:
version "2.3.3"
resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.3.tgz#117d7626bece327fc8baace8868fa6f5ef856e46"
integrity sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==
@@ -16618,11 +17126,23 @@ iconv-lite@^0.6.2, iconv-lite@^0.6.3:
dependencies:
safer-buffer ">= 2.1.2 < 3.0.0"
+icss-utils@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-3.0.1.tgz#ee70d3ae8cac38c6be5ed91e851b27eed343ad0f"
+ integrity sha512-ANhVLoEfe0KoC9+z4yiTaXOneB49K6JIXdS+yAgH0NERELpdIT7kkj2XxUPuHafeHnn8umXnECSpsfk1RTaUew==
+ dependencies:
+ postcss "^6.0.2"
+
icss-utils@^5.0.0, icss-utils@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae"
integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==
+idb-wrapper@^1.5.0:
+ version "1.7.2"
+ resolved "https://registry.yarnpkg.com/idb-wrapper/-/idb-wrapper-1.7.2.tgz#8251afd5e77fe95568b1c16152eb44b396767ea2"
+ integrity sha512-zfNREywMuf0NzDo9mVsL0yegjsirJxHpKHvWcyRozIqQy89g0a3U+oBPOCN4cc0oCiOuYgZHimzaW/R46G1Mpg==
+
idna-uts46-hx@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz#a1dc5c4df37eee522bf66d969cc980e00e8711f9"
@@ -16733,7 +17253,7 @@ indent-string@^5.0.0:
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-5.0.0.tgz#4fd2980fccaf8622d14c64d694f4cf33c81951a5"
integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==
-indexof@0.0.1:
+indexof@0.0.1, indexof@~0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
integrity sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==
@@ -17533,6 +18053,11 @@ is-object@^1.0.1:
resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf"
integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==
+is-object@~0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/is-object/-/is-object-0.1.2.tgz#00efbc08816c33cfc4ac8251d132e10dc65098d7"
+ integrity sha512-GkfZZlIZtpkFrqyAXPQSRBMsaHAw+CgoKe2HXAkjd/sfoI9+hS8PT4wg2rJxdQyUKr7N2vHJbg7/jQtE5l5vBQ==
+
is-path-cwd@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb"
@@ -17759,6 +18284,11 @@ is-what@^3.14.1:
resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1"
integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==
+is-what@^4.1.8:
+ version "4.1.15"
+ resolved "https://registry.yarnpkg.com/is-what/-/is-what-4.1.15.tgz#de43a81090417a425942d67b1ae86e7fae2eee0e"
+ integrity sha512-uKua1wfy3Yt+YqsD6mTUEa2zSi3G1oPlqTflgaPJ7z63vUGN5pxFpnQfeSLMFnJDEsdvOtkp1rUWkYjB4YfhgA==
+
is-windows@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
@@ -17781,6 +18311,11 @@ is-yarn-global@^0.3.0:
resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232"
integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==
+is@~0.2.6:
+ version "0.2.7"
+ resolved "https://registry.yarnpkg.com/is/-/is-0.2.7.tgz#3b34a2c48f359972f35042849193ae7264b63562"
+ integrity sha512-ajQCouIvkcSnl2iRdK70Jug9mohIHVX9uKpoWnl115ov0R5mzBvRrXxrnHbsA+8AdwCwc/sfw7HXmd4I5EJBdQ==
+
isarray@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
@@ -17806,6 +18341,11 @@ isbinaryfile@^4.0.8:
resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.8.tgz#5d34b94865bd4946633ecc78a026fc76c5b11fcf"
integrity sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==
+isbuffer@~0.0.0:
+ version "0.0.0"
+ resolved "https://registry.yarnpkg.com/isbuffer/-/isbuffer-0.0.0.tgz#38c146d9df528b8bf9b0701c3d43cf12df3fc39b"
+ integrity sha512-xU+NoHp+YtKQkaM2HsQchYn0sltxMxew0HavMfHbjnucBoTSGbw745tL+Z7QBANleWM1eEQMenEpi174mIeS4g==
+
isemail@3.x.x:
version "3.2.0"
resolved "https://registry.yarnpkg.com/isemail/-/isemail-3.2.0.tgz#59310a021931a9fb06bbb51e155ce0b3f236832c"
@@ -19546,6 +20086,11 @@ json5@2.2.2, json5@2.x, json5@^2.1.1, json5@^2.1.2, json5@^2.2.1:
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.2.tgz#64471c5bdcc564c18f7c1d4df2e2297f2457c5ab"
integrity sha512-46Tk9JiOL2z7ytNQWFLpj99RZkVgeHf87yGQKsIkaPz1qSH9UczKH1rO7K3wgRselo0tYMUNfecYpm/p1vC7tQ==
+json5@^0.5.0:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
+ integrity sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==
+
json5@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593"
@@ -19816,6 +20361,11 @@ keccak@^3.0.2:
node-gyp-build "^4.2.0"
readable-stream "^3.6.0"
+keen-slider@^6.7.0:
+ version "6.8.6"
+ resolved "https://registry.yarnpkg.com/keen-slider/-/keen-slider-6.8.6.tgz#17bb7b219860f291a5ea5fde4496b737bf407a83"
+ integrity sha512-dcEQ7GDBpCjUQA8XZeWh3oBBLLmyn8aoeIQFGL/NTVkoEOsmlnXqA4QykUm/SncolAZYGsEk/PfUhLZ7mwMM2w==
+
key-encoder@2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/key-encoder/-/key-encoder-2.0.3.tgz#77073bb48ff1fe2173bb2088b83b91152c8fa4ba"
@@ -19992,7 +20542,7 @@ less-loader@11.1.0:
dependencies:
klona "^2.0.4"
-less@4.1.3:
+less@4.1.3, less@^4.1.3:
version "4.1.3"
resolved "https://registry.yarnpkg.com/less/-/less-4.1.3.tgz#175be9ddcbf9b250173e0a00b4d6920a5b770246"
integrity "sha1-F1vp3cv5slAXPgoAtNaSClt3AkY= sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA=="
@@ -20009,6 +20559,15 @@ less@4.1.3:
needle "^3.1.0"
source-map "~0.6.0"
+level-blobs@^0.1.7:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/level-blobs/-/level-blobs-0.1.7.tgz#9ab9b97bb99f1edbf9f78a3433e21ed56386bdaf"
+ integrity sha512-n0iYYCGozLd36m/Pzm206+brIgXP8mxPZazZ6ZvgKr+8YwOZ8/PPpYC5zMUu2qFygRN8RO6WC/HH3XWMW7RMVg==
+ dependencies:
+ level-peek "1.0.6"
+ once "^1.3.0"
+ readable-stream "^1.0.26-4"
+
level-codec@9.0.2, level-codec@^9.0.0:
version "9.0.2"
resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-9.0.2.tgz#fd60df8c64786a80d44e63423096ffead63d8cbc"
@@ -20035,6 +20594,40 @@ level-errors@^2.0.0, level-errors@~2.0.0:
dependencies:
errno "~0.1.1"
+level-filesystem@^1.0.1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/level-filesystem/-/level-filesystem-1.2.0.tgz#a00aca9919c4a4dfafdca6a8108d225aadff63b3"
+ integrity sha512-PhXDuCNYpngpxp3jwMT9AYBMgOvB6zxj3DeuIywNKmZqFj2djj9XfT2XDVslfqmo0Ip79cAd3SBy3FsfOZPJ1g==
+ dependencies:
+ concat-stream "^1.4.4"
+ errno "^0.1.1"
+ fwd-stream "^1.0.4"
+ level-blobs "^0.1.7"
+ level-peek "^1.0.6"
+ level-sublevel "^5.2.0"
+ octal "^1.0.0"
+ once "^1.3.0"
+ xtend "^2.2.0"
+
+level-fix-range@2.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/level-fix-range/-/level-fix-range-2.0.0.tgz#c417d62159442151a19d9a2367868f1724c2d548"
+ integrity sha512-WrLfGWgwWbYPrHsYzJau+5+te89dUbENBg3/lsxOs4p2tYOhCHjbgXxBAj4DFqp3k/XBwitcRXoCh8RoCogASA==
+ dependencies:
+ clone "~0.1.9"
+
+level-fix-range@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/level-fix-range/-/level-fix-range-1.0.2.tgz#bf15b915ae36d8470c821e883ddf79cd16420828"
+ integrity sha512-9llaVn6uqBiSlBP+wKiIEoBa01FwEISFgHSZiyec2S0KpyLUkGR4afW/FCZ/X8y+QJvzS0u4PGOlZDdh1/1avQ==
+
+"level-hooks@>=4.4.0 <5":
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/level-hooks/-/level-hooks-4.5.0.tgz#1b9ae61922930f3305d1a61fc4d83c8102c0dd93"
+ integrity sha512-fxLNny/vL/G4PnkLhWsbHnEaRi+A/k8r5EH/M77npZwYL62RHi2fV0S824z3QdpAk6VTgisJwIRywzBHLK4ZVA==
+ dependencies:
+ string-range "~1.2"
+
level-iterator-stream@~4.0.0:
version "4.0.2"
resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz#7ceba69b713b0d7e22fcc0d1f128ccdc8a24f79c"
@@ -20044,6 +20637,18 @@ level-iterator-stream@~4.0.0:
readable-stream "^3.4.0"
xtend "^4.0.2"
+level-js@^2.1.3:
+ version "2.2.4"
+ resolved "https://registry.yarnpkg.com/level-js/-/level-js-2.2.4.tgz#bc055f4180635d4489b561c9486fa370e8c11697"
+ integrity sha512-lZtjt4ZwHE00UMC1vAb271p9qzg8vKlnDeXfIesH3zL0KxhHRDjClQLGLWhyR0nK4XARnd4wc/9eD1ffd4PshQ==
+ dependencies:
+ abstract-leveldown "~0.12.0"
+ idb-wrapper "^1.5.0"
+ isbuffer "~0.0.0"
+ ltgt "^2.1.2"
+ typedarray-to-buffer "~1.0.0"
+ xtend "~2.1.2"
+
level-js@^5.0.0:
version "5.0.2"
resolved "https://registry.yarnpkg.com/level-js/-/level-js-5.0.2.tgz#5e280b8f93abd9ef3a305b13faf0b5397c969b55"
@@ -20062,6 +20667,23 @@ level-packager@^5.1.0:
encoding-down "^6.3.0"
levelup "^4.3.2"
+level-peek@1.0.6, level-peek@^1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/level-peek/-/level-peek-1.0.6.tgz#bec51c72a82ee464d336434c7c876c3fcbcce77f"
+ integrity sha512-TKEzH5TxROTjQxWMczt9sizVgnmJ4F3hotBI48xCTYvOKd/4gA/uY0XjKkhJFo6BMic8Tqjf6jFMLWeg3MAbqQ==
+ dependencies:
+ level-fix-range "~1.0.2"
+
+level-sublevel@^5.2.0:
+ version "5.2.3"
+ resolved "https://registry.yarnpkg.com/level-sublevel/-/level-sublevel-5.2.3.tgz#744c12c72d2e72be78dde3b9b5cd84d62191413a"
+ integrity sha512-tO8jrFp+QZYrxx/Gnmjawuh1UBiifpvKNAcm4KCogesWr1Nm2+ckARitf+Oo7xg4OHqMW76eAqQ204BoIlscjA==
+ dependencies:
+ level-fix-range "2.0"
+ level-hooks ">=4.4.0 <5"
+ string-range "~1.2.1"
+ xtend "~2.0.4"
+
level-supports@^2.0.1:
version "2.1.0"
resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-2.1.0.tgz#9af908d853597ecd592293b2fad124375be79c5f"
@@ -20134,6 +20756,19 @@ levelup@4.4.0, levelup@^4.3.2:
level-supports "~1.0.0"
xtend "~4.0.0"
+levelup@^0.18.2:
+ version "0.18.6"
+ resolved "https://registry.yarnpkg.com/levelup/-/levelup-0.18.6.tgz#e6a01cb089616c8ecc0291c2a9bd3f0c44e3e5eb"
+ integrity sha512-uB0auyRqIVXx+hrpIUtol4VAPhLRcnxcOsd2i2m6rbFIDarO5dnrupLOStYYpEcu8ZT087Z9HEuYw1wjr6RL6Q==
+ dependencies:
+ bl "~0.8.1"
+ deferred-leveldown "~0.2.0"
+ errno "~0.1.1"
+ prr "~0.0.0"
+ readable-stream "~1.0.26"
+ semver "~2.3.1"
+ xtend "~3.0.0"
+
leven@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
@@ -20203,6 +20838,11 @@ license-webpack-plugin@4.0.2:
dependencies:
webpack-sources "^3.0.0"
+lilconfig@^2.0.5:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52"
+ integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==
+
lines-and-columns@^1.1.6:
version "1.2.4"
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
@@ -20292,6 +20932,16 @@ loader-utils@3.2.1:
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.2.1.tgz#4fb104b599daafd82ef3e1a41fb9265f87e1f576"
integrity "sha1-T7EEtZnar9gu8+GkH7kmX4fh9XY= sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw=="
+loader-utils@^0.2.16:
+ version "0.2.17"
+ resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348"
+ integrity sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug==
+ dependencies:
+ big.js "^3.1.3"
+ emojis-list "^2.0.0"
+ json5 "^0.5.0"
+ object-assign "^4.0.1"
+
loader-utils@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129"
@@ -21061,6 +21711,13 @@ meow@^8.0.0:
type-fest "^0.18.0"
yargs-parser "^20.2.3"
+merge-anything@^5.0.2:
+ version "5.1.7"
+ resolved "https://registry.yarnpkg.com/merge-anything/-/merge-anything-5.1.7.tgz#94f364d2b0cf21ac76067b5120e429353b3525d7"
+ integrity sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==
+ dependencies:
+ is-what "^4.1.8"
+
merge-descriptors@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
@@ -21561,7 +22218,7 @@ module-error@^1.0.1, module-error@^1.0.2:
resolved "https://registry.yarnpkg.com/module-error/-/module-error-1.0.2.tgz#8d1a48897ca883f47a45816d4fb3e3c6ba404d86"
integrity sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==
-moment@^2.22.1:
+moment@2.29.4, moment@^2.22.1:
version "2.29.4"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108"
integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==
@@ -21768,6 +22425,11 @@ nan@^2.13.2, nan@^2.14.0, nan@^2.14.1, nan@^2.15.0, nan@^2.2.1:
resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee"
integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==
+nan@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/nan/-/nan-1.0.0.tgz#ae24f8850818d662fcab5acf7f3b95bfaa2ccf38"
+ integrity sha512-Wm2/nFOm2y9HtJfgOLnctGbfvF23FcQZeyUZqDD8JQG3zO5kXh3MkQKiUaA68mJiVWrOzLFkAV1u6bC8P52DJA==
+
nano-base32@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/nano-base32/-/nano-base32-1.0.1.tgz#ba548c879efcfb90da1c4d9e097db4a46c9255ef"
@@ -21956,6 +22618,15 @@ nested-error-stacks@^2.0.0, nested-error-stacks@^2.1.0:
resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz#0fbdcf3e13fe4994781280524f8b96b0cdff9c61"
integrity sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==
+net-browserify@0.2.4:
+ version "0.2.4"
+ resolved "https://registry.yarnpkg.com/net-browserify/-/net-browserify-0.2.4.tgz#eb898e2ebd1afce89571f260b4f187018aa2f2a9"
+ integrity sha512-CFqGiCbt642O5clBqqWQ5POzE7Y8gE8LpSyUFPdPS2fI4Zt5H8GoBc8vtMSuOd/5f3KLhlReH3sdeVeZDn25Lg==
+ dependencies:
+ body-parser "^1.10.0"
+ express "^4.10.6"
+ express-ws "^0.2.1"
+
new-github-release-url@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/new-github-release-url/-/new-github-release-url-1.0.0.tgz#493847e6fecce39c247e9d89929be773d2e7f777"
@@ -22048,6 +22719,11 @@ node-addon-api@^4.2.0, node-addon-api@^4.3.0:
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f"
integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==
+node-domexception@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5"
+ integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==
+
node-fetch@2.6.7, node-fetch@^2.6.1, node-fetch@^2.6.7:
version "2.6.7"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
@@ -22055,11 +22731,27 @@ node-fetch@2.6.7, node-fetch@^2.6.1, node-fetch@^2.6.7:
dependencies:
whatwg-url "^5.0.0"
+node-fetch@^2.6.12:
+ version "2.6.12"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.12.tgz#02eb8e22074018e3d5a83016649d04df0e348fba"
+ integrity sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==
+ dependencies:
+ whatwg-url "^5.0.0"
+
+node-fetch@^3.2.10:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.1.tgz#b3eea7b54b3a48020e46f4f88b9c5a7430d20b2e"
+ integrity sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==
+ dependencies:
+ data-uri-to-buffer "^4.0.0"
+ fetch-blob "^3.1.4"
+ formdata-polyfill "^4.0.10"
+
"node-fetch@https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz":
version "2.6.7"
resolved "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz#1b5d62978f2ed07b99444f64f0df39f960a6d34d"
-node-forge@1.3.0, node-forge@>=1.3.0, node-forge@^1, node-forge@^1.0.0:
+node-forge@1.3.0, node-forge@>=1.3.0, node-forge@^0.7.0, node-forge@^1, node-forge@^1.0.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3"
integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==
@@ -22685,6 +23377,20 @@ object-keys@^1.0.12, object-keys@^1.1.1:
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
+object-keys@~0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.2.0.tgz#cddec02998b091be42bf1035ae32e49f1cb6ea67"
+ integrity sha512-XODjdR2pBh/1qrjPcbSeSgEtKbYo7LqYNq64/TPuCf7j9SfDD3i21yatKoIy39yIWNvVM59iutfQQpCv1RfFzA==
+ dependencies:
+ foreach "~2.0.1"
+ indexof "~0.0.1"
+ is "~0.2.6"
+
+object-keys@~0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336"
+ integrity sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==
+
object-visit@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
@@ -22773,6 +23479,11 @@ obuf@^1.0.0, obuf@^1.1.2:
resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
+octal@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/octal/-/octal-1.0.0.tgz#63e7162a68efbeb9e213588d58e989d1e5c4530b"
+ integrity sha512-nnda7W8d+A3vEIY+UrDQzzboPf1vhs4JYVhff5CDkq9QNoZY7Xrxeo/htox37j9dZf7yNHevZzqtejWgy1vCqQ==
+
on-finished@2.4.1, on-finished@^2.3.0:
version "2.4.1"
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
@@ -22904,6 +23615,11 @@ optionator@^0.9.1:
type-check "^0.4.0"
word-wrap "^1.2.3"
+options@>=0.0.5:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f"
+ integrity sha512-bOj3L1ypm++N+n7CEbbe473A414AB7z+amKYshRb//iuL3MpdDCLhPnw6aVTdKB9g5ZRVHIEp8eUln6L2NUStg==
+
optjs@~3.2.2:
version "3.2.2"
resolved "https://registry.yarnpkg.com/optjs/-/optjs-3.2.2.tgz#69a6ce89c442a44403141ad2f9b370bd5bb6f4ee"
@@ -23891,6 +24607,41 @@ posix-character-classes@^0.1.0:
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
+postcss-filter-plugins@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-3.0.1.tgz#9d226e946d56542ab7c26123053459a331df545d"
+ integrity sha512-tRKbW4wWBEkSSFuJtamV2wkiV9rj6Yy7P3Y13+zaynlPEEZt8EgYKn3y/RBpMeIhNmHXFlSdzofml65hD5OafA==
+ dependencies:
+ postcss "^6.0.14"
+
+postcss-icss-keyframes@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/postcss-icss-keyframes/-/postcss-icss-keyframes-0.2.1.tgz#80c4455e0112b0f2f9c3c05ac7515062bb9ff295"
+ integrity sha512-4m+hLY5TVqoTM198KKnzdNudyu1OvtqwD+8kVZ9PNiEO4+IfHYoyVvEXsOHjV8nZ1k6xowf+nY4HlUfZhOFvvw==
+ dependencies:
+ icss-utils "^3.0.1"
+ postcss "^6.0.2"
+ postcss-value-parser "^3.3.0"
+
+postcss-icss-selectors@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/postcss-icss-selectors/-/postcss-icss-selectors-2.0.3.tgz#27fa1afcaab6c602c866cbb298f3218e9bc1c9b3"
+ integrity sha512-dxFtq+wscbU9faJaH8kIi98vvCPDbt+qg1g9GoG0os1PY3UvgY1Y2G06iZrZb1iVC9cyFfafwSY1IS+IQpRQ4w==
+ dependencies:
+ css-selector-tokenizer "^0.7.0"
+ generic-names "^1.0.2"
+ icss-utils "^3.0.1"
+ lodash "^4.17.4"
+ postcss "^6.0.2"
+
+postcss-load-config@^3.1.4:
+ version "3.1.4"
+ resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855"
+ integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==
+ dependencies:
+ lilconfig "^2.0.5"
+ yaml "^1.10.2"
+
postcss-loader@7.0.2:
version "7.0.2"
resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-7.0.2.tgz#b53ff44a26fba3688eee92a048c7f2d4802e23bb"
@@ -23944,11 +24695,25 @@ postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4:
cssesc "^3.0.0"
util-deprecate "^1.0.2"
+postcss-value-parser@^3.3.0:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
+ integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
+
postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
+postcss@8.4.16:
+ version "8.4.16"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c"
+ integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==
+ dependencies:
+ nanoid "^3.3.4"
+ picocolors "^1.0.0"
+ source-map-js "^1.0.2"
+
postcss@8.4.21:
version "8.4.21"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4"
@@ -23958,6 +24723,15 @@ postcss@8.4.21:
picocolors "^1.0.0"
source-map-js "^1.0.2"
+postcss@^6.0.14, postcss@^6.0.2:
+ version "6.0.23"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324"
+ integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==
+ dependencies:
+ chalk "^2.4.1"
+ source-map "^0.6.1"
+ supports-color "^5.4.0"
+
postcss@^8.2.14:
version "8.4.13"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.13.tgz#7c87bc268e79f7f86524235821dfdf9f73e5d575"
@@ -23985,6 +24759,15 @@ postcss@^8.3.7:
picocolors "^1.0.0"
source-map-js "^1.0.2"
+postcss@^8.4.14:
+ version "8.4.26"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.26.tgz#1bc62ab19f8e1e5463d98cf74af39702a00a9e94"
+ integrity sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw==
+ dependencies:
+ nanoid "^3.3.6"
+ picocolors "^1.0.0"
+ source-map-js "^1.0.2"
+
postcss@^8.4.19:
version "8.4.24"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.24.tgz#f714dba9b2284be3cc07dbd2fc57ee4dc972d2df"
@@ -24580,6 +25363,11 @@ proxy-from-env@^1.1.0:
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
+prr@~0.0.0:
+ version "0.0.0"
+ resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a"
+ integrity sha512-LmUECmrW7RVj6mDWKjTXfKug7TFGdiz9P18HMcO4RHL+RW7MCOGNvpj5j47Rnp6ne6r4fZ2VzyUWEpKbg+tsjQ==
+
prr@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
@@ -25013,7 +25801,7 @@ read-pkg@^6.0.0:
parse-json "^5.2.0"
type-fest "^1.0.1"
-readable-stream@1.1.14, readable-stream@1.1.x:
+readable-stream@1.1.14, readable-stream@1.1.x, readable-stream@^1.0.26-4:
version "1.1.14"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9"
integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk=
@@ -25082,6 +25870,16 @@ readable-stream@~0.0.2:
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-0.0.4.tgz#f32d76e3fb863344a548d79923007173665b3b8d"
integrity sha512-azrivNydKRYt7zwLV5wWUK7YzKTWs3q87xSmY6DlHapPrCvaT6ZrukvM5erV+yCSSPmZT8zkSdttOHQpWWm9zw==
+readable-stream@~1.0.26, readable-stream@~1.0.26-4:
+ version "1.0.34"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
+ integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.1"
+ isarray "0.0.1"
+ string_decoder "~0.10.x"
+
readdirp@~3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
@@ -25516,6 +26314,11 @@ reselect@^4.0.0:
resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.8.tgz#3f5dc671ea168dccdeb3e141236f69f02eaec524"
integrity sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==
+reserved-words@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/reserved-words/-/reserved-words-0.1.2.tgz#00a0940f98cd501aeaaac316411d9adc52b31ab1"
+ integrity sha512-0S5SrIUJ9LfpbVl4Yzij6VipUdafHrOTzvmfazSw/jeZrZtQK303OPZW+obtkaw7jQlTQppy0UvZWm9872PbRw==
+
resolve-alpn@^1.0.0, resolve-alpn@^1.2.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9"
@@ -25795,6 +26598,13 @@ roarr@^7.0.4:
globalthis "^1.0.2"
semver-compare "^1.0.0"
+rollup@^2.75.6:
+ version "2.79.1"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7"
+ integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==
+ optionalDependencies:
+ fsevents "~2.3.2"
+
rsvp@^4.8.4:
version "4.8.5"
resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734"
@@ -25969,12 +26779,21 @@ sass@1.58.1:
immutable "^4.0.0"
source-map-js ">=0.6.2 <2.0.0"
+sass@^1.56.1:
+ version "1.63.6"
+ resolved "https://registry.yarnpkg.com/sass/-/sass-1.63.6.tgz#481610e612902e0c31c46b46cf2dad66943283ea"
+ integrity sha512-MJuxGMHzaOW7ipp+1KdELtqKbfAWbH7OLIdoSMnVe3EXPMTmxTmlaZDCTsgIpPCs3w99lLo9/zDKkOrJuT5byw==
+ dependencies:
+ chokidar ">=3.0.0 <4.0.0"
+ immutable "^4.0.0"
+ source-map-js ">=0.6.2 <2.0.0"
+
sax@1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a"
integrity sha1-e45lYZCyKOgaZq6nSEgNgozS03o=
-sax@>=0.6.0, sax@^1.2.4:
+sax@>=0.6.0, sax@^1.2.4, sax@~1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
@@ -26146,6 +26965,16 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semve
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+semver@^6.3.1:
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
+ integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
+
+semver@~2.3.1:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-2.3.2.tgz#b9848f25d6cf36333073ec9ef8856d42f1233e52"
+ integrity sha512-abLdIKCosKfpnmhS52NCTjO4RiLspDfsn37prjzGrp9im5DPJOgh82Os92vtwGh6XdQryKI/7SREZnV+aqiXrA==
+
semver@~7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
@@ -26249,6 +27078,11 @@ serialize-javascript@6.0.0, serialize-javascript@^6.0.0:
dependencies:
randombytes "^2.1.0"
+seroval@^0.5.0:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/seroval/-/seroval-0.5.1.tgz#e6d17365cdaaae7e50815c7e0bcd7102facdadf3"
+ integrity sha512-ZfhQVB59hmIauJG5Ydynupy8KHyr5imGNtdDhbZG68Ufh1Ynkv9KOYOAABf71oVbQxJ8VkWnMHAjEHE7fWkH5g==
+
serve-favicon@2.4.5:
version "2.4.5"
resolved "https://registry.yarnpkg.com/serve-favicon/-/serve-favicon-2.4.5.tgz#49d9a46863153a9240691c893d2b0e7d85d6d436"
@@ -26682,17 +27516,10 @@ socket.io-adapter@~2.4.0:
resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz#b50a4a9ecdd00c34d4c8c808224daa1a786152a6"
integrity "sha1-tQpKns3QDDTUyMgIIk2qGnhhUqY= sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg=="
-socket.io-adapter@~2.5.2:
- version "2.5.2"
- resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz#5de9477c9182fdc171cd8c8364b9a8894ec75d12"
- integrity sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==
- dependencies:
- ws "~8.11.0"
-
-socket.io-client@4.1.3:
- version "4.1.3"
- resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.1.3.tgz#236daa642a9f229932e00b7221e843bf74232a62"
- integrity sha512-hISFn6PDpgDifVUiNklLHVPTMv1LAk8poHArfIUdXa+gKgbr0MZbAlquDFqCqsF30yBqa+jg42wgos2FK50BHA==
+socket.io-client@4.5.4:
+ version "4.5.4"
+ resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.5.4.tgz#d3cde8a06a6250041ba7390f08d2468ccebc5ac9"
+ integrity sha512-ZpKteoA06RzkD32IbqILZ+Cnst4xewU7ZYK12aS1mzHftFFjpoMz69IuhP/nL25pJfao/amoPI527KnuhFm01g==
dependencies:
"@socket.io/component-emitter" "~3.1.0"
debug "~4.3.2"
@@ -26742,15 +27569,19 @@ socket.io-parser@~4.2.1:
"@socket.io/component-emitter" "~3.1.0"
debug "~4.3.1"
-socket.io-parser@~4.2.4:
- version "4.2.4"
- resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz#c806966cf7270601e47469ddeec30fbdfda44c83"
- integrity sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==
+socket.io@4.5.4:
+ version "4.5.4"
+ resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.5.4.tgz#a4513f06e87451c17013b8d13fdfaf8da5a86a90"
+ integrity sha512-m3GC94iK9MfIEeIBfbhJs5BqFibMtkRk8ZpKwG2QwxV0m/eEhPIV4ara6XCF1LWNAus7z58RodiZlAH71U3EhQ==
dependencies:
- "@socket.io/component-emitter" "~3.1.0"
- debug "~4.3.1"
+ accepts "~1.3.4"
+ base64id "~2.0.0"
+ debug "~4.3.2"
+ engine.io "~6.2.1"
+ socket.io-adapter "~2.4.0"
+ socket.io-parser "~4.2.1"
-socket.io@4.4.1, socket.io@^4.2.0:
+socket.io@^4.2.0:
version "4.4.1"
resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.4.1.tgz#cd6de29e277a161d176832bb24f64ee045c56ab8"
integrity sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==
@@ -26762,31 +27593,6 @@ socket.io@4.4.1, socket.io@^4.2.0:
socket.io-adapter "~2.3.3"
socket.io-parser "~4.0.4"
-socket.io@4.7.0:
- version "4.7.0"
- resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.7.0.tgz#ae21460d5aef23b152d38de64d7c1798cd2d23fc"
- integrity sha512-eOpu7oCNiPGBHn9Falg0cAGivp6TpDI3Yt596fbsf+vln8kRLFWxXKrecFrybn/xNYVn9HcdJNAkYToCmTjsyg==
- dependencies:
- accepts "~1.3.4"
- base64id "~2.0.0"
- cors "~2.8.5"
- debug "~4.3.2"
- engine.io "~6.5.0"
- socket.io-adapter "~2.5.2"
- socket.io-parser "~4.2.4"
-
-socket.io@^4.4.1:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.5.0.tgz#78ae2e84784c29267086a416620c18ef95b37186"
- integrity "sha1-eK4uhHhMKSZwhqQWYgwY75WzcYY= sha512-slTYqU2jCgMjXwresG8grhUi/cC6GjzmcfqArzaH3BN/9I/42eZk9yamNvZJdBfTubkjEdKAKs12NEztId+bUA=="
- dependencies:
- accepts "~1.3.4"
- base64id "~2.0.0"
- debug "~4.3.2"
- engine.io "~6.2.0"
- socket.io-adapter "~2.4.0"
- socket.io-parser "~4.0.4"
-
socketio-wildcard@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/socketio-wildcard/-/socketio-wildcard-2.0.0.tgz#2466e832276b19163563bee772388747f912475b"
@@ -26881,6 +27687,58 @@ solc@^0.8.8:
semver "^5.5.0"
tmp "0.0.33"
+solid-apexcharts@0.1.6:
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/solid-apexcharts/-/solid-apexcharts-0.1.6.tgz#0df85186d0c2e49343bddda27db9b1a3915398bb"
+ integrity sha512-U9pFwLzDk3a/DPphXVlEGXbeU9HUcKVAH0CaSTXRJfRVFXQeVSJn4RDyScaMMJiqr8OZ+IsytudEcZQAvpHvMw==
+ dependencies:
+ apexcharts "^3.33.1"
+ defu "^6.0.0"
+ solid-js "^1.1.7"
+
+solid-icons@1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/solid-icons/-/solid-icons-1.0.4.tgz#13eb122fe927110e2463c96d226492fb837a9802"
+ integrity sha512-gJTp4in3+OYCs9WvDkSLt4Los2unR3Uoder8wjh15GsfP20xiNOLfPTJllXmn+fI8+k3x7bRYtLGIgWd9fUQug==
+
+solid-js@1.5.7:
+ version "1.5.7"
+ resolved "https://registry.yarnpkg.com/solid-js/-/solid-js-1.5.7.tgz#f693adb02c4eee780dec8456866dcd4e099726ca"
+ integrity sha512-L1UuyMuZZARAwzXo5NZDhE6yxc14aqNbVOUoGzvlcxRZo1Cm4ExhPV0diEfwDyiKG/igqNNLkNurHkXiI5sVEg==
+ dependencies:
+ csstype "^3.1.0"
+
+solid-js@^1.1.7, solid-js@^1.5.4:
+ version "1.7.8"
+ resolved "https://registry.yarnpkg.com/solid-js/-/solid-js-1.7.8.tgz#6856983e3edbcc57b0e003e6fd0c741dd8865892"
+ integrity sha512-XHBWk1FvFd0JMKljko7FfhefJMTSgYEuVKcQ2a8hzRXfiuSJAGsrPPafqEo+f6l+e8Oe3cROSpIL6kbzjC1fjQ==
+ dependencies:
+ csstype "^3.1.0"
+ seroval "^0.5.0"
+
+solid-refresh@^0.4.1:
+ version "0.4.3"
+ resolved "https://registry.yarnpkg.com/solid-refresh/-/solid-refresh-0.4.3.tgz#d991613d4554a5eb4b572a6a01ba464d637258a6"
+ integrity sha512-7+4/gYsVi0BlM4PzT1PU1TB5nW3Hv8FWuB+Kw/ofWui7KQkWBf+dVZOrReQYHEmLCzytHUa2JysUXgzVALJmSw==
+ dependencies:
+ "@babel/generator" "^7.18.7"
+ "@babel/helper-module-imports" "^7.16.7"
+ "@babel/types" "^7.18.4"
+
+solid-slider@1.3.9:
+ version "1.3.9"
+ resolved "https://registry.yarnpkg.com/solid-slider/-/solid-slider-1.3.9.tgz#a0b424b9998e03d498078b83e6bf4da4efce0311"
+ integrity sha512-oDqXjHpYJ40VLOv2psQnLOokpovfeseCal3PcLGUQkG0k8zM3posQNbUh409RCYbYkBW+XciU9Pq9ftA1W/qXg==
+ dependencies:
+ "@solid-primitives/timer" "^1.3.2"
+ keen-slider "^6.7.0"
+ solid-js "^1.5.4"
+
+solid-toast@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/solid-toast/-/solid-toast-0.4.0.tgz#0c49bc6a9f0e89c83a620a1acfb4f3b2850b5ae9"
+ integrity sha512-ciJbj+n+7KbUN6wfwZsW7lqFESLoQ9sXMG4uJWuHrIw2f0GxX3/wLSKs0Q1YwdTZZRxyRJ1Nwc2eBVcJvs91+g==
+
sort-keys@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128"
@@ -26985,7 +27843,7 @@ source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, sourc
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
-source-map@0.7.4:
+source-map@0.7.4, source-map@^0.7.3:
version "0.7.4"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656"
integrity "sha1-qbvnBcnYhG9OCP9nZazw8bCJhlY= sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA=="
@@ -27389,6 +28247,11 @@ string-length@^4.0.1:
char-regex "^1.0.2"
strip-ansi "^6.0.0"
+string-range@~1.2, string-range@~1.2.1:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/string-range/-/string-range-1.2.2.tgz#a893ed347e72299bc83befbbf2a692a8d239d5dd"
+ integrity sha512-tYft6IFi8SjplJpxCUxyqisD3b+R2CSkomrtJYCkvuf1KuCAWgz7YXt4O0jip7efpfCemwHEzTEAO8EuOYgh3w==
+
string-similarity@^4.0.1:
version "4.0.4"
resolved "https://registry.yarnpkg.com/string-similarity/-/string-similarity-4.0.4.tgz#42d01ab0b34660ea8a018da8f56a3309bb8b2a5b"
@@ -27621,6 +28484,17 @@ stubs@^3.0.0:
resolved "https://registry.yarnpkg.com/stubs/-/stubs-3.0.0.tgz#e8d2ba1fa9c90570303c030b6900f7d5f89abe5b"
integrity sha1-6NK6H6nJBXAwPAMLaQD31fiavls=
+stylus@^0.59.0:
+ version "0.59.0"
+ resolved "https://registry.yarnpkg.com/stylus/-/stylus-0.59.0.tgz#a344d5932787142a141946536d6e24e6a6be7aa6"
+ integrity sha512-lQ9w/XIOH5ZHVNuNbWW8D822r+/wBSO/d6XvtyHLF7LW4KaCIDeVbvn5DF8fGCJAUCwVhVi/h6J0NUcnylUEjg==
+ dependencies:
+ "@adobe/css-tools" "^4.0.1"
+ debug "^4.3.2"
+ glob "^7.1.6"
+ sax "~1.2.4"
+ source-map "^0.7.3"
+
sublevel-pouchdb@7.3.1:
version "7.3.1"
resolved "https://registry.yarnpkg.com/sublevel-pouchdb/-/sublevel-pouchdb-7.3.1.tgz#c1cc03af45081345c7c82821d6dcaa74564ae2ef"
@@ -27638,6 +28512,15 @@ sumchecker@^3.0.1:
dependencies:
debug "^4.1.0"
+supabase@1.28.4:
+ version "1.28.4"
+ resolved "https://registry.yarnpkg.com/supabase/-/supabase-1.28.4.tgz#cdb705193dcb1ff014d8ae430e26e66567d806d0"
+ integrity sha512-5ZD7sAOi0vqGWMBJ/QYG5gtoSKNyTbv7pPURwzfEUNoBWxYs5lbsc6I5TzWU7tGGEFADC9eqwgQLiCLMXUJXpg==
+ dependencies:
+ bin-links "^4.0.1"
+ node-fetch "^3.2.10"
+ tar "6.1.13"
+
supports-color@5.4.0:
version "5.4.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54"
@@ -27664,7 +28547,7 @@ supports-color@^3.1.2:
dependencies:
has-flag "^1.0.0"
-supports-color@^5.3.0, supports-color@^5.5.0:
+supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
@@ -27698,6 +28581,61 @@ supports-preserve-symlinks-flag@^1.0.0:
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+svg.draggable.js@^2.2.2:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz#c514a2f1405efb6f0263e7958f5b68fce50603ba"
+ integrity sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==
+ dependencies:
+ svg.js "^2.0.1"
+
+svg.easing.js@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/svg.easing.js/-/svg.easing.js-2.0.0.tgz#8aa9946b0a8e27857a5c40a10eba4091e5691f12"
+ integrity sha512-//ctPdJMGy22YoYGV+3HEfHbm6/69LJUTAqI2/5qBvaNHZ9uUFVC82B0Pl299HzgH13rKrBgi4+XyXXyVWWthA==
+ dependencies:
+ svg.js ">=2.3.x"
+
+svg.filter.js@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/svg.filter.js/-/svg.filter.js-2.0.2.tgz#91008e151389dd9230779fcbe6e2c9a362d1c203"
+ integrity sha512-xkGBwU+dKBzqg5PtilaTb0EYPqPfJ9Q6saVldX+5vCRy31P6TlRCP3U9NxH3HEufkKkpNgdTLBJnmhDHeTqAkw==
+ dependencies:
+ svg.js "^2.2.5"
+
+svg.js@>=2.3.x, svg.js@^2.0.1, svg.js@^2.2.5, svg.js@^2.4.0, svg.js@^2.6.5:
+ version "2.7.1"
+ resolved "https://registry.yarnpkg.com/svg.js/-/svg.js-2.7.1.tgz#eb977ed4737001eab859949b4a398ee1bb79948d"
+ integrity sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==
+
+svg.pathmorphing.js@^0.1.3:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz#c25718a1cc7c36e852ecabc380e758ac09bb2b65"
+ integrity sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==
+ dependencies:
+ svg.js "^2.4.0"
+
+svg.resize.js@^1.4.3:
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/svg.resize.js/-/svg.resize.js-1.4.3.tgz#885abd248e0cd205b36b973c4b578b9a36f23332"
+ integrity sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==
+ dependencies:
+ svg.js "^2.6.5"
+ svg.select.js "^2.1.2"
+
+svg.select.js@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/svg.select.js/-/svg.select.js-2.1.2.tgz#e41ce13b1acff43a7441f9f8be87a2319c87be73"
+ integrity sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==
+ dependencies:
+ svg.js "^2.2.5"
+
+svg.select.js@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/svg.select.js/-/svg.select.js-3.0.1.tgz#a4198e359f3825739226415f82176a90ea5cc917"
+ integrity sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==
+ dependencies:
+ svg.js "^2.6.5"
+
swap-case@^1.1.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/swap-case/-/swap-case-1.1.2.tgz#c39203a4587385fad3c850a0bd1bcafa081974e3"
@@ -27924,6 +28862,18 @@ tar-stream@^1.5.2:
to-buffer "^1.1.1"
xtend "^4.0.0"
+tar@6.1.13, tar@^6.1.13:
+ version "6.1.13"
+ resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.13.tgz#46e22529000f612180601a6fe0680e7da508847b"
+ integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==
+ dependencies:
+ chownr "^2.0.0"
+ fs-minipass "^2.0.0"
+ minipass "^4.0.0"
+ minizlib "^2.1.1"
+ mkdirp "^1.0.3"
+ yallist "^4.0.0"
+
tar@^4.0.2, tar@^4.4.2:
version "4.4.19"
resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3"
@@ -27949,18 +28899,6 @@ tar@^6.0.2, tar@^6.1.11, tar@^6.1.2:
mkdirp "^1.0.3"
yallist "^4.0.0"
-tar@^6.1.13:
- version "6.1.13"
- resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.13.tgz#46e22529000f612180601a6fe0680e7da508847b"
- integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==
- dependencies:
- chownr "^2.0.0"
- fs-minipass "^2.0.0"
- minipass "^4.0.0"
- minizlib "^2.1.1"
- mkdirp "^1.0.3"
- yallist "^4.0.0"
-
tarn@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/tarn/-/tarn-3.0.2.tgz#73b6140fbb881b71559c4f8bfde3d9a4b3d27693"
@@ -28183,6 +29121,11 @@ tiny-typed-emitter@^2.1.0:
resolved "https://registry.yarnpkg.com/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz#b3b027fdd389ff81a152c8e847ee2f5be9fad7b5"
integrity sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==
+tinycolor@0.x:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/tinycolor/-/tinycolor-0.0.1.tgz#320b5a52d83abb5978d81a3e887d4aefb15a6164"
+ integrity sha512-+CorETse1kl98xg0WAzii8DTT4ABF4R3nquhrkIbVGcw1T8JYs5Gfx9xEfGINPUZGDj9C4BmOtuKeaTtuuRolg==
+
title-case@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/title-case/-/title-case-2.1.1.tgz#3e127216da58d2bc5becf137ab91dae3a7cd8faa"
@@ -28191,6 +29134,13 @@ title-case@^2.1.0:
no-case "^2.2.0"
upper-case "^1.0.3"
+tls-browserify@0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/tls-browserify/-/tls-browserify-0.2.2.tgz#3546bf979f939bd42f994f73885d61c4b54a3c62"
+ integrity sha512-7xLhLW2mg7F/Wy9nDCR+QrdA0O3XstSeWbUckKYpDiIxI07bDhKK6yXVNLObTspeMTaP6x9zitygnXu16sr5hg==
+ dependencies:
+ node-forge "^0.7.0"
+
tmp@0.0.28:
version "0.0.28"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.28.tgz#172735b7f614ea7af39664fa84cf0de4e515d120"
@@ -28557,7 +29507,7 @@ tsconfig-paths@^3.14.1, tsconfig-paths@^3.9.0:
minimist "^1.2.6"
strip-bom "^3.0.0"
-tsconfig-paths@^4.1.0:
+tsconfig-paths@^4.1.0, tsconfig-paths@^4.1.1:
version "4.2.0"
resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz#ef78e19039133446d244beac0fd6a1632e2d107c"
integrity sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==
@@ -28823,6 +29773,11 @@ typedarray-to-buffer@^3.1.5:
dependencies:
is-typedarray "^1.0.0"
+typedarray-to-buffer@~1.0.0:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-1.0.4.tgz#9bb8ba0e841fb3f4cf1fe7c245e9f3fa8a5fe99c"
+ integrity sha512-vjMKrfSoUDN8/Vnqitw2FmstOfuJ73G6CrSEKnf11A6RmasVxHqfeBcnTb6RsL4pTMuV5Zsv9IiHRphMZyckUw==
+
typedarray@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
@@ -28855,6 +29810,26 @@ typescript-optional@2.0.1:
resolved "https://registry.yarnpkg.com/typescript-optional/-/typescript-optional-2.0.1.tgz#1dd4826bd751f78756e7eb3f96a16fbbeb3f7ee6"
integrity sha512-xuwmqsCjE4OeeMKxbNX3jjNcISGzYh5Q9R1rM5OyxEVNIr94CB5llCkfKW+1nZTKbbUV0axN3QAUuX2fus/DhQ==
+typescript-plugin-css-modules@4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/typescript-plugin-css-modules/-/typescript-plugin-css-modules-4.1.1.tgz#fc9c13f20f80c13a233beffd27697af353d96316"
+ integrity sha512-kpVxGkY/go9eV5TP1YUDJ6SqwBx2OIuVStMCxKyg9PhJVFXjLYR7AuItVLwoz0NCdiemH91WhtgAjb96jI34DA==
+ dependencies:
+ dotenv "^16.0.3"
+ icss-utils "^5.1.0"
+ less "^4.1.3"
+ lodash.camelcase "^4.3.0"
+ postcss "^8.4.19"
+ postcss-filter-plugins "^3.0.1"
+ postcss-icss-keyframes "^0.2.1"
+ postcss-icss-selectors "^2.0.3"
+ postcss-load-config "^3.1.4"
+ reserved-words "^0.1.2"
+ sass "^1.56.1"
+ source-map-js "^1.0.2"
+ stylus "^0.59.0"
+ tsconfig-paths "^4.1.1"
+
typescript-tuple@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/typescript-tuple/-/typescript-tuple-2.2.1.tgz#7d9813fb4b355f69ac55032e0363e8bb0f04dad2"
@@ -29189,6 +30164,11 @@ urix@^0.1.0:
resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
+url-join@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/url-join/-/url-join-0.0.1.tgz#1db48ad422d3402469a87f7d97bdebfe4fb1e3c8"
+ integrity sha512-H6dnQ/yPAAVzMQRvEvyz01hhfQL5qRWSEt7BX8t9DqnPw9BjMb64fjIRq76Uvf1hkHp+mTZvEVJ5guXOT0Xqaw==
+
url-join@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7"
@@ -29399,6 +30379,11 @@ v8-to-istanbul@^9.0.1:
"@types/istanbul-lib-coverage" "^2.0.1"
convert-source-map "^1.6.0"
+validate-html-nesting@^1.2.1:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/validate-html-nesting/-/validate-html-nesting-1.2.2.tgz#2d74de14b598a0de671fad01bd71deabb93b8aca"
+ integrity sha512-hGdgQozCsQJMyfK5urgFcWEqsSSrK63Awe0t/IMR0bZ0QMtnuaiHzThW81guu3qx9abLi99NEuiaN6P9gVYsNg==
+
validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
@@ -29453,6 +30438,29 @@ verror@1.10.0:
core-util-is "1.0.2"
extsprintf "^1.2.0"
+vite-plugin-solid@2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/vite-plugin-solid/-/vite-plugin-solid-2.3.0.tgz#d479459dc45d30ce8eea1eafdf7bcf85c25a8004"
+ integrity sha512-N2sa54C3UZC2nN5vpj5o6YP+XdIAZW6n6xv8OasxNAcAJPFeZT7EOVvumL0V4c8hBz1yuYniMWdESY8807fVSg==
+ dependencies:
+ "@babel/core" "^7.18.6"
+ "@babel/preset-typescript" "^7.18.6"
+ babel-preset-solid "^1.4.6"
+ merge-anything "^5.0.2"
+ solid-refresh "^0.4.1"
+
+vite@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-3.0.0.tgz#b4675cb9ab83ec0803b9c952ffa6519bcce033a7"
+ integrity sha512-M7phQhY3+fRZa0H+1WzI6N+/onruwPTBTMvaj7TzgZ0v2TE+N2sdLKxJOfOv9CckDWt5C4HmyQP81xB4dwRKzA==
+ dependencies:
+ esbuild "^0.14.47"
+ postcss "^8.4.14"
+ resolve "^1.22.1"
+ rollup "^2.75.6"
+ optionalDependencies:
+ fsevents "~2.3.2"
+
vm-browserify@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
@@ -29536,6 +30544,11 @@ wcwidth@>=1.0.1, wcwidth@^1.0.0, wcwidth@^1.0.1:
dependencies:
defaults "^1.0.3"
+web-streams-polyfill@^3.0.3:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6"
+ integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==
+
web3-bzz@1.10.0:
version "1.10.0"
resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.10.0.tgz#ac74bc71cdf294c7080a79091079192f05c5baed"
@@ -31121,7 +32134,7 @@ websocket-extensions@>=0.1.1:
resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42"
integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==
-websocket@^1.0.32:
+websocket@^1.0.32, websocket@^1.0.34:
version "1.0.34"
resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111"
integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==
@@ -31588,10 +32601,15 @@ ws@^8.4.2:
resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0"
integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==
-ws@~8.11.0:
- version "8.11.0"
- resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143"
- integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==
+ws@~0.4.31:
+ version "0.4.32"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-0.4.32.tgz#787a6154414f3c99ed83c5772153b20feb0cec32"
+ integrity sha512-htqsS0U9Z9lb3ITjidQkRvkLdVhQePrMeu475yEfOWkAYvJ6dSjQp1tOH6ugaddzX5b7sQjMPNtY71eTzrV/kA==
+ dependencies:
+ commander "~2.1.0"
+ nan "~1.0.0"
+ options ">=0.0.5"
+ tinycolor "0.x"
xdg-basedir@^3.0.0:
version "3.0.0"
@@ -31694,11 +32712,36 @@ xss@^1.0.8:
commander "^2.20.3"
cssfilter "0.0.10"
+xtend@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.2.0.tgz#eef6b1f198c1c8deafad8b1765a04dad4a01c5a9"
+ integrity sha512-SLt5uylT+4aoXxXuwtQp5ZnMMzhDb1Xkg4pEqc00WUJCQifPfV9Ub1VrNhp9kXkrjZD2I2Hl8WnjP37jzZLPZw==
+
xtend@^4.0.0, xtend@^4.0.2, xtend@~4.0.0, xtend@~4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
+xtend@~2.0.4:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.0.6.tgz#5ea657a6dba447069c2e59c58a1138cb0c5e6cee"
+ integrity sha512-fOZg4ECOlrMl+A6Msr7EIFcON1L26mb4NY5rurSkOex/TWhazOrg6eXD/B0XkuiYcYhQDWLXzQxLMVJ7LXwokg==
+ dependencies:
+ is-object "~0.1.2"
+ object-keys "~0.2.0"
+
+xtend@~2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b"
+ integrity sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==
+ dependencies:
+ object-keys "~0.4.0"
+
+xtend@~3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/xtend/-/xtend-3.0.0.tgz#5cce7407baf642cba7becda568111c493f59665a"
+ integrity sha512-sp/sT9OALMjRW1fKDlPeuSZlDQpkqReA0pyJukniWbTGoEKefHxhGJynE3PNhUMlcM8qWIjPwecwCw4LArS5Eg==
+
y18n@^3.2.0, y18n@^3.2.1:
version "3.2.2"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696"