diff --git a/frontend/.eslintrc.json b/frontend/.eslintrc.json index dfc128b2a..0c5504b90 100644 --- a/frontend/.eslintrc.json +++ b/frontend/.eslintrc.json @@ -1,6 +1,46 @@ { "extends": "next/core-web-vitals", + "plugins": [ + "simple-import-sort" + ], "rules": { - "react-hooks/exhaustive-deps": "off" + "react-hooks/exhaustive-deps": "off", + "simple-import-sort/exports": "warn", + "simple-import-sort/imports": [ + "warn", + { + "groups": [ + // Node.js builtins. You could also generate this regex if you use a `.js` config. + // For example: `^(${require("module").builtinModules.join("|")})(/|$)` + // Note that if you use the `node:` prefix for Node.js builtins, + // you can avoid this complexity: You can simply use "^node:". + [ + "^(assert|buffer|child_process|cluster|console|constants|crypto|dgram|dns|domain|events|fs|http|https|module|net|os|path|punycode|querystring|readline|repl|stream|string_decoder|sys|timers|tls|tty|url|util|vm|zlib|freelist|v8|process|async_hooks|http2|perf_hooks)(/.*|$)" + ], + // Packages `react` related packages + [ + "^react", + "^next", + "^@?\\w" + ], + // Internal packages. + [ + "^~(/.*|$)" + ], + // Relative imports + [ + "^\\.\\.(?!/?$)", + "^\\.\\./?$", + "^\\./(?=.*/)(?!/?$)", + "^\\.(?!/?$)", + "^\\./?$" + ], + // Style imports. + [ + "^.+\\.?(css|scss)$" + ] + ] + } + ] } } \ No newline at end of file diff --git a/frontend/components/RouteGuard.js b/frontend/components/RouteGuard.js index 51890c7a4..71bfd2562 100644 --- a/frontend/components/RouteGuard.js +++ b/frontend/components/RouteGuard.js @@ -1,7 +1,9 @@ -import { useState, useEffect } from "react"; -import { useRouter } from "next/router"; -import checkAuth from "~/pages/api/auth/CheckAuth"; +import { useEffect,useState } from "react"; import Image from "next/image"; +import { useRouter } from "next/router"; + +import checkAuth from "~/pages/api/auth/CheckAuth"; + import { publicPaths } from "../const"; // #TODO: finish spinner only when the data loads fully diff --git a/frontend/components/analytics/posthog.js b/frontend/components/analytics/posthog.js index 5eda4de3a..c480c4e6b 100644 --- a/frontend/components/analytics/posthog.js +++ b/frontend/components/analytics/posthog.js @@ -1,4 +1,5 @@ import posthog from "posthog-js"; + import { ENV, POSTHOG_API_KEY, POSTHOG_HOST, TELEMETRY_ENABLED } from "../utilities/config"; export const initPostHog = () => { diff --git a/frontend/components/basic/Error.js b/frontend/components/basic/Error.js index ad058b701..11b9c6dd3 100644 --- a/frontend/components/basic/Error.js +++ b/frontend/components/basic/Error.js @@ -1,6 +1,6 @@ import React, { useState } from "react"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faExclamationTriangle } from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; export default function Error({ text }) { return ( diff --git a/frontend/components/basic/InputField.js b/frontend/components/basic/InputField.js index c61c148a5..a339b139a 100644 --- a/frontend/components/basic/InputField.js +++ b/frontend/components/basic/InputField.js @@ -1,6 +1,6 @@ import React from "react"; -import Error from "./Error"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { useState } from "react"; +import { useRouter } from "next/router"; import { faCircle, faCircleExclamation, @@ -8,9 +8,10 @@ import { faEye, faEyeSlash, } from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; + import guidGenerator from "../utilities/randomId"; -import { useState } from "react"; -import { useRouter } from "next/router"; +import Error from "./Error"; const InputField = (props) => { const [passwordVisible, setPasswordVisible] = useState(false); diff --git a/frontend/components/basic/Listbox.js b/frontend/components/basic/Listbox.js index c9365c243..eeb444aa5 100644 --- a/frontend/components/basic/Listbox.js +++ b/frontend/components/basic/Listbox.js @@ -1,9 +1,9 @@ import React from "react"; -import { Listbox, Transition } from "@headlessui/react"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; -import { faCheck, faPlus, faAngleDown } from "@fortawesome/free-solid-svg-icons"; import { Fragment } from "react"; import { useRouter } from "next/router"; +import { faAngleDown,faCheck, faPlus } from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { Listbox, Transition } from "@headlessui/react"; /** * This is the component that we use for drop down lists. diff --git a/frontend/components/basic/buttons/Button.js b/frontend/components/basic/buttons/Button.js index cd24f1318..c66a9b990 100644 --- a/frontend/components/basic/buttons/Button.js +++ b/frontend/components/basic/buttons/Button.js @@ -1,8 +1,8 @@ import React from "react"; -import Link from "next/link"; import Image from "next/image"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import Link from "next/link"; import { faPlus } from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; var classNames = require("classnames"); diff --git a/frontend/components/basic/dialog/AddIncidentContactDialog.js b/frontend/components/basic/dialog/AddIncidentContactDialog.js index 518828985..4e5004db8 100644 --- a/frontend/components/basic/dialog/AddIncidentContactDialog.js +++ b/frontend/components/basic/dialog/AddIncidentContactDialog.js @@ -1,8 +1,10 @@ -import { Dialog, Transition } from "@headlessui/react"; import { Fragment, useState } from "react"; -import InputField from "../InputField"; +import { Dialog, Transition } from "@headlessui/react"; + import addIncidentContact from "~/pages/api/organization/addIncidentContact"; + import Button from "../buttons/Button"; +import InputField from "../InputField"; const AddIncidentContactDialog = ({ isOpen, diff --git a/frontend/components/basic/dialog/AddProjectMemberDialog.js b/frontend/components/basic/dialog/AddProjectMemberDialog.js index 60712e21c..a170a4d49 100644 --- a/frontend/components/basic/dialog/AddProjectMemberDialog.js +++ b/frontend/components/basic/dialog/AddProjectMemberDialog.js @@ -1,8 +1,9 @@ -import { Dialog, Transition } from "@headlessui/react"; import { Fragment, useState } from "react"; -import ListBox from "../Listbox"; import { useRouter } from "next/router"; +import { Dialog, Transition } from "@headlessui/react"; + import Button from "../buttons/Button"; +import ListBox from "../Listbox"; const AddProjectMemberDialog = ({ isOpen, diff --git a/frontend/components/basic/dialog/AddServiceTokenDialog.js b/frontend/components/basic/dialog/AddServiceTokenDialog.js index 4623ecb84..0e084d29d 100644 --- a/frontend/components/basic/dialog/AddServiceTokenDialog.js +++ b/frontend/components/basic/dialog/AddServiceTokenDialog.js @@ -1,15 +1,17 @@ -import { Dialog, Transition } from "@headlessui/react"; import { Fragment, useState } from "react"; -import ListBox from "../Listbox"; import { useRouter } from "next/router"; -import Button from "../buttons/Button"; -import InputField from "../InputField"; -import getLatestFileKey from "~/pages/api/workspace/getLatestFileKey"; -import { decryptAssymmetric, encryptAssymmetric } from "../../utilities/crypto"; -import addServiceToken from "~/pages/api/serviceToken/addServiceToken"; -import nacl from "tweetnacl"; import { faCheck, faCopy } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { Dialog, Transition } from "@headlessui/react"; +import nacl from "tweetnacl"; + +import addServiceToken from "~/pages/api/serviceToken/addServiceToken"; +import getLatestFileKey from "~/pages/api/workspace/getLatestFileKey"; + +import { decryptAssymmetric, encryptAssymmetric } from "../../utilities/crypto"; +import Button from "../buttons/Button"; +import InputField from "../InputField"; +import ListBox from "../Listbox"; const envMapping = { Development: "dev", diff --git a/frontend/components/basic/dialog/AddUserDialog.js b/frontend/components/basic/dialog/AddUserDialog.js index eeec682b3..59cc2ec58 100644 --- a/frontend/components/basic/dialog/AddUserDialog.js +++ b/frontend/components/basic/dialog/AddUserDialog.js @@ -1,9 +1,10 @@ -import { Dialog, Transition } from "@headlessui/react"; import { Fragment } from "react"; -import InputField from "../InputField"; import { useRouter } from "next/router"; -import Button from "../buttons/Button"; +import { Dialog, Transition } from "@headlessui/react"; + import { STRIPE_PRODUCT_STARTER } from "../../utilities/config"; +import Button from "../buttons/Button"; +import InputField from "../InputField"; const AddUserDialog = ({ isOpen, diff --git a/frontend/components/basic/dialog/AddWorkspaceDialog.js b/frontend/components/basic/dialog/AddWorkspaceDialog.js index 7f2908e0a..361aa3f8b 100644 --- a/frontend/components/basic/dialog/AddWorkspaceDialog.js +++ b/frontend/components/basic/dialog/AddWorkspaceDialog.js @@ -1,9 +1,10 @@ -import { Dialog, Transition } from "@headlessui/react"; import { Fragment, useState } from "react"; -import InputField from "../InputField"; import Image from "next/image"; -import { Checkbox } from "../table/Checkbox"; +import { Dialog, Transition } from "@headlessui/react"; + import Button from "../buttons/Button"; +import InputField from "../InputField"; +import { Checkbox } from "../table/Checkbox"; /** * The dialog modal for when the user wants to create a new workspace diff --git a/frontend/components/basic/dialog/DeleteUserDialog.js b/frontend/components/basic/dialog/DeleteUserDialog.js index 60cad3a7b..2d97b0ff0 100644 --- a/frontend/components/basic/dialog/DeleteUserDialog.js +++ b/frontend/components/basic/dialog/DeleteUserDialog.js @@ -1,5 +1,6 @@ -import { Dialog, Transition } from '@headlessui/react' import { Fragment, useState } from 'react' +import { Dialog, Transition } from '@headlessui/react' + import InputField from '../InputField'; // #TODO: USE THIS. Currently it's not. Kinda complicated to set up because of state. diff --git a/frontend/components/basic/layout.js b/frontend/components/basic/layout.js index 20a5c824c..382eb2777 100644 --- a/frontend/components/basic/layout.js +++ b/frontend/components/basic/layout.js @@ -1,29 +1,29 @@ /* eslint-disable react-hooks/exhaustive-deps */ +import { useEffect, useState } from "react"; import Link from "next/link"; import { useRouter } from "next/router"; -import { useEffect, useState } from "react"; - -import NavBarDashboard from "../navigation/NavBarDashboard"; -import Listbox from "./Listbox"; -import getWorkspaces from "~/pages/api/workspace/getWorkspaces"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { - faHouse, - faUser, faGear, - faMobile, + faHouse, faLink, + faMobile, + faUser, } from "@fortawesome/free-solid-svg-icons"; -import AddWorkspaceDialog from "./dialog/AddWorkspaceDialog"; -import createWorkspace from "~/pages/api/workspace/createWorkspace"; +import { faPlus } from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; + +import getOrganizations from "~/pages/api/organization/getOrgs"; import getOrganizationUserProjects from "~/pages/api/organization/GetOrgUserProjects"; import getOrganizationUsers from "~/pages/api/organization/GetOrgUsers"; import addUserToWorkspace from "~/pages/api/workspace/addUserToWorkspace"; -import getOrganizations from "~/pages/api/organization/getOrgs"; -import { faPlus } from "@fortawesome/free-solid-svg-icons"; +import createWorkspace from "~/pages/api/workspace/createWorkspace"; +import getWorkspaces from "~/pages/api/workspace/getWorkspaces"; +import NavBarDashboard from "../navigation/NavBarDashboard"; import { decryptAssymmetric, encryptAssymmetric } from "../utilities/crypto"; import Button from "./buttons/Button"; +import AddWorkspaceDialog from "./dialog/AddWorkspaceDialog"; +import Listbox from "./Listbox"; export default function Layout({ children }) { const router = useRouter(); diff --git a/frontend/components/basic/popups/BottomRightPopup.js b/frontend/components/basic/popups/BottomRightPopup.js index 4db24fb82..d75699290 100644 --- a/frontend/components/basic/popups/BottomRightPopup.js +++ b/frontend/components/basic/popups/BottomRightPopup.js @@ -1,6 +1,6 @@ import React from "react"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faXmark } from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; export default function BottonRightPopup({ buttonText, diff --git a/frontend/components/basic/table/ServiceTokenTable.js b/frontend/components/basic/table/ServiceTokenTable.js index 40ee899f3..acf4aa576 100644 --- a/frontend/components/basic/table/ServiceTokenTable.js +++ b/frontend/components/basic/table/ServiceTokenTable.js @@ -1,8 +1,9 @@ import React, { useEffect, useState } from "react"; import { useRouter } from "next/router"; import { faX } from "@fortawesome/free-solid-svg-icons"; -import Button from "../buttons/Button"; + import guidGenerator from "../../utilities/randomId"; +import Button from "../buttons/Button"; const roles = ["admin", "user"]; diff --git a/frontend/components/basic/table/UserTable.js b/frontend/components/basic/table/UserTable.js index 215d9a953..a09ff6e16 100644 --- a/frontend/components/basic/table/UserTable.js +++ b/frontend/components/basic/table/UserTable.js @@ -1,14 +1,16 @@ import React, { useEffect, useMemo, useState } from "react"; import { useRouter } from "next/router"; -import Listbox from "../Listbox"; -import uploadKeys from "~/pages/api/workspace/uploadKeys"; -import getLatestFileKey from "~/pages/api/workspace/getLatestFileKey"; -import deleteUserFromWorkspace from "~/pages/api/workspace/deleteUserFromWorkspace"; -import changeUserRoleInWorkspace from "~/pages/api/workspace/changeUserRoleInWorkspace"; -import deleteUserFromOrganization from "~/pages/api/organization/deleteUserFromOrganization"; import { faX } from "@fortawesome/free-solid-svg-icons"; -import Button from "../buttons/Button"; + +import deleteUserFromOrganization from "~/pages/api/organization/deleteUserFromOrganization"; +import changeUserRoleInWorkspace from "~/pages/api/workspace/changeUserRoleInWorkspace"; +import deleteUserFromWorkspace from "~/pages/api/workspace/deleteUserFromWorkspace"; +import getLatestFileKey from "~/pages/api/workspace/getLatestFileKey"; +import uploadKeys from "~/pages/api/workspace/uploadKeys"; + import guidGenerator from "../../utilities/randomId"; +import Button from "../buttons/Button"; +import Listbox from "../Listbox"; const { decryptAssymmetric, diff --git a/frontend/components/billing/Card.js b/frontend/components/billing/Card.js index 2e73531a5..07f91b07a 100644 --- a/frontend/components/billing/Card.js +++ b/frontend/components/billing/Card.js @@ -1,8 +1,8 @@ import React from "react"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; -import { faCheck, faQuestionCircle } from "@fortawesome/free-solid-svg-icons"; import { faCcMastercard, faCcVisa } from "@fortawesome/free-brands-svg-icons"; +import { faCheck, faQuestionCircle } from "@fortawesome/free-solid-svg-icons"; import { faCircle } from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; export default function Card({ card, changeSelectedCard, selected }) { function creditCardBrandIcon(cc) { diff --git a/frontend/components/billing/Plan.js b/frontend/components/billing/Plan.js index 7ed35aca3..2dcf3bc1c 100644 --- a/frontend/components/billing/Plan.js +++ b/frontend/components/billing/Plan.js @@ -1,4 +1,5 @@ import React from "react"; + import StripeRedirect from "~/pages/api/organization/StripeRedirect"; export default function Plan({ plan }) { diff --git a/frontend/components/dashboard/DashboardInputField.js b/frontend/components/dashboard/DashboardInputField.js index f03f09278..9073fe5ac 100644 --- a/frontend/components/dashboard/DashboardInputField.js +++ b/frontend/components/dashboard/DashboardInputField.js @@ -1,6 +1,7 @@ import React, { Fragment } from "react"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faCircle } from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; + import guidGenerator from "../utilities/randomId"; /** diff --git a/frontend/components/dashboard/DropZone.js b/frontend/components/dashboard/DropZone.js index 5549e0821..762371c4b 100644 --- a/frontend/components/dashboard/DropZone.js +++ b/frontend/components/dashboard/DropZone.js @@ -1,13 +1,12 @@ import { useState } from "react"; - -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; -import { faUpload } from "@fortawesome/free-solid-svg-icons"; -import guidGenerator from "../utilities/randomId"; - -import Error from "../basic/Error"; import Image from "next/image"; -import parse from "../utilities/file"; +import { faUpload } from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; + import Button from "../basic/buttons/Button"; +import Error from "../basic/Error"; +import parse from "../utilities/file"; +import guidGenerator from "../utilities/randomId"; const DropZone = ({ setData, diff --git a/frontend/components/navigation/NavBarDashboard.js b/frontend/components/navigation/NavBarDashboard.js index 5809e57b0..154bf0a55 100644 --- a/frontend/components/navigation/NavBarDashboard.js +++ b/frontend/components/navigation/NavBarDashboard.js @@ -1,27 +1,27 @@ /* eslint-disable react-hooks/exhaustive-deps */ /* eslint-disable react/jsx-key */ -import React, { useState, Fragment, useEffect } from "react"; -import { useRouter } from "next/router"; - +import React, { Fragment, useEffect,useState } from "react"; import Image from "next/image"; - -import logout from "~/pages/api/auth/Logout"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { useRouter } from "next/router"; +import { faGithub,faSlack } from "@fortawesome/free-brands-svg-icons"; import { faCircleQuestion } from "@fortawesome/free-regular-svg-icons"; import { - faBook, - faGear, - faCoins, - faRightFromBracket, - faEnvelope, - faPlus, faAngleDown, + faBook, + faCoins, + faEnvelope, + faGear, + faPlus, + faRightFromBracket, } from "@fortawesome/free-solid-svg-icons"; -import { faSlack, faGithub } from "@fortawesome/free-brands-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { Menu, Transition } from "@headlessui/react"; -import getUser from "~/pages/api/user/getUser"; -import getOrganizations from "~/pages/api/organization/getOrgs"; + +import logout from "~/pages/api/auth/Logout"; import getOrganization from "~/pages/api/organization/GetOrg"; +import getOrganizations from "~/pages/api/organization/getOrgs"; +import getUser from "~/pages/api/user/getUser"; + import guidGenerator from "../utilities/randomId"; const supportOptions = [ diff --git a/frontend/components/navigation/NavHeader.js b/frontend/components/navigation/NavHeader.js index b04f0d492..58527aa56 100644 --- a/frontend/components/navigation/NavHeader.js +++ b/frontend/components/navigation/NavHeader.js @@ -1,14 +1,15 @@ import React, { useEffect, useState } from "react"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { useRouter } from "next/router"; +import { faCcMastercard, faCcVisa } from "@fortawesome/free-brands-svg-icons"; import { faAngleRight, faQuestionCircle, } from "@fortawesome/free-solid-svg-icons"; -import { faCcMastercard, faCcVisa } from "@fortawesome/free-brands-svg-icons"; import { faCircle } from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; + import getOrganization from "~/pages/api/organization/GetOrg"; import getWorkspaceInfo from "~/pages/api/workspace/getWorkspaceInfo"; -import { useRouter } from "next/router"; export default function NavHeader({ pageName, isProjectRelated }) { const [orgName, setOrgName] = useState(""); diff --git a/frontend/components/utilities/SecurityClient.js b/frontend/components/utilities/SecurityClient.js index fdcb5d743..783b44633 100644 --- a/frontend/components/utilities/SecurityClient.js +++ b/frontend/components/utilities/SecurityClient.js @@ -1,4 +1,5 @@ import token from "~/pages/api/auth/Token"; + import { PATH } from "../../const"; export default class SecurityClient { diff --git a/frontend/components/utilities/attemptLogin.js b/frontend/components/utilities/attemptLogin.js index 443ffc0b0..bbf0ba72c 100644 --- a/frontend/components/utilities/attemptLogin.js +++ b/frontend/components/utilities/attemptLogin.js @@ -1,12 +1,13 @@ +import Aes256Gcm from "~/components/aes-256-gcm"; import login1 from "~/pages/api/auth/Login1"; import login2 from "~/pages/api/auth/Login2"; -import Aes256Gcm from "~/components/aes-256-gcm"; -import pushKeys from "./pushKeys"; -import { initPostHog } from "../analytics/posthog"; import getOrganizations from "~/pages/api/organization/getOrgs"; import getOrganizationUserProjects from "~/pages/api/organization/GetOrgUserProjects"; -import SecurityClient from "./SecurityClient"; + +import { initPostHog } from "../analytics/posthog"; import { ENV } from "./config"; +import pushKeys from "./pushKeys"; +import SecurityClient from "./SecurityClient"; const nacl = require("tweetnacl"); nacl.util = require("tweetnacl-util"); diff --git a/frontend/components/utilities/changePassword.js b/frontend/components/utilities/changePassword.js index 9d213e2c0..4e2b375aa 100644 --- a/frontend/components/utilities/changePassword.js +++ b/frontend/components/utilities/changePassword.js @@ -1,6 +1,7 @@ -import Aes256Gcm from "../aes-256-gcm"; -import SRP1 from "~/pages/api/auth/SRP1"; import changePassword2 from "~/pages/api/auth/ChangePassword2"; +import SRP1 from "~/pages/api/auth/SRP1"; + +import Aes256Gcm from "../aes-256-gcm"; const nacl = require("tweetnacl"); nacl.util = require("tweetnacl-util"); diff --git a/frontend/components/utilities/getSecretsForProject.js b/frontend/components/utilities/getSecretsForProject.js index f229404e7..bec41b15f 100644 --- a/frontend/components/utilities/getSecretsForProject.js +++ b/frontend/components/utilities/getSecretsForProject.js @@ -1,4 +1,5 @@ import getSecrets from "~/pages/api/files/GetSecrets"; + import guidGenerator from "./randomId"; const { diff --git a/frontend/components/utilities/issueBackupKey.js b/frontend/components/utilities/issueBackupKey.js index 92f4b2f70..cd2bc6a2d 100644 --- a/frontend/components/utilities/issueBackupKey.js +++ b/frontend/components/utilities/issueBackupKey.js @@ -1,6 +1,7 @@ -import Aes256Gcm from "../aes-256-gcm"; -import SRP1 from "~/pages/api/auth/SRP1"; import issueBackupPrivateKey from "~/pages/api/auth/IssueBackupPrivateKey"; +import SRP1 from "~/pages/api/auth/SRP1"; + +import Aes256Gcm from "../aes-256-gcm"; import generateBackupPDF from "./generateBackupPDF"; const nacl = require("tweetnacl"); diff --git a/frontend/components/utilities/pushKeys.js b/frontend/components/utilities/pushKeys.js index 37261f342..c43b1cc1d 100644 --- a/frontend/components/utilities/pushKeys.js +++ b/frontend/components/utilities/pushKeys.js @@ -1,6 +1,6 @@ +import uploadSecrets from "~/pages/api/files/UploadSecrets"; import getLatestFileKey from "~/pages/api/workspace/getLatestFileKey"; import getWorkspaceKeys from "~/pages/api/workspace/getWorkspaceKeys"; -import uploadSecrets from "~/pages/api/files/UploadSecrets"; const crypto = require("crypto"); const { diff --git a/frontend/package.json b/frontend/package.json index e7bd071e1..bfc2b3ef9 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -58,6 +58,7 @@ "autoprefixer": "^10.4.7", "eslint": "^8.28.0", "eslint-config-next": "^13.0.5", + "eslint-plugin-simple-import-sort": "^8.0.0", "postcss": "^8.4.14", "prettier": "2.7.1", "tailwindcss": "^3.1.4", diff --git a/frontend/pages/_app.js b/frontend/pages/_app.js index 18e6d4548..838d407b9 100644 --- a/frontend/pages/_app.js +++ b/frontend/pages/_app.js @@ -1,14 +1,17 @@ -import "../styles/globals.css"; -import "@fortawesome/fontawesome-svg-core/styles.css"; -import { config } from "@fortawesome/fontawesome-svg-core"; -import Layout from "~/components/basic/layout"; -import RouteGuard from "~/components/RouteGuard"; -import { publicPaths } from "../const.js"; import { useEffect } from "react"; import { useRouter } from "next/router"; +import { config } from "@fortawesome/fontawesome-svg-core"; + import { initPostHog } from "~/components/analytics/posthog"; +import Layout from "~/components/basic/layout"; +import RouteGuard from "~/components/RouteGuard"; import { ENV } from "~/utilities/config"; +import { publicPaths } from "../const.js"; + +import "@fortawesome/fontawesome-svg-core/styles.css"; +import "../styles/globals.css"; + config.autoAddCss = false; const App = ({ Component, pageProps, ...appProps }) => { diff --git a/frontend/pages/api/auth/ChangePassword2.js b/frontend/pages/api/auth/ChangePassword2.js index 9618c21a8..a60a9dd92 100644 --- a/frontend/pages/api/auth/ChangePassword2.js +++ b/frontend/pages/api/auth/ChangePassword2.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/auth/CheckAuth.js b/frontend/pages/api/auth/CheckAuth.js index 36f678b70..fef7ba9d1 100644 --- a/frontend/pages/api/auth/CheckAuth.js +++ b/frontend/pages/api/auth/CheckAuth.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient.js"; + import { PATH } from "../../../const.js"; /** diff --git a/frontend/pages/api/auth/IssueBackupPrivateKey.js b/frontend/pages/api/auth/IssueBackupPrivateKey.js index 76205efcb..b644064a9 100644 --- a/frontend/pages/api/auth/IssueBackupPrivateKey.js +++ b/frontend/pages/api/auth/IssueBackupPrivateKey.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/auth/Logout.js b/frontend/pages/api/auth/Logout.js index e00394c26..063c57709 100644 --- a/frontend/pages/api/auth/Logout.js +++ b/frontend/pages/api/auth/Logout.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/auth/SRP1.js b/frontend/pages/api/auth/SRP1.js index 78692f596..838fc096d 100644 --- a/frontend/pages/api/auth/SRP1.js +++ b/frontend/pages/api/auth/SRP1.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/files/GetSecrets.js b/frontend/pages/api/files/GetSecrets.js index f153e7fb2..e02460900 100644 --- a/frontend/pages/api/files/GetSecrets.js +++ b/frontend/pages/api/files/GetSecrets.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient.js"; + import { PATH } from "../../../const.js"; /** diff --git a/frontend/pages/api/files/UploadSecrets.js b/frontend/pages/api/files/UploadSecrets.js index a34ca3df7..6497a5e1e 100644 --- a/frontend/pages/api/files/UploadSecrets.js +++ b/frontend/pages/api/files/UploadSecrets.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/integrations/ChangeHerokuConfigVars.js b/frontend/pages/api/integrations/ChangeHerokuConfigVars.js index e3a93c52e..398a417a3 100644 --- a/frontend/pages/api/integrations/ChangeHerokuConfigVars.js +++ b/frontend/pages/api/integrations/ChangeHerokuConfigVars.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; const changeHerokuConfigVars = ({ integrationId, key, secrets }) => { diff --git a/frontend/pages/api/integrations/DeleteIntegration.js b/frontend/pages/api/integrations/DeleteIntegration.js index b35066509..2c58cdfe7 100644 --- a/frontend/pages/api/integrations/DeleteIntegration.js +++ b/frontend/pages/api/integrations/DeleteIntegration.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/integrations/DeleteIntegrationAuth.js b/frontend/pages/api/integrations/DeleteIntegrationAuth.js index 2b81b3f02..ac38c2ab7 100644 --- a/frontend/pages/api/integrations/DeleteIntegrationAuth.js +++ b/frontend/pages/api/integrations/DeleteIntegrationAuth.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/integrations/GetIntegrationApps.js b/frontend/pages/api/integrations/GetIntegrationApps.js index a938319a3..3a483e618 100644 --- a/frontend/pages/api/integrations/GetIntegrationApps.js +++ b/frontend/pages/api/integrations/GetIntegrationApps.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; const getIntegrationApps = ({ integrationAuthId }) => { diff --git a/frontend/pages/api/integrations/GetIntegrations.js b/frontend/pages/api/integrations/GetIntegrations.js index 92bd598c1..4f2608469 100644 --- a/frontend/pages/api/integrations/GetIntegrations.js +++ b/frontend/pages/api/integrations/GetIntegrations.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; const getIntegrations = () => { diff --git a/frontend/pages/api/integrations/StartIntegration.js b/frontend/pages/api/integrations/StartIntegration.js index e1cbcef4e..820e21e1d 100644 --- a/frontend/pages/api/integrations/StartIntegration.js +++ b/frontend/pages/api/integrations/StartIntegration.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/integrations/authorizeIntegration.js b/frontend/pages/api/integrations/authorizeIntegration.js index 4ecb13a6a..efddf6f20 100644 --- a/frontend/pages/api/integrations/authorizeIntegration.js +++ b/frontend/pages/api/integrations/authorizeIntegration.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/integrations/getWorkspaceAuthorizations.js b/frontend/pages/api/integrations/getWorkspaceAuthorizations.js index ca8091131..a7ff51c4c 100644 --- a/frontend/pages/api/integrations/getWorkspaceAuthorizations.js +++ b/frontend/pages/api/integrations/getWorkspaceAuthorizations.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/integrations/getWorkspaceIntegrations.js b/frontend/pages/api/integrations/getWorkspaceIntegrations.js index fd54da004..8789eb7ba 100644 --- a/frontend/pages/api/integrations/getWorkspaceIntegrations.js +++ b/frontend/pages/api/integrations/getWorkspaceIntegrations.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/organization/GetOrg.js b/frontend/pages/api/organization/GetOrg.js index 2f93a8f32..a977c8bb5 100644 --- a/frontend/pages/api/organization/GetOrg.js +++ b/frontend/pages/api/organization/GetOrg.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/organization/GetOrgProjects.js b/frontend/pages/api/organization/GetOrgProjects.js index d901782e6..60ab3a6ce 100644 --- a/frontend/pages/api/organization/GetOrgProjects.js +++ b/frontend/pages/api/organization/GetOrgProjects.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/organization/GetOrgSubscription.js b/frontend/pages/api/organization/GetOrgSubscription.js index 9bb54f4f9..bd71464a6 100644 --- a/frontend/pages/api/organization/GetOrgSubscription.js +++ b/frontend/pages/api/organization/GetOrgSubscription.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/organization/GetOrgUserProjects.js b/frontend/pages/api/organization/GetOrgUserProjects.js index 5a9be5de7..abff1f88c 100644 --- a/frontend/pages/api/organization/GetOrgUserProjects.js +++ b/frontend/pages/api/organization/GetOrgUserProjects.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/organization/GetOrgUsers.js b/frontend/pages/api/organization/GetOrgUsers.js index fb3dd6fb7..584e29de2 100644 --- a/frontend/pages/api/organization/GetOrgUsers.js +++ b/frontend/pages/api/organization/GetOrgUsers.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/organization/StripeRedirect.js b/frontend/pages/api/organization/StripeRedirect.js index 70d17d023..158c1c811 100644 --- a/frontend/pages/api/organization/StripeRedirect.js +++ b/frontend/pages/api/organization/StripeRedirect.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/organization/addIncidentContact.js b/frontend/pages/api/organization/addIncidentContact.js index 3e4556d7d..db0b98d33 100644 --- a/frontend/pages/api/organization/addIncidentContact.js +++ b/frontend/pages/api/organization/addIncidentContact.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/organization/addUserToOrg.js b/frontend/pages/api/organization/addUserToOrg.js index 44feb793d..e20a1676b 100644 --- a/frontend/pages/api/organization/addUserToOrg.js +++ b/frontend/pages/api/organization/addUserToOrg.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/organization/deleteIncidentContact.js b/frontend/pages/api/organization/deleteIncidentContact.js index 04d0a53ff..3035c55ff 100644 --- a/frontend/pages/api/organization/deleteIncidentContact.js +++ b/frontend/pages/api/organization/deleteIncidentContact.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/organization/deleteUserFromOrganization.js b/frontend/pages/api/organization/deleteUserFromOrganization.js index 86ff68812..b9fcf15e6 100644 --- a/frontend/pages/api/organization/deleteUserFromOrganization.js +++ b/frontend/pages/api/organization/deleteUserFromOrganization.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/organization/getIncidentContacts.js b/frontend/pages/api/organization/getIncidentContacts.js index a46650bb9..f5d54aa0a 100644 --- a/frontend/pages/api/organization/getIncidentContacts.js +++ b/frontend/pages/api/organization/getIncidentContacts.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/organization/getOrgs.js b/frontend/pages/api/organization/getOrgs.js index 21127be67..80847664a 100644 --- a/frontend/pages/api/organization/getOrgs.js +++ b/frontend/pages/api/organization/getOrgs.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/organization/renameOrg.js b/frontend/pages/api/organization/renameOrg.js index 81c9e16db..afcc94981 100644 --- a/frontend/pages/api/organization/renameOrg.js +++ b/frontend/pages/api/organization/renameOrg.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/serviceToken/addServiceToken.js b/frontend/pages/api/serviceToken/addServiceToken.js index e41fa11b6..fec30ec95 100644 --- a/frontend/pages/api/serviceToken/addServiceToken.js +++ b/frontend/pages/api/serviceToken/addServiceToken.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/serviceToken/getServiceTokens.js b/frontend/pages/api/serviceToken/getServiceTokens.js index aa066e69c..39674e711 100644 --- a/frontend/pages/api/serviceToken/getServiceTokens.js +++ b/frontend/pages/api/serviceToken/getServiceTokens.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/user/getUser.js b/frontend/pages/api/user/getUser.js index 870eb85cd..3491810f5 100644 --- a/frontend/pages/api/user/getUser.js +++ b/frontend/pages/api/user/getUser.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/userActions/checkUserAction.js b/frontend/pages/api/userActions/checkUserAction.js index d50202ce2..ae71ddbe2 100644 --- a/frontend/pages/api/userActions/checkUserAction.js +++ b/frontend/pages/api/userActions/checkUserAction.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/userActions/registerUserAction.js b/frontend/pages/api/userActions/registerUserAction.js index cc1053a24..64d937015 100644 --- a/frontend/pages/api/userActions/registerUserAction.js +++ b/frontend/pages/api/userActions/registerUserAction.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/workspace/addUserToWorkspace.js b/frontend/pages/api/workspace/addUserToWorkspace.js index 20608fc00..a598a6a4d 100644 --- a/frontend/pages/api/workspace/addUserToWorkspace.js +++ b/frontend/pages/api/workspace/addUserToWorkspace.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/workspace/changeUserRoleInWorkspace.js b/frontend/pages/api/workspace/changeUserRoleInWorkspace.js index 3faa88292..3d9f4a36a 100644 --- a/frontend/pages/api/workspace/changeUserRoleInWorkspace.js +++ b/frontend/pages/api/workspace/changeUserRoleInWorkspace.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/workspace/createWorkspace.js b/frontend/pages/api/workspace/createWorkspace.js index 2b6ee4e77..13c57245b 100644 --- a/frontend/pages/api/workspace/createWorkspace.js +++ b/frontend/pages/api/workspace/createWorkspace.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/workspace/deleteUserFromWorkspace.js b/frontend/pages/api/workspace/deleteUserFromWorkspace.js index bebc032a0..6aa2559a3 100644 --- a/frontend/pages/api/workspace/deleteUserFromWorkspace.js +++ b/frontend/pages/api/workspace/deleteUserFromWorkspace.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/workspace/deleteWorkspace.js b/frontend/pages/api/workspace/deleteWorkspace.js index ed0787c22..f2e415c05 100644 --- a/frontend/pages/api/workspace/deleteWorkspace.js +++ b/frontend/pages/api/workspace/deleteWorkspace.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/workspace/getLatestFileKey.js b/frontend/pages/api/workspace/getLatestFileKey.js index a3f1b5620..f6f61b64f 100644 --- a/frontend/pages/api/workspace/getLatestFileKey.js +++ b/frontend/pages/api/workspace/getLatestFileKey.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/workspace/getWorkspaceInfo.js b/frontend/pages/api/workspace/getWorkspaceInfo.js index f528a319e..5e510447d 100644 --- a/frontend/pages/api/workspace/getWorkspaceInfo.js +++ b/frontend/pages/api/workspace/getWorkspaceInfo.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/workspace/getWorkspaceKeys.js b/frontend/pages/api/workspace/getWorkspaceKeys.js index b366fb5ef..334f1a878 100644 --- a/frontend/pages/api/workspace/getWorkspaceKeys.js +++ b/frontend/pages/api/workspace/getWorkspaceKeys.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/workspace/getWorkspaceUsers.js b/frontend/pages/api/workspace/getWorkspaceUsers.js index 6bbdc633b..3dc05a2f5 100644 --- a/frontend/pages/api/workspace/getWorkspaceUsers.js +++ b/frontend/pages/api/workspace/getWorkspaceUsers.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/workspace/getWorkspaces.js b/frontend/pages/api/workspace/getWorkspaces.js index 0bc213e62..0e751a319 100644 --- a/frontend/pages/api/workspace/getWorkspaces.js +++ b/frontend/pages/api/workspace/getWorkspaces.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/workspace/renameWorkspace.js b/frontend/pages/api/workspace/renameWorkspace.js index da3cf83bc..0547c481b 100644 --- a/frontend/pages/api/workspace/renameWorkspace.js +++ b/frontend/pages/api/workspace/renameWorkspace.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/api/workspace/uploadKeys.js b/frontend/pages/api/workspace/uploadKeys.js index b1e638555..3b2593cb8 100644 --- a/frontend/pages/api/workspace/uploadKeys.js +++ b/frontend/pages/api/workspace/uploadKeys.js @@ -1,4 +1,5 @@ import SecurityClient from "~/utilities/SecurityClient"; + import { PATH } from "../../../const"; /** diff --git a/frontend/pages/dashboard.js b/frontend/pages/dashboard.js index 2dabdf07e..11a2164b5 100644 --- a/frontend/pages/dashboard.js +++ b/frontend/pages/dashboard.js @@ -1,6 +1,6 @@ import React, { useEffect } from "react"; -import { useRouter } from "next/router"; import Head from "next/head"; +import { useRouter } from "next/router"; import getWorkspaces from "./api/workspace/getWorkspaces"; diff --git a/frontend/pages/dashboard/[id].js b/frontend/pages/dashboard/[id].js index 0d55dc2cb..0fc665ef3 100644 --- a/frontend/pages/dashboard/[id].js +++ b/frontend/pages/dashboard/[id].js @@ -1,42 +1,43 @@ -import React, { useState, useEffect, useCallback, Fragment } from "react"; -import { useRouter } from "next/router"; +import React, { Fragment, useCallback, useEffect, useState } from "react"; import Head from "next/head"; import Image from "next/image"; -import guidGenerator from "~/utilities/randomId"; -import getSecretsForProject from "~/utilities/getSecretsForProject"; -import pushKeys from "~/utilities/pushKeys"; -import getWorkspaces from "../api/workspace/getWorkspaces"; -import getUser from "../api/user/getUser"; -import NavHeader from "~/components/navigation/NavHeader"; - -import DashboardInputField from "~/components/dashboard/DashboardInputField"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { useRouter } from "next/router"; import { - faMagnifyingGlass, - faEye, - faEyeSlash, - faPlus, - faFolderOpen, faArrowDownAZ, faArrowDownZA, + faCheck, + faCircleInfo, + faCopy, faDownload, faEllipsis, - faPerson, + faEye, + faEyeSlash, + faFolderOpen, + faMagnifyingGlass, faPeopleGroup, - faCheck, - faCopy, - faCircleInfo, + faPerson, + faPlus, faX, } from "@fortawesome/free-solid-svg-icons"; -import ListBox from "~/components/basic/Listbox"; -import DropZone from "~/components/dashboard/DropZone"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { Menu, Transition } from "@headlessui/react"; -import getWorkspaceIntegrations from "../api/integrations/getWorkspaceIntegrations"; + +import Button from "~/components/basic/buttons/Button"; +import ListBox from "~/components/basic/Listbox"; import BottonRightPopup from "~/components/basic/popups/BottomRightPopup"; +import DashboardInputField from "~/components/dashboard/DashboardInputField"; +import DropZone from "~/components/dashboard/DropZone"; +import NavHeader from "~/components/navigation/NavHeader"; +import getSecretsForProject from "~/utilities/getSecretsForProject"; +import pushKeys from "~/utilities/pushKeys"; +import pushKeysIntegration from "~/utilities/pushKeysIntegration"; +import guidGenerator from "~/utilities/randomId"; + +import getWorkspaceIntegrations from "../api/integrations/getWorkspaceIntegrations"; +import getUser from "../api/user/getUser"; import checkUserAction from "../api/userActions/checkUserAction"; import registerUserAction from "../api/userActions/registerUserAction"; -import pushKeysIntegration from "~/utilities/pushKeysIntegration"; -import Button from "~/components/basic/buttons/Button"; +import getWorkspaces from "../api/workspace/getWorkspaces"; const KeyPair = ({ keyPair, diff --git a/frontend/pages/integrations/[id].js b/frontend/pages/integrations/[id].js index 7622ceb84..35a9a6f06 100644 --- a/frontend/pages/integrations/[id].js +++ b/frontend/pages/integrations/[id].js @@ -1,27 +1,29 @@ -import React, { useState, useEffect } from "react"; -import { useRouter } from "next/router"; +import React, { useEffect,useState } from "react"; import Head from "next/head"; import Image from "next/image"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { useRouter } from "next/router"; import { - faCheck, faArrowRight, + faCheck, faRotate, faX, } from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; + +import Button from "~/components/basic/buttons/Button"; import ListBox from "~/components/basic/Listbox"; import NavHeader from "~/components/navigation/NavHeader"; -import getIntegrations from "../api/integrations/GetIntegrations"; +import getSecretsForProject from "~/utilities/getSecretsForProject"; +import pushKeysIntegration from "~/utilities/pushKeysIntegration"; +import guidGenerator from "~/utilities/randomId"; + +import deleteIntegration from "../api/integrations/DeleteIntegration"; +import deleteIntegrationAuth from "../api/integrations/DeleteIntegrationAuth"; import getIntegrationApps from "../api/integrations/GetIntegrationApps"; +import getIntegrations from "../api/integrations/GetIntegrations"; import getWorkspaceAuthorizations from "../api/integrations/getWorkspaceAuthorizations"; import getWorkspaceIntegrations from "../api/integrations/getWorkspaceIntegrations"; import startIntegration from "../api/integrations/StartIntegration"; -import deleteIntegration from "../api/integrations/DeleteIntegration"; -import getSecretsForProject from "~/utilities/getSecretsForProject"; -import pushKeysIntegration from "~/utilities/pushKeysIntegration"; -import deleteIntegrationAuth from "../api/integrations/DeleteIntegrationAuth"; -import Button from "~/components/basic/buttons/Button"; -import guidGenerator from "~/utilities/randomId"; const crypto = require("crypto"); diff --git a/frontend/pages/login.js b/frontend/pages/login.js index ed13db377..aed4a7e94 100644 --- a/frontend/pages/login.js +++ b/frontend/pages/login.js @@ -1,17 +1,17 @@ -import React, { useState, useEffect } from "react"; -import { useRouter } from "next/router"; - +import React, { useEffect,useState } from "react"; import Head from "next/head"; import Image from "next/image"; import Link from "next/link"; - -import InputField from "~/components/basic/InputField"; -import Error from "~/components/basic/Error"; -import Button from "~/components/basic/buttons/Button"; -import getWorkspaces from "./api/workspace/getWorkspaces"; -import attemptLogin from "~/utilities/attemptLogin"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { useRouter } from "next/router"; import { faWarning } from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; + +import Button from "~/components/basic/buttons/Button"; +import Error from "~/components/basic/Error"; +import InputField from "~/components/basic/InputField"; +import attemptLogin from "~/utilities/attemptLogin"; + +import getWorkspaces from "./api/workspace/getWorkspaces"; export default function Login() { const [email, setEmail] = useState(""); diff --git a/frontend/pages/noprojects.js b/frontend/pages/noprojects.js index fd415ac9f..4634ac2c6 100644 --- a/frontend/pages/noprojects.js +++ b/frontend/pages/noprojects.js @@ -1,6 +1,6 @@ import React from "react"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faFolderOpen } from "@fortawesome/free-regular-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; export default function NoProjects() { return ( diff --git a/frontend/pages/settings/billing/[id].js b/frontend/pages/settings/billing/[id].js index 1e28964a6..18a87353b 100644 --- a/frontend/pages/settings/billing/[id].js +++ b/frontend/pages/settings/billing/[id].js @@ -1,11 +1,13 @@ -import React, { useState, useEffect } from "react"; +import React, { useEffect,useState } from "react"; import Head from "next/head"; + import Plan from "~/components/billing/Plan"; -import getOrganizationSubscriptions from "../../api/organization/GetOrgSubscription"; -import getOrganizationUsers from "../../api/organization/GetOrgUsers"; import NavHeader from "~/components/navigation/NavHeader"; import { STRIPE_PRODUCT_PRO, STRIPE_PRODUCT_STARTER } from "~/utilities/config"; +import getOrganizationSubscriptions from "../../api/organization/GetOrgSubscription"; +import getOrganizationUsers from "../../api/organization/GetOrgUsers"; + export default function SettingsBilling() { let [currentPlan, setCurrentPlan] = useState(""); let [numUsers, setNumUsers] = useState(""); diff --git a/frontend/pages/settings/org/[id].js b/frontend/pages/settings/org/[id].js index 604bb7ef3..7030bd0b1 100644 --- a/frontend/pages/settings/org/[id].js +++ b/frontend/pages/settings/org/[id].js @@ -1,30 +1,32 @@ -import React, { useState, useEffect } from "react"; -import { useRouter } from "next/router"; +import React, { useEffect,useState } from "react"; import Head from "next/head"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { useRouter } from "next/router"; import { faMagnifyingGlass, faPlus, faX, } from "@fortawesome/free-solid-svg-icons"; import { faCheck } from "@fortawesome/free-solid-svg-icons"; -import InputField from "~/components/basic/InputField"; -import getWorkspaces from "../../api/workspace/getWorkspaces"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; + +import Button from "~/components/basic/buttons/Button"; import AddIncidentContactDialog from "~/components/basic/dialog/AddIncidentContactDialog"; -import getIncidentContacts from "../../api/organization/getIncidentContacts"; -import deleteIncidentContact from "../../api/organization/deleteIncidentContact"; -import deleteWorkspace from "../../api/workspace/deleteWorkspace"; import AddUserDialog from "~/components/basic/dialog/AddUserDialog"; +import InputField from "~/components/basic/InputField"; import UserTable from "~/components/basic/table/UserTable"; -import getUser from "../../api/user/getUser"; +import NavHeader from "~/components/navigation/NavHeader"; import guidGenerator from "~/utilities/randomId"; + import addUserToOrg from "../../api/organization/addUserToOrg"; -import getOrganizationUsers from "../../api/organization/GetOrgUsers"; -import renameOrg from "../../api/organization/renameOrg"; +import deleteIncidentContact from "../../api/organization/deleteIncidentContact"; +import getIncidentContacts from "../../api/organization/getIncidentContacts"; import getOrganization from "../../api/organization/GetOrg"; import getOrganizationSubscriptions from "../../api/organization/GetOrgSubscription"; -import NavHeader from "~/components/navigation/NavHeader"; -import Button from "~/components/basic/buttons/Button"; +import getOrganizationUsers from "../../api/organization/GetOrgUsers"; +import renameOrg from "../../api/organization/renameOrg"; +import getUser from "../../api/user/getUser"; +import deleteWorkspace from "../../api/workspace/deleteWorkspace"; +import getWorkspaces from "../../api/workspace/getWorkspaces"; export default function SettingsOrg() { const [buttonReady, setButtonReady] = useState(false); diff --git a/frontend/pages/settings/personal/[id].js b/frontend/pages/settings/personal/[id].js index 5093fe11d..2b5b90a35 100644 --- a/frontend/pages/settings/personal/[id].js +++ b/frontend/pages/settings/personal/[id].js @@ -1,14 +1,16 @@ -import React, { useState, useEffect } from "react"; +import React, { useEffect,useState } from "react"; import Head from "next/head"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faCheck, faX } from "@fortawesome/free-solid-svg-icons"; -import InputField from "~/components/basic/InputField"; -import getUser from "../../api/user/getUser"; -import NavHeader from "~/components/navigation/NavHeader"; -import passwordCheck from "~/utilities/checks/PasswordCheck"; -import changePassword from "~/utilities/changePassword"; -import issueBackupKey from "~/utilities/issueBackupKey"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; + import Button from "~/components/basic/buttons/Button"; +import InputField from "~/components/basic/InputField"; +import NavHeader from "~/components/navigation/NavHeader"; +import changePassword from "~/utilities/changePassword"; +import passwordCheck from "~/utilities/checks/PasswordCheck"; +import issueBackupKey from "~/utilities/issueBackupKey"; + +import getUser from "../../api/user/getUser"; export default function PersonalSettings() { const [personalEmail, setPersonalEmail] = useState(""); diff --git a/frontend/pages/settings/project/[id].js b/frontend/pages/settings/project/[id].js index 466ff0023..b04f4a81e 100644 --- a/frontend/pages/settings/project/[id].js +++ b/frontend/pages/settings/project/[id].js @@ -1,17 +1,18 @@ -import React, { useState, useRef, useEffect } from "react"; -import { useRouter } from "next/router"; +import React, { useEffect,useRef, useState } from "react"; import Head from "next/head"; - +import { useRouter } from "next/router"; import { faCheck, faPlus } from "@fortawesome/free-solid-svg-icons"; + +import Button from "~/components/basic/buttons/Button"; +import AddServiceTokenDialog from "~/components/basic/dialog/AddServiceTokenDialog"; import InputField from "~/components/basic/InputField"; +import ServiceTokenTable from "~/components/basic/table/ServiceTokenTable"; +import NavHeader from "~/components/navigation/NavHeader"; + +import getServiceTokens from "../../api/serviceToken/getServiceTokens"; +import deleteWorkspace from "../../api/workspace/deleteWorkspace"; import getWorkspaces from "../../api/workspace/getWorkspaces"; import renameWorkspace from "../../api/workspace/renameWorkspace"; -import deleteWorkspace from "../../api/workspace/deleteWorkspace"; -import NavHeader from "~/components/navigation/NavHeader"; -import Button from "~/components/basic/buttons/Button"; -import ServiceTokenTable from "~/components/basic/table/ServiceTokenTable"; -import getServiceTokens from "../../api/serviceToken/getServiceTokens"; -import AddServiceTokenDialog from "~/components/basic/dialog/AddServiceTokenDialog"; export default function SettingsBasic() { const [buttonReady, setButtonReady] = useState(false); diff --git a/frontend/pages/signup.js b/frontend/pages/signup.js index 5ac95a465..24dafed59 100644 --- a/frontend/pages/signup.js +++ b/frontend/pages/signup.js @@ -1,24 +1,24 @@ -import React, { useState, useRef, useEffect } from "react"; -import { useRouter } from "next/router"; - +import React, { useEffect,useRef, useState } from "react"; +import dynamic from "next/dynamic"; import Head from "next/head"; import Image from "next/image"; import Link from "next/link"; -import dynamic from "next/dynamic"; +import { useRouter } from "next/router"; +import { faCheck, faWarning,faX } from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; -import InputField from "~/compoennts/basic/InputField"; -import Error from "~/compoennts/basic/Error"; +import Aes256Gcm from "~/compoennts/aes-256-gcm"; import Button from "~/compoennts/basic/buttons/Button"; -import sendVerificationEmail from "./api/auth/SendVerificationEmail"; +import Error from "~/compoennts/basic/Error"; +import InputField from "~/compoennts/basic/InputField"; +import attemptLogin from "~/compoennts/utilities/attemptLogin"; +import passwordCheck from "~/compoennts/utilities/checks/PasswordCheck"; +import issueBackupKey from "~/compoennts/utilities/issueBackupKey"; + import checkEmailVerificationCode from "./api/auth/CheckEmailVerificationCode"; import completeAccountInformationSignup from "./api/auth/CompleteAccountInformationSignup"; -import Aes256Gcm from "~/compoennts/aes-256-gcm"; -import passwordCheck from "~/compoennts/utilities/checks/PasswordCheck"; +import sendVerificationEmail from "./api/auth/SendVerificationEmail"; import getWorkspaces from "./api/workspace/getWorkspaces"; -import attemptLogin from "~/compoennts/utilities/attemptLogin"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; -import { faCheck, faX, faWarning } from "@fortawesome/free-solid-svg-icons"; -import issueBackupKey from "~/compoennts/utilities/issueBackupKey"; const ReactCodeInput = dynamic(import("react-code-input")); const nacl = require("tweetnacl"); diff --git a/frontend/pages/signupinvite.js b/frontend/pages/signupinvite.js index cb1a10b8a..0f6a5c1c4 100644 --- a/frontend/pages/signupinvite.js +++ b/frontend/pages/signupinvite.js @@ -1,19 +1,19 @@ import React, { useState } from "react"; -import { useRouter } from "next/router"; - import Head from "next/head"; import Image from "next/image"; import Link from "next/link"; - -import InputField from "~/components/basic/InputField"; -import Button from "~/components/basic/buttons/Button"; -import completeAccountInformationSignupInvite from "./api/auth/CompleteAccountInformationSignupInvite"; -import Aes256Gcm from "~/components/aes-256-gcm"; -import passwordCheck from "~/utilities/checks/PasswordCheck"; -import attemptLogin from "~/utilities/attemptLogin"; +import { useRouter } from "next/router"; +import { faCheck, faWarning,faX } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; -import { faCheck, faX, faWarning } from "@fortawesome/free-solid-svg-icons"; + +import Aes256Gcm from "~/components/aes-256-gcm"; +import Button from "~/components/basic/buttons/Button"; +import InputField from "~/components/basic/InputField"; +import attemptLogin from "~/utilities/attemptLogin"; +import passwordCheck from "~/utilities/checks/PasswordCheck"; import issueBackupKey from "~/utilities/issueBackupKey"; + +import completeAccountInformationSignupInvite from "./api/auth/CompleteAccountInformationSignupInvite"; import verifySignupInvite from "./api/auth/VerifySignupInvite"; const nacl = require("tweetnacl"); diff --git a/frontend/pages/users/[id].js b/frontend/pages/users/[id].js index cd341f748..0d1fd7d3d 100644 --- a/frontend/pages/users/[id].js +++ b/frontend/pages/users/[id].js @@ -1,21 +1,22 @@ -import React, { useState, useEffect } from "react"; -import { useRouter } from "next/router"; +import React, { useEffect, useState } from "react"; import Head from "next/head"; import Image from "next/image"; - -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { useRouter } from "next/router"; import { faMagnifyingGlass, faPlus } from "@fortawesome/free-solid-svg-icons"; -import UserTable from "~/components/basic/table/UserTable"; -import getWorkspaceUsers from "../api/workspace/getWorkspaceUsers"; -import guidGenerator from "~/utilities/randomId"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; + +import Button from "~/components/basic/buttons/Button"; import AddProjectMemberDialog from "~/components/basic/dialog/AddProjectMemberDialog"; +import UserTable from "~/components/basic/table/UserTable"; +import NavHeader from "~/components/navigation/NavHeader"; +import guidGenerator from "~/utilities/randomId"; + +import getOrganizationUsers from "../api/organization/GetOrgUsers"; +import getUser from "../api/user/getUser"; // import DeleteUserDialog from '~/components/basic/dialog/DeleteUserDialog'; import addUserToWorkspace from "../api/workspace/addUserToWorkspace"; -import getUser from "../api/user/getUser"; +import getWorkspaceUsers from "../api/workspace/getWorkspaceUsers"; import uploadKeys from "../api/workspace/uploadKeys"; -import getOrganizationUsers from "../api/organization/GetOrgUsers"; -import NavHeader from "~/components/navigation/NavHeader"; -import Button from "~/components/basic/buttons/Button"; // #TODO: Update all the workspaceIds const crypto = require("crypto"); diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 51d255299..4c5103300 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -1555,6 +1555,11 @@ eslint-plugin-react@^7.31.7: semver "^6.3.0" string.prototype.matchall "^4.0.8" +eslint-plugin-simple-import-sort@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-8.0.0.tgz#9d9a2372b0606e999ea841b10458a370a6ccc160" + integrity sha512-bXgJQ+lqhtQBCuWY/FUWdB27j4+lqcvXv5rUARkzbeWLwea+S5eBZEQrhnO+WgX3ZoJHVj0cn943iyXwByHHQw== + eslint-scope@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642"