From 7803ae3b6f7ef4659d987df7237561d5f3e25e2a Mon Sep 17 00:00:00 2001 From: Josh Miller Date: Tue, 6 Feb 2024 12:40:31 +0000 Subject: [PATCH] fix: lift electron into root and resolve comments --- .eslintrc.json | 25 ++++ .gitignore | 39 +++++- README.md | 20 ++- .../Layout/Layout.tsx | 0 .../Layout/Navbar/Navbar.tsx | 0 .../Marketplace/Marketplace.tsx | 0 .../Marketplace/MarketplaceItem.tsx | 8 +- .../Spawn/SpawnDone.tsx | 0 .../Spawn/SpawnFunds.tsx | 0 .../Spawn/SpawnHeader.tsx | 0 .../Spawn/SpawnRPC/GetNodiesAccount.tsx | 0 .../Spawn/SpawnRPC/SpawnRPC.tsx | 0 .../Timeline/TimelineItem/TimelineItem.tsx | 2 +- .../YourAgents/YourAgents.tsx | 6 +- .../context => context}/AgentsProvider.tsx | 2 +- .../context => context}/SpawnContext.tsx | 0 .../context => context}/TabsProvider.tsx | 0 .../icons/robot-head.png | Bin {frontend/electron => electron}/loading.html | 2 +- {frontend/electron => electron}/main.js | 8 +- {frontend/enums => enums}/SpawnState.ts | 0 frontend/.eslintrc.json | 10 -- frontend/.gitignore | 37 ------ frontend/README.md | 25 ---- frontend/components/Layout/Layout.test.tsx | 10 -- {frontend/hooks => hooks}/useAgents.tsx | 0 {frontend/hooks => hooks}/useSpawn.tsx | 0 {frontend/hooks => hooks}/useTabs.tsx | 0 frontend/jest.config.ts => jest.config.ts | 0 frontend/next.config.mjs => next.config.mjs | 0 frontend/package.json => package.json | 11 +- {frontend/pages => pages}/_app.tsx | 0 {frontend/pages => pages}/_document.tsx | 0 {frontend/pages/api => pages}/agents/[id].tsx | 0 .../pages/api => pages}/agents/index.tsx | 0 {frontend/pages/api => pages}/agents/run.tsx | 0 {frontend/pages/api => pages}/agents/stop.tsx | 0 {frontend/pages => pages}/index.tsx | 0 {frontend/pages => pages}/spawn/[id].tsx | 0 {frontend/public => public}/favicon.ico | Bin {frontend/public => public}/next.svg | 0 {frontend/public => public}/robot-head.png | Bin {frontend/public => public}/vercel.svg | 0 {frontend/styles => styles}/globals.css | 0 frontend/tsconfig.json => tsconfig.json | 3 +- frontend/yarn.lock => yarn.lock | 116 +++++++++++++++++- 46 files changed, 217 insertions(+), 107 deletions(-) create mode 100644 .eslintrc.json rename {frontend/components => components}/Layout/Layout.tsx (100%) rename {frontend/components => components}/Layout/Navbar/Navbar.tsx (100%) rename {frontend/components => components}/Marketplace/Marketplace.tsx (100%) rename {frontend/components => components}/Marketplace/MarketplaceItem.tsx (74%) rename {frontend/components => components}/Spawn/SpawnDone.tsx (100%) rename {frontend/components => components}/Spawn/SpawnFunds.tsx (100%) rename {frontend/components => components}/Spawn/SpawnHeader.tsx (100%) rename {frontend/components => components}/Spawn/SpawnRPC/GetNodiesAccount.tsx (100%) rename {frontend/components => components}/Spawn/SpawnRPC/SpawnRPC.tsx (100%) rename {frontend/components => components}/Timeline/TimelineItem/TimelineItem.tsx (55%) rename {frontend/components => components}/YourAgents/YourAgents.tsx (84%) rename {frontend/context => context}/AgentsProvider.tsx (97%) rename {frontend/context => context}/SpawnContext.tsx (100%) rename {frontend/context => context}/TabsProvider.tsx (100%) rename {frontend/electron => electron}/icons/robot-head.png (100%) rename {frontend/electron => electron}/loading.html (87%) rename {frontend/electron => electron}/main.js (89%) rename {frontend/enums => enums}/SpawnState.ts (100%) delete mode 100644 frontend/.eslintrc.json delete mode 100644 frontend/.gitignore delete mode 100644 frontend/README.md delete mode 100644 frontend/components/Layout/Layout.test.tsx rename {frontend/hooks => hooks}/useAgents.tsx (100%) rename {frontend/hooks => hooks}/useSpawn.tsx (100%) rename {frontend/hooks => hooks}/useTabs.tsx (100%) rename frontend/jest.config.ts => jest.config.ts (100%) rename frontend/next.config.mjs => next.config.mjs (100%) rename frontend/package.json => package.json (68%) rename {frontend/pages => pages}/_app.tsx (100%) rename {frontend/pages => pages}/_document.tsx (100%) rename {frontend/pages/api => pages}/agents/[id].tsx (100%) rename {frontend/pages/api => pages}/agents/index.tsx (100%) rename {frontend/pages/api => pages}/agents/run.tsx (100%) rename {frontend/pages/api => pages}/agents/stop.tsx (100%) rename {frontend/pages => pages}/index.tsx (100%) rename {frontend/pages => pages}/spawn/[id].tsx (100%) rename {frontend/public => public}/favicon.ico (100%) rename {frontend/public => public}/next.svg (100%) rename {frontend/public => public}/robot-head.png (100%) rename {frontend/public => public}/vercel.svg (100%) rename {frontend/styles => styles}/globals.css (100%) rename frontend/tsconfig.json => tsconfig.json (97%) rename frontend/yarn.lock => yarn.lock (98%) diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 000000000..d62b29bdd --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,25 @@ +{ + "extends": [ + "eslint:recommended", + "next/core-web-vitals", + "plugin:jest/recommended", + "plugin:react-hooks/recommended", + "plugin:react/recommended", + "prettier" + ], + "globals": { + "JSX": true, + "React": true + }, + "plugins": [ + "jest", + "prettier", + "react", + "react-hooks" + ], + "rules": { + "react/jsx-props-no-spreading": "off", + "react/no-array-index-key": "off", + "react/react-in-jsx-scope": "off" + } +} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 9202c09b2..a84107af3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,37 @@ -data/ -__pycache__/ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js +.yarn/install-state.gz + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/README.md b/README.md index 26c482782..1a9800504 100644 --- a/README.md +++ b/README.md @@ -1 +1,19 @@ -# olas-operate-app \ No newline at end of file +Frontend Electron + NextJS application for the Olas Operate App. + +## Technologies Used +- NextJS +- Electron +- AntD +- TypeScript + + +## Getting Started + +First, run the development server: + +```bash +yarn dev +``` + + + diff --git a/frontend/components/Layout/Layout.tsx b/components/Layout/Layout.tsx similarity index 100% rename from frontend/components/Layout/Layout.tsx rename to components/Layout/Layout.tsx diff --git a/frontend/components/Layout/Navbar/Navbar.tsx b/components/Layout/Navbar/Navbar.tsx similarity index 100% rename from frontend/components/Layout/Navbar/Navbar.tsx rename to components/Layout/Navbar/Navbar.tsx diff --git a/frontend/components/Marketplace/Marketplace.tsx b/components/Marketplace/Marketplace.tsx similarity index 100% rename from frontend/components/Marketplace/Marketplace.tsx rename to components/Marketplace/Marketplace.tsx diff --git a/frontend/components/Marketplace/MarketplaceItem.tsx b/components/Marketplace/MarketplaceItem.tsx similarity index 74% rename from frontend/components/Marketplace/MarketplaceItem.tsx rename to components/Marketplace/MarketplaceItem.tsx index b53474639..62b43a7f0 100644 --- a/frontend/components/Marketplace/MarketplaceItem.tsx +++ b/components/Marketplace/MarketplaceItem.tsx @@ -1,12 +1,10 @@ -import { useAgents } from "@/hooks/useAgents"; import { Row, Col, Button } from "antd"; - +import Image from "next/image"; export const MarketplaceItem = () => { - const { startAgent: runAgent } = useAgents(); return ( - + - Image { +export const TimelineItem = ({ title, body }: { title: string, body: JSX.Element }) => { return (

{title}

diff --git a/frontend/components/YourAgents/YourAgents.tsx b/components/YourAgents/YourAgents.tsx similarity index 84% rename from frontend/components/YourAgents/YourAgents.tsx rename to components/YourAgents/YourAgents.tsx index 049487f9e..91d58c215 100644 --- a/frontend/components/YourAgents/YourAgents.tsx +++ b/components/YourAgents/YourAgents.tsx @@ -1,6 +1,6 @@ import { useAgents } from "@/hooks/useAgents"; import { Tab, useTabs } from "@/hooks/useTabs"; -import { Button, Flex } from "antd"; +import { Button, Flex, Typography } from "antd"; export const YourAgents = () => { const { agents } = useAgents(); @@ -16,8 +16,8 @@ export const HasAgents = ({ agents }: { agents: any[] }) => { <> {agents.map((agent) => (
-

{agent.name}

-

{agent.description}

+ {agent.name} + {agent.description}
))} diff --git a/frontend/context/AgentsProvider.tsx b/context/AgentsProvider.tsx similarity index 97% rename from frontend/context/AgentsProvider.tsx rename to context/AgentsProvider.tsx index 2b5cb6614..a291bc896 100644 --- a/frontend/context/AgentsProvider.tsx +++ b/context/AgentsProvider.tsx @@ -16,7 +16,7 @@ type AgentContextType = { export const AgentsContext = createContext({ agents: [], - setAgents: () => {}, + setAgents: () => { }, isLoading: false, }); diff --git a/frontend/context/SpawnContext.tsx b/context/SpawnContext.tsx similarity index 100% rename from frontend/context/SpawnContext.tsx rename to context/SpawnContext.tsx diff --git a/frontend/context/TabsProvider.tsx b/context/TabsProvider.tsx similarity index 100% rename from frontend/context/TabsProvider.tsx rename to context/TabsProvider.tsx diff --git a/frontend/electron/icons/robot-head.png b/electron/icons/robot-head.png similarity index 100% rename from frontend/electron/icons/robot-head.png rename to electron/icons/robot-head.png diff --git a/frontend/electron/loading.html b/electron/loading.html similarity index 87% rename from frontend/electron/loading.html rename to electron/loading.html index 0aee54aaa..ba1c3eef7 100644 --- a/frontend/electron/loading.html +++ b/electron/loading.html @@ -3,7 +3,7 @@ - Document + Operate App diff --git a/frontend/electron/main.js b/electron/main.js similarity index 89% rename from frontend/electron/main.js rename to electron/main.js index cc2389248..a7fcfb3c9 100644 --- a/frontend/electron/main.js +++ b/electron/main.js @@ -1,10 +1,10 @@ const { app, BrowserWindow, Tray, Menu } = require("electron"); const path = require("path"); -let tray; +let tray, win; const createWindow = () => { - const win = new BrowserWindow({ + win = new BrowserWindow({ width: 800, height: 600, }); @@ -14,7 +14,7 @@ const createWindow = () => { win.loadURL("http://localhost:3000"); win.webContents.openDevTools(); - win.webContents.on("did-fail-load", (e, code, desc) => { + win.webContents.on("did-fail-load", () => { win.webContents.reloadIgnoringCache(); }); @@ -64,7 +64,7 @@ app.whenReady().then(() => { }, }, ]); - tray.setToolTip("This is my application."); + tray.setToolTip("Olas Operate"); tray.setContextMenu(contextMenu); tray.on("click", () => { win.show(); diff --git a/frontend/enums/SpawnState.ts b/enums/SpawnState.ts similarity index 100% rename from frontend/enums/SpawnState.ts rename to enums/SpawnState.ts diff --git a/frontend/.eslintrc.json b/frontend/.eslintrc.json deleted file mode 100644 index 452a63c2e..000000000 --- a/frontend/.eslintrc.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": [ - "next/core-web-vitals", - "prettier" - ], - "plugins": [ - "prettier" - ], - "rules": {} -} \ No newline at end of file diff --git a/frontend/.gitignore b/frontend/.gitignore deleted file mode 100644 index a84107af3..000000000 --- a/frontend/.gitignore +++ /dev/null @@ -1,37 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/frontend/README.md b/frontend/README.md deleted file mode 100644 index 4dcf5aa3c..000000000 --- a/frontend/README.md +++ /dev/null @@ -1,25 +0,0 @@ -Frontend Electron + NextJS application for the Olas Operate App. - -## Technologies Used -- NextJS -- Electron -- AntD -- TypeScript - - -## Getting Started - -First, run the development server: - -```bash -npm run dev -# or -yarn dev -# or -pnpm dev -# or -bun dev -``` - - - diff --git a/frontend/components/Layout/Layout.test.tsx b/frontend/components/Layout/Layout.test.tsx deleted file mode 100644 index 42afdfe33..000000000 --- a/frontend/components/Layout/Layout.test.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import "@testing-library/jest-dom"; -import { render } from "@testing-library/react"; -import { Layout } from "./Layout"; - -describe("Layout", () => { - it("should render", () => { - const { container } = render(); - expect(container).toBeInTheDocument(); - }); -}); diff --git a/frontend/hooks/useAgents.tsx b/hooks/useAgents.tsx similarity index 100% rename from frontend/hooks/useAgents.tsx rename to hooks/useAgents.tsx diff --git a/frontend/hooks/useSpawn.tsx b/hooks/useSpawn.tsx similarity index 100% rename from frontend/hooks/useSpawn.tsx rename to hooks/useSpawn.tsx diff --git a/frontend/hooks/useTabs.tsx b/hooks/useTabs.tsx similarity index 100% rename from frontend/hooks/useTabs.tsx rename to hooks/useTabs.tsx diff --git a/frontend/jest.config.ts b/jest.config.ts similarity index 100% rename from frontend/jest.config.ts rename to jest.config.ts diff --git a/frontend/next.config.mjs b/next.config.mjs similarity index 100% rename from frontend/next.config.mjs rename to next.config.mjs diff --git a/frontend/package.json b/package.json similarity index 68% rename from frontend/package.json rename to package.json index d72363ea8..1231b6cb7 100644 --- a/frontend/package.json +++ b/package.json @@ -24,8 +24,12 @@ "eslint": "^8", "eslint-config-next": "14.1.0", "eslint-config-prettier": "^9.1.0", + "eslint-plugin-jest": "^27.6.3", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.6.0", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", + "portfinder": "^1.0.32", "prettier": "^3.2.5", "ts-node": "^10.9.2", "tslint-plugin-prettier": "^2.3.0", @@ -35,8 +39,11 @@ "name": "olas-operate-app", "private": true, "scripts": { - "build": "next build && electron-builder", - "dev": "concurrently -n \"NEXT,ELECTRON\" -c \"yellow,blue\" --kill-others \"next dev\" \"electron .\"", + "build": "", + "dev": "concurrently -n \"NEXT,ELECTRON,FLASK\" -c \"yellow,blue,green\" --kill-others \"next dev\" \"electron .\" \"python backend/server.py\"", + "install": "yarn install:javascript && yarn install:python", + "install:javascript": "yarn install --ignore-scripts", + "install:python": "cd ./backend && poetry install", "lint": "next lint", "start": "next start", "test": "jest" diff --git a/frontend/pages/_app.tsx b/pages/_app.tsx similarity index 100% rename from frontend/pages/_app.tsx rename to pages/_app.tsx diff --git a/frontend/pages/_document.tsx b/pages/_document.tsx similarity index 100% rename from frontend/pages/_document.tsx rename to pages/_document.tsx diff --git a/frontend/pages/api/agents/[id].tsx b/pages/agents/[id].tsx similarity index 100% rename from frontend/pages/api/agents/[id].tsx rename to pages/agents/[id].tsx diff --git a/frontend/pages/api/agents/index.tsx b/pages/agents/index.tsx similarity index 100% rename from frontend/pages/api/agents/index.tsx rename to pages/agents/index.tsx diff --git a/frontend/pages/api/agents/run.tsx b/pages/agents/run.tsx similarity index 100% rename from frontend/pages/api/agents/run.tsx rename to pages/agents/run.tsx diff --git a/frontend/pages/api/agents/stop.tsx b/pages/agents/stop.tsx similarity index 100% rename from frontend/pages/api/agents/stop.tsx rename to pages/agents/stop.tsx diff --git a/frontend/pages/index.tsx b/pages/index.tsx similarity index 100% rename from frontend/pages/index.tsx rename to pages/index.tsx diff --git a/frontend/pages/spawn/[id].tsx b/pages/spawn/[id].tsx similarity index 100% rename from frontend/pages/spawn/[id].tsx rename to pages/spawn/[id].tsx diff --git a/frontend/public/favicon.ico b/public/favicon.ico similarity index 100% rename from frontend/public/favicon.ico rename to public/favicon.ico diff --git a/frontend/public/next.svg b/public/next.svg similarity index 100% rename from frontend/public/next.svg rename to public/next.svg diff --git a/frontend/public/robot-head.png b/public/robot-head.png similarity index 100% rename from frontend/public/robot-head.png rename to public/robot-head.png diff --git a/frontend/public/vercel.svg b/public/vercel.svg similarity index 100% rename from frontend/public/vercel.svg rename to public/vercel.svg diff --git a/frontend/styles/globals.css b/styles/globals.css similarity index 100% rename from frontend/styles/globals.css rename to styles/globals.css diff --git a/frontend/tsconfig.json b/tsconfig.json similarity index 97% rename from frontend/tsconfig.json rename to tsconfig.json index 16cd0095e..90727a3fc 100644 --- a/frontend/tsconfig.json +++ b/tsconfig.json @@ -23,6 +23,7 @@ "strict": true }, "exclude": [ + "backend", "node_modules" ], "include": [ @@ -30,4 +31,4 @@ "**/*.tsx", "next-env.d.ts" ] -} +} \ No newline at end of file diff --git a/frontend/yarn.lock b/yarn.lock similarity index 98% rename from frontend/yarn.lock rename to yarn.lock index 767b3c582..335076524 100644 --- a/frontend/yarn.lock +++ b/yarn.lock @@ -1146,6 +1146,11 @@ "@types/tough-cookie" "*" parse5 "^7.0.0" +"@types/json-schema@^7.0.9": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" @@ -1218,6 +1223,11 @@ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.8.tgz#ce5ace04cfeabe7ef87c0091e50752e36707deff" integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A== +"@types/semver@^7.3.12": + version "7.5.6" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339" + integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== + "@types/stack-utils@^2.0.0": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" @@ -1263,6 +1273,14 @@ "@typescript-eslint/visitor-keys" "6.21.0" debug "^4.3.4" +"@typescript-eslint/scope-manager@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c" + integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== + dependencies: + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/visitor-keys" "5.62.0" + "@typescript-eslint/scope-manager@6.21.0": version "6.21.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1" @@ -1271,11 +1289,29 @@ "@typescript-eslint/types" "6.21.0" "@typescript-eslint/visitor-keys" "6.21.0" +"@typescript-eslint/types@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" + integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== + "@typescript-eslint/types@6.21.0": version "6.21.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d" integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg== +"@typescript-eslint/typescript-estree@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" + integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== + dependencies: + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/visitor-keys" "5.62.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + "@typescript-eslint/typescript-estree@6.21.0": version "6.21.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46" @@ -1290,6 +1326,28 @@ semver "^7.5.4" ts-api-utils "^1.0.1" +"@typescript-eslint/utils@^5.10.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" + integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/typescript-estree" "5.62.0" + eslint-scope "^5.1.1" + semver "^7.3.7" + +"@typescript-eslint/visitor-keys@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" + integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== + dependencies: + "@typescript-eslint/types" "5.62.0" + eslint-visitor-keys "^3.3.0" + "@typescript-eslint/visitor-keys@6.21.0": version "6.21.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47" @@ -1651,6 +1709,13 @@ async-validator@^4.1.0: resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-4.2.5.tgz#c96ea3332a521699d0afaaceed510a54656c6339" integrity sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg== +async@^2.6.4: + version "2.6.4" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" + integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== + dependencies: + lodash "^4.17.14" + async@^3.2.3: version "3.2.5" resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" @@ -2750,6 +2815,13 @@ eslint-plugin-import@^2.28.1: semver "^6.3.1" tsconfig-paths "^3.15.0" +eslint-plugin-jest@^27.6.3: + version "27.6.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.6.3.tgz#8acb8b1e45597fe1f4d4cf25163d90119efc12be" + integrity sha512-+YsJFVH6R+tOiO3gCJon5oqn4KWc+mDq2leudk8mrp8RFubLOo9CVyi3cib4L7XMpxExmkmBZQTPDYVBzgpgOA== + dependencies: + "@typescript-eslint/utils" "^5.10.0" + eslint-plugin-jsx-a11y@^6.7.1: version "6.8.0" resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz#2fa9c701d44fcd722b7c771ec322432857fcbad2" @@ -2780,7 +2852,7 @@ eslint-plugin-prettier@^2.2.0: fast-diff "^1.1.1" jest-docblock "^21.0.0" -"eslint-plugin-react-hooks@^4.5.0 || 5.0.0-canary-7118f5dd7-20230705": +"eslint-plugin-react-hooks@^4.5.0 || 5.0.0-canary-7118f5dd7-20230705", eslint-plugin-react-hooks@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== @@ -2807,6 +2879,14 @@ eslint-plugin-react@^7.33.2: semver "^6.3.1" string.prototype.matchall "^4.0.8" +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + eslint-scope@^7.2.2: version "7.2.2" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" @@ -2897,6 +2977,11 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" @@ -4362,7 +4447,7 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash@^4.17.15, lodash@^4.17.21: +lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -4535,6 +4620,13 @@ minizlib@^2.1.1: minipass "^3.0.0" yallist "^4.0.0" +mkdirp@^0.5.6: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + mkdirp@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" @@ -4856,6 +4948,15 @@ plist@^3.0.4, plist@^3.0.5: base64-js "^1.5.1" xmlbuilder "^15.1.1" +portfinder@^1.0.32: + version "1.0.32" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.32.tgz#2fe1b9e58389712429dc2bea5beb2146146c7f81" + integrity sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg== + dependencies: + async "^2.6.4" + debug "^3.2.7" + mkdirp "^0.5.6" + postcss@8.4.31: version "8.4.31" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" @@ -5576,7 +5677,7 @@ semver@^6.2.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.2, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4: +semver@^7.3.2, semver@^7.3.7, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4: version "7.6.0" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== @@ -6057,7 +6158,7 @@ tsconfig-paths@^3.15.0: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@^1.7.1: +tslib@^1.7.1, tslib@^1.8.1: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== @@ -6076,6 +6177,13 @@ tslint-plugin-prettier@^2.3.0: lines-and-columns "^1.1.6" tslib "^1.7.1" +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"