From 003b82b41d73c3c24eda8f6a097101c0c30be9f6 Mon Sep 17 00:00:00 2001 From: tjayrush Date: Fri, 19 Jul 2024 18:00:53 -0400 Subject: [PATCH] Best version yet --- app/history.go | 9 +- frontend/package.json | 3 +- frontend/package.json.md5 | 2 +- frontend/src/App.tsx | 9 +- frontend/src/components/EditableSelect.tsx | 18 +- frontend/src/components/ImageDisplay.tsx | 2 +- frontend/src/components/ResultDialog.tsx | 10 +- frontend/src/components/StringTable.tsx | 6 +- frontend/src/components/global/AppStatus.tsx | 4 +- frontend/src/components/global/Aside.tsx | 6 +- frontend/src/components/global/Header.tsx | 6 +- frontend/src/components/global/Menu.tsx | 6 +- frontend/src/components/global/Navbar.tsx | 7 +- frontend/src/components/global/Routes.tsx | 8 +- .../src/components/global/ServerStatus.tsx | 4 +- frontend/src/components/global/index.tsx | 7 + frontend/src/components/index.tsx | 6 + frontend/src/components/view/View.tsx | 2 +- frontend/src/hooks/index.tsx | 1 + ...KeyboadPaging.ts => useKeyboardPaging.tsx} | 8 +- frontend/src/views/Dalle/DalleView.tsx | 9 +- frontend/src/views/Dalle/Tabber.tsx | 2 +- frontend/src/views/History/HistoryTable.tsx | 80 ++++ frontend/src/views/History/HistoryView.tsx | 108 ++--- frontend/src/views/Home/HomeView.tsx | 4 +- .../views/Names/{Names.tsx => NameTable.tsx} | 56 +-- frontend/src/views/Names/NamesView.tsx | 70 +-- frontend/src/views/Series/SeriesView.tsx | 7 +- frontend/src/views/Settings/SettingsView.tsx | 4 +- frontend/src/views/View.module.css | 36 -- frontend/src/views/Views.module.css | 36 ++ frontend/tsconfig.json | 14 +- frontend/vite.config.ts | 13 +- frontend/yarn.lock | 436 ++++++++++++------ 34 files changed, 570 insertions(+), 429 deletions(-) create mode 100644 frontend/src/components/global/index.tsx create mode 100644 frontend/src/components/index.tsx create mode 100644 frontend/src/hooks/index.tsx rename frontend/src/hooks/{useKeyboadPaging.ts => useKeyboardPaging.tsx} (90%) create mode 100644 frontend/src/views/History/HistoryTable.tsx rename frontend/src/views/Names/{Names.tsx => NameTable.tsx} (52%) delete mode 100644 frontend/src/views/View.module.css create mode 100644 frontend/src/views/Views.module.css diff --git a/app/history.go b/app/history.go index 6284da1..63fe900 100644 --- a/app/history.go +++ b/app/history.go @@ -1,6 +1,8 @@ package app import ( + "sync" + "github.com/TrueBlocks/trueblocks-core/sdk/v3" "github.com/TrueBlocks/trueblocks-core/src/apps/chifra/pkg/base" "github.com/TrueBlocks/trueblocks-core/src/apps/chifra/pkg/logger" @@ -8,13 +10,16 @@ import ( ) var addrToHistoryMap = map[base.Address][]types.Transaction{} +var m = sync.Mutex{} func (a *App) GetHistory(addr string, first, pageSize int) []types.Transaction { address := base.HexToAddress(addr) + m.Lock() + defer m.Unlock() + if len(addrToHistoryMap[address]) == 0 { opts := sdk.ExportOptions{ - Addrs: []string{addr}, - Articulate: true, + Addrs: []string{addr}, Globals: sdk.Globals{ Cache: true, }, diff --git a/frontend/package.json b/frontend/package.json index 809938c..1085545 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -39,6 +39,7 @@ "eslint-plugin-react-hooks": "^4.6.2", "prettier": "^3.3.2", "typescript": "^5.3.3", - "vite": "^3.2.0" + "vite": "^5.3.4", + "vite-tsconfig-paths": "^4.3.2" } } diff --git a/frontend/package.json.md5 b/frontend/package.json.md5 index acfd647..a19a025 100755 --- a/frontend/package.json.md5 +++ b/frontend/package.json.md5 @@ -1 +1 @@ -629562b1124538ac4adc569d85596259 \ No newline at end of file +b2847408bf3098df9dcf115aa2c4ab87 \ No newline at end of file diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 6a8dedd..0b26a80 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -1,11 +1,8 @@ import React, { useEffect } from "react"; import { AppShell, Text } from "@mantine/core"; -import Aside from "./components/global/Aside"; -import Header from "./components/global/Header"; -import Navbar from "./components/global/Navbar"; -import Routes from "./components/global/Routes"; -import classes from "/App.module.css"; -import { EventsOn, EventsOff, EventsEmit } from "../wailsjs/runtime"; +import { Aside, Header, Navbar, Routes } from "@components"; +import classes from "@/App.module.css"; +import { EventsOn, EventsOff, EventsEmit } from "@runtime"; function App() { const [showHelp, setShowHelp] = React.useState(true); diff --git a/frontend/src/components/EditableSelect.tsx b/frontend/src/components/EditableSelect.tsx index 33b522c..9484ef0 100644 --- a/frontend/src/components/EditableSelect.tsx +++ b/frontend/src/components/EditableSelect.tsx @@ -1,6 +1,6 @@ -import React, { useState, useEffect } from 'react'; -import { Select } from '@mantine/core'; -import { GetExistingAddrs } from '@gocode/app/App'; +import React, { useState, useEffect } from "react"; +import { Select } from "@mantine/core"; +import { GetExistingAddrs } from "@gocode/app/App"; type SelectItem = { value: string; @@ -14,7 +14,7 @@ interface EditableSelectProps { placeholder: string; } -const EditableSelect: React.FC = ({ value, onChange, label, placeholder }) => { +export const EditableSelect: React.FC = ({ value, onChange, label, placeholder }) => { const [options, setOptions] = useState([]); const [inputValue, setInputValue] = useState(value); @@ -24,7 +24,7 @@ const EditableSelect: React.FC = ({ value, onChange, label, const formattedOptions = existingAddrs.map((addr) => ({ value: addr, label: addr })); setOptions(formattedOptions); if (!existingAddrs.includes(value)) { - setInputValue(existingAddrs.length > 0 ? existingAddrs[0] : ''); + setInputValue(existingAddrs.length > 0 ? existingAddrs[0] : ""); } else { setInputValue(value); // Ensure the inputValue is set to the prop value if it exists in the options } @@ -34,7 +34,7 @@ const EditableSelect: React.FC = ({ value, onChange, label, }, [value]); const handleKeyDown = (event: React.KeyboardEvent) => { - if (event.key === 'Enter' && inputValue.trim() !== '') { + if (event.key === "Enter" && inputValue.trim() !== "") { const newOption: SelectItem = { value: inputValue, label: inputValue }; setOptions((current) => { const existingIndex = current.findIndex((option) => option.value.toLowerCase() === inputValue.toLowerCase()); @@ -47,7 +47,7 @@ const EditableSelect: React.FC = ({ value, onChange, label, onChange(inputValue); event.preventDefault(); setTimeout(() => { - const selectElement = document.querySelector('.mantine-Select-input') as HTMLElement; + const selectElement = document.querySelector(".mantine-Select-input") as HTMLElement; if (selectElement) { selectElement.blur(); } @@ -72,9 +72,7 @@ const EditableSelect: React.FC = ({ value, onChange, label, onSearchChange={setInputValue} onChange={handleChange} onKeyDown={handleKeyDown} - style={{ width: '600px' }} + style={{ width: "600px" }} /> ); }; - -export default EditableSelect; diff --git a/frontend/src/components/ImageDisplay.tsx b/frontend/src/components/ImageDisplay.tsx index 935b004..c7c7b14 100644 --- a/frontend/src/components/ImageDisplay.tsx +++ b/frontend/src/components/ImageDisplay.tsx @@ -1,6 +1,6 @@ import React, { useState, useEffect } from "react"; import { Text, Image } from "@mantine/core"; -import { GetTitle } from "../../wailsjs/go/app/App"; +import { GetTitle } from "@gocode/app/App"; export const ImageDisplay = ({ address, loading }: { address: string; loading: boolean }) => { var [title, setTitle] = useState(""); diff --git a/frontend/src/components/ResultDialog.tsx b/frontend/src/components/ResultDialog.tsx index ccbb1d2..f975d94 100644 --- a/frontend/src/components/ResultDialog.tsx +++ b/frontend/src/components/ResultDialog.tsx @@ -1,5 +1,5 @@ -import React from 'react'; -import { Modal, Text } from '@mantine/core'; +import React from "react"; +import { Modal, Text } from "@mantine/core"; interface ResultDialogProps { opened: boolean; @@ -7,12 +7,10 @@ interface ResultDialogProps { success: boolean; } -const ResultDialog: React.FC = ({ opened, onClose, success }) => { +export const ResultDialog: React.FC = ({ opened, onClose, success }) => { return ( - {success ? 'Success!' : 'Failed!'} + {success ? "Success!" : "Failed!"} ); }; - -export default ResultDialog; diff --git a/frontend/src/components/StringTable.tsx b/frontend/src/components/StringTable.tsx index bea919f..e474e32 100644 --- a/frontend/src/components/StringTable.tsx +++ b/frontend/src/components/StringTable.tsx @@ -1,7 +1,7 @@ import React, { useState } from "react"; import { Table, Checkbox, Anchor } from "@mantine/core"; import { Link, useLocation } from "wouter"; -import { SetLast } from "../../wailsjs/go/app/App"; +import { SetLast } from "@gocode/app/App"; export interface DataItem { id: number; @@ -12,7 +12,7 @@ interface StringTableProps { data: DataItem[]; } -const StringTable: React.FC = ({ data }) => { +export const StringTable: React.FC = ({ data }) => { const [selectedIds, setSelectedIds] = useState([]); const [location, setLocation] = useLocation(); @@ -73,5 +73,3 @@ const StringTable: React.FC = ({ data }) => { ); }; - -export default StringTable; diff --git a/frontend/src/components/global/AppStatus.tsx b/frontend/src/components/global/AppStatus.tsx index a058763..97163d7 100644 --- a/frontend/src/components/global/AppStatus.tsx +++ b/frontend/src/components/global/AppStatus.tsx @@ -1,8 +1,6 @@ import React from "react"; import { Text } from "@mantine/core"; -function AppStatus() { +export function AppStatus() { return unchained index progress; } - -export default AppStatus; diff --git a/frontend/src/components/global/Aside.tsx b/frontend/src/components/global/Aside.tsx index f15a0a2..9c25acb 100644 --- a/frontend/src/components/global/Aside.tsx +++ b/frontend/src/components/global/Aside.tsx @@ -1,9 +1,7 @@ import React, { useEffect } from "react"; -import { EventsOn, EventsOff } from "../../../wailsjs/runtime"; +import { EventsOn, EventsOff } from "@runtime"; import { Text } from "@mantine/core"; -function Aside() { +export function Aside() { return Help file; } - -export default Aside; diff --git a/frontend/src/components/global/Header.tsx b/frontend/src/components/global/Header.tsx index 7a58833..09493ae 100644 --- a/frontend/src/components/global/Header.tsx +++ b/frontend/src/components/global/Header.tsx @@ -1,8 +1,8 @@ import React from "react"; import { Group, Title } from "@mantine/core"; -import AppStatus from "./AppStatus"; +import { AppStatus } from "./"; -const Header = ({ title }: { title: string }) => { +export const Header = ({ title }: { title: string }) => { return ( {title} @@ -10,5 +10,3 @@ const Header = ({ title }: { title: string }) => { ); }; - -export default Header; diff --git a/frontend/src/components/global/Menu.tsx b/frontend/src/components/global/Menu.tsx index 3183bc6..17c5e8a 100644 --- a/frontend/src/components/global/Menu.tsx +++ b/frontend/src/components/global/Menu.tsx @@ -2,9 +2,9 @@ import React, { ReactNode, useEffect, useState } from "react"; import { NavLink } from "@mantine/core"; import { IconHome, IconSettings, IconTag, IconList, IconSpider } from "@tabler/icons-react"; import { Link, useRoute } from "wouter"; -import { GetLast, SetLast } from "../../../wailsjs/go/app/App"; +import { GetLast, SetLast } from "@gocode/app/App"; -function Menu() { +export function Menu() { const [activeRoute, setActiveRoute] = useState("/"); useEffect(() => { @@ -43,8 +43,6 @@ function Menu() { ); } -export default Menu; - type StyledNavLinkParams = { label: string; href: string; diff --git a/frontend/src/components/global/Navbar.tsx b/frontend/src/components/global/Navbar.tsx index 689c099..9b080c3 100644 --- a/frontend/src/components/global/Navbar.tsx +++ b/frontend/src/components/global/Navbar.tsx @@ -1,9 +1,8 @@ import React from "react"; import { Stack } from "@mantine/core"; -import Menu from "./Menu"; -import ServerStatus from "./ServerStatus"; +import { Menu, ServerStatus } from "./"; -function Navbar() { +export function Navbar() { return ( @@ -11,5 +10,3 @@ function Navbar() { ); } - -export default Navbar; diff --git a/frontend/src/components/global/Routes.tsx b/frontend/src/components/global/Routes.tsx index 0a100ba..4119bf2 100644 --- a/frontend/src/components/global/Routes.tsx +++ b/frontend/src/components/global/Routes.tsx @@ -1,8 +1,8 @@ import React, { useEffect } from "react"; import { Route, Switch, useLocation } from "wouter"; -import classes from "/App.module.css"; -import { DalleView, NamesView, HomeView, SeriesView, HistoryView, SettingsView } from "../../views"; -import { GetLast } from "../../../wailsjs/go/app/App"; +import classes from "@/App.module.css"; +import { DalleView, NamesView, HomeView, SeriesView, HistoryView, SettingsView } from "@views"; +import { GetLast } from "@gocode/app/App"; export const Routes = () => { const [, setLocation] = useLocation(); @@ -34,5 +34,3 @@ export const Routes = () => { ); }; - -export default Routes; diff --git a/frontend/src/components/global/ServerStatus.tsx b/frontend/src/components/global/ServerStatus.tsx index 105972b..dbd0358 100644 --- a/frontend/src/components/global/ServerStatus.tsx +++ b/frontend/src/components/global/ServerStatus.tsx @@ -2,7 +2,7 @@ import React from "react"; import { Flex, Space, Text } from "@mantine/core"; import { IconCheck } from "@tabler/icons-react"; -function ServerStatus() { +export function ServerStatus() { return ( @@ -13,5 +13,3 @@ function ServerStatus() { ); } - -export default ServerStatus; diff --git a/frontend/src/components/global/index.tsx b/frontend/src/components/global/index.tsx new file mode 100644 index 0000000..0610739 --- /dev/null +++ b/frontend/src/components/global/index.tsx @@ -0,0 +1,7 @@ +export * from "./AppStatus"; +export * from "./Aside"; +export * from "./Header"; +export * from "./Menu"; +export * from "./Navbar"; +export * from "./Routes"; +export * from "./ServerStatus"; diff --git a/frontend/src/components/index.tsx b/frontend/src/components/index.tsx new file mode 100644 index 0000000..fdbb322 --- /dev/null +++ b/frontend/src/components/index.tsx @@ -0,0 +1,6 @@ +export * from "./EditableSelect"; +export * from "./ImageDisplay"; +export * from "./ResultDialog"; +export * from "./StringTable"; +export * from "./global"; +export * from "./view"; diff --git a/frontend/src/components/view/View.tsx b/frontend/src/components/view/View.tsx index 94b2a97..f89a606 100644 --- a/frontend/src/components/view/View.tsx +++ b/frontend/src/components/view/View.tsx @@ -1,6 +1,6 @@ import React, { ReactNode } from "react"; import { Stack } from "@mantine/core"; -import classes from "/App.module.css"; +import classes from "@/App.module.css"; export function View(params: { title?: string; children: ReactNode }) { return {params.children}; diff --git a/frontend/src/hooks/index.tsx b/frontend/src/hooks/index.tsx new file mode 100644 index 0000000..387729b --- /dev/null +++ b/frontend/src/hooks/index.tsx @@ -0,0 +1 @@ +export * from "./useKeyboardPaging"; diff --git a/frontend/src/hooks/useKeyboadPaging.ts b/frontend/src/hooks/useKeyboardPaging.tsx similarity index 90% rename from frontend/src/hooks/useKeyboadPaging.ts rename to frontend/src/hooks/useKeyboardPaging.tsx index b6b93f3..ab11884 100644 --- a/frontend/src/hooks/useKeyboadPaging.ts +++ b/frontend/src/hooks/useKeyboardPaging.tsx @@ -1,10 +1,10 @@ -import { useEffect, useState } from 'react'; +import { useEffect, useState } from "react"; import { useHotkeys } from "react-hotkeys-hook"; type FetchItemsFn = (curItem: number, perPage: number) => Promise; type FetchCountFn = () => Promise; -function useKeyboardPaging( +export function useKeyboardPaging( fetchItems: FetchItemsFn, fetchCount: FetchCountFn, dependency?: any, @@ -46,8 +46,10 @@ function useKeyboardPaging( useEffect(() => { const fetch = async () => { const fetchedItems = await fetchItems(curItem, perPage); + console.log("fetchedItems", fetchedItems.length); setItems(fetchedItems); const cnt = await fetchCount(); + console.log("cnt", cnt); setNItems(cnt); }; fetch(); @@ -59,5 +61,3 @@ function useKeyboardPaging( return { items, nItems, curItem }; } - -export default useKeyboardPaging; diff --git a/frontend/src/views/Dalle/DalleView.tsx b/frontend/src/views/Dalle/DalleView.tsx index d839af0..a4608af 100644 --- a/frontend/src/views/Dalle/DalleView.tsx +++ b/frontend/src/views/Dalle/DalleView.tsx @@ -1,9 +1,7 @@ import React, { useState, useEffect } from "react"; import { Stack, Title, Paper, Grid, Button, Group } from "@mantine/core"; -import classes from "/App.module.css"; -import { View, ViewStatus } from "../../components/view"; -import EditableSelect from "../../components/EditableSelect"; -import ResultDialog from "../../components/ResultDialog"; +import classes from "@/App.module.css"; +import { View, ViewStatus, EditableSelect, ResultDialog, ImageDisplay } from "@components"; import { GetJson, GetData, @@ -16,8 +14,7 @@ import { GetLast, SetLast, Save, -} from "../../../wailsjs/go/app/App"; -import { ImageDisplay } from "../../components/ImageDisplay"; +} from "@gocode/app/App"; import Tabber from "./Tabber"; export function DalleView() { diff --git a/frontend/src/views/Dalle/Tabber.tsx b/frontend/src/views/Dalle/Tabber.tsx index b15a0ad..53e7ed9 100644 --- a/frontend/src/views/Dalle/Tabber.tsx +++ b/frontend/src/views/Dalle/Tabber.tsx @@ -1,6 +1,6 @@ import React from "react"; import { Tabs, Text } from "@mantine/core"; -import classes from "../View.module.css"; +import classes from "../Views.module.css"; interface TabItem { value: string; diff --git a/frontend/src/views/History/HistoryTable.tsx b/frontend/src/views/History/HistoryTable.tsx new file mode 100644 index 0000000..0145a85 --- /dev/null +++ b/frontend/src/views/History/HistoryTable.tsx @@ -0,0 +1,80 @@ +import React from "react"; +import { IconCircleCheck } from "@tabler/icons-react"; +import { types } from "@gocode/models"; +import { createColumnHelper } from "@tanstack/react-table"; + +export function createRowModel(tx: types.Transaction): types.Transaction { + var cV = function (a: any, classs: any, asMap: boolean = false): any { + return a; + }; + return { + // articulatedTx?: Function; + blockHash: tx.blockHash, + blockNumber: tx.blockNumber, + from: tx.from, + gas: tx.gas, + gasPrice: tx.gasPrice, + gasUsed: tx.gasUsed, + hasToken: tx.hasToken, + hash: tx.hash, + input: tx.input, + isError: tx.isError, + maxFeePerGas: tx.maxFeePerGas, + maxPriorityFeePerGas: tx.maxPriorityFeePerGas, + nonce: tx.nonce, + // receipt?: Receipt, + timestamp: tx.timestamp, + to: tx.to, + traces: tx.traces, + transactionIndex: tx.transactionIndex, + type: tx.type, + value: tx.value, + // statements?: Statement[], + convertValues: cV, + }; +} + +const txColumnHelper = createColumnHelper(); + +export const txColumns = [ + txColumnHelper.accessor("blockNumber", { + header: () => "Block No.", + cell: (info) => info.getValue(), + size: 100, + }), + txColumnHelper.accessor("transactionIndex", { + header: () => "Txid", + cell: (info) => info.renderValue(), + size: 100, + }), + txColumnHelper.accessor("timestamp", { + header: () => "Timestamp", + cell: (info) => info.renderValue(), + size: 100, + }), + txColumnHelper.accessor("from", { + header: () => "From", + cell: (info) => info.renderValue(), + size: 100, + }), + txColumnHelper.accessor("to", { + header: () => "To", + cell: (info) => info.renderValue(), + size: 100, + }), + txColumnHelper.accessor("value", { + header: () => "Value", + cell: (info) => info.renderValue(), + size: 100, + }), + txColumnHelper.accessor("hasToken", { + header: () => "hasToken", + cell: (info) => (info.getValue() ? : ""), + size: 100, + }), + txColumnHelper.accessor("isError", { + header: () => "isError", + cell: (info) => (info.getValue() ? : ""), + size: 100, + }), +]; diff --git a/frontend/src/views/History/HistoryView.tsx b/frontend/src/views/History/HistoryView.tsx index 9c2e655..ada1aec 100644 --- a/frontend/src/views/History/HistoryView.tsx +++ b/frontend/src/views/History/HistoryView.tsx @@ -1,75 +1,59 @@ import React, { useState, useEffect } from "react"; -import { GetHistory, GetHistoryCnt } from "../../../wailsjs/go/app/App"; -import classes from "/App.module.css"; -import { View, ViewStatus } from "../../components/view"; -import { Group, Stack, Title, Text } from "@mantine/core"; -import { types } from "../../../wailsjs/go/models"; +import classes from "@/App.module.css"; +import { GetHistory, GetHistoryCnt } from "@gocode/app/App"; +import { types } from "@gocode/models"; +import { flexRender, getCoreRowModel, useReactTable } from "@tanstack/react-table"; import { useHotkeys } from "react-hotkeys-hook"; +import { Stack, Table, Title } from "@mantine/core"; +import { txColumns } from "./HistoryTable"; +import { View, ViewStatus } from "@components"; +import { useKeyboardPaging } from "@hooks"; export function HistoryView() { - const [address, setAddress] = useState("0x054993ab0f2b1acc0fdc65405ee203b4271bebe6"); - const [items, setItems] = useState([]); - const [nItems, setNItems] = useState(0); - const [curItem, setCurItem] = useState(0); - const perPage = 20; - - useHotkeys("left", (event) => { - setCurItem((cur) => Math.max(cur - 1, 0)); - event.preventDefault(); - }); - useHotkeys("up", (event) => { - setCurItem((cur) => Math.max(cur - perPage, 0)); - event.preventDefault(); - }); - useHotkeys("home", (event) => { - setCurItem(0); - event.preventDefault(); - }); + const [address, setAddress] = useState("0xf503017d7baf7fbc0fff7492b751025c6a78179b"); + const { items, nItems, curItem } = useKeyboardPaging( + (curItem, perPage) => GetHistory(address, curItem, perPage), + () => GetHistoryCnt(address), + address, + 20 + ); - useHotkeys("right", (event) => { - var max = Math.max(nItems - perPage, 0); - setCurItem((cur) => Math.min(max, cur + 1)); - event.preventDefault(); + const table = useReactTable({ + data: items, + columns: txColumns, + getCoreRowModel: getCoreRowModel(), }); - useHotkeys("down", (event) => { - var max = Math.max(nItems - perPage, 0); - setCurItem((cur) => Math.min(max, cur + perPage)); - event.preventDefault(); - }); - useHotkeys("end", (event) => { - var max = Math.max(nItems - perPage, 0); - setCurItem(max); - event.preventDefault(); - }); - - useEffect(() => { - const fetchHistory = async () => { - const fetchedItems = await GetHistory(address, curItem, perPage); - setItems(fetchedItems); - const cnt = await GetHistoryCnt(address); - setNItems(cnt); - }; - fetchHistory(); - }, [address, curItem, perPage]); - - useEffect(() => { - setCurItem(0); - }, [address]); return ( - History Title - - {address} at record {curItem} of {nItems} records - - - {items.map((item, idx) => ( - - {item.blockNumber} {item.from} {item.to} {item.value} - - ))} - + + History {curItem} of {nItems} + + + + {table.getHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => ( + + {header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())} + + ))} + + ))} + + + {table.getRowModel().rows.map((row) => ( + + {row.getVisibleCells().map((cell) => ( + + {flexRender(cell.column.columnDef.cell, cell.getContext())} + + ))} + + ))} + +
Status / Progress
diff --git a/frontend/src/views/Home/HomeView.tsx b/frontend/src/views/Home/HomeView.tsx index 3d6f6f2..7229380 100644 --- a/frontend/src/views/Home/HomeView.tsx +++ b/frontend/src/views/Home/HomeView.tsx @@ -1,7 +1,7 @@ import React from "react"; import { Stack, Text, Title } from "@mantine/core"; -import classes from "/App.module.css"; -import { View, ViewStatus } from "../../components/view"; +import classes from "@/App.module.css"; +import { View, ViewStatus } from "@components"; export function HomeView() { return ( diff --git a/frontend/src/views/Names/Names.tsx b/frontend/src/views/Names/NameTable.tsx similarity index 52% rename from frontend/src/views/Names/Names.tsx rename to frontend/src/views/Names/NameTable.tsx index 7356fac..b02ad93 100644 --- a/frontend/src/views/Names/Names.tsx +++ b/frontend/src/views/Names/NameTable.tsx @@ -1,65 +1,65 @@ import React from "react"; import { IconCircleCheck } from "@tabler/icons-react"; -import { types } from "../../../wailsjs/go/models"; +import { types } from "@gocode/models"; import { createColumnHelper } from "@tanstack/react-table"; -export function createRowModel(name: types.Name): types.Name { - var cV = function (a: any, classs: any, asMap: boolean = false): any { - return a; - }; - return { - address: name.address, - decimals: name.decimals, - isContract: name.isContract, - isErc20: name.isErc20, - isErc721: name.isErc721, - name: name.name, - source: name.source, - symbol: name.symbol, - tags: name.tags, - convertValues: cV, - }; -} +// export function createRowModel(name: types.Name): types.Name { +// var cV = function (a: any, classs: any, asMap: boolean = false): any { +// return a; +// }; +// return { +// address: name.address, +// decimals: name.decimals, +// isContract: name.isContract, +// isErc20: name.isErc20, +// isErc721: name.isErc721, +// name: name.name, +// source: name.source, +// symbol: name.symbol, +// tags: name.tags, +// convertValues: cV, +// }; +// } -const columnHelper = createColumnHelper(); +const nameColumnHelper = createColumnHelper(); -export const namesColumns = [ - columnHelper.accessor("address", { +export const nameColumns = [ + nameColumnHelper.accessor("address", { header: () => "Address", cell: (info) => info.getValue(), size: 100, }), - columnHelper.accessor("tags", { + nameColumnHelper.accessor("tags", { header: () => "Tags", cell: (info) => info.renderValue(), size: 100, }), - columnHelper.accessor("name", { + nameColumnHelper.accessor("name", { header: () => "Name", cell: (info) => info.renderValue(), size: 100, }), - columnHelper.accessor("symbol", { + nameColumnHelper.accessor("symbol", { header: () => "Symbol", cell: (info) => info.renderValue(), size: 100, }), - columnHelper.accessor("decimals", { + nameColumnHelper.accessor("decimals", { header: () => "Decimals", cell: (info) => info.renderValue(), size: 100, }), - columnHelper.accessor("isContract", { + nameColumnHelper.accessor("isContract", { header: () => "isContract", cell: (info) => (info.getValue() ? : ""), size: 100, }), - columnHelper.accessor("isErc20", { + nameColumnHelper.accessor("isErc20", { header: () => "isErc20", cell: (info) => (info.getValue() ? : ""), size: 100, }), - columnHelper.accessor("isErc721", { + nameColumnHelper.accessor("isErc721", { header: () => "isErc721", cell: (info) => (info.getValue() ? : ""), size: 100, diff --git a/frontend/src/views/Names/NamesView.tsx b/frontend/src/views/Names/NamesView.tsx index 54cfc81..af6a588 100644 --- a/frontend/src/views/Names/NamesView.tsx +++ b/frontend/src/views/Names/NamesView.tsx @@ -1,74 +1,28 @@ import React, { useState, useEffect } from "react"; -import classes from "/App.module.css"; -import { types } from "../../../wailsjs/go/models"; -import { GetNames, GetNamesCnt } from "../../../wailsjs/go/app/App"; -import { createColumnHelper, flexRender, getCoreRowModel, useReactTable } from "@tanstack/react-table"; +import classes from "@/App.module.css"; +import { GetNames, GetNamesCnt } from "@gocode/app/App"; +import { types } from "@gocode/models"; +import { flexRender, getCoreRowModel, useReactTable } from "@tanstack/react-table"; import { useHotkeys } from "react-hotkeys-hook"; import { Stack, Table, Title } from "@mantine/core"; -import { namesColumns, createRowModel } from "./Names"; -import { View, ViewStatus } from "../../components/view"; - -const columnHelper = createColumnHelper(); +import { nameColumns } from "./NameTable"; +import { View, ViewStatus } from "@components"; +import { useKeyboardPaging } from "@hooks"; export function NamesView() { - const [items, setItems] = useState([]); - const [nItems, setNItems] = useState(0); - const [curItem, setCurItem] = useState(0); - const perPage = 20; - - useHotkeys("left", (event) => { - setCurItem((cur) => Math.max(cur - 1, 0)); - event.preventDefault(); - }); - useHotkeys("up", (event) => { - setCurItem((cur) => Math.max(cur - perPage, 0)); - event.preventDefault(); - }); - useHotkeys("home", (event) => { - setCurItem(0); - event.preventDefault(); - }); - - useHotkeys("right", (event) => { - var max = Math.max(nItems - perPage, 0); - setCurItem((cur) => Math.min(max, cur + 1)); - event.preventDefault(); - }); - useHotkeys("down", (event) => { - var max = Math.max(nItems - perPage, 0); - setCurItem((cur) => Math.min(max, cur + perPage)); - event.preventDefault(); - }); - useHotkeys("end", (event) => { - var max = Math.max(nItems - perPage, 0); - setCurItem(max); - event.preventDefault(); - }); - - useEffect(() => { - const fetchHistory = async () => { - const fetchedItems = await GetNames(curItem, perPage); - setItems(fetchedItems); - const cnt = await GetNamesCnt(); - setNItems(cnt); - }; - fetchHistory(); - }, [curItem, perPage]); - - useEffect(() => { - setCurItem(0); - }, []); - + const { items, nItems, curItem } = useKeyboardPaging(GetNames, GetNamesCnt, undefined, 20); const table = useReactTable({ data: items, - columns: namesColumns, + columns: nameColumns, getCoreRowModel: getCoreRowModel(), }); return ( - Names Title {curItem} + + Names {curItem} of {nItems} + {table.getHeaderGroups().map((headerGroup) => ( diff --git a/frontend/src/views/Series/SeriesView.tsx b/frontend/src/views/Series/SeriesView.tsx index 1af7b45..de0dfa0 100644 --- a/frontend/src/views/Series/SeriesView.tsx +++ b/frontend/src/views/Series/SeriesView.tsx @@ -1,8 +1,7 @@ import React, { useState, useEffect } from "react"; -import { GetFilelist } from "../../../wailsjs/go/app/App"; -import classes from "/App.module.css"; -import { View, ViewStatus } from "../../components/view"; -import StringTable, { DataItem } from "../../components/StringTable"; +import { GetFilelist } from "@gocode/app/App"; +import classes from "@/App.module.css"; +import { View, ViewStatus, StringTable, DataItem } from "@components"; import { Stack, Text, Title } from "@mantine/core"; export function SeriesView() { diff --git a/frontend/src/views/Settings/SettingsView.tsx b/frontend/src/views/Settings/SettingsView.tsx index 526d649..f83b489 100644 --- a/frontend/src/views/Settings/SettingsView.tsx +++ b/frontend/src/views/Settings/SettingsView.tsx @@ -1,7 +1,7 @@ import React from "react"; import { Stack, Title, Checkbox, InputLabel } from "@mantine/core"; -import classes from "/App.module.css"; -import { View, ViewStatus } from "../../components/view"; +import classes from "@/App.module.css"; +import { View, ViewStatus } from "@components"; export function SettingsView() { return ( diff --git a/frontend/src/views/View.module.css b/frontend/src/views/View.module.css deleted file mode 100644 index 70ad184..0000000 --- a/frontend/src/views/View.module.css +++ /dev/null @@ -1,36 +0,0 @@ -#app { - height: 100vh; - text-align: center; -} - -.result { - height: 20px; - line-height: 20px; - margin: 1.5rem auto; -} - -.btn { - width: 80px; - height: 30px; - line-height: 30px; - border-radius: 3px; - border: none; - margin: 20px 0 0 20px; - padding: 0 8px; - cursor: pointer; -} - -.btn:hover { - background-image: linear-gradient(to top, #cfd9df 0%, #e2ebf0 100%); - color: #333333; -} - -.gridColumn { - border: 1px solid #ccc; - padding: 8px; /* Optional: Add some padding for better spacing */ -} - -.tabPanel { - max-height: 95vh; - overflow: auto; -} diff --git a/frontend/src/views/Views.module.css b/frontend/src/views/Views.module.css new file mode 100644 index 0000000..5219043 --- /dev/null +++ b/frontend/src/views/Views.module.css @@ -0,0 +1,36 @@ +#app { + height: 100vh; + text-align: center; +} + +.result { + height: 20px; + line-height: 20px; + margin: 1.5rem auto; +} + +.btn { + width: 80px; + height: 30px; + line-height: 30px; + border-radius: 3px; + border: none; + margin: 20px 0 0 20px; + padding: 0 8px; + cursor: pointer; +} + +.btn:hover { + background-image: linear-gradient(to top, #cfd9df 0%, #e2ebf0 100%); + color: #333333; +} + +.gridColumn { + border: 1px solid #ccc; + padding: 8px; /* Optional: Add some padding for better spacing */ +} + +.tabPanel { + max-height: 95vh; + overflow: auto; +} diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json index 6d69001..f85db23 100644 --- a/frontend/tsconfig.json +++ b/frontend/tsconfig.json @@ -21,21 +21,27 @@ "jsx": "react-jsx", "baseUrl": "./src", "paths": { - "@/*": [ - "*" - ], "@assets/*": [ - "assets/*" + "./assets/*" ], "@components": [ "./components/index" ], + "@views": [ + "./views/index" + ], "@hooks": [ "./hooks/index" ], "@gocode/*": [ "../wailsjs/go/*" ], + "@runtime": [ + "../wailsjs/runtime/runtime" + ], + "@/*": [ + "./*" + ] } }, "include": [ diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts index 84d1d9e..c19432b 100644 --- a/frontend/vite.config.ts +++ b/frontend/vite.config.ts @@ -1,18 +1,9 @@ -import path from 'path'; import react from '@vitejs/plugin-react'; +import tsconfigPaths from 'vite-tsconfig-paths'; import { defineConfig } from 'vite'; export default defineConfig({ - plugins: [react()], - resolve: { - alias: { - '@': path.resolve(__dirname, './src'), - '@assets': path.resolve(__dirname, './src/assets'), - '@components': path.resolve(__dirname, './components/index'), - '@hooks': path.resolve(__dirname, './hooks/index'), - '@gocode': path.resolve(__dirname, './wailsjs/go') - } - }, + plugins: [react(), tsconfigPaths()], server: { watch: { usePolling: true, diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 91e71a6..29e7ac9 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -252,15 +252,120 @@ "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" -"@esbuild/android-arm@0.15.18": - version "0.15.18" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz#266d40b8fdcf87962df8af05b76219bc786b4f80" - integrity sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw== - -"@esbuild/linux-loong64@0.15.18": - version "0.15.18" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz#128b76ecb9be48b60cf5cfc1c63a4f00691a3239" - integrity sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ== +"@esbuild/aix-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" + integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== + +"@esbuild/android-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" + integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== + +"@esbuild/android-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" + integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== + +"@esbuild/android-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" + integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== + +"@esbuild/darwin-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a" + integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== + +"@esbuild/darwin-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" + integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== + +"@esbuild/freebsd-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" + integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== + +"@esbuild/freebsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" + integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== + +"@esbuild/linux-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" + integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== + +"@esbuild/linux-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" + integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== + +"@esbuild/linux-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" + integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== + +"@esbuild/linux-loong64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" + integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== + +"@esbuild/linux-mips64el@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" + integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== + +"@esbuild/linux-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" + integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== + +"@esbuild/linux-riscv64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" + integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== + +"@esbuild/linux-s390x@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" + integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== + +"@esbuild/linux-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0" + integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== + +"@esbuild/netbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" + integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== + +"@esbuild/openbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" + integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== + +"@esbuild/sunos-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" + integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== + +"@esbuild/win32-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" + integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== + +"@esbuild/win32-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" + integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== + +"@esbuild/win32-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" + integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" @@ -439,6 +544,86 @@ resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== +"@rollup/rollup-android-arm-eabi@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.1.tgz#f0da481244b7d9ea15296b35f7fe39cd81157396" + integrity sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA== + +"@rollup/rollup-android-arm64@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.1.tgz#82ab3c575f4235fb647abea5e08eec6cf325964e" + integrity sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg== + +"@rollup/rollup-darwin-arm64@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.1.tgz#6a530452e68a9152809ce58de1f89597632a085b" + integrity sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ== + +"@rollup/rollup-darwin-x64@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.1.tgz#47727479f5ca292cf434d7e75af2725b724ecbc7" + integrity sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA== + +"@rollup/rollup-linux-arm-gnueabihf@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.1.tgz#46193c498aa7902a8db89ac00128060320e84fef" + integrity sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g== + +"@rollup/rollup-linux-arm-musleabihf@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.1.tgz#22d831fe239643c1d05c98906420325cee439d85" + integrity sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ== + +"@rollup/rollup-linux-arm64-gnu@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.1.tgz#19abd33695ec9d588b4a858d122631433084e4a3" + integrity sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ== + +"@rollup/rollup-linux-arm64-musl@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.1.tgz#d60af8c0b9be424424ff96a0ba19fce65d26f6ab" + integrity sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ== + +"@rollup/rollup-linux-powerpc64le-gnu@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.1.tgz#b1194e5ed6d138fdde0842d126fccde74a90f457" + integrity sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ== + +"@rollup/rollup-linux-riscv64-gnu@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.1.tgz#f5a635c017b9bff8b856b0221fbd5c0e3373b7ec" + integrity sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg== + +"@rollup/rollup-linux-s390x-gnu@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.1.tgz#f1043d9f4026bf6995863cb3f8dd4732606e4baa" + integrity sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg== + +"@rollup/rollup-linux-x64-gnu@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.1.tgz#1e781730be445119f06c9df5f185e193bc82c610" + integrity sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g== + +"@rollup/rollup-linux-x64-musl@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.1.tgz#08f12e1965d6f27d6898ff932592121cca6abc4b" + integrity sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ== + +"@rollup/rollup-win32-arm64-msvc@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.1.tgz#4a5dcbbe7af7d41cac92b09798e7c1831da1f599" + integrity sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g== + +"@rollup/rollup-win32-ia32-msvc@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.1.tgz#075b0713de627843a73b4cf0e087c56b53e9d780" + integrity sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg== + +"@rollup/rollup-win32-x64-msvc@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.1.tgz#0cb240c147c0dfd0e3eaff4cc060a772d39e155c" + integrity sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw== + "@tabler/icons-react@^2.46.0": version "2.46.0" resolved "https://registry.yarnpkg.com/@tabler/icons-react/-/icons-react-2.46.0.tgz#a24cf737687a18cdf1b0e1189ef69462e82dbd89" @@ -464,6 +649,11 @@ resolved "https://registry.yarnpkg.com/@tanstack/table-core/-/table-core-8.19.2.tgz#5fc8ede54f18867f74715ad93927f7df4d255209" integrity sha512-KpRjhgehIhbfH78ARm/GJDXGnpdw4bCg3qas6yjWSi7czJhI/J6pWln7NHtmBkGE9ZbohiiNtLqwGzKmBfixig== +"@types/estree@1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" @@ -999,6 +1189,13 @@ debug@^4.1.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: dependencies: ms "2.1.2" +debug@^4.1.1: + version "4.3.5" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" + integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== + dependencies: + ms "2.1.2" + deep-equal@^2.0.5: version "2.2.3" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.3.tgz#af89dafb23a396c7da3e862abc0be27cf51d56e1" @@ -1274,133 +1471,34 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-android-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz#20a7ae1416c8eaade917fb2453c1259302c637a5" - integrity sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA== - -esbuild-android-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz#9cc0ec60581d6ad267568f29cf4895ffdd9f2f04" - integrity sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ== - -esbuild-darwin-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz#428e1730ea819d500808f220fbc5207aea6d4410" - integrity sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg== - -esbuild-darwin-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz#b6dfc7799115a2917f35970bfbc93ae50256b337" - integrity sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA== - -esbuild-freebsd-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz#4e190d9c2d1e67164619ae30a438be87d5eedaf2" - integrity sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA== - -esbuild-freebsd-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz#18a4c0344ee23bd5a6d06d18c76e2fd6d3f91635" - integrity sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA== - -esbuild-linux-32@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz#9a329731ee079b12262b793fb84eea762e82e0ce" - integrity sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg== - -esbuild-linux-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz#532738075397b994467b514e524aeb520c191b6c" - integrity sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw== - -esbuild-linux-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz#5372e7993ac2da8f06b2ba313710d722b7a86e5d" - integrity sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug== - -esbuild-linux-arm@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz#e734aaf259a2e3d109d4886c9e81ec0f2fd9a9cc" - integrity sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA== - -esbuild-linux-mips64le@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz#c0487c14a9371a84eb08fab0e1d7b045a77105eb" - integrity sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ== - -esbuild-linux-ppc64le@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz#af048ad94eed0ce32f6d5a873f7abe9115012507" - integrity sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w== - -esbuild-linux-riscv64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz#423ed4e5927bd77f842bd566972178f424d455e6" - integrity sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg== - -esbuild-linux-s390x@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz#21d21eaa962a183bfb76312e5a01cc5ae48ce8eb" - integrity sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ== - -esbuild-netbsd-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz#ae75682f60d08560b1fe9482bfe0173e5110b998" - integrity sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg== - -esbuild-openbsd-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz#79591a90aa3b03e4863f93beec0d2bab2853d0a8" - integrity sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ== - -esbuild-sunos-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz#fd528aa5da5374b7e1e93d36ef9b07c3dfed2971" - integrity sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw== - -esbuild-windows-32@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz#0e92b66ecdf5435a76813c4bc5ccda0696f4efc3" - integrity sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ== - -esbuild-windows-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz#0fc761d785414284fc408e7914226d33f82420d0" - integrity sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw== - -esbuild-windows-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz#5b5bdc56d341d0922ee94965c89ee120a6a86eb7" - integrity sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ== - -esbuild@^0.15.9: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.18.tgz#ea894adaf3fbc036d32320a00d4d6e4978a2f36d" - integrity sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q== +esbuild@^0.21.3: + version "0.21.5" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d" + integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== optionalDependencies: - "@esbuild/android-arm" "0.15.18" - "@esbuild/linux-loong64" "0.15.18" - esbuild-android-64 "0.15.18" - esbuild-android-arm64 "0.15.18" - esbuild-darwin-64 "0.15.18" - esbuild-darwin-arm64 "0.15.18" - esbuild-freebsd-64 "0.15.18" - esbuild-freebsd-arm64 "0.15.18" - esbuild-linux-32 "0.15.18" - esbuild-linux-64 "0.15.18" - esbuild-linux-arm "0.15.18" - esbuild-linux-arm64 "0.15.18" - esbuild-linux-mips64le "0.15.18" - esbuild-linux-ppc64le "0.15.18" - esbuild-linux-riscv64 "0.15.18" - esbuild-linux-s390x "0.15.18" - esbuild-netbsd-64 "0.15.18" - esbuild-openbsd-64 "0.15.18" - esbuild-sunos-64 "0.15.18" - esbuild-windows-32 "0.15.18" - esbuild-windows-64 "0.15.18" - esbuild-windows-arm64 "0.15.18" + "@esbuild/aix-ppc64" "0.21.5" + "@esbuild/android-arm" "0.21.5" + "@esbuild/android-arm64" "0.21.5" + "@esbuild/android-x64" "0.21.5" + "@esbuild/darwin-arm64" "0.21.5" + "@esbuild/darwin-x64" "0.21.5" + "@esbuild/freebsd-arm64" "0.21.5" + "@esbuild/freebsd-x64" "0.21.5" + "@esbuild/linux-arm" "0.21.5" + "@esbuild/linux-arm64" "0.21.5" + "@esbuild/linux-ia32" "0.21.5" + "@esbuild/linux-loong64" "0.21.5" + "@esbuild/linux-mips64el" "0.21.5" + "@esbuild/linux-ppc64" "0.21.5" + "@esbuild/linux-riscv64" "0.21.5" + "@esbuild/linux-s390x" "0.21.5" + "@esbuild/linux-x64" "0.21.5" + "@esbuild/netbsd-x64" "0.21.5" + "@esbuild/openbsd-x64" "0.21.5" + "@esbuild/sunos-x64" "0.21.5" + "@esbuild/win32-arm64" "0.21.5" + "@esbuild/win32-ia32" "0.21.5" + "@esbuild/win32-x64" "0.21.5" escalade@^3.1.1: version "3.1.1" @@ -1710,7 +1808,7 @@ for-each@^0.3.3: dependencies: is-callable "^1.1.3" -fsevents@~2.3.2: +fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -1826,6 +1924,11 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" +globrex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" + integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== + gopd@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" @@ -2555,7 +2658,7 @@ possible-typed-array-names@^1.0.0: resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== -postcss@^8.4.18: +postcss@^8.4.39: version "8.4.39" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.39.tgz#aa3c94998b61d3a9c259efa51db4b392e1bde0e3" integrity sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw== @@ -2725,7 +2828,7 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve@^1.22.1, resolve@^1.22.4: +resolve@^1.22.4: version "1.22.8" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -2748,11 +2851,29 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rollup@^2.79.1: - version "2.79.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" - integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== +rollup@^4.13.0: + version "4.18.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.18.1.tgz#18a606df5e76ca53b8a69f2d8eab256d69dda851" + integrity sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A== + dependencies: + "@types/estree" "1.0.5" optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.18.1" + "@rollup/rollup-android-arm64" "4.18.1" + "@rollup/rollup-darwin-arm64" "4.18.1" + "@rollup/rollup-darwin-x64" "4.18.1" + "@rollup/rollup-linux-arm-gnueabihf" "4.18.1" + "@rollup/rollup-linux-arm-musleabihf" "4.18.1" + "@rollup/rollup-linux-arm64-gnu" "4.18.1" + "@rollup/rollup-linux-arm64-musl" "4.18.1" + "@rollup/rollup-linux-powerpc64le-gnu" "4.18.1" + "@rollup/rollup-linux-riscv64-gnu" "4.18.1" + "@rollup/rollup-linux-s390x-gnu" "4.18.1" + "@rollup/rollup-linux-x64-gnu" "4.18.1" + "@rollup/rollup-linux-x64-musl" "4.18.1" + "@rollup/rollup-win32-arm64-msvc" "4.18.1" + "@rollup/rollup-win32-ia32-msvc" "4.18.1" + "@rollup/rollup-win32-x64-msvc" "4.18.1" fsevents "~2.3.2" run-parallel@^1.1.9: @@ -3064,6 +3185,11 @@ ts-api-utils@^1.3.0: resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== +tsconfck@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/tsconfck/-/tsconfck-3.1.1.tgz#c7284913262c293b43b905b8b034f524de4a3162" + integrity sha512-00eoI6WY57SvZEVjm13stEVE90VkEdJAFGgpFLTsZbJyW/LwFQ7uQxJHWpZ2hzSWgCPKc9AnBnNP+0X7o3hAmQ== + tsconfig-paths@^3.15.0: version "3.15.0" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" @@ -3258,17 +3384,25 @@ util@^0.10.3: dependencies: inherits "2.0.3" -vite@^3.2.0: - version "3.2.10" - resolved "https://registry.yarnpkg.com/vite/-/vite-3.2.10.tgz#7ac79fead82cfb6b5bf65613cd82fba6dcc81340" - integrity sha512-Dx3olBo/ODNiMVk/cA5Yft9Ws+snLOXrhLtrI3F4XLt4syz2Yg8fayZMWScPKoz12v5BUv7VEmQHnsfpY80fYw== +vite-tsconfig-paths@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/vite-tsconfig-paths/-/vite-tsconfig-paths-4.3.2.tgz#321f02e4b736a90ff62f9086467faf4e2da857a9" + integrity sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA== dependencies: - esbuild "^0.15.9" - postcss "^8.4.18" - resolve "^1.22.1" - rollup "^2.79.1" + debug "^4.1.1" + globrex "^0.1.2" + tsconfck "^3.0.3" + +vite@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.3.4.tgz#b36ebd47c8a5e3a8727046375d5f10bf9fdf8715" + integrity sha512-Cw+7zL3ZG9/NZBB8C+8QbQZmR54GwqIz+WMI4b3JgdYJvX+ny9AjJXqkGQlDXSXRP9rP0B4tbciRMOVEKulVOA== + dependencies: + esbuild "^0.21.3" + postcss "^8.4.39" + rollup "^4.13.0" optionalDependencies: - fsevents "~2.3.2" + fsevents "~2.3.3" which-boxed-primitive@^1.0.2: version "1.0.2"