diff --git a/frontend/package.json b/frontend/package.json index e2443deccd..b142094b7b 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -8,6 +8,8 @@ "build": "tsc && vite build", "build-dev": "tsc && vite build -m development", "preview": "vite preview", + "madge": "madge --circular src/main.tsx", + "lint": "eslint src/", "postinstall": "patch-package" }, "dependencies": { @@ -58,6 +60,7 @@ "eslint": "^8.23.0", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-react-hooks": "^4.6.0", + "madge": "^5.0.1", "patch-package": "^6.5.0", "postinstall-postinstall": "^2.1.0", "sass": "^1.55.0", @@ -67,5 +70,15 @@ "vite": "^3.0.7", "vite-plugin-eslint": "^1.8.1", "vite-tsconfig-paths": "^3.5.2" + }, + "madge": { + "detectiveOptions": { + "ts": { + "skipTypeImports": true + }, + "tsx": { + "skipTypeImports": true + } + } } } diff --git a/frontend/src/app/invokeai.d.ts b/frontend/src/app/invokeai.d.ts index ea53b54546..aa7a43eb38 100644 --- a/frontend/src/app/invokeai.d.ts +++ b/frontend/src/app/invokeai.d.ts @@ -12,8 +12,7 @@ * 'gfpgan'. */ -import { Category as GalleryCategory } from 'features/gallery/store/gallerySlice'; -import { InvokeTabName } from 'features/tabs/components/InvokeTabs'; +import { InvokeTabName } from 'features/tabs/tabMap'; import { IRect } from 'konva/lib/types'; /** diff --git a/frontend/src/app/socketio/actions.ts b/frontend/src/app/socketio/actions.ts index 31894213b4..e0455ecbd1 100644 --- a/frontend/src/app/socketio/actions.ts +++ b/frontend/src/app/socketio/actions.ts @@ -1,6 +1,6 @@ import { createAction } from '@reduxjs/toolkit'; import { GalleryCategory } from 'features/gallery/store/gallerySlice'; -import { InvokeTabName } from 'features/tabs/components/InvokeTabs'; +import { InvokeTabName } from 'features/tabs/tabMap'; import * as InvokeAI from 'app/invokeai'; /** diff --git a/frontend/src/app/socketio/emitters.ts b/frontend/src/app/socketio/emitters.ts index e622769f41..8a82b01a00 100644 --- a/frontend/src/app/socketio/emitters.ts +++ b/frontend/src/app/socketio/emitters.ts @@ -17,9 +17,9 @@ import { modelChangeRequested, setIsProcessing, } from 'features/system/store/systemSlice'; -import { InvokeTabName } from 'features/tabs/components/InvokeTabs'; +import { InvokeTabName } from 'features/tabs/tabMap'; import * as InvokeAI from 'app/invokeai'; -import { RootState } from 'app/store'; +import type { RootState } from 'app/store'; /** * Returns an object containing all functions which use `socketio.emit()`. diff --git a/frontend/src/app/socketio/listeners.ts b/frontend/src/app/socketio/listeners.ts index e3cab60828..2868bcbbb1 100644 --- a/frontend/src/app/socketio/listeners.ts +++ b/frontend/src/app/socketio/listeners.ts @@ -39,7 +39,7 @@ import { requestSystemConfig, } from './actions'; import { addImageToStagingArea } from 'features/canvas/store/canvasSlice'; -import { tabMap } from 'features/tabs/components/InvokeTabs'; +import { tabMap } from 'features/tabs/tabMap'; /** * Returns an object containing listener callbacks for socketio events. diff --git a/frontend/src/app/store.ts b/frontend/src/app/store.ts index 8bb9f87f6e..73423f3ff2 100644 --- a/frontend/src/app/store.ts +++ b/frontend/src/app/store.ts @@ -1,6 +1,4 @@ import { combineReducers, configureStore } from '@reduxjs/toolkit'; -import { useDispatch, useSelector } from 'react-redux'; -import type { TypedUseSelectorHook } from 'react-redux'; import { persistReducer } from 'redux-persist'; import storage from 'redux-persist/lib/storage'; // defaults to localStorage for web @@ -101,7 +99,3 @@ export const store = configureStore({ export type AppGetState = typeof store.getState; export type RootState = ReturnType; export type AppDispatch = typeof store.dispatch; - -// Use throughout your app instead of plain `useDispatch` and `useSelector` -export const useAppDispatch: () => AppDispatch = useDispatch; -export const useAppSelector: TypedUseSelectorHook = useSelector; diff --git a/frontend/src/app/storeHooks.ts b/frontend/src/app/storeHooks.ts new file mode 100644 index 0000000000..391929d74b --- /dev/null +++ b/frontend/src/app/storeHooks.ts @@ -0,0 +1,6 @@ +import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux'; +import { AppDispatch, RootState } from './store'; + +// Use throughout your app instead of plain `useDispatch` and `useSelector` +export const useAppDispatch: () => AppDispatch = useDispatch; +export const useAppSelector: TypedUseSelectorHook = useSelector; diff --git a/frontend/src/common/components/GuidePopover.tsx b/frontend/src/common/components/GuidePopover.tsx index f8ad81eaaa..61f076976c 100644 --- a/frontend/src/common/components/GuidePopover.tsx +++ b/frontend/src/common/components/GuidePopover.tsx @@ -6,7 +6,7 @@ import { Box, } from '@chakra-ui/react'; import { SystemState } from 'features/system/store/systemSlice'; -import { useAppSelector } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; import { RootState } from 'app/store'; import { createSelector } from '@reduxjs/toolkit'; import { ReactElement } from 'react'; diff --git a/frontend/src/common/components/ImageUploader.tsx b/frontend/src/common/components/ImageUploader.tsx index 04cce48b5d..81db0877f0 100644 --- a/frontend/src/common/components/ImageUploader.tsx +++ b/frontend/src/common/components/ImageUploader.tsx @@ -5,7 +5,7 @@ import { useEffect, KeyboardEvent, } from 'react'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { FileRejection, useDropzone } from 'react-dropzone'; import { useToast } from '@chakra-ui/react'; import { ImageUploaderTriggerContext } from 'app/contexts/ImageUploaderTriggerContext'; diff --git a/frontend/src/common/util/parameterTranslation.ts b/frontend/src/common/util/parameterTranslation.ts index 1dc2dfedc7..eed9db2e07 100644 --- a/frontend/src/common/util/parameterTranslation.ts +++ b/frontend/src/common/util/parameterTranslation.ts @@ -4,11 +4,8 @@ import { SystemState } from 'features/system/store/systemSlice'; import { stringToSeedWeightsArray } from './seedWeightPairs'; import randomInt from './randomInt'; -import { InvokeTabName } from 'features/tabs/components/InvokeTabs'; -import { - CanvasState, - isCanvasMaskLine, -} from 'features/canvas/store/canvasTypes'; +import { InvokeTabName } from 'features/tabs/tabMap'; +import { CanvasState, isCanvasMaskLine } from 'features/canvas/store/canvasTypes'; import generateMask from 'features/canvas/util/generateMask'; import openBase64ImageInTab from './openBase64ImageInTab'; import { getCanvasBaseLayer } from 'features/canvas/util/konvaInstanceProvider'; diff --git a/frontend/src/features/canvas/components/ClearCanvasHistoryButtonModal.tsx b/frontend/src/features/canvas/components/ClearCanvasHistoryButtonModal.tsx index 391680a49a..5271692fef 100644 --- a/frontend/src/features/canvas/components/ClearCanvasHistoryButtonModal.tsx +++ b/frontend/src/features/canvas/components/ClearCanvasHistoryButtonModal.tsx @@ -1,4 +1,4 @@ -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIAlertDialog from 'common/components/IAIAlertDialog'; import IAIButton from 'common/components/IAIButton'; import { clearCanvasHistory } from 'features/canvas/store/canvasSlice'; diff --git a/frontend/src/features/canvas/components/IAICanvas.tsx b/frontend/src/features/canvas/components/IAICanvas.tsx index 8c221ef70f..32f65bb676 100644 --- a/frontend/src/features/canvas/components/IAICanvas.tsx +++ b/frontend/src/features/canvas/components/IAICanvas.tsx @@ -1,7 +1,7 @@ import { useCallback, useRef } from 'react'; import Konva from 'konva'; import { Layer, Stage } from 'react-konva'; -import { useAppSelector } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; import { canvasSelector, isStagingSelector, diff --git a/frontend/src/features/canvas/components/IAICanvasBoundingBoxOverlay.tsx b/frontend/src/features/canvas/components/IAICanvasBoundingBoxOverlay.tsx index 2b2237df58..72612d92f5 100644 --- a/frontend/src/features/canvas/components/IAICanvasBoundingBoxOverlay.tsx +++ b/frontend/src/features/canvas/components/IAICanvasBoundingBoxOverlay.tsx @@ -1,5 +1,5 @@ import { createSelector } from '@reduxjs/toolkit'; -import { useAppSelector } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; import _ from 'lodash'; import { Group, Rect } from 'react-konva'; import { canvasSelector } from '../store/canvasSelectors'; diff --git a/frontend/src/features/canvas/components/IAICanvasGrid.tsx b/frontend/src/features/canvas/components/IAICanvasGrid.tsx index 7495f0ee7d..0caa13297b 100644 --- a/frontend/src/features/canvas/components/IAICanvasGrid.tsx +++ b/frontend/src/features/canvas/components/IAICanvasGrid.tsx @@ -2,7 +2,7 @@ import { useColorMode } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; -import { useAppSelector } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; import _ from 'lodash'; import { ReactNode, useCallback, useLayoutEffect, useState } from 'react'; import { Group, Line as KonvaLine } from 'react-konva'; diff --git a/frontend/src/features/canvas/components/IAICanvasIntermediateImage.tsx b/frontend/src/features/canvas/components/IAICanvasIntermediateImage.tsx index e6e61f4ccd..65cedebdee 100644 --- a/frontend/src/features/canvas/components/IAICanvasIntermediateImage.tsx +++ b/frontend/src/features/canvas/components/IAICanvasIntermediateImage.tsx @@ -1,5 +1,6 @@ import { createSelector } from '@reduxjs/toolkit'; -import { RootState, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; import { GalleryState } from 'features/gallery/store/gallerySlice'; import { ImageConfig } from 'konva/lib/shapes/Image'; import _ from 'lodash'; diff --git a/frontend/src/features/canvas/components/IAICanvasMaskCompositer.tsx b/frontend/src/features/canvas/components/IAICanvasMaskCompositer.tsx index 5da87dc063..7fe0ef6095 100644 --- a/frontend/src/features/canvas/components/IAICanvasMaskCompositer.tsx +++ b/frontend/src/features/canvas/components/IAICanvasMaskCompositer.tsx @@ -1,5 +1,5 @@ import { createSelector } from '@reduxjs/toolkit'; -import { useAppSelector } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; import { RectConfig } from 'konva/lib/shapes/Rect'; import { Rect } from 'react-konva'; import { canvasSelector } from 'features/canvas/store/canvasSelectors'; diff --git a/frontend/src/features/canvas/components/IAICanvasMaskLines.tsx b/frontend/src/features/canvas/components/IAICanvasMaskLines.tsx index e980c1a2e3..2988466e85 100644 --- a/frontend/src/features/canvas/components/IAICanvasMaskLines.tsx +++ b/frontend/src/features/canvas/components/IAICanvasMaskLines.tsx @@ -1,6 +1,6 @@ import { GroupConfig } from 'konva/lib/Group'; import { Group, Line } from 'react-konva'; -import { useAppSelector } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; import { createSelector } from '@reduxjs/toolkit'; import { canvasSelector } from 'features/canvas/store/canvasSelectors'; import { isCanvasMaskLine } from '../store/canvasTypes'; diff --git a/frontend/src/features/canvas/components/IAICanvasObjectRenderer.tsx b/frontend/src/features/canvas/components/IAICanvasObjectRenderer.tsx index 3e3233d599..58c1554592 100644 --- a/frontend/src/features/canvas/components/IAICanvasObjectRenderer.tsx +++ b/frontend/src/features/canvas/components/IAICanvasObjectRenderer.tsx @@ -1,5 +1,5 @@ import { createSelector } from '@reduxjs/toolkit'; -import { useAppSelector } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; import _ from 'lodash'; import { Group, Line, Rect } from 'react-konva'; import { diff --git a/frontend/src/features/canvas/components/IAICanvasResizer.tsx b/frontend/src/features/canvas/components/IAICanvasResizer.tsx index cdeb981e51..eb298a91c8 100644 --- a/frontend/src/features/canvas/components/IAICanvasResizer.tsx +++ b/frontend/src/features/canvas/components/IAICanvasResizer.tsx @@ -1,6 +1,6 @@ import { Spinner } from '@chakra-ui/react'; import { useLayoutEffect, useRef } from 'react'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { activeTabNameSelector } from 'features/options/store/optionsSelectors'; import { resizeAndScaleCanvas, diff --git a/frontend/src/features/canvas/components/IAICanvasStagingArea.tsx b/frontend/src/features/canvas/components/IAICanvasStagingArea.tsx index 0f779f17a8..72b764c011 100644 --- a/frontend/src/features/canvas/components/IAICanvasStagingArea.tsx +++ b/frontend/src/features/canvas/components/IAICanvasStagingArea.tsx @@ -1,5 +1,5 @@ import { createSelector } from '@reduxjs/toolkit'; -import { useAppSelector } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; import { GroupConfig } from 'konva/lib/Group'; import _ from 'lodash'; import { Group, Rect } from 'react-konva'; diff --git a/frontend/src/features/canvas/components/IAICanvasStagingAreaToolbar.tsx b/frontend/src/features/canvas/components/IAICanvasStagingAreaToolbar.tsx index 89825af7e3..8e861bc318 100644 --- a/frontend/src/features/canvas/components/IAICanvasStagingAreaToolbar.tsx +++ b/frontend/src/features/canvas/components/IAICanvasStagingAreaToolbar.tsx @@ -1,6 +1,6 @@ import { ButtonGroup, Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; import _ from 'lodash'; import { useCallback } from 'react'; diff --git a/frontend/src/features/canvas/components/IAICanvasStatusText.tsx b/frontend/src/features/canvas/components/IAICanvasStatusText.tsx index 2263ea3d57..5066192fa3 100644 --- a/frontend/src/features/canvas/components/IAICanvasStatusText.tsx +++ b/frontend/src/features/canvas/components/IAICanvasStatusText.tsx @@ -1,5 +1,5 @@ import { createSelector } from '@reduxjs/toolkit'; -import { useAppSelector } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; import _ from 'lodash'; import { canvasSelector } from 'features/canvas/store/canvasSelectors'; import IAICanvasStatusTextCursorPos from './IAICanvasStatusText/IAICanvasStatusTextCursorPos'; diff --git a/frontend/src/features/canvas/components/IAICanvasStatusText/IAICanvasStatusTextCursorPos.tsx b/frontend/src/features/canvas/components/IAICanvasStatusText/IAICanvasStatusTextCursorPos.tsx index de8e9c3941..73f3c69838 100644 --- a/frontend/src/features/canvas/components/IAICanvasStatusText/IAICanvasStatusTextCursorPos.tsx +++ b/frontend/src/features/canvas/components/IAICanvasStatusText/IAICanvasStatusTextCursorPos.tsx @@ -1,5 +1,5 @@ import { createSelector } from '@reduxjs/toolkit'; -import { useAppSelector } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; import { canvasSelector } from 'features/canvas/store/canvasSelectors'; import React from 'react'; import _ from 'lodash'; diff --git a/frontend/src/features/canvas/components/IAICanvasToolPreview.tsx b/frontend/src/features/canvas/components/IAICanvasToolPreview.tsx index 12681d2173..a20aea63b4 100644 --- a/frontend/src/features/canvas/components/IAICanvasToolPreview.tsx +++ b/frontend/src/features/canvas/components/IAICanvasToolPreview.tsx @@ -2,7 +2,7 @@ import { createSelector } from '@reduxjs/toolkit'; import { GroupConfig } from 'konva/lib/Group'; import _ from 'lodash'; import { Circle, Group } from 'react-konva'; -import { useAppSelector } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; import { canvasSelector } from 'features/canvas/store/canvasSelectors'; import { rgbaColorToString } from 'features/canvas/util/colorToString'; import { diff --git a/frontend/src/features/canvas/components/IAICanvasToolbar/IAICanvasBoundingBox.tsx b/frontend/src/features/canvas/components/IAICanvasToolbar/IAICanvasBoundingBox.tsx index 48a45f2b59..b3f612ca7b 100644 --- a/frontend/src/features/canvas/components/IAICanvasToolbar/IAICanvasBoundingBox.tsx +++ b/frontend/src/features/canvas/components/IAICanvasToolbar/IAICanvasBoundingBox.tsx @@ -5,7 +5,7 @@ import { Vector2d } from 'konva/lib/types'; import _ from 'lodash'; import { useCallback, useEffect, useRef, useState } from 'react'; import { Group, Rect, Transformer } from 'react-konva'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { roundDownToMultiple, roundToMultiple, diff --git a/frontend/src/features/canvas/components/IAICanvasToolbar/IAICanvasMaskOptions.tsx b/frontend/src/features/canvas/components/IAICanvasToolbar/IAICanvasMaskOptions.tsx index c0ad07afea..d6317c523b 100644 --- a/frontend/src/features/canvas/components/IAICanvasToolbar/IAICanvasMaskOptions.tsx +++ b/frontend/src/features/canvas/components/IAICanvasToolbar/IAICanvasMaskOptions.tsx @@ -7,7 +7,7 @@ import { setMaskColor, setShouldPreserveMaskedArea, } from 'features/canvas/store/canvasSlice'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import _ from 'lodash'; import IAIIconButton from 'common/components/IAIIconButton'; import { FaMask, FaTrash } from 'react-icons/fa'; diff --git a/frontend/src/features/canvas/components/IAICanvasToolbar/IAICanvasRedoButton.tsx b/frontend/src/features/canvas/components/IAICanvasToolbar/IAICanvasRedoButton.tsx index 2f743f0334..99974000fc 100644 --- a/frontend/src/features/canvas/components/IAICanvasToolbar/IAICanvasRedoButton.tsx +++ b/frontend/src/features/canvas/components/IAICanvasToolbar/IAICanvasRedoButton.tsx @@ -1,7 +1,7 @@ import { createSelector } from '@reduxjs/toolkit'; import { useHotkeys } from 'react-hotkeys-hook'; import { FaRedo } from 'react-icons/fa'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; import { activeTabNameSelector } from 'features/options/store/optionsSelectors'; import { canvasSelector } from 'features/canvas/store/canvasSelectors'; diff --git a/frontend/src/features/canvas/components/IAICanvasToolbar/IAICanvasSettingsButtonPopover.tsx b/frontend/src/features/canvas/components/IAICanvasToolbar/IAICanvasSettingsButtonPopover.tsx index eeafe6512d..d95ef7a59b 100644 --- a/frontend/src/features/canvas/components/IAICanvasToolbar/IAICanvasSettingsButtonPopover.tsx +++ b/frontend/src/features/canvas/components/IAICanvasToolbar/IAICanvasSettingsButtonPopover.tsx @@ -10,7 +10,7 @@ import { setShouldShowIntermediates, setShouldSnapToGrid, } from 'features/canvas/store/canvasSlice'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import _ from 'lodash'; import IAIIconButton from 'common/components/IAIIconButton'; import { FaWrench } from 'react-icons/fa'; diff --git a/frontend/src/features/canvas/components/IAICanvasToolbar/IAICanvasToolChooserOptions.tsx b/frontend/src/features/canvas/components/IAICanvasToolbar/IAICanvasToolChooserOptions.tsx index 280d3e3e45..a2f392bee3 100644 --- a/frontend/src/features/canvas/components/IAICanvasToolbar/IAICanvasToolChooserOptions.tsx +++ b/frontend/src/features/canvas/components/IAICanvasToolbar/IAICanvasToolChooserOptions.tsx @@ -7,7 +7,7 @@ import { setBrushSize, setTool, } from 'features/canvas/store/canvasSlice'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import _ from 'lodash'; import IAIIconButton from 'common/components/IAIIconButton'; import { diff --git a/frontend/src/features/canvas/components/IAICanvasToolbar/IAICanvasToolbar.tsx b/frontend/src/features/canvas/components/IAICanvasToolbar/IAICanvasToolbar.tsx index 3740b865e4..f02b2fc4e4 100644 --- a/frontend/src/features/canvas/components/IAICanvasToolbar/IAICanvasToolbar.tsx +++ b/frontend/src/features/canvas/components/IAICanvasToolbar/IAICanvasToolbar.tsx @@ -8,7 +8,7 @@ import { setLayer, setTool, } from 'features/canvas/store/canvasSlice'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import _ from 'lodash'; import IAIIconButton from 'common/components/IAIIconButton'; import { diff --git a/frontend/src/features/canvas/components/IAICanvasToolbar/IAICanvasUndoButton.tsx b/frontend/src/features/canvas/components/IAICanvasToolbar/IAICanvasUndoButton.tsx index 43e24ae680..c035f7adc6 100644 --- a/frontend/src/features/canvas/components/IAICanvasToolbar/IAICanvasUndoButton.tsx +++ b/frontend/src/features/canvas/components/IAICanvasToolbar/IAICanvasUndoButton.tsx @@ -1,7 +1,7 @@ import { createSelector } from '@reduxjs/toolkit'; import { useHotkeys } from 'react-hotkeys-hook'; import { FaUndo } from 'react-icons/fa'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; import { canvasSelector } from 'features/canvas/store/canvasSelectors'; diff --git a/frontend/src/features/canvas/hooks/useCanvasDragMove.ts b/frontend/src/features/canvas/hooks/useCanvasDragMove.ts index 44daf090d9..43ebdd8b61 100644 --- a/frontend/src/features/canvas/hooks/useCanvasDragMove.ts +++ b/frontend/src/features/canvas/hooks/useCanvasDragMove.ts @@ -1,5 +1,5 @@ import { createSelector } from '@reduxjs/toolkit'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { KonvaEventObject } from 'konva/lib/Node'; import _ from 'lodash'; import { useCallback } from 'react'; diff --git a/frontend/src/features/canvas/hooks/useCanvasHotkeys.ts b/frontend/src/features/canvas/hooks/useCanvasHotkeys.ts index c0c540ecd7..cbf09fcbea 100644 --- a/frontend/src/features/canvas/hooks/useCanvasHotkeys.ts +++ b/frontend/src/features/canvas/hooks/useCanvasHotkeys.ts @@ -10,7 +10,7 @@ import { setShouldSnapToGrid, setTool, } from 'features/canvas/store/canvasSlice'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { useRef } from 'react'; import { canvasSelector, diff --git a/frontend/src/features/canvas/hooks/useCanvasMouseDown.ts b/frontend/src/features/canvas/hooks/useCanvasMouseDown.ts index b2d93178f8..afeeb8f037 100644 --- a/frontend/src/features/canvas/hooks/useCanvasMouseDown.ts +++ b/frontend/src/features/canvas/hooks/useCanvasMouseDown.ts @@ -1,5 +1,5 @@ import { createSelector } from '@reduxjs/toolkit'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { activeTabNameSelector } from 'features/options/store/optionsSelectors'; import Konva from 'konva'; import { KonvaEventObject } from 'konva/lib/Node'; diff --git a/frontend/src/features/canvas/hooks/useCanvasMouseMove.ts b/frontend/src/features/canvas/hooks/useCanvasMouseMove.ts index ae42ca90a6..e2b09e4f72 100644 --- a/frontend/src/features/canvas/hooks/useCanvasMouseMove.ts +++ b/frontend/src/features/canvas/hooks/useCanvasMouseMove.ts @@ -1,5 +1,5 @@ import { createSelector } from '@reduxjs/toolkit'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { activeTabNameSelector } from 'features/options/store/optionsSelectors'; import Konva from 'konva'; import { Vector2d } from 'konva/lib/types'; diff --git a/frontend/src/features/canvas/hooks/useCanvasMouseOut.ts b/frontend/src/features/canvas/hooks/useCanvasMouseOut.ts index e038d8db19..57f36faf0a 100644 --- a/frontend/src/features/canvas/hooks/useCanvasMouseOut.ts +++ b/frontend/src/features/canvas/hooks/useCanvasMouseOut.ts @@ -1,4 +1,4 @@ -import { useAppDispatch } from 'app/store'; +import { useAppDispatch } from 'app/storeHooks'; import { useCallback } from 'react'; import { mouseLeftCanvas } from 'features/canvas/store/canvasSlice'; diff --git a/frontend/src/features/canvas/hooks/useCanvasMouseUp.ts b/frontend/src/features/canvas/hooks/useCanvasMouseUp.ts index 7b1826b9c0..5bbe1ac8d7 100644 --- a/frontend/src/features/canvas/hooks/useCanvasMouseUp.ts +++ b/frontend/src/features/canvas/hooks/useCanvasMouseUp.ts @@ -1,5 +1,5 @@ import { createSelector } from '@reduxjs/toolkit'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { activeTabNameSelector } from 'features/options/store/optionsSelectors'; import Konva from 'konva'; import _ from 'lodash'; diff --git a/frontend/src/features/canvas/hooks/useCanvasZoom.ts b/frontend/src/features/canvas/hooks/useCanvasZoom.ts index af3284a0ab..2d3cf3703d 100644 --- a/frontend/src/features/canvas/hooks/useCanvasZoom.ts +++ b/frontend/src/features/canvas/hooks/useCanvasZoom.ts @@ -1,5 +1,5 @@ import { createSelector } from '@reduxjs/toolkit'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import Konva from 'konva'; import { KonvaEventObject } from 'konva/lib/Node'; import _ from 'lodash'; diff --git a/frontend/src/features/canvas/hooks/useColorUnderCursor.ts b/frontend/src/features/canvas/hooks/useColorUnderCursor.ts index 4739070e13..29a6bbcbbb 100644 --- a/frontend/src/features/canvas/hooks/useColorUnderCursor.ts +++ b/frontend/src/features/canvas/hooks/useColorUnderCursor.ts @@ -1,4 +1,4 @@ -import { useAppDispatch } from 'app/store'; +import { useAppDispatch } from 'app/storeHooks'; import Konva from 'konva'; import _ from 'lodash'; import { diff --git a/frontend/src/features/gallery/components/CurrentImageButtons.tsx b/frontend/src/features/gallery/components/CurrentImageButtons.tsx index b8b207e7ac..24629744d4 100644 --- a/frontend/src/features/gallery/components/CurrentImageButtons.tsx +++ b/frontend/src/features/gallery/components/CurrentImageButtons.tsx @@ -1,7 +1,7 @@ import { createSelector } from '@reduxjs/toolkit'; import { isEqual } from 'lodash'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { RootState } from 'app/store'; import { OptionsState, diff --git a/frontend/src/features/gallery/components/CurrentImageDisplay.tsx b/frontend/src/features/gallery/components/CurrentImageDisplay.tsx index a5c7816364..22393ea7b5 100644 --- a/frontend/src/features/gallery/components/CurrentImageDisplay.tsx +++ b/frontend/src/features/gallery/components/CurrentImageDisplay.tsx @@ -1,4 +1,5 @@ -import { RootState, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; import CurrentImageButtons from './CurrentImageButtons'; import { MdPhoto } from 'react-icons/md'; import CurrentImagePreview from './CurrentImagePreview'; diff --git a/frontend/src/features/gallery/components/CurrentImagePreview.tsx b/frontend/src/features/gallery/components/CurrentImagePreview.tsx index cc641b2caf..ca83cbe751 100644 --- a/frontend/src/features/gallery/components/CurrentImagePreview.tsx +++ b/frontend/src/features/gallery/components/CurrentImagePreview.tsx @@ -1,7 +1,8 @@ import { IconButton, Image } from '@chakra-ui/react'; import { useState } from 'react'; import { FaAngleLeft, FaAngleRight } from 'react-icons/fa'; -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { GalleryCategory, GalleryState, diff --git a/frontend/src/features/gallery/components/DeleteImageModal.tsx b/frontend/src/features/gallery/components/DeleteImageModal.tsx index afc756d4bc..2ee876ca05 100644 --- a/frontend/src/features/gallery/components/DeleteImageModal.tsx +++ b/frontend/src/features/gallery/components/DeleteImageModal.tsx @@ -14,15 +14,9 @@ import { Flex, } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; -import { - ChangeEvent, - cloneElement, - forwardRef, - ReactElement, - SyntheticEvent, - useRef, -} from 'react'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { ChangeEvent, ReactElement, SyntheticEvent } from 'react'; +import { cloneElement, forwardRef, useRef } from 'react'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { deleteImage } from 'app/socketio/actions'; import { RootState } from 'app/store'; import { diff --git a/frontend/src/features/gallery/components/HoverableImage.tsx b/frontend/src/features/gallery/components/HoverableImage.tsx index 50bb8ab0b9..935f37b7ce 100644 --- a/frontend/src/features/gallery/components/HoverableImage.tsx +++ b/frontend/src/features/gallery/components/HoverableImage.tsx @@ -6,7 +6,7 @@ import { Tooltip, useToast, } from '@chakra-ui/react'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { setCurrentImage, setShouldHoldGalleryOpen, diff --git a/frontend/src/features/gallery/components/ImageGallery.tsx b/frontend/src/features/gallery/components/ImageGallery.tsx index f926173850..7f16f551c8 100644 --- a/frontend/src/features/gallery/components/ImageGallery.tsx +++ b/frontend/src/features/gallery/components/ImageGallery.tsx @@ -12,7 +12,7 @@ import { useHotkeys } from 'react-hotkeys-hook'; import { MdPhotoLibrary } from 'react-icons/md'; import { BsPinAngle, BsPinAngleFill } from 'react-icons/bs'; import { requestImages } from 'app/socketio/actions'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; import { selectNextImage, @@ -41,7 +41,7 @@ import IAICheckbox from 'common/components/IAICheckbox'; import { setDoesCanvasNeedScaling } from 'features/canvas/store/canvasSlice'; import _ from 'lodash'; import IAIButton from 'common/components/IAIButton'; -import { InvokeTabName } from 'features/tabs/components/InvokeTabs'; +import { InvokeTabName } from 'features/tabs/tabMap'; const GALLERY_SHOW_BUTTONS_MIN_WIDTH = 320; const GALLERY_IMAGE_WIDTH_OFFSET = 40; @@ -55,6 +55,7 @@ const GALLERY_TAB_WIDTHS: Record< unifiedCanvas: { galleryMinWidth: 200, galleryMaxWidth: 200 }, nodes: { galleryMinWidth: 200, galleryMaxWidth: 500 }, postprocess: { galleryMinWidth: 200, galleryMaxWidth: 500 }, + training: { galleryMinWidth: 200, galleryMaxWidth: 500 }, }; const LIGHTBOX_GALLERY_WIDTH = 400; diff --git a/frontend/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.tsx b/frontend/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.tsx index fdad8541f9..73244a9b7d 100644 --- a/frontend/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.tsx +++ b/frontend/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.tsx @@ -10,7 +10,7 @@ import { import { ExternalLinkIcon } from '@chakra-ui/icons'; import { memo } from 'react'; import { IoArrowUndoCircleOutline } from 'react-icons/io5'; -import { useAppDispatch } from 'app/store'; +import { useAppDispatch } from 'app/storeHooks'; import * as InvokeAI from 'app/invokeai'; import { setCfgScale, diff --git a/frontend/src/features/gallery/hooks/useGetImageByUuid.ts b/frontend/src/features/gallery/hooks/useGetImageByUuid.ts index ecb263ec0a..4f0141dfb1 100644 --- a/frontend/src/features/gallery/hooks/useGetImageByUuid.ts +++ b/frontend/src/features/gallery/hooks/useGetImageByUuid.ts @@ -1,5 +1,5 @@ import { createSelector } from '@reduxjs/toolkit'; -import { useAppSelector } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; import { gallerySelector } from '../store/gallerySliceSelectors'; const selector = createSelector(gallerySelector, (gallery) => ({ diff --git a/frontend/src/features/gallery/store/gallerySlice.ts b/frontend/src/features/gallery/store/gallerySlice.ts index 932c45210e..3dd7a99698 100644 --- a/frontend/src/features/gallery/store/gallerySlice.ts +++ b/frontend/src/features/gallery/store/gallerySlice.ts @@ -3,7 +3,7 @@ import type { PayloadAction } from '@reduxjs/toolkit'; import _, { clamp } from 'lodash'; import * as InvokeAI from 'app/invokeai'; import { IRect } from 'konva/lib/types'; -import { InvokeTabName } from 'features/tabs/components/InvokeTabs'; +import { InvokeTabName } from 'features/tabs/tabMap'; export type GalleryCategory = 'user' | 'result'; diff --git a/frontend/src/features/lightbox/components/Lightbox.tsx b/frontend/src/features/lightbox/components/Lightbox.tsx index afcdb06db7..4459887dd0 100644 --- a/frontend/src/features/lightbox/components/Lightbox.tsx +++ b/frontend/src/features/lightbox/components/Lightbox.tsx @@ -1,5 +1,6 @@ import { IconButton } from '@chakra-ui/react'; -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; import CurrentImageButtons from 'features/gallery/components/CurrentImageButtons'; import { imagesSelector } from 'features/gallery/components/CurrentImagePreview'; diff --git a/frontend/src/features/options/components/AdvancedOptions/Canvas/BoundingBoxSettings/BoundingBoxSettings.tsx b/frontend/src/features/options/components/AdvancedOptions/Canvas/BoundingBoxSettings/BoundingBoxSettings.tsx index 6d35a496f8..f3185e4ed0 100644 --- a/frontend/src/features/options/components/AdvancedOptions/Canvas/BoundingBoxSettings/BoundingBoxSettings.tsx +++ b/frontend/src/features/options/components/AdvancedOptions/Canvas/BoundingBoxSettings/BoundingBoxSettings.tsx @@ -1,6 +1,6 @@ import { Box, Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISlider from 'common/components/IAISlider'; import { canvasSelector } from 'features/canvas/store/canvasSelectors'; import { setBoundingBoxDimensions } from 'features/canvas/store/canvasSlice'; diff --git a/frontend/src/features/options/components/AdvancedOptions/Canvas/InfillAndScalingOptions.tsx b/frontend/src/features/options/components/AdvancedOptions/Canvas/InfillAndScalingOptions.tsx index fcff38ccce..8e88577b87 100644 --- a/frontend/src/features/options/components/AdvancedOptions/Canvas/InfillAndScalingOptions.tsx +++ b/frontend/src/features/options/components/AdvancedOptions/Canvas/InfillAndScalingOptions.tsx @@ -1,6 +1,6 @@ import { Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISelect from 'common/components/IAISelect'; import IAISlider from 'common/components/IAISlider'; import { canvasSelector } from 'features/canvas/store/canvasSelectors'; diff --git a/frontend/src/features/options/components/AdvancedOptions/Canvas/InpaintReplace.tsx b/frontend/src/features/options/components/AdvancedOptions/Canvas/InpaintReplace.tsx index 8ce85a8238..306d82325d 100644 --- a/frontend/src/features/options/components/AdvancedOptions/Canvas/InpaintReplace.tsx +++ b/frontend/src/features/options/components/AdvancedOptions/Canvas/InpaintReplace.tsx @@ -1,5 +1,5 @@ import React, { ChangeEvent } from 'react'; -import { useAppDispatch, useAppSelector } from '../../../../../app/store'; +import { useAppDispatch, useAppSelector } from '../../../../../app/storeHooks'; import _ from 'lodash'; import { createSelector } from '@reduxjs/toolkit'; import IAISwitch from '../../../../../common/components/IAISwitch'; diff --git a/frontend/src/features/options/components/AdvancedOptions/Canvas/SeamCorrectionOptions.tsx b/frontend/src/features/options/components/AdvancedOptions/Canvas/SeamCorrectionOptions.tsx index d234480532..93fe487d2c 100644 --- a/frontend/src/features/options/components/AdvancedOptions/Canvas/SeamCorrectionOptions.tsx +++ b/frontend/src/features/options/components/AdvancedOptions/Canvas/SeamCorrectionOptions.tsx @@ -1,6 +1,6 @@ import { Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISlider from 'common/components/IAISlider'; import { optionsSelector } from 'features/options/store/optionsSelectors'; import { diff --git a/frontend/src/features/options/components/AdvancedOptions/FaceRestore/FaceRestoreOptions.tsx b/frontend/src/features/options/components/AdvancedOptions/FaceRestore/FaceRestoreOptions.tsx index d3f04f3142..fcf35712fa 100644 --- a/frontend/src/features/options/components/AdvancedOptions/FaceRestore/FaceRestoreOptions.tsx +++ b/frontend/src/features/options/components/AdvancedOptions/FaceRestore/FaceRestoreOptions.tsx @@ -1,7 +1,7 @@ import { Flex } from '@chakra-ui/react'; import { RootState } from 'app/store'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { FacetoolType, diff --git a/frontend/src/features/options/components/AdvancedOptions/FaceRestore/FaceRestoreToggle.tsx b/frontend/src/features/options/components/AdvancedOptions/FaceRestore/FaceRestoreToggle.tsx index 0867ad0db0..1fcb1ac7ed 100644 --- a/frontend/src/features/options/components/AdvancedOptions/FaceRestore/FaceRestoreToggle.tsx +++ b/frontend/src/features/options/components/AdvancedOptions/FaceRestore/FaceRestoreToggle.tsx @@ -1,5 +1,6 @@ import { ChangeEvent } from 'react'; -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISwitch from 'common/components/IAISwitch'; import { setShouldRunFacetool } from 'features/options/store/optionsSlice'; diff --git a/frontend/src/features/options/components/AdvancedOptions/ImageToImage/ImageFit.tsx b/frontend/src/features/options/components/AdvancedOptions/ImageToImage/ImageFit.tsx index 25b5618251..34827fcbd2 100644 --- a/frontend/src/features/options/components/AdvancedOptions/ImageToImage/ImageFit.tsx +++ b/frontend/src/features/options/components/AdvancedOptions/ImageToImage/ImageFit.tsx @@ -1,9 +1,6 @@ import React, { ChangeEvent } from 'react'; -import { - RootState, - useAppDispatch, - useAppSelector, -} from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISwitch from 'common/components/IAISwitch'; import { setShouldFitToWidthHeight } from 'features/options/store/optionsSlice'; diff --git a/frontend/src/features/options/components/AdvancedOptions/ImageToImage/ImageToImageStrength.tsx b/frontend/src/features/options/components/AdvancedOptions/ImageToImage/ImageToImageStrength.tsx index 792bcdbcbf..be0d2615bb 100644 --- a/frontend/src/features/options/components/AdvancedOptions/ImageToImage/ImageToImageStrength.tsx +++ b/frontend/src/features/options/components/AdvancedOptions/ImageToImage/ImageToImageStrength.tsx @@ -1,5 +1,6 @@ import React from 'react'; -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISlider from 'common/components/IAISlider'; import { setImg2imgStrength } from 'features/options/store/optionsSlice'; diff --git a/frontend/src/features/options/components/AdvancedOptions/Output/HiresOptions.tsx b/frontend/src/features/options/components/AdvancedOptions/Output/HiresOptions.tsx index d7b76c50dc..ffcea9321f 100644 --- a/frontend/src/features/options/components/AdvancedOptions/Output/HiresOptions.tsx +++ b/frontend/src/features/options/components/AdvancedOptions/Output/HiresOptions.tsx @@ -1,10 +1,7 @@ import { Flex } from '@chakra-ui/react'; import { ChangeEvent } from 'react'; -import { - RootState, - useAppDispatch, - useAppSelector, -} from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISwitch from 'common/components/IAISwitch'; import { setHiresFix } from 'features/options/store/optionsSlice'; diff --git a/frontend/src/features/options/components/AdvancedOptions/Output/SeamlessOptions.tsx b/frontend/src/features/options/components/AdvancedOptions/Output/SeamlessOptions.tsx index 22aab225bf..7a36a2f5f0 100644 --- a/frontend/src/features/options/components/AdvancedOptions/Output/SeamlessOptions.tsx +++ b/frontend/src/features/options/components/AdvancedOptions/Output/SeamlessOptions.tsx @@ -1,10 +1,7 @@ import { Flex } from '@chakra-ui/react'; import { ChangeEvent } from 'react'; -import { - RootState, - useAppDispatch, - useAppSelector, -} from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISwitch from 'common/components/IAISwitch'; import { setSeamless } from 'features/options/store/optionsSlice'; diff --git a/frontend/src/features/options/components/AdvancedOptions/Seed/Perlin.tsx b/frontend/src/features/options/components/AdvancedOptions/Seed/Perlin.tsx index 45b6b605ce..401be36815 100644 --- a/frontend/src/features/options/components/AdvancedOptions/Seed/Perlin.tsx +++ b/frontend/src/features/options/components/AdvancedOptions/Seed/Perlin.tsx @@ -1,9 +1,6 @@ import React from 'react'; -import { - RootState, - useAppDispatch, - useAppSelector, -} from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAINumberInput from 'common/components/IAINumberInput'; import { setPerlin } from 'features/options/store/optionsSlice'; diff --git a/frontend/src/features/options/components/AdvancedOptions/Seed/RandomizeSeed.tsx b/frontend/src/features/options/components/AdvancedOptions/Seed/RandomizeSeed.tsx index d334c624c2..f86f90f870 100644 --- a/frontend/src/features/options/components/AdvancedOptions/Seed/RandomizeSeed.tsx +++ b/frontend/src/features/options/components/AdvancedOptions/Seed/RandomizeSeed.tsx @@ -1,10 +1,8 @@ -import React, { ChangeEvent } from 'react'; +import { ChangeEvent } from 'react'; +import React from 'react'; -import { - RootState, - useAppDispatch, - useAppSelector, -} from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISwitch from 'common/components/IAISwitch'; import { setShouldRandomizeSeed } from 'features/options/store/optionsSlice'; diff --git a/frontend/src/features/options/components/AdvancedOptions/Seed/Seed.tsx b/frontend/src/features/options/components/AdvancedOptions/Seed/Seed.tsx index 7f50e6c7b8..17bd2a2142 100644 --- a/frontend/src/features/options/components/AdvancedOptions/Seed/Seed.tsx +++ b/frontend/src/features/options/components/AdvancedOptions/Seed/Seed.tsx @@ -1,10 +1,7 @@ import React from 'react'; import { NUMPY_RAND_MAX, NUMPY_RAND_MIN } from 'app/constants'; -import { - RootState, - useAppDispatch, - useAppSelector, -} from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAINumberInput from 'common/components/IAINumberInput'; import { setSeed } from 'features/options/store/optionsSlice'; diff --git a/frontend/src/features/options/components/AdvancedOptions/Seed/ShuffleSeed.tsx b/frontend/src/features/options/components/AdvancedOptions/Seed/ShuffleSeed.tsx index 59134398dc..b3ac80bcb6 100644 --- a/frontend/src/features/options/components/AdvancedOptions/Seed/ShuffleSeed.tsx +++ b/frontend/src/features/options/components/AdvancedOptions/Seed/ShuffleSeed.tsx @@ -1,7 +1,8 @@ import { Button } from '@chakra-ui/react'; import React from 'react'; import { NUMPY_RAND_MAX, NUMPY_RAND_MIN } from 'app/constants'; -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import randomInt from 'common/util/randomInt'; import { setSeed } from 'features/options/store/optionsSlice'; diff --git a/frontend/src/features/options/components/AdvancedOptions/Seed/Threshold.tsx b/frontend/src/features/options/components/AdvancedOptions/Seed/Threshold.tsx index 2450bda506..7c5ee9070f 100644 --- a/frontend/src/features/options/components/AdvancedOptions/Seed/Threshold.tsx +++ b/frontend/src/features/options/components/AdvancedOptions/Seed/Threshold.tsx @@ -1,9 +1,6 @@ import React from 'react'; -import { - RootState, - useAppDispatch, - useAppSelector, -} from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAINumberInput from 'common/components/IAINumberInput'; import { setThreshold } from 'features/options/store/optionsSlice'; diff --git a/frontend/src/features/options/components/AdvancedOptions/Upscale/UpscaleOptions.tsx b/frontend/src/features/options/components/AdvancedOptions/Upscale/UpscaleOptions.tsx index 8588a0ed39..c88d2cb7cf 100644 --- a/frontend/src/features/options/components/AdvancedOptions/Upscale/UpscaleOptions.tsx +++ b/frontend/src/features/options/components/AdvancedOptions/Upscale/UpscaleOptions.tsx @@ -1,5 +1,5 @@ import { RootState } from 'app/store'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { setUpscalingLevel, diff --git a/frontend/src/features/options/components/AdvancedOptions/Upscale/UpscaleToggle.tsx b/frontend/src/features/options/components/AdvancedOptions/Upscale/UpscaleToggle.tsx index f0a55776c2..e8e180dab7 100644 --- a/frontend/src/features/options/components/AdvancedOptions/Upscale/UpscaleToggle.tsx +++ b/frontend/src/features/options/components/AdvancedOptions/Upscale/UpscaleToggle.tsx @@ -1,5 +1,6 @@ import { ChangeEvent } from 'react'; -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISwitch from 'common/components/IAISwitch'; import { setShouldRunESRGAN } from 'features/options/store/optionsSlice'; diff --git a/frontend/src/features/options/components/AdvancedOptions/Variations/GenerateVariations.tsx b/frontend/src/features/options/components/AdvancedOptions/Variations/GenerateVariations.tsx index ca5afd53c4..f3887a4fa2 100644 --- a/frontend/src/features/options/components/AdvancedOptions/Variations/GenerateVariations.tsx +++ b/frontend/src/features/options/components/AdvancedOptions/Variations/GenerateVariations.tsx @@ -1,9 +1,6 @@ import React, { ChangeEvent } from 'react'; -import { - RootState, - useAppDispatch, - useAppSelector, -} from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISwitch from 'common/components/IAISwitch'; import { setShouldGenerateVariations } from 'features/options/store/optionsSlice'; diff --git a/frontend/src/features/options/components/AdvancedOptions/Variations/SeedWeights.tsx b/frontend/src/features/options/components/AdvancedOptions/Variations/SeedWeights.tsx index 9db25d2d80..edd82f0ff2 100644 --- a/frontend/src/features/options/components/AdvancedOptions/Variations/SeedWeights.tsx +++ b/frontend/src/features/options/components/AdvancedOptions/Variations/SeedWeights.tsx @@ -1,9 +1,6 @@ import React, { ChangeEvent } from 'react'; -import { - RootState, - useAppDispatch, - useAppSelector, -} from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIInput from 'common/components/IAIInput'; import { validateSeedWeights } from 'common/util/seedWeightPairs'; import { setSeedWeights } from 'features/options/store/optionsSlice'; diff --git a/frontend/src/features/options/components/AdvancedOptions/Variations/VariationAmount.tsx b/frontend/src/features/options/components/AdvancedOptions/Variations/VariationAmount.tsx index 78500e8f95..0d0f94b35c 100644 --- a/frontend/src/features/options/components/AdvancedOptions/Variations/VariationAmount.tsx +++ b/frontend/src/features/options/components/AdvancedOptions/Variations/VariationAmount.tsx @@ -1,9 +1,6 @@ import React from 'react'; -import { - RootState, - useAppDispatch, - useAppSelector, -} from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAINumberInput from 'common/components/IAINumberInput'; import { setVariationAmount } from 'features/options/store/optionsSlice'; diff --git a/frontend/src/features/options/components/MainOptions/MainAdvancedOptionsCheckbox.tsx b/frontend/src/features/options/components/MainOptions/MainAdvancedOptionsCheckbox.tsx index 8e1cc0f2e7..4096546d2f 100644 --- a/frontend/src/features/options/components/MainOptions/MainAdvancedOptionsCheckbox.tsx +++ b/frontend/src/features/options/components/MainOptions/MainAdvancedOptionsCheckbox.tsx @@ -1,5 +1,6 @@ import React, { ChangeEvent } from 'react'; -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAICheckbox from 'common/components/IAICheckbox'; import { setShowAdvancedOptions } from 'features/options/store/optionsSlice'; diff --git a/frontend/src/features/options/components/MainOptions/MainCFGScale.tsx b/frontend/src/features/options/components/MainOptions/MainCFGScale.tsx index 7d8cc7db9e..b728ae1aef 100644 --- a/frontend/src/features/options/components/MainOptions/MainCFGScale.tsx +++ b/frontend/src/features/options/components/MainOptions/MainCFGScale.tsx @@ -1,8 +1,8 @@ import React from 'react'; -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAINumberInput from 'common/components/IAINumberInput'; import { setCfgScale } from 'features/options/store/optionsSlice'; -import { inputWidth } from './MainOptions'; export default function MainCFGScale() { const dispatch = useAppDispatch(); @@ -18,7 +18,7 @@ export default function MainCFGScale() { max={200} onChange={handleChangeCfgScale} value={cfgScale} - width={inputWidth} + width="auto" styleClass="main-option-block" textAlign="center" isInteger={false} diff --git a/frontend/src/features/options/components/MainOptions/MainHeight.tsx b/frontend/src/features/options/components/MainOptions/MainHeight.tsx index 3e1ccbffb4..bf66b3578f 100644 --- a/frontend/src/features/options/components/MainOptions/MainHeight.tsx +++ b/frontend/src/features/options/components/MainOptions/MainHeight.tsx @@ -1,6 +1,8 @@ -import React, { ChangeEvent } from 'react'; +import { ChangeEvent } from 'react'; +import React from 'react'; import { HEIGHTS } from 'app/constants'; -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISelect from 'common/components/IAISelect'; import { activeTabNameSelector } from 'features/options/store/optionsSelectors'; import { setHeight } from 'features/options/store/optionsSlice'; diff --git a/frontend/src/features/options/components/MainOptions/MainIterations.tsx b/frontend/src/features/options/components/MainOptions/MainIterations.tsx index c4b12973a7..6bc2ad8f9d 100644 --- a/frontend/src/features/options/components/MainOptions/MainIterations.tsx +++ b/frontend/src/features/options/components/MainOptions/MainIterations.tsx @@ -1,13 +1,13 @@ import { createSelector } from '@reduxjs/toolkit'; import _ from 'lodash'; import React from 'react'; -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import type { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAINumberInput from 'common/components/IAINumberInput'; import { OptionsState, setIterations, } from 'features/options/store/optionsSlice'; -import { inputWidth } from './MainOptions'; const mainIterationsSelector = createSelector( [(state: RootState) => state.options], @@ -39,7 +39,7 @@ export default function MainIterations() { max={9999} onChange={handleChangeIterations} value={iterations} - width={inputWidth} + width="auto" labelFontSize={0.5} styleClass="main-option-block" textAlign="center" diff --git a/frontend/src/features/options/components/MainOptions/MainSampler.tsx b/frontend/src/features/options/components/MainOptions/MainSampler.tsx index 8f45eae430..cf1881ce28 100644 --- a/frontend/src/features/options/components/MainOptions/MainSampler.tsx +++ b/frontend/src/features/options/components/MainOptions/MainSampler.tsx @@ -1,6 +1,7 @@ import React, { ChangeEvent } from 'react'; import { SAMPLERS } from 'app/constants'; -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISelect from 'common/components/IAISelect'; import { setSampler } from 'features/options/store/optionsSlice'; diff --git a/frontend/src/features/options/components/MainOptions/MainSteps.tsx b/frontend/src/features/options/components/MainOptions/MainSteps.tsx index ba9d99df4a..6a2b5dfff9 100644 --- a/frontend/src/features/options/components/MainOptions/MainSteps.tsx +++ b/frontend/src/features/options/components/MainOptions/MainSteps.tsx @@ -1,8 +1,8 @@ import React from 'react'; -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAINumberInput from 'common/components/IAINumberInput'; import { setSteps } from 'features/options/store/optionsSlice'; -import { inputWidth } from './MainOptions'; export default function MainSteps() { const dispatch = useAppDispatch(); @@ -18,7 +18,7 @@ export default function MainSteps() { step={1} onChange={handleChangeSteps} value={steps} - width={inputWidth} + width="auto" styleClass="main-option-block" textAlign="center" /> diff --git a/frontend/src/features/options/components/MainOptions/MainWidth.tsx b/frontend/src/features/options/components/MainOptions/MainWidth.tsx index eeab19a1b0..19f0559ff4 100644 --- a/frontend/src/features/options/components/MainOptions/MainWidth.tsx +++ b/frontend/src/features/options/components/MainOptions/MainWidth.tsx @@ -1,6 +1,7 @@ import React, { ChangeEvent } from 'react'; import { WIDTHS } from 'app/constants'; -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISelect from 'common/components/IAISelect'; import { activeTabNameSelector } from 'features/options/store/optionsSelectors'; import { setWidth } from 'features/options/store/optionsSlice'; diff --git a/frontend/src/features/options/components/OptionsAccordion.tsx b/frontend/src/features/options/components/OptionsAccordion.tsx index 5520ae2297..7873e1b26d 100644 --- a/frontend/src/features/options/components/OptionsAccordion.tsx +++ b/frontend/src/features/options/components/OptionsAccordion.tsx @@ -1,5 +1,6 @@ import { Accordion, ExpandedIndex } from '@chakra-ui/react'; -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { setOpenAccordions } from 'features/system/store/systemSlice'; import InvokeAccordionItem, { InvokeAccordionItemProps, diff --git a/frontend/src/features/options/components/ProcessButtons/CancelButton.tsx b/frontend/src/features/options/components/ProcessButtons/CancelButton.tsx index e7516454a5..4df7c051e3 100644 --- a/frontend/src/features/options/components/ProcessButtons/CancelButton.tsx +++ b/frontend/src/features/options/components/ProcessButtons/CancelButton.tsx @@ -1,6 +1,7 @@ import { MdCancel } from 'react-icons/md'; import { cancelProcessing } from 'app/socketio/actions'; -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIIconButton, { IAIIconButtonProps, } from 'common/components/IAIIconButton'; diff --git a/frontend/src/features/options/components/ProcessButtons/InvokeButton.tsx b/frontend/src/features/options/components/ProcessButtons/InvokeButton.tsx index 30aab9744c..d487d61292 100644 --- a/frontend/src/features/options/components/ProcessButtons/InvokeButton.tsx +++ b/frontend/src/features/options/components/ProcessButtons/InvokeButton.tsx @@ -2,7 +2,7 @@ import { useHotkeys } from 'react-hotkeys-hook'; import { FaPlay } from 'react-icons/fa'; import { readinessSelector } from 'app/selectors/readinessSelector'; import { generateImage } from 'app/socketio/actions'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIButton, { IAIButtonProps } from 'common/components/IAIButton'; import IAIIconButton, { IAIIconButtonProps, diff --git a/frontend/src/features/options/components/ProcessButtons/Loopback.tsx b/frontend/src/features/options/components/ProcessButtons/Loopback.tsx index c574c1ebfe..3667c81fbc 100644 --- a/frontend/src/features/options/components/ProcessButtons/Loopback.tsx +++ b/frontend/src/features/options/components/ProcessButtons/Loopback.tsx @@ -1,6 +1,7 @@ import { createSelector } from '@reduxjs/toolkit'; import { FaRecycle } from 'react-icons/fa'; -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; import { OptionsState, setShouldLoopback } from 'features/options/store/optionsSlice'; diff --git a/frontend/src/features/options/components/ProcessButtons/ProcessButtons.tsx b/frontend/src/features/options/components/ProcessButtons/ProcessButtons.tsx index 2cf11a8a60..f91f195ea6 100644 --- a/frontend/src/features/options/components/ProcessButtons/ProcessButtons.tsx +++ b/frontend/src/features/options/components/ProcessButtons/ProcessButtons.tsx @@ -1,7 +1,7 @@ import InvokeButton from './InvokeButton'; import CancelButton from './CancelButton'; import LoopbackButton from './Loopback'; -import { useAppSelector } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; import { activeTabNameSelector } from 'features/options/store/optionsSelectors'; /** diff --git a/frontend/src/features/options/components/PromptInput/PromptInput.tsx b/frontend/src/features/options/components/PromptInput/PromptInput.tsx index 1364d791d9..928e842417 100644 --- a/frontend/src/features/options/components/PromptInput/PromptInput.tsx +++ b/frontend/src/features/options/components/PromptInput/PromptInput.tsx @@ -1,6 +1,7 @@ import { FormControl, Textarea } from '@chakra-ui/react'; import { ChangeEvent, KeyboardEvent, useRef } from 'react'; -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { generateImage } from 'app/socketio/actions'; import { OptionsState, setPrompt } from 'features/options/store/optionsSlice'; diff --git a/frontend/src/features/options/store/optionsSelectors.ts b/frontend/src/features/options/store/optionsSelectors.ts index 00ec3b0c08..26a6612401 100644 --- a/frontend/src/features/options/store/optionsSelectors.ts +++ b/frontend/src/features/options/store/optionsSelectors.ts @@ -1,7 +1,7 @@ import { createSelector } from '@reduxjs/toolkit'; import _ from 'lodash'; import { RootState } from 'app/store'; -import { tabMap } from 'features/tabs/components/InvokeTabs'; +import { tabMap } from 'features/tabs/tabMap'; import { OptionsState } from './optionsSlice'; export const activeTabNameSelector = createSelector( diff --git a/frontend/src/features/options/store/optionsSlice.ts b/frontend/src/features/options/store/optionsSlice.ts index a8a61bf2a1..65b6858682 100644 --- a/frontend/src/features/options/store/optionsSlice.ts +++ b/frontend/src/features/options/store/optionsSlice.ts @@ -4,7 +4,7 @@ import * as InvokeAI from 'app/invokeai'; import promptToString from 'common/util/promptToString'; import { seedWeightsToString } from 'common/util/seedWeightPairs'; import { FACETOOL_TYPES } from 'app/constants'; -import { InvokeTabName, tabMap } from 'features/tabs/components/InvokeTabs'; +import { InvokeTabName, tabMap } from 'features/tabs/tabMap'; export type UpscalingLevel = 2 | 4; diff --git a/frontend/src/features/system/components/ClearTempFolderButtonModal.tsx b/frontend/src/features/system/components/ClearTempFolderButtonModal.tsx index b093be07e2..412177d73a 100644 --- a/frontend/src/features/system/components/ClearTempFolderButtonModal.tsx +++ b/frontend/src/features/system/components/ClearTempFolderButtonModal.tsx @@ -1,5 +1,5 @@ import { emptyTempFolder } from 'app/socketio/actions'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIAlertDialog from 'common/components/IAIAlertDialog'; import IAIButton from 'common/components/IAIButton'; import { isStagingSelector } from 'features/canvas/store/canvasSelectors'; diff --git a/frontend/src/features/system/components/Console.tsx b/frontend/src/features/system/components/Console.tsx index 312ac44941..20eaa3a8b8 100644 --- a/frontend/src/features/system/components/Console.tsx +++ b/frontend/src/features/system/components/Console.tsx @@ -1,5 +1,5 @@ import { IconButton, Tooltip } from '@chakra-ui/react'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { RootState } from 'app/store'; import { errorSeen, setShouldShowLogViewer, SystemState } from 'features/system/store/systemSlice'; import { useLayoutEffect, useRef, useState } from 'react'; diff --git a/frontend/src/features/system/components/ModelSelect.tsx b/frontend/src/features/system/components/ModelSelect.tsx index c1e3338513..49b7fe93fd 100644 --- a/frontend/src/features/system/components/ModelSelect.tsx +++ b/frontend/src/features/system/components/ModelSelect.tsx @@ -1,7 +1,7 @@ import { Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { requestModelChange } from 'app/socketio/actions'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISelect from 'common/components/IAISelect'; import _ from 'lodash'; import { ChangeEvent } from 'react'; diff --git a/frontend/src/features/system/components/ProgressBar.tsx b/frontend/src/features/system/components/ProgressBar.tsx index 9aa15c43af..fc08212f29 100644 --- a/frontend/src/features/system/components/ProgressBar.tsx +++ b/frontend/src/features/system/components/ProgressBar.tsx @@ -1,7 +1,7 @@ import { Progress } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { isEqual } from 'lodash'; -import { useAppSelector } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; import { RootState } from 'app/store'; import { SystemState } from 'features/system/store/systemSlice'; diff --git a/frontend/src/features/system/components/SettingsModal/ModelList.tsx b/frontend/src/features/system/components/SettingsModal/ModelList.tsx index 3ee5b2e0ad..0ccc7b2483 100644 --- a/frontend/src/features/system/components/SettingsModal/ModelList.tsx +++ b/frontend/src/features/system/components/SettingsModal/ModelList.tsx @@ -12,7 +12,8 @@ import { createSelector } from '@reduxjs/toolkit'; import _ from 'lodash'; import { ModelStatus } from 'app/invokeai'; import { requestModelChange } from 'app/socketio/actions'; -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { SystemState } from 'features/system/store/systemSlice'; type ModelListItemProps = { diff --git a/frontend/src/features/system/components/SettingsModal/SettingsModal.tsx b/frontend/src/features/system/components/SettingsModal/SettingsModal.tsx index c55231cc01..668c97af89 100644 --- a/frontend/src/features/system/components/SettingsModal/SettingsModal.tsx +++ b/frontend/src/features/system/components/SettingsModal/SettingsModal.tsx @@ -15,8 +15,9 @@ import { import { createSelector } from '@reduxjs/toolkit'; import _, { isEqual } from 'lodash'; import { ChangeEvent, cloneElement, ReactElement } from 'react'; -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; -import { persistor } from 'main'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; +import { persistor } from 'persistor'; import { InProgressImageType, setEnableImageDebugging, diff --git a/frontend/src/features/system/components/StatusIndicator.tsx b/frontend/src/features/system/components/StatusIndicator.tsx index 1da6c2a892..bd458c2e79 100644 --- a/frontend/src/features/system/components/StatusIndicator.tsx +++ b/frontend/src/features/system/components/StatusIndicator.tsx @@ -1,7 +1,8 @@ import { Text, Tooltip } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { isEqual } from 'lodash'; -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { errorSeen, SystemState } from 'features/system/store/systemSlice'; const systemSelector = createSelector( diff --git a/frontend/src/features/system/components/ThemeChanger.tsx b/frontend/src/features/system/components/ThemeChanger.tsx index 6e2d9fcab4..f2b1255391 100644 --- a/frontend/src/features/system/components/ThemeChanger.tsx +++ b/frontend/src/features/system/components/ThemeChanger.tsx @@ -1,5 +1,6 @@ import { useColorMode, VStack } from '@chakra-ui/react'; -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { setCurrentTheme } from 'features/options/store/optionsSlice'; import IAIPopover from 'common/components/IAIPopover'; import IAIIconButton from 'common/components/IAIIconButton'; diff --git a/frontend/src/features/system/hooks/useToastWatcher.ts b/frontend/src/features/system/hooks/useToastWatcher.ts index f5a36681ce..bb5dbeed97 100644 --- a/frontend/src/features/system/hooks/useToastWatcher.ts +++ b/frontend/src/features/system/hooks/useToastWatcher.ts @@ -1,5 +1,5 @@ import { useToast } from '@chakra-ui/react'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { useEffect } from 'react'; import { toastQueueSelector } from 'features/system/store/systemSelectors'; import { clearToastQueue } from 'features/system/store/systemSlice'; diff --git a/frontend/src/features/tabs/components/FloatingGalleryButton.tsx b/frontend/src/features/tabs/components/FloatingGalleryButton.tsx index 1f68739783..2b1eca3fa6 100644 --- a/frontend/src/features/tabs/components/FloatingGalleryButton.tsx +++ b/frontend/src/features/tabs/components/FloatingGalleryButton.tsx @@ -1,5 +1,5 @@ import { MdPhotoLibrary } from 'react-icons/md'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; import { setShouldShowGallery } from 'features/gallery/store/gallerySlice'; import { setDoesCanvasNeedScaling } from 'features/canvas/store/canvasSlice'; diff --git a/frontend/src/features/tabs/components/FloatingOptionsPanelButtons.tsx b/frontend/src/features/tabs/components/FloatingOptionsPanelButtons.tsx index 844f175280..c0b0e096b7 100644 --- a/frontend/src/features/tabs/components/FloatingOptionsPanelButtons.tsx +++ b/frontend/src/features/tabs/components/FloatingOptionsPanelButtons.tsx @@ -1,5 +1,6 @@ import { createSelector } from '@reduxjs/toolkit'; -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; import { OptionsState, diff --git a/frontend/src/features/tabs/components/ImageToImage/ImageToImageDisplay.tsx b/frontend/src/features/tabs/components/ImageToImage/ImageToImageDisplay.tsx index 90de5fe459..19678fb923 100644 --- a/frontend/src/features/tabs/components/ImageToImage/ImageToImageDisplay.tsx +++ b/frontend/src/features/tabs/components/ImageToImage/ImageToImageDisplay.tsx @@ -1,4 +1,5 @@ -import { RootState, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; import ImageUploadButton from 'common/components/ImageUploaderButton'; import CurrentImageDisplay from 'features/gallery/components/CurrentImageDisplay'; import InitImagePreview from './InitImagePreview'; diff --git a/frontend/src/features/tabs/components/ImageToImage/InitImagePreview.tsx b/frontend/src/features/tabs/components/ImageToImage/InitImagePreview.tsx index 25cc602f7d..045f2e4477 100644 --- a/frontend/src/features/tabs/components/ImageToImage/InitImagePreview.tsx +++ b/frontend/src/features/tabs/components/ImageToImage/InitImagePreview.tsx @@ -1,5 +1,6 @@ import { Image, useToast } from '@chakra-ui/react'; -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import ImageUploaderIconButton from 'common/components/ImageUploaderIconButton'; import { clearInitialImage } from 'features/options/store/optionsSlice'; diff --git a/frontend/src/features/tabs/components/ImageToImage/InitialImageOverlay.tsx b/frontend/src/features/tabs/components/ImageToImage/InitialImageOverlay.tsx index 90f4f64709..dddd810e44 100644 --- a/frontend/src/features/tabs/components/ImageToImage/InitialImageOverlay.tsx +++ b/frontend/src/features/tabs/components/ImageToImage/InitialImageOverlay.tsx @@ -1,6 +1,7 @@ import { Image } from '@chakra-ui/react'; import React from 'react'; -import { RootState, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; export default function InitialImageOverlay() { const initialImage = useAppSelector( diff --git a/frontend/src/features/tabs/components/InvokeOptionsPanel.tsx b/frontend/src/features/tabs/components/InvokeOptionsPanel.tsx index 0656ae717b..8caccbae31 100644 --- a/frontend/src/features/tabs/components/InvokeOptionsPanel.tsx +++ b/frontend/src/features/tabs/components/InvokeOptionsPanel.tsx @@ -5,7 +5,8 @@ import React, { ReactNode, useCallback, useEffect, useRef } from 'react'; import { useHotkeys } from 'react-hotkeys-hook'; import { BsPinAngle, BsPinAngleFill } from 'react-icons/bs'; import { CSSTransition } from 'react-transition-group'; -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { OptionsState, setOptionsPanelScrollPosition, diff --git a/frontend/src/features/tabs/components/InvokeTabs.tsx b/frontend/src/features/tabs/components/InvokeTabs.tsx index 8d6204edc1..f12e9406eb 100644 --- a/frontend/src/features/tabs/components/InvokeTabs.tsx +++ b/frontend/src/features/tabs/components/InvokeTabs.tsx @@ -2,7 +2,8 @@ import { Tab, TabPanel, TabPanels, Tabs, Tooltip } from '@chakra-ui/react'; import _ from 'lodash'; import React, { ReactElement } from 'react'; import { useHotkeys } from 'react-hotkeys-hook'; -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import NodesWIP from 'common/components/WorkInProgress/NodesWIP'; import { PostProcessingWIP } from 'common/components/WorkInProgress/PostProcessingWIP'; import ImageToImageIcon from 'common/icons/ImageToImageIcon'; @@ -20,8 +21,15 @@ import UnifiedCanvasWorkarea from './UnifiedCanvas/UnifiedCanvasWorkarea'; import UnifiedCanvasIcon from 'common/icons/UnifiedCanvasIcon'; import TrainingWIP from 'common/components/WorkInProgress/Training'; import TrainingIcon from 'common/icons/TrainingIcon'; +import { InvokeTabName } from 'features/tabs/tabMap'; -export const tabDict = { +export interface InvokeTabInfo { + title: ReactElement; + workarea: ReactElement; + tooltip: string; +} + +export const tabDict: Record = { txt2img: { title: , workarea: , @@ -54,13 +62,6 @@ export const tabDict = { }, }; -// Array where index maps to the key of tabDict -export const tabMap = _.map(tabDict, (tab, key) => key); - -// Use tabMap to generate a union type of tab names -const tabMapTypes = [...tabMap] as const; -export type InvokeTabName = typeof tabMapTypes[number]; - export default function InvokeTabs() { const activeTab = useAppSelector( (state: RootState) => state.options.activeTab diff --git a/frontend/src/features/tabs/components/InvokeWorkarea.tsx b/frontend/src/features/tabs/components/InvokeWorkarea.tsx index aa21282669..82afd881d9 100644 --- a/frontend/src/features/tabs/components/InvokeWorkarea.tsx +++ b/frontend/src/features/tabs/components/InvokeWorkarea.tsx @@ -2,7 +2,8 @@ import { Tooltip } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { DragEvent, ReactNode } from 'react'; import { VscSplitHorizontal } from 'react-icons/vsc'; -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import ImageGallery from 'features/gallery/components/ImageGallery'; import { activeTabNameSelector } from 'features/options/store/optionsSelectors'; import { diff --git a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasDisplayBeta.tsx b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasDisplayBeta.tsx index 0ccde27e56..90edf0a556 100644 --- a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasDisplayBeta.tsx +++ b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasDisplayBeta.tsx @@ -3,7 +3,7 @@ import { createSelector } from '@reduxjs/toolkit'; import IAICanvasResizer from 'features/canvas/components/IAICanvasResizer'; import _ from 'lodash'; import { useLayoutEffect } from 'react'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { setDoesCanvasNeedScaling } from 'features/canvas/store/canvasSlice'; import IAICanvas from 'features/canvas/components/IAICanvas'; import IAICanvasOutpaintingControls from 'features/canvas/components/IAICanvasToolbar/IAICanvasToolbar'; diff --git a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSize.tsx b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSize.tsx index 5103d7172c..f2318cc72f 100644 --- a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSize.tsx +++ b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSize.tsx @@ -1,4 +1,5 @@ -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISlider from 'common/components/IAISlider'; import { isStagingSelector } from 'features/canvas/store/canvasSelectors'; import { setBrushSize } from 'features/canvas/store/canvasSlice'; diff --git a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasClearMask.tsx b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasClearMask.tsx index b6e687dea1..8189804fcf 100644 --- a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasClearMask.tsx +++ b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasClearMask.tsx @@ -1,4 +1,4 @@ -import { useAppDispatch } from 'app/store'; +import { useAppDispatch } from 'app/storeHooks'; import IAIButton from 'common/components/IAIButton'; import { clearMask } from 'features/canvas/store/canvasSlice'; diff --git a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasColorPicker.tsx b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasColorPicker.tsx index 63cf823871..1fd9b2121d 100644 --- a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasColorPicker.tsx +++ b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasColorPicker.tsx @@ -1,6 +1,6 @@ import { Box, Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIColorPicker from 'common/components/IAIColorPicker'; import IAIPopover from 'common/components/IAIPopover'; import { diff --git a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasDarkenOutsideSelection.tsx b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasDarkenOutsideSelection.tsx index f3b11b2136..47a20d13ad 100644 --- a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasDarkenOutsideSelection.tsx +++ b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasDarkenOutsideSelection.tsx @@ -1,4 +1,5 @@ -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAICheckbox from 'common/components/IAICheckbox'; import { setShouldDarkenOutsideBoundingBox } from 'features/canvas/store/canvasSlice'; import React from 'react'; diff --git a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasEnableMask.tsx b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasEnableMask.tsx index fa8dd2dde4..046fafad41 100644 --- a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasEnableMask.tsx +++ b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasEnableMask.tsx @@ -1,4 +1,5 @@ -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAICheckbox from 'common/components/IAICheckbox'; import { setIsMaskEnabled } from 'features/canvas/store/canvasSlice'; import React from 'react'; diff --git a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasLimitStrokesToBox.tsx b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasLimitStrokesToBox.tsx index 11242e1ff3..ccacea0abf 100644 --- a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasLimitStrokesToBox.tsx +++ b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasLimitStrokesToBox.tsx @@ -1,4 +1,5 @@ -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAICheckbox from 'common/components/IAICheckbox'; import { setShouldRestrictStrokesToBox } from 'features/canvas/store/canvasSlice'; import React from 'react'; diff --git a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasPreserveMask.tsx b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasPreserveMask.tsx index 46b9c57c90..abd30d131c 100644 --- a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasPreserveMask.tsx +++ b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasPreserveMask.tsx @@ -1,4 +1,5 @@ -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAICheckbox from 'common/components/IAICheckbox'; import { setShouldPreserveMaskedArea } from 'features/canvas/store/canvasSlice'; import React from 'react'; diff --git a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasSettings.tsx b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasSettings.tsx index f49f2e3303..5c14d3e09e 100644 --- a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasSettings.tsx +++ b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasSettings.tsx @@ -6,7 +6,7 @@ import { setShouldShowCanvasDebugInfo, setShouldShowIntermediates, } from 'features/canvas/store/canvasSlice'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import _ from 'lodash'; import IAIIconButton from 'common/components/IAIIconButton'; import { FaWrench } from 'react-icons/fa'; diff --git a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasShowGrid.tsx b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasShowGrid.tsx index 3d8fe78248..9bae5b4423 100644 --- a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasShowGrid.tsx +++ b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasShowGrid.tsx @@ -1,4 +1,5 @@ -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAICheckbox from 'common/components/IAICheckbox'; import { setShouldShowGrid } from 'features/canvas/store/canvasSlice'; import React from 'react'; diff --git a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasSnapToGrid.tsx b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasSnapToGrid.tsx index bb89b67e3e..60f53031ce 100644 --- a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasSnapToGrid.tsx +++ b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasSnapToGrid.tsx @@ -1,4 +1,5 @@ -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAICheckbox from 'common/components/IAICheckbox'; import { setShouldSnapToGrid } from 'features/canvas/store/canvasSlice'; import React, { ChangeEvent } from 'react'; diff --git a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettingsBeta.tsx b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettingsBeta.tsx index effa4718ec..f979c418c9 100644 --- a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettingsBeta.tsx +++ b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettingsBeta.tsx @@ -1,5 +1,5 @@ import { createSelector } from '@reduxjs/toolkit'; -import { useAppSelector } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; import { canvasSelector } from 'features/canvas/store/canvasSelectors'; import React from 'react'; import _ from 'lodash'; diff --git a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasCopyToClipboard.tsx b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasCopyToClipboard.tsx index cca0b1af21..3e0e206087 100644 --- a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasCopyToClipboard.tsx +++ b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasCopyToClipboard.tsx @@ -1,4 +1,5 @@ -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; import { isStagingSelector } from 'features/canvas/store/canvasSelectors'; import { mergeAndUploadCanvas } from 'features/canvas/store/thunks/mergeAndUploadCanvas'; diff --git a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasDownloadImage.tsx b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasDownloadImage.tsx index e74419e2f3..9b73999a26 100644 --- a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasDownloadImage.tsx +++ b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasDownloadImage.tsx @@ -1,4 +1,5 @@ -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; import { isStagingSelector } from 'features/canvas/store/canvasSelectors'; import { mergeAndUploadCanvas } from 'features/canvas/store/thunks/mergeAndUploadCanvas'; diff --git a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasFileUploader.tsx b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasFileUploader.tsx index 1543ce6868..7ca55ebef2 100644 --- a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasFileUploader.tsx +++ b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasFileUploader.tsx @@ -1,4 +1,4 @@ -import { useAppSelector } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; import useImageUploader from 'common/hooks/useImageUploader'; import { isStagingSelector } from 'features/canvas/store/canvasSelectors'; diff --git a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasLayerSelect.tsx b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasLayerSelect.tsx index fcf28d4669..d650b16550 100644 --- a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasLayerSelect.tsx +++ b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasLayerSelect.tsx @@ -1,5 +1,5 @@ import { createSelector } from '@reduxjs/toolkit'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISelect from 'common/components/IAISelect'; import { canvasSelector, diff --git a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasMergeVisible.tsx b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasMergeVisible.tsx index 9a4cf6d43d..98ce701a21 100644 --- a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasMergeVisible.tsx +++ b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasMergeVisible.tsx @@ -1,4 +1,5 @@ -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; import { isStagingSelector } from 'features/canvas/store/canvasSelectors'; import { mergeAndUploadCanvas } from 'features/canvas/store/thunks/mergeAndUploadCanvas'; diff --git a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasMoveTool.tsx b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasMoveTool.tsx index d9b81bdab4..936c391f25 100644 --- a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasMoveTool.tsx +++ b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasMoveTool.tsx @@ -1,4 +1,5 @@ -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; import { isStagingSelector } from 'features/canvas/store/canvasSelectors'; import { setTool } from 'features/canvas/store/canvasSlice'; diff --git a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasProcessingButtons.tsx b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasProcessingButtons.tsx index 31c8e6df64..3825fcd7ca 100644 --- a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasProcessingButtons.tsx +++ b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasProcessingButtons.tsx @@ -1,5 +1,6 @@ import { Flex } from '@chakra-ui/layout'; -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; import { setDoesCanvasNeedScaling } from 'features/canvas/store/canvasSlice'; import CancelButton from 'features/options/components/ProcessButtons/CancelButton'; diff --git a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasResetCanvas.tsx b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasResetCanvas.tsx index f1a1e1f3ef..5a1faace6c 100644 --- a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasResetCanvas.tsx +++ b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasResetCanvas.tsx @@ -1,4 +1,4 @@ -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; import { isStagingSelector } from 'features/canvas/store/canvasSelectors'; import { diff --git a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasResetView.tsx b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasResetView.tsx index ac9f2b2cfb..eeeede1991 100644 --- a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasResetView.tsx +++ b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasResetView.tsx @@ -1,4 +1,4 @@ -import { useAppDispatch } from 'app/store'; +import { useAppDispatch } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; import { resetCanvasView } from 'features/canvas/store/canvasSlice'; import { getCanvasBaseLayer } from 'features/canvas/util/konvaInstanceProvider'; diff --git a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasSaveToGallery.tsx b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasSaveToGallery.tsx index 7eeb2fb5ab..68fc2e4ca7 100644 --- a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasSaveToGallery.tsx +++ b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasSaveToGallery.tsx @@ -1,4 +1,5 @@ -import { RootState, useAppDispatch, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; import { isStagingSelector } from 'features/canvas/store/canvasSelectors'; import { mergeAndUploadCanvas } from 'features/canvas/store/thunks/mergeAndUploadCanvas'; diff --git a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasToolSelect.tsx b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasToolSelect.tsx index 10680e3799..bbcfa2e65f 100644 --- a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasToolSelect.tsx +++ b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasToolSelect.tsx @@ -6,7 +6,7 @@ import { setBrushColor, setTool, } from 'features/canvas/store/canvasSlice'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import _ from 'lodash'; import IAIIconButton from 'common/components/IAIIconButton'; import { diff --git a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbarBeta.tsx b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbarBeta.tsx index 6e95150916..7b4ecdb93f 100644 --- a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbarBeta.tsx +++ b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbarBeta.tsx @@ -14,7 +14,8 @@ import UnifiedCanvasDownloadImage from './UnifiedCanvasToolbar/UnifiedCanvasDown import UnifiedCanvasFileUploader from './UnifiedCanvasToolbar/UnifiedCanvasFileUploader'; import UnifiedCanvasResetCanvas from './UnifiedCanvasToolbar/UnifiedCanvasResetCanvas'; import UnifiedCanvasProcessingButtons from './UnifiedCanvasToolbar/UnifiedCanvasProcessingButtons'; -import { RootState, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; const UnifiedCanvasToolbarBeta = () => { const shouldShowOptionsPanel = useAppSelector( diff --git a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasDisplay.tsx b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasDisplay.tsx index 8b845a4bb3..01ae2bfbb9 100644 --- a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasDisplay.tsx +++ b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasDisplay.tsx @@ -3,7 +3,7 @@ import { createSelector } from '@reduxjs/toolkit'; import IAICanvasResizer from 'features/canvas/components/IAICanvasResizer'; import _ from 'lodash'; import { useLayoutEffect } from 'react'; -import { useAppDispatch, useAppSelector } from 'app/store'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { setDoesCanvasNeedScaling } from 'features/canvas/store/canvasSlice'; import IAICanvas from 'features/canvas/components/IAICanvas'; import IAICanvasOutpaintingControls from 'features/canvas/components/IAICanvasToolbar/IAICanvasToolbar'; diff --git a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasWorkarea.tsx b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasWorkarea.tsx index f0116dc344..cec5d1f303 100644 --- a/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasWorkarea.tsx +++ b/frontend/src/features/tabs/components/UnifiedCanvas/UnifiedCanvasWorkarea.tsx @@ -1,7 +1,8 @@ import UnifiedCanvasPanel from './UnifiedCanvasPanel'; import UnifiedCanvasDisplay from './UnifiedCanvasDisplay'; import InvokeWorkarea from 'features/tabs/components/InvokeWorkarea'; -import { RootState, useAppSelector } from 'app/store'; +import { RootState } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; import UnifiedCanvasDisplayBeta from './UnifiedCanvasBeta/UnifiedCanvasDisplayBeta'; export default function UnifiedCanvasWorkarea() { diff --git a/frontend/src/features/tabs/tabMap.ts b/frontend/src/features/tabs/tabMap.ts new file mode 100644 index 0000000000..74d63d2df0 --- /dev/null +++ b/frontend/src/features/tabs/tabMap.ts @@ -0,0 +1,10 @@ +export const tabMap = [ + 'txt2img', + 'img2img', + 'unifiedCanvas', + 'nodes', + 'postprocess', + 'training', +] as const; + +export type InvokeTabName = typeof tabMap[number]; diff --git a/frontend/src/main.tsx b/frontend/src/main.tsx index 02350c73bd..8bfa912def 100644 --- a/frontend/src/main.tsx +++ b/frontend/src/main.tsx @@ -6,9 +6,7 @@ import createCache from '@emotion/cache'; import { store } from './app/store'; import { Provider } from 'react-redux'; import { PersistGate } from 'redux-persist/integration/react'; -import { persistStore } from 'redux-persist'; - -export const persistor = persistStore(store); +import { persistor } from './persistor'; import Loading from './Loading'; import App from './app/App'; diff --git a/frontend/src/persistor.ts b/frontend/src/persistor.ts new file mode 100644 index 0000000000..e90de9ac75 --- /dev/null +++ b/frontend/src/persistor.ts @@ -0,0 +1,4 @@ +import { persistStore } from 'redux-persist'; +import { store } from 'app/store'; + +export const persistor = persistStore(store); diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 3c5cf488b1..0691ecf3d2 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -162,6 +162,11 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/parser@^7.0.0": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.5.tgz#7f3c7335fe417665d929f34ae5dceae4c04015e8" + integrity sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA== + "@babel/parser@^7.18.10", "@babel/parser@^7.20.1", "@babel/parser@^7.20.2": version "7.20.2" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.2.tgz#9aeb9b92f64412b5f81064d46f6a1ac0881337f4" @@ -1691,6 +1696,11 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + "@types/lodash.mergewith@4.6.6": version "4.6.6" resolved "https://registry.yarnpkg.com/@types/lodash.mergewith/-/lodash.mergewith-4.6.6.tgz#c4698f5b214a433ff35cb2c75ee6ec7f99d79f10" @@ -1811,6 +1821,11 @@ debug "^4.3.4" tsutils "^3.21.0" +"@typescript-eslint/types@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" + integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== + "@typescript-eslint/types@5.44.0": version "5.44.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.44.0.tgz#f3f0b89aaff78f097a2927fe5688c07e786a0241" @@ -1829,6 +1844,19 @@ semver "^7.3.7" tsutils "^3.21.0" +"@typescript-eslint/typescript-estree@^4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" + integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA== + dependencies: + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" + debug "^4.3.1" + globby "^11.0.3" + is-glob "^4.0.1" + semver "^7.3.5" + tsutils "^3.21.0" + "@typescript-eslint/utils@5.44.0": version "5.44.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.44.0.tgz#d733da4d79d6c30f1a68b531cdda1e0c1f00d52d" @@ -1843,6 +1871,14 @@ eslint-utils "^3.0.0" semver "^7.3.7" +"@typescript-eslint/visitor-keys@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" + integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg== + dependencies: + "@typescript-eslint/types" "4.33.0" + eslint-visitor-keys "^2.0.0" + "@typescript-eslint/visitor-keys@5.44.0": version "5.44.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.44.0.tgz#10740dc28902bb903d12ee3a005cc3a70207d433" @@ -1955,6 +1991,11 @@ anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" +app-module-path@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/app-module-path/-/app-module-path-2.2.0.tgz#641aa55dfb7d6a6f0a8141c4b9c0aa50b6c24dd5" + integrity sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ== + argparse@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" @@ -1972,6 +2013,16 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== +ast-module-types@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/ast-module-types/-/ast-module-types-2.7.1.tgz#3f7989ef8dfa1fdb82dfe0ab02bdfc7c77a57dd3" + integrity sha512-Rnnx/4Dus6fn7fTqdeLEAn5vUll5w7/vts0RN608yFa6si/rDOUonlIIiwugHBFWjylHjxm9owoSZn71KwG4gw== + +ast-module-types@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ast-module-types/-/ast-module-types-3.0.0.tgz#9a6d8a80f438b6b8fe4995699d700297f398bf81" + integrity sha512-CMxMCOCS+4D+DkOQfuZf+vLrSEmY/7xtORwdxs4wtcC1wVgvk2MqFFTwQCFhvWsI4KPU9lcWXPI8DgRiz+xetQ== + attr-accept@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/attr-accept/-/attr-accept-2.2.2.tgz#646613809660110749e92f2c10833b70968d929b" @@ -1991,6 +2042,11 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + base64id@2.0.0, base64id@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" @@ -2001,6 +2057,15 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== +bl@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -2031,6 +2096,14 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -2050,7 +2123,7 @@ chalk@^2.0.0: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.1.2: +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -2078,6 +2151,23 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-spinners@^2.5.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.7.0.tgz#f815fd30b5f9eaac02db604c7a231ed7cb2f797a" + integrity sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw== + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -2097,12 +2187,12 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== -color-name@~1.1.4: +color-name@^1.1.4, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -commander@^2.20.0: +commander@^2.16.0, commander@^2.20.0, commander@^2.20.3, commander@^2.8.1: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -2112,6 +2202,16 @@ commander@^4.0.0: resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + compute-scroll-into-view@1.0.14: version "1.0.14" resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.14.tgz#80e3ebb25d6aa89f42e533956cb4b16a04cfe759" @@ -2200,23 +2300,130 @@ dateformat@^5.0.3: resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-5.0.3.tgz#fe2223eff3cc70ce716931cb3038b59a9280696e" integrity sha512-Kvr6HmPXUMerlLcLF+Pwq3K7apHpYmGDVqrxcDasBg86UcKeTSNWbEzU8bwdXnxnR44FtMhJAxI4Bov6Y/KUfA== -debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: +debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -deep-is@^0.1.3: +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +dependency-tree@^8.1.1: + version "8.1.2" + resolved "https://registry.yarnpkg.com/dependency-tree/-/dependency-tree-8.1.2.tgz#c9e652984f53bd0239bc8a3e50cbd52f05b2e770" + integrity sha512-c4CL1IKxkKng0oT5xrg4uNiiMVFqTGOXqHSFx7XEFdgSsp6nw3AGGruICppzJUrfad/r7GLqt26rmWU4h4j39A== + dependencies: + commander "^2.20.3" + debug "^4.3.1" + filing-cabinet "^3.0.1" + precinct "^8.0.0" + typescript "^3.9.7" + detect-node-es@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/detect-node-es/-/detect-node-es-1.1.0.tgz#163acdf643330caa0b4cd7c21e7ee7755d6fa493" integrity sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ== +detective-amd@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/detective-amd/-/detective-amd-3.1.2.tgz#bf55eb5291c218b76d6224a3d07932ef13a9a357" + integrity sha512-jffU26dyqJ37JHR/o44La6CxtrDf3Rt9tvd2IbImJYxWKTMdBjctp37qoZ6ZcY80RHg+kzWz4bXn39e4P7cctQ== + dependencies: + ast-module-types "^3.0.0" + escodegen "^2.0.0" + get-amd-module-type "^3.0.0" + node-source-walk "^4.2.0" + +detective-cjs@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/detective-cjs/-/detective-cjs-3.1.3.tgz#50e107d67b37f459b0ec02966ceb7e20a73f268b" + integrity sha512-ljs7P0Yj9MK64B7G0eNl0ThWSYjhAaSYy+fQcpzaKalYl/UoQBOzOeLCSFEY1qEBhziZ3w7l46KG/nH+s+L7BQ== + dependencies: + ast-module-types "^3.0.0" + node-source-walk "^4.0.0" + +detective-es6@^2.2.0, detective-es6@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/detective-es6/-/detective-es6-2.2.2.tgz#ee5f880981d9fecae9a694007029a2f6f26d8d28" + integrity sha512-eZUKCUsbHm8xoeoCM0z6JFwvDfJ5Ww5HANo+jPR7AzkFpW9Mun3t/TqIF2jjeWa2TFbAiGaWESykf2OQp3oeMw== + dependencies: + node-source-walk "^4.0.0" + +detective-less@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/detective-less/-/detective-less-1.0.2.tgz#a68af9ca5f69d74b7d0aa190218b211d83b4f7e3" + integrity sha512-Rps1xDkEEBSq3kLdsdnHZL1x2S4NGDcbrjmd4q+PykK5aJwDdP5MBgrJw1Xo+kyUHuv3JEzPqxr+Dj9ryeDRTA== + dependencies: + debug "^4.0.0" + gonzales-pe "^4.2.3" + node-source-walk "^4.0.0" + +detective-postcss@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detective-postcss/-/detective-postcss-4.0.0.tgz#24e69b465e5fefe7a6afd05f7e894e34595dbf51" + integrity sha512-Fwc/g9VcrowODIAeKRWZfVA/EufxYL7XfuqJQFroBKGikKX83d2G7NFw6kDlSYGG3LNQIyVa+eWv1mqre+v4+A== + dependencies: + debug "^4.1.1" + is-url "^1.2.4" + postcss "^8.1.7" + postcss-values-parser "^2.0.1" + +detective-postcss@^5.0.0: + version "5.1.3" + resolved "https://registry.yarnpkg.com/detective-postcss/-/detective-postcss-5.1.3.tgz#773314cd017621b7d382be81331eb0c7abbe8cc3" + integrity sha512-Wo7PUpF6wqeT1aRgajdyIdDRjFFJVxlXPRAlT1aankH/RVOgrJuEZFZ4ABxYXdzaRPO5Lkg8rHxsxpLnxdJIYA== + dependencies: + is-url "^1.2.4" + postcss "^8.4.6" + postcss-values-parser "^5.0.0" + +detective-sass@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/detective-sass/-/detective-sass-3.0.2.tgz#e0f35aac79a4d2f6409c284d95b8f7ecd5973afd" + integrity sha512-DNVYbaSlmti/eztFGSfBw4nZvwsTaVXEQ4NsT/uFckxhJrNRFUh24d76KzoCC3aarvpZP9m8sC2L1XbLej4F7g== + dependencies: + gonzales-pe "^4.3.0" + node-source-walk "^4.0.0" + +detective-scss@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/detective-scss/-/detective-scss-2.0.2.tgz#7d2a642616d44bf677963484fa8754d9558b8235" + integrity sha512-hDWnWh/l0tht/7JQltumpVea/inmkBaanJUcXRB9kEEXVwVUMuZd6z7eusQ6GcBFrfifu3pX/XPyD7StjbAiBg== + dependencies: + gonzales-pe "^4.3.0" + node-source-walk "^4.0.0" + +detective-stylus@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detective-stylus/-/detective-stylus-1.0.3.tgz#20a702936c9fd7d4203fd7a903314b5dd43ac713" + integrity sha512-4/bfIU5kqjwugymoxLXXLltzQNeQfxGoLm2eIaqtnkWxqbhap9puDVpJPVDx96hnptdERzS5Cy6p9N8/08A69Q== + +detective-typescript@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/detective-typescript/-/detective-typescript-7.0.2.tgz#c6e00b4c28764741ef719662250e6b014a5f3c8e" + integrity sha512-unqovnhxzvkCz3m1/W4QW4qGsvXCU06aU2BAm8tkza+xLnp9SOFnob2QsTxUv5PdnQKfDvWcv9YeOeFckWejwA== + dependencies: + "@typescript-eslint/typescript-estree" "^4.33.0" + ast-module-types "^2.7.1" + node-source-walk "^4.2.0" + typescript "^3.9.10" + dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -2281,6 +2488,14 @@ engine.io@~6.2.1: engine.io-parser "~5.0.3" ws "~8.2.3" +enhanced-resolve@^5.8.3: + version "5.12.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz#300e1c90228f5b570c4d35babf263f6da7155634" + integrity sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -2431,6 +2646,18 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +escodegen@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" + integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + eslint-plugin-prettier@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" @@ -2530,6 +2757,11 @@ espree@^9.4.0: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.3.0" +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + esquery@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" @@ -2603,7 +2835,7 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@^2.0.6: +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== @@ -2629,6 +2861,25 @@ file-selector@^0.6.0: dependencies: tslib "^2.4.0" +filing-cabinet@^3.0.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/filing-cabinet/-/filing-cabinet-3.3.0.tgz#365294d2d3d6ab01b4273e62fb6d23388a70cc0f" + integrity sha512-Tnbpbme1ONaHXV5DGcw0OFpcfP3p2itRf5VXO1bguBXdIewDbK6ZFBK//DGKM0BuCzaQLQNY4f5gljzxY1VCUw== + dependencies: + app-module-path "^2.2.0" + commander "^2.20.3" + debug "^4.3.3" + enhanced-resolve "^5.8.3" + is-relative-path "^1.0.2" + module-definition "^3.3.1" + module-lookup-amd "^7.0.1" + resolve "^1.21.0" + resolve-dependency-path "^2.0.0" + sass-lookup "^3.0.0" + stylus-lookup "^3.0.1" + tsconfig-paths "^3.10.1" + typescript "^3.9.7" + fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -2669,6 +2920,11 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== +flatten@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" + integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== + focus-lock@^0.11.2: version "0.11.3" resolved "https://registry.yarnpkg.com/focus-lock/-/focus-lock-0.11.3.tgz#c094e8f109d780f56038abdeec79328fd56b627f" @@ -2738,11 +2994,24 @@ gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== +get-amd-module-type@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-amd-module-type/-/get-amd-module-type-3.0.2.tgz#46550cee2b8e1fa4c3f2c8a5753c36990aa49ab0" + integrity sha512-PcuKwB8ouJnKuAPn6Hk3UtdfKoUV3zXRqVEvj8XGIXqjWfgd1j7QGdXy5Z9OdQfzVt1Sk29HVe/P+X74ccOuqw== + dependencies: + ast-module-types "^3.0.0" + node-source-walk "^4.2.2" + get-nonce@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/get-nonce/-/get-nonce-1.0.1.tgz#fdf3f0278073820d2ce9426c18f07481b1e0cdf3" integrity sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q== +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -2774,7 +3043,7 @@ glob@7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.1.3: +glob@^7.1.3, glob@^7.1.6: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -2798,7 +3067,7 @@ globals@^13.15.0: dependencies: type-fest "^0.20.2" -globby@^11.1.0: +globby@^11.0.3, globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -2815,7 +3084,14 @@ globrex@^0.1.2: resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: +gonzales-pe@^4.2.3, gonzales-pe@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.3.0.tgz#fe9dec5f3c557eead09ff868c65826be54d067b3" + integrity sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ== + dependencies: + minimist "^1.2.5" + +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.4: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== @@ -2825,6 +3101,13 @@ grapheme-splitter@^1.0.4: resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== +graphviz@0.0.9: + version "0.0.9" + resolved "https://registry.yarnpkg.com/graphviz/-/graphviz-0.0.9.tgz#0bbf1df588c6a92259282da35323622528c4bbc4" + integrity sha512-SmoY2pOtcikmMCqCSy2NO1YsRfu9OO0wpTlOYW++giGjfX1a6gax/m1Fo8IdUd0/3H15cTOfR1SMKwohj4LKsg== + dependencies: + temp "~0.4.0" + has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -2854,6 +3137,11 @@ hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.1, hoist-non-react- dependencies: react-is "^16.7.0" +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + ignore@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" @@ -2882,6 +3170,11 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA== + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -2890,11 +3183,16 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2: +inherits@2, inherits@^2.0.3, inherits@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" @@ -2945,16 +3243,51 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== + is-path-inside@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== + +is-relative-path@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-relative-path/-/is-relative-path-1.0.2.tgz#091b46a0d67c1ed0fe85f1f8cfdde006bb251d46" + integrity sha512-i1h+y50g+0hRbBD+dbnInl3JlJ702aar58snAeX+MxBAPvzXGej7sYoPMhlnykabt0ZzCJNBEyzMlekuQZN7fA== + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-url-superb@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-url-superb/-/is-url-superb-4.0.0.tgz#b54d1d2499bb16792748ac967aa3ecb41a33a8c2" + integrity sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA== + +is-url@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" + integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== + is-wsl@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" @@ -3011,6 +3344,13 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + json5@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" @@ -3043,6 +3383,14 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" @@ -3070,6 +3418,14 @@ lodash@4.17.21, lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -3084,6 +3440,34 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +madge@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/madge/-/madge-5.0.1.tgz#2096d9006558ea0669b3ade89c2cda708a24e22b" + integrity sha512-krmSWL9Hkgub74bOjnjWRoFPAJvPwSG6Dbta06qhWOq6X/n/FPzO3ESZvbFYVIvG2g4UHXvCJN1b+RZLaSs9nA== + dependencies: + chalk "^4.1.1" + commander "^7.2.0" + commondir "^1.0.1" + debug "^4.3.1" + dependency-tree "^8.1.1" + detective-amd "^3.1.0" + detective-cjs "^3.1.1" + detective-es6 "^2.2.0" + detective-less "^1.0.2" + detective-postcss "^5.0.0" + detective-sass "^3.0.1" + detective-scss "^2.0.1" + detective-stylus "^1.0.0" + detective-typescript "^7.0.0" + graphviz "0.0.9" + ora "^5.4.1" + pluralize "^8.0.0" + precinct "^8.1.0" + pretty-ms "^7.0.1" + rc "^1.2.7" + typescript "^3.9.5" + walkdir "^0.4.1" + magic-string@^0.26.7: version "0.26.7" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.7.tgz#caf7daf61b34e9982f8228c4527474dac8981d6f" @@ -3128,6 +3512,11 @@ mime-types@~2.1.34: dependencies: mime-db "1.52.0" +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -3135,11 +3524,30 @@ minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -minimist@^1.2.6: +minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: version "1.2.7" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== +module-definition@^3.3.1: + version "3.4.0" + resolved "https://registry.yarnpkg.com/module-definition/-/module-definition-3.4.0.tgz#953a3861f65df5e43e80487df98bb35b70614c2b" + integrity sha512-XxJ88R1v458pifaSkPNLUTdSPNVGMP2SXVncVmApGO+gAfrLANiYe6JofymCzVceGOMwQE2xogxBSc8uB7XegA== + dependencies: + ast-module-types "^3.0.0" + node-source-walk "^4.0.0" + +module-lookup-amd@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/module-lookup-amd/-/module-lookup-amd-7.0.1.tgz#d67c1a93f2ff8e38b8774b99a638e9a4395774b2" + integrity sha512-w9mCNlj0S8qviuHzpakaLVc+/7q50jl9a/kmJ/n8bmXQZgDPkQHnPBb8MUOYh3WpAYkXuNc2c+khsozhIp/amQ== + dependencies: + commander "^2.8.1" + debug "^4.1.0" + glob "^7.1.6" + requirejs "^2.3.5" + requirejs-config-file "^4.0.0" + ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -3189,6 +3597,13 @@ node-releases@^2.0.6: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== +node-source-walk@^4.0.0, node-source-walk@^4.2.0, node-source-walk@^4.2.2: + version "4.3.0" + resolved "https://registry.yarnpkg.com/node-source-walk/-/node-source-walk-4.3.0.tgz#8336b56cfed23ac5180fe98f1e3bb6b11fd5317c" + integrity sha512-8Q1hXew6ETzqKRAs3jjLioSxNfT1cx74ooiF8RlAONwVMcfq+UdzLC2eB5qcPldUxaE5w3ytLkrmV1TGddhZTA== + dependencies: + "@babel/parser" "^7.0.0" + normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" @@ -3206,6 +3621,13 @@ once@^1.3.0: dependencies: wrappy "1" +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + open@^7.4.2: version "7.4.2" resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" @@ -3214,6 +3636,18 @@ open@^7.4.2: is-docker "^2.0.0" is-wsl "^2.1.1" +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + optionator@^0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" @@ -3226,6 +3660,21 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" +ora@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -3262,6 +3711,11 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" +parse-ms@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-2.1.0.tgz#348565a753d4391fa524029956b172cb7753097d" + integrity sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA== + patch-package@^6.5.0: version "6.5.0" resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-6.5.0.tgz#feb058db56f0005da59cfa316488321de585e88a" @@ -3334,6 +3788,11 @@ pirates@^4.0.1: resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== +pluralize@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== + popmotion@11.0.5: version "11.0.5" resolved "https://registry.yarnpkg.com/popmotion/-/popmotion-11.0.5.tgz#8e3e014421a0ffa30ecd722564fd2558954e1f7d" @@ -3344,6 +3803,33 @@ popmotion@11.0.5: style-value-types "5.1.2" tslib "2.4.0" +postcss-values-parser@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" + integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg== + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-values-parser@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-5.0.0.tgz#10c61ac3f488e4de25746b829ea8d8894e9ac3d2" + integrity sha512-2viDDjMMrt21W2izbeiJxl3kFuD/+asgB0CBwPEgSyhCmBnDIa/y+pLaoyX+q3I3DHH0oPPL3cgjVTQvlS1Maw== + dependencies: + color-name "^1.1.4" + is-url-superb "^4.0.0" + quote-unquote "^1.0.0" + +postcss@^8.1.7, postcss@^8.4.6: + version "8.4.20" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.20.tgz#64c52f509644cecad8567e949f4081d98349dc56" + integrity sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + postcss@^8.4.18: version "8.4.19" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.19.tgz#61178e2add236b17351897c8bcc0b4c8ecab56fc" @@ -3358,11 +3844,35 @@ postinstall-postinstall@^2.1.0: resolved "https://registry.yarnpkg.com/postinstall-postinstall/-/postinstall-postinstall-2.1.0.tgz#4f7f77441ef539d1512c40bd04c71b06a4704ca3" integrity sha512-7hQX6ZlZXIoRiWNrbMQaLzUUfH+sSx39u8EJ9HYuDc1kLo9IXKWjM5RSquZN1ad5GnH8CGFM78fsAAQi3OKEEQ== +precinct@^8.0.0, precinct@^8.1.0: + version "8.3.1" + resolved "https://registry.yarnpkg.com/precinct/-/precinct-8.3.1.tgz#94b99b623df144eed1ce40e0801c86078466f0dc" + integrity sha512-pVppfMWLp2wF68rwHqBIpPBYY8Kd12lDhk8LVQzOwqllifVR15qNFyod43YLyFpurKRZQKnE7E4pofAagDOm2Q== + dependencies: + commander "^2.20.3" + debug "^4.3.3" + detective-amd "^3.1.0" + detective-cjs "^3.1.1" + detective-es6 "^2.2.1" + detective-less "^1.0.2" + detective-postcss "^4.0.0" + detective-sass "^3.0.1" + detective-scss "^2.0.1" + detective-stylus "^1.0.0" + detective-typescript "^7.0.0" + module-definition "^3.3.1" + node-source-walk "^4.2.0" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== + prettier-linter-helpers@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" @@ -3370,6 +3880,13 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" +pretty-ms@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-7.0.1.tgz#7d903eaab281f7d8e03c66f867e239dc32fb73e8" + integrity sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q== + dependencies: + parse-ms "^2.1.0" + prop-types@^15.6.2, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" @@ -3396,6 +3913,21 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +quote-unquote@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/quote-unquote/-/quote-unquote-1.0.0.tgz#67a9a77148effeaf81a4d428404a710baaac8a0b" + integrity sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg== + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + re-resizable@^6.9.9: version "6.9.9" resolved "https://registry.yarnpkg.com/re-resizable/-/re-resizable-6.9.9.tgz#99e8b31c67a62115dc9c5394b7e55892265be216" @@ -3561,6 +4093,15 @@ react@^18.2.0: dependencies: loose-envify "^1.1.0" +readable-stream@^3.4.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -3611,17 +4152,35 @@ regexpp@^3.2.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== +requirejs-config-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/requirejs-config-file/-/requirejs-config-file-4.0.0.tgz#4244da5dd1f59874038cc1091d078d620abb6ebc" + integrity sha512-jnIre8cbWOyvr8a5F2KuqBnY+SDA4NXr/hzEZJG79Mxm2WiFQz2dzhC8ibtPJS7zkmBEl1mxSwp5HhC1W4qpxw== + dependencies: + esprima "^4.0.0" + stringify-object "^3.2.1" + +requirejs@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/requirejs/-/requirejs-2.3.6.tgz#e5093d9601c2829251258c0b9445d4d19fa9e7c9" + integrity sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg== + reselect@^4.1.7: version "4.1.7" resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.7.tgz#56480d9ff3d3188970ee2b76527bd94a95567a42" integrity sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A== +resolve-dependency-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-dependency-path/-/resolve-dependency-path-2.0.0.tgz#11700e340717b865d216c66cabeb4a2a3c696736" + integrity sha512-DIgu+0Dv+6v2XwRaNWnumKu7GPufBBOr5I1gRPJHkvghrfCGOooJODFvgFimX/KRxk9j0whD2MnKHzM1jYvk9w== + resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve@^1.19.0, resolve@^1.22.1: +resolve@^1.19.0, resolve@^1.21.0, resolve@^1.22.1: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -3630,6 +4189,14 @@ resolve@^1.19.0, resolve@^1.22.1: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" @@ -3663,6 +4230,18 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +sass-lookup@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/sass-lookup/-/sass-lookup-3.0.0.tgz#3b395fa40569738ce857bc258e04df2617c48cac" + integrity sha512-TTsus8CfFRn1N44bvdEai1no6PqdmDiQUiqW5DlpmtT+tYnIt1tXtDIph5KA1efC+LmioJXSnCtUVpcK9gaKIg== + dependencies: + commander "^2.16.0" + sass@^1.55.0: version "1.56.1" resolved "https://registry.yarnpkg.com/sass/-/sass-1.56.1.tgz#94d3910cd468fd075fa87f5bb17437a0b617d8a7" @@ -3689,7 +4268,7 @@ semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.7: +semver@^7.3.5, semver@^7.3.7: version "7.3.8" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== @@ -3720,6 +4299,11 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +signal-exit@^3.0.2: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + slash@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" @@ -3783,7 +4367,7 @@ source-map@^0.5.7: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== -source-map@^0.6.0: +source-map@^0.6.0, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== @@ -3812,6 +4396,22 @@ string-argv@^0.1.1: resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.1.2.tgz#c5b7bc03fb2b11983ba3a72333dd0559e77e4738" integrity sha512-mBqPGEOMNJKXRo7z0keX0wlAhbBAjilUdPW13nN0PecVryZxdHIeM7TqbsSUA7VYuS00HGC6mojP7DlQzfa9ZA== +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +stringify-object@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -3829,6 +4429,11 @@ strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + style-value-types@5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/style-value-types/-/style-value-types-5.1.2.tgz#6be66b237bd546048a764883528072ed95713b62" @@ -3842,6 +4447,14 @@ stylis@4.1.3: resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.1.3.tgz#fd2fbe79f5fed17c55269e16ed8da14c84d069f7" integrity sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA== +stylus-lookup@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/stylus-lookup/-/stylus-lookup-3.0.2.tgz#c9eca3ff799691020f30b382260a67355fefdddd" + integrity sha512-oEQGHSjg/AMaWlKe7gqsnYzan8DLcGIHe0dUaFkucZZ14z4zjENRlQMCHT4FNsiWnJf17YN9OvrCfCoi7VvOyg== + dependencies: + commander "^2.8.1" + debug "^4.1.0" + sucrase@^3.20.3: version "3.29.0" resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.29.0.tgz#3207c5bc1b980fdae1e539df3f8a8a518236da7d" @@ -3878,6 +4491,16 @@ systemjs@^6.13.0: resolved "https://registry.yarnpkg.com/systemjs/-/systemjs-6.13.0.tgz#7b28e74b44352e1650e8652499f42de724c3fc7f" integrity sha512-P3cgh2bpaPvAO2NE3uRp/n6hmk4xPX4DQf+UzTlCAycssKdqhp6hjw+ENWe+aUS7TogKRFtptMosTSFeC6R55g== +tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +temp@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/temp/-/temp-0.4.0.tgz#671ad63d57be0fe9d7294664b3fc400636678a60" + integrity sha512-IsFisGgDKk7qzK9erMIkQe/XwiSUdac7z3wYOsjcLkhPBy3k1SlvLoIh2dAHIlEpgA971CgguMrx9z8fFg7tSA== + terser@^5.16.1: version "5.16.1" resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.1.tgz#5af3bc3d0f24241c7fb2024199d5c461a1075880" @@ -3957,6 +4580,16 @@ tsc-watch@^5.0.3: string-argv "^0.1.1" strip-ansi "^6.0.0" +tsconfig-paths@^3.10.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" + integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.6" + strip-bom "^3.0.0" + tsconfig-paths@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.1.0.tgz#f8ef7d467f08ae3a695335bf1ece088c5538d2c1" @@ -3995,16 +4628,33 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== + dependencies: + prelude-ls "~1.1.2" + type-fest@^0.20.2: version "0.20.2" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== +typescript@^3.9.10, typescript@^3.9.5, typescript@^3.9.7: + version "3.9.10" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8" + integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q== + typescript@^4.6.4: version "4.9.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.3.tgz#3aea307c1746b8c384435d8ac36b8a2e580d85db" integrity sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA== +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA== + universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -4055,6 +4705,11 @@ use-sync-external-store@^1.0.0: resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + uuid@^9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" @@ -4096,6 +4751,18 @@ vite@^3.0.7: optionalDependencies: fsevents "~2.3.2" +walkdir@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/walkdir/-/walkdir-0.4.1.tgz#dc119f83f4421df52e3061e514228a2db20afa39" + integrity sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ== + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -4110,7 +4777,7 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -word-wrap@^1.2.3: +word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==