From 7cf0e3716cd966c0769254878748080244afd9d2 Mon Sep 17 00:00:00 2001 From: April Arcus Date: Wed, 15 Apr 2026 23:04:31 -0700 Subject: [PATCH] annotate type-only imports --- .eslintrc.js | 32 +++++++++++++------ @app/__tests__/helpers.ts | 2 +- @app/client/src/pages/_app.tsx | 2 +- @app/client/src/pages/_document.tsx | 2 +- @app/client/src/pages/_error.tsx | 2 +- .../src/pages/create-organization/index.tsx | 8 ++--- @app/client/src/pages/forgot.tsx | 9 +++--- @app/client/src/pages/index.tsx | 2 +- @app/client/src/pages/invitations/accept.tsx | 14 ++++---- @app/client/src/pages/login.tsx | 11 +++---- @app/client/src/pages/o/[slug]/index.tsx | 6 ++-- .../src/pages/o/[slug]/settings/delete.tsx | 10 +++--- .../src/pages/o/[slug]/settings/index.tsx | 8 ++--- .../src/pages/o/[slug]/settings/members.tsx | 12 +++---- @app/client/src/pages/o/index.tsx | 2 +- @app/client/src/pages/register.tsx | 10 +++--- @app/client/src/pages/reset.tsx | 6 ++-- @app/client/src/pages/settings/accounts.tsx | 4 +-- @app/client/src/pages/settings/delete.tsx | 4 +-- @app/client/src/pages/settings/emails.tsx | 8 ++--- @app/client/src/pages/settings/index.tsx | 8 ++--- @app/client/src/pages/settings/security.tsx | 6 ++-- @app/client/src/pages/verify.tsx | 2 +- @app/components/src/ErrorAlert.tsx | 2 +- @app/components/src/FourOhFour.tsx | 2 +- .../src/OrganizationSettingsLayout.tsx | 2 +- @app/components/src/SettingsLayout.tsx | 6 ++-- @app/components/src/SharedLayout.tsx | 10 ++++-- @app/components/src/SpinPadded.tsx | 5 ++- @app/components/src/StandardWidth.tsx | 2 +- @app/components/src/Text.tsx | 2 +- @app/components/src/organizationHooks.tsx | 4 +-- .../functions/link_or_register_user.test.ts | 2 +- .../app_private/functions/login.test.ts | 2 +- .../functions/really_create_user.test.ts | 2 +- .../functions/change_password.test.ts | 2 +- .../functions/forgot_password.test.ts | 2 +- .../functions/invite_to_organization.test.ts | 2 +- .../functions/reset_password.test.ts | 2 +- .../app_public/tables/user_emails.test.ts | 2 +- @app/db/__tests__/helpers.ts | 6 ++-- @app/lib/src/GraphileApolloLink.ts | 12 +++---- @app/lib/src/errors.ts | 4 +-- @app/lib/src/passwords.ts | 2 +- @app/lib/src/withApollo.tsx | 8 ++--- @app/server/__tests__/helpers.ts | 10 +++--- @app/server/src/app.ts | 8 ++--- @app/server/src/graphile.config.ts | 6 ++-- @app/server/src/index.ts | 4 +-- .../src/middleware/installCSRFProtection.ts | 2 +- .../middleware/installCypressServerCommand.ts | 9 ++++-- .../src/middleware/installDatabasePools.ts | 2 +- .../src/middleware/installErrorHandler.ts | 4 +-- @app/server/src/middleware/installForceSSL.ts | 2 +- @app/server/src/middleware/installHelmet.ts | 3 +- @app/server/src/middleware/installLogging.ts | 2 +- @app/server/src/middleware/installPassport.ts | 2 +- .../src/middleware/installPassportStrategy.ts | 2 +- .../src/middleware/installPostGraphile.ts | 4 +-- @app/server/src/middleware/installSSR.ts | 3 +- .../src/middleware/installSameOrigin.ts | 2 +- @app/server/src/middleware/installSession.ts | 2 +- .../src/middleware/installSharedStatic.ts | 2 +- .../src/middleware/installWorkerUtils.ts | 4 +-- @app/server/src/plugins/Orders.ts | 2 +- .../server/src/plugins/PassportLoginPlugin.ts | 6 ++-- .../server/src/plugins/SubscriptionsPlugin.ts | 15 ++++++--- .../organization_invitations__send_invite.ts | 4 +-- @app/worker/src/tasks/send_email.ts | 2 +- @app/worker/src/tasks/user__audit.ts | 4 +-- .../worker/src/tasks/user__forgot_password.ts | 4 +-- ...ser__forgot_password_unregistered_email.ts | 4 +-- .../tasks/user__send_delete_account_email.ts | 4 +-- .../tasks/user_emails__send_verification.ts | 4 +-- package.json | 2 +- 75 files changed, 201 insertions(+), 176 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 0b8bbb89..bc9698b6 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -77,6 +77,29 @@ module.exports = { "@graphql-eslint/variables-in-allowed-position": "error", }, }, + { + files: ["**/*.{ts,tsx}"], + rules: { + "@typescript-eslint/consistent-type-imports": [ + "error", + { + prefer: "type-imports", + fixStyle: "inline-type-imports", + }, + ], + "@typescript-eslint/no-unused-vars": [ + "error", + { + argsIgnorePattern: "^_", + varsIgnorePattern: "^_", + args: "after-used", + ignoreRestSiblings: true, + }, + ], + "import/consistent-type-specifier-style": ["error", "prefer-inline"], + "import/no-duplicates": ["error", { "prefer-inline": true }], + }, + }, ], parserOptions: { ecmaVersion: 2018, @@ -111,15 +134,6 @@ module.exports = { rules: { "react-hooks/rules-of-hooks": "error", "react-hooks/exhaustive-deps": "error", - "@typescript-eslint/no-unused-vars": [ - "error", - { - argsIgnorePattern: "^_", - varsIgnorePattern: "^_", - args: "after-used", - ignoreRestSiblings: true, - }, - ], "no-unused-expressions": [ "error", { diff --git a/@app/__tests__/helpers.ts b/@app/__tests__/helpers.ts index 409e21d2..363d68a9 100644 --- a/@app/__tests__/helpers.ts +++ b/@app/__tests__/helpers.ts @@ -1,4 +1,4 @@ -import { Pool, PoolClient } from "pg"; +import { Pool, type PoolClient } from "pg"; const pools: { [key: string]: Pool } = {}; diff --git a/@app/client/src/pages/_app.tsx b/@app/client/src/pages/_app.tsx index d511ffeb..288266c0 100644 --- a/@app/client/src/pages/_app.tsx +++ b/@app/client/src/pages/_app.tsx @@ -2,7 +2,7 @@ import "antd/dist/reset.css"; import "nprogress/nprogress.css"; import "../styles.css"; -import { ApolloClient, ApolloProvider } from "@apollo/client"; +import { type ApolloClient, ApolloProvider } from "@apollo/client"; import { setGraphileApp, withApollo } from "@app/lib"; import { ConfigProvider, notification } from "antd"; import App from "next/app"; diff --git a/@app/client/src/pages/_document.tsx b/@app/client/src/pages/_document.tsx index 413c7389..76cbce6f 100644 --- a/@app/client/src/pages/_document.tsx +++ b/@app/client/src/pages/_document.tsx @@ -1,5 +1,5 @@ import Document, { - DocumentContext, + type DocumentContext, Head, Html, Main, diff --git a/@app/client/src/pages/_error.tsx b/@app/client/src/pages/_error.tsx index d7773800..de1ce9b1 100644 --- a/@app/client/src/pages/_error.tsx +++ b/@app/client/src/pages/_error.tsx @@ -7,7 +7,7 @@ import { } from "@app/components"; import { useSharedQuery } from "@app/graphql"; import { Alert, Col, Row } from "antd"; -import { NextPage } from "next"; +import { type NextPage } from "next"; import Link from "next/link"; import * as React from "react"; diff --git a/@app/client/src/pages/create-organization/index.tsx b/@app/client/src/pages/create-organization/index.tsx index b03abd4c..26f41d53 100644 --- a/@app/client/src/pages/create-organization/index.tsx +++ b/@app/client/src/pages/create-organization/index.tsx @@ -1,8 +1,8 @@ import { PageHeader } from "@ant-design/pro-layout"; -import { ApolloError } from "@apollo/client"; +import { type ApolloError } from "@apollo/client"; import { AuthRestrict, Redirect, SharedLayout } from "@app/components"; import { - CreatedOrganizationFragment, + type CreatedOrganizationFragment, useCreateOrganizationMutation, useOrganizationBySlugLazyQuery, useSharedQuery, @@ -15,8 +15,8 @@ import { } from "@app/lib"; import { Alert, Button, Col, Form, Input, Row, Spin, Typography } from "antd"; import { debounce } from "lodash"; -import { NextPage } from "next"; -import { Store } from "rc-field-form/lib/interface"; +import { type NextPage } from "next"; +import { type Store } from "rc-field-form/lib/interface"; import React, { useCallback, useEffect, useMemo, useState } from "react"; import slugify from "slugify"; diff --git a/@app/client/src/pages/forgot.tsx b/@app/client/src/pages/forgot.tsx index 881f9582..d2244a8b 100644 --- a/@app/client/src/pages/forgot.tsx +++ b/@app/client/src/pages/forgot.tsx @@ -1,13 +1,12 @@ import { UserOutlined } from "@ant-design/icons"; -import { ApolloError } from "@apollo/client"; +import { type ApolloError } from "@apollo/client"; import { AuthRestrict, SharedLayout } from "@app/components"; import { useForgotPasswordMutation, useSharedQuery } from "@app/graphql"; import { extractError, getCodeFromError } from "@app/lib"; -import type { InputRef } from "antd"; -import { Alert, Button, Form, Input } from "antd"; -import { NextPage } from "next"; +import { Alert, Button, Form, Input, type InputRef } from "antd"; +import { type NextPage } from "next"; import Link from "next/link"; -import { Store } from "rc-field-form/lib/interface"; +import { type Store } from "rc-field-form/lib/interface"; import React, { useCallback, useEffect, useRef, useState } from "react"; const { useForm } = Form; diff --git a/@app/client/src/pages/index.tsx b/@app/client/src/pages/index.tsx index 744c6bd6..484e613c 100644 --- a/@app/client/src/pages/index.tsx +++ b/@app/client/src/pages/index.tsx @@ -3,7 +3,7 @@ import * as React from "react"; const { Text, Title, Paragraph } = Typography; import { SharedLayout } from "@app/components"; import { useSharedQuery } from "@app/graphql"; -import { NextPage } from "next"; +import { type NextPage } from "next"; // Convenience helper const Li = ({ children, ...props }: any) => ( diff --git a/@app/client/src/pages/invitations/accept.tsx b/@app/client/src/pages/invitations/accept.tsx index a4ac7191..887e2db0 100644 --- a/@app/client/src/pages/invitations/accept.tsx +++ b/@app/client/src/pages/invitations/accept.tsx @@ -1,4 +1,4 @@ -import { QueryResult } from "@apollo/client"; +import { type QueryResult } from "@apollo/client"; import { AuthRestrict, ButtonLink, @@ -8,18 +8,18 @@ import { SpinPadded, } from "@app/components"; import { - InvitationDetailQuery, - InvitationDetailQueryVariables, - SharedLayout_UserFragment, + type InvitationDetailQuery, + type InvitationDetailQueryVariables, + type SharedLayout_UserFragment, useAcceptOrganizationInviteMutation, useInvitationDetailQuery, } from "@app/graphql"; import { getCodeFromError } from "@app/lib"; import { Button, Col, Result, Row, Skeleton } from "antd"; -import { NextPage } from "next"; -import Router, { NextRouter, useRouter } from "next/router"; +import { type NextPage } from "next"; +import Router, { type NextRouter, useRouter } from "next/router"; import * as qs from "querystring"; -import React, { FC } from "react"; +import React, { type FC } from "react"; interface IProps { id: string | null; diff --git a/@app/client/src/pages/login.tsx b/@app/client/src/pages/login.tsx index 58f6c386..d0bff524 100644 --- a/@app/client/src/pages/login.tsx +++ b/@app/client/src/pages/login.tsx @@ -1,5 +1,5 @@ import { LockOutlined, UserAddOutlined, UserOutlined } from "@ant-design/icons"; -import { ApolloError, useApolloClient } from "@apollo/client"; +import { type ApolloError, useApolloClient } from "@apollo/client"; import { AuthRestrict, ButtonLink, @@ -7,7 +7,7 @@ import { Redirect, Row, SharedLayout, - SharedLayoutChildProps, + type SharedLayoutChildProps, SocialLoginOptions, } from "@app/components"; import { useLoginMutation, useSharedQuery } from "@app/graphql"; @@ -16,12 +16,11 @@ import { getCodeFromError, resetWebsocketConnection, } from "@app/lib"; -import type { InputRef } from "antd"; -import { Alert, Button, Form, Input } from "antd"; -import { NextPage } from "next"; +import { Alert, Button, Form, Input, type InputRef } from "antd"; +import { type NextPage } from "next"; import Link from "next/link"; import Router from "next/router"; -import { Store } from "rc-field-form/lib/interface"; +import { type Store } from "rc-field-form/lib/interface"; import React, { useCallback, useEffect, useRef, useState } from "react"; interface LoginProps { diff --git a/@app/client/src/pages/o/[slug]/index.tsx b/@app/client/src/pages/o/[slug]/index.tsx index cd9f497e..37c22ee7 100644 --- a/@app/client/src/pages/o/[slug]/index.tsx +++ b/@app/client/src/pages/o/[slug]/index.tsx @@ -6,12 +6,12 @@ import { useOrganizationSlug, } from "@app/components"; import { - OrganizationPage_OrganizationFragment, + type OrganizationPage_OrganizationFragment, useOrganizationPageQuery, } from "@app/graphql"; import { Col, Empty, Row } from "antd"; -import { NextPage } from "next"; -import React, { FC } from "react"; +import { type NextPage } from "next"; +import React, { type FC } from "react"; const OrganizationPage: NextPage = () => { const slug = useOrganizationSlug(); diff --git a/@app/client/src/pages/o/[slug]/settings/delete.tsx b/@app/client/src/pages/o/[slug]/settings/delete.tsx index 9d635053..a289fe6d 100644 --- a/@app/client/src/pages/o/[slug]/settings/delete.tsx +++ b/@app/client/src/pages/o/[slug]/settings/delete.tsx @@ -1,5 +1,5 @@ import { PageHeader } from "@ant-design/pro-layout"; -import { ApolloError } from "@apollo/client"; +import { type ApolloError } from "@apollo/client"; import { AuthRestrict, ErrorAlert, @@ -10,15 +10,15 @@ import { useOrganizationSlug, } from "@app/components"; import { - OrganizationPage_OrganizationFragment, - SharedLayout_UserFragment, + type OrganizationPage_OrganizationFragment, + type SharedLayout_UserFragment, useDeleteOrganizationMutation, useOrganizationPageQuery, } from "@app/graphql"; import { Alert, Button, message, Popconfirm } from "antd"; -import { NextPage } from "next"; +import { type NextPage } from "next"; import { useRouter } from "next/router"; -import React, { FC, useCallback, useState } from "react"; +import React, { type FC, useCallback, useState } from "react"; const OrganizationSettingsPage: NextPage = () => { const slug = useOrganizationSlug(); diff --git a/@app/client/src/pages/o/[slug]/settings/index.tsx b/@app/client/src/pages/o/[slug]/settings/index.tsx index 9bbcd384..cf325a75 100644 --- a/@app/client/src/pages/o/[slug]/settings/index.tsx +++ b/@app/client/src/pages/o/[slug]/settings/index.tsx @@ -8,16 +8,16 @@ import { useOrganizationSlug, } from "@app/components"; import { - OrganizationPage_OrganizationFragment, + type OrganizationPage_OrganizationFragment, useOrganizationPageQuery, useUpdateOrganizationMutation, } from "@app/graphql"; import { extractError, formItemLayout, tailFormItemLayout } from "@app/lib"; import { Alert, Button, Form, Input, message } from "antd"; -import { NextPage } from "next"; +import { type NextPage } from "next"; import Router, { useRouter } from "next/router"; -import { Store } from "rc-field-form/lib/interface"; -import React, { FC, useCallback, useState } from "react"; +import { type Store } from "rc-field-form/lib/interface"; +import React, { type FC, useCallback, useState } from "react"; const { useForm } = Form; diff --git a/@app/client/src/pages/o/[slug]/settings/members.tsx b/@app/client/src/pages/o/[slug]/settings/members.tsx index 40c817bf..44769309 100644 --- a/@app/client/src/pages/o/[slug]/settings/members.tsx +++ b/@app/client/src/pages/o/[slug]/settings/members.tsx @@ -8,9 +8,9 @@ import { useOrganizationSlug, } from "@app/components"; import { - OrganizationMembers_MembershipFragment, - OrganizationMembers_OrganizationFragment, - SharedLayout_UserFragment, + type OrganizationMembers_MembershipFragment, + type OrganizationMembers_OrganizationFragment, + type SharedLayout_UserFragment, useInviteToOrganizationMutation, useOrganizationMembersQuery, useRemoveFromOrganizationMutation, @@ -29,10 +29,10 @@ import { Typography, } from "antd"; import Text from "antd/lib/typography/Text"; -import { NextPage } from "next"; +import { type NextPage } from "next"; import { useRouter } from "next/router"; -import { Store } from "rc-field-form/lib/interface"; -import React, { FC, useCallback, useState } from "react"; +import { type Store } from "rc-field-form/lib/interface"; +import React, { type FC, useCallback, useState } from "react"; const { useForm } = Form; diff --git a/@app/client/src/pages/o/index.tsx b/@app/client/src/pages/o/index.tsx index 30dcbc26..75d625a3 100644 --- a/@app/client/src/pages/o/index.tsx +++ b/@app/client/src/pages/o/index.tsx @@ -1,4 +1,4 @@ -import { NextPage } from "next"; +import { type NextPage } from "next"; import Router from "next/router"; import React, { useEffect } from "react"; diff --git a/@app/client/src/pages/register.tsx b/@app/client/src/pages/register.tsx index 457c69a1..5faf4dce 100644 --- a/@app/client/src/pages/register.tsx +++ b/@app/client/src/pages/register.tsx @@ -1,5 +1,5 @@ import { QuestionCircleOutlined } from "@ant-design/icons"; -import { ApolloError, useApolloClient } from "@apollo/client"; +import { type ApolloError, useApolloClient } from "@apollo/client"; import { AuthRestrict, PasswordStrength, @@ -16,12 +16,12 @@ import { setPasswordInfo, tailFormItemLayout, } from "@app/lib"; -import { Alert, Button, Form, Input, InputRef, Tooltip } from "antd"; -import { NextPage } from "next"; +import { Alert, Button, Form, Input, type InputRef, Tooltip } from "antd"; +import { type NextPage } from "next"; import Router from "next/router"; -import { Store } from "rc-field-form/lib/interface"; +import { type Store } from "rc-field-form/lib/interface"; import React, { - FocusEvent, + type FocusEvent, useCallback, useEffect, useRef, diff --git a/@app/client/src/pages/reset.tsx b/@app/client/src/pages/reset.tsx index d23b5dc1..5edddf60 100644 --- a/@app/client/src/pages/reset.tsx +++ b/@app/client/src/pages/reset.tsx @@ -9,9 +9,9 @@ import { useResetPasswordMutation, useSharedQuery } from "@app/graphql"; import { formItemLayout, setPasswordInfo, tailFormItemLayout } from "@app/lib"; import { Alert, Button, Form, Input } from "antd"; import get from "lodash/get"; -import { NextPage } from "next"; -import { Store } from "rc-field-form/lib/interface"; -import React, { FocusEvent, useCallback, useState } from "react"; +import { type NextPage } from "next"; +import { type Store } from "rc-field-form/lib/interface"; +import React, { type FocusEvent, useCallback, useState } from "react"; const { useForm } = Form; diff --git a/@app/client/src/pages/settings/accounts.tsx b/@app/client/src/pages/settings/accounts.tsx index 31ed801c..652d70f1 100644 --- a/@app/client/src/pages/settings/accounts.tsx +++ b/@app/client/src/pages/settings/accounts.tsx @@ -9,12 +9,12 @@ import { } from "@app/components"; import { useCurrentUserAuthenticationsQuery, - UserAuthentication, + type UserAuthentication, useSharedQuery, useUnlinkUserAuthenticationMutation, } from "@app/graphql"; import { Avatar, Card, List, Modal, Spin } from "antd"; -import { NextPage } from "next"; +import { type NextPage } from "next"; import React, { useCallback, useState } from "react"; const AUTH_NAME_LOOKUP: Record = { diff --git a/@app/client/src/pages/settings/delete.tsx b/@app/client/src/pages/settings/delete.tsx index f7fcd8b5..020ec9ce 100644 --- a/@app/client/src/pages/settings/delete.tsx +++ b/@app/client/src/pages/settings/delete.tsx @@ -1,5 +1,5 @@ import { PageHeader } from "@ant-design/pro-layout"; -import { ApolloError } from "@apollo/client"; +import { type ApolloError } from "@apollo/client"; import { ErrorAlert, P, SettingsLayout } from "@app/components"; import { useConfirmAccountDeletionMutation, @@ -8,7 +8,7 @@ import { } from "@app/graphql"; import { getCodeFromError } from "@app/lib"; import { Alert, Button, Modal, Typography } from "antd"; -import { NextPage } from "next"; +import { type NextPage } from "next"; import { useRouter } from "next/router"; import React, { useCallback, useState } from "react"; diff --git a/@app/client/src/pages/settings/emails.tsx b/@app/client/src/pages/settings/emails.tsx index 00feee2b..c36c1c95 100644 --- a/@app/client/src/pages/settings/emails.tsx +++ b/@app/client/src/pages/settings/emails.tsx @@ -1,5 +1,5 @@ import { PageHeader } from "@ant-design/pro-layout"; -import { ApolloError } from "@apollo/client"; +import { type ApolloError } from "@apollo/client"; import { ErrorAlert, P, @@ -8,7 +8,7 @@ import { Strong, } from "@app/components"; import { - EmailsForm_UserEmailFragment, + type EmailsForm_UserEmailFragment, useAddEmailMutation, useDeleteEmailMutation, useMakeEmailPrimaryMutation, @@ -22,8 +22,8 @@ import { tailFormItemLayout, } from "@app/lib"; import { Alert, Avatar, Button, Form, Input, List } from "antd"; -import { NextPage } from "next"; -import { Store } from "rc-field-form/lib/interface"; +import { type NextPage } from "next"; +import { type Store } from "rc-field-form/lib/interface"; import React, { useCallback, useState } from "react"; const { useForm } = Form; diff --git a/@app/client/src/pages/settings/index.tsx b/@app/client/src/pages/settings/index.tsx index 181709b7..002dec27 100644 --- a/@app/client/src/pages/settings/index.tsx +++ b/@app/client/src/pages/settings/index.tsx @@ -1,8 +1,8 @@ import { PageHeader } from "@ant-design/pro-layout"; -import { ApolloError } from "@apollo/client"; +import { type ApolloError } from "@apollo/client"; import { ErrorAlert, Redirect, SettingsLayout } from "@app/components"; import { - ProfileSettingsForm_UserFragment, + type ProfileSettingsForm_UserFragment, useSettingsProfileQuery, useUpdateUserMutation, } from "@app/graphql"; @@ -13,8 +13,8 @@ import { tailFormItemLayout, } from "@app/lib"; import { Alert, Button, Form, Input } from "antd"; -import { NextPage } from "next"; -import { Store } from "rc-field-form/lib/interface"; +import { type NextPage } from "next"; +import { type Store } from "rc-field-form/lib/interface"; import React, { useCallback, useState } from "react"; const { useForm } = Form; diff --git a/@app/client/src/pages/settings/security.tsx b/@app/client/src/pages/settings/security.tsx index b0b4c102..012e85a9 100644 --- a/@app/client/src/pages/settings/security.tsx +++ b/@app/client/src/pages/settings/security.tsx @@ -1,5 +1,5 @@ import { PageHeader } from "@ant-design/pro-layout"; -import { ApolloError } from "@apollo/client"; +import { type ApolloError } from "@apollo/client"; import { ErrorAlert, P, @@ -20,9 +20,9 @@ import { tailFormItemLayout, } from "@app/lib"; import { Alert, Button, Form, Input } from "antd"; -import { NextPage } from "next"; +import { type NextPage } from "next"; import Link from "next/link"; -import { Store } from "rc-field-form/lib/interface"; +import { type Store } from "rc-field-form/lib/interface"; import React, { useCallback, useState } from "react"; const { useForm } = Form; diff --git a/@app/client/src/pages/verify.tsx b/@app/client/src/pages/verify.tsx index 6abb587a..772836a2 100644 --- a/@app/client/src/pages/verify.tsx +++ b/@app/client/src/pages/verify.tsx @@ -2,7 +2,7 @@ import { Col, Row, SharedLayout } from "@app/components"; import { useSharedQuery, useVerifyEmailMutation } from "@app/graphql"; import { Alert } from "antd"; import get from "lodash/get"; -import { NextPage } from "next"; +import { type NextPage } from "next"; import React, { useEffect } from "react"; interface IProps { diff --git a/@app/components/src/ErrorAlert.tsx b/@app/components/src/ErrorAlert.tsx index 4705225f..07264298 100644 --- a/@app/components/src/ErrorAlert.tsx +++ b/@app/components/src/ErrorAlert.tsx @@ -1,5 +1,5 @@ import { SyncOutlined } from "@ant-design/icons"; -import { ApolloError } from "@apollo/client"; +import { type ApolloError } from "@apollo/client"; import { Alert, Button, Result, Typography } from "antd"; import React from "react"; diff --git a/@app/components/src/FourOhFour.tsx b/@app/components/src/FourOhFour.tsx index 3b3ad8d9..b2cdd845 100644 --- a/@app/components/src/FourOhFour.tsx +++ b/@app/components/src/FourOhFour.tsx @@ -1,4 +1,4 @@ -import { User } from "@app/graphql"; +import { type User } from "@app/graphql"; import { Result } from "antd"; import React from "react"; diff --git a/@app/components/src/OrganizationSettingsLayout.tsx b/@app/components/src/OrganizationSettingsLayout.tsx index c8315c37..781a8578 100644 --- a/@app/components/src/OrganizationSettingsLayout.tsx +++ b/@app/components/src/OrganizationSettingsLayout.tsx @@ -1,4 +1,4 @@ -import { OrganizationPage_OrganizationFragment } from "@app/graphql"; +import { type OrganizationPage_OrganizationFragment } from "@app/graphql"; import { Layout, Menu, Typography } from "antd"; import Link from "next/link"; import React, { useMemo } from "react"; diff --git a/@app/components/src/SettingsLayout.tsx b/@app/components/src/SettingsLayout.tsx index 38d47753..6c85b599 100644 --- a/@app/components/src/SettingsLayout.tsx +++ b/@app/components/src/SettingsLayout.tsx @@ -1,6 +1,6 @@ import { Layout, Menu, Typography } from "antd"; import Link from "next/link"; -import { NextRouter, useRouter } from "next/router"; +import { type NextRouter, useRouter } from "next/router"; import * as qs from "querystring"; import React from "react"; @@ -9,8 +9,8 @@ import { AuthRestrict, contentMinHeight, SharedLayout, - SharedLayoutChildProps, - SharedLayoutProps, + type SharedLayoutChildProps, + type SharedLayoutProps, } from "./SharedLayout"; import { StandardWidth } from "./StandardWidth"; import { Warn } from "./Warn"; diff --git a/@app/components/src/SharedLayout.tsx b/@app/components/src/SharedLayout.tsx index df38ee8d..844e453b 100644 --- a/@app/components/src/SharedLayout.tsx +++ b/@app/components/src/SharedLayout.tsx @@ -1,9 +1,13 @@ import { CrownOutlined, DownOutlined } from "@ant-design/icons"; -import { ApolloError, QueryResult, useApolloClient } from "@apollo/client"; +import { + type ApolloError, + type QueryResult, + useApolloClient, +} from "@apollo/client"; import { companyName, projectName } from "@app/config"; import { - SharedLayout_QueryFragment, - SharedLayout_UserFragment, + type SharedLayout_QueryFragment, + type SharedLayout_UserFragment, useCurrentUserUpdatedSubscription, useLogoutMutation, } from "@app/graphql"; diff --git a/@app/components/src/SpinPadded.tsx b/@app/components/src/SpinPadded.tsx index f0cd3799..b979202d 100644 --- a/@app/components/src/SpinPadded.tsx +++ b/@app/components/src/SpinPadded.tsx @@ -1,6 +1,5 @@ -import type { SpinProps } from "antd"; -import { Spin } from "antd"; -import React, { FC } from "react"; +import { Spin, type SpinProps } from "antd"; +import React, { type FC } from "react"; export const SpinPadded: FC = (props) => (
` diff --git a/@app/components/src/organizationHooks.tsx b/@app/components/src/organizationHooks.tsx index 87c1bb9f..0217aa6d 100644 --- a/@app/components/src/organizationHooks.tsx +++ b/@app/components/src/organizationHooks.tsx @@ -1,5 +1,5 @@ -import { QueryResult } from "@apollo/client"; -import { OrganizationPage_QueryFragment } from "@app/graphql"; +import { type QueryResult } from "@apollo/client"; +import { type OrganizationPage_QueryFragment } from "@app/graphql"; import { Col, Row } from "antd"; import { useRouter } from "next/router"; import React from "react"; diff --git a/@app/db/__tests__/app_private/functions/link_or_register_user.test.ts b/@app/db/__tests__/app_private/functions/link_or_register_user.test.ts index 8ca19fbe..72c63368 100644 --- a/@app/db/__tests__/app_private/functions/link_or_register_user.test.ts +++ b/@app/db/__tests__/app_private/functions/link_or_register_user.test.ts @@ -1,4 +1,4 @@ -import { PoolClient } from "pg"; +import { type PoolClient } from "pg"; import { snapshotSafe, withRootDb } from "../../helpers"; diff --git a/@app/db/__tests__/app_private/functions/login.test.ts b/@app/db/__tests__/app_private/functions/login.test.ts index e75ce199..83fd1523 100644 --- a/@app/db/__tests__/app_private/functions/login.test.ts +++ b/@app/db/__tests__/app_private/functions/login.test.ts @@ -1,4 +1,4 @@ -import { PoolClient } from "pg"; +import { type PoolClient } from "pg"; import { snapshotSafe, withRootDb } from "../../helpers"; import { reallyCreateUser } from "./really_create_user.test"; diff --git a/@app/db/__tests__/app_private/functions/really_create_user.test.ts b/@app/db/__tests__/app_private/functions/really_create_user.test.ts index bc488a17..5e88998c 100644 --- a/@app/db/__tests__/app_private/functions/really_create_user.test.ts +++ b/@app/db/__tests__/app_private/functions/really_create_user.test.ts @@ -1,4 +1,4 @@ -import { PoolClient } from "pg"; +import { type PoolClient } from "pg"; import { snapshotSafe, withRootDb } from "../../helpers"; diff --git a/@app/db/__tests__/app_public/functions/change_password.test.ts b/@app/db/__tests__/app_public/functions/change_password.test.ts index 60f14dd5..549871a8 100644 --- a/@app/db/__tests__/app_public/functions/change_password.test.ts +++ b/@app/db/__tests__/app_public/functions/change_password.test.ts @@ -1,4 +1,4 @@ -import { PoolClient } from "pg"; +import { type PoolClient } from "pg"; import { asRoot, becomeUser, withRootDb, withUserDb } from "../../helpers"; diff --git a/@app/db/__tests__/app_public/functions/forgot_password.test.ts b/@app/db/__tests__/app_public/functions/forgot_password.test.ts index aab44824..a3337a1b 100644 --- a/@app/db/__tests__/app_public/functions/forgot_password.test.ts +++ b/@app/db/__tests__/app_public/functions/forgot_password.test.ts @@ -1,4 +1,4 @@ -import { PoolClient } from "pg"; +import { type PoolClient } from "pg"; import { clearJobs, createUsers, getJobs, withRootDb } from "../../helpers"; diff --git a/@app/db/__tests__/app_public/functions/invite_to_organization.test.ts b/@app/db/__tests__/app_public/functions/invite_to_organization.test.ts index 2228889b..0e543096 100644 --- a/@app/db/__tests__/app_public/functions/invite_to_organization.test.ts +++ b/@app/db/__tests__/app_public/functions/invite_to_organization.test.ts @@ -1,4 +1,4 @@ -import { PoolClient } from "pg"; +import { type PoolClient } from "pg"; import { createOrganizations, diff --git a/@app/db/__tests__/app_public/functions/reset_password.test.ts b/@app/db/__tests__/app_public/functions/reset_password.test.ts index 67aa85e7..199ad0c2 100644 --- a/@app/db/__tests__/app_public/functions/reset_password.test.ts +++ b/@app/db/__tests__/app_public/functions/reset_password.test.ts @@ -1,4 +1,4 @@ -import { PoolClient } from "pg"; +import { type PoolClient } from "pg"; import { login } from "../../app_private/functions/login.test"; import { createUsers, getJobs, withRootDb } from "../../helpers"; diff --git a/@app/db/__tests__/app_public/tables/user_emails.test.ts b/@app/db/__tests__/app_public/tables/user_emails.test.ts index ff26fdfe..91c1b338 100644 --- a/@app/db/__tests__/app_public/tables/user_emails.test.ts +++ b/@app/db/__tests__/app_public/tables/user_emails.test.ts @@ -1,4 +1,4 @@ -import { PoolClient } from "pg"; +import { type PoolClient } from "pg"; import { asRoot, diff --git a/@app/db/__tests__/helpers.ts b/@app/db/__tests__/helpers.ts index 6d141a8a..09d619bb 100644 --- a/@app/db/__tests__/helpers.ts +++ b/@app/db/__tests__/helpers.ts @@ -1,6 +1,6 @@ -import { getTasks, runTaskListOnce, SharedOptions } from "graphile-worker"; +import { getTasks, runTaskListOnce, type SharedOptions } from "graphile-worker"; import { mapValues } from "lodash"; -import { PoolClient } from "pg"; +import { type PoolClient } from "pg"; import { asRoot, @@ -9,7 +9,7 @@ import { deleteTestData, poolFromUrl, TEST_DATABASE_URL, - User, + type User, } from "../../__tests__/helpers"; /* * We need to inform jest that these files depend on changes to the database, diff --git a/@app/lib/src/GraphileApolloLink.ts b/@app/lib/src/GraphileApolloLink.ts index 40983431..c58caf19 100644 --- a/@app/lib/src/GraphileApolloLink.ts +++ b/@app/lib/src/GraphileApolloLink.ts @@ -1,16 +1,16 @@ import { ApolloLink, - FetchResult, - NextLink, + type FetchResult, + type NextLink, Observable, - Operation, + type Operation, } from "@apollo/client"; -import { Request, Response } from "express"; +import { type Request, type Response } from "express"; import { execute, hookArgs, isAsyncIterable } from "grafast"; import { getOperationAST } from "graphql"; -import type { PostGraphileInstance } from "postgraphile"; +import { type PostGraphileInstance } from "postgraphile"; // augments Grafast.RequestContext with expressv4 -import type {} from "postgraphile/grafserv/express/v4"; +import {} from "postgraphile/grafserv/express/v4"; export interface GraphileApolloLinkInterface { /** The request object. */ diff --git a/@app/lib/src/errors.ts b/@app/lib/src/errors.ts index c253ba04..38e4f0d6 100644 --- a/@app/lib/src/errors.ts +++ b/@app/lib/src/errors.ts @@ -1,5 +1,5 @@ -import { ApolloError } from "@apollo/client"; -import { GraphQLError } from "graphql"; +import { type ApolloError } from "@apollo/client"; +import { type GraphQLError } from "graphql"; export function extractError(error: null): null; export function extractError(error: Error): Error; diff --git a/@app/lib/src/passwords.ts b/@app/lib/src/passwords.ts index e2afc37a..9fcab2ac 100644 --- a/@app/lib/src/passwords.ts +++ b/@app/lib/src/passwords.ts @@ -1,4 +1,4 @@ -import { Store } from "rc-field-form/lib/interface"; +import { type Store } from "rc-field-form/lib/interface"; import zxcvbn from "zxcvbn"; interface ExpectedProps { diff --git a/@app/lib/src/withApollo.tsx b/@app/lib/src/withApollo.tsx index 76fdd1ab..a010b317 100644 --- a/@app/lib/src/withApollo.tsx +++ b/@app/lib/src/withApollo.tsx @@ -1,17 +1,17 @@ import { ApolloClient, ApolloLink, - FetchResult, + type FetchResult, HttpLink, InMemoryCache, Observable, - Operation, + type Operation, split, } from "@apollo/client"; import { onError } from "@apollo/client/link/error"; import { getDataFromTree } from "@apollo/client/react/ssr"; -import { getOperationAST, GraphQLError, print } from "graphql"; -import { Client, createClient } from "graphql-ws"; +import { getOperationAST, type GraphQLError, print } from "graphql"; +import { type Client, createClient } from "graphql-ws"; import { withApollo as withApolloBase } from "next-with-apollo"; import { GraphileApolloLink } from "./GraphileApolloLink"; diff --git a/@app/server/__tests__/helpers.ts b/@app/server/__tests__/helpers.ts index 92f780b2..b9b848bc 100644 --- a/@app/server/__tests__/helpers.ts +++ b/@app/server/__tests__/helpers.ts @@ -1,14 +1,14 @@ import { makeWithPgClientViaPgClientAlreadyInTransaction } from "@dataplan/pg/adaptors/pg"; import { execute, hookArgs } from "grafast"; import { - ExecutionArgs, - ExecutionResult, - GraphQLSchema, + type ExecutionArgs, + type ExecutionResult, + type GraphQLSchema, parse, validate, } from "graphql"; -import { Pool, PoolClient } from "pg"; -import { postgraphile, PostGraphileInstance } from "postgraphile"; +import { Pool, type PoolClient } from "pg"; +import { postgraphile, type PostGraphileInstance } from "postgraphile"; import { createSession, diff --git a/@app/server/src/app.ts b/@app/server/src/app.ts index f9a0ff41..155a6d4e 100644 --- a/@app/server/src/app.ts +++ b/@app/server/src/app.ts @@ -1,10 +1,10 @@ -import express, { Express, NextFunction } from "express"; -import { IncomingMessage, Server, ServerResponse } from "http"; -import { Duplex } from "stream"; +import express, { type Express, type NextFunction } from "express"; +import { type IncomingMessage, type Server, type ServerResponse } from "http"; +import { type Duplex } from "stream"; import { cloudflareIps } from "./cloudflare"; import * as middleware from "./middleware"; -import { makeShutdownActions, ShutdownAction } from "./shutdownActions"; +import { makeShutdownActions, type ShutdownAction } from "./shutdownActions"; import { sanitizeEnv } from "./utils"; // Server may not always be supplied, e.g. where mounting on a sub-route diff --git a/@app/server/src/graphile.config.ts b/@app/server/src/graphile.config.ts index d0a4fb9f..237564e0 100644 --- a/@app/server/src/graphile.config.ts +++ b/@app/server/src/graphile.config.ts @@ -1,10 +1,10 @@ // TODO: import GraphilePro from "@graphile/pro"; // Requires license key import { PgSimplifyInflectionPreset } from "@graphile/simplify-inflection"; -import { Request } from "express"; +import { type Request } from "express"; import { resolve } from "path"; -import { Pool } from "pg"; +import { type Pool } from "pg"; import { makePgService } from "postgraphile/adaptors/pg"; -import type {} from "postgraphile/grafserv/express/v4"; +import {} from "postgraphile/grafserv/express/v4"; import { NodePlugin } from "postgraphile/graphile-build"; import PostGraphileAmberPreset from "postgraphile/presets/amber"; import { makeV4Preset } from "postgraphile/presets/v4"; diff --git a/@app/server/src/index.ts b/@app/server/src/index.ts index d7338b4a..76a38d4b 100644 --- a/@app/server/src/index.ts +++ b/@app/server/src/index.ts @@ -1,7 +1,7 @@ #!/usr/bin/env node /* eslint-disable no-console */ -import { createServer, IncomingMessage } from "http"; -import { Duplex } from "stream"; +import { createServer, type IncomingMessage } from "http"; +import { type Duplex } from "stream"; import { getShutdownActions, getUpgradeHandlers, makeApp } from "./app"; diff --git a/@app/server/src/middleware/installCSRFProtection.ts b/@app/server/src/middleware/installCSRFProtection.ts index 7174fc3e..bfa515f4 100644 --- a/@app/server/src/middleware/installCSRFProtection.ts +++ b/@app/server/src/middleware/installCSRFProtection.ts @@ -1,5 +1,5 @@ import csrf from "csurf"; -import { Express } from "express"; +import { type Express } from "express"; export default (app: Express) => { const csrfProtection = csrf({ diff --git a/@app/server/src/middleware/installCypressServerCommand.ts b/@app/server/src/middleware/installCypressServerCommand.ts index 90cd057c..7b2ecd21 100644 --- a/@app/server/src/middleware/installCypressServerCommand.ts +++ b/@app/server/src/middleware/installCypressServerCommand.ts @@ -1,6 +1,11 @@ import { urlencoded } from "body-parser"; -import { Express, Request, RequestHandler, Response } from "express"; -import { Pool } from "pg"; +import { + type Express, + type Request, + type RequestHandler, + type Response, +} from "express"; +import { type Pool } from "pg"; import { getRootPgPool } from "./installDatabasePools"; diff --git a/@app/server/src/middleware/installDatabasePools.ts b/@app/server/src/middleware/installDatabasePools.ts index dec79f21..d3b9890c 100644 --- a/@app/server/src/middleware/installDatabasePools.ts +++ b/@app/server/src/middleware/installDatabasePools.ts @@ -1,4 +1,4 @@ -import { Express } from "express"; +import { type Express } from "express"; import { Pool } from "pg"; import { getShutdownActions } from "../app"; diff --git a/@app/server/src/middleware/installErrorHandler.ts b/@app/server/src/middleware/installErrorHandler.ts index fb77fe22..7316011e 100644 --- a/@app/server/src/middleware/installErrorHandler.ts +++ b/@app/server/src/middleware/installErrorHandler.ts @@ -1,6 +1,6 @@ -import { ErrorRequestHandler, Express } from "express"; +import { type ErrorRequestHandler, type Express } from "express"; import * as fs from "fs"; -import { template, TemplateExecutor } from "lodash"; +import { template, type TemplateExecutor } from "lodash"; import { resolve } from "path"; const isDev = process.env.NODE_ENV === "development"; diff --git a/@app/server/src/middleware/installForceSSL.ts b/@app/server/src/middleware/installForceSSL.ts index ed590db7..6bd3e70f 100644 --- a/@app/server/src/middleware/installForceSSL.ts +++ b/@app/server/src/middleware/installForceSSL.ts @@ -1,4 +1,4 @@ -import { Express } from "express"; +import { type Express } from "express"; export default (app: Express) => { if (!process.env.ROOT_URL || !process.env.ROOT_URL.startsWith("https://")) { diff --git a/@app/server/src/middleware/installHelmet.ts b/@app/server/src/middleware/installHelmet.ts index 9ce0a88f..2ea599a4 100644 --- a/@app/server/src/middleware/installHelmet.ts +++ b/@app/server/src/middleware/installHelmet.ts @@ -1,4 +1,5 @@ -import { Express } from "express"; +import { type Express } from "express"; +// eslint-disable-next-line import/consistent-type-specifier-style, import/no-duplicates import type { HelmetOptions } from "helmet" with { "resolution-mode": "import", }; diff --git a/@app/server/src/middleware/installLogging.ts b/@app/server/src/middleware/installLogging.ts index 74157053..20c78760 100644 --- a/@app/server/src/middleware/installLogging.ts +++ b/@app/server/src/middleware/installLogging.ts @@ -1,4 +1,4 @@ -import { Express } from "express"; +import { type Express } from "express"; import morgan from "morgan"; const isDev = process.env.NODE_ENV === "development"; diff --git a/@app/server/src/middleware/installPassport.ts b/@app/server/src/middleware/installPassport.ts index 21f0d6e1..3156ad89 100644 --- a/@app/server/src/middleware/installPassport.ts +++ b/@app/server/src/middleware/installPassport.ts @@ -1,4 +1,4 @@ -import { Express } from "express"; +import { type Express } from "express"; import { get } from "lodash"; import passport from "passport"; import { Strategy as GitHubStrategy } from "passport-github2"; diff --git a/@app/server/src/middleware/installPassportStrategy.ts b/@app/server/src/middleware/installPassportStrategy.ts index f20443ef..a992d34d 100644 --- a/@app/server/src/middleware/installPassportStrategy.ts +++ b/@app/server/src/middleware/installPassportStrategy.ts @@ -1,4 +1,4 @@ -import { Express, Request, RequestHandler } from "express"; +import { type Express, type Request, type RequestHandler } from "express"; import passport from "passport"; import { getRootPgPool } from "./installDatabasePools"; diff --git a/@app/server/src/middleware/installPostGraphile.ts b/@app/server/src/middleware/installPostGraphile.ts index dd3d3139..8697b3ce 100644 --- a/@app/server/src/middleware/installPostGraphile.ts +++ b/@app/server/src/middleware/installPostGraphile.ts @@ -1,6 +1,6 @@ -import { Express, Request, Response } from "express"; +import { type Express, type Request, type Response } from "express"; import { ServerResponse } from "http"; -import { OutgoingHttpHeaders } from "http2"; +import { type OutgoingHttpHeaders } from "http2"; import { postgraphile } from "postgraphile"; import { grafserv } from "postgraphile/grafserv/express/v4"; diff --git a/@app/server/src/middleware/installSSR.ts b/@app/server/src/middleware/installSSR.ts index 8a8e4c93..52ac1795 100644 --- a/@app/server/src/middleware/installSSR.ts +++ b/@app/server/src/middleware/installSSR.ts @@ -1,7 +1,8 @@ +// eslint-disable-next-line import/consistent-type-specifier-style, import/no-duplicates import type { GraphileApp } from "@app/lib" with { "resolution-mode": "import", }; -import { Express } from "express"; +import { type Express } from "express"; import { createServer } from "http"; import next from "next"; diff --git a/@app/server/src/middleware/installSameOrigin.ts b/@app/server/src/middleware/installSameOrigin.ts index 6b2a43f6..11742340 100644 --- a/@app/server/src/middleware/installSameOrigin.ts +++ b/@app/server/src/middleware/installSameOrigin.ts @@ -1,4 +1,4 @@ -import { Express, RequestHandler } from "express"; +import { type Express, type RequestHandler } from "express"; import { getWebsocketMiddlewares } from "../app"; diff --git a/@app/server/src/middleware/installSession.ts b/@app/server/src/middleware/installSession.ts index dbd79cd3..477232c7 100644 --- a/@app/server/src/middleware/installSession.ts +++ b/@app/server/src/middleware/installSession.ts @@ -1,6 +1,6 @@ import ConnectPgSimple from "connect-pg-simple"; import RedisStore from "connect-redis"; -import { Express, RequestHandler } from "express"; +import { type Express, type RequestHandler } from "express"; import session from "express-session"; import * as redis from "redis"; diff --git a/@app/server/src/middleware/installSharedStatic.ts b/@app/server/src/middleware/installSharedStatic.ts index 790a7999..c98d3468 100644 --- a/@app/server/src/middleware/installSharedStatic.ts +++ b/@app/server/src/middleware/installSharedStatic.ts @@ -1,4 +1,4 @@ -import { Express, static as staticMiddleware } from "express"; +import { type Express, static as staticMiddleware } from "express"; export default (app: Express) => { app.use(staticMiddleware(`${__dirname}/../../public`)); diff --git a/@app/server/src/middleware/installWorkerUtils.ts b/@app/server/src/middleware/installWorkerUtils.ts index ce5e4b5a..0c39b226 100644 --- a/@app/server/src/middleware/installWorkerUtils.ts +++ b/@app/server/src/middleware/installWorkerUtils.ts @@ -1,5 +1,5 @@ -import { Express } from "express"; -import { makeWorkerUtils, WorkerUtils } from "graphile-worker"; +import { type Express } from "express"; +import { makeWorkerUtils, type WorkerUtils } from "graphile-worker"; import { getRootPgPool } from "./installDatabasePools"; diff --git a/@app/server/src/plugins/Orders.ts b/@app/server/src/plugins/Orders.ts index de685b91..a3880d18 100644 --- a/@app/server/src/plugins/Orders.ts +++ b/@app/server/src/plugins/Orders.ts @@ -1,5 +1,5 @@ import { addPgTableOrderBy, orderByAscDesc } from "graphile-utils"; -import type { SQL } from "pg-sql2"; +import { type SQL } from "pg-sql2"; export default addPgTableOrderBy( { schemaName: "app_public", tableName: "organization_memberships" }, diff --git a/@app/server/src/plugins/PassportLoginPlugin.ts b/@app/server/src/plugins/PassportLoginPlugin.ts index 18c441fc..29d6dd08 100644 --- a/@app/server/src/plugins/PassportLoginPlugin.ts +++ b/@app/server/src/plugins/PassportLoginPlugin.ts @@ -1,7 +1,5 @@ -import type { ExecutableStep } from "grafast"; -import { access } from "grafast"; -import type { ObjectResolver } from "graphile-utils"; -import { extendSchema, gql } from "graphile-utils"; +import { access, type ExecutableStep } from "grafast"; +import { extendSchema, gql, type ObjectResolver } from "graphile-utils"; import { ERROR_MESSAGE_OVERRIDES } from "../utils/handleErrors"; diff --git a/@app/server/src/plugins/SubscriptionsPlugin.ts b/@app/server/src/plugins/SubscriptionsPlugin.ts index ff564fd2..dfb247bc 100644 --- a/@app/server/src/plugins/SubscriptionsPlugin.ts +++ b/@app/server/src/plugins/SubscriptionsPlugin.ts @@ -1,9 +1,14 @@ -import type { JSONValue } from "@dataplan/json"; -import { jsonParse } from "@dataplan/json"; -import type { ExecutableStep } from "grafast"; -import { access, context, lambda, listen, SafeError } from "grafast"; +import { jsonParse, type JSONValue } from "@dataplan/json"; +import { + access, + context, + type ExecutableStep, + lambda, + listen, + SafeError, +} from "grafast"; import { extendSchema, gql } from "graphile-utils"; -import type { Pool } from "pg"; +import { type Pool } from "pg"; /* * PG NOTIFY events are sent via a channel, this function helps us determine diff --git a/@app/worker/src/tasks/organization_invitations__send_invite.ts b/@app/worker/src/tasks/organization_invitations__send_invite.ts index 0556e0a8..cdb0b5a7 100644 --- a/@app/worker/src/tasks/organization_invitations__send_invite.ts +++ b/@app/worker/src/tasks/organization_invitations__send_invite.ts @@ -1,6 +1,6 @@ -import { Task } from "graphile-worker"; +import { type Task } from "graphile-worker"; -import { SendEmailPayload } from "./send_email"; +import { type SendEmailPayload } from "./send_email"; interface OrganizationInvitationSendInvitePayload { /** diff --git a/@app/worker/src/tasks/send_email.ts b/@app/worker/src/tasks/send_email.ts index 72eeccc8..5831f600 100644 --- a/@app/worker/src/tasks/send_email.ts +++ b/@app/worker/src/tasks/send_email.ts @@ -4,7 +4,7 @@ import { projectName, } from "@app/config"; import { promises as fsp } from "fs"; -import { Task } from "graphile-worker"; +import { type Task } from "graphile-worker"; import { htmlToText } from "html-to-text"; import { template as lodashTemplate } from "lodash"; import mjml2html from "mjml"; diff --git a/@app/worker/src/tasks/user__audit.ts b/@app/worker/src/tasks/user__audit.ts index 1739fb6e..db71e24c 100644 --- a/@app/worker/src/tasks/user__audit.ts +++ b/@app/worker/src/tasks/user__audit.ts @@ -1,7 +1,7 @@ import { projectName } from "@app/config"; -import { Task } from "graphile-worker"; +import { type Task } from "graphile-worker"; -import { SendEmailPayload } from "./send_email"; +import { type SendEmailPayload } from "./send_email"; /* For tracking account actions */ diff --git a/@app/worker/src/tasks/user__forgot_password.ts b/@app/worker/src/tasks/user__forgot_password.ts index c474cb34..072ecdf3 100644 --- a/@app/worker/src/tasks/user__forgot_password.ts +++ b/@app/worker/src/tasks/user__forgot_password.ts @@ -1,6 +1,6 @@ -import { Task } from "graphile-worker"; +import { type Task } from "graphile-worker"; -import { SendEmailPayload } from "./send_email"; +import { type SendEmailPayload } from "./send_email"; interface UserForgotPasswordPayload { /** diff --git a/@app/worker/src/tasks/user__forgot_password_unregistered_email.ts b/@app/worker/src/tasks/user__forgot_password_unregistered_email.ts index 4891180b..e2399798 100644 --- a/@app/worker/src/tasks/user__forgot_password_unregistered_email.ts +++ b/@app/worker/src/tasks/user__forgot_password_unregistered_email.ts @@ -1,7 +1,7 @@ import { projectName } from "@app/config"; -import { Task } from "graphile-worker"; +import { type Task } from "graphile-worker"; -import { SendEmailPayload } from "./send_email"; +import { type SendEmailPayload } from "./send_email"; interface UserForgotPasswordUnregisteredEmailPayload { email: string; diff --git a/@app/worker/src/tasks/user__send_delete_account_email.ts b/@app/worker/src/tasks/user__send_delete_account_email.ts index b2ad4bb2..df639c67 100644 --- a/@app/worker/src/tasks/user__send_delete_account_email.ts +++ b/@app/worker/src/tasks/user__send_delete_account_email.ts @@ -1,6 +1,6 @@ -import { Task } from "graphile-worker"; +import { type Task } from "graphile-worker"; -import { SendEmailPayload } from "./send_email"; +import { type SendEmailPayload } from "./send_email"; interface UserSendAccountDeletionEmailPayload { /** diff --git a/@app/worker/src/tasks/user_emails__send_verification.ts b/@app/worker/src/tasks/user_emails__send_verification.ts index ee21edbd..ef30fa23 100644 --- a/@app/worker/src/tasks/user_emails__send_verification.ts +++ b/@app/worker/src/tasks/user_emails__send_verification.ts @@ -1,6 +1,6 @@ -import { Task } from "graphile-worker"; +import { type Task } from "graphile-worker"; -import { SendEmailPayload } from "./send_email"; +import { type SendEmailPayload } from "./send_email"; // At least 3 minutes between resending email verifications const MIN_INTERVAL = 1000 * 60 * 3; diff --git a/package.json b/package.json index c237e88f..b04af45b 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "lint:fix": "yarn eslint --fix . && yarn prettier:all --write", "eslint": "eslint --ext .js,.jsx,.ts,.tsx,.graphql", "prettier:all": "prettier --ignore-path .eslintignore \"**/*.{js,jsx,ts,tsx,graphql,md}\"", - "depcheck": "yarn workspaces foreach --verbose --topological --exclude ROOT --exclude docker-helpers exec depcheck --ignores=\"@app/config,@app/client,@app/lib,tslib,webpack,babel-plugin-import,source-map-support,@graphql-codegen/*,*eslint*,@typescript-eslint/*,graphql-toolkit,net,tls,dayjs,@types/jest,babel-jest,jest,mock-req,mock-res,nodemon,ts-jest,ts-loader,ts-node,update-dotenv,mkdirp,@types/helmet,helmet\" --ignore-dirs=\".next\"", + "depcheck": "yarn workspaces foreach --verbose --topological --exclude ROOT --exclude docker-helpers exec depcheck --ignores=\"@app/config,@app/client,@app/lib,tslib,webpack,babel-plugin-import,source-map-support,@graphql-codegen/*,*eslint*,@typescript-eslint/*,graphql-toolkit,net,tls,dayjs,@types/jest,babel-jest,jest,mock-req,mock-res,nodemon,ts-jest,ts-loader,ts-node,update-dotenv,mkdirp,@types/helmet,helmet,express\" --ignore-dirs=\".next\"", "dev": "yarn && yarn workspaces foreach --verbose --topological --exclude ROOT --exclude docker-helpers run codegen && tsc -b && concurrently --kill-others --names \"TSC,WATCH,RUN,TEST\" --prefix \"({name})\" --prefix-colors \"yellow.bold,yellow.bold,cyan.bold,greenBright.bold\" \"tsc -b --watch --preserveWatchOutput\" \"yarn workspaces foreach --verbose --parallel --interlaced --exclude ROOT --exclude docker-helpers run watch\" \"yarn workspaces foreach --verbose --parallel --interlaced --exclude ROOT --exclude docker-helpers run dev\" \"yarn test:watch --delay 10\"", "build": "yarn workspaces foreach --verbose --topological --exclude ROOT --exclude docker-helpers run build", "clean": "node ./scripts/clean.js",