diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000000..ea887a3d50 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,3 @@ +node_modules +dist +.next diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000000..a7ec440e36 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,64 @@ +module.exports = { + root: true, + settings: { + react: { + version: '18', + }, + next: { + rootDir: 'apps/web', + }, + }, + extends: [ + 'eslint:recommended', + 'plugin:react/recommended', + 'plugin:@typescript-eslint/recommended', + ], + parser: '@typescript-eslint/parser', + parserOptions: { + ecmaFeatures: { + globalReturn: false, + impliedStrict: true, + jsx: true, + }, + ecmaVersion: 'latest', + sourceType: 'module', + }, + plugins: [ + 'react', + '@typescript-eslint', + 'simple-import-sort', + 'import', + 'unused-imports', + ], + rules: { + 'no-undef': 'off', + 'no-empty': 'off', + 'no-func-assign': 'off', + 'no-cond-assign': 'off', + 'react/react-in-jsx-scope': 'off', + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-empty-function': 'off', + '@typescript-eslint/no-unused-vars': 'off', + 'simple-import-sort/imports': 'error', + 'simple-import-sort/exports': 'error', + '@typescript-eslint/ban-ts-comment': 0, + '@typescript-eslint/no-restricted-imports': [ + 'error', + { + patterns: [ + { + group: ['**/dist'], + message: "Don't import from dist", + allowTypeImports: false, + }, + { + group: ['**/src'], + message: "Don't import from src", + allowTypeImports: false, + }, + ], + }, + ], + }, +}; diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 48b853bf24..084b70fed8 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -36,31 +36,9 @@ "@types/node": "^18.11.17", "@types/react": "^18.0.26", "@types/react-dom": "^18.0.9", - "@typescript-eslint/eslint-plugin": "5.47.0", - "@typescript-eslint/parser": "5.47.0", "concurrently": "^7.6.0", "cross-env": "^7.0.3", "esbuild": "^0.16.10", - "eslint": "8.30.0", - "eslint-config-prettier": "8.5.0", - "eslint-config-standard": "^17.0.0", - "eslint-config-standard-with-typescript": "24.0.0", - "eslint-import-resolver-alias": "1.1.2", - "eslint-import-resolver-typescript": "3.5.2", - "eslint-plugin-autofix": "1.1.0", - "eslint-plugin-html": "7.1.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.6.0", - "eslint-plugin-node": "11.1.0", - "eslint-plugin-prettier": "4.2.1", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-react": "7.31.11", - "eslint-plugin-react-hooks": "4.6.0", - "eslint-plugin-security": "1.5.0", - "eslint-plugin-security-node": "1.1.1", - "eslint-plugin-typescript-sort-keys": "2.1.0", - "eslint-plugin-unicorn": "45.0.2", - "eslint-plugin-unused-imports": "2.0.0", "prettier": "2.8.1", "rimraf": "^3.0.2", "typescript": "^4.9.4", diff --git a/apps/desktop/src/preload/components/enable-workspace-modal/index.tsx b/apps/desktop/src/preload/components/enable-workspace-modal/index.tsx index 0d91467e71..422290db49 100644 --- a/apps/desktop/src/preload/components/enable-workspace-modal/index.tsx +++ b/apps/desktop/src/preload/components/enable-workspace-modal/index.tsx @@ -1,12 +1,14 @@ import { Modal, ModalWrapper } from '@affine/component'; import { IconButton } from '@affine/component'; -import { useTranslation } from '@affine/i18n'; -import { useCallback, useState } from 'react'; -import router from 'next/router'; import { toast } from '@affine/component'; +import { useTranslation } from '@affine/i18n'; import { CloseIcon } from '@blocksuite/icons'; +import router from 'next/router'; +import { useCallback, useState } from 'react'; + import { useGlobalState } from '@/store/app'; -import { Header, Content, ContentTitle, StyleTips, StyleButton } from './style'; + +import { Content, ContentTitle, Header, StyleButton, StyleTips } from './style'; interface EnableWorkspaceModalProps { open: boolean; diff --git a/apps/desktop/src/preload/components/icons/index.tsx b/apps/desktop/src/preload/components/icons/index.tsx index 0829454b99..681d03616b 100644 --- a/apps/desktop/src/preload/components/icons/index.tsx +++ b/apps/desktop/src/preload/components/icons/index.tsx @@ -1,8 +1,8 @@ import { - JoinedWorkspaceIcon as DefaultJoinedWorkspaceIcon, - LocalWorkspaceIcon as DefaultLocalWorkspaceIcon, CloudWorkspaceIcon as DefaultCloudWorkspaceIcon, + JoinedWorkspaceIcon as DefaultJoinedWorkspaceIcon, LocalDataIcon as DefaultLocalDataIcon, + LocalWorkspaceIcon as DefaultLocalWorkspaceIcon, PublishIcon as DefaultPublishIcon, } from '@blocksuite/icons'; diff --git a/apps/web/.eslintrc b/apps/web/.eslintrc new file mode 100644 index 0000000000..e2081ec106 --- /dev/null +++ b/apps/web/.eslintrc @@ -0,0 +1,4 @@ +{ + "root": false, + "extends": "next/core-web-vitals" +} diff --git a/apps/web/package.json b/apps/web/package.json index 25361042a8..b4915a8c4e 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -47,10 +47,7 @@ "@types/react-dom": "18.0.6", "@types/wicg-file-system-access": "^2020.9.5", "chalk": "^4.1.2", - "eslint": "8.22.0", "eslint-config-next": "12.3.1", - "eslint-config-prettier": "^8.5.0", - "eslint-plugin-prettier": "^4.2.1", "raw-loader": "^4.0.2", "typescript": "^4.9.5" }, diff --git a/apps/web/scripts/__tests__/printer.spec.ts b/apps/web/scripts/__tests__/printer.spec.ts index c3f1d27fcc..4a7716d4c5 100644 --- a/apps/web/scripts/__tests__/printer.spec.ts +++ b/apps/web/scripts/__tests__/printer.spec.ts @@ -1,5 +1,7 @@ -import { test, expect } from '@playwright/test'; +import { expect, test } from '@playwright/test'; + import { printer } from './../printer'; +// eslint-disable-next-line @typescript-eslint/no-var-requires const chalk = require('chalk'); test.describe('printer', () => { test('test debug', () => { diff --git a/apps/web/scripts/gitInfo.js b/apps/web/scripts/gitInfo.js index 9e650ed49d..becc95e59e 100644 --- a/apps/web/scripts/gitInfo.js +++ b/apps/web/scripts/gitInfo.js @@ -1,6 +1,7 @@ // @ts-check // import { execSync } from 'child_process' +// eslint-disable-next-line @typescript-eslint/no-var-requires const { execSync } = require('child_process'); const hasGit = () => { diff --git a/apps/web/scripts/printer.js b/apps/web/scripts/printer.js index 8853819ed5..ea86acc91e 100644 --- a/apps/web/scripts/printer.js +++ b/apps/web/scripts/printer.js @@ -1,3 +1,4 @@ +// eslint-disable-next-line @typescript-eslint/no-var-requires const chalk = require('chalk'); const printer = { debug: msg => { diff --git a/apps/web/src/components/404/index.tsx b/apps/web/src/components/404/index.tsx index 55b04dbe70..270c7ed781 100644 --- a/apps/web/src/components/404/index.tsx +++ b/apps/web/src/components/404/index.tsx @@ -1,7 +1,8 @@ -import { NotFoundTitle, PageContainer } from './styles'; -import { useTranslation } from '@affine/i18n'; import { Button } from '@affine/component'; +import { useTranslation } from '@affine/i18n'; import { useRouter } from 'next/router'; + +import { NotFoundTitle, PageContainer } from './styles'; export const NotfoundPage = () => { const { t } = useTranslation(); const router = useRouter(); diff --git a/apps/web/src/components/contact-modal/index.tsx b/apps/web/src/components/contact-modal/index.tsx index fdade2b7a8..759df8a212 100644 --- a/apps/web/src/components/contact-modal/index.tsx +++ b/apps/web/src/components/contact-modal/index.tsx @@ -1,29 +1,31 @@ import { Modal, ModalCloseButton, ModalWrapper } from '@affine/component'; -import { - LogoIcon, - DocIcon, - TwitterIcon, - GithubIcon, - DiscordIcon, - TelegramIcon, - RedditIcon, - LinkIcon, -} from './Icons'; +import { useTranslation } from '@affine/i18n'; + +import bg from '@/components/contact-modal/bg.png'; + import logo from './affine-text-logo.png'; +import { + DiscordIcon, + DocIcon, + GithubIcon, + LinkIcon, + LogoIcon, + RedditIcon, + TelegramIcon, + TwitterIcon, +} from './Icons'; import { StyledBigLink, - StyledSmallLink, - StyledSubTitle, - StyledLeftContainer, - StyledRightContainer, StyledContent, + StyledLeftContainer, StyledLogo, + StyledModalFooter, StyledModalHeader, StyledModalHeaderLeft, - StyledModalFooter, + StyledRightContainer, + StyledSmallLink, + StyledSubTitle, } from './style'; -import bg from '@/components/contact-modal/bg.png'; -import { useTranslation } from '@affine/i18n'; const linkList = [ { icon: , diff --git a/apps/web/src/components/create-workspace/index.tsx b/apps/web/src/components/create-workspace/index.tsx index e937d48110..e20ef4954e 100644 --- a/apps/web/src/components/create-workspace/index.tsx +++ b/apps/web/src/components/create-workspace/index.tsx @@ -1,13 +1,14 @@ import { styled } from '@affine/component'; -import { Modal, ModalWrapper, ModalCloseButton } from '@affine/component'; +import { Modal, ModalCloseButton, ModalWrapper } from '@affine/component'; import { Button } from '@affine/component'; -import { useRef, useState } from 'react'; import { Input } from '@affine/component'; -import { KeyboardEvent } from 'react'; -import { useTranslation } from '@affine/i18n'; -import { useWorkspaceHelper } from '@/hooks/use-workspace-helper'; -import { useRouter } from 'next/router'; import { toast } from '@affine/component'; +import { useTranslation } from '@affine/i18n'; +import { useRouter } from 'next/router'; +import { useRef, useState } from 'react'; +import { KeyboardEvent } from 'react'; + +import { useWorkspaceHelper } from '@/hooks/use-workspace-helper'; interface ModalProps { open: boolean; diff --git a/apps/web/src/components/delete-workspace/index.tsx b/apps/web/src/components/delete-workspace/index.tsx index 51418532af..586354913d 100644 --- a/apps/web/src/components/delete-workspace/index.tsx +++ b/apps/web/src/components/delete-workspace/index.tsx @@ -1,5 +1,5 @@ import { styled } from '@affine/component'; -import { Modal, ModalWrapper, ModalCloseButton } from '@affine/component'; +import { Modal, ModalCloseButton, ModalWrapper } from '@affine/component'; import { Button } from '@affine/component'; import { Input } from '@affine/component'; import { useState } from 'react'; diff --git a/apps/web/src/components/edgeless-toolbar/index.tsx b/apps/web/src/components/edgeless-toolbar/index.tsx index 07db5646a5..3c1b7fca8b 100644 --- a/apps/web/src/components/edgeless-toolbar/index.tsx +++ b/apps/web/src/components/edgeless-toolbar/index.tsx @@ -1,26 +1,28 @@ -import { useState, useEffect } from 'react'; -import { - StyledEdgelessToolbar, - StyledToolbarWrapper, - StyledToolbarItem, -} from './style'; -import { - SelectIcon, - TextIcon, - ShapeIcon, - PenIcon, - StickerIcon, - ConnectorIcon, - UndoIcon, - RedoIcon, -} from './Icons'; import { MuiSlide } from '@affine/component'; import { Tooltip } from '@affine/component'; +import { useTranslation } from '@affine/i18n'; +import { useEffect, useState } from 'react'; + import useCurrentPageMeta from '@/hooks/use-current-page-meta'; import useHistoryUpdated from '@/hooks/use-history-update'; -import { useTranslation } from '@affine/i18n'; import { useGlobalState } from '@/store/app'; +import { + ConnectorIcon, + PenIcon, + RedoIcon, + SelectIcon, + ShapeIcon, + StickerIcon, + TextIcon, + UndoIcon, +} from './Icons'; +import { + StyledEdgelessToolbar, + StyledToolbarItem, + StyledToolbarWrapper, +} from './style'; + const useToolbarList1 = () => { const { t } = useTranslation(); return [ diff --git a/apps/web/src/components/edgeless-toolbar/style.ts b/apps/web/src/components/edgeless-toolbar/style.ts index 31d2fbbddf..920ded54ff 100644 --- a/apps/web/src/components/edgeless-toolbar/style.ts +++ b/apps/web/src/components/edgeless-toolbar/style.ts @@ -1,4 +1,4 @@ -import { styled, displayFlex } from '@affine/component'; +import { displayFlex, styled } from '@affine/component'; export const StyledEdgelessToolbar = styled.div(({ theme }) => ({ height: '320px', diff --git a/apps/web/src/components/editor-mode-switch/index.tsx b/apps/web/src/components/editor-mode-switch/index.tsx index 5fe4217c3e..4a2c1751fa 100644 --- a/apps/web/src/components/editor-mode-switch/index.tsx +++ b/apps/web/src/components/editor-mode-switch/index.tsx @@ -1,21 +1,23 @@ -import React, { useState, useEffect, cloneElement } from 'react'; -import { - StyledAnimateRadioContainer, - StyledMiddleLine, - StyledRadioItem, - StyledLabel, - StyledIcon, -} from './style'; -import type { - RadioItemStatus, - AnimateRadioProps, - AnimateRadioItemProps, -} from './type'; -import { useTheme } from '@/providers/ThemeProvider'; -import { EdgelessIcon, PaperIcon } from './Icons'; +import { useTranslation } from '@affine/i18n'; +import React, { cloneElement, useEffect, useState } from 'react'; + import useCurrentPageMeta from '@/hooks/use-current-page-meta'; import { usePageHelper } from '@/hooks/use-page-helper'; -import { useTranslation } from '@affine/i18n'; +import { useTheme } from '@/providers/ThemeProvider'; + +import { EdgelessIcon, PaperIcon } from './Icons'; +import { + StyledAnimateRadioContainer, + StyledIcon, + StyledLabel, + StyledMiddleLine, + StyledRadioItem, +} from './style'; +import type { + AnimateRadioItemProps, + AnimateRadioProps, + RadioItemStatus, +} from './type'; const PaperItem = ({ active }: { active?: boolean }) => { const { theme: { diff --git a/apps/web/src/components/editor-mode-switch/style.ts b/apps/web/src/components/editor-mode-switch/style.ts index bb9a7d5df0..300c44fe1f 100644 --- a/apps/web/src/components/editor-mode-switch/style.ts +++ b/apps/web/src/components/editor-mode-switch/style.ts @@ -2,6 +2,7 @@ import { displayFlex, keyframes, styled } from '@affine/component'; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore import spring, { toString } from 'css-spring'; + import type { ItemStatus } from './type'; const ANIMATE_DURATION = 500; diff --git a/apps/web/src/components/editor/index.tsx b/apps/web/src/components/editor/index.tsx index e794fde04f..b190324294 100644 --- a/apps/web/src/components/editor/index.tsx +++ b/apps/web/src/components/editor/index.tsx @@ -1,8 +1,9 @@ -import { useEffect, useRef } from 'react'; -import type { Page, Workspace } from '@blocksuite/store'; import '@blocksuite/blocks'; -import { EditorContainer } from '@blocksuite/editor'; + import { styled } from '@affine/component'; +import { EditorContainer } from '@blocksuite/editor'; +import type { Page, Workspace } from '@blocksuite/store'; +import { useEffect, useRef } from 'react'; const StyledEditorContainer = styled('div')(() => { return { diff --git a/apps/web/src/components/enable-workspace-modal/index.tsx b/apps/web/src/components/enable-workspace-modal/index.tsx index 12a6367d43..7d9c696ae1 100644 --- a/apps/web/src/components/enable-workspace-modal/index.tsx +++ b/apps/web/src/components/enable-workspace-modal/index.tsx @@ -3,9 +3,11 @@ import { useTranslation } from '@affine/i18n'; import { CloseIcon } from '@blocksuite/icons'; import { useRouter } from 'next/router'; import { useCallback, useState } from 'react'; -import { Content, ContentTitle, Header, StyleButton, StyleTips } from './style'; + import { useGlobalState } from '@/store/app'; +import { Content, ContentTitle, Header, StyleButton, StyleTips } from './style'; + interface EnableWorkspaceModalProps { open: boolean; onClose: () => void; diff --git a/apps/web/src/components/file-upload/index.tsx b/apps/web/src/components/file-upload/index.tsx index 35db5abc6b..d79c9faa81 100644 --- a/apps/web/src/components/file-upload/index.tsx +++ b/apps/web/src/components/file-upload/index.tsx @@ -1,7 +1,7 @@ import { Button } from '@affine/component'; -import { FC, useRef, ChangeEvent, ReactElement } from 'react'; import { styled } from '@affine/component'; import { useTranslation } from '@affine/i18n'; +import { ChangeEvent, FC, ReactElement, useRef } from 'react'; interface Props { uploadType?: string; children?: ReactElement; diff --git a/apps/web/src/components/header/EditorHeader.tsx b/apps/web/src/components/header/EditorHeader.tsx index 902f08ba3f..9134132795 100644 --- a/apps/web/src/components/header/EditorHeader.tsx +++ b/apps/web/src/components/header/EditorHeader.tsx @@ -1,17 +1,19 @@ +import { Content } from '@affine/component'; import React, { useEffect, useState } from 'react'; + +import EditorModeSwitch from '@/components/editor-mode-switch'; +import useCurrentPageMeta from '@/hooks/use-current-page-meta'; +import usePropsUpdated from '@/hooks/use-props-updated'; +import { useGlobalState } from '@/store/app'; + +import Header from './Header'; +import QuickSearchButton from './QuickSearchButton'; import { StyledSearchArrowWrapper, StyledSwitchWrapper, StyledTitle, StyledTitleWrapper, } from './styles'; -import { Content } from '@affine/component'; -import EditorModeSwitch from '@/components/editor-mode-switch'; -import QuickSearchButton from './QuickSearchButton'; -import Header from './Header'; -import usePropsUpdated from '@/hooks/use-props-updated'; -import useCurrentPageMeta from '@/hooks/use-current-page-meta'; -import { useGlobalState } from '@/store/app'; export const EditorHeader = () => { const [title, setTitle] = useState(''); diff --git a/apps/web/src/components/header/Header.tsx b/apps/web/src/components/header/Header.tsx index 4f4f86afc7..1190d937ab 100644 --- a/apps/web/src/components/header/Header.tsx +++ b/apps/web/src/components/header/Header.tsx @@ -1,17 +1,18 @@ +import { CloseIcon } from '@blocksuite/icons'; import React, { PropsWithChildren, ReactNode, useState } from 'react'; + +import EditorOptionMenu from './header-right-items/EditorOptionMenu'; +import SyncUser from './header-right-items/SyncUser'; +import ThemeModeSwitch from './header-right-items/theme-mode-switch'; +import TrashButtonGroup from './header-right-items/TrashButtonGroup'; import { - StyledHeader, - StyledHeaderRightSide, - StyledHeaderContainer, StyledBrowserWarning, StyledCloseButton, + StyledHeader, + StyledHeaderContainer, + StyledHeaderRightSide, } from './styles'; -import { CloseIcon } from '@blocksuite/icons'; -import { useWarningMessage, shouldShowWarning } from './utils'; -import EditorOptionMenu from './header-right-items/EditorOptionMenu'; -import TrashButtonGroup from './header-right-items/TrashButtonGroup'; -import ThemeModeSwitch from './header-right-items/theme-mode-switch'; -import SyncUser from './header-right-items/SyncUser'; +import { shouldShowWarning, useWarningMessage } from './utils'; const BrowserWarning = ({ show, diff --git a/apps/web/src/components/header/PageListHeader.tsx b/apps/web/src/components/header/PageListHeader.tsx index 976c86b50d..c863c01ca3 100644 --- a/apps/web/src/components/header/PageListHeader.tsx +++ b/apps/web/src/components/header/PageListHeader.tsx @@ -1,4 +1,5 @@ import { PropsWithChildren, ReactNode } from 'react'; + import Header from './Header'; import QuickSearchButton from './QuickSearchButton'; import { StyledPageListTittleWrapper } from './styles'; diff --git a/apps/web/src/components/header/QuickSearchButton.tsx b/apps/web/src/components/header/QuickSearchButton.tsx index d32be2c03f..122ff6666e 100644 --- a/apps/web/src/components/header/QuickSearchButton.tsx +++ b/apps/web/src/components/header/QuickSearchButton.tsx @@ -1,8 +1,9 @@ -import React from 'react'; import { IconButton, IconButtonProps } from '@affine/component'; -import { ArrowDownIcon } from '@blocksuite/icons'; -import { useModal } from '@/store/globalModal'; import { styled } from '@affine/component'; +import { ArrowDownIcon } from '@blocksuite/icons'; +import React from 'react'; + +import { useModal } from '@/store/globalModal'; const StyledIconButtonWithAnimate = styled(IconButton)(({ theme }) => { return { diff --git a/apps/web/src/components/header/header-right-items/EditorOptionMenu.tsx b/apps/web/src/components/header/header-right-items/EditorOptionMenu.tsx index 4c31252373..87d23eecfa 100644 --- a/apps/web/src/components/header/header-right-items/EditorOptionMenu.tsx +++ b/apps/web/src/components/header/header-right-items/EditorOptionMenu.tsx @@ -1,5 +1,7 @@ import { Menu, MenuItem } from '@affine/component'; import { IconButton } from '@affine/component'; +import { toast } from '@affine/component'; +import { useTranslation } from '@affine/i18n'; import { EdgelessIcon, ExportIcon, @@ -11,11 +13,10 @@ import { PaperIcon, TrashIcon, } from '@blocksuite/icons'; + +import useCurrentPageMeta from '@/hooks/use-current-page-meta'; import { usePageHelper } from '@/hooks/use-page-helper'; import { useConfirm } from '@/providers/ConfirmProvider'; -import useCurrentPageMeta from '@/hooks/use-current-page-meta'; -import { toast } from '@affine/component'; -import { useTranslation } from '@affine/i18n'; import { useGlobalState } from '@/store/app'; const PopoverContent = () => { const editor = useGlobalState(store => store.editor); diff --git a/apps/web/src/components/header/header-right-items/SyncUser.tsx b/apps/web/src/components/header/header-right-items/SyncUser.tsx index f9798cda0f..0302349f85 100644 --- a/apps/web/src/components/header/header-right-items/SyncUser.tsx +++ b/apps/web/src/components/header/header-right-items/SyncUser.tsx @@ -1,10 +1,11 @@ -import { LocalWorkspaceIcon, CloudWorkspaceIcon } from '@blocksuite/icons'; -import { displayFlex, styled, Tooltip, IconButton } from '@affine/component'; -import { useTranslation } from '@affine/i18n'; -import { useModal } from '@/store/globalModal'; -import { useCallback, useEffect, useState } from 'react'; +import { displayFlex, IconButton, styled, Tooltip } from '@affine/component'; import { WorkspaceUnit } from '@affine/datacenter'; +import { useTranslation } from '@affine/i18n'; +import { CloudWorkspaceIcon, LocalWorkspaceIcon } from '@blocksuite/icons'; +import { useCallback, useEffect, useState } from 'react'; + import { useGlobalState } from '@/store/app'; +import { useModal } from '@/store/globalModal'; const NoNetWorkIcon = () => { return ( diff --git a/apps/web/src/components/header/header-right-items/TrashButtonGroup.tsx b/apps/web/src/components/header/header-right-items/TrashButtonGroup.tsx index b511434319..05eb00287a 100644 --- a/apps/web/src/components/header/header-right-items/TrashButtonGroup.tsx +++ b/apps/web/src/components/header/header-right-items/TrashButtonGroup.tsx @@ -1,11 +1,12 @@ import { Button } from '@affine/component'; +import { useTranslation } from '@affine/i18n'; +import { useRouter } from 'next/router'; +import { useCallback } from 'react'; + +import useCurrentPageMeta from '@/hooks/use-current-page-meta'; import { usePageHelper } from '@/hooks/use-page-helper'; import { useConfirm } from '@/providers/ConfirmProvider'; -import { useRouter } from 'next/router'; -import useCurrentPageMeta from '@/hooks/use-current-page-meta'; -import { useTranslation } from '@affine/i18n'; import { useGlobalState } from '@/store/app'; -import { useCallback } from 'react'; export const TrashButtonGroup = () => { const { permanentlyDeletePage } = usePageHelper(); diff --git a/apps/web/src/components/header/header-right-items/theme-mode-switch/Icons.tsx b/apps/web/src/components/header/header-right-items/theme-mode-switch/Icons.tsx index 43d9688d08..a1b5e1bc8e 100644 --- a/apps/web/src/components/header/header-right-items/theme-mode-switch/Icons.tsx +++ b/apps/web/src/components/header/header-right-items/theme-mode-switch/Icons.tsx @@ -1,4 +1,4 @@ -import type { DOMAttributes, CSSProperties } from 'react'; +import type { CSSProperties, DOMAttributes } from 'react'; type IconProps = { style?: CSSProperties; } & DOMAttributes; diff --git a/apps/web/src/components/header/header-right-items/theme-mode-switch/index.tsx b/apps/web/src/components/header/header-right-items/theme-mode-switch/index.tsx index 64d13ea3c7..d2a197a808 100644 --- a/apps/web/src/components/header/header-right-items/theme-mode-switch/index.tsx +++ b/apps/web/src/components/header/header-right-items/theme-mode-switch/index.tsx @@ -1,7 +1,9 @@ import { useState } from 'react'; + import { useTheme } from '@/providers/ThemeProvider'; + import { MoonIcon, SunIcon } from './Icons'; -import { StyledThemeModeSwitch, StyledSwitchItem } from './style'; +import { StyledSwitchItem, StyledThemeModeSwitch } from './style'; export const ThemeModeSwitch = () => { const { mode, changeMode } = useTheme(); const [isHover, setIsHover] = useState(false); diff --git a/apps/web/src/components/header/header-right-items/theme-mode-switch/style.ts b/apps/web/src/components/header/header-right-items/theme-mode-switch/style.ts index aa93f9ce24..0677921750 100644 --- a/apps/web/src/components/header/header-right-items/theme-mode-switch/style.ts +++ b/apps/web/src/components/header/header-right-items/theme-mode-switch/style.ts @@ -1,8 +1,8 @@ import { displayFlex, keyframes, styled } from '@affine/component'; -import { CSSProperties } from 'react'; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore import spring, { toString } from 'css-spring'; +import { CSSProperties } from 'react'; const ANIMATE_DURATION = 400; diff --git a/apps/web/src/components/header/index.tsx b/apps/web/src/components/header/index.tsx index 8af7382af6..ceb0e0d347 100644 --- a/apps/web/src/components/header/index.tsx +++ b/apps/web/src/components/header/index.tsx @@ -1,3 +1,3 @@ -export * from './Header'; export * from './EditorHeader'; +export * from './Header'; export * from './PageListHeader'; diff --git a/apps/web/src/components/header/utils.tsx b/apps/web/src/components/header/utils.tsx index 1bf0fc88f6..ebb54c3958 100644 --- a/apps/web/src/components/header/utils.tsx +++ b/apps/web/src/components/header/utils.tsx @@ -1,5 +1,6 @@ -import getIsMobile from '@/utils/get-is-mobile'; import { Trans, useTranslation } from '@affine/i18n'; + +import getIsMobile from '@/utils/get-is-mobile'; // Inspire by https://stackoverflow.com/a/4900484/8415727 const getChromeVersion = () => { const raw = navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./); diff --git a/apps/web/src/components/help-island/index.tsx b/apps/web/src/components/help-island/index.tsx index b4eaac3d73..6b497577a1 100644 --- a/apps/web/src/components/help-island/index.tsx +++ b/apps/web/src/components/help-island/index.tsx @@ -1,18 +1,19 @@ -import { useState, useEffect } from 'react'; +import { Tooltip } from '@affine/component'; +import { MuiFade } from '@affine/component'; +import { useTranslation } from '@affine/i18n'; +import { CloseIcon } from '@blocksuite/icons'; +import { useEffect, useState } from 'react'; + +import { useGlobalState } from '@/store/app'; +import { useModal } from '@/store/globalModal'; + +import { ContactIcon, HelpIcon, KeyboardIcon } from './Icons'; import { - StyledIsland, - StyledIconWrapper, StyledAnimateWrapper, + StyledIconWrapper, + StyledIsland, StyledTriggerWrapper, } from './style'; -import { ContactIcon, HelpIcon, KeyboardIcon } from './Icons'; -import { Tooltip } from '@affine/component'; - -import { useTranslation } from '@affine/i18n'; -import { useModal } from '@/store/globalModal'; -import { MuiFade } from '@affine/component'; -import { useGlobalState } from '@/store/app'; -import { CloseIcon } from '@blocksuite/icons'; export type IslandItemNames = 'contact' | 'shortcuts'; export const HelpIsland = ({ showList = ['contact', 'shortcuts'], diff --git a/apps/web/src/components/icons/index.tsx b/apps/web/src/components/icons/index.tsx index 23b96c54fd..d40da662f6 100644 --- a/apps/web/src/components/icons/index.tsx +++ b/apps/web/src/components/icons/index.tsx @@ -1,8 +1,8 @@ import { - JoinedWorkspaceIcon as DefaultJoinedWorkspaceIcon, - LocalWorkspaceIcon as DefaultLocalWorkspaceIcon, CloudWorkspaceIcon as DefaultCloudWorkspaceIcon, + JoinedWorkspaceIcon as DefaultJoinedWorkspaceIcon, LocalDataIcon as DefaultLocalDataIcon, + LocalWorkspaceIcon as DefaultLocalWorkspaceIcon, PublishIcon as DefaultPublishIcon, } from '@blocksuite/icons'; diff --git a/apps/web/src/components/import/index.tsx b/apps/web/src/components/import/index.tsx index 15c917bbbf..e77236a2b0 100644 --- a/apps/web/src/components/import/index.tsx +++ b/apps/web/src/components/import/index.tsx @@ -1,12 +1,14 @@ -import { Modal, ModalWrapper, ModalCloseButton } from '@affine/component'; -import { StyledButtonWrapper, StyledTitle } from './styles'; +import { Modal, ModalCloseButton, ModalWrapper } from '@affine/component'; import { Button } from '@affine/component'; import { Content, FlexWrapper } from '@affine/component'; +import { useTranslation } from '@affine/i18n'; +import { useCallback, useEffect, useState } from 'react'; + import Loading from '@/components/loading'; import { usePageHelper } from '@/hooks/use-page-helper'; -import { useCallback, useEffect, useState } from 'react'; -import { useTranslation } from '@affine/i18n'; import { useGlobalState } from '@/store/app'; + +import { StyledButtonWrapper, StyledTitle } from './styles'; // import { Tooltip } from '@affine/component'; type ImportModalProps = { open: boolean; diff --git a/apps/web/src/components/loading/Loading.tsx b/apps/web/src/components/loading/Loading.tsx index 76ea2a25b6..099d50beb1 100644 --- a/apps/web/src/components/loading/Loading.tsx +++ b/apps/web/src/components/loading/Loading.tsx @@ -1,7 +1,7 @@ import { - StyledLoadingWrapper, StyledLoading, StyledLoadingItem, + StyledLoadingWrapper, } from './styled'; export const Loading = ({ size = 40 }: { size?: number }) => { diff --git a/apps/web/src/components/loading/PageLoading.tsx b/apps/web/src/components/loading/PageLoading.tsx index 92e60d7f4b..d01c9ba71c 100644 --- a/apps/web/src/components/loading/PageLoading.tsx +++ b/apps/web/src/components/loading/PageLoading.tsx @@ -1,7 +1,8 @@ import { styled } from '@affine/component'; -import Loading from './Loading'; import { useTranslation } from '@affine/i18n'; +import Loading from './Loading'; + // Used for the full page loading const StyledLoadingContainer = styled('div')(() => { return { diff --git a/apps/web/src/components/login-modal/index.tsx b/apps/web/src/components/login-modal/index.tsx index 3e4d081363..0fbfd7b11b 100644 --- a/apps/web/src/components/login-modal/index.tsx +++ b/apps/web/src/components/login-modal/index.tsx @@ -1,9 +1,11 @@ import { positionAbsolute, styled } from '@affine/component'; -import { Modal, ModalWrapper, ModalCloseButton } from '@affine/component'; +import { Modal, ModalCloseButton, ModalWrapper } from '@affine/component'; import { Button } from '@affine/component'; import { useTranslation } from '@affine/i18n'; -import { GoogleIcon } from './GoogleIcon'; + import { useGlobalState } from '@/store/app'; + +import { GoogleIcon } from './GoogleIcon'; interface LoginModalProps { open: boolean; onClose: () => void; diff --git a/apps/web/src/components/logout-modal/index.tsx b/apps/web/src/components/logout-modal/index.tsx index df694fca58..4028df3c1a 100644 --- a/apps/web/src/components/logout-modal/index.tsx +++ b/apps/web/src/components/logout-modal/index.tsx @@ -1,10 +1,12 @@ import { styled } from '@affine/component'; -import { Modal, ModalWrapper, ModalCloseButton } from '@affine/component'; +import { Modal, ModalCloseButton, ModalWrapper } from '@affine/component'; import { Button } from '@affine/component'; -import { Check, UnCheck } from './icon'; -import { useState } from 'react'; import { useTranslation } from '@affine/i18n'; +import { useState } from 'react'; + import { useAppState } from '@/providers/app-state-provider'; + +import { Check, UnCheck } from './icon'; interface LoginModalProps { open: boolean; onClose: (wait: boolean) => void; diff --git a/apps/web/src/components/mobile-modal/index.tsx b/apps/web/src/components/mobile-modal/index.tsx index 3f7b0d976f..9a7a83277d 100644 --- a/apps/web/src/components/mobile-modal/index.tsx +++ b/apps/web/src/components/mobile-modal/index.tsx @@ -1,9 +1,11 @@ -import React, { useState } from 'react'; import { Modal, ModalCloseButton, ModalWrapper } from '@affine/component'; -import getIsMobile from '@/utils/get-is-mobile'; -import { StyledButton, StyledContent, StyledTitle } from './styles'; -import bg from './bg.png'; import { useTranslation } from '@affine/i18n'; +import React, { useState } from 'react'; + +import getIsMobile from '@/utils/get-is-mobile'; + +import bg from './bg.png'; +import { StyledButton, StyledContent, StyledTitle } from './styles'; export const MobileModal = () => { const [showModal, setShowModal] = useState(getIsMobile()); const { t } = useTranslation(); diff --git a/apps/web/src/components/page-list/DateCell.tsx b/apps/web/src/components/page-list/DateCell.tsx index d014049869..acd184286d 100644 --- a/apps/web/src/components/page-list/DateCell.tsx +++ b/apps/web/src/components/page-list/DateCell.tsx @@ -1,9 +1,10 @@ -import localizedFormat from 'dayjs/plugin/localizedFormat'; -import dayjs from 'dayjs'; -import { PageMeta } from '@/providers/app-state-provider'; import { TableCell } from '@affine/component'; +import dayjs from 'dayjs'; +import localizedFormat from 'dayjs/plugin/localizedFormat'; import React from 'react'; +import { PageMeta } from '@/providers/app-state-provider'; + dayjs.extend(localizedFormat); export const DateCell = ({ diff --git a/apps/web/src/components/page-list/Empty.tsx b/apps/web/src/components/page-list/Empty.tsx index 5252e2bbc0..2cea453901 100644 --- a/apps/web/src/components/page-list/Empty.tsx +++ b/apps/web/src/components/page-list/Empty.tsx @@ -1,6 +1,6 @@ -import React from 'react'; import { Empty } from '@affine/component'; import { useTranslation } from '@affine/i18n'; +import React from 'react'; export const PageListEmpty = (props: { listType?: string }) => { const { listType } = props; const { t } = useTranslation(); diff --git a/apps/web/src/components/page-list/OperationCell.tsx b/apps/web/src/components/page-list/OperationCell.tsx index 9b62b684e0..b70fec319e 100644 --- a/apps/web/src/components/page-list/OperationCell.tsx +++ b/apps/web/src/components/page-list/OperationCell.tsx @@ -1,25 +1,25 @@ -import { useConfirm } from '@/providers/ConfirmProvider'; -import { PageMeta } from '@/providers/app-state-provider'; import { + FlexWrapper, + IconButton, Menu, MenuItem, Tooltip, - FlexWrapper, - IconButton, } from '@affine/component'; - +import { toast } from '@affine/component'; +import { useTranslation } from '@affine/i18n'; import { - MoreVerticalIcon, - RestoreIcon, - FavouritesIcon, - FavouritedIcon, - OpenInNewIcon, DeleteForeverIcon, + FavouritedIcon, + FavouritesIcon, + MoreVerticalIcon, + OpenInNewIcon, + RestoreIcon, TrashIcon, } from '@blocksuite/icons'; -import { toast } from '@affine/component'; + import { usePageHelper } from '@/hooks/use-page-helper'; -import { useTranslation } from '@affine/i18n'; +import { PageMeta } from '@/providers/app-state-provider'; +import { useConfirm } from '@/providers/ConfirmProvider'; export const OperationCell = ({ pageMeta }: { pageMeta: PageMeta }) => { const { id, favorite } = pageMeta; diff --git a/apps/web/src/components/page-list/index.tsx b/apps/web/src/components/page-list/index.tsx index ad6a9369c5..bcaeecaa05 100644 --- a/apps/web/src/components/page-list/index.tsx +++ b/apps/web/src/components/page-list/index.tsx @@ -1,16 +1,3 @@ -import { PageMeta } from '@/providers/app-state-provider'; -import { - FavouritedIcon, - FavouritesIcon, - PaperIcon, - EdgelessIcon, -} from '@blocksuite/icons'; -import { - StyledTableContainer, - StyledTableRow, - StyledTitleLink, - StyledTitleWrapper, -} from './styles'; import { Table, TableBody, @@ -18,19 +5,34 @@ import { TableHead, TableRow, } from '@affine/component'; -import { OperationCell, TrashOperationCell } from './OperationCell'; -import Empty from './Empty'; import { Content } from '@affine/component'; -import React, { useCallback } from 'react'; -import DateCell from '@/components/page-list/DateCell'; import { IconButton } from '@affine/component'; import { Tooltip } from '@affine/component'; -import { useRouter } from 'next/router'; import { toast } from '@affine/component'; -import { usePageHelper } from '@/hooks/use-page-helper'; -import { useTheme } from '@/providers/ThemeProvider'; import { useTranslation } from '@affine/i18n'; +import { + EdgelessIcon, + FavouritedIcon, + FavouritesIcon, + PaperIcon, +} from '@blocksuite/icons'; +import { useRouter } from 'next/router'; +import React, { useCallback } from 'react'; + +import DateCell from '@/components/page-list/DateCell'; +import { usePageHelper } from '@/hooks/use-page-helper'; +import { PageMeta } from '@/providers/app-state-provider'; +import { useTheme } from '@/providers/ThemeProvider'; import { useGlobalState } from '@/store/app'; + +import Empty from './Empty'; +import { OperationCell, TrashOperationCell } from './OperationCell'; +import { + StyledTableContainer, + StyledTableRow, + StyledTitleLink, + StyledTitleWrapper, +} from './styles'; const FavoriteTag = ({ pageMeta: { favorite, id }, }: { diff --git a/apps/web/src/components/quick-search/Footer.tsx b/apps/web/src/components/quick-search/Footer.tsx index f67f70891d..832e77d224 100644 --- a/apps/web/src/components/quick-search/Footer.tsx +++ b/apps/web/src/components/quick-search/Footer.tsx @@ -1,9 +1,11 @@ -import React from 'react'; -import { PlusIcon } from '@blocksuite/icons'; -import { StyledModalFooterContent } from './style'; -import { Command } from 'cmdk'; -import { usePageHelper } from '@/hooks/use-page-helper'; import { useTranslation } from '@affine/i18n'; +import { PlusIcon } from '@blocksuite/icons'; +import { Command } from 'cmdk'; +import React from 'react'; + +import { usePageHelper } from '@/hooks/use-page-helper'; + +import { StyledModalFooterContent } from './style'; export const Footer = (props: { query: string; onClose: () => void }) => { const { openPage, createPage } = usePageHelper(); const { t } = useTranslation(); diff --git a/apps/web/src/components/quick-search/Input.tsx b/apps/web/src/components/quick-search/Input.tsx index 0ac61c54c2..45e2627d40 100644 --- a/apps/web/src/components/quick-search/Input.tsx +++ b/apps/web/src/components/quick-search/Input.tsx @@ -1,3 +1,6 @@ +import { useTranslation } from '@affine/i18n'; +import { SearchIcon } from '@blocksuite/icons'; +import { Command } from 'cmdk'; import React, { Dispatch, SetStateAction, @@ -5,10 +8,8 @@ import React, { useRef, useState, } from 'react'; -import { SearchIcon } from '@blocksuite/icons'; + import { StyledInputContent, StyledLabel } from './style'; -import { Command } from 'cmdk'; -import { useTranslation } from '@affine/i18n'; export const Input = (props: { open: boolean; query: string; diff --git a/apps/web/src/components/quick-search/PublishedResults.tsx b/apps/web/src/components/quick-search/PublishedResults.tsx index 89193d09b0..7f2bd6ff01 100644 --- a/apps/web/src/components/quick-search/PublishedResults.tsx +++ b/apps/web/src/components/quick-search/PublishedResults.tsx @@ -1,15 +1,17 @@ -import { Command } from 'cmdk'; -import { StyledListItem, StyledNotFound } from './style'; -import { PaperIcon, EdgelessIcon } from '@blocksuite/icons'; -import { Dispatch, SetStateAction, useEffect, useState } from 'react'; -import { PageMeta } from '@/providers/app-state-provider'; -import { useRouter } from 'next/router'; -import { NoResultSVG } from './NoResultSVG'; import { useTranslation } from '@affine/i18n'; -import usePageHelper from '@/hooks/use-page-helper'; +import { EdgelessIcon, PaperIcon } from '@blocksuite/icons'; import { Workspace } from '@blocksuite/store'; +import { Command } from 'cmdk'; +import { useRouter } from 'next/router'; +import { Dispatch, SetStateAction, useEffect, useState } from 'react'; + +import usePageHelper from '@/hooks/use-page-helper'; +import { PageMeta } from '@/providers/app-state-provider'; import { useGlobalState } from '@/store/app'; +import { NoResultSVG } from './NoResultSVG'; +import { StyledListItem, StyledNotFound } from './style'; + export const PublishedResults = (props: { query: string; loading: boolean; diff --git a/apps/web/src/components/quick-search/Results.tsx b/apps/web/src/components/quick-search/Results.tsx index 1f698c9b3e..b02580e550 100644 --- a/apps/web/src/components/quick-search/Results.tsx +++ b/apps/web/src/components/quick-search/Results.tsx @@ -1,6 +1,7 @@ +import { useTranslation } from '@affine/i18n'; +import { EdgelessIcon, PaperIcon } from '@blocksuite/icons'; import { Command } from 'cmdk'; -import { StyledListItem, StyledNotFound } from './style'; -import { PaperIcon, EdgelessIcon } from '@blocksuite/icons'; +import { useRouter } from 'next/router'; import { Dispatch, SetStateAction, @@ -8,12 +9,13 @@ import { useEffect, useState, } from 'react'; -import { useRouter } from 'next/router'; -import { useSwitchToConfig } from './config'; -import { NoResultSVG } from './NoResultSVG'; -import { useTranslation } from '@affine/i18n'; + import usePageHelper from '@/hooks/use-page-helper'; import { useGlobalState } from '@/store/app'; + +import { useSwitchToConfig } from './config'; +import { NoResultSVG } from './NoResultSVG'; +import { StyledListItem, StyledNotFound } from './style'; export const Results = (props: { query: string; loading: boolean; diff --git a/apps/web/src/components/quick-search/config.ts b/apps/web/src/components/quick-search/config.ts index a171ea32e1..1053d7802e 100644 --- a/apps/web/src/components/quick-search/config.ts +++ b/apps/web/src/components/quick-search/config.ts @@ -1,11 +1,11 @@ -import { FC, SVGProps } from 'react'; +import { useTranslation } from '@affine/i18n'; import { AllPagesIcon, FavouritesIcon, - TrashIcon, SettingsIcon, + TrashIcon, } from '@blocksuite/icons'; -import { useTranslation } from '@affine/i18n'; +import { FC, SVGProps } from 'react'; export const useSwitchToConfig = ( currentWorkspaceId?: string diff --git a/apps/web/src/components/quick-search/index.tsx b/apps/web/src/components/quick-search/index.tsx index 5df443c0a1..35f76f516e 100644 --- a/apps/web/src/components/quick-search/index.tsx +++ b/apps/web/src/components/quick-search/index.tsx @@ -1,20 +1,22 @@ import { Modal, ModalWrapper } from '@affine/component'; -import { - StyledContent, - StyledModalHeader, - StyledModalFooter, - StyledModalDivider, - StyledShortcut, -} from './style'; -import { Input } from './Input'; -import { Results } from './Results'; -import { Footer } from './Footer'; import { Command } from 'cmdk'; +import { useRouter } from 'next/router'; import { useEffect, useState } from 'react'; + import { useModal } from '@/store/globalModal'; import { getUaHelper } from '@/utils'; -import { useRouter } from 'next/router'; + +import { Footer } from './Footer'; +import { Input } from './Input'; import { PublishedResults } from './PublishedResults'; +import { Results } from './Results'; +import { + StyledContent, + StyledModalDivider, + StyledModalFooter, + StyledModalHeader, + StyledShortcut, +} from './style'; type TransitionsModalProps = { open: boolean; onClose: () => void; diff --git a/apps/web/src/components/shortcuts-modal/index.tsx b/apps/web/src/components/shortcuts-modal/index.tsx index ce436c98af..8a0d18d472 100644 --- a/apps/web/src/components/shortcuts-modal/index.tsx +++ b/apps/web/src/components/shortcuts-modal/index.tsx @@ -1,4 +1,19 @@ +import { + ModalCloseButton, + MuiClickAwayListener, + MuiSlide, +} from '@affine/component'; +import { useTranslation } from '@affine/i18n'; import { createPortal } from 'react-dom'; + +import { + useMacKeyboardShortcuts, + useMacMarkdownShortcuts, + useWindowsKeyboardShortcuts, + useWinMarkdownShortcuts, +} from '@/components/shortcuts-modal/config'; +import { getUaHelper } from '@/utils'; + import { KeyboardIcon } from './Icons'; import { StyledListItem, @@ -7,19 +22,6 @@ import { StyledSubTitle, StyledTitle, } from './style'; -import { - useMacKeyboardShortcuts, - useMacMarkdownShortcuts, - useWindowsKeyboardShortcuts, - useWinMarkdownShortcuts, -} from '@/components/shortcuts-modal/config'; -import { - MuiSlide, - MuiClickAwayListener, - ModalCloseButton, -} from '@affine/component'; -import { getUaHelper } from '@/utils'; -import { useTranslation } from '@affine/i18n'; type ModalProps = { open: boolean; onClose: () => void; diff --git a/apps/web/src/components/simple-counter/index.ts b/apps/web/src/components/simple-counter/index.ts index 3f63324fa2..89cf2e0567 100644 --- a/apps/web/src/components/simple-counter/index.ts +++ b/apps/web/src/components/simple-counter/index.ts @@ -1,4 +1,4 @@ -import { LitElement, css, html } from 'lit'; +import { css, html, LitElement } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; import * as React from 'react'; diff --git a/apps/web/src/components/workspace-avatar/WorkspaceUnitAvatar.tsx b/apps/web/src/components/workspace-avatar/WorkspaceUnitAvatar.tsx index 0fa8e7fbd7..91586606e7 100644 --- a/apps/web/src/components/workspace-avatar/WorkspaceUnitAvatar.tsx +++ b/apps/web/src/components/workspace-avatar/WorkspaceUnitAvatar.tsx @@ -1,5 +1,6 @@ -import { useState, useEffect } from 'react'; import type { WorkspaceUnit } from '@affine/datacenter'; +import { useEffect, useState } from 'react'; + import { WorkspaceAvatar as Avatar } from './Avatar'; const useAvatar = (workspaceUnit: WorkspaceUnit | null) => { diff --git a/apps/web/src/components/workspace-layout/index.tsx b/apps/web/src/components/workspace-layout/index.tsx index 027c088917..839113afbb 100644 --- a/apps/web/src/components/workspace-layout/index.tsx +++ b/apps/web/src/components/workspace-layout/index.tsx @@ -1,10 +1,12 @@ +import { useRouter } from 'next/router'; +import { PropsWithChildren } from 'react'; + import HelpIsland from '@/components/help-island'; import { WorkSpaceSliderBar } from '@/components/workspace-slider-bar'; -import { useRouter } from 'next/router'; -import { StyledPage, StyledToolWrapper, StyledWrapper } from './styles'; -import { PropsWithChildren } from 'react'; import useEnsureWorkspace from '@/hooks/use-ensure-workspace'; + import { PageLoading } from '../loading'; +import { StyledPage, StyledToolWrapper, StyledWrapper } from './styles'; export const WorkspaceDefender = ({ children }: PropsWithChildren) => { const { workspaceLoaded } = useEnsureWorkspace(); diff --git a/apps/web/src/components/workspace-modal/Footer.tsx b/apps/web/src/components/workspace-modal/Footer.tsx index 49b88f41ef..0ca43e83ad 100644 --- a/apps/web/src/components/workspace-modal/Footer.tsx +++ b/apps/web/src/components/workspace-modal/Footer.tsx @@ -1,11 +1,13 @@ -import { CloudWorkspaceIcon, SignOutIcon } from '@blocksuite/icons'; import { FlexWrapper } from '@affine/component'; -import { WorkspaceAvatar } from '@/components/workspace-avatar'; import { IconButton } from '@affine/component'; -import { StyledFooter, StyleUserInfo, StyledSignInButton } from './styles'; -import { useTranslation } from '@affine/i18n'; import { Tooltip } from '@affine/component'; +import { useTranslation } from '@affine/i18n'; +import { CloudWorkspaceIcon, SignOutIcon } from '@blocksuite/icons'; + +import { WorkspaceAvatar } from '@/components/workspace-avatar'; import { useGlobalState } from '@/store/app'; + +import { StyledFooter, StyledSignInButton, StyleUserInfo } from './styles'; export const Footer = ({ onLogin, onLogout, diff --git a/apps/web/src/components/workspace-modal/SelectLanguageMenu.tsx b/apps/web/src/components/workspace-modal/SelectLanguageMenu.tsx index 3197c47583..888bf9ea0b 100644 --- a/apps/web/src/components/workspace-modal/SelectLanguageMenu.tsx +++ b/apps/web/src/components/workspace-modal/SelectLanguageMenu.tsx @@ -1,9 +1,9 @@ -import { LOCALES } from '@affine/i18n'; import { styled } from '@affine/component'; -import { useTranslation } from '@affine/i18n'; -import { ArrowDownIcon } from '@blocksuite/icons'; import { Button } from '@affine/component'; import { Menu, MenuItem } from '@affine/component'; +import { LOCALES } from '@affine/i18n'; +import { useTranslation } from '@affine/i18n'; +import { ArrowDownIcon } from '@blocksuite/icons'; const LanguageMenuContent = () => { const { i18n } = useTranslation(); diff --git a/apps/web/src/components/workspace-modal/WorkspaceCard.tsx b/apps/web/src/components/workspace-modal/WorkspaceCard.tsx index 2e292fc86a..6de4352e30 100644 --- a/apps/web/src/components/workspace-modal/WorkspaceCard.tsx +++ b/apps/web/src/components/workspace-modal/WorkspaceCard.tsx @@ -1,16 +1,18 @@ -import { WorkspaceUnitAvatar } from '@/components/workspace-avatar'; +import { WorkspaceUnit } from '@affine/datacenter'; +import { useTranslation } from '@affine/i18n'; +import { useCallback } from 'react'; + import { - JoinedWorkspaceIcon, - LocalWorkspaceIcon, CloudWorkspaceIcon, + JoinedWorkspaceIcon, LocalDataIcon, + LocalWorkspaceIcon, PublishIcon, } from '@/components/icons'; -import { WorkspaceUnit } from '@affine/datacenter'; -import { StyleWorkspaceInfo, StyleWorkspaceTitle, StyledCard } from './styles'; -import { useTranslation } from '@affine/i18n'; +import { WorkspaceUnitAvatar } from '@/components/workspace-avatar'; import { useGlobalState } from '@/store/app'; -import { useCallback } from 'react'; + +import { StyledCard, StyleWorkspaceInfo, StyleWorkspaceTitle } from './styles'; const WorkspaceType = ({ workspaceData }: { workspaceData: WorkspaceUnit }) => { const user = useGlobalState(store => store.user); diff --git a/apps/web/src/components/workspace-modal/index.tsx b/apps/web/src/components/workspace-modal/index.tsx index 62723e8f10..d857810ab9 100644 --- a/apps/web/src/components/workspace-modal/index.tsx +++ b/apps/web/src/components/workspace-modal/index.tsx @@ -1,33 +1,31 @@ -import { Modal, ModalWrapper, ModalCloseButton } from '@affine/component'; -import { useState } from 'react'; -import { CreateWorkspaceModal } from '../create-workspace'; - +import { Modal, ModalCloseButton, ModalWrapper } from '@affine/component'; import { Tooltip } from '@affine/component'; - -import { PlusIcon, HelpIcon } from '@blocksuite/icons'; - -import { useRouter } from 'next/router'; import { useTranslation } from '@affine/i18n'; -import { LanguageMenu } from './SelectLanguageMenu'; +import { HelpIcon, PlusIcon } from '@blocksuite/icons'; +import { useRouter } from 'next/router'; +import { useState } from 'react'; +import { useGlobalState } from '@/store/app'; + +import { CreateWorkspaceModal } from '../create-workspace'; import { LoginModal } from '../login-modal'; import { LogoutModal } from '../logout-modal'; +import { Footer } from './Footer'; +import { LanguageMenu } from './SelectLanguageMenu'; import { StyledCard, - StyledSplitLine, - StyleWorkspaceInfo, - StyleWorkspaceTitle, - StyledModalHeaderLeft, - StyledModalTitle, StyledHelperContainer, StyledModalContent, - StyledOperationWrapper, - StyleWorkspaceAdd, StyledModalHeader, + StyledModalHeaderLeft, + StyledModalTitle, + StyledOperationWrapper, + StyledSplitLine, + StyleWorkspaceAdd, + StyleWorkspaceInfo, + StyleWorkspaceTitle, } from './styles'; import { WorkspaceCard } from './WorkspaceCard'; -import { Footer } from './Footer'; -import { useGlobalState } from '@/store/app'; interface WorkspaceModalProps { open: boolean; onClose: () => void; diff --git a/apps/web/src/components/workspace-setting/ExportPage.tsx b/apps/web/src/components/workspace-setting/ExportPage.tsx index 5ae51ed6bc..0df5a9bad8 100644 --- a/apps/web/src/components/workspace-setting/ExportPage.tsx +++ b/apps/web/src/components/workspace-setting/ExportPage.tsx @@ -1,7 +1,7 @@ -import { WorkspaceUnit } from '@affine/datacenter'; -import { useTranslation } from '@affine/i18n'; import { Wrapper } from '@affine/component'; import { Button } from '@affine/component'; +import { WorkspaceUnit } from '@affine/datacenter'; +import { useTranslation } from '@affine/i18n'; export const ExportPage = ({ workspace }: { workspace: WorkspaceUnit }) => { const { t } = useTranslation(); console.log(workspace); diff --git a/apps/web/src/components/workspace-setting/PublishPage.tsx b/apps/web/src/components/workspace-setting/PublishPage.tsx index bbe0742c22..88c8975e53 100644 --- a/apps/web/src/components/workspace-setting/PublishPage.tsx +++ b/apps/web/src/components/workspace-setting/PublishPage.tsx @@ -1,11 +1,12 @@ -import { useState } from 'react'; import { Button } from '@affine/component'; import { Input } from '@affine/component'; import { toast } from '@affine/component'; +import { Content, FlexWrapper, Wrapper } from '@affine/component'; import { WorkspaceUnit } from '@affine/datacenter'; -import { useWorkspaceHelper } from '@/hooks/use-workspace-helper'; import { useTranslation } from '@affine/i18n'; -import { Wrapper, Content, FlexWrapper } from '@affine/component'; +import { useState } from 'react'; + +import { useWorkspaceHelper } from '@/hooks/use-workspace-helper'; import { useModal } from '@/store/globalModal'; export const PublishPage = ({ workspace }: { workspace: WorkspaceUnit }) => { const shareUrl = window.location.host + '/public-workspace/' + workspace.id; diff --git a/apps/web/src/components/workspace-setting/SyncPage.tsx b/apps/web/src/components/workspace-setting/SyncPage.tsx index 2f586d04ed..bb212121ca 100644 --- a/apps/web/src/components/workspace-setting/SyncPage.tsx +++ b/apps/web/src/components/workspace-setting/SyncPage.tsx @@ -1,10 +1,12 @@ -import { StyledWorkspaceName } from './style'; +import { Button, Content, FlexWrapper, Wrapper } from '@affine/component'; import { WorkspaceUnit } from '@affine/datacenter'; -import { useTranslation, Trans } from '@affine/i18n'; +import { Trans, useTranslation } from '@affine/i18n'; + import { WorkspaceUnitAvatar } from '@/components/workspace-avatar'; -import { FlexWrapper, Content, Wrapper, Button } from '@affine/component'; -import { useModal } from '@/store/globalModal'; import { useGlobalState } from '@/store/app'; +import { useModal } from '@/store/globalModal'; + +import { StyledWorkspaceName } from './style'; // // FIXME: Temporary solution, since the @blocksuite/icons is broken // const ActiveIcon = () => { diff --git a/apps/web/src/components/workspace-setting/general/General.tsx b/apps/web/src/components/workspace-setting/general/General.tsx index ab1557f773..2aea95be3c 100644 --- a/apps/web/src/components/workspace-setting/general/General.tsx +++ b/apps/web/src/components/workspace-setting/general/General.tsx @@ -1,30 +1,31 @@ -import { - StyledInput, - StyledWorkspaceInfo, - StyledAvatar, - StyledEditButton, -} from './style'; -import { StyledSettingKey, StyledRow } from '../style'; import { FlexWrapper, MuiAvatar } from '@affine/component'; - -import { useCallback, useState } from 'react'; import { Button } from '@affine/component'; -import { WorkspaceDelete } from './delete'; -import { WorkspaceLeave } from './leave'; +import { MuiFade } from '@affine/component'; +import { WorkspaceUnit } from '@affine/datacenter'; +import { useTranslation } from '@affine/i18n'; +import { EmailIcon } from '@blocksuite/icons'; +import { useCallback, useState } from 'react'; + +import { Upload } from '@/components/file-upload'; import { - JoinedWorkspaceIcon, CloudWorkspaceIcon, + JoinedWorkspaceIcon, LocalWorkspaceIcon, } from '@/components/icons'; import { WorkspaceUnitAvatar } from '@/components/workspace-avatar'; -import { WorkspaceUnit } from '@affine/datacenter'; import { useWorkspaceHelper } from '@/hooks/use-workspace-helper'; -import { useTranslation } from '@affine/i18n'; -import { CameraIcon } from './icons'; -import { Upload } from '@/components/file-upload'; -import { MuiFade } from '@affine/component'; import { useGlobalState } from '@/store/app'; -import { EmailIcon } from '@blocksuite/icons'; + +import { StyledRow, StyledSettingKey } from '../style'; +import { WorkspaceDelete } from './delete'; +import { CameraIcon } from './icons'; +import { WorkspaceLeave } from './leave'; +import { + StyledAvatar, + StyledEditButton, + StyledInput, + StyledWorkspaceInfo, +} from './style'; export const GeneralPage = ({ workspace }: { workspace: WorkspaceUnit }) => { const [showDelete, setShowDelete] = useState(false); const [showLeave, setShowLeave] = useState(false); diff --git a/apps/web/src/components/workspace-setting/general/delete/Delete.tsx b/apps/web/src/components/workspace-setting/general/delete/Delete.tsx index 0d4231414f..474bc0309d 100644 --- a/apps/web/src/components/workspace-setting/general/delete/Delete.tsx +++ b/apps/web/src/components/workspace-setting/general/delete/Delete.tsx @@ -1,22 +1,23 @@ -import { useRouter } from 'next/router'; import { Modal } from '@affine/component'; import { Input } from '@affine/component'; -import { - StyledModalHeader, - StyledTextContent, - StyledModalWrapper, - StyledInputContent, - StyledButtonContent, - StyledWorkspaceName, -} from './style'; -import { useState } from 'react'; import { ModalCloseButton } from '@affine/component'; import { Button } from '@affine/component'; - import { WorkspaceUnit } from '@affine/datacenter'; import { Trans, useTranslation } from '@affine/i18n'; +import { useRouter } from 'next/router'; +import { useState } from 'react'; + import { useWorkspaceHelper } from '@/hooks/use-workspace-helper'; +import { + StyledButtonContent, + StyledInputContent, + StyledModalHeader, + StyledModalWrapper, + StyledTextContent, + StyledWorkspaceName, +} from './style'; + interface WorkspaceDeleteProps { open: boolean; onClose: () => void; diff --git a/apps/web/src/components/workspace-setting/general/leave/Leave.tsx b/apps/web/src/components/workspace-setting/general/leave/Leave.tsx index bd18e21b07..3389fc794c 100644 --- a/apps/web/src/components/workspace-setting/general/leave/Leave.tsx +++ b/apps/web/src/components/workspace-setting/general/leave/Leave.tsx @@ -1,14 +1,16 @@ import { Modal } from '@affine/component'; -import { - StyledModalHeader, - StyledTextContent, - StyledModalWrapper, - StyledButtonContent, -} from './style'; import { ModalCloseButton } from '@affine/component'; import { Button } from '@affine/component'; import { useTranslation } from '@affine/i18n'; + import { useWorkspaceHelper } from '@/hooks/use-workspace-helper'; + +import { + StyledButtonContent, + StyledModalHeader, + StyledModalWrapper, + StyledTextContent, +} from './style'; // import { getDataCenter } from '@affine/datacenter'; // import { useAppState } from '@/providers/app-state-provider'; diff --git a/apps/web/src/components/workspace-setting/index.ts b/apps/web/src/components/workspace-setting/index.ts index 0468074d2f..8c870d1583 100644 --- a/apps/web/src/components/workspace-setting/index.ts +++ b/apps/web/src/components/workspace-setting/index.ts @@ -1,5 +1,5 @@ -export * from './general'; export * from './ExportPage'; +export * from './general'; export * from './member'; -export * from './SyncPage'; export * from './PublishPage'; +export * from './SyncPage'; diff --git a/apps/web/src/components/workspace-setting/member/InviteMemberModal.tsx b/apps/web/src/components/workspace-setting/member/InviteMemberModal.tsx index e7ca8982de..51ebf58668 100644 --- a/apps/web/src/components/workspace-setting/member/InviteMemberModal.tsx +++ b/apps/web/src/components/workspace-setting/member/InviteMemberModal.tsx @@ -1,13 +1,14 @@ -import { EmailIcon } from '@blocksuite/icons'; import { styled } from '@affine/component'; -import { Modal, ModalWrapper, ModalCloseButton } from '@affine/component'; +import { Modal, ModalCloseButton, ModalWrapper } from '@affine/component'; import { Button } from '@affine/component'; import { Input } from '@affine/component'; -import { useState } from 'react'; import { MuiAvatar } from '@affine/component'; -import useMembers from '@/hooks/use-members'; import { User } from '@affine/datacenter'; import { useTranslation } from '@affine/i18n'; +import { EmailIcon } from '@blocksuite/icons'; +import { useState } from 'react'; + +import useMembers from '@/hooks/use-members'; interface LoginModalProps { open: boolean; onClose: () => void; diff --git a/apps/web/src/components/workspace-setting/member/MembersPage.tsx b/apps/web/src/components/workspace-setting/member/MembersPage.tsx index 740e0cdbf2..27db683dcf 100644 --- a/apps/web/src/components/workspace-setting/member/MembersPage.tsx +++ b/apps/web/src/components/workspace-setting/member/MembersPage.tsx @@ -1,6 +1,23 @@ +import { Wrapper } from '@affine/component'; +import { Button, IconButton } from '@affine/component'; +import { Menu, MenuItem } from '@affine/component'; +import { Empty } from '@affine/component'; +import { toast } from '@affine/component'; +import { FlexWrapper } from '@affine/component'; +import { WorkspaceUnit } from '@affine/datacenter'; +import { useTranslation } from '@affine/i18n'; +import { EmailIcon, MoreVerticalIcon, TrashIcon } from '@blocksuite/icons'; +import { useState } from 'react'; + +import Loading from '@/components/loading'; +import useMembers from '@/hooks/use-members'; +import { useModal } from '@/store/globalModal'; + +import { InviteMemberModal } from './InviteMemberModal'; import { StyledMemberAvatar, StyledMemberButtonContainer, + StyledMemberContainer, StyledMemberEmail, StyledMemberInfo, StyledMemberListContainer, @@ -10,22 +27,7 @@ import { StyledMemberRoleContainer, StyledMemberTitleContainer, StyledMoreVerticalButton, - StyledMemberContainer, } from './style'; -import { Wrapper } from '@affine/component'; -import { MoreVerticalIcon, EmailIcon, TrashIcon } from '@blocksuite/icons'; -import { useState } from 'react'; -import { Button, IconButton } from '@affine/component'; -import { InviteMemberModal } from './InviteMemberModal'; -import { Menu, MenuItem } from '@affine/component'; -import { Empty } from '@affine/component'; -import { WorkspaceUnit } from '@affine/datacenter'; -import { toast } from '@affine/component'; -import useMembers from '@/hooks/use-members'; -import Loading from '@/components/loading'; -import { FlexWrapper } from '@affine/component'; -import { useTranslation } from '@affine/i18n'; -import { useModal } from '@/store/globalModal'; export const MembersPage = ({ workspace }: { workspace: WorkspaceUnit }) => { const [isInviteModalShow, setIsInviteModalShow] = useState(false); diff --git a/apps/web/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceItem/ListItem.tsx b/apps/web/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceItem/ListItem.tsx index 48c7c7ac45..822370c7b0 100644 --- a/apps/web/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceItem/ListItem.tsx +++ b/apps/web/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceItem/ListItem.tsx @@ -1,6 +1,7 @@ -import type { ReactNode } from 'react'; import { styled } from '@affine/component'; -import { WorkspaceItemWrapper, WorkspaceItemContent } from './styles'; +import type { ReactNode } from 'react'; + +import { WorkspaceItemContent, WorkspaceItemWrapper } from './styles'; interface ListItemProps { name: string; diff --git a/apps/web/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceItem/LoginItem.tsx b/apps/web/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceItem/LoginItem.tsx index a000de38f6..428a296ed4 100644 --- a/apps/web/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceItem/LoginItem.tsx +++ b/apps/web/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceItem/LoginItem.tsx @@ -1,9 +1,11 @@ -import { useModal } from '@/store/globalModal'; import { styled } from '@affine/component'; + +import { useModal } from '@/store/globalModal'; + import { AffineIcon } from '../../icons/Icons'; import { - WorkspaceItemAvatar, LoginItemWrapper, + WorkspaceItemAvatar, WorkspaceItemContent, } from './styles'; diff --git a/apps/web/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceSelector.tsx b/apps/web/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceSelector.tsx index 4d28d13e7a..adf69ea871 100644 --- a/apps/web/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceSelector.tsx +++ b/apps/web/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceSelector.tsx @@ -1,9 +1,11 @@ -import { WorkspaceName, SelectorWrapper } from './styles'; import { useCallback, useState } from 'react'; -import { WorkspaceModal } from '@/components/workspace-modal'; + import { WorkspaceUnitAvatar } from '@/components/workspace-avatar'; +import { WorkspaceModal } from '@/components/workspace-modal'; import { useGlobalState } from '@/store/app'; +import { SelectorWrapper, WorkspaceName } from './styles'; + export const WorkspaceSelector = () => { const [workspaceListShow, setWorkspaceListShow] = useState(false); const currentWorkspace = useGlobalState( diff --git a/apps/web/src/components/workspace-slider-bar/index.tsx b/apps/web/src/components/workspace-slider-bar/index.tsx index 2add732b8b..dc2ab0417e 100644 --- a/apps/web/src/components/workspace-slider-bar/index.tsx +++ b/apps/web/src/components/workspace-slider-bar/index.tsx @@ -1,5 +1,26 @@ -import React, { useCallback, useState } from 'react'; +import { MuiCollapse } from '@affine/component'; +import { Tooltip } from '@affine/component'; +import { IconButton } from '@affine/component'; +import { useTranslation } from '@affine/i18n'; +import { + AllPagesIcon, + ArrowDownIcon, + FavouritesIcon, + PlusIcon, + SearchIcon, + SettingsIcon, + TrashIcon, +} from '@blocksuite/icons'; +import Link from 'next/link'; import { useRouter } from 'next/router'; +import React, { useCallback, useState } from 'react'; + +import useLocalStorage from '@/hooks/use-local-storage'; +import { usePageHelper } from '@/hooks/use-page-helper'; +import { useGlobalState } from '@/store/app'; +import { useModal } from '@/store/globalModal'; + +import { Arrow } from './icons'; import { StyledArrowButton, StyledLink, @@ -9,26 +30,7 @@ import { StyledSliderBarWrapper, StyledSubListItem, } from './style'; -import { Arrow } from './icons'; -import { - ArrowDownIcon, - SearchIcon, - AllPagesIcon, - FavouritesIcon, - TrashIcon, - PlusIcon, - SettingsIcon, -} from '@blocksuite/icons'; -import Link from 'next/link'; -import { MuiCollapse } from '@affine/component'; -import { Tooltip } from '@affine/component'; -import { useModal } from '@/store/globalModal'; -import { IconButton } from '@affine/component'; -import useLocalStorage from '@/hooks/use-local-storage'; -import { usePageHelper } from '@/hooks/use-page-helper'; -import { useTranslation } from '@affine/i18n'; import { WorkspaceSelector } from './WorkspaceSelector/WorkspaceSelector'; -import { useGlobalState } from '@/store/app'; const FavoriteList = ({ showList }: { showList: boolean }) => { const { openPage } = usePageHelper(); diff --git a/apps/web/src/hooks/use-change-page-meta.ts b/apps/web/src/hooks/use-change-page-meta.ts index 482b646562..8ec2a8782f 100644 --- a/apps/web/src/hooks/use-change-page-meta.ts +++ b/apps/web/src/hooks/use-change-page-meta.ts @@ -1,4 +1,5 @@ import { useCallback } from 'react'; + import { PageMeta } from '@/providers/app-state-provider'; import { useGlobalState } from '@/store/app'; diff --git a/apps/web/src/hooks/use-current-page-meta.ts b/apps/web/src/hooks/use-current-page-meta.ts index f8eeb71571..6f5102eabd 100644 --- a/apps/web/src/hooks/use-current-page-meta.ts +++ b/apps/web/src/hooks/use-current-page-meta.ts @@ -1,4 +1,5 @@ import { useCallback, useEffect, useState } from 'react'; + import { PageMeta } from '@/providers/app-state-provider'; import { useGlobalState } from '@/store/app'; diff --git a/apps/web/src/hooks/use-ensure-workspace.ts b/apps/web/src/hooks/use-ensure-workspace.ts index b112f18143..ab31a7dab9 100644 --- a/apps/web/src/hooks/use-ensure-workspace.ts +++ b/apps/web/src/hooks/use-ensure-workspace.ts @@ -1,7 +1,8 @@ +import { assertEquals } from '@blocksuite/global/utils'; import { useRouter } from 'next/router'; import { useCallback, useEffect, useState } from 'react'; + import { useGlobalState } from '@/store/app'; -import { assertEquals } from '@blocksuite/global/utils'; // todo: refactor with suspense mode // It is a fully effective hook diff --git a/apps/web/src/hooks/use-history-update.ts b/apps/web/src/hooks/use-history-update.ts index d133ab0189..fe0c716db6 100644 --- a/apps/web/src/hooks/use-history-update.ts +++ b/apps/web/src/hooks/use-history-update.ts @@ -1,5 +1,6 @@ import { Page } from '@blocksuite/store'; import { useEffect, useRef } from 'react'; + import { useGlobalState } from '@/store/app'; export type EventCallBack = (callback: (props: T) => void) => void; diff --git a/apps/web/src/hooks/use-members.ts b/apps/web/src/hooks/use-members.ts index 804849917d..7672865d0a 100644 --- a/apps/web/src/hooks/use-members.ts +++ b/apps/web/src/hooks/use-members.ts @@ -1,5 +1,6 @@ -import { useCallback, useEffect, useState } from 'react'; import { Member } from '@affine/datacenter'; +import { useCallback, useEffect, useState } from 'react'; + import { useGlobalState } from '@/store/app'; export const useMembers = () => { const dataCenter = useGlobalState(store => store.dataCenter); diff --git a/apps/web/src/hooks/use-page-helper.ts b/apps/web/src/hooks/use-page-helper.ts index dc92c7e198..be269623cb 100644 --- a/apps/web/src/hooks/use-page-helper.ts +++ b/apps/web/src/hooks/use-page-helper.ts @@ -1,13 +1,15 @@ -import { uuidv4, Workspace } from '@blocksuite/store'; -import { QueryContent } from '@blocksuite/store/dist/workspace/search'; -import { PageMeta } from '@/providers/app-state-provider'; -import { EditorContainer } from '@blocksuite/editor'; -import { useChangePageMeta } from '@/hooks/use-change-page-meta'; -import { useRouter } from 'next/router'; import { WorkspaceUnit } from '@affine/datacenter'; -import { useGlobalState } from '@/store/app'; +import { EditorContainer } from '@blocksuite/editor'; +import { uuidv4, Workspace } from '@blocksuite/store'; +// eslint-disable-next-line @typescript-eslint/no-restricted-imports +import type { QueryContent } from '@blocksuite/store/dist/workspace/search'; +import { useRouter } from 'next/router'; import { useCallback } from 'react'; +import { useChangePageMeta } from '@/hooks/use-change-page-meta'; +import { PageMeta } from '@/providers/app-state-provider'; +import { useGlobalState } from '@/store/app'; + export type EditorHandlers = { createPage: (params?: { pageId?: string; diff --git a/apps/web/src/hooks/use-props-updated.ts b/apps/web/src/hooks/use-props-updated.ts index 98178cc090..452bca7c9c 100644 --- a/apps/web/src/hooks/use-props-updated.ts +++ b/apps/web/src/hooks/use-props-updated.ts @@ -1,5 +1,6 @@ -import { useEffect, useRef } from 'react'; import { EditorContainer } from '@blocksuite/editor'; +import { useEffect, useRef } from 'react'; + import { useGlobalState } from '@/store/app'; export type EventCallBack = (callback: (props: T) => void) => void; diff --git a/apps/web/src/hooks/use-workspace-helper.ts b/apps/web/src/hooks/use-workspace-helper.ts index 79c5fffb0f..9b05656406 100644 --- a/apps/web/src/hooks/use-workspace-helper.ts +++ b/apps/web/src/hooks/use-workspace-helper.ts @@ -1,7 +1,8 @@ import { WorkspaceUnit } from '@affine/datacenter'; -import { useGlobalState } from '@/store/app'; import { useCallback } from 'react'; +import { useGlobalState } from '@/store/app'; + export const useWorkspaceHelper = () => { const dataCenter = useGlobalState(store => store.dataCenter); const currentWorkspace = useGlobalState( diff --git a/apps/web/src/pages/404.tsx b/apps/web/src/pages/404.tsx index 6baddddeaa..a5dd52c8c1 100644 --- a/apps/web/src/pages/404.tsx +++ b/apps/web/src/pages/404.tsx @@ -1,6 +1,7 @@ -import NotfoundPage from '@/components/404'; import Head from 'next/head'; +import NotfoundPage from '@/components/404'; + export default function Custom404() { return ( <> diff --git a/apps/web/src/pages/_app.tsx b/apps/web/src/pages/_app.tsx index 0d9eee6c2b..9db2ced001 100644 --- a/apps/web/src/pages/_app.tsx +++ b/apps/web/src/pages/_app.tsx @@ -1,30 +1,31 @@ -import type { AppProps } from 'next/app'; -import dynamic from 'next/dynamic'; import '../../public/globals.css'; import '../../public/variable.css'; import './temporary.css'; -import { Logger } from '@toeverything/pathfinder-logger'; import '@fontsource/space-mono'; import '@fontsource/poppins'; import '../utils/print-build-info'; -import ProviderComposer from '@/components/provider-composer'; -import type { PropsWithChildren, ReactElement, ReactNode } from 'react'; +import '@affine/i18n'; + +import { useTranslation } from '@affine/i18n'; +import { Logger } from '@toeverything/pathfinder-logger'; import type { NextPage } from 'next'; +import type { AppProps } from 'next/app'; +import dynamic from 'next/dynamic'; +import Head from 'next/head'; +// import AppStateProvider2 from '@/providers/app-state-provider2/provider'; +import { useRouter } from 'next/router'; +import type { PropsWithChildren, ReactElement, ReactNode } from 'react'; +import { Suspense, useEffect } from 'react'; +import React from 'react'; + +import { PageLoading } from '@/components/loading'; +import { MessageCenterHandler } from '@/components/message-center-handler'; +import ProviderComposer from '@/components/provider-composer'; import { AppStateProvider } from '@/providers/app-state-provider'; import ConfirmProvider from '@/providers/ConfirmProvider'; -import { ModalProvider } from '@/store/globalModal'; -// import AppStateProvider2 from '@/providers/app-state-provider2/provider'; - -import { useRouter } from 'next/router'; -import { Suspense, useEffect } from 'react'; -import { PageLoading } from '@/components/loading'; -import Head from 'next/head'; -import '@affine/i18n'; -import { useTranslation } from '@affine/i18n'; -import React from 'react'; import { GlobalAppProvider } from '@/store/app'; import { DataCenterPreloader } from '@/store/app/datacenter'; -import { MessageCenterHandler } from '@/components/message-center-handler'; +import { ModalProvider } from '@/store/globalModal'; const ThemeProvider = dynamic(() => import('@/providers/ThemeProvider'), { ssr: false, diff --git a/apps/web/src/pages/_document.tsx b/apps/web/src/pages/_document.tsx index 7bc23a3892..d274885ee9 100644 --- a/apps/web/src/pages/_document.tsx +++ b/apps/web/src/pages/_document.tsx @@ -1,12 +1,11 @@ -import createEmotionServer from '@emotion/server/create-instance'; import { cache } from '@emotion/css'; - +import createEmotionServer from '@emotion/server/create-instance'; import Document, { - Html, + DocumentContext, Head, + Html, Main, NextScript, - DocumentContext, } from 'next/document'; import * as React from 'react'; diff --git a/apps/web/src/pages/invite/[invite_code].tsx b/apps/web/src/pages/invite/[invite_code].tsx index 155f85f714..9719259d14 100644 --- a/apps/web/src/pages/invite/[invite_code].tsx +++ b/apps/web/src/pages/invite/[invite_code].tsx @@ -1,9 +1,10 @@ -import { useWorkspaceHelper } from '@/hooks/use-workspace-helper'; import { styled } from '@affine/component'; import { Empty } from '@affine/component'; import { useRouter } from 'next/router'; import { useEffect, useState } from 'react'; + import { PageLoading } from '@/components/loading'; +import { useWorkspaceHelper } from '@/hooks/use-workspace-helper'; // const User = ({ name, avatar }: { name: string; avatar?: string }) => { // return ( diff --git a/apps/web/src/pages/public-workspace/[workspaceId]/[pageId].tsx b/apps/web/src/pages/public-workspace/[workspaceId]/[pageId].tsx index fecdbbf13a..fe78bbabb4 100644 --- a/apps/web/src/pages/public-workspace/[workspaceId]/[pageId].tsx +++ b/apps/web/src/pages/public-workspace/[workspaceId]/[pageId].tsx @@ -1,17 +1,19 @@ -import { ReactElement, useEffect, useMemo } from 'react'; -import type { NextPageWithLayout } from '../..//_app'; import { displayFlex, styled } from '@affine/component'; -import dynamic from 'next/dynamic'; -import { useRouter } from 'next/router'; -import { PageLoading } from '@/components/loading'; import { Breadcrumbs } from '@affine/component'; import { IconButton } from '@affine/component'; -import NextLink from 'next/link'; -import { PaperIcon, SearchIcon } from '@blocksuite/icons'; -import { WorkspaceUnitAvatar } from '@/components/workspace-avatar'; -import { useModal } from '@/store/globalModal'; -import { useLoadPublicWorkspace } from '@/hooks/use-load-public-workspace'; import { useTranslation } from '@affine/i18n'; +import { PaperIcon, SearchIcon } from '@blocksuite/icons'; +import dynamic from 'next/dynamic'; +import NextLink from 'next/link'; +import { useRouter } from 'next/router'; +import { ReactElement, useEffect, useMemo } from 'react'; + +import { PageLoading } from '@/components/loading'; +import { WorkspaceUnitAvatar } from '@/components/workspace-avatar'; +import { useLoadPublicWorkspace } from '@/hooks/use-load-public-workspace'; +import { useModal } from '@/store/globalModal'; + +import type { NextPageWithLayout } from '../..//_app'; const DynamicBlocksuite = dynamic(() => import('@/components/editor'), { ssr: false, diff --git a/apps/web/src/pages/public-workspace/[workspaceId]/index.tsx b/apps/web/src/pages/public-workspace/[workspaceId]/index.tsx index f0e229adc4..522933714f 100644 --- a/apps/web/src/pages/public-workspace/[workspaceId]/index.tsx +++ b/apps/web/src/pages/public-workspace/[workspaceId]/index.tsx @@ -1,19 +1,21 @@ +import { Breadcrumbs } from '@affine/component'; +import { SearchIcon } from '@blocksuite/icons'; +import { useRouter } from 'next/router'; +import { ReactElement, useEffect, useMemo } from 'react'; + +import { PageLoading } from '@/components/loading'; import { PageList } from '@/components/page-list'; import { WorkspaceUnitAvatar } from '@/components/workspace-avatar'; import { useLoadPublicWorkspace } from '@/hooks/use-load-public-workspace'; import { PageMeta } from '@/providers/app-state-provider'; import { useModal } from '@/store/globalModal'; -import { Breadcrumbs } from '@affine/component'; -import { SearchIcon } from '@blocksuite/icons'; -import { useRouter } from 'next/router'; -import { ReactElement, useMemo, useEffect } from 'react'; + import { NavContainer, PageContainer, SearchButton, StyledBreadcrumbs, } from './[pageId]'; -import { PageLoading } from '@/components/loading'; const All = () => { const router = useRouter(); diff --git a/apps/web/src/pages/workspace/[workspaceId]/[pageId].tsx b/apps/web/src/pages/workspace/[workspaceId]/[pageId].tsx index abd6feb489..ad6a480d63 100644 --- a/apps/web/src/pages/workspace/[workspaceId]/[pageId].tsx +++ b/apps/web/src/pages/workspace/[workspaceId]/[pageId].tsx @@ -1,3 +1,8 @@ +import { useTranslation } from '@affine/i18n'; +import { assertEquals } from '@blocksuite/store'; +import dynamic from 'next/dynamic'; +import Head from 'next/head'; +import { useRouter } from 'next/router'; import { PropsWithChildren, ReactElement, @@ -5,18 +10,15 @@ import { useEffect, useState, } from 'react'; + import { EditorHeader } from '@/components/header'; import MobileModal from '@/components/mobile-modal'; -import type { NextPageWithLayout } from '../..//_app'; import WorkspaceLayout from '@/components/workspace-layout'; -import { useRouter } from 'next/router'; import { usePageHelper } from '@/hooks/use-page-helper'; -import dynamic from 'next/dynamic'; -import Head from 'next/head'; -import { useTranslation } from '@affine/i18n'; import { useGlobalState, useGlobalStateApi } from '@/store/app'; import exampleMarkdown from '@/templates/Welcome-to-AFFiNE-Alpha-Downhills.md'; -import { assertEquals } from '@blocksuite/store'; + +import type { NextPageWithLayout } from '../..//_app'; const DynamicBlocksuite = dynamic(() => import('@/components/editor'), { ssr: false, diff --git a/apps/web/src/pages/workspace/[workspaceId]/all.tsx b/apps/web/src/pages/workspace/[workspaceId]/all.tsx index a632edb44f..45f097d107 100644 --- a/apps/web/src/pages/workspace/[workspaceId]/all.tsx +++ b/apps/web/src/pages/workspace/[workspaceId]/all.tsx @@ -1,10 +1,11 @@ -import { PageList } from '@/components/page-list'; -import { AllPagesIcon } from '@blocksuite/icons'; -import { PageListHeader } from '@/components/header'; -import { ReactElement, useCallback } from 'react'; -import WorkspaceLayout from '@/components/workspace-layout'; import { useTranslation } from '@affine/i18n'; +import { AllPagesIcon } from '@blocksuite/icons'; import Head from 'next/head'; +import { ReactElement, useCallback } from 'react'; + +import { PageListHeader } from '@/components/header'; +import { PageList } from '@/components/page-list'; +import WorkspaceLayout from '@/components/workspace-layout'; import { useGlobalState } from '@/store/app'; const All = () => { diff --git a/apps/web/src/pages/workspace/[workspaceId]/favorite.tsx b/apps/web/src/pages/workspace/[workspaceId]/favorite.tsx index 0063474b92..1af3075408 100644 --- a/apps/web/src/pages/workspace/[workspaceId]/favorite.tsx +++ b/apps/web/src/pages/workspace/[workspaceId]/favorite.tsx @@ -1,10 +1,11 @@ +import { useTranslation } from '@affine/i18n'; +import { FavouritesIcon } from '@blocksuite/icons'; +import Head from 'next/head'; +import { ReactElement } from 'react'; + import { PageListHeader } from '@/components/header'; import { PageList } from '@/components/page-list'; -import { FavouritesIcon } from '@blocksuite/icons'; -import { ReactElement } from 'react'; import WorkspaceLayout from '@/components/workspace-layout'; -import { useTranslation } from '@affine/i18n'; -import Head from 'next/head'; import { useGlobalState } from '@/store/app'; export const Favorite = () => { diff --git a/apps/web/src/pages/workspace/[workspaceId]/index.tsx b/apps/web/src/pages/workspace/[workspaceId]/index.tsx index a67b5b6dd1..5c79720f23 100644 --- a/apps/web/src/pages/workspace/[workspaceId]/index.tsx +++ b/apps/web/src/pages/workspace/[workspaceId]/index.tsx @@ -1,7 +1,8 @@ -import { useCallback, useEffect } from 'react'; import { useRouter } from 'next/router'; -import useEnsureWorkspace from '@/hooks/use-ensure-workspace'; +import { useCallback, useEffect } from 'react'; + import { PageLoading } from '@/components/loading'; +import useEnsureWorkspace from '@/hooks/use-ensure-workspace'; import usePageHelper from '@/hooks/use-page-helper'; import { useGlobalState } from '@/store/app'; diff --git a/apps/web/src/pages/workspace/[workspaceId]/setting.tsx b/apps/web/src/pages/workspace/[workspaceId]/setting.tsx index 4dc3afc022..90b788839b 100644 --- a/apps/web/src/pages/workspace/[workspaceId]/setting.tsx +++ b/apps/web/src/pages/workspace/[workspaceId]/setting.tsx @@ -1,31 +1,32 @@ +import { styled } from '@affine/component'; +import { WorkspaceUnit } from '@affine/datacenter'; +import { useTranslation } from '@affine/i18n'; +import { SettingsIcon } from '@blocksuite/icons'; +import Head from 'next/head'; +import { + CSSProperties, + ReactElement, + ReactNode, + startTransition, + useCallback, + useEffect, + useState, +} from 'react'; + +import { PageListHeader } from '@/components/header'; +import WorkspaceLayout from '@/components/workspace-layout'; +import { + ExportPage, + GeneralPage, + MembersPage, + PublishPage, + SyncPage, +} from '@/components/workspace-setting'; import { StyledSettingContainer, StyledSettingContent, WorkspaceSettingTagItem, } from '@/components/workspace-setting/style'; -import { - ReactElement, - ReactNode, - useState, - CSSProperties, - useEffect, - startTransition, - useCallback, -} from 'react'; -import { - GeneralPage, - MembersPage, - PublishPage, - ExportPage, - SyncPage, -} from '@/components/workspace-setting'; -import { SettingsIcon } from '@blocksuite/icons'; -import WorkspaceLayout from '@/components/workspace-layout'; -import { WorkspaceUnit } from '@affine/datacenter'; -import { useTranslation } from '@affine/i18n'; -import { PageListHeader } from '@/components/header'; -import Head from 'next/head'; -import { styled } from '@affine/component'; import { useGlobalState } from '@/store/app'; const useTabMap = () => { diff --git a/apps/web/src/pages/workspace/[workspaceId]/trash.tsx b/apps/web/src/pages/workspace/[workspaceId]/trash.tsx index 64677277e0..9f3cbacbcf 100644 --- a/apps/web/src/pages/workspace/[workspaceId]/trash.tsx +++ b/apps/web/src/pages/workspace/[workspaceId]/trash.tsx @@ -1,10 +1,11 @@ +import { useTranslation } from '@affine/i18n'; +import { TrashIcon } from '@blocksuite/icons'; +import Head from 'next/head'; +import { ReactElement, useCallback } from 'react'; + import { PageListHeader } from '@/components/header'; import { PageList } from '@/components/page-list'; -import { TrashIcon } from '@blocksuite/icons'; -import { ReactElement, useCallback } from 'react'; import WorkspaceLayout from '@/components/workspace-layout'; -import { useTranslation } from '@affine/i18n'; -import Head from 'next/head'; import { useGlobalState } from '@/store/app'; export const Trash = () => { diff --git a/apps/web/src/pages/workspace/index.tsx b/apps/web/src/pages/workspace/index.tsx index dacc2ab4fd..bbc89cdf83 100644 --- a/apps/web/src/pages/workspace/index.tsx +++ b/apps/web/src/pages/workspace/index.tsx @@ -1,7 +1,8 @@ -import { useCallback, useEffect } from 'react'; import { useRouter } from 'next/router'; -import useEnsureWorkspace from '@/hooks/use-ensure-workspace'; +import { useCallback, useEffect } from 'react'; + import { PageLoading } from '@/components/loading'; +import useEnsureWorkspace from '@/hooks/use-ensure-workspace'; import { useGlobalState } from '@/store/app'; export const WorkspaceIndex = () => { diff --git a/apps/web/src/providers/ConfirmProvider.tsx b/apps/web/src/providers/ConfirmProvider.tsx index 2e7559e9e3..5ba3e0d1fc 100644 --- a/apps/web/src/providers/ConfirmProvider.tsx +++ b/apps/web/src/providers/ConfirmProvider.tsx @@ -1,6 +1,6 @@ -import { createContext, useContext, useMemo } from 'react'; -import type { PropsWithChildren } from 'react'; import { Confirm, ConfirmProps } from '@affine/component'; +import type { PropsWithChildren } from 'react'; +import { createContext, useContext, useMemo } from 'react'; import { createStore, useStore } from 'zustand'; import { combine, subscribeWithSelector } from 'zustand/middleware'; import { UseBoundStore } from 'zustand/react'; diff --git a/apps/web/src/providers/ThemeProvider.tsx b/apps/web/src/providers/ThemeProvider.tsx index 2001b7a096..e4568fe66b 100644 --- a/apps/web/src/providers/ThemeProvider.tsx +++ b/apps/web/src/providers/ThemeProvider.tsx @@ -1,10 +1,3 @@ -import { createContext, useContext, useEffect, useState } from 'react'; -import { Global, css } from '@emotion/react'; -import { - ThemeProvider as MuiThemeProvider, - createTheme as MuiCreateTheme, -} from '@mui/material/styles'; -import type { PropsWithChildren } from 'react'; import { Theme, ThemeMode, @@ -12,12 +5,20 @@ import { ThemeProviderValue, } from '@affine/component'; import { - getLightTheme, getDarkTheme, + getLightTheme, globalThemeVariables, ThemeProvider as ComponentThemeProvider, } from '@affine/component'; -import { SystemThemeHelper, localStorageThemeHelper } from '@affine/component'; +import { localStorageThemeHelper, SystemThemeHelper } from '@affine/component'; +import { css, Global } from '@emotion/react'; +import { + createTheme as MuiCreateTheme, + ThemeProvider as MuiThemeProvider, +} from '@mui/material/styles'; +import type { PropsWithChildren } from 'react'; +import { createContext, useContext, useEffect, useState } from 'react'; + import useCurrentPageMeta from '@/hooks/use-current-page-meta'; export const ThemeContext = createContext({ diff --git a/apps/web/src/providers/app-state-provider/Provider.tsx b/apps/web/src/providers/app-state-provider/Provider.tsx index 9c0979b203..6916a8caaa 100644 --- a/apps/web/src/providers/app-state-provider/Provider.tsx +++ b/apps/web/src/providers/app-state-provider/Provider.tsx @@ -1,9 +1,11 @@ -import { createContext, useContext, useEffect, useState } from 'react'; -import type { PropsWithChildren } from 'react'; -import { AppStateContext } from './interface'; import type { Disposable } from '@blocksuite/global/utils'; +import type { PropsWithChildren } from 'react'; +import { createContext, useContext, useEffect, useState } from 'react'; + import { useGlobalState } from '@/store/app'; +import { AppStateContext } from './interface'; + type AppStateContextProps = PropsWithChildren>; export const AppState = createContext({} as AppStateContext); diff --git a/apps/web/src/providers/app-state-provider/index.ts b/apps/web/src/providers/app-state-provider/index.ts index b6581f766e..0668aac381 100644 --- a/apps/web/src/providers/app-state-provider/index.ts +++ b/apps/web/src/providers/app-state-provider/index.ts @@ -1,2 +1,2 @@ -export * from './Provider'; export * from './interface'; +export * from './Provider'; diff --git a/apps/web/src/providers/app-state-provider/interface.ts b/apps/web/src/providers/app-state-provider/interface.ts index cf484fa34d..d4c6226f97 100644 --- a/apps/web/src/providers/app-state-provider/interface.ts +++ b/apps/web/src/providers/app-state-provider/interface.ts @@ -1,5 +1,4 @@ import type { EditorContainer } from '@blocksuite/editor'; - import type { Page as StorePage, PageMeta as StorePageMeta, diff --git a/apps/web/src/store/app/blocksuite/index.ts b/apps/web/src/store/app/blocksuite/index.ts index 438479103d..8d12e7cab6 100644 --- a/apps/web/src/store/app/blocksuite/index.ts +++ b/apps/web/src/store/app/blocksuite/index.ts @@ -1,6 +1,7 @@ -import { Page, Workspace } from '@blocksuite/store'; -import { EditorContainer } from '@blocksuite/editor'; import { BlockHub } from '@blocksuite/blocks'; +import { EditorContainer } from '@blocksuite/editor'; +import { Page, Workspace } from '@blocksuite/store'; + import { GlobalActionsCreator } from '@/store/app'; export interface BlockSuiteState { diff --git a/apps/web/src/store/app/datacenter/index.tsx b/apps/web/src/store/app/datacenter/index.tsx index 3905a75b07..ea55fddd96 100644 --- a/apps/web/src/store/app/datacenter/index.tsx +++ b/apps/web/src/store/app/datacenter/index.tsx @@ -1,14 +1,15 @@ +import type { DataCenter } from '@affine/datacenter'; +import { getDataCenter, WorkspaceUnit } from '@affine/datacenter'; +import { DisposableGroup } from '@blocksuite/global/utils'; +import React, { useCallback, useEffect } from 'react'; + +import { PageMeta } from '@/providers/app-state-provider'; +import { createDefaultWorkspace } from '@/providers/app-state-provider/utils'; import { GlobalActionsCreator, useGlobalState, useGlobalStateApi, } from '@/store/app'; -import type { DataCenter } from '@affine/datacenter'; -import { PageMeta } from '@/providers/app-state-provider'; -import { getDataCenter, WorkspaceUnit } from '@affine/datacenter'; -import { createDefaultWorkspace } from '@/providers/app-state-provider/utils'; -import React, { useCallback, useEffect } from 'react'; -import { DisposableGroup } from '@blocksuite/global/utils'; export type DataCenterState = { readonly dataCenter: DataCenter; diff --git a/apps/web/src/store/app/index.tsx b/apps/web/src/store/app/index.tsx index 65fffcbf29..9d9b48c4f8 100644 --- a/apps/web/src/store/app/index.tsx +++ b/apps/web/src/store/app/index.tsx @@ -3,24 +3,25 @@ import { createContext, useContext, useMemo } from 'react'; import { createStore, StateCreator, useStore } from 'zustand'; import { combine, subscribeWithSelector } from 'zustand/middleware'; import type { UseBoundStore } from 'zustand/react'; + import { BlockSuiteActions, BlockSuiteState, createBlockSuiteActions, createBlockSuiteState, } from '@/store/app/blocksuite'; -import { - createUserActions, - createUserState, - UserActions, - UserState, -} from '@/store/app/user'; import { createDataCenterActions, createDataCenterState, DataCenterActions, DataCenterState, } from '@/store/app/datacenter'; +import { + createUserActions, + createUserState, + UserActions, + UserState, +} from '@/store/app/user'; export type GlobalActionsCreator = StateCreator< Store, diff --git a/apps/web/src/store/app/user/index.ts b/apps/web/src/store/app/user/index.ts index 5257f73a28..dd3809b78b 100644 --- a/apps/web/src/store/app/user/index.ts +++ b/apps/web/src/store/app/user/index.ts @@ -1,6 +1,7 @@ -import { GlobalActionsCreator } from '@/store/app'; import { User } from '@affine/datacenter'; +import { GlobalActionsCreator } from '@/store/app'; + export interface UserState { user: User | null; isOwner: boolean; diff --git a/apps/web/src/store/globalModal/index.tsx b/apps/web/src/store/globalModal/index.tsx index 1fd808e475..c718bbffd1 100644 --- a/apps/web/src/store/globalModal/index.tsx +++ b/apps/web/src/store/globalModal/index.tsx @@ -1,3 +1,4 @@ +import { useRouter } from 'next/router'; import type React from 'react'; import { createContext, @@ -9,13 +10,13 @@ import { import { createStore, useStore } from 'zustand'; import { combine, subscribeWithSelector } from 'zustand/middleware'; import { UseBoundStore } from 'zustand/react'; + import ContactModal from '@/components/contact-modal'; -import ShortcutsModal from '@/components/shortcuts-modal'; -import QuickSearch from '@/components/quick-search'; -import { LoginModal } from '@/components/login-modal'; -import ImportModal from '@/components/import'; import { EnableWorkspaceModal } from '@/components/enable-workspace-modal'; -import { useRouter } from 'next/router'; +import ImportModal from '@/components/import'; +import { LoginModal } from '@/components/login-modal'; +import QuickSearch from '@/components/quick-search'; +import ShortcutsModal from '@/components/shortcuts-modal'; export type ModalState = { contact: boolean; diff --git a/apps/web/src/utils/__tests__/get-is-mobile.spec.ts b/apps/web/src/utils/__tests__/get-is-mobile.spec.ts index 53bf52bc87..492d6a6f64 100644 --- a/apps/web/src/utils/__tests__/get-is-mobile.spec.ts +++ b/apps/web/src/utils/__tests__/get-is-mobile.spec.ts @@ -1,4 +1,5 @@ -import { test, expect } from '@playwright/test'; +import { expect, test } from '@playwright/test'; + import { isMobile } from '../get-is-mobile'; test.describe('get-is-mobile', () => { diff --git a/apps/web/src/utils/index.ts b/apps/web/src/utils/index.ts index 2d05a590cd..97bdecdada 100644 --- a/apps/web/src/utils/index.ts +++ b/apps/web/src/utils/index.ts @@ -1,7 +1,4 @@ -export { isDev } from './env'; - -export * from './useragent'; - -export * from './tools'; - export * from './colors'; +export { isDev } from './env'; +export * from './tools'; +export * from './useragent'; diff --git a/apps/web/src/utils/print-build-info.ts b/apps/web/src/utils/print-build-info.ts index 5cbe74e71b..ff427844be 100644 --- a/apps/web/src/utils/print-build-info.ts +++ b/apps/web/src/utils/print-build-info.ts @@ -1,4 +1,5 @@ import getConfig from 'next/config'; + import { isDev } from './env'; type Config = { BUILD_DATE: string; diff --git a/package.json b/package.json index 1268e24118..206094e0c9 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,8 @@ "build:storybook": " pnpm -r build-storybook", "export": "pnpm --filter @affine/app export", "start": "pnpm --filter @affine/app start", - "lint": "pnpm --filter @affine/app lint", + "lint": "eslint . --ext .js,.ts,.mts,.tsx", + "lint:fix": "eslint . --ext .js,.ts,.mts,.tsx --fix", "test": "playwright test", "test:coverage": "cross-env COVERAGE=true pnpm test -- --forbid-only", "test:unit": "vitest --run", @@ -36,10 +37,13 @@ "@vitest/coverage-istanbul": "^0.28.5", "concurrently": "^7.6.0", "cross-env": "^7.0.3", - "eslint": "^8.30.0", - "eslint-config-next": "12.3.1", + "eslint": "^8.34.0", "eslint-config-prettier": "^8.5.0", + "eslint-plugin-import": "^2.27.5", "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-react": "^7.32.2", + "eslint-plugin-simple-import-sort": "^10.0.0", + "eslint-plugin-unused-imports": "^2.0.0", "fake-indexeddb": "4.0.1", "got": "^12.5.3", "husky": "^8.0.2", diff --git a/packages/component/src/components/BlockSuiteErrorBoundary.tsx b/packages/component/src/components/BlockSuiteErrorBoundary.tsx index 6d5cf3cb49..37fa02319f 100644 --- a/packages/component/src/components/BlockSuiteErrorBoundary.tsx +++ b/packages/component/src/components/BlockSuiteErrorBoundary.tsx @@ -1,5 +1,5 @@ -import React, { Component, ErrorInfo } from 'react'; import { MigrationError } from '@blocksuite/global/error'; +import React, { Component, ErrorInfo } from 'react'; export type BlockSuiteErrorBoundaryProps = React.PropsWithChildren; @@ -43,6 +43,7 @@ export class BlockSuiteErrorBoundary extends Component< BlockSuite Github Issue diff --git a/packages/component/src/index.ts b/packages/component/src/index.ts index ffe4e0b430..f372317228 100644 --- a/packages/component/src/index.ts +++ b/packages/component/src/index.ts @@ -1,4 +1,5 @@ // export * from './components/BlockSuiteEditor'; +export * from './styles'; export * from './ui/breadcrumbs'; export * from './ui/button'; export * from './ui/confirm'; @@ -8,10 +9,9 @@ export * from './ui/input'; export * from './ui/layout'; export * from './ui/menu'; export * from './ui/modal'; +export * from './ui/mui'; export * from './ui/popper'; export * from './ui/shared/Container'; export * from './ui/table'; export * from './ui/toast'; export * from './ui/tooltip'; -export * from './ui/mui'; -export * from './styles'; diff --git a/packages/component/src/stories/BlockSuiteEditor.stories.tsx b/packages/component/src/stories/BlockSuiteEditor.stories.tsx index d25fa0f259..a30960044d 100644 --- a/packages/component/src/stories/BlockSuiteEditor.stories.tsx +++ b/packages/component/src/stories/BlockSuiteEditor.stories.tsx @@ -1,12 +1,13 @@ /* deepscan-disable USELESS_ARROW_FUNC_BIND */ -import React, { Suspense } from 'react'; -import { Meta, Story } from '@storybook/react'; import { builtInSchemas } from '@blocksuite/blocks/models'; +import { Page, Workspace } from '@blocksuite/store'; +import { Meta, Story } from '@storybook/react'; +import React, { Suspense } from 'react'; + import { BlockSuiteEditor, BlockSuiteEditorProps, } from '../components/BlockSuiteEditor'; -import { Page, Workspace } from '@blocksuite/store'; const worksapce = new Workspace({ room: 'test', diff --git a/packages/component/src/stories/BlockSuiteErrorBoundary.stories.tsx b/packages/component/src/stories/BlockSuiteErrorBoundary.stories.tsx index 892bd30c4f..908a69e74d 100644 --- a/packages/component/src/stories/BlockSuiteErrorBoundary.stories.tsx +++ b/packages/component/src/stories/BlockSuiteErrorBoundary.stories.tsx @@ -1,11 +1,12 @@ /* deepscan-disable USELESS_ARROW_FUNC_BIND */ +import { MigrationError } from '@blocksuite/global/error'; import { Meta, StoryFn } from '@storybook/react'; import React from 'react'; + import { BlockSuiteErrorBoundary, BlockSuiteErrorBoundaryProps, } from '../components/BlockSuiteErrorBoundary'; -import { MigrationError } from '@blocksuite/global/error'; export default { title: 'BlockSuite/ErrorBoundary', @@ -22,5 +23,8 @@ export const ErrorComponent = () => { export const Primary = Template.bind(undefined); Primary.args = { - children: [There is no error, ], + children: [ + There is no error, + , + ], }; diff --git a/packages/component/src/stories/Breadcrumbs.stories.tsx b/packages/component/src/stories/Breadcrumbs.stories.tsx index 6cc0ba07d4..e3ac5d0cb1 100644 --- a/packages/component/src/stories/Breadcrumbs.stories.tsx +++ b/packages/component/src/stories/Breadcrumbs.stories.tsx @@ -1,8 +1,9 @@ /* deepscan-disable USELESS_ARROW_FUNC_BIND */ -import React from 'react'; -import { Meta, Story } from '@storybook/react'; -import { Breadcrumbs } from '..'; import { Link, Typography } from '@mui/material'; +import { Meta, Story } from '@storybook/react'; +import React from 'react'; + +import { Breadcrumbs } from '..'; export default { title: 'AFFiNE/Breadcrumbs', @@ -14,12 +15,14 @@ const Template: Story = args => ; export const Primary = Template.bind(undefined); Primary.args = { children: [ - + AFFiNE , - + Docs , - Introduction, + + Introduction + , ], }; diff --git a/packages/component/src/stories/Button.stories.tsx b/packages/component/src/stories/Button.stories.tsx index 7030f37128..a8d731ca4a 100644 --- a/packages/component/src/stories/Button.stories.tsx +++ b/packages/component/src/stories/Button.stories.tsx @@ -1,6 +1,7 @@ /* deepscan-disable USELESS_ARROW_FUNC_BIND */ -import React from 'react'; import { Meta, Story } from '@storybook/react'; +import React from 'react'; + import { Button } from '..'; import { ButtonProps } from '../ui/button/interface'; diff --git a/packages/component/src/styles/index.ts b/packages/component/src/styles/index.ts index 2513200048..61fc7f9f7a 100644 --- a/packages/component/src/styles/index.ts +++ b/packages/component/src/styles/index.ts @@ -1,5 +1,5 @@ +export * from './helper'; export * from './styled'; export * from './theme'; -export * from './helper'; export * from './types'; export * from './utils'; diff --git a/packages/component/src/styles/styled.tsx b/packages/component/src/styles/styled.tsx index 126956155b..ade405c725 100644 --- a/packages/component/src/styles/styled.tsx +++ b/packages/component/src/styles/styled.tsx @@ -1,6 +1,7 @@ import { ThemeProvider as EmotionThemeProvider } from '@emotion/react'; import emotionStyled from '@emotion/styled'; import type { PropsWithChildren } from 'react'; + import { AffineTheme } from './types'; export { css, keyframes } from '@emotion/react'; export const styled = emotionStyled; diff --git a/packages/component/src/styles/theme.ts b/packages/component/src/styles/theme.ts index 4963f87aed..fd7a731247 100644 --- a/packages/component/src/styles/theme.ts +++ b/packages/component/src/styles/theme.ts @@ -1,7 +1,9 @@ import '@emotion/react'; -import { AffineTheme, AffineThemeCSSVariables, ThemeMode } from './types'; + import type { EditorContainer } from '@blocksuite/editor'; +import { AffineTheme, AffineThemeCSSVariables, ThemeMode } from './types'; + const basicFontFamily = 'apple-system, BlinkMacSystemFont,Helvetica Neue, Tahoma, PingFang SC, Microsoft Yahei, Arial,Hiragino Sans GB, sans-serif, Apple Color Emoji, Segoe UI Emoji,Segoe UI Symbol, Noto Color Emoji'; diff --git a/packages/component/src/styles/utils/index.ts b/packages/component/src/styles/utils/index.ts index cf6f6acd99..d306f2d3e4 100644 --- a/packages/component/src/styles/utils/index.ts +++ b/packages/component/src/styles/utils/index.ts @@ -1,2 +1,2 @@ -export * from './systemThemeHelper'; export * from './localStorageThemeHelper'; +export * from './systemThemeHelper'; diff --git a/packages/component/src/ui/breadcrumbs/index.ts b/packages/component/src/ui/breadcrumbs/index.ts index 3cb3c80dbf..dae3ad3226 100644 --- a/packages/component/src/ui/breadcrumbs/index.ts +++ b/packages/component/src/ui/breadcrumbs/index.ts @@ -1,4 +1,5 @@ import MuiBreadcrumbs from '@mui/material/Breadcrumbs'; + import { styled } from '../../styles'; export const Breadcrumbs = styled(MuiBreadcrumbs)(({ theme }) => { diff --git a/packages/component/src/ui/button/Button.tsx b/packages/component/src/ui/button/Button.tsx index 1e77b58f5a..7a085036b4 100644 --- a/packages/component/src/ui/button/Button.tsx +++ b/packages/component/src/ui/button/Button.tsx @@ -1,9 +1,9 @@ -import { cloneElement, Children, forwardRef } from 'react'; -import { StyledButton } from './styles'; +import { Children, cloneElement, forwardRef } from 'react'; import { ButtonProps } from './interface'; -import { getSize } from './utils'; import { Loading } from './Loading'; +import { StyledButton } from './styles'; +import { getSize } from './utils'; export const Button = forwardRef( ( diff --git a/packages/component/src/ui/button/IconButton.tsx b/packages/component/src/ui/button/IconButton.tsx index 5166af1a3e..3611dc2cbe 100644 --- a/packages/component/src/ui/button/IconButton.tsx +++ b/packages/component/src/ui/button/IconButton.tsx @@ -1,11 +1,12 @@ import { - HTMLAttributes, - cloneElement, - ReactElement, Children, + cloneElement, CSSProperties, forwardRef, + HTMLAttributes, + ReactElement, } from 'react'; + import { StyledIconButton } from './styles'; const SIZE_SMALL = 'small' as const; diff --git a/packages/component/src/ui/button/TextButton.tsx b/packages/component/src/ui/button/TextButton.tsx index 50068ec8be..b7cac00415 100644 --- a/packages/component/src/ui/button/TextButton.tsx +++ b/packages/component/src/ui/button/TextButton.tsx @@ -1,7 +1,7 @@ -import { cloneElement, Children, forwardRef } from 'react'; -import { StyledTextButton } from './styles'; +import { Children, cloneElement, forwardRef } from 'react'; import { ButtonProps } from './interface'; +import { StyledTextButton } from './styles'; import { getSize } from './utils'; export const TextButton = forwardRef( diff --git a/packages/component/src/ui/button/index.ts b/packages/component/src/ui/button/index.ts index cae8df7c0c..feefc1188d 100644 --- a/packages/component/src/ui/button/index.ts +++ b/packages/component/src/ui/button/index.ts @@ -1,3 +1,3 @@ -export * from './IconButton'; export * from './Button'; +export * from './IconButton'; export * from './TextButton'; diff --git a/packages/component/src/ui/button/styles.ts b/packages/component/src/ui/button/styles.ts index e751acd76e..f05cd28f16 100644 --- a/packages/component/src/ui/button/styles.ts +++ b/packages/component/src/ui/button/styles.ts @@ -1,7 +1,8 @@ -import { absoluteCenter, displayInlineFlex, styled } from '../../styles'; import { CSSProperties } from 'react'; + +import { absoluteCenter, displayInlineFlex, styled } from '../../styles'; import { ButtonProps } from './interface'; -import { getSize, getButtonColors } from './utils'; +import { getButtonColors, getSize } from './utils'; export const StyledIconButton = styled('button', { shouldForwardProp: prop => { diff --git a/packages/component/src/ui/button/utils.ts b/packages/component/src/ui/button/utils.ts index 5747d302d2..6c69550415 100644 --- a/packages/component/src/ui/button/utils.ts +++ b/packages/component/src/ui/button/utils.ts @@ -1,9 +1,9 @@ import { AffineTheme } from '../../styles'; import { - SIZE_SMALL, - SIZE_MIDDLE, - SIZE_DEFAULT, ButtonProps, + SIZE_DEFAULT, + SIZE_MIDDLE, + SIZE_SMALL, } from './interface'; // TODO: Designer is not sure about the size, Now, is just use default size diff --git a/packages/component/src/ui/confirm/Confirm.tsx b/packages/component/src/ui/confirm/Confirm.tsx index da7a32ef78..75a5488d06 100644 --- a/packages/component/src/ui/confirm/Confirm.tsx +++ b/packages/component/src/ui/confirm/Confirm.tsx @@ -1,14 +1,15 @@ +import { useTranslation } from '@affine/i18n'; import { useState } from 'react'; + +import { Button } from '../button'; import { Modal, ModalCloseButton, ModalProps } from '../modal'; import { - StyledRowButtonWrapper, StyledColumnButtonWrapper, StyledConfirmContent, StyledConfirmTitle, StyledModalWrapper, + StyledRowButtonWrapper, } from './styles'; -import { Button } from '../button'; -import { useTranslation } from '@affine/i18n'; export type ConfirmProps = { title?: string; content?: string; diff --git a/packages/component/src/ui/divider/index.ts b/packages/component/src/ui/divider/index.ts index 71ceecbac0..eb2684c4fd 100644 --- a/packages/component/src/ui/divider/index.ts +++ b/packages/component/src/ui/divider/index.ts @@ -1,4 +1,5 @@ import MuiDivider from '@mui/material/Divider'; + import { styled } from '../../styles'; export const Divider = styled(MuiDivider)(({ theme }) => { diff --git a/packages/component/src/ui/empty/Empty.tsx b/packages/component/src/ui/empty/Empty.tsx index ff479a8e48..f4cfb75ca5 100644 --- a/packages/component/src/ui/empty/Empty.tsx +++ b/packages/component/src/ui/empty/Empty.tsx @@ -1,6 +1,7 @@ import { CSSProperties } from 'react'; -import { EmptySVG } from './EmptySVG'; + import { styled } from '../../styles'; +import { EmptySVG } from './EmptySVG'; export type EmptyContentProps = { width?: CSSProperties['width']; diff --git a/packages/component/src/ui/input/Input.tsx b/packages/component/src/ui/input/Input.tsx index 8d08998d65..32df1c1add 100644 --- a/packages/component/src/ui/input/Input.tsx +++ b/packages/component/src/ui/input/Input.tsx @@ -1,11 +1,12 @@ import { + FocusEventHandler, + HTMLAttributes, InputHTMLAttributes, + KeyboardEventHandler, useEffect, useState, - FocusEventHandler, - KeyboardEventHandler, - HTMLAttributes, } from 'react'; + import { StyledInput } from './style'; type inputProps = { diff --git a/packages/component/src/ui/layout/Content.tsx b/packages/component/src/ui/layout/Content.tsx index 7bf126095e..d42e3c4d7a 100644 --- a/packages/component/src/ui/layout/Content.tsx +++ b/packages/component/src/ui/layout/Content.tsx @@ -1,4 +1,5 @@ import { CSSProperties } from 'react'; + import { styled, textEllipsis } from '../../styles'; // This component should be just used to be contained the text content diff --git a/packages/component/src/ui/layout/Wrapper.tsx b/packages/component/src/ui/layout/Wrapper.tsx index 0edb5a68de..bea1e931dc 100644 --- a/packages/component/src/ui/layout/Wrapper.tsx +++ b/packages/component/src/ui/layout/Wrapper.tsx @@ -1,4 +1,5 @@ import type { CSSProperties } from 'react'; + import { styled } from '../../styles'; export type WrapperProps = { diff --git a/packages/component/src/ui/layout/index.ts b/packages/component/src/ui/layout/index.ts index 08a825ec01..f74f6b36be 100644 --- a/packages/component/src/ui/layout/index.ts +++ b/packages/component/src/ui/layout/index.ts @@ -1,2 +1,2 @@ -export * from './Wrapper'; export * from './Content'; +export * from './Wrapper'; diff --git a/packages/component/src/ui/menu/Menu.tsx b/packages/component/src/ui/menu/Menu.tsx index 3ec3baa29f..c9bd531d59 100644 --- a/packages/component/src/ui/menu/Menu.tsx +++ b/packages/component/src/ui/menu/Menu.tsx @@ -1,5 +1,6 @@ -import { Popper, type PopperProps } from '../popper'; import { TooltipProps } from '@mui/material'; + +import { Popper, type PopperProps } from '../popper'; import { StyledMenuWrapper } from './styles'; export const Menu = (props: PopperProps & Omit) => { diff --git a/packages/component/src/ui/menu/MenuItem.tsx b/packages/component/src/ui/menu/MenuItem.tsx index 45e40fb649..b23a0d79bf 100644 --- a/packages/component/src/ui/menu/MenuItem.tsx +++ b/packages/component/src/ui/menu/MenuItem.tsx @@ -5,7 +5,8 @@ import { PropsWithChildren, ReactElement, } from 'react'; -import { StyledMenuItem, StyledArrow } from './styles'; + +import { StyledArrow, StyledMenuItem } from './styles'; export type IconMenuProps = PropsWithChildren<{ isDir?: boolean; diff --git a/packages/component/src/ui/menu/styles.ts b/packages/component/src/ui/menu/styles.ts index a3f8fe0bfb..1743932778 100644 --- a/packages/component/src/ui/menu/styles.ts +++ b/packages/component/src/ui/menu/styles.ts @@ -1,6 +1,7 @@ +import { ArrowRightIcon } from '@blocksuite/icons'; + import { displayFlex, styled } from '../../styles'; import StyledPopperContainer from '../shared/Container'; -import { ArrowRightIcon } from '@blocksuite/icons'; export const StyledMenuWrapper = styled(StyledPopperContainer)(({ theme }) => { return { diff --git a/packages/component/src/ui/modal/Modal.tsx b/packages/component/src/ui/modal/Modal.tsx index bce56fe98b..72d20a5869 100644 --- a/packages/component/src/ui/modal/Modal.tsx +++ b/packages/component/src/ui/modal/Modal.tsx @@ -1,6 +1,7 @@ -import Fade from '@mui/material/Fade'; -import { StyledModal, StyledBackdrop } from './styles'; import { ModalUnstyledOwnProps } from '@mui/base/ModalUnstyled'; +import Fade from '@mui/material/Fade'; + +import { StyledBackdrop, StyledModal } from './styles'; const Backdrop = ({ open, diff --git a/packages/component/src/ui/modal/ModalCloseButton.tsx b/packages/component/src/ui/modal/ModalCloseButton.tsx index 506e930a58..9890c8ad7d 100644 --- a/packages/component/src/ui/modal/ModalCloseButton.tsx +++ b/packages/component/src/ui/modal/ModalCloseButton.tsx @@ -1,7 +1,8 @@ -import { HTMLAttributes } from 'react'; import { CloseIcon } from '@blocksuite/icons'; -import { IconButton, IconButtonProps } from '../button/IconButton'; +import { HTMLAttributes } from 'react'; + import { styled } from '../../styles'; +import { IconButton, IconButtonProps } from '../button/IconButton'; export type ModalCloseButtonProps = { top?: number; right?: number; diff --git a/packages/component/src/ui/modal/ModalWrapper.tsx b/packages/component/src/ui/modal/ModalWrapper.tsx index 82c097f3f7..fe155ef8e7 100644 --- a/packages/component/src/ui/modal/ModalWrapper.tsx +++ b/packages/component/src/ui/modal/ModalWrapper.tsx @@ -1,4 +1,5 @@ import { CSSProperties } from 'react'; + import { styled } from '../../styles'; export const ModalWrapper = styled.div<{ diff --git a/packages/component/src/ui/modal/index.tsx b/packages/component/src/ui/modal/index.tsx index 1d4c80d99d..102855e162 100644 --- a/packages/component/src/ui/modal/index.tsx +++ b/packages/component/src/ui/modal/index.tsx @@ -1,7 +1,7 @@ import Modal from './Modal'; +export * from './Modal'; export * from './ModalCloseButton'; export * from './ModalWrapper'; -export * from './Modal'; export default Modal; diff --git a/packages/component/src/ui/modal/styles.ts b/packages/component/src/ui/modal/styles.ts index 6512a53a45..c4cd161052 100644 --- a/packages/component/src/ui/modal/styles.ts +++ b/packages/component/src/ui/modal/styles.ts @@ -1,8 +1,9 @@ -import { styled } from '../../styles'; import ModalUnstyled from '@mui/base/ModalUnstyled'; -import { Wrapper } from '../layout'; import { CSSProperties } from 'react'; +import { styled } from '../../styles'; +import { Wrapper } from '../layout'; + export const StyledBackdrop = styled.div(({ theme }) => { return { zIndex: '-1', diff --git a/packages/component/src/ui/mui.ts b/packages/component/src/ui/mui.ts index 5e144cc5a3..bb85e40fe3 100644 --- a/packages/component/src/ui/mui.ts +++ b/packages/component/src/ui/mui.ts @@ -1,17 +1,17 @@ +import MuiClickAwayListener from '@mui/base/ClickAwayListener'; +import MuiAvatar from '@mui/material/Avatar'; import MuiBreadcrumbs from '@mui/material/Breadcrumbs'; import MuiCollapse from '@mui/material/Collapse'; -import MuiSlide from '@mui/material/Slide'; -import MuiAvatar from '@mui/material/Avatar'; -import MuiGrow from '@mui/material/Grow'; -import MuiClickAwayListener from '@mui/base/ClickAwayListener'; import MuiFade from '@mui/material/Fade'; +import MuiGrow from '@mui/material/Grow'; +import MuiSlide from '@mui/material/Slide'; export { - MuiBreadcrumbs, - MuiCollapse, - MuiSlide, MuiAvatar, - MuiGrow, - MuiFade, + MuiBreadcrumbs, MuiClickAwayListener, + MuiCollapse, + MuiFade, + MuiGrow, + MuiSlide, }; diff --git a/packages/component/src/ui/popper/PopoverArrow.tsx b/packages/component/src/ui/popper/PopoverArrow.tsx index a25ea08724..1f49d5da52 100644 --- a/packages/component/src/ui/popper/PopoverArrow.tsx +++ b/packages/component/src/ui/popper/PopoverArrow.tsx @@ -1,9 +1,10 @@ import { forwardRef } from 'react'; + import { styled } from '../../styles'; import { PopperArrowProps } from './interface'; export const PopperArrow = forwardRef( - ({ placement }, ref) => { + function PopperArrow({ placement }, ref) { return ; } ); diff --git a/packages/component/src/ui/popper/Popper.tsx b/packages/component/src/ui/popper/Popper.tsx index 3fd3e8100c..01791dfe8a 100644 --- a/packages/component/src/ui/popper/Popper.tsx +++ b/packages/component/src/ui/popper/Popper.tsx @@ -1,17 +1,16 @@ +import ClickAwayListener from '@mui/base/ClickAwayListener'; +import PopperUnstyled from '@mui/base/PopperUnstyled'; +import Grow from '@mui/material/Grow'; import { + cloneElement, useEffect, useImperativeHandle, useMemo, useRef, useState, - cloneElement, } from 'react'; -import PopperUnstyled from '@mui/base/PopperUnstyled'; -import ClickAwayListener from '@mui/base/ClickAwayListener'; -import Grow from '@mui/material/Grow'; import { styled } from '../../styles'; - import { PopperProps, VirtualElement } from './interface'; import { PopperArrow } from './PopoverArrow'; export const Popper = ({ diff --git a/packages/component/src/ui/popper/interface.ts b/packages/component/src/ui/popper/interface.ts index 02c07c0afc..4de506ca60 100644 --- a/packages/component/src/ui/popper/interface.ts +++ b/packages/component/src/ui/popper/interface.ts @@ -1,8 +1,8 @@ -import type { CSSProperties, ReactNode, Ref, ReactElement } from 'react'; import { type PopperPlacementType, type PopperUnstyledProps, } from '@mui/base/PopperUnstyled'; +import type { CSSProperties, ReactElement, ReactNode, Ref } from 'react'; export type VirtualElement = { getBoundingClientRect: () => ClientRect | DOMRect; contextElement?: Element; diff --git a/packages/component/src/ui/shared/Container.tsx b/packages/component/src/ui/shared/Container.tsx index ade14869bb..3ec35f4e62 100644 --- a/packages/component/src/ui/shared/Container.tsx +++ b/packages/component/src/ui/shared/Container.tsx @@ -1,6 +1,7 @@ -import { styled } from '../../styles'; import { PopperPlacementType } from '@mui/material'; +import { styled } from '../../styles'; + export type PopperDirection = | 'none' | 'left-top' diff --git a/packages/component/src/ui/table/Table.tsx b/packages/component/src/ui/table/Table.tsx index fba647619d..def2a31cea 100644 --- a/packages/component/src/ui/table/Table.tsx +++ b/packages/component/src/ui/table/Table.tsx @@ -1,4 +1,5 @@ -import { PropsWithChildren, Children, ReactNode, HTMLAttributes } from 'react'; +import { Children, HTMLAttributes, PropsWithChildren, ReactNode } from 'react'; + import { StyledTable } from './styles'; const childrenHasEllipsis = (children: ReactNode | ReactNode[]): boolean => { diff --git a/packages/component/src/ui/table/TableBody.tsx b/packages/component/src/ui/table/TableBody.tsx index ee8d623571..112723d8df 100644 --- a/packages/component/src/ui/table/TableBody.tsx +++ b/packages/component/src/ui/table/TableBody.tsx @@ -1,4 +1,5 @@ import { HTMLAttributes, PropsWithChildren } from 'react'; + import { StyledTableBody } from './styles'; export const TableBody = ({ diff --git a/packages/component/src/ui/table/TableCell.tsx b/packages/component/src/ui/table/TableCell.tsx index c6aed80987..b592770576 100644 --- a/packages/component/src/ui/table/TableCell.tsx +++ b/packages/component/src/ui/table/TableCell.tsx @@ -1,4 +1,5 @@ import { HTMLAttributes, PropsWithChildren } from 'react'; + import { TableCellProps } from './interface'; import { StyledTableCell } from './styles'; diff --git a/packages/component/src/ui/table/TableHead.tsx b/packages/component/src/ui/table/TableHead.tsx index d1b993af30..c2cf83d01a 100644 --- a/packages/component/src/ui/table/TableHead.tsx +++ b/packages/component/src/ui/table/TableHead.tsx @@ -1,4 +1,5 @@ import { HTMLAttributes, PropsWithChildren } from 'react'; + import { StyledTableHead } from './styles'; export const TableHead = ({ diff --git a/packages/component/src/ui/table/TableRow.tsx b/packages/component/src/ui/table/TableRow.tsx index b60ba1bf13..55b9608794 100644 --- a/packages/component/src/ui/table/TableRow.tsx +++ b/packages/component/src/ui/table/TableRow.tsx @@ -1,4 +1,5 @@ import { HTMLAttributes, PropsWithChildren } from 'react'; + import { StyledTableRow } from './styles'; export const TableRow = ({ diff --git a/packages/component/src/ui/table/index.ts b/packages/component/src/ui/table/index.ts index 62c1806aae..67b0695b58 100644 --- a/packages/component/src/ui/table/index.ts +++ b/packages/component/src/ui/table/index.ts @@ -6,7 +6,7 @@ // export * from './Table'; -export * from './TableRow'; -export * from './TableHead'; -export * from './TableCell'; export * from './TableBody'; +export * from './TableCell'; +export * from './TableHead'; +export * from './TableRow'; diff --git a/packages/component/src/ui/tooltip/Tooltip.tsx b/packages/component/src/ui/tooltip/Tooltip.tsx index 2002566e49..9af7c31be8 100644 --- a/packages/component/src/ui/tooltip/Tooltip.tsx +++ b/packages/component/src/ui/tooltip/Tooltip.tsx @@ -1,8 +1,9 @@ -import StyledPopperContainer from '../shared/Container'; -import { Popper, type PopperProps } from '../popper'; -import { styled } from '../../styles'; import type { TooltipProps } from '@mui/material'; +import { styled } from '../../styles'; +import { Popper, type PopperProps } from '../popper'; +import StyledPopperContainer from '../shared/Container'; + const StyledTooltip = styled(StyledPopperContainer)(({ theme }) => { return { maxWidth: '320px', diff --git a/packages/data-center/src/datacenter.ts b/packages/data-center/src/datacenter.ts index 83ee50dc23..b2b8441075 100644 --- a/packages/data-center/src/datacenter.ts +++ b/packages/data-center/src/datacenter.ts @@ -1,19 +1,20 @@ -import { WorkspaceUnitCollection } from './workspace-unit-collection'; -import type { WorkspaceUnitCollectionChangeEvent } from './workspace-unit-collection'; import { Workspace as BlocksuiteWorkspace } from '@blocksuite/store'; +import assert from 'assert'; + +import { getLogger } from './logger'; +import { MessageCenter } from './message'; +import { AffineProvider } from './provider'; import type { BaseProvider, CreateWorkspaceInfoParams, UpdateWorkspaceMetaParams, } from './provider/base'; import { LocalProvider } from './provider/local'; -import { AffineProvider } from './provider'; import type { Message } from './types'; -import assert from 'assert'; -import { getLogger } from './logger'; import { createBlocksuiteWorkspace } from './utils'; -import { MessageCenter } from './message'; import { WorkspaceUnit } from './workspace-unit'; +import type { WorkspaceUnitCollectionChangeEvent } from './workspace-unit-collection'; +import { WorkspaceUnitCollection } from './workspace-unit-collection'; /** * @class DataCenter * @classdesc Data center is made for managing different providers for business diff --git a/packages/data-center/src/index.ts b/packages/data-center/src/index.ts index 591a83b14a..de2a3b9d74 100644 --- a/packages/data-center/src/index.ts +++ b/packages/data-center/src/index.ts @@ -26,8 +26,8 @@ const _initializeDataCenter = () => { export const getDataCenter = _initializeDataCenter(); export type { DataCenter }; -export * from './provider/affine/apis'; -export { WorkspaceUnit } from './workspace-unit'; export { getLogger } from './logger'; export * from './message'; +export * from './provider/affine/apis'; export * from './types'; +export { WorkspaceUnit } from './workspace-unit'; diff --git a/packages/data-center/src/message/index.ts b/packages/data-center/src/message/index.ts index b04581df15..1214a8e4b6 100644 --- a/packages/data-center/src/message/index.ts +++ b/packages/data-center/src/message/index.ts @@ -1,2 +1,2 @@ -export { MessageCenter } from './message'; export { MessageCode } from './code'; +export { MessageCenter } from './message'; diff --git a/packages/data-center/src/message/message.ts b/packages/data-center/src/message/message.ts index aedfcefa2d..548f26c3be 100644 --- a/packages/data-center/src/message/message.ts +++ b/packages/data-center/src/message/message.ts @@ -1,4 +1,5 @@ import { Observable } from 'lib0/observable'; + import { Message } from '../types'; import { MessageCode, messages } from './code'; diff --git a/packages/data-center/src/provider/affine/__tests__/mock-apis.ts b/packages/data-center/src/provider/affine/__tests__/mock-apis.ts index 21a36c7690..6c95d5e6ce 100644 --- a/packages/data-center/src/provider/affine/__tests__/mock-apis.ts +++ b/packages/data-center/src/provider/affine/__tests__/mock-apis.ts @@ -1,4 +1,4 @@ -import type { Apis, AccessTokenMessage } from '../apis'; +import type { AccessTokenMessage, Apis } from '../apis'; const user: AccessTokenMessage = { created_at: Date.now(), diff --git a/packages/data-center/src/provider/affine/affine.ts b/packages/data-center/src/provider/affine/affine.ts index da03cdb4bc..1a7ac7066a 100644 --- a/packages/data-center/src/provider/affine/affine.ts +++ b/packages/data-center/src/provider/affine/affine.ts @@ -1,26 +1,27 @@ -import { BaseProvider } from '../base'; -import type { - ProviderConstructorParams, - CreateWorkspaceInfoParams, -} from '../base'; -import type { User } from '../../types'; import { Workspace as BlocksuiteWorkspace } from '@blocksuite/store'; import assert from 'assert'; -import { WebsocketProvider } from './sync'; -// import { IndexedDBProvider } from '../local/indexeddb'; -import { getApis, Workspace } from './apis'; -import type { Apis, WorkspaceDetail } from './apis'; -import { WebsocketClient } from './channel'; -import { - loadWorkspaceUnit, - createWorkspaceUnit, - migrateBlobDB, - createBlocksuiteWorkspaceWithAuth, -} from './utils'; -import { WorkspaceUnit } from '../../workspace-unit'; + +import { MessageCenter } from '../../message'; +import type { User } from '../../types'; import { applyUpdate } from '../../utils'; import type { SyncMode } from '../../workspace-unit'; -import { MessageCenter } from '../../message'; +import { WorkspaceUnit } from '../../workspace-unit'; +import type { + CreateWorkspaceInfoParams, + ProviderConstructorParams, +} from '../base'; +import { BaseProvider } from '../base'; +import type { Apis, WorkspaceDetail } from './apis'; +// import { IndexedDBProvider } from '../local/indexeddb'; +import { getApis, Workspace } from './apis'; +import { WebsocketClient } from './channel'; +import { WebsocketProvider } from './sync'; +import { + createBlocksuiteWorkspaceWithAuth, + createWorkspaceUnit, + loadWorkspaceUnit, + migrateBlobDB, +} from './utils'; type ChannelMessage = { ws_list: Workspace[]; diff --git a/packages/data-center/src/provider/affine/apis/__tests__/auth.spec.ts b/packages/data-center/src/provider/affine/apis/__tests__/auth.spec.ts index 9c10d599b3..8ef6129a35 100644 --- a/packages/data-center/src/provider/affine/apis/__tests__/auth.spec.ts +++ b/packages/data-center/src/provider/affine/apis/__tests__/auth.spec.ts @@ -1,4 +1,5 @@ -import { describe, test, expect } from 'vitest'; +import { describe, expect, test } from 'vitest'; + import { Auth } from '../auth'; describe('class Auth', () => { diff --git a/packages/data-center/src/provider/affine/apis/auth.ts b/packages/data-center/src/provider/affine/apis/auth.ts index 9eac8cc22f..1bbeb9413e 100644 --- a/packages/data-center/src/provider/affine/apis/auth.ts +++ b/packages/data-center/src/provider/affine/apis/auth.ts @@ -1,4 +1,5 @@ import { initializeApp } from 'firebase/app'; +import type { User } from 'firebase/auth'; import { type Auth as FirebaseAuth, getAuth as getFirebaseAuth, @@ -6,12 +7,11 @@ import { signInWithPopup, signOut, } from 'firebase/auth'; -import type { User } from 'firebase/auth'; import { decode } from 'js-base64'; import { getLogger } from '../../../logger'; -import { bareClient } from './request'; import { storage } from '../storage'; +import { bareClient } from './request'; export interface AccessTokenMessage { created_at: number; diff --git a/packages/data-center/src/provider/affine/apis/index.ts b/packages/data-center/src/provider/affine/apis/index.ts index a8973793e5..83c162d0b5 100644 --- a/packages/data-center/src/provider/affine/apis/index.ts +++ b/packages/data-center/src/provider/affine/apis/index.ts @@ -2,9 +2,9 @@ export type { Callback } from './auth'; import { getAuthorizer } from './auth'; +import { auth } from './auth'; import * as user from './user'; import * as workspace from './workspace'; -import { auth } from './auth'; // See https://twitter.com/mattpocockuk/status/1622730173446557697 // TODO: move to ts utils? diff --git a/packages/data-center/src/provider/affine/apis/request.ts b/packages/data-center/src/provider/affine/apis/request.ts index 21512b612d..7783c96d7e 100644 --- a/packages/data-center/src/provider/affine/apis/request.ts +++ b/packages/data-center/src/provider/affine/apis/request.ts @@ -1,4 +1,5 @@ import ky from 'ky-universal'; + import { MessageCenter } from '../../../message'; import { auth } from './auth'; diff --git a/packages/data-center/src/provider/affine/channel.ts b/packages/data-center/src/provider/affine/channel.ts index d646ed976f..ac779f6680 100644 --- a/packages/data-center/src/provider/affine/channel.ts +++ b/packages/data-center/src/provider/affine/channel.ts @@ -1,7 +1,8 @@ -import * as websocket from 'lib0/websocket'; -import { auth } from './apis/auth'; import * as url from 'lib0/url'; +import * as websocket from 'lib0/websocket'; + import { Logger } from '../../types'; +import { auth } from './apis/auth'; const RECONNECT_INTERVAL_TIME = 500; const MAX_RECONNECT_TIMES = 50; diff --git a/packages/data-center/src/provider/affine/idb-kv.ts b/packages/data-center/src/provider/affine/idb-kv.ts index 48cb5c820f..6edd8a8530 100644 --- a/packages/data-center/src/provider/affine/idb-kv.ts +++ b/packages/data-center/src/provider/affine/idb-kv.ts @@ -1,4 +1,4 @@ -import { createStore, keys, setMany, getMany, clear } from 'idb-keyval'; +import { clear, createStore, getMany, keys, setMany } from 'idb-keyval'; import * as idb from 'lib0/indexeddb'; type IDBInstance = { diff --git a/packages/data-center/src/provider/affine/sync.js b/packages/data-center/src/provider/affine/sync.js index 09004a51d1..6fe48aa7bf 100644 --- a/packages/data-center/src/provider/affine/sync.js +++ b/packages/data-center/src/provider/affine/sync.js @@ -7,15 +7,15 @@ // import * as Y from 'yjs'; // eslint-disable-line import * as bc from 'lib0/broadcastchannel'; -import * as time from 'lib0/time'; -import * as encoding from 'lib0/encoding'; import * as decoding from 'lib0/decoding'; -import * as syncProtocol from 'y-protocols/sync'; +import * as encoding from 'lib0/encoding'; +import * as math from 'lib0/math'; +import { Observable } from 'lib0/observable'; +import * as time from 'lib0/time'; +import * as url from 'lib0/url'; import * as authProtocol from 'y-protocols/auth'; import * as awarenessProtocol from 'y-protocols/awareness'; -import { Observable } from 'lib0/observable'; -import * as math from 'lib0/math'; -import * as url from 'lib0/url'; +import * as syncProtocol from 'y-protocols/sync'; export const messageSync = 0; export const messageQueryAwareness = 3; diff --git a/packages/data-center/src/provider/affine/utils.ts b/packages/data-center/src/provider/affine/utils.ts index 5f98748b95..2c5f96f279 100644 --- a/packages/data-center/src/provider/affine/utils.ts +++ b/packages/data-center/src/provider/affine/utils.ts @@ -1,11 +1,11 @@ -import { WorkspaceUnit } from '../../workspace-unit'; -import type { WorkspaceUnitCtorParams } from '../../workspace-unit'; import { createBlocksuiteWorkspace as _createBlocksuiteWorkspace } from '../../utils'; -import type { Apis } from './apis'; -import { setDefaultAvatar } from '../utils'; import { applyUpdate } from '../../utils'; -import { getDatabase } from './idb-kv'; +import type { WorkspaceUnitCtorParams } from '../../workspace-unit'; +import { WorkspaceUnit } from '../../workspace-unit'; +import { setDefaultAvatar } from '../utils'; +import type { Apis } from './apis'; import { auth } from './apis/auth'; +import { getDatabase } from './idb-kv'; export const createBlocksuiteWorkspaceWithAuth = async (id: string) => { if (auth.isExpired && auth.isLogin) { diff --git a/packages/data-center/src/provider/base.ts b/packages/data-center/src/provider/base.ts index 85c8ac4791..cf944e225d 100644 --- a/packages/data-center/src/provider/base.ts +++ b/packages/data-center/src/provider/base.ts @@ -1,8 +1,9 @@ import { Workspace as BlocksuiteWorkspace } from '@blocksuite/store'; + import { MessageCenter } from '../message'; import { Logger, User } from '../types'; +import type { WorkspaceUnit, WorkspaceUnitCtorParams } from '../workspace-unit'; import type { WorkspaceUnitCollectionScope } from '../workspace-unit-collection'; -import type { WorkspaceUnitCtorParams, WorkspaceUnit } from '../workspace-unit'; import { Member } from './affine/apis'; import { Permission } from './affine/apis/workspace'; diff --git a/packages/data-center/src/provider/local/indexeddb/indexeddb.ts b/packages/data-center/src/provider/local/indexeddb/indexeddb.ts index 24bc147051..11453aab74 100644 --- a/packages/data-center/src/provider/local/indexeddb/indexeddb.ts +++ b/packages/data-center/src/provider/local/indexeddb/indexeddb.ts @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ +import { Workspace as BlocksuiteWorkspace } from '@blocksuite/store'; import * as idb from 'lib0/indexeddb'; import { Observable } from 'lib0/observable'; -import { Workspace as BlocksuiteWorkspace } from '@blocksuite/store'; const customStoreName = 'custom'; const updatesStoreName = 'updates'; diff --git a/packages/data-center/src/provider/local/indexeddb/utils.ts b/packages/data-center/src/provider/local/indexeddb/utils.ts index 04e93c0fcc..9a39fc0449 100644 --- a/packages/data-center/src/provider/local/indexeddb/utils.ts +++ b/packages/data-center/src/provider/local/indexeddb/utils.ts @@ -1,6 +1,7 @@ +import { Workspace as BlocksuiteWorkspace } from '@blocksuite/store'; import assert from 'assert'; import * as idb from 'lib0/indexeddb'; -import { Workspace as BlocksuiteWorkspace } from '@blocksuite/store'; + import { applyUpdate } from '../../../utils'; const { encodeStateAsUpdate, mergeUpdates } = BlocksuiteWorkspace.Y; diff --git a/packages/data-center/src/provider/local/local.spec.ts b/packages/data-center/src/provider/local/local.spec.ts index 0346c5d050..3e6f524a1b 100644 --- a/packages/data-center/src/provider/local/local.spec.ts +++ b/packages/data-center/src/provider/local/local.spec.ts @@ -1,8 +1,10 @@ -import { test, describe, expect } from 'vitest'; +import 'fake-indexeddb/auto'; + +import { describe, expect, test } from 'vitest'; + +import { MessageCenter } from '../../message'; import { WorkspaceUnitCollection } from '../../workspace-unit-collection'; import { LocalProvider } from './local'; -import { MessageCenter } from '../../message'; -import 'fake-indexeddb/auto'; describe('local provider', () => { const workspaceMetaCollection = new WorkspaceUnitCollection(); diff --git a/packages/data-center/src/provider/local/local.ts b/packages/data-center/src/provider/local/local.ts index 080a80f408..32ab7871bb 100644 --- a/packages/data-center/src/provider/local/local.ts +++ b/packages/data-center/src/provider/local/local.ts @@ -1,17 +1,18 @@ -import { BaseProvider } from '../base'; -import type { - ProviderConstructorParams, - WorkspaceMeta0, - UpdateWorkspaceMetaParams, - CreateWorkspaceInfoParams, -} from '../base'; +import { uuidv4, Workspace as BlocksuiteWorkspace } from '@blocksuite/store'; +import assert from 'assert'; import { varStorage as storage } from 'lib0/storage'; -import { Workspace as BlocksuiteWorkspace, uuidv4 } from '@blocksuite/store'; + +import type { WorkspaceUnit } from '../../workspace-unit'; +import type { + CreateWorkspaceInfoParams, + ProviderConstructorParams, + UpdateWorkspaceMetaParams, + WorkspaceMeta0, +} from '../base'; +import { BaseProvider } from '../base'; import { IndexedDBProvider } from './indexeddb/indexeddb'; import { applyLocalUpdates } from './indexeddb/utils'; -import assert from 'assert'; -import { loadWorkspaceUnit, createWorkspaceUnit } from './utils'; -import type { WorkspaceUnit } from '../../workspace-unit'; +import { createWorkspaceUnit, loadWorkspaceUnit } from './utils'; const WORKSPACE_KEY = 'workspaces'; diff --git a/packages/data-center/src/provider/local/utils.ts b/packages/data-center/src/provider/local/utils.ts index 69fc23b361..70c8f93b7f 100644 --- a/packages/data-center/src/provider/local/utils.ts +++ b/packages/data-center/src/provider/local/utils.ts @@ -1,8 +1,8 @@ -import { WorkspaceUnit } from '../../workspace-unit'; -import type { WorkspaceUnitCtorParams } from '../../workspace-unit'; import { createBlocksuiteWorkspace } from '../../utils'; -import { applyLocalUpdates, writeUpdatesToLocal } from './indexeddb/utils'; +import type { WorkspaceUnitCtorParams } from '../../workspace-unit'; +import { WorkspaceUnit } from '../../workspace-unit'; import { setDefaultAvatar } from '../utils'; +import { applyLocalUpdates, writeUpdatesToLocal } from './indexeddb/utils'; export const loadWorkspaceUnit = async (params: WorkspaceUnitCtorParams) => { const workspaceUnit = new WorkspaceUnit(params); diff --git a/packages/data-center/src/provider/selfhosted/sync.js b/packages/data-center/src/provider/selfhosted/sync.js index 54c8dec628..03fca20820 100644 --- a/packages/data-center/src/provider/selfhosted/sync.js +++ b/packages/data-center/src/provider/selfhosted/sync.js @@ -7,15 +7,15 @@ // import * as Y from 'yjs'; // eslint-disable-line import * as bc from 'lib0/broadcastchannel'; -import * as time from 'lib0/time'; -import * as encoding from 'lib0/encoding'; import * as decoding from 'lib0/decoding'; -import * as syncProtocol from 'y-protocols/sync'; +import * as encoding from 'lib0/encoding'; +import * as math from 'lib0/math'; +import { Observable } from 'lib0/observable'; +import * as time from 'lib0/time'; +import * as url from 'lib0/url'; import * as authProtocol from 'y-protocols/auth'; import * as awarenessProtocol from 'y-protocols/awareness'; -import { Observable } from 'lib0/observable'; -import * as math from 'lib0/math'; -import * as url from 'lib0/url'; +import * as syncProtocol from 'y-protocols/sync'; export const messageSync = 0; export const messageQueryAwareness = 3; diff --git a/packages/data-center/src/provider/tauri-ipc/__tests__/mock-apis.ts b/packages/data-center/src/provider/tauri-ipc/__tests__/mock-apis.ts index 04a4954510..e8aa822f5d 100644 --- a/packages/data-center/src/provider/tauri-ipc/__tests__/mock-apis.ts +++ b/packages/data-center/src/provider/tauri-ipc/__tests__/mock-apis.ts @@ -1,17 +1,17 @@ -import { PutBlob, GetBlob } from '../ipc/types/blob'; +import { GetBlob, PutBlob } from '../ipc/types/blob'; import { - YDocumentUpdate, GetDocumentParameter, GetDocumentResponse, + YDocumentUpdate, } from '../ipc/types/document'; import { CreateUser, GetUserParameters, User } from '../ipc/types/user'; import { CreateWorkspace, CreateWorkspaceResult, - GetWorkspaces, - GetWorkspacesResult, GetWorkspace, GetWorkspaceResult, + GetWorkspaces, + GetWorkspacesResult, } from '../ipc/types/workspace'; export const updateYDocument = async (parameters: YDocumentUpdate) => diff --git a/packages/data-center/src/provider/tauri-ipc/__tests__/tauri-ipc.spec.ts b/packages/data-center/src/provider/tauri-ipc/__tests__/tauri-ipc.spec.ts index f27e6359ff..ec3eef2ddc 100644 --- a/packages/data-center/src/provider/tauri-ipc/__tests__/tauri-ipc.spec.ts +++ b/packages/data-center/src/provider/tauri-ipc/__tests__/tauri-ipc.spec.ts @@ -1,11 +1,12 @@ -import { describe, test, expect } from 'vitest'; +import 'fake-indexeddb/auto'; + +import { describe, expect, test } from 'vitest'; + +import { MessageCenter } from '../../../message'; import { WorkspaceUnitCollection } from '../../../workspace-unit-collection'; import { TauriIPCProvider } from '..'; -import { MessageCenter } from '../../../message'; import * as ipcMethods from './mock-apis'; -import 'fake-indexeddb/auto'; - describe('tauri-ipc provider', async () => { const workspaceMetaCollection = new WorkspaceUnitCollection(); const provider = new TauriIPCProvider({ diff --git a/packages/data-center/src/provider/tauri-ipc/blocksuite-provider/blob.ts b/packages/data-center/src/provider/tauri-ipc/blocksuite-provider/blob.ts index db56602adc..d83212a78e 100644 --- a/packages/data-center/src/provider/tauri-ipc/blocksuite-provider/blob.ts +++ b/packages/data-center/src/provider/tauri-ipc/blocksuite-provider/blob.ts @@ -1,13 +1,15 @@ import { BlobSyncState } from '@blocksuite/store'; -import * as ipcMethods from '../ipc/methods'; import { Signal } from '@blocksuite/store'; +// eslint-disable-next-line @typescript-eslint/no-restricted-imports import type { + BlobId, BlobProvider, BlobSyncStateChangeEvent, - BlobId, BlobURL, } from '@blocksuite/store/dist/persistence/blob/types'; +import * as ipcMethods from '../ipc/methods'; + export class IPCBlobProvider implements BlobProvider { #ipc = ipcMethods; diff --git a/packages/data-center/src/provider/tauri-ipc/index.ts b/packages/data-center/src/provider/tauri-ipc/index.ts index 1fc8b07a59..d53d4b1a91 100644 --- a/packages/data-center/src/provider/tauri-ipc/index.ts +++ b/packages/data-center/src/provider/tauri-ipc/index.ts @@ -1,16 +1,16 @@ -import * as Y from 'yjs'; -import assert from 'assert'; - -import { LocalProvider } from '../local'; -import type { IPCMethodsType } from './ipc/methods'; -import { CreateWorkspaceInfoParams, ProviderConstructorParams } from '../base'; import { Workspace as BlocksuiteWorkspace } from '@blocksuite/store'; -import { IPCBlobProvider } from './blocksuite-provider/blob'; -import type { WorkspaceUnit } from '../../workspace-unit'; -import { loadWorkspaceUnit } from '../local/utils'; -import { WorkspaceWithPermission } from './ipc/types/workspace'; -import { applyUpdate } from '../../utils'; +import assert from 'assert'; +import * as Y from 'yjs'; + import { User } from '../../types'; +import { applyUpdate } from '../../utils'; +import type { WorkspaceUnit } from '../../workspace-unit'; +import { CreateWorkspaceInfoParams, ProviderConstructorParams } from '../base'; +import { LocalProvider } from '../local'; +import { loadWorkspaceUnit } from '../local/utils'; +import { IPCBlobProvider } from './blocksuite-provider/blob'; +import type { IPCMethodsType } from './ipc/methods'; +import { WorkspaceWithPermission } from './ipc/types/workspace'; import { createWorkspaceUnit } from './utils'; /** diff --git a/packages/data-center/src/provider/tauri-ipc/ipc/methods.ts b/packages/data-center/src/provider/tauri-ipc/ipc/methods.ts index 65cda5092e..ca5a03bed8 100644 --- a/packages/data-center/src/provider/tauri-ipc/ipc/methods.ts +++ b/packages/data-center/src/provider/tauri-ipc/ipc/methods.ts @@ -1,9 +1,12 @@ import { invoke } from '@tauri-apps/api'; + +import { GetBlob, PutBlob } from './types/blob'; import { GetDocumentParameter, GetDocumentResponse, YDocumentUpdate, } from './types/document'; +import { CreateUser, GetUserParameters } from './types/user'; import { CreateWorkspace, CreateWorkspaceResult, @@ -13,8 +16,6 @@ import { GetWorkspacesResult, User, } from './types/workspace'; -import { GetBlob, PutBlob } from './types/blob'; -import { CreateUser, GetUserParameters } from './types/user'; export interface IPCMethodsType { updateYDocument: typeof updateYDocument; diff --git a/packages/data-center/src/provider/tauri-ipc/utils.ts b/packages/data-center/src/provider/tauri-ipc/utils.ts index 18eea5652c..6a611e4947 100644 --- a/packages/data-center/src/provider/tauri-ipc/utils.ts +++ b/packages/data-center/src/provider/tauri-ipc/utils.ts @@ -1,6 +1,6 @@ -import { WorkspaceUnit } from '../../workspace-unit'; -import type { WorkspaceUnitCtorParams } from '../../workspace-unit'; import { createBlocksuiteWorkspace } from '../../utils'; +import type { WorkspaceUnitCtorParams } from '../../workspace-unit'; +import { WorkspaceUnit } from '../../workspace-unit'; import { setDefaultAvatar } from '../utils'; import { IPCBlobProvider } from './blocksuite-provider/blob'; diff --git a/packages/data-center/src/provider/utils.ts b/packages/data-center/src/provider/utils.ts index 587293697d..aac7c86da1 100644 --- a/packages/data-center/src/provider/utils.ts +++ b/packages/data-center/src/provider/utils.ts @@ -1,5 +1,6 @@ -import assert from 'assert'; import { Workspace as BlocksuiteWorkspace } from '@blocksuite/store'; +import assert from 'assert'; + import { getDefaultHeadImgBlob } from '../utils'; export const setDefaultAvatar = async ( diff --git a/packages/data-center/src/store.ts b/packages/data-center/src/store.ts index 4ba2adada1..7f666ba048 100644 --- a/packages/data-center/src/store.ts +++ b/packages/data-center/src/store.ts @@ -1,12 +1,12 @@ import { + clear, createStore, del, + entries, get, keys, set, setMany, - clear, - entries, } from 'idb-keyval'; export type ConfigStore = { diff --git a/packages/data-center/src/utils/index.ts b/packages/data-center/src/utils/index.ts index 7e401d68a3..2b34f2819f 100644 --- a/packages/data-center/src/utils/index.ts +++ b/packages/data-center/src/utils/index.ts @@ -1,8 +1,8 @@ +import { __unstableSchemas, builtInSchemas } from '@blocksuite/blocks/models'; import { StoreOptions, Workspace as BlocksuiteWorkspace, } from '@blocksuite/store'; -import { builtInSchemas, __unstableSchemas } from '@blocksuite/blocks/models'; export const createBlocksuiteWorkspace = ( workspaceId: string, diff --git a/packages/data-center/src/workspace-unit-collection.spec.ts b/packages/data-center/src/workspace-unit-collection.spec.ts index 49c25bc7d7..32ab139721 100644 --- a/packages/data-center/src/workspace-unit-collection.spec.ts +++ b/packages/data-center/src/workspace-unit-collection.spec.ts @@ -1,7 +1,8 @@ -import { describe, test, expect } from 'vitest'; -import { WorkspaceUnitCollection } from './workspace-unit-collection'; -import type { WorkspaceUnitCollectionChangeEvent } from './workspace-unit-collection'; +import { describe, expect, test } from 'vitest'; + import { WorkspaceUnit } from './workspace-unit'; +import type { WorkspaceUnitCollectionChangeEvent } from './workspace-unit-collection'; +import { WorkspaceUnitCollection } from './workspace-unit-collection'; describe('workspace meta collection observable', () => { const workspaceUnitCollection = new WorkspaceUnitCollection(); diff --git a/packages/data-center/src/workspace-unit-collection.ts b/packages/data-center/src/workspace-unit-collection.ts index 7cc29f096a..cf1bc2c022 100644 --- a/packages/data-center/src/workspace-unit-collection.ts +++ b/packages/data-center/src/workspace-unit-collection.ts @@ -1,7 +1,8 @@ import { Observable } from 'lib0/observable'; + import type { - WorkspaceUnit, UpdateWorkspaceUnitParams, + WorkspaceUnit, } from './workspace-unit'; export interface WorkspaceUnitCollectionScope { diff --git a/packages/data-center/src/workspace-unit.ts b/packages/data-center/src/workspace-unit.ts index 7966df129d..612b535006 100644 --- a/packages/data-center/src/workspace-unit.ts +++ b/packages/data-center/src/workspace-unit.ts @@ -2,6 +2,7 @@ import { BlobOptionsGetter, Workspace as BlocksuiteWorkspace, } from '@blocksuite/store'; + import type { User } from './types'; export type SyncMode = 'all' | 'core'; diff --git a/packages/i18n/src/index.ts b/packages/i18n/src/index.ts index 65dd561129..2e124cc3d6 100644 --- a/packages/i18n/src/index.ts +++ b/packages/i18n/src/index.ts @@ -1,5 +1,6 @@ import i18next, { Resource } from 'i18next'; -import { Trans, initReactI18next, useTranslation } from 'react-i18next'; +import { initReactI18next, Trans, useTranslation } from 'react-i18next'; + import { LOCALES } from './resources'; import type en_US from './resources/en.json'; @@ -24,7 +25,7 @@ declare module 'react-i18next' { const STORAGE_KEY = 'i18n_lng'; -export { Trans, i18n, useTranslation, LOCALES }; +export { i18n, LOCALES, Trans, useTranslation }; const resources = LOCALES.reduce( (acc, { tag, res }) => ({ ...acc, [tag]: { translation: res } }), diff --git a/packages/i18n/src/resources/index.ts b/packages/i18n/src/resources/index.ts index fa5eaa8d04..d9d34cc739 100644 --- a/packages/i18n/src/resources/index.ts +++ b/packages/i18n/src/resources/index.ts @@ -1,11 +1,11 @@ // THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. // Run `pnpm run download-resources` to regenerate. // To overwrite this, please overwrite download.ts script. -import en from './en.json'; -import zh_Hans from './zh-Hans.json'; -import fr from './fr.json'; import de from './de.json'; +import en from './en.json'; +import fr from './fr.json'; import ru from './ru.json'; +import zh_Hans from './zh-Hans.json'; export const LOCALES = [ { diff --git a/packages/i18n/src/scripts/download.ts b/packages/i18n/src/scripts/download.ts index eeb15c8582..cb8c80d804 100644 --- a/packages/i18n/src/scripts/download.ts +++ b/packages/i18n/src/scripts/download.ts @@ -1,7 +1,9 @@ // cSpell:ignore Tolgee import fs from 'node:fs/promises'; import path from 'node:path'; + import { format } from 'prettier'; + import { getAllProjectLanguages, getRemoteTranslations } from './api.js'; import type { TranslationRes } from './utils.js'; diff --git a/packages/i18n/src/scripts/sync.ts b/packages/i18n/src/scripts/sync.ts index b89734e4c4..15e3d076ee 100644 --- a/packages/i18n/src/scripts/sync.ts +++ b/packages/i18n/src/scripts/sync.ts @@ -1,6 +1,7 @@ // cSpell:ignore Tolgee import { readFile } from 'fs/promises'; import path from 'path'; + import { createsNewKey, getRemoteTranslations } from './api.js'; import type { TranslationRes } from './utils.js'; diff --git a/packages/logger/pages/index.tsx b/packages/logger/pages/index.tsx index da378dfab3..5e3f2d3581 100644 --- a/packages/logger/pages/index.tsx +++ b/packages/logger/pages/index.tsx @@ -1,3 +1,4 @@ +// eslint-disable-next-line @typescript-eslint/no-restricted-imports import { Logger } from '../src'; const Page = () => { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 09e7c6d36c..846a4924b3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,10 +21,13 @@ importers: '@vitest/coverage-istanbul': ^0.28.5 concurrently: ^7.6.0 cross-env: ^7.0.3 - eslint: ^8.30.0 - eslint-config-next: 12.3.1 + eslint: ^8.34.0 eslint-config-prettier: ^8.5.0 + eslint-plugin-import: ^2.27.5 eslint-plugin-prettier: ^4.2.1 + eslint-plugin-react: ^7.32.2 + eslint-plugin-simple-import-sort: ^10.0.0 + eslint-plugin-unused-imports: ^2.0.0 fake-indexeddb: 4.0.1 got: ^12.5.3 husky: ^8.0.2 @@ -38,15 +41,18 @@ importers: '@playwright/test': 1.29.1 '@types/eslint': 8.4.10 '@types/node': 18.11.18 - '@typescript-eslint/eslint-plugin': 5.48.0_vqm4js66qtp4h6afqe3btrngbi - '@typescript-eslint/parser': 5.48.0_ifw3q4r6iq3gw7cspzs2siycvu + '@typescript-eslint/eslint-plugin': 5.48.0_ddfje6clmktndfpbpk5swat3gi + '@typescript-eslint/parser': 5.48.0_7kw3g6rralp5ps6mg3uyzz6azm '@vitest/coverage-istanbul': 0.28.5 concurrently: 7.6.0 cross-env: 7.0.3 - eslint: 8.31.0 - eslint-config-next: 12.3.1_ifw3q4r6iq3gw7cspzs2siycvu - eslint-config-prettier: 8.5.0_eslint@8.31.0 - eslint-plugin-prettier: 4.2.1_vkmhlldugy3fnk7p2bqhsfnaiq + eslint: 8.34.0 + eslint-config-prettier: 8.5.0_eslint@8.34.0 + eslint-plugin-import: 2.27.5_srp5jszoagkj3pnpsesjjepemq + eslint-plugin-prettier: 4.2.1_f52onrjfrbj5enknkp6ytmuaxu + eslint-plugin-react: 7.32.2_eslint@8.34.0 + eslint-plugin-simple-import-sort: 10.0.0_eslint@8.34.0 + eslint-plugin-unused-imports: 2.0.0_3p5c3yu7rnlwfc7nnagwrjhciu fake-indexeddb: 4.0.1 got: 12.5.3 husky: 8.0.2 @@ -67,31 +73,9 @@ importers: '@types/node': ^18.11.17 '@types/react': ^18.0.26 '@types/react-dom': ^18.0.9 - '@typescript-eslint/eslint-plugin': 5.47.0 - '@typescript-eslint/parser': 5.47.0 concurrently: ^7.6.0 cross-env: ^7.0.3 esbuild: ^0.16.10 - eslint: 8.30.0 - eslint-config-prettier: 8.5.0 - eslint-config-standard: ^17.0.0 - eslint-config-standard-with-typescript: 24.0.0 - eslint-import-resolver-alias: 1.1.2 - eslint-import-resolver-typescript: 3.5.2 - eslint-plugin-autofix: 1.1.0 - eslint-plugin-html: 7.1.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-n: ^15.6.0 - eslint-plugin-node: 11.1.0 - eslint-plugin-prettier: 4.2.1 - eslint-plugin-promise: ^6.1.1 - eslint-plugin-react: 7.31.11 - eslint-plugin-react-hooks: 4.6.0 - eslint-plugin-security: 1.5.0 - eslint-plugin-security-node: 1.1.1 - eslint-plugin-typescript-sort-keys: 2.1.0 - eslint-plugin-unicorn: 45.0.2 - eslint-plugin-unused-imports: 2.0.0 json-schema-to-typescript: ^11.0.2 lib0: ^0.2.58 next: ^13.1.6 @@ -129,31 +113,9 @@ importers: '@types/node': 18.11.18 '@types/react': 18.0.27 '@types/react-dom': 18.0.10 - '@typescript-eslint/eslint-plugin': 5.47.0_u2dlljfmmww5bdycoao24sqa5q - '@typescript-eslint/parser': 5.47.0_req3y6wneysbxs6mlxvssjag2i concurrently: 7.6.0 cross-env: 7.0.3 esbuild: 0.16.17 - eslint: 8.30.0 - eslint-config-prettier: 8.5.0_eslint@8.30.0 - eslint-config-standard: 17.0.0_bdcrn6xmt4gzw7vnrxwhbmoneu - eslint-config-standard-with-typescript: 24.0.0_qmwxcimoyk7nz7sp3ytf5wrybi - eslint-import-resolver-alias: 1.1.2_fkfqfehjtk7sk2efaqbgxsuasa - eslint-import-resolver-typescript: 3.5.2_2lbwmhbr7bncddqbzzpg77o75m - eslint-plugin-autofix: 1.1.0_eslint@8.30.0 - eslint-plugin-html: 7.1.0 - eslint-plugin-import: 2.26.0_p6eswnf3xl3aaa2djfyukgz5eq - eslint-plugin-n: 15.6.1_eslint@8.30.0 - eslint-plugin-node: 11.1.0_eslint@8.30.0 - eslint-plugin-prettier: 4.2.1_kl4pe43v5b43npmso5hoplpbyi - eslint-plugin-promise: 6.1.1_eslint@8.30.0 - eslint-plugin-react: 7.31.11_eslint@8.30.0 - eslint-plugin-react-hooks: 4.6.0_eslint@8.30.0 - eslint-plugin-security: 1.5.0 - eslint-plugin-security-node: 1.1.1 - eslint-plugin-typescript-sort-keys: 2.1.0_u2dlljfmmww5bdycoao24sqa5q - eslint-plugin-unicorn: 45.0.2_eslint@8.30.0 - eslint-plugin-unused-imports: 2.0.0_juver2u3xbiwnjfu6d55vmnoem prettier: 2.8.1 rimraf: 3.0.2 typescript: 4.9.5 @@ -189,10 +151,7 @@ importers: cmdk: ^0.1.20 css-spring: ^4.1.0 dayjs: ^1.11.7 - eslint: 8.22.0 eslint-config-next: 12.3.1 - eslint-config-prettier: ^8.5.0 - eslint-plugin-prettier: ^4.2.1 lit: ^2.6.1 next: 13.1.0 next-debug-local: ^0.1.5 @@ -243,10 +202,7 @@ importers: '@types/react-dom': 18.0.6 '@types/wicg-file-system-access': 2020.9.5 chalk: 4.1.2 - eslint: 8.22.0 - eslint-config-next: 12.3.1_hp3n5f6hao4yyg55iy34n6oive - eslint-config-prettier: 8.5.0_eslint@8.22.0 - eslint-plugin-prettier: 4.2.1_wc6gesg72dpfw5d6hhumtqiqsi + eslint-config-next: 12.3.1_typescript@4.9.5 raw-loader: 4.0.2 typescript: 4.9.5 @@ -3523,16 +3479,6 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils/4.1.2_eslint@8.30.0: - resolution: {integrity: sha512-7qELuQWWjVDdVsFQ5+beUl+KPczrEDA7S3zM4QUd/bJl7oXgsmpXaEVqrRTnOBqenOV4rWf2kVZk2Ot085zPWA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - eslint: 8.30.0 - eslint-visitor-keys: 3.3.0 - dev: true - /@eslint/eslintrc/1.4.1: resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4055,17 +4001,6 @@ packages: yargs: 16.2.0 dev: false - /@humanwhocodes/config-array/0.10.4: - resolution: {integrity: sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==} - engines: {node: '>=10.10.0'} - dependencies: - '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - dev: true - /@humanwhocodes/config-array/0.11.8: resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} engines: {node: '>=10.10.0'} @@ -4077,10 +4012,6 @@ packages: - supports-color dev: true - /@humanwhocodes/gitignore-to-minimatch/1.0.2: - resolution: {integrity: sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==} - dev: true - /@humanwhocodes/module-importer/1.0.1: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} @@ -4977,18 +4908,6 @@ packages: fastq: 1.13.0 dev: true - /@pkgr/utils/2.3.1: - resolution: {integrity: sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - dependencies: - cross-spawn: 7.0.3 - is-glob: 4.0.3 - open: 8.4.1 - picocolors: 1.0.0 - tiny-glob: 0.2.9 - tslib: 2.5.0 - dev: true - /@playwright/test/1.29.1: resolution: {integrity: sha512-iQxk2DX5U9wOGV3+/Jh9OHPsw5H3mleUL2S4BgQuwtlAfK3PnKvn38m4Rg9zIViGHVW24opSm99HQm/UFLEy6w==} engines: {node: '>=14'} @@ -6753,34 +6672,7 @@ packages: '@types/yargs-parser': 21.0.0 dev: true - /@typescript-eslint/eslint-plugin/5.47.0_u2dlljfmmww5bdycoao24sqa5q: - resolution: {integrity: sha512-AHZtlXAMGkDmyLuLZsRpH3p4G/1iARIwc/T0vIem2YB+xW6pZaXYXzCBnZSF/5fdM97R9QqZWZ+h3iW10XgevQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/parser': 5.47.0_req3y6wneysbxs6mlxvssjag2i - '@typescript-eslint/scope-manager': 5.47.0 - '@typescript-eslint/type-utils': 5.47.0_req3y6wneysbxs6mlxvssjag2i - '@typescript-eslint/utils': 5.47.0_req3y6wneysbxs6mlxvssjag2i - debug: 4.3.4 - eslint: 8.30.0 - ignore: 5.2.0 - natural-compare-lite: 1.4.0 - regexpp: 3.2.0 - semver: 7.3.8 - tsutils: 3.21.0_typescript@4.9.5 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/eslint-plugin/5.48.0_vqm4js66qtp4h6afqe3btrngbi: + /@typescript-eslint/eslint-plugin/5.48.0_ddfje6clmktndfpbpk5swat3gi: resolution: {integrity: sha512-SVLafp0NXpoJY7ut6VFVUU9I+YeFsDzeQwtK0WZ+xbRN3mtxJ08je+6Oi2N89qDn087COdO0u3blKZNv9VetRQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -6791,12 +6683,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.48.0_ifw3q4r6iq3gw7cspzs2siycvu + '@typescript-eslint/parser': 5.48.0_7kw3g6rralp5ps6mg3uyzz6azm '@typescript-eslint/scope-manager': 5.48.0 - '@typescript-eslint/type-utils': 5.48.0_ifw3q4r6iq3gw7cspzs2siycvu - '@typescript-eslint/utils': 5.48.0_ifw3q4r6iq3gw7cspzs2siycvu + '@typescript-eslint/type-utils': 5.48.0_7kw3g6rralp5ps6mg3uyzz6azm + '@typescript-eslint/utils': 5.48.0_7kw3g6rralp5ps6mg3uyzz6azm debug: 4.3.4 - eslint: 8.31.0 + eslint: 8.34.0 ignore: 5.2.0 natural-compare-lite: 1.4.0 regexpp: 3.2.0 @@ -6807,40 +6699,7 @@ packages: - supports-color dev: true - /@typescript-eslint/experimental-utils/5.51.0_req3y6wneysbxs6mlxvssjag2i: - resolution: {integrity: sha512-8/3+ZyBENl2aog1/QB3S39ptkZ2oRhDB+sJt15UWXBE3skgwL1C8BN9RjpOyhTejwR2hVrvqEjcYcNY6qtZ7nw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - '@typescript-eslint/utils': 5.51.0_req3y6wneysbxs6mlxvssjag2i - eslint: 8.30.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/parser/5.47.0_req3y6wneysbxs6mlxvssjag2i: - resolution: {integrity: sha512-udPU4ckK+R1JWCGdQC4Qa27NtBg7w020ffHqGyAK8pAgOVuNw7YaKXGChk+udh+iiGIJf6/E/0xhVXyPAbsczw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 5.47.0 - '@typescript-eslint/types': 5.47.0 - '@typescript-eslint/typescript-estree': 5.47.0_typescript@4.9.5 - debug: 4.3.4 - eslint: 8.30.0 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/parser/5.48.0_hp3n5f6hao4yyg55iy34n6oive: + /@typescript-eslint/parser/5.48.0_7kw3g6rralp5ps6mg3uyzz6azm: resolution: {integrity: sha512-1mxNA8qfgxX8kBvRDIHEzrRGrKHQfQlbW6iHyfHYS0Q4X1af+S6mkLNtgCOsGVl8+/LUPrqdHMssAemkrQ01qg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -6854,13 +6713,13 @@ packages: '@typescript-eslint/types': 5.48.0 '@typescript-eslint/typescript-estree': 5.48.0_typescript@4.9.5 debug: 4.3.4 - eslint: 8.22.0 + eslint: 8.34.0 typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/5.48.0_ifw3q4r6iq3gw7cspzs2siycvu: + /@typescript-eslint/parser/5.48.0_typescript@4.9.5: resolution: {integrity: sha512-1mxNA8qfgxX8kBvRDIHEzrRGrKHQfQlbW6iHyfHYS0Q4X1af+S6mkLNtgCOsGVl8+/LUPrqdHMssAemkrQ01qg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -6874,40 +6733,11 @@ packages: '@typescript-eslint/types': 5.48.0 '@typescript-eslint/typescript-estree': 5.48.0_typescript@4.9.5 debug: 4.3.4 - eslint: 8.31.0 typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/5.48.0_req3y6wneysbxs6mlxvssjag2i: - resolution: {integrity: sha512-1mxNA8qfgxX8kBvRDIHEzrRGrKHQfQlbW6iHyfHYS0Q4X1af+S6mkLNtgCOsGVl8+/LUPrqdHMssAemkrQ01qg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 5.48.0 - '@typescript-eslint/types': 5.48.0 - '@typescript-eslint/typescript-estree': 5.48.0_typescript@4.9.5 - debug: 4.3.4 - eslint: 8.30.0 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/scope-manager/5.47.0: - resolution: {integrity: sha512-dvJab4bFf7JVvjPuh3sfBUWsiD73aiftKBpWSfi3sUkysDQ4W8x+ZcFpNp7Kgv0weldhpmMOZBjx1wKN8uWvAw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.47.0 - '@typescript-eslint/visitor-keys': 5.47.0 - dev: true - /@typescript-eslint/scope-manager/5.48.0: resolution: {integrity: sha512-0AA4LviDtVtZqlyUQnZMVHydDATpD9SAX/RC5qh6cBd3xmyWvmXYF+WT1oOmxkeMnWDlUVTwdODeucUnjz3gow==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6916,35 +6746,7 @@ packages: '@typescript-eslint/visitor-keys': 5.48.0 dev: true - /@typescript-eslint/scope-manager/5.51.0: - resolution: {integrity: sha512-gNpxRdlx5qw3yaHA0SFuTjW4rxeYhpHxt491PEcKF8Z6zpq0kMhe0Tolxt0qjlojS+/wArSDlj/LtE69xUJphQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.51.0 - '@typescript-eslint/visitor-keys': 5.51.0 - dev: true - - /@typescript-eslint/type-utils/5.47.0_req3y6wneysbxs6mlxvssjag2i: - resolution: {integrity: sha512-1J+DFFrYoDUXQE1b7QjrNGARZE6uVhBqIvdaXTe5IN+NmEyD68qXR1qX1g2u4voA+nCaelQyG8w30SAOihhEYg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '*' - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/typescript-estree': 5.47.0_typescript@4.9.5 - '@typescript-eslint/utils': 5.47.0_req3y6wneysbxs6mlxvssjag2i - debug: 4.3.4 - eslint: 8.30.0 - tsutils: 3.21.0_typescript@4.9.5 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/type-utils/5.48.0_ifw3q4r6iq3gw7cspzs2siycvu: + /@typescript-eslint/type-utils/5.48.0_7kw3g6rralp5ps6mg3uyzz6azm: resolution: {integrity: sha512-vbtPO5sJyFjtHkGlGK4Sthmta0Bbls4Onv0bEqOGm7hP9h8UpRsHJwsrCiWtCUndTRNQO/qe6Ijz9rnT/DB+7g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -6955,51 +6757,20 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 5.48.0_typescript@4.9.5 - '@typescript-eslint/utils': 5.48.0_ifw3q4r6iq3gw7cspzs2siycvu + '@typescript-eslint/utils': 5.48.0_7kw3g6rralp5ps6mg3uyzz6azm debug: 4.3.4 - eslint: 8.31.0 + eslint: 8.34.0 tsutils: 3.21.0_typescript@4.9.5 typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.47.0: - resolution: {integrity: sha512-eslFG0Qy8wpGzDdYKu58CEr3WLkjwC5Usa6XbuV89ce/yN5RITLe1O8e+WFEuxnfftHiJImkkOBADj58ahRxSg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - /@typescript-eslint/types/5.48.0: resolution: {integrity: sha512-UTe67B0Ypius0fnEE518NB2N8gGutIlTojeTg4nt0GQvikReVkurqxd2LvYa9q9M5MQ6rtpNyWTBxdscw40Xhw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types/5.51.0: - resolution: {integrity: sha512-SqOn0ANn/v6hFn0kjvLwiDi4AzR++CBZz0NV5AnusT2/3y32jdc0G4woXPWHCumWtUXZKPAS27/9vziSsC9jnw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /@typescript-eslint/typescript-estree/5.47.0_typescript@4.9.5: - resolution: {integrity: sha512-LxfKCG4bsRGq60Sqqu+34QT5qT2TEAHvSCCJ321uBWywgE2dS0LKcu5u+3sMGo+Vy9UmLOhdTw5JHzePV/1y4Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 5.47.0 - '@typescript-eslint/visitor-keys': 5.47.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.3.8 - tsutils: 3.21.0_typescript@4.9.5 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/typescript-estree/5.48.0_typescript@4.9.5: resolution: {integrity: sha512-7pjd94vvIjI1zTz6aq/5wwE/YrfIyEPLtGJmRfyNR9NYIW+rOvzzUv3Cmq2hRKpvt6e9vpvPUQ7puzX7VSmsEw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -7021,48 +6792,7 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree/5.51.0_typescript@4.9.5: - resolution: {integrity: sha512-TSkNupHvNRkoH9FMA3w7TazVFcBPveAAmb7Sz+kArY6sLT86PA5Vx80cKlYmd8m3Ha2SwofM1KwraF24lM9FvA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 5.51.0 - '@typescript-eslint/visitor-keys': 5.51.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.3.8 - tsutils: 3.21.0_typescript@4.9.5 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/utils/5.47.0_req3y6wneysbxs6mlxvssjag2i: - resolution: {integrity: sha512-U9xcc0N7xINrCdGVPwABjbAKqx4GK67xuMV87toI+HUqgXj26m6RBp9UshEXcTrgCkdGYFzgKLt8kxu49RilDw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - '@types/json-schema': 7.0.11 - '@types/semver': 7.3.13 - '@typescript-eslint/scope-manager': 5.47.0 - '@typescript-eslint/types': 5.47.0 - '@typescript-eslint/typescript-estree': 5.47.0_typescript@4.9.5 - eslint: 8.30.0 - eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.30.0 - semver: 7.3.8 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/utils/5.48.0_ifw3q4r6iq3gw7cspzs2siycvu: + /@typescript-eslint/utils/5.48.0_7kw3g6rralp5ps6mg3uyzz6azm: resolution: {integrity: sha512-x2jrMcPaMfsHRRIkL+x96++xdzvrdBCnYRd5QiW5Wgo1OB4kDYPbC1XjWP/TNqlfK93K/lUL92erq5zPLgFScQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -7073,43 +6803,15 @@ packages: '@typescript-eslint/scope-manager': 5.48.0 '@typescript-eslint/types': 5.48.0 '@typescript-eslint/typescript-estree': 5.48.0_typescript@4.9.5 - eslint: 8.31.0 + eslint: 8.34.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.31.0 + eslint-utils: 3.0.0_eslint@8.34.0 semver: 7.3.8 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/utils/5.51.0_req3y6wneysbxs6mlxvssjag2i: - resolution: {integrity: sha512-76qs+5KWcaatmwtwsDJvBk4H76RJQBFe+Gext0EfJdC3Vd2kpY2Pf//OHHzHp84Ciw0/rYoGTDnIAr3uWhhJYw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - '@types/json-schema': 7.0.11 - '@types/semver': 7.3.13 - '@typescript-eslint/scope-manager': 5.51.0 - '@typescript-eslint/types': 5.51.0 - '@typescript-eslint/typescript-estree': 5.51.0_typescript@4.9.5 - eslint: 8.30.0 - eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.30.0 - semver: 7.3.8 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/visitor-keys/5.47.0: - resolution: {integrity: sha512-ByPi5iMa6QqDXe/GmT/hR6MZtVPi0SqMQPDx15FczCBXJo/7M8T88xReOALAfpBLm+zxpPfmhuEvPb577JRAEg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.47.0 - eslint-visitor-keys: 3.3.0 - dev: true - /@typescript-eslint/visitor-keys/5.48.0: resolution: {integrity: sha512-5motVPz5EgxQ0bHjut3chzBkJ3Z3sheYVcSwS5BpHZpLqSptSmELNtGixmgj65+rIfhvtQTz5i9OP2vtzdDH7Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -7118,14 +6820,6 @@ packages: eslint-visitor-keys: 3.3.0 dev: true - /@typescript-eslint/visitor-keys/5.51.0: - resolution: {integrity: sha512-Oh2+eTdjHjOFjKA27sxESlA87YPSOJafGCR0md5oeMdh1ZcCfAGCIOL216uTBAkAIptvLIfKQhl7lHxMJet4GQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.51.0 - eslint-visitor-keys: 3.3.0 - dev: true - /@vitejs/plugin-react/3.1.0_vite@4.1.1: resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} engines: {node: ^14.18.0 || >=16.0.0} @@ -7353,12 +7047,12 @@ packages: acorn: 7.4.1 dev: true - /acorn-jsx/5.3.2_acorn@8.8.0: + /acorn-jsx/5.3.2_acorn@8.8.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.8.0 + acorn: 8.8.2 dev: true /acorn-walk/7.2.0: @@ -7580,13 +7274,13 @@ packages: engines: {node: '>=8'} dev: true - /array.prototype.flat/1.3.0: - resolution: {integrity: sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==} + /array.prototype.flat/1.3.1: + resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.2 + es-abstract: 1.21.1 es-shim-unscopables: 1.0.0 dev: true @@ -7992,17 +7686,6 @@ packages: ieee754: 1.2.1 dev: false - /builtin-modules/3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} - dev: true - - /builtins/5.0.1: - resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} - dependencies: - semver: 7.3.8 - dev: true - /bytes/3.0.0: resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} engines: {node: '>= 0.8'} @@ -8198,13 +7881,6 @@ packages: engines: {node: '>=8'} dev: true - /clean-regexp/1.0.0: - resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} - engines: {node: '>=4'} - dependencies: - escape-string-regexp: 1.0.5 - dev: true - /clean-stack/2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} @@ -8810,43 +8486,16 @@ packages: csstype: 3.1.1 dev: false - /dom-serializer/2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - entities: 4.4.0 - dev: true - - /domelementtype/2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - dev: true - /domexception/1.0.1: resolution: {integrity: sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==} dependencies: webidl-conversions: 4.0.2 dev: true - /domhandler/5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} - dependencies: - domelementtype: 2.3.0 - dev: true - /domino/2.1.6: resolution: {integrity: sha512-3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ==} dev: false - /domutils/3.0.1: - resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==} - dependencies: - dom-serializer: 2.0.0 - domelementtype: 2.3.0 - domhandler: 5.0.3 - dev: true - /dotenv-expand/10.0.0: resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} engines: {node: '>=12'} @@ -8931,11 +8580,6 @@ packages: ansi-colors: 4.1.3 dev: true - /entities/4.4.0: - resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==} - engines: {node: '>=0.12'} - dev: true - /envinfo/7.8.1: resolution: {integrity: sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==} engines: {node: '>=4'} @@ -8951,35 +8595,6 @@ packages: dependencies: is-arrayish: 0.2.1 - /es-abstract/1.20.2: - resolution: {integrity: sha512-XxXQuVNrySBNlEkTYJoDNFe5+s2yIOpzq80sUHEdPdQr0S5nTLz4ZPPPswNIpKseDDUS5yghX1gfLIHQZ1iNuQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - es-to-primitive: 1.2.1 - function-bind: 1.1.1 - function.prototype.name: 1.1.5 - get-intrinsic: 1.1.3 - get-symbol-description: 1.0.0 - has: 1.0.3 - has-property-descriptors: 1.0.0 - has-symbols: 1.0.3 - internal-slot: 1.0.3 - is-callable: 1.2.6 - is-negative-zero: 2.0.2 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - is-string: 1.0.7 - is-weakref: 1.0.2 - object-inspect: 1.12.2 - object-keys: 1.1.1 - object.assign: 4.1.4 - regexp.prototype.flags: 1.4.3 - string.prototype.trimend: 1.0.5 - string.prototype.trimstart: 1.0.5 - unbox-primitive: 1.0.2 - dev: true - /es-abstract/1.21.1: resolution: {integrity: sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==} engines: {node: '>= 0.4'} @@ -9168,7 +8783,7 @@ packages: source-map: 0.6.1 dev: true - /eslint-config-next/12.3.1_hp3n5f6hao4yyg55iy34n6oive: + /eslint-config-next/12.3.1_typescript@4.9.5: resolution: {integrity: sha512-EN/xwKPU6jz1G0Qi6Bd/BqMnHLyRAL0VsaQaWA7F3KkjAgZHi4f1uL1JKGWNxdQpHTW/sdGONBd0bzxUka/DJg==} peerDependencies: eslint: ^7.23.0 || ^8.0.0 @@ -9179,127 +8794,39 @@ packages: dependencies: '@next/eslint-plugin-next': 12.3.1 '@rushstack/eslint-patch': 1.2.0 - '@typescript-eslint/parser': 5.48.0_hp3n5f6hao4yyg55iy34n6oive - eslint: 8.22.0 - eslint-import-resolver-node: 0.3.6 - eslint-import-resolver-typescript: 2.7.1_2iahngt3u2tkbdlu6s4gkur3pu - eslint-plugin-import: 2.26.0_zznokraecjt4ixvvqcdste35vq - eslint-plugin-jsx-a11y: 6.6.1_eslint@8.22.0 - eslint-plugin-react: 7.31.11_eslint@8.22.0 - eslint-plugin-react-hooks: 4.6.0_eslint@8.22.0 + '@typescript-eslint/parser': 5.48.0_typescript@4.9.5 + eslint-import-resolver-node: 0.3.7 + eslint-import-resolver-typescript: 2.7.1_5rfvta7qn57kxm7ir36ta6fixq + eslint-plugin-import: 2.27.5_yyrap6asrtdcelhal2ferseywy + eslint-plugin-jsx-a11y: 6.6.1 + eslint-plugin-react: 7.32.2 + eslint-plugin-react-hooks: 4.6.0 typescript: 4.9.5 transitivePeerDependencies: - eslint-import-resolver-webpack - supports-color dev: true - /eslint-config-next/12.3.1_ifw3q4r6iq3gw7cspzs2siycvu: - resolution: {integrity: sha512-EN/xwKPU6jz1G0Qi6Bd/BqMnHLyRAL0VsaQaWA7F3KkjAgZHi4f1uL1JKGWNxdQpHTW/sdGONBd0bzxUka/DJg==} - peerDependencies: - eslint: ^7.23.0 || ^8.0.0 - typescript: '>=3.3.1' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@next/eslint-plugin-next': 12.3.1 - '@rushstack/eslint-patch': 1.2.0 - '@typescript-eslint/parser': 5.48.0_ifw3q4r6iq3gw7cspzs2siycvu - eslint: 8.31.0 - eslint-import-resolver-node: 0.3.6 - eslint-import-resolver-typescript: 2.7.1_ol7jqilc3wemtdbq3nzhywgxq4 - eslint-plugin-import: 2.26.0_o2ymnzkcx6ynnxgq4q5neiwzpe - eslint-plugin-jsx-a11y: 6.6.1_eslint@8.31.0 - eslint-plugin-react: 7.31.11_eslint@8.31.0 - eslint-plugin-react-hooks: 4.6.0_eslint@8.31.0 - typescript: 4.9.5 - transitivePeerDependencies: - - eslint-import-resolver-webpack - - supports-color - dev: true - - /eslint-config-prettier/8.5.0_eslint@8.22.0: + /eslint-config-prettier/8.5.0_eslint@8.34.0: resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.22.0 + eslint: 8.34.0 dev: true - /eslint-config-prettier/8.5.0_eslint@8.30.0: - resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - dependencies: - eslint: 8.30.0 - dev: true - - /eslint-config-prettier/8.5.0_eslint@8.31.0: - resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - dependencies: - eslint: 8.31.0 - dev: true - - /eslint-config-standard-with-typescript/24.0.0_qmwxcimoyk7nz7sp3ytf5wrybi: - resolution: {integrity: sha512-vEnGXZ5aiR1enl9652iIP4nTpY3GPcNEwuhrsPbKO3Ce3D6T3yCqZdkUPk8nJetfdL/yO0DLsHg2d/l9iECIdg==} - peerDependencies: - '@typescript-eslint/eslint-plugin': ^5.0.0 - eslint: ^8.0.1 - eslint-plugin-import: ^2.25.2 - eslint-plugin-n: ^15.0.0 - eslint-plugin-promise: ^6.0.0 - typescript: '*' - dependencies: - '@typescript-eslint/eslint-plugin': 5.47.0_u2dlljfmmww5bdycoao24sqa5q - '@typescript-eslint/parser': 5.48.0_req3y6wneysbxs6mlxvssjag2i - eslint: 8.30.0 - eslint-config-standard: 17.0.0_bdcrn6xmt4gzw7vnrxwhbmoneu - eslint-plugin-import: 2.26.0_p6eswnf3xl3aaa2djfyukgz5eq - eslint-plugin-n: 15.6.1_eslint@8.30.0 - eslint-plugin-promise: 6.1.1_eslint@8.30.0 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint-config-standard/17.0.0_bdcrn6xmt4gzw7vnrxwhbmoneu: - resolution: {integrity: sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==} - peerDependencies: - eslint: ^8.0.1 - eslint-plugin-import: ^2.25.2 - eslint-plugin-n: ^15.0.0 - eslint-plugin-promise: ^6.0.0 - dependencies: - eslint: 8.30.0 - eslint-plugin-import: 2.26.0_p6eswnf3xl3aaa2djfyukgz5eq - eslint-plugin-n: 15.6.1_eslint@8.30.0 - eslint-plugin-promise: 6.1.1_eslint@8.30.0 - dev: true - - /eslint-import-resolver-alias/1.1.2_fkfqfehjtk7sk2efaqbgxsuasa: - resolution: {integrity: sha512-WdviM1Eu834zsfjHtcGHtGfcu+F30Od3V7I9Fi57uhBEwPkjDcii7/yW8jAT+gOhn4P/vOxxNAXbFAKsrrc15w==} - engines: {node: '>= 4'} - peerDependencies: - eslint-plugin-import: '>=1.4.0' - dependencies: - eslint-plugin-import: 2.26.0_p6eswnf3xl3aaa2djfyukgz5eq - dev: true - - /eslint-import-resolver-node/0.3.6: - resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==} + /eslint-import-resolver-node/0.3.7: + resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} dependencies: debug: 3.2.7 + is-core-module: 2.11.0 resolve: 1.22.1 transitivePeerDependencies: - supports-color dev: true - /eslint-import-resolver-typescript/2.7.1_2iahngt3u2tkbdlu6s4gkur3pu: + /eslint-import-resolver-typescript/2.7.1_5rfvta7qn57kxm7ir36ta6fixq: resolution: {integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==} engines: {node: '>=4'} peerDependencies: @@ -9307,8 +8834,7 @@ packages: eslint-plugin-import: '*' dependencies: debug: 4.3.4 - eslint: 8.22.0 - eslint-plugin-import: 2.26.0_zznokraecjt4ixvvqcdste35vq + eslint-plugin-import: 2.27.5_yyrap6asrtdcelhal2ferseywy glob: 7.2.3 is-glob: 4.0.3 resolve: 1.22.1 @@ -9317,45 +8843,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript/2.7.1_ol7jqilc3wemtdbq3nzhywgxq4: - resolution: {integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==} - engines: {node: '>=4'} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' - dependencies: - debug: 4.3.4 - eslint: 8.31.0 - eslint-plugin-import: 2.26.0_o2ymnzkcx6ynnxgq4q5neiwzpe - glob: 7.2.3 - is-glob: 4.0.3 - resolve: 1.22.1 - tsconfig-paths: 3.14.1 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint-import-resolver-typescript/3.5.2_2lbwmhbr7bncddqbzzpg77o75m: - resolution: {integrity: sha512-zX4ebnnyXiykjhcBvKIf5TNvt8K7yX6bllTRZ14MiurKPjDpCAZujlszTdB8pcNXhZcOf+god4s9SjQa5GnytQ==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' - dependencies: - debug: 4.3.4 - enhanced-resolve: 5.12.0 - eslint: 8.30.0 - eslint-plugin-import: 2.26.0_p6eswnf3xl3aaa2djfyukgz5eq - get-tsconfig: 4.4.0 - globby: 13.1.3 - is-core-module: 2.11.0 - is-glob: 4.0.3 - synckit: 0.8.5 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint-module-utils/2.7.4_rwfyzivsgbql5kqdd6lovekmku: + /eslint-module-utils/2.7.4_7tt65c33h36wrjxv6iulwpakhy: resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} peerDependencies: @@ -9376,16 +8864,15 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.48.0_ifw3q4r6iq3gw7cspzs2siycvu + '@typescript-eslint/parser': 5.48.0_7kw3g6rralp5ps6mg3uyzz6azm debug: 3.2.7 - eslint: 8.31.0 - eslint-import-resolver-node: 0.3.6 - eslint-import-resolver-typescript: 2.7.1_ol7jqilc3wemtdbq3nzhywgxq4 + eslint: 8.34.0 + eslint-import-resolver-node: 0.3.7 transitivePeerDependencies: - supports-color dev: true - /eslint-module-utils/2.7.4_tq5q2x4pem2nmnr5fqx62jngeq: + /eslint-module-utils/2.7.4_x7naht655oki6kt37ohcqz4scm: resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} peerDependencies: @@ -9406,89 +8893,49 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.48.0_hp3n5f6hao4yyg55iy34n6oive + '@typescript-eslint/parser': 5.48.0_typescript@4.9.5 debug: 3.2.7 - eslint: 8.22.0 - eslint-import-resolver-node: 0.3.6 - eslint-import-resolver-typescript: 2.7.1_2iahngt3u2tkbdlu6s4gkur3pu + eslint-import-resolver-node: 0.3.7 + eslint-import-resolver-typescript: 2.7.1_5rfvta7qn57kxm7ir36ta6fixq transitivePeerDependencies: - supports-color dev: true - /eslint-module-utils/2.7.4_zdsb5ko3hocyqbh4wogr2krc6u: - resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} + /eslint-plugin-import/2.27.5_srp5jszoagkj3pnpsesjjepemq: + resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 peerDependenciesMeta: '@typescript-eslint/parser': optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true dependencies: - '@typescript-eslint/parser': 5.47.0_req3y6wneysbxs6mlxvssjag2i + '@typescript-eslint/parser': 5.48.0_7kw3g6rralp5ps6mg3uyzz6azm + array-includes: 3.1.6 + array.prototype.flat: 1.3.1 + array.prototype.flatmap: 1.3.1 debug: 3.2.7 - eslint: 8.30.0 - eslint-import-resolver-node: 0.3.6 - eslint-import-resolver-typescript: 3.5.2_2lbwmhbr7bncddqbzzpg77o75m + doctrine: 2.1.0 + eslint: 8.34.0 + eslint-import-resolver-node: 0.3.7 + eslint-module-utils: 2.7.4_7tt65c33h36wrjxv6iulwpakhy + has: 1.0.3 + is-core-module: 2.11.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.values: 1.1.6 + resolve: 1.22.1 + semver: 6.3.0 + tsconfig-paths: 3.14.1 transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack - supports-color dev: true - /eslint-plugin-autofix/1.1.0_eslint@8.30.0: - resolution: {integrity: sha512-aKQ7s6CTeJRJgnhSlsGI7kQhnNCa1q3UYBM+9PTEgvdC5b+GjV/SZA233VNqkoBldb7/BkeWBRjorUjxeUfrxA==} - engines: {node: '>=8'} - peerDependencies: - eslint: '>= 5.12.1' - dependencies: - eslint: 8.30.0 - eslint-rule-composer: 0.3.0 - espree: 9.4.0 - esutils: 2.0.3 - lodash: 4.17.21 - string-similarity: 4.0.4 - dev: true - - /eslint-plugin-es/3.0.1_eslint@8.30.0: - resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} - engines: {node: '>=8.10.0'} - peerDependencies: - eslint: '>=4.19.1' - dependencies: - eslint: 8.30.0 - eslint-utils: 2.1.0 - regexpp: 3.2.0 - dev: true - - /eslint-plugin-es/4.1.0_eslint@8.30.0: - resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} - engines: {node: '>=8.10.0'} - peerDependencies: - eslint: '>=4.19.1' - dependencies: - eslint: 8.30.0 - eslint-utils: 2.1.0 - regexpp: 3.2.0 - dev: true - - /eslint-plugin-html/7.1.0: - resolution: {integrity: sha512-fNLRraV/e6j8e3XYOC9xgND4j+U7b1Rq+OygMlLcMg+wI/IpVbF+ubQa3R78EjKB9njT6TQOlcK5rFKBVVtdfg==} - dependencies: - htmlparser2: 8.0.1 - dev: true - - /eslint-plugin-import/2.26.0_o2ymnzkcx6ynnxgq4q5neiwzpe: - resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} + /eslint-plugin-import/2.27.5_yyrap6asrtdcelhal2ferseywy: + resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -9497,20 +8944,21 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.48.0_ifw3q4r6iq3gw7cspzs2siycvu + '@typescript-eslint/parser': 5.48.0_typescript@4.9.5 array-includes: 3.1.6 - array.prototype.flat: 1.3.0 - debug: 2.6.9 + array.prototype.flat: 1.3.1 + array.prototype.flatmap: 1.3.1 + debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.31.0 - eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.4_rwfyzivsgbql5kqdd6lovekmku + eslint-import-resolver-node: 0.3.7 + eslint-module-utils: 2.7.4_x7naht655oki6kt37ohcqz4scm has: 1.0.3 is-core-module: 2.11.0 is-glob: 4.0.3 minimatch: 3.1.2 object.values: 1.1.6 resolve: 1.22.1 + semver: 6.3.0 tsconfig-paths: 3.14.1 transitivePeerDependencies: - eslint-import-resolver-typescript @@ -9518,69 +8966,7 @@ packages: - supports-color dev: true - /eslint-plugin-import/2.26.0_p6eswnf3xl3aaa2djfyukgz5eq: - resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - dependencies: - '@typescript-eslint/parser': 5.47.0_req3y6wneysbxs6mlxvssjag2i - array-includes: 3.1.6 - array.prototype.flat: 1.3.0 - debug: 2.6.9 - doctrine: 2.1.0 - eslint: 8.30.0 - eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.4_zdsb5ko3hocyqbh4wogr2krc6u - has: 1.0.3 - is-core-module: 2.11.0 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.values: 1.1.6 - resolve: 1.22.1 - tsconfig-paths: 3.14.1 - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - dev: true - - /eslint-plugin-import/2.26.0_zznokraecjt4ixvvqcdste35vq: - resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - dependencies: - '@typescript-eslint/parser': 5.48.0_hp3n5f6hao4yyg55iy34n6oive - array-includes: 3.1.6 - array.prototype.flat: 1.3.0 - debug: 2.6.9 - doctrine: 2.1.0 - eslint: 8.22.0 - eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.4_tq5q2x4pem2nmnr5fqx62jngeq - has: 1.0.3 - is-core-module: 2.11.0 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.values: 1.1.6 - resolve: 1.22.1 - tsconfig-paths: 3.14.1 - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - dev: true - - /eslint-plugin-jsx-a11y/6.6.1_eslint@8.22.0: + /eslint-plugin-jsx-a11y/6.6.1: resolution: {integrity: sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==} engines: {node: '>=4.0'} peerDependencies: @@ -9594,7 +8980,6 @@ packages: axobject-query: 2.2.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.22.0 has: 1.0.3 jsx-ast-utils: 3.3.3 language-tags: 1.0.5 @@ -9602,61 +8987,7 @@ packages: semver: 6.3.0 dev: true - /eslint-plugin-jsx-a11y/6.6.1_eslint@8.31.0: - resolution: {integrity: sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==} - engines: {node: '>=4.0'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - dependencies: - '@babel/runtime': 7.20.7 - aria-query: 4.2.2 - array-includes: 3.1.6 - ast-types-flow: 0.0.7 - axe-core: 4.4.3 - axobject-query: 2.2.0 - damerau-levenshtein: 1.0.8 - emoji-regex: 9.2.2 - eslint: 8.31.0 - has: 1.0.3 - jsx-ast-utils: 3.3.3 - language-tags: 1.0.5 - minimatch: 3.1.2 - semver: 6.3.0 - dev: true - - /eslint-plugin-n/15.6.1_eslint@8.30.0: - resolution: {integrity: sha512-R9xw9OtCRxxaxaszTQmQAlPgM+RdGjaL1akWuY/Fv9fRAi8Wj4CUKc6iYVG8QNRjRuo8/BqVYIpfqberJUEacA==} - engines: {node: '>=12.22.0'} - peerDependencies: - eslint: '>=7.0.0' - dependencies: - builtins: 5.0.1 - eslint: 8.30.0 - eslint-plugin-es: 4.1.0_eslint@8.30.0 - eslint-utils: 3.0.0_eslint@8.30.0 - ignore: 5.2.0 - is-core-module: 2.11.0 - minimatch: 3.1.2 - resolve: 1.22.1 - semver: 7.3.8 - dev: true - - /eslint-plugin-node/11.1.0_eslint@8.30.0: - resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} - engines: {node: '>=8.10.0'} - peerDependencies: - eslint: '>=5.16.0' - dependencies: - eslint: 8.30.0 - eslint-plugin-es: 3.0.1_eslint@8.30.0 - eslint-utils: 2.1.0 - ignore: 5.2.0 - minimatch: 3.1.2 - resolve: 1.22.1 - semver: 6.3.0 - dev: true - - /eslint-plugin-prettier/4.2.1_kl4pe43v5b43npmso5hoplpbyi: + /eslint-plugin-prettier/4.2.1_f52onrjfrbj5enknkp6ytmuaxu: resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -9667,84 +8998,21 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.30.0 - eslint-config-prettier: 8.5.0_eslint@8.30.0 - prettier: 2.8.1 - prettier-linter-helpers: 1.0.0 - dev: true - - /eslint-plugin-prettier/4.2.1_vkmhlldugy3fnk7p2bqhsfnaiq: - resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} - engines: {node: '>=12.0.0'} - peerDependencies: - eslint: '>=7.28.0' - eslint-config-prettier: '*' - prettier: '>=2.0.0' - peerDependenciesMeta: - eslint-config-prettier: - optional: true - dependencies: - eslint: 8.31.0 - eslint-config-prettier: 8.5.0_eslint@8.31.0 + eslint: 8.34.0 + eslint-config-prettier: 8.5.0_eslint@8.34.0 prettier: 2.7.1 prettier-linter-helpers: 1.0.0 dev: true - /eslint-plugin-prettier/4.2.1_wc6gesg72dpfw5d6hhumtqiqsi: - resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} - engines: {node: '>=12.0.0'} - peerDependencies: - eslint: '>=7.28.0' - eslint-config-prettier: '*' - prettier: '>=2.0.0' - peerDependenciesMeta: - eslint-config-prettier: - optional: true - dependencies: - eslint: 8.22.0 - eslint-config-prettier: 8.5.0_eslint@8.22.0 - prettier: 2.8.1 - prettier-linter-helpers: 1.0.0 - dev: true - - /eslint-plugin-promise/6.1.1_eslint@8.30.0: - resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - dependencies: - eslint: 8.30.0 - dev: true - - /eslint-plugin-react-hooks/4.6.0_eslint@8.22.0: + /eslint-plugin-react-hooks/4.6.0: resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - dependencies: - eslint: 8.22.0 dev: true - /eslint-plugin-react-hooks/4.6.0_eslint@8.30.0: - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - dependencies: - eslint: 8.30.0 - dev: true - - /eslint-plugin-react-hooks/4.6.0_eslint@8.31.0: - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - dependencies: - eslint: 8.31.0 - dev: true - - /eslint-plugin-react/7.31.11_eslint@8.22.0: - resolution: {integrity: sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw==} + /eslint-plugin-react/7.32.2: + resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 @@ -9753,7 +9021,6 @@ packages: array.prototype.flatmap: 1.3.1 array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 - eslint: 8.22.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.3 minimatch: 3.1.2 @@ -9767,8 +9034,8 @@ packages: string.prototype.matchall: 4.0.8 dev: true - /eslint-plugin-react/7.31.11_eslint@8.30.0: - resolution: {integrity: sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw==} + /eslint-plugin-react/7.32.2_eslint@8.34.0: + resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 @@ -9777,7 +9044,7 @@ packages: array.prototype.flatmap: 1.3.1 array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 - eslint: 8.30.0 + eslint: 8.34.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.3 minimatch: 3.1.2 @@ -9791,85 +9058,15 @@ packages: string.prototype.matchall: 4.0.8 dev: true - /eslint-plugin-react/7.31.11_eslint@8.31.0: - resolution: {integrity: sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw==} - engines: {node: '>=4'} + /eslint-plugin-simple-import-sort/10.0.0_eslint@8.34.0: + resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint: '>=5.0.0' dependencies: - array-includes: 3.1.6 - array.prototype.flatmap: 1.3.1 - array.prototype.tosorted: 1.1.1 - doctrine: 2.1.0 - eslint: 8.31.0 - estraverse: 5.3.0 - jsx-ast-utils: 3.3.3 - minimatch: 3.1.2 - object.entries: 1.1.6 - object.fromentries: 2.0.6 - object.hasown: 1.1.2 - object.values: 1.1.6 - prop-types: 15.8.1 - resolve: 2.0.0-next.4 - semver: 6.3.0 - string.prototype.matchall: 4.0.8 + eslint: 8.34.0 dev: true - /eslint-plugin-security-node/1.1.1: - resolution: {integrity: sha512-PXl5uKQOglpIpU13YIwWhhXK9Sw14KHbzCdVthDWoIsUPOuMYbrGOCWJSEVVuZ1uJK2ciN+45ogPeErrKtNm0Q==} - engines: {node: '>=0.10.0'} - dev: true - - /eslint-plugin-security/1.5.0: - resolution: {integrity: sha512-hAFVwLZ/UeXrlyVD2TDarv/x00CoFVpaY0IUZhKjPjiFxqkuQVixsK4f2rxngeQOqSxi6OUjzJM/jMwKEVjJ8g==} - dependencies: - safe-regex: 2.1.1 - dev: true - - /eslint-plugin-typescript-sort-keys/2.1.0_u2dlljfmmww5bdycoao24sqa5q: - resolution: {integrity: sha512-ET7ABypdz19m47QnKynzNfWPi4CTNQ5jQQC1X5d0gojIwblkbGiCa5IilsqzBTmqxZ0yXDqKBO/GBkBFQCOFsg==} - engines: {node: 10 - 12 || >= 13.9} - peerDependencies: - '@typescript-eslint/parser': ^1 || ^2 || ^3 || ^4 || ^5 - eslint: ^5 || ^6 || ^7 || ^8 - typescript: ^3 || ^4 - dependencies: - '@typescript-eslint/experimental-utils': 5.51.0_req3y6wneysbxs6mlxvssjag2i - '@typescript-eslint/parser': 5.47.0_req3y6wneysbxs6mlxvssjag2i - eslint: 8.30.0 - json-schema: 0.4.0 - natural-compare-lite: 1.4.0 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint-plugin-unicorn/45.0.2_eslint@8.30.0: - resolution: {integrity: sha512-Y0WUDXRyGDMcKLiwgL3zSMpHrXI00xmdyixEGIg90gHnj0PcHY4moNv3Ppje/kDivdAy5vUeUr7z211ImPv2gw==} - engines: {node: '>=14.18'} - peerDependencies: - eslint: '>=8.28.0' - dependencies: - '@babel/helper-validator-identifier': 7.19.1 - '@eslint-community/eslint-utils': 4.1.2_eslint@8.30.0 - ci-info: 3.7.0 - clean-regexp: 1.0.0 - eslint: 8.30.0 - esquery: 1.4.0 - indent-string: 4.0.0 - is-builtin-module: 3.2.1 - jsesc: 3.0.2 - lodash: 4.17.21 - pluralize: 8.0.0 - read-pkg-up: 7.0.1 - regexp-tree: 0.1.24 - regjsparser: 0.9.1 - safe-regex: 2.1.1 - semver: 7.3.8 - strip-indent: 3.0.0 - dev: true - - /eslint-plugin-unused-imports/2.0.0_juver2u3xbiwnjfu6d55vmnoem: + /eslint-plugin-unused-imports/2.0.0_3p5c3yu7rnlwfc7nnagwrjhciu: resolution: {integrity: sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -9879,8 +9076,8 @@ packages: '@typescript-eslint/eslint-plugin': optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.47.0_u2dlljfmmww5bdycoao24sqa5q - eslint: 8.30.0 + '@typescript-eslint/eslint-plugin': 5.48.0_ddfje6clmktndfpbpk5swat3gi + eslint: 8.34.0 eslint-rule-composer: 0.3.0 dev: true @@ -9905,48 +9102,16 @@ packages: estraverse: 5.3.0 dev: true - /eslint-utils/2.1.0: - resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} - engines: {node: '>=6'} - dependencies: - eslint-visitor-keys: 1.3.0 - dev: true - - /eslint-utils/3.0.0_eslint@8.22.0: + /eslint-utils/3.0.0_eslint@8.34.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.22.0 + eslint: 8.34.0 eslint-visitor-keys: 2.1.0 dev: true - /eslint-utils/3.0.0_eslint@8.30.0: - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - dependencies: - eslint: 8.30.0 - eslint-visitor-keys: 2.1.0 - dev: true - - /eslint-utils/3.0.0_eslint@8.31.0: - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - dependencies: - eslint: 8.31.0 - eslint-visitor-keys: 2.1.0 - dev: true - - /eslint-visitor-keys/1.3.0: - resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} - engines: {node: '>=4'} - dev: true - /eslint-visitor-keys/2.1.0: resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} engines: {node: '>=10'} @@ -9957,56 +9122,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.22.0: - resolution: {integrity: sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - dependencies: - '@eslint/eslintrc': 1.4.1 - '@humanwhocodes/config-array': 0.10.4 - '@humanwhocodes/gitignore-to-minimatch': 1.0.2 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.22.0 - eslint-visitor-keys: 3.3.0 - espree: 9.4.0 - esquery: 1.4.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - functional-red-black-tree: 1.0.1 - glob-parent: 6.0.2 - globals: 13.19.0 - globby: 11.1.0 - grapheme-splitter: 1.0.4 - ignore: 5.2.0 - import-fresh: 3.3.0 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.1 - regexpp: 3.2.0 - strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 - text-table: 0.2.0 - v8-compile-cache: 2.3.0 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint/8.30.0: - resolution: {integrity: sha512-MGADB39QqYuzEGov+F/qb18r4i7DohCDOfatHaxI2iGlPuC65bwG2gxgO+7DkyL38dRFaRH7RaRAgU6JKL9rMQ==} + /eslint/8.34.0: + resolution: {integrity: sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: @@ -10021,55 +9138,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.30.0 - eslint-visitor-keys: 3.3.0 - espree: 9.4.0 - esquery: 1.4.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.19.0 - grapheme-splitter: 1.0.4 - ignore: 5.2.0 - import-fresh: 3.3.0 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-sdsl: 4.2.0 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.1 - regexpp: 3.2.0 - strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint/8.31.0: - resolution: {integrity: sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - dependencies: - '@eslint/eslintrc': 1.4.1 - '@humanwhocodes/config-array': 0.11.8 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.31.0 + eslint-utils: 3.0.0_eslint@8.34.0 eslint-visitor-keys: 3.3.0 espree: 9.4.0 esquery: 1.4.0 @@ -10105,8 +9174,8 @@ packages: resolution: {integrity: sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.8.0 - acorn-jsx: 5.3.2_acorn@8.8.0 + acorn: 8.8.2 + acorn-jsx: 5.3.2_acorn@8.8.2 eslint-visitor-keys: 3.3.0 dev: true @@ -10730,10 +9799,6 @@ packages: functions-have-names: 1.2.3 dev: true - /functional-red-black-tree/1.0.1: - resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} - dev: true - /functions-have-names/1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} @@ -10821,10 +9886,6 @@ packages: get-intrinsic: 1.1.3 dev: true - /get-tsconfig/4.4.0: - resolution: {integrity: sha512-0Gdjo/9+FzsYhXCEFueo2aY1z1tpXrxWZzP7k8ul9qt1U5o8rYJwTJYmaeHdrVosYIVYkOy2iwCJ9FdpocJhPQ==} - dev: true - /giget/1.0.0: resolution: {integrity: sha512-KWELZn3Nxq5+0So485poHrFriK9Bn3V/x9y+wgqrHkbmnGbjfLmZ685/SVA/ovW+ewoqW0gVI47pI4yW/VNobQ==} hasBin: true @@ -10932,10 +9993,6 @@ packages: define-properties: 1.1.4 dev: true - /globalyzer/0.1.0: - resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} - dev: true - /globby/11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -10959,10 +10016,6 @@ packages: slash: 4.0.0 dev: true - /globrex/0.1.2: - resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - dev: true - /gopd/1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: @@ -11125,15 +10178,6 @@ packages: through2: 0.4.2 dev: false - /htmlparser2/8.0.1: - resolution: {integrity: sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==} - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.0.1 - entities: 4.4.0 - dev: true - /http-cache-semantics/4.1.0: resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==} dev: true @@ -11273,15 +10317,6 @@ packages: /inherits/2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - /internal-slot/1.0.3: - resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.1.3 - has: 1.0.3 - side-channel: 1.0.4 - dev: true - /internal-slot/1.0.4: resolution: {integrity: sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==} engines: {node: '>= 0.4'} @@ -11355,18 +10390,6 @@ packages: has-tostringtag: 1.0.0 dev: true - /is-builtin-module/3.2.1: - resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} - engines: {node: '>=6'} - dependencies: - builtin-modules: 3.3.0 - dev: true - - /is-callable/1.2.6: - resolution: {integrity: sha512-krO72EO2NptOGAX2KYyqbP9vYMlNAXdB53rq6f8LXY6RY7JdSR/3BD6wLUlPHSAesmY9vstNrjvqGaCiRK/91Q==} - engines: {node: '>= 0.4'} - dev: true - /is-callable/1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} @@ -11762,6 +10785,7 @@ packages: /js-yaml/4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true dependencies: argparse: 2.0.1 @@ -11806,12 +10830,6 @@ packages: hasBin: true dev: true - /jsesc/3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} - engines: {node: '>=6'} - hasBin: true - dev: true - /json-buffer/3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} dev: true @@ -11844,10 +10862,6 @@ packages: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true - /json-schema/0.4.0: - resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} - dev: true - /json-stable-stringify-without-jsonify/1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true @@ -13286,11 +12300,6 @@ packages: hasBin: true dev: true - /pluralize/8.0.0: - resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} - engines: {node: '>=4'} - dev: true - /polished/4.2.2: resolution: {integrity: sha512-Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ==} engines: {node: '>=10'} @@ -13910,11 +12919,6 @@ packages: '@babel/runtime': 7.20.7 dev: true - /regexp-tree/0.1.24: - resolution: {integrity: sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==} - hasBin: true - dev: true - /regexp.prototype.flags/1.4.3: resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} engines: {node: '>= 0.4'} @@ -14107,12 +13111,6 @@ packages: is-regex: 1.1.4 dev: true - /safe-regex/2.1.1: - resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==} - dependencies: - regexp-tree: 0.1.24 - dev: true - /safer-buffer/2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -14358,7 +13356,7 @@ packages: engines: {node: '>=6'} hasBin: true dependencies: - array.prototype.flat: 1.3.0 + array.prototype.flat: 1.3.1 breakword: 1.0.5 grapheme-splitter: 1.0.4 strip-ansi: 6.0.1 @@ -14511,10 +13509,6 @@ packages: engines: {node: '>=0.6.19'} dev: true - /string-similarity/4.0.4: - resolution: {integrity: sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ==} - dev: true - /string-width/4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -14540,19 +13534,11 @@ packages: es-abstract: 1.21.1 get-intrinsic: 1.1.3 has-symbols: 1.0.3 - internal-slot: 1.0.3 + internal-slot: 1.0.4 regexp.prototype.flags: 1.4.3 side-channel: 1.0.4 dev: true - /string.prototype.trimend/1.0.5: - resolution: {integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.21.1 - dev: true - /string.prototype.trimend/1.0.6: resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} dependencies: @@ -14561,14 +13547,6 @@ packages: es-abstract: 1.21.1 dev: true - /string.prototype.trimstart/1.0.5: - resolution: {integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.21.1 - dev: true - /string.prototype.trimstart/1.0.6: resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} dependencies: @@ -14752,14 +13730,6 @@ packages: resolution: {integrity: sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g==} dev: true - /synckit/0.8.5: - resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} - engines: {node: ^14.18.0 || >=16.0.0} - dependencies: - '@pkgr/utils': 2.3.1 - tslib: 2.5.0 - dev: true - /tapable/2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} @@ -14841,7 +13811,7 @@ packages: hasBin: true dependencies: '@jridgewell/source-map': 0.3.2 - acorn: 8.8.0 + acorn: 8.8.2 commander: 2.20.3 source-map-support: 0.5.21 dev: true @@ -14889,13 +13859,6 @@ packages: next-tick: 1.1.0 dev: false - /tiny-glob/0.2.9: - resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} - dependencies: - globalyzer: 0.1.0 - globrex: 0.1.2 - dev: true - /tinybench/2.3.1: resolution: {integrity: sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==} dev: true @@ -15270,7 +14233,7 @@ packages: /unplugin/0.10.2: resolution: {integrity: sha512-6rk7GUa4ICYjae5PrAllvcDeuT8pA9+j5J5EkxbMFaV+SalHhxZ7X2dohMzu6C3XzsMT+6jwR/+pwPNR3uK9MA==} dependencies: - acorn: 8.8.0 + acorn: 8.8.2 chokidar: 3.5.3 webpack-sources: 3.2.3 webpack-virtual-modules: 0.4.6 @@ -15385,10 +14348,6 @@ packages: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true - /v8-compile-cache/2.3.0: - resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} - dev: true - /v8-to-istanbul/9.0.1: resolution: {integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==} engines: {node: '>=10.12.0'} diff --git a/tests/change-page-mode.spec.ts b/tests/change-page-mode.spec.ts index f504dc7c82..e5386aa5f6 100644 --- a/tests/change-page-mode.spec.ts +++ b/tests/change-page-mode.spec.ts @@ -1,7 +1,8 @@ import { expect } from '@playwright/test'; -import { test } from './libs/playwright'; + import { loadPage } from './libs/load-page'; import { clickPageMoreActions } from './libs/page-logic'; +import { test } from './libs/playwright'; loadPage(); test.describe('Change page mode(Paper or Edgeless)', () => { diff --git a/tests/console.spec.ts b/tests/console.spec.ts index 88a61e4e7b..4114dccfc9 100644 --- a/tests/console.spec.ts +++ b/tests/console.spec.ts @@ -1,8 +1,9 @@ +import { expect } from '@playwright/test'; import fs from 'fs'; import path from 'path'; -import { expect } from '@playwright/test'; -import { test } from './libs/playwright'; + import { loadPage } from './libs/load-page'; +import { test } from './libs/playwright'; const pkgPath = path.join(__dirname, '../apps/web/package.json'); const record = fs.readFileSync(pkgPath, 'utf8'); diff --git a/tests/contact-us.spec.ts b/tests/contact-us.spec.ts index 62e9fa23e7..d31346aa13 100644 --- a/tests/contact-us.spec.ts +++ b/tests/contact-us.spec.ts @@ -1,6 +1,7 @@ import { expect } from '@playwright/test'; -import { test } from './libs/playwright'; + import { loadPage } from './libs/load-page'; +import { test } from './libs/playwright'; loadPage(); diff --git a/tests/exception-page.spec.ts b/tests/exception-page.spec.ts index 98720f7a9c..3fac866667 100644 --- a/tests/exception-page.spec.ts +++ b/tests/exception-page.spec.ts @@ -1,6 +1,7 @@ import { expect } from '@playwright/test'; -import { test } from './libs/playwright'; + import { loadPage } from './libs/load-page'; +import { test } from './libs/playwright'; loadPage(); diff --git a/tests/invite-code-page.spec.ts b/tests/invite-code-page.spec.ts index 116cc01cc6..8d69889aaf 100644 --- a/tests/invite-code-page.spec.ts +++ b/tests/invite-code-page.spec.ts @@ -1,6 +1,7 @@ import { expect } from '@playwright/test'; -import { test } from './libs/playwright'; + import { loadPage } from './libs/load-page'; +import { test } from './libs/playwright'; loadPage(); diff --git a/tests/layout.spec.ts b/tests/layout.spec.ts index 16aedb56d0..4a997693c7 100644 --- a/tests/layout.spec.ts +++ b/tests/layout.spec.ts @@ -1,6 +1,7 @@ import { expect } from '@playwright/test'; -import { test } from './libs/playwright'; + import { loadPage } from './libs/load-page'; +import { test } from './libs/playwright'; loadPage(); diff --git a/tests/libs/load-page.ts b/tests/libs/load-page.ts index 3546a42e0a..2765042728 100644 --- a/tests/libs/load-page.ts +++ b/tests/libs/load-page.ts @@ -1,5 +1,5 @@ -import { test } from '@playwright/test'; import type { Page } from '@playwright/test'; +import { test } from '@playwright/test'; interface IType { page: Page; diff --git a/tests/libs/playwright.ts b/tests/libs/playwright.ts index 7a6d1c9a62..1e7da6728b 100644 --- a/tests/libs/playwright.ts +++ b/tests/libs/playwright.ts @@ -1,8 +1,9 @@ -import { test as baseTest } from '@playwright/test'; +import crypto from 'node:crypto'; import fs from 'node:fs'; import path from 'node:path'; import process from 'node:process'; -import crypto from 'node:crypto'; + +import { test as baseTest } from '@playwright/test'; const istanbulTempDir = process.env.ISTANBUL_TEMP_DIR ? path.resolve(process.env.ISTANBUL_TEMP_DIR) diff --git a/tests/local-first-delete-page.spec.ts b/tests/local-first-delete-page.spec.ts index 2218cd6846..bcac57e8ed 100644 --- a/tests/local-first-delete-page.spec.ts +++ b/tests/local-first-delete-page.spec.ts @@ -1,7 +1,8 @@ import { expect } from '@playwright/test'; -import { test } from './libs/playwright'; + import { loadPage } from './libs/load-page'; import { newPage } from './libs/page-logic'; +import { test } from './libs/playwright'; loadPage(); diff --git a/tests/local-first-export-page.spec.ts b/tests/local-first-export-page.spec.ts index 2c6db7f640..c8f238e48b 100644 --- a/tests/local-first-export-page.spec.ts +++ b/tests/local-first-export-page.spec.ts @@ -1,7 +1,8 @@ import { expect } from '@playwright/test'; -import { test } from './libs/playwright'; + import { loadPage } from './libs/load-page'; -import { newPage, clickPageMoreActions } from './libs/page-logic'; +import { clickPageMoreActions, newPage } from './libs/page-logic'; +import { test } from './libs/playwright'; loadPage(); test.describe('Local first export page', () => { diff --git a/tests/local-first-favorite-page.spec.ts b/tests/local-first-favorite-page.spec.ts index 99fce26f07..2e52e8c995 100644 --- a/tests/local-first-favorite-page.spec.ts +++ b/tests/local-first-favorite-page.spec.ts @@ -1,7 +1,8 @@ import { expect } from '@playwright/test'; -import { test } from './libs/playwright'; + import { loadPage } from './libs/load-page'; -import { newPage, clickPageMoreActions } from './libs/page-logic'; +import { clickPageMoreActions, newPage } from './libs/page-logic'; +import { test } from './libs/playwright'; loadPage(); test.describe('Local first favorite and cancel favorite page', () => { diff --git a/tests/local-first-favorites-items.spec.ts b/tests/local-first-favorites-items.spec.ts index 34b67223f7..24261af986 100644 --- a/tests/local-first-favorites-items.spec.ts +++ b/tests/local-first-favorites-items.spec.ts @@ -1,7 +1,8 @@ import { expect } from '@playwright/test'; -import { test } from './libs/playwright'; + import { loadPage } from './libs/load-page'; -import { newPage, clickPageMoreActions } from './libs/page-logic'; +import { clickPageMoreActions, newPage } from './libs/page-logic'; +import { test } from './libs/playwright'; loadPage(); test.describe('Local first favorite items ui', () => { diff --git a/tests/local-first-new-page.spec.ts b/tests/local-first-new-page.spec.ts index 4efd359a6b..900fe08c3d 100644 --- a/tests/local-first-new-page.spec.ts +++ b/tests/local-first-new-page.spec.ts @@ -1,7 +1,8 @@ import { expect } from '@playwright/test'; -import { test } from './libs/playwright'; + import { loadPage } from './libs/load-page'; import { newPage } from './libs/page-logic'; +import { test } from './libs/playwright'; loadPage(); test.describe('local first new page', () => { diff --git a/tests/local-first-openpage-newtab.spec.ts b/tests/local-first-openpage-newtab.spec.ts index 6c41e2c5c7..f61730dd29 100644 --- a/tests/local-first-openpage-newtab.spec.ts +++ b/tests/local-first-openpage-newtab.spec.ts @@ -1,7 +1,8 @@ import { expect } from '@playwright/test'; -import { test } from './libs/playwright'; + import { loadPage } from './libs/load-page'; import { newPage } from './libs/page-logic'; +import { test } from './libs/playwright'; loadPage(); test.describe('local first new page', () => { diff --git a/tests/local-first-restore-page.spec.ts b/tests/local-first-restore-page.spec.ts index 9fcbab0be7..b0f9143f5d 100644 --- a/tests/local-first-restore-page.spec.ts +++ b/tests/local-first-restore-page.spec.ts @@ -1,7 +1,8 @@ import { expect } from '@playwright/test'; -import { test } from './libs/playwright'; + import { loadPage } from './libs/load-page'; import { newPage } from './libs/page-logic'; +import { test } from './libs/playwright'; loadPage(); test.describe('Local first delete page', () => { diff --git a/tests/local-first-show-delete-modal.spec.ts b/tests/local-first-show-delete-modal.spec.ts index 712f3b70ce..f78393e671 100644 --- a/tests/local-first-show-delete-modal.spec.ts +++ b/tests/local-first-show-delete-modal.spec.ts @@ -1,7 +1,8 @@ import { expect } from '@playwright/test'; -import { test } from './libs/playwright'; + import { loadPage } from './libs/load-page'; -import { newPage, clickPageMoreActions } from './libs/page-logic'; +import { clickPageMoreActions, newPage } from './libs/page-logic'; +import { test } from './libs/playwright'; loadPage(); test.describe('Local first delete page', () => { diff --git a/tests/local-first-trash-page.spec.ts b/tests/local-first-trash-page.spec.ts index c9268fb4f6..7d598afc1f 100644 --- a/tests/local-first-trash-page.spec.ts +++ b/tests/local-first-trash-page.spec.ts @@ -1,7 +1,8 @@ import { expect } from '@playwright/test'; -import { test } from './libs/playwright'; + import { loadPage } from './libs/load-page'; import { newPage } from './libs/page-logic'; +import { test } from './libs/playwright'; loadPage(); test.describe('Local first trash page', () => { diff --git a/tests/local-first-workspace-list.spec.ts b/tests/local-first-workspace-list.spec.ts index 2c63396b55..b07105cbe2 100644 --- a/tests/local-first-workspace-list.spec.ts +++ b/tests/local-first-workspace-list.spec.ts @@ -1,6 +1,7 @@ import { expect } from '@playwright/test'; -import { test } from './libs/playwright'; + import { loadPage } from './libs/load-page'; +import { test } from './libs/playwright'; import { createWorkspace } from './libs/workspace-logic'; loadPage(); diff --git a/tests/local-first-workspace.spec.ts b/tests/local-first-workspace.spec.ts index cbf4f232a0..5a6e631f6d 100644 --- a/tests/local-first-workspace.spec.ts +++ b/tests/local-first-workspace.spec.ts @@ -1,6 +1,7 @@ import { expect } from '@playwright/test'; -import { test } from './libs/playwright'; + import { loadPage } from './libs/load-page'; +import { test } from './libs/playwright'; loadPage(); diff --git a/tests/login.spec.ts b/tests/login.spec.ts index c5c36c5fc9..0ed70afe4a 100644 --- a/tests/login.spec.ts +++ b/tests/login.spec.ts @@ -1,5 +1,5 @@ -import { test } from './libs/playwright'; import { loadPage } from './libs/load-page'; +import { test } from './libs/playwright'; loadPage(); diff --git a/tests/quick-search.spec.ts b/tests/quick-search.spec.ts index c5764c5c35..03f16d68a4 100644 --- a/tests/quick-search.spec.ts +++ b/tests/quick-search.spec.ts @@ -1,8 +1,9 @@ import { expect, type Page } from '@playwright/test'; -import { test } from './libs/playwright'; -import { loadPage } from './libs/load-page'; + import { withCtrlOrMeta } from './libs/keyboard'; +import { loadPage } from './libs/load-page'; import { newPage } from './libs/page-logic'; +import { test } from './libs/playwright'; loadPage(); const openQuickSearchByShortcut = async (page: Page) => diff --git a/tests/shortcuts.spec.ts b/tests/shortcuts.spec.ts index f7010624ee..139021ffe1 100644 --- a/tests/shortcuts.spec.ts +++ b/tests/shortcuts.spec.ts @@ -1,6 +1,7 @@ import { expect } from '@playwright/test'; -import { test } from './libs/playwright'; + import { loadPage } from './libs/load-page'; +import { test } from './libs/playwright'; loadPage(); diff --git a/tests/theme.spec.ts b/tests/theme.spec.ts index c48e5f8422..578cad814e 100644 --- a/tests/theme.spec.ts +++ b/tests/theme.spec.ts @@ -1,6 +1,7 @@ import { expect } from '@playwright/test'; -import { test } from './libs/playwright'; + import { loadPage } from './libs/load-page'; +import { test } from './libs/playwright'; loadPage();