From 0fc08bb3849304ac761d0fa5bf2be300afd5c189 Mon Sep 17 00:00:00 2001 From: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Tue, 9 Jan 2024 01:11:45 +1100 Subject: [PATCH] ui: redesign followups 8 (#5445) * feat(ui): get rid of convoluted socket vs appSocket redux actions There's no need to have `socket...` and `appSocket...` actions. I did this initially due to a misunderstanding about the sequence of handling from middleware to reducers. * feat(ui): bump deps Mainly bumping to get latest `redux-remember`. A change to socket.io required a change to the types in `useSocketIO`. * chore(ui): format * feat(ui): add error handling to redux persistence layer - Add an error handler to `redux-remember` config using our logger - Add custom errors representing storage set and get failures - Update storage driver to raise these accordingly - wrap method to clear idbkeyval storage and tidy its logic up * feat(ui): add debuggingLoggerMiddleware This simply logs every action and a diff of the state change. Due to the noise this creates, it's not added by default at all. Add it to the middlewares if you want to use it. * feat(ui): add $socket to window if in dev mode * fix(ui): do not enable cancel hotkeys on inputs * fix(ui): use JSON.stringify for ROARR logger serializer A recent change to ROARR introduced limits to the size of data that will logged. This ends up making our logs far less useful. Change the serializer back to what it was previously. * feat(ui): change diff util, update debuggerLoggerMiddleware The previous diff library would present deleted things as `undefined`. Unfortunately, a JSON.stringify cycle will strip those values out. The ROARR logger does this and so the diffs end up being a lot less useful, not showing removed keys. The new diff library uses a different format for the delta that serializes nicely. * feat(ui): add migrations to redux persistence layer - All persisted slices must now have a slice config, consisting of their initial state and a migrate callback. The migrate callback is very simple for now, with no type safety. It adds missing properties to the state. A future enhancement might be to model the each slice's state with e.g. zod and have proper validation and types. - Persisted slices now have a `_version` property - The migrate callback is called inside `redux-remember`'s `unserialize` handler. I couldn't figure out a good way to put this into the reducer and do logging (reducers should have no side effects). Also I ran into a weird race condition that I couldn't figure out. And finally, the typings are tricky. This works for now. - `generationSlice` and `canvasSlice` both need migrations for the new aspect ratio setup, this has been added - Stuff related to persistence has been moved in to `store.ts` for simplicity * feat(ui): clean up StorageError class * fix(ui): scale method default is now 'auto' * feat(ui): when changing controlnet model, enable autoconfig * fix(ui): make embedding popover immediately accessible Prevents hotkeys from being captured when embeddings are still loading. --- invokeai/frontend/web/package.json | 47 +- invokeai/frontend/web/pnpm-lock.yaml | 2218 +++++++++-------- .../frontend/web/src/app/hooks/useSocketIO.ts | 6 +- .../frontend/web/src/app/logging/logger.ts | 7 +- .../store/enhancers/reduxRemember/driver.ts | 37 + .../store/enhancers/reduxRemember/errors.ts | 41 + .../enhancers/reduxRemember/serialize.ts | 30 - .../enhancers/reduxRemember/unserialize.ts | 34 - .../store/middleware/debugLoggerMiddleware.ts | 16 + .../middleware/devtools/actionSanitizer.ts | 11 + .../middleware/devtools/actionsDenylist.ts | 18 +- .../listeners/promptChanged.ts | 4 +- .../listeners/socketio/socketConnected.ts | 9 +- .../listeners/socketio/socketDisconnected.ts | 13 +- .../socketio/socketGeneratorProgress.ts | 13 +- .../socketGraphExecutionStateComplete.ts | 12 +- .../socketio/socketInvocationComplete.ts | 10 +- .../socketio/socketInvocationError.ts | 11 +- .../socketInvocationRetrievalError.ts | 11 +- .../socketio/socketInvocationStarted.ts | 13 +- .../listeners/socketio/socketModelLoad.ts | 15 +- .../socketio/socketQueueItemStatusChanged.ts | 12 +- .../socketio/socketSessionRetrievalError.ts | 11 +- .../listeners/socketio/socketSubscribed.ts | 11 +- .../listeners/socketio/socketUnsubscribed.ts | 10 +- invokeai/frontend/web/src/app/store/store.ts | 212 +- .../web/src/common/hooks/useClearStorage.ts | 5 +- .../web/src/common/hooks/useGlobalHotkeys.ts | 2 - .../src/features/canvas/store/canvasSlice.ts | 17 +- .../src/features/canvas/store/canvasTypes.ts | 1 + .../store/controlAdaptersSlice.ts | 54 +- .../store/dynamicPromptsSlice.ts | 11 + .../features/embedding/EmbeddingSelect.tsx | 16 +- .../features/gallery/store/gallerySlice.ts | 8 + .../web/src/features/hrf/store/hrfSlice.ts | 10 + .../web/src/features/lora/store/loraSlice.ts | 14 +- .../modelManager/store/modelManagerSlice.ts | 12 +- .../src/features/nodes/store/nodesSlice.ts | 29 +- .../web/src/features/nodes/store/types.ts | 2 + .../src/features/nodes/store/workflowSlice.ts | 11 +- .../parameters/store/generationSlice.ts | 10 + .../parameters/store/postprocessingSlice.ts | 10 + .../src/features/parameters/store/types.ts | 1 + .../web/src/features/sdxl/store/sdxlSlice.ts | 10 + .../src/features/system/store/systemSlice.ts | 57 +- .../web/src/features/system/store/types.ts | 1 + .../web/src/features/ui/store/uiSlice.ts | 9 + .../web/src/features/ui/store/uiTypes.ts | 1 + .../web/src/services/events/actions.ts | 166 -- 49 files changed, 1722 insertions(+), 1567 deletions(-) create mode 100644 invokeai/frontend/web/src/app/store/enhancers/reduxRemember/driver.ts create mode 100644 invokeai/frontend/web/src/app/store/enhancers/reduxRemember/errors.ts delete mode 100644 invokeai/frontend/web/src/app/store/enhancers/reduxRemember/serialize.ts delete mode 100644 invokeai/frontend/web/src/app/store/enhancers/reduxRemember/unserialize.ts create mode 100644 invokeai/frontend/web/src/app/store/middleware/debugLoggerMiddleware.ts diff --git a/invokeai/frontend/web/package.json b/invokeai/frontend/web/package.json index a41a4781b8..daa1d5ab8e 100644 --- a/invokeai/frontend/web/package.json +++ b/invokeai/frontend/web/package.json @@ -73,10 +73,11 @@ "chakra-react-select": "^4.7.6", "compare-versions": "^6.1.0", "dateformat": "^5.0.3", - "framer-motion": "^10.16.16", - "i18next": "^23.7.13", + "framer-motion": "^10.17.9", + "i18next": "^23.7.16", "i18next-http-backend": "^2.4.2", "idb-keyval": "^6.2.1", + "jsondiffpatch": "^0.6.0", "konva": "^9.3.0", "lodash-es": "^4.17.21", "nanostores": "^0.9.5", @@ -90,7 +91,7 @@ "react-dropzone": "^14.2.3", "react-error-boundary": "^4.0.12", "react-hook-form": "^7.49.2", - "react-hotkeys-hook": "4.4.1", + "react-hotkeys-hook": "4.4.3", "react-i18next": "^14.0.0", "react-icons": "^4.12.0", "react-konva": "^18.2.10", @@ -102,10 +103,10 @@ "react-virtuoso": "^4.6.2", "reactflow": "^11.10.1", "redux-dynamic-middlewares": "^2.2.0", - "redux-remember": "^5.0.1", + "redux-remember": "^5.1.0", "roarr": "^7.21.0", "serialize-error": "^11.0.3", - "socket.io-client": "^4.7.2", + "socket.io-client": "^4.7.3", "type-fest": "^4.9.0", "use-debounce": "^10.0.0", "use-image": "^1.1.1", @@ -121,27 +122,27 @@ "ts-toolbelt": "^9.6.0" }, "devDependencies": { - "@arthurgeron/eslint-plugin-react-usememo": "^2.2.2", + "@arthurgeron/eslint-plugin-react-usememo": "^2.2.3", "@chakra-ui/cli": "^2.4.1", - "@storybook/addon-docs": "^7.6.6", - "@storybook/addon-essentials": "^7.6.6", - "@storybook/addon-interactions": "^7.6.6", - "@storybook/addon-links": "^7.6.6", - "@storybook/addon-storysource": "^7.6.6", - "@storybook/blocks": "^7.6.6", - "@storybook/manager-api": "^7.6.6", - "@storybook/react": "^7.6.6", - "@storybook/react-vite": "^7.6.6", - "@storybook/test": "^7.6.6", - "@storybook/theming": "^7.6.6", + "@storybook/addon-docs": "^7.6.7", + "@storybook/addon-essentials": "^7.6.7", + "@storybook/addon-interactions": "^7.6.7", + "@storybook/addon-links": "^7.6.7", + "@storybook/addon-storysource": "^7.6.7", + "@storybook/blocks": "^7.6.7", + "@storybook/manager-api": "^7.6.7", + "@storybook/react": "^7.6.7", + "@storybook/react-vite": "^7.6.7", + "@storybook/test": "^7.6.7", + "@storybook/theming": "^7.6.7", "@types/dateformat": "^5.0.2", "@types/lodash-es": "^4.17.12", - "@types/node": "^20.10.6", - "@types/react": "^18.2.46", + "@types/node": "^20.10.7", + "@types/react": "^18.2.47", "@types/react-dom": "^18.2.18", "@types/uuid": "^9.0.7", - "@typescript-eslint/eslint-plugin": "^6.16.0", - "@typescript-eslint/parser": "^6.16.0", + "@typescript-eslint/eslint-plugin": "^6.18.0", + "@typescript-eslint/parser": "^6.18.0", "@vitejs/plugin-react-swc": "^3.5.0", "concurrently": "^8.2.2", "eslint": "^8.56.0", @@ -159,10 +160,10 @@ "openapi-typescript": "^6.7.3", "prettier": "^3.1.1", "rollup-plugin-visualizer": "^5.12.0", - "storybook": "^7.6.6", + "storybook": "^7.6.7", "ts-toolbelt": "^9.6.0", "typescript": "^5.3.3", - "vite": "^5.0.10", + "vite": "^5.0.11", "vite-plugin-css-injected-by-js": "^3.3.1", "vite-plugin-dts": "^3.7.0", "vite-plugin-eslint": "^1.8.1", diff --git a/invokeai/frontend/web/pnpm-lock.yaml b/invokeai/frontend/web/pnpm-lock.yaml index 6cdbe20700..dd641f2699 100644 --- a/invokeai/frontend/web/pnpm-lock.yaml +++ b/invokeai/frontend/web/pnpm-lock.yaml @@ -24,7 +24,7 @@ dependencies: version: 2.1.0(react-dom@18.2.0)(react@18.2.0) '@chakra-ui/react': specifier: ^2.8.2 - version: 2.8.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(@types/react@18.2.46)(framer-motion@10.16.16)(react-dom@18.2.0)(react@18.2.0) + version: 2.8.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(@types/react@18.2.47)(framer-motion@10.17.9)(react-dom@18.2.0)(react@18.2.0) '@chakra-ui/react-use-size': specifier: ^2.1.0 version: 2.1.0(react@18.2.0) @@ -45,10 +45,10 @@ dependencies: version: 3.2.2(react@18.2.0) '@emotion/react': specifier: ^11.11.3 - version: 11.11.3(@types/react@18.2.46)(react@18.2.0) + version: 11.11.3(@types/react@18.2.47)(react@18.2.0) '@emotion/styled': specifier: ^11.11.0 - version: 11.11.0(@emotion/react@11.11.3)(@types/react@18.2.46)(react@18.2.0) + version: 11.11.0(@emotion/react@11.11.3)(@types/react@18.2.47)(react@18.2.0) '@fontsource-variable/inter': specifier: ^5.0.16 version: 5.0.16 @@ -66,7 +66,7 @@ dependencies: version: 1.3.0 chakra-react-select: specifier: ^4.7.6 - version: 4.7.6(@chakra-ui/form-control@2.2.0)(@chakra-ui/icon@3.2.0)(@chakra-ui/layout@2.3.1)(@chakra-ui/media-query@3.3.0)(@chakra-ui/menu@2.2.1)(@chakra-ui/spinner@2.1.0)(@chakra-ui/system@2.6.2)(@emotion/react@11.11.3)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) + version: 4.7.6(@chakra-ui/form-control@2.2.0)(@chakra-ui/icon@3.2.0)(@chakra-ui/layout@2.3.1)(@chakra-ui/media-query@3.3.0)(@chakra-ui/menu@2.2.1)(@chakra-ui/spinner@2.1.0)(@chakra-ui/system@2.6.2)(@emotion/react@11.11.3)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) compare-versions: specifier: ^6.1.0 version: 6.1.0 @@ -74,17 +74,20 @@ dependencies: specifier: ^5.0.3 version: 5.0.3 framer-motion: - specifier: ^10.16.16 - version: 10.16.16(react-dom@18.2.0)(react@18.2.0) + specifier: ^10.17.9 + version: 10.17.9(react-dom@18.2.0)(react@18.2.0) i18next: - specifier: ^23.7.13 - version: 23.7.13 + specifier: ^23.7.16 + version: 23.7.16 i18next-http-backend: specifier: ^2.4.2 version: 2.4.2 idb-keyval: specifier: ^6.2.1 version: 6.2.1 + jsondiffpatch: + specifier: ^0.6.0 + version: 0.6.0 konva: specifier: ^9.3.0 version: 9.3.0 @@ -125,11 +128,11 @@ dependencies: specifier: ^7.49.2 version: 7.49.2(react@18.2.0) react-hotkeys-hook: - specifier: 4.4.1 - version: 4.4.1(react-dom@18.2.0)(react@18.2.0) + specifier: 4.4.3 + version: 4.4.3(react-dom@18.2.0)(react@18.2.0) react-i18next: specifier: ^14.0.0 - version: 14.0.0(i18next@23.7.13)(react-dom@18.2.0)(react@18.2.0) + version: 14.0.0(i18next@23.7.16)(react-dom@18.2.0)(react@18.2.0) react-icons: specifier: ^4.12.0 version: 4.12.0(react@18.2.0) @@ -138,16 +141,16 @@ dependencies: version: 18.2.10(konva@9.3.0)(react-dom@18.2.0)(react@18.2.0) react-redux: specifier: 9.0.4 - version: 9.0.4(@types/react@18.2.46)(react@18.2.0)(redux@5.0.1) + version: 9.0.4(@types/react@18.2.47)(react@18.2.0)(redux@5.0.1) react-resizable-panels: specifier: ^1.0.7 version: 1.0.7(react-dom@18.2.0)(react@18.2.0) react-select: specifier: 5.8.0 - version: 5.8.0(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) + version: 5.8.0(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) react-textarea-autosize: specifier: ^8.5.3 - version: 8.5.3(@types/react@18.2.46)(react@18.2.0) + version: 8.5.3(@types/react@18.2.47)(react@18.2.0) react-use: specifier: ^17.4.2 version: 17.4.2(react-dom@18.2.0)(react@18.2.0) @@ -156,13 +159,13 @@ dependencies: version: 4.6.2(react-dom@18.2.0)(react@18.2.0) reactflow: specifier: ^11.10.1 - version: 11.10.1(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) + version: 11.10.1(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) redux-dynamic-middlewares: specifier: ^2.2.0 version: 2.2.0 redux-remember: - specifier: ^5.0.1 - version: 5.0.1(redux@5.0.1) + specifier: ^5.1.0 + version: 5.1.0(redux@5.0.1) roarr: specifier: ^7.21.0 version: 7.21.0 @@ -170,8 +173,8 @@ dependencies: specifier: ^11.0.3 version: 11.0.3 socket.io-client: - specifier: ^4.7.2 - version: 4.7.2 + specifier: ^4.7.3 + version: 4.7.3 type-fest: specifier: ^4.9.0 version: 4.9.0 @@ -193,44 +196,44 @@ dependencies: devDependencies: '@arthurgeron/eslint-plugin-react-usememo': - specifier: ^2.2.2 - version: 2.2.2 + specifier: ^2.2.3 + version: 2.2.3 '@chakra-ui/cli': specifier: ^2.4.1 version: 2.4.1 '@storybook/addon-docs': - specifier: ^7.6.6 - version: 7.6.6(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) + specifier: ^7.6.7 + version: 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) '@storybook/addon-essentials': - specifier: ^7.6.6 - version: 7.6.6(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) + specifier: ^7.6.7 + version: 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) '@storybook/addon-interactions': - specifier: ^7.6.6 - version: 7.6.6 + specifier: ^7.6.7 + version: 7.6.7 '@storybook/addon-links': - specifier: ^7.6.6 - version: 7.6.6(react@18.2.0) + specifier: ^7.6.7 + version: 7.6.7(react@18.2.0) '@storybook/addon-storysource': - specifier: ^7.6.6 - version: 7.6.6 + specifier: ^7.6.7 + version: 7.6.7 '@storybook/blocks': - specifier: ^7.6.6 - version: 7.6.6(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) + specifier: ^7.6.7 + version: 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) '@storybook/manager-api': - specifier: ^7.6.6 - version: 7.6.6(react-dom@18.2.0)(react@18.2.0) + specifier: ^7.6.7 + version: 7.6.7(react-dom@18.2.0)(react@18.2.0) '@storybook/react': - specifier: ^7.6.6 - version: 7.6.6(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) + specifier: ^7.6.7 + version: 7.6.7(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) '@storybook/react-vite': - specifier: ^7.6.6 - version: 7.6.6(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(vite@5.0.10) + specifier: ^7.6.7 + version: 7.6.7(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(vite@5.0.11) '@storybook/test': - specifier: ^7.6.6 - version: 7.6.6 + specifier: ^7.6.7 + version: 7.6.7 '@storybook/theming': - specifier: ^7.6.6 - version: 7.6.6(react-dom@18.2.0)(react@18.2.0) + specifier: ^7.6.7 + version: 7.6.7(react-dom@18.2.0)(react@18.2.0) '@types/dateformat': specifier: ^5.0.2 version: 5.0.2 @@ -238,11 +241,11 @@ devDependencies: specifier: ^4.17.12 version: 4.17.12 '@types/node': - specifier: ^20.10.6 - version: 20.10.6 + specifier: ^20.10.7 + version: 20.10.7 '@types/react': - specifier: ^18.2.46 - version: 18.2.46 + specifier: ^18.2.47 + version: 18.2.47 '@types/react-dom': specifier: ^18.2.18 version: 18.2.18 @@ -250,14 +253,14 @@ devDependencies: specifier: ^9.0.7 version: 9.0.7 '@typescript-eslint/eslint-plugin': - specifier: ^6.16.0 - version: 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3) + specifier: ^6.18.0 + version: 6.18.0(@typescript-eslint/parser@6.18.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: ^6.16.0 - version: 6.16.0(eslint@8.56.0)(typescript@5.3.3) + specifier: ^6.18.0 + version: 6.18.0(eslint@8.56.0)(typescript@5.3.3) '@vitejs/plugin-react-swc': specifier: ^3.5.0 - version: 3.5.0(vite@5.0.10) + version: 3.5.0(vite@5.0.11) concurrently: specifier: ^8.2.2 version: 8.2.2 @@ -272,7 +275,7 @@ devDependencies: version: 6.0.3 eslint-plugin-import: specifier: ^2.29.1 - version: 2.29.1(@typescript-eslint/parser@6.16.0)(eslint@8.56.0) + version: 2.29.1(@typescript-eslint/parser@6.18.0)(eslint@8.56.0) eslint-plugin-path: specifier: ^1.2.3 version: 1.2.3(eslint@8.56.0) @@ -290,7 +293,7 @@ devDependencies: version: 0.6.15(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-unused-imports: specifier: ^3.0.0 - version: 3.0.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint@8.56.0) + version: 3.0.0(@typescript-eslint/eslint-plugin@6.18.0)(eslint@8.56.0) madge: specifier: ^6.1.0 version: 6.1.0(typescript@5.3.3) @@ -307,8 +310,8 @@ devDependencies: specifier: ^5.12.0 version: 5.12.0 storybook: - specifier: ^7.6.6 - version: 7.6.6 + specifier: ^7.6.7 + version: 7.6.7 ts-toolbelt: specifier: ^9.6.0 version: 9.6.0 @@ -316,20 +319,20 @@ devDependencies: specifier: ^5.3.3 version: 5.3.3 vite: - specifier: ^5.0.10 - version: 5.0.10(@types/node@20.10.6) + specifier: ^5.0.11 + version: 5.0.11(@types/node@20.10.7) vite-plugin-css-injected-by-js: specifier: ^3.3.1 - version: 3.3.1(vite@5.0.10) + version: 3.3.1(vite@5.0.11) vite-plugin-dts: specifier: ^3.7.0 - version: 3.7.0(@types/node@20.10.6)(typescript@5.3.3)(vite@5.0.10) + version: 3.7.0(@types/node@20.10.7)(typescript@5.3.3)(vite@5.0.11) vite-plugin-eslint: specifier: ^1.8.1 - version: 1.8.1(eslint@8.56.0)(vite@5.0.10) + version: 1.8.1(eslint@8.56.0)(vite@5.0.11) vite-tsconfig-paths: specifier: ^4.2.3 - version: 4.2.3(typescript@5.3.3)(vite@5.0.10) + version: 4.2.3(typescript@5.3.3)(vite@5.0.11) packages: @@ -350,8 +353,8 @@ packages: '@jridgewell/trace-mapping': 0.3.20 dev: true - /@arthurgeron/eslint-plugin-react-usememo@2.2.2: - resolution: {integrity: sha512-bwL3FD1pe/0zPT+HDQhFUWRoA+v5flgWXQUabwBG9vAQ3JCaEGqzESB7kjTnqVo4ATDWhwmIqgyv7miogDIyiw==} + /@arthurgeron/eslint-plugin-react-usememo@2.2.3: + resolution: {integrity: sha512-YJG+8hULmhHAxztaANswpa9hWNqEOSvbZcbd6R/JQzyNlEZ49Xh97kqZGuJGZ74rrmULckEO1m3Jh5ctqrGA2A==} dependencies: minimatch: 9.0.3 uuid: 9.0.1 @@ -376,19 +379,19 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.23.6: - resolution: {integrity: sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw==} + /@babel/core@7.23.7: + resolution: {integrity: sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.23.5 '@babel/generator': 7.23.6 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) - '@babel/helpers': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) + '@babel/helpers': 7.23.7 '@babel/parser': 7.23.6 '@babel/template': 7.22.15 - '@babel/traverse': 7.23.6 + '@babel/traverse': 7.23.7 '@babel/types': 7.23.6 convert-source-map: 2.0.0 debug: 4.3.4 @@ -434,42 +437,42 @@ packages: semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.23.6(@babel/core@7.23.6): - resolution: {integrity: sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==} + /@babel/helper-create-class-features-plugin@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 dev: true - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.6): + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.7): resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 dev: true - /@babel/helper-define-polyfill-provider@0.4.4(@babel/core@7.23.6): + /@babel/helper-define-polyfill-provider@0.4.4(@babel/core@7.23.7): resolution: {integrity: sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4 @@ -512,13 +515,13 @@ packages: dependencies: '@babel/types': 7.23.6 - /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.6): + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 @@ -538,25 +541,25 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.6): + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.7): resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.20 dev: true - /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.6): + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.7): resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 @@ -605,12 +608,12 @@ packages: '@babel/types': 7.23.6 dev: true - /@babel/helpers@7.23.6: - resolution: {integrity: sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==} + /@babel/helpers@7.23.7: + resolution: {integrity: sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/traverse': 7.23.6 + '@babel/traverse': 7.23.7 '@babel/types': 7.23.6 transitivePeerDependencies: - supports-color @@ -632,959 +635,959 @@ packages: '@babel/types': 7.23.6 dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.6): + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.6): + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.7) dev: true - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3(@babel/core@7.23.6): - resolution: {integrity: sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==} + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.6): + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.7): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.6): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.7): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.6): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.7): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.6): + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.7): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.6): + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.6): + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-flow@7.23.3(@babel/core@7.23.6): + /@babel/plugin-syntax-flow@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.6): + /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.6): + /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.6): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.7): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.6): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.6): + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.6): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.7): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.6): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.6): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.7): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.6): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.6): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.6): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.6): + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.7): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.6): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.7): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.6): + /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.6): + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.7): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-async-generator-functions@7.23.4(@babel/core@7.23.6): - resolution: {integrity: sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==} + /@babel/plugin-transform-async-generator-functions@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.6) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.6) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.7) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.6) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.6) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-classes@7.23.5(@babel/core@7.23.6): + /@babel/plugin-transform-classes@7.23.5(@babel/core@7.23.7): resolution: {integrity: sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 dev: true - /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/template': 7.22.15 dev: true - /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.6): + /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.7): resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.6) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-identifier': 7.22.20 dev: true - /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.6): + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.7): resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.6) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.6) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 regenerator-transform: 0.15.2 dev: true - /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typescript@7.23.6(@babel/core@7.23.6): + /@babel/plugin-transform-typescript@7.23.6(@babel/core@7.23.7): resolution: {integrity: sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/preset-env@7.23.6(@babel/core@7.23.6): - resolution: {integrity: sha512-2XPn/BqKkZCpzYhUUNZ1ssXw7DcXfKQEjv/uXZUXgaebCMYmkEsfZ2yY+vv+xtXv50WmL5SGhyB6/xsWxIvvOQ==} + /@babel/preset-env@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-SY27X/GtTz/L4UryMNJ6p4fH4nsgWbz84y9FE0bQeWJP6O5BhgVCt53CotQKHCOeXJel8VyhlhujhlltKms/CA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.6) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.6) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.6) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.6) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.6) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.6) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.6) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.6) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.6) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.6) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-async-generator-functions': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.23.6) - '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.6) - '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.6) - '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.6) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.6) - babel-plugin-polyfill-corejs2: 0.4.7(@babel/core@7.23.6) - babel-plugin-polyfill-corejs3: 0.8.7(@babel/core@7.23.6) - babel-plugin-polyfill-regenerator: 0.5.4(@babel/core@7.23.6) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.23.7) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.7) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.7) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.7) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.7) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.7) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.7) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.7) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-async-generator-functions': 7.23.7(@babel/core@7.23.7) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.23.7) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.7) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.7) + '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.7) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.7) + babel-plugin-polyfill-corejs2: 0.4.7(@babel/core@7.23.7) + babel-plugin-polyfill-corejs3: 0.8.7(@babel/core@7.23.7) + babel-plugin-polyfill-regenerator: 0.5.4(@babel/core@7.23.7) core-js-compat: 3.35.0 semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-flow@7.23.3(@babel/core@7.23.6): + /@babel/preset-flow@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-7yn6hl8RIv+KNk6iIrGZ+D06VhVY35wLVf23Cz/mMu1zOr7u4MMP4j0nZ9tLf8+4ZFpnib8cFYgB/oYg9hfswA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.23.7) dev: true - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.6): + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.7): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/types': 7.23.6 esutils: 2.0.3 dev: true - /@babel/preset-typescript@7.23.3(@babel/core@7.23.6): + /@babel/preset-typescript@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.6) + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.7) dev: true - /@babel/register@7.22.15(@babel/core@7.23.6): - resolution: {integrity: sha512-V3Q3EqoQdn65RCgTLwauZaTfd1ShhwPmbBv+1dkZV/HpCGMKVyn6oFcRlI7RaKqiDQjX2Qd3AuoEguBgdjIKlg==} + /@babel/register@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 @@ -1617,8 +1620,8 @@ packages: '@babel/types': 7.23.6 dev: true - /@babel/traverse@7.23.6: - resolution: {integrity: sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==} + /@babel/traverse@7.23.7: + resolution: {integrity: sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.23.5 @@ -1647,7 +1650,7 @@ packages: resolution: {integrity: sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==} dev: true - /@chakra-ui/accordion@2.3.1(@chakra-ui/system@2.6.2)(framer-motion@10.16.16)(react@18.2.0): + /@chakra-ui/accordion@2.3.1(@chakra-ui/system@2.6.2)(framer-motion@10.17.9)(react@18.2.0): resolution: {integrity: sha512-FSXRm8iClFyU+gVaXisOSEw0/4Q+qZbFRiuhIAkVU6Boj0FxAMrlo9a8AV5TuF77rgaHytCdHk0Ng+cyUijrag==} peerDependencies: '@chakra-ui/system': '>=2.0.0' @@ -1661,8 +1664,8 @@ packages: '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) '@chakra-ui/shared-utils': 2.0.5 '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) - '@chakra-ui/transition': 2.1.0(framer-motion@10.16.16)(react@18.2.0) - framer-motion: 10.16.16(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/transition': 2.1.0(framer-motion@10.17.9)(react@18.2.0) + framer-motion: 10.17.9(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 dev: false @@ -1833,7 +1836,7 @@ packages: '@emotion/react': '>=10.0.35' react: '>=18' dependencies: - '@emotion/react': 11.11.3(@types/react@18.2.46)(react@18.2.0) + '@emotion/react': 11.11.3(@types/react@18.2.47)(react@18.2.0) react: 18.2.0 dev: false @@ -1874,14 +1877,14 @@ packages: resolution: {integrity: sha512-IGM/yGUHS+8TOQrZGpAKOJl/xGBrmRYJrmbHfUE7zrG3PpQyXvbLDP1M+RggkCFVgHlJi2wpYIf0QtQlU0XZfw==} dev: false - /@chakra-ui/focus-lock@2.1.0(@types/react@18.2.46)(react@18.2.0): + /@chakra-ui/focus-lock@2.1.0(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-EmGx4PhWGjm4dpjRqM4Aa+rCWBxP+Rq8Uc/nAVnD4YVqkEhBkrPTpui2lnjsuxqNaZ24fIAZ10cF1hlpemte/w==} peerDependencies: react: '>=18' dependencies: '@chakra-ui/dom-utils': 2.1.0 react: 18.2.0 - react-focus-lock: 2.9.6(@types/react@18.2.46)(react@18.2.0) + react-focus-lock: 2.9.6(@types/react@18.2.47)(react@18.2.0) transitivePeerDependencies: - '@types/react' dev: false @@ -2003,7 +2006,7 @@ packages: react: 18.2.0 dev: false - /@chakra-ui/menu@2.2.1(@chakra-ui/system@2.6.2)(framer-motion@10.16.16)(react@18.2.0): + /@chakra-ui/menu@2.2.1(@chakra-ui/system@2.6.2)(framer-motion@10.17.9)(react@18.2.0): resolution: {integrity: sha512-lJS7XEObzJxsOwWQh7yfG4H8FzFPRP5hVPN/CL+JzytEINCSBvsCDHrYPQGp7jzpCi8vnTqQQGQe0f8dwnXd2g==} peerDependencies: '@chakra-ui/system': '>=2.0.0' @@ -2025,12 +2028,12 @@ packages: '@chakra-ui/react-use-update-effect': 2.1.0(react@18.2.0) '@chakra-ui/shared-utils': 2.0.5 '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) - '@chakra-ui/transition': 2.1.0(framer-motion@10.16.16)(react@18.2.0) - framer-motion: 10.16.16(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/transition': 2.1.0(framer-motion@10.17.9)(react@18.2.0) + framer-motion: 10.17.9(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 dev: false - /@chakra-ui/modal@2.3.1(@chakra-ui/system@2.6.2)(@types/react@18.2.46)(framer-motion@10.16.16)(react-dom@18.2.0)(react@18.2.0): + /@chakra-ui/modal@2.3.1(@chakra-ui/system@2.6.2)(@types/react@18.2.47)(framer-motion@10.17.9)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-TQv1ZaiJMZN+rR9DK0snx/OPwmtaGH1HbZtlYt4W4s6CzyK541fxLRTjIXfEzIGpvNW+b6VFuFjbcR78p4DEoQ==} peerDependencies: '@chakra-ui/system': '>=2.0.0' @@ -2039,19 +2042,19 @@ packages: react-dom: '>=18' dependencies: '@chakra-ui/close-button': 2.1.1(@chakra-ui/system@2.6.2)(react@18.2.0) - '@chakra-ui/focus-lock': 2.1.0(@types/react@18.2.46)(react@18.2.0) + '@chakra-ui/focus-lock': 2.1.0(@types/react@18.2.47)(react@18.2.0) '@chakra-ui/portal': 2.1.0(react-dom@18.2.0)(react@18.2.0) '@chakra-ui/react-context': 2.1.0(react@18.2.0) '@chakra-ui/react-types': 2.0.7(react@18.2.0) '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) '@chakra-ui/shared-utils': 2.0.5 '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) - '@chakra-ui/transition': 2.1.0(framer-motion@10.16.16)(react@18.2.0) + '@chakra-ui/transition': 2.1.0(framer-motion@10.17.9)(react@18.2.0) aria-hidden: 1.2.3 - framer-motion: 10.16.16(react-dom@18.2.0)(react@18.2.0) + framer-motion: 10.17.9(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.7(@types/react@18.2.46)(react@18.2.0) + react-remove-scroll: 2.5.7(@types/react@18.2.47)(react@18.2.0) transitivePeerDependencies: - '@types/react' dev: false @@ -2102,7 +2105,7 @@ packages: react: 18.2.0 dev: false - /@chakra-ui/popover@2.2.1(@chakra-ui/system@2.6.2)(framer-motion@10.16.16)(react@18.2.0): + /@chakra-ui/popover@2.2.1(@chakra-ui/system@2.6.2)(framer-motion@10.17.9)(react@18.2.0): resolution: {integrity: sha512-K+2ai2dD0ljvJnlrzesCDT9mNzLifE3noGKZ3QwLqd/K34Ym1W/0aL1ERSynrcG78NKoXS54SdEzkhCZ4Gn/Zg==} peerDependencies: '@chakra-ui/system': '>=2.0.0' @@ -2121,7 +2124,7 @@ packages: '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) '@chakra-ui/shared-utils': 2.0.5 '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) - framer-motion: 10.16.16(react-dom@18.2.0)(react@18.2.0) + framer-motion: 10.17.9(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 dev: false @@ -2172,8 +2175,8 @@ packages: '@chakra-ui/react-env': 3.1.0(react@18.2.0) '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) '@chakra-ui/utils': 2.0.15 - '@emotion/react': 11.11.3(@types/react@18.2.46)(react@18.2.0) - '@emotion/styled': 11.11.0(@emotion/react@11.11.3)(@types/react@18.2.46)(react@18.2.0) + '@emotion/react': 11.11.3(@types/react@18.2.47)(react@18.2.0) + '@emotion/styled': 11.11.0(@emotion/react@11.11.3)(@types/react@18.2.47)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -2389,7 +2392,7 @@ packages: react: 18.2.0 dev: false - /@chakra-ui/react@2.8.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(@types/react@18.2.46)(framer-motion@10.16.16)(react-dom@18.2.0)(react@18.2.0): + /@chakra-ui/react@2.8.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(@types/react@18.2.47)(framer-motion@10.17.9)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Hn0moyxxyCDKuR9ywYpqgX8dvjqwu9ArwpIb9wHNYjnODETjLwazgNIliCVBRcJvysGRiV51U2/JtJVrpeCjUQ==} peerDependencies: '@emotion/react': ^11.0.0 @@ -2398,7 +2401,7 @@ packages: react: '>=18' react-dom: '>=18' dependencies: - '@chakra-ui/accordion': 2.3.1(@chakra-ui/system@2.6.2)(framer-motion@10.16.16)(react@18.2.0) + '@chakra-ui/accordion': 2.3.1(@chakra-ui/system@2.6.2)(framer-motion@10.17.9)(react@18.2.0) '@chakra-ui/alert': 2.2.2(@chakra-ui/system@2.6.2)(react@18.2.0) '@chakra-ui/avatar': 2.3.0(@chakra-ui/system@2.6.2)(react@18.2.0) '@chakra-ui/breadcrumb': 2.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) @@ -2410,7 +2413,7 @@ packages: '@chakra-ui/counter': 2.1.0(react@18.2.0) '@chakra-ui/css-reset': 2.3.0(@emotion/react@11.11.3)(react@18.2.0) '@chakra-ui/editable': 3.1.0(@chakra-ui/system@2.6.2)(react@18.2.0) - '@chakra-ui/focus-lock': 2.1.0(@types/react@18.2.46)(react@18.2.0) + '@chakra-ui/focus-lock': 2.1.0(@types/react@18.2.47)(react@18.2.0) '@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) '@chakra-ui/hooks': 2.2.1(react@18.2.0) '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) @@ -2419,11 +2422,11 @@ packages: '@chakra-ui/layout': 2.3.1(@chakra-ui/system@2.6.2)(react@18.2.0) '@chakra-ui/live-region': 2.1.0(react@18.2.0) '@chakra-ui/media-query': 3.3.0(@chakra-ui/system@2.6.2)(react@18.2.0) - '@chakra-ui/menu': 2.2.1(@chakra-ui/system@2.6.2)(framer-motion@10.16.16)(react@18.2.0) - '@chakra-ui/modal': 2.3.1(@chakra-ui/system@2.6.2)(@types/react@18.2.46)(framer-motion@10.16.16)(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/menu': 2.2.1(@chakra-ui/system@2.6.2)(framer-motion@10.17.9)(react@18.2.0) + '@chakra-ui/modal': 2.3.1(@chakra-ui/system@2.6.2)(@types/react@18.2.47)(framer-motion@10.17.9)(react-dom@18.2.0)(react@18.2.0) '@chakra-ui/number-input': 2.1.2(@chakra-ui/system@2.6.2)(react@18.2.0) '@chakra-ui/pin-input': 2.1.0(@chakra-ui/system@2.6.2)(react@18.2.0) - '@chakra-ui/popover': 2.2.1(@chakra-ui/system@2.6.2)(framer-motion@10.16.16)(react@18.2.0) + '@chakra-ui/popover': 2.2.1(@chakra-ui/system@2.6.2)(framer-motion@10.17.9)(react@18.2.0) '@chakra-ui/popper': 3.1.0(react@18.2.0) '@chakra-ui/portal': 2.1.0(react-dom@18.2.0)(react@18.2.0) '@chakra-ui/progress': 2.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) @@ -2438,7 +2441,7 @@ packages: '@chakra-ui/stat': 2.1.1(@chakra-ui/system@2.6.2)(react@18.2.0) '@chakra-ui/stepper': 2.3.1(@chakra-ui/system@2.6.2)(react@18.2.0) '@chakra-ui/styled-system': 2.9.2 - '@chakra-ui/switch': 2.1.2(@chakra-ui/system@2.6.2)(framer-motion@10.16.16)(react@18.2.0) + '@chakra-ui/switch': 2.1.2(@chakra-ui/system@2.6.2)(framer-motion@10.17.9)(react@18.2.0) '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) '@chakra-ui/table': 2.1.0(@chakra-ui/system@2.6.2)(react@18.2.0) '@chakra-ui/tabs': 3.0.0(@chakra-ui/system@2.6.2)(react@18.2.0) @@ -2446,14 +2449,14 @@ packages: '@chakra-ui/textarea': 2.1.2(@chakra-ui/system@2.6.2)(react@18.2.0) '@chakra-ui/theme': 3.3.1(@chakra-ui/styled-system@2.9.2) '@chakra-ui/theme-utils': 2.0.21 - '@chakra-ui/toast': 7.0.2(@chakra-ui/system@2.6.2)(framer-motion@10.16.16)(react-dom@18.2.0)(react@18.2.0) - '@chakra-ui/tooltip': 2.3.1(@chakra-ui/system@2.6.2)(framer-motion@10.16.16)(react-dom@18.2.0)(react@18.2.0) - '@chakra-ui/transition': 2.1.0(framer-motion@10.16.16)(react@18.2.0) + '@chakra-ui/toast': 7.0.2(@chakra-ui/system@2.6.2)(framer-motion@10.17.9)(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/tooltip': 2.3.1(@chakra-ui/system@2.6.2)(framer-motion@10.17.9)(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/transition': 2.1.0(framer-motion@10.17.9)(react@18.2.0) '@chakra-ui/utils': 2.0.15 '@chakra-ui/visually-hidden': 2.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) - '@emotion/react': 11.11.3(@types/react@18.2.46)(react@18.2.0) - '@emotion/styled': 11.11.0(@emotion/react@11.11.3)(@types/react@18.2.46)(react@18.2.0) - framer-motion: 10.16.16(react-dom@18.2.0)(react@18.2.0) + '@emotion/react': 11.11.3(@types/react@18.2.47)(react@18.2.0) + '@emotion/styled': 11.11.0(@emotion/react@11.11.3)(@types/react@18.2.47)(react@18.2.0) + framer-motion: 10.17.9(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: @@ -2564,7 +2567,7 @@ packages: lodash.mergewith: 4.6.2 dev: false - /@chakra-ui/switch@2.1.2(@chakra-ui/system@2.6.2)(framer-motion@10.16.16)(react@18.2.0): + /@chakra-ui/switch@2.1.2(@chakra-ui/system@2.6.2)(framer-motion@10.17.9)(react@18.2.0): resolution: {integrity: sha512-pgmi/CC+E1v31FcnQhsSGjJnOE2OcND4cKPyTE+0F+bmGm48Q/b5UmKD9Y+CmZsrt/7V3h8KNczowupfuBfIHA==} peerDependencies: '@chakra-ui/system': '>=2.0.0' @@ -2574,7 +2577,7 @@ packages: '@chakra-ui/checkbox': 2.3.2(@chakra-ui/system@2.6.2)(react@18.2.0) '@chakra-ui/shared-utils': 2.0.5 '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) - framer-motion: 10.16.16(react-dom@18.2.0)(react@18.2.0) + framer-motion: 10.17.9(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 dev: false @@ -2591,8 +2594,8 @@ packages: '@chakra-ui/styled-system': 2.9.2 '@chakra-ui/theme-utils': 2.0.21 '@chakra-ui/utils': 2.0.15 - '@emotion/react': 11.11.3(@types/react@18.2.46)(react@18.2.0) - '@emotion/styled': 11.11.0(@emotion/react@11.11.3)(@types/react@18.2.46)(react@18.2.0) + '@emotion/react': 11.11.3(@types/react@18.2.47)(react@18.2.0) + '@emotion/styled': 11.11.0(@emotion/react@11.11.3)(@types/react@18.2.47)(react@18.2.0) react: 18.2.0 react-fast-compare: 3.2.2 dev: false @@ -2683,7 +2686,7 @@ packages: '@chakra-ui/theme-tools': 2.1.2(@chakra-ui/styled-system@2.9.2) dev: false - /@chakra-ui/toast@7.0.2(@chakra-ui/system@2.6.2)(framer-motion@10.16.16)(react-dom@18.2.0)(react@18.2.0): + /@chakra-ui/toast@7.0.2(@chakra-ui/system@2.6.2)(framer-motion@10.17.9)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-yvRP8jFKRs/YnkuE41BVTq9nB2v/KDRmje9u6dgDmE5+1bFt3bwjdf9gVbif4u5Ve7F7BGk5E093ARRVtvLvXA==} peerDependencies: '@chakra-ui/system': 2.6.2 @@ -2701,12 +2704,12 @@ packages: '@chakra-ui/styled-system': 2.9.2 '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) '@chakra-ui/theme': 3.3.1(@chakra-ui/styled-system@2.9.2) - framer-motion: 10.16.16(react-dom@18.2.0)(react@18.2.0) + framer-motion: 10.17.9(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@chakra-ui/tooltip@2.3.1(@chakra-ui/system@2.6.2)(framer-motion@10.16.16)(react-dom@18.2.0)(react@18.2.0): + /@chakra-ui/tooltip@2.3.1(@chakra-ui/system@2.6.2)(framer-motion@10.17.9)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Rh39GBn/bL4kZpuEMPPRwYNnccRCL+w9OqamWHIB3Qboxs6h8cOyXfIdGxjo72lvhu1QI/a4KFqkM3St+WfC0A==} peerDependencies: '@chakra-ui/system': '>=2.0.0' @@ -2723,19 +2726,19 @@ packages: '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) '@chakra-ui/shared-utils': 2.0.5 '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) - framer-motion: 10.16.16(react-dom@18.2.0)(react@18.2.0) + framer-motion: 10.17.9(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@chakra-ui/transition@2.1.0(framer-motion@10.16.16)(react@18.2.0): + /@chakra-ui/transition@2.1.0(framer-motion@10.17.9)(react@18.2.0): resolution: {integrity: sha512-orkT6T/Dt+/+kVwJNy7zwJ+U2xAZ3EU7M3XCs45RBvUnZDr/u9vdmaM/3D/rOpmQJWgQBwKPJleUXrYWUagEDQ==} peerDependencies: framer-motion: '>=4.0.0' react: '>=18' dependencies: '@chakra-ui/shared-utils': 2.0.5 - framer-motion: 10.16.16(react-dom@18.2.0)(react@18.2.0) + framer-motion: 10.17.9(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 dev: false @@ -2868,7 +2871,7 @@ packages: resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} dev: false - /@emotion/react@11.11.3(@types/react@18.2.46)(react@18.2.0): + /@emotion/react@11.11.3(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-Cnn0kuq4DoONOMcnoVsTOR8E+AdnKFf//6kUWc4LCdnxj31pZWn7rIULd6Y7/Js1PiPHzn7SKCM9vB/jBni8eA==} peerDependencies: '@types/react': '*' @@ -2884,7 +2887,7 @@ packages: '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) '@emotion/utils': 1.2.1 '@emotion/weak-memoize': 0.3.1 - '@types/react': 18.2.46 + '@types/react': 18.2.47 hoist-non-react-statics: 3.3.2 react: 18.2.0 dev: false @@ -2903,7 +2906,7 @@ packages: resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==} dev: false - /@emotion/styled@11.11.0(@emotion/react@11.11.3)(@types/react@18.2.46)(react@18.2.0): + /@emotion/styled@11.11.0(@emotion/react@11.11.3)(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==} peerDependencies: '@emotion/react': ^11.0.0-rc.0 @@ -2916,11 +2919,11 @@ packages: '@babel/runtime': 7.23.6 '@emotion/babel-plugin': 11.11.0 '@emotion/is-prop-valid': 1.2.1 - '@emotion/react': 11.11.3(@types/react@18.2.46)(react@18.2.0) + '@emotion/react': 11.11.3(@types/react@18.2.47)(react@18.2.0) '@emotion/serialize': 1.1.3 '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) '@emotion/utils': 1.2.1 - '@types/react': 18.2.46 + '@types/react': 18.2.47 react: 18.2.0 dev: false @@ -3596,26 +3599,46 @@ packages: resolution: {integrity: sha512-Ii3MrfY/GAIN3OhXNzpCKaLxHQfJF9qvwq/kEJYdqDxeIHa01K8sldugal6TmeeXl+WMvhv9cnVzUTaFFJF09A==} dependencies: '@floating-ui/utils': 0.1.6 + dev: false + + /@floating-ui/core@1.5.3: + resolution: {integrity: sha512-O0WKDOo0yhJuugCx6trZQj5jVJ9yR0ystG2JaNAemYUWce+pmM6WUEFIibnWyEJKdrDxhm75NoSRME35FNaM/Q==} + dependencies: + '@floating-ui/utils': 0.2.1 + dev: true /@floating-ui/dom@1.5.3: resolution: {integrity: sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==} dependencies: '@floating-ui/core': 1.5.2 '@floating-ui/utils': 0.1.6 + dev: false - /@floating-ui/react-dom@2.0.4(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ==} + /@floating-ui/dom@1.5.4: + resolution: {integrity: sha512-jByEsHIY+eEdCjnTVu+E3ephzTOzkQ8hgUfGwos+bg7NlH33Zc5uO+QHz1mrQUOgIKKDD1RtS201P9NvAfq3XQ==} + dependencies: + '@floating-ui/core': 1.5.3 + '@floating-ui/utils': 0.2.1 + dev: true + + /@floating-ui/react-dom@2.0.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-UsBK30Bg+s6+nsgblXtZmwHhgS2vmbuQK22qgt2pTQM6M3X6H1+cQcLXqgRY3ihVLcZJE6IvqDQozhsnIVqK/Q==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: - '@floating-ui/dom': 1.5.3 + '@floating-ui/dom': 1.5.4 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true /@floating-ui/utils@0.1.6: resolution: {integrity: sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==} + dev: false + + /@floating-ui/utils@0.2.1: + resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==} + dev: true /@fontsource-variable/inter@5.0.16: resolution: {integrity: sha512-k+BUNqksTL+AN+o+OV7ILeiE9B5M5X+/jA7LWvCwjbV9ovXTqZyKRhA/x7uYv/ml8WQ0XNLBM7cRFIx4jW0/hg==} @@ -3680,7 +3703,7 @@ packages: resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.20 babel-plugin-istanbul: 6.1.1 @@ -3705,7 +3728,7 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.10.6 + '@types/node': 20.10.7 '@types/yargs': 16.0.9 chalk: 4.1.2 dev: true @@ -3717,12 +3740,12 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.10.6 + '@types/node': 20.10.7 '@types/yargs': 17.0.32 chalk: 4.1.2 dev: true - /@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.3.3)(vite@5.0.10): + /@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.3.3)(vite@5.0.11): resolution: {integrity: sha512-2D6y7fNvFmsLmRt6UCOFJPvFoPMJGT0Uh1Wg0RaigUp7kdQPs6yYn8Dmx6GZkOH/NW0yMTwRz/p0SRMMRo50vA==} peerDependencies: typescript: '>= 4.3.x' @@ -3736,7 +3759,7 @@ packages: magic-string: 0.27.0 react-docgen-typescript: 2.2.2(typescript@5.3.3) typescript: 5.3.3 - vite: 5.0.10(@types/node@20.10.6) + vite: 5.0.11(@types/node@20.10.7) dev: true /@jridgewell/gen-mapping@0.3.3: @@ -3788,28 +3811,28 @@ packages: react: '>=16' dependencies: '@types/mdx': 2.0.10 - '@types/react': 18.2.46 + '@types/react': 18.2.47 react: 18.2.0 dev: true - /@microsoft/api-extractor-model@7.28.3(@types/node@20.10.6): + /@microsoft/api-extractor-model@7.28.3(@types/node@20.10.7): resolution: {integrity: sha512-wT/kB2oDbdZXITyDh2SQLzaWwTOFbV326fP0pUwNW00WeliARs0qjmXBWmGWardEzp2U3/axkO3Lboqun6vrig==} dependencies: '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 3.62.0(@types/node@20.10.6) + '@rushstack/node-core-library': 3.62.0(@types/node@20.10.7) transitivePeerDependencies: - '@types/node' dev: true - /@microsoft/api-extractor@7.39.0(@types/node@20.10.6): + /@microsoft/api-extractor@7.39.0(@types/node@20.10.7): resolution: {integrity: sha512-PuXxzadgnvp+wdeZFPonssRAj/EW4Gm4s75TXzPk09h3wJ8RS3x7typf95B4vwZRrPTQBGopdUl+/vHvlPdAcg==} hasBin: true dependencies: - '@microsoft/api-extractor-model': 7.28.3(@types/node@20.10.6) + '@microsoft/api-extractor-model': 7.28.3(@types/node@20.10.7) '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 3.62.0(@types/node@20.10.6) + '@rushstack/node-core-library': 3.62.0(@types/node@20.10.7) '@rushstack/rig-package': 0.5.1 '@rushstack/ts-command-line': 4.17.1 colors: 1.2.5 @@ -3889,16 +3912,16 @@ packages: /@radix-ui/number@1.0.1: resolution: {integrity: sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==} dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 dev: true /@radix-ui/primitive@1.0.1: resolution: {integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==} dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 dev: true - /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==} peerDependencies: '@types/react': '*' @@ -3911,15 +3934,15 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.46 + '@babel/runtime': 7.23.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==} peerDependencies: '@types/react': '*' @@ -3932,18 +3955,18 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.46)(react@18.2.0) - '@types/react': 18.2.46 + '@babel/runtime': 7.23.7 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.46)(react@18.2.0): + /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} peerDependencies: '@types/react': '*' @@ -3952,12 +3975,12 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.6 - '@types/react': 18.2.46 + '@babel/runtime': 7.23.7 + '@types/react': 18.2.47 react: 18.2.0 dev: true - /@radix-ui/react-context@1.0.1(@types/react@18.2.46)(react@18.2.0): + /@radix-ui/react-context@1.0.1(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} peerDependencies: '@types/react': '*' @@ -3966,12 +3989,12 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.6 - '@types/react': 18.2.46 + '@babel/runtime': 7.23.7 + '@types/react': 18.2.47 react: 18.2.0 dev: true - /@radix-ui/react-direction@1.0.1(@types/react@18.2.46)(react@18.2.0): + /@radix-ui/react-direction@1.0.1(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==} peerDependencies: '@types/react': '*' @@ -3980,12 +4003,12 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.6 - '@types/react': 18.2.46 + '@babel/runtime': 7.23.7 + '@types/react': 18.2.47 react: 18.2.0 dev: true - /@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg==} peerDependencies: '@types/react': '*' @@ -3998,19 +4021,19 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.46)(react@18.2.0) - '@types/react': 18.2.46 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.46)(react@18.2.0): + /@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==} peerDependencies: '@types/react': '*' @@ -4019,12 +4042,12 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.6 - '@types/react': 18.2.46 + '@babel/runtime': 7.23.7 + '@types/react': 18.2.47 react: 18.2.0 dev: true - /@radix-ui/react-focus-scope@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-focus-scope@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-upXdPfqI4islj2CslyfUBNlaJCPybbqRHAi1KER7Isel9Q2AtSJ0zRBZv8mWQiFXD2nyAJ4BhC3yXgZ6kMBSrQ==} peerDependencies: '@types/react': '*' @@ -4037,17 +4060,17 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@types/react': 18.2.46 + '@babel/runtime': 7.23.7 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-id@1.0.1(@types/react@18.2.46)(react@18.2.0): + /@radix-ui/react-id@1.0.1(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} peerDependencies: '@types/react': '*' @@ -4056,13 +4079,13 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@types/react': 18.2.46 + '@babel/runtime': 7.23.7 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 react: 18.2.0 dev: true - /@radix-ui/react-popper@1.1.2(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-popper@1.1.2(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-1CnGGfFi/bbqtJZZ0P/NQY20xdG3E0LALJaLUEoKwPLwl6PPPfbeiCqMVQnhoFRAxjJj4RpBRJzDmUgsex2tSg==} peerDependencies: '@types/react': '*' @@ -4075,24 +4098,24 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.6 - '@floating-ui/react-dom': 2.0.4(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.46)(react@18.2.0) + '@babel/runtime': 7.23.7 + '@floating-ui/react-dom': 2.0.5(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.47)(react@18.2.0) '@radix-ui/rect': 1.0.1 - '@types/react': 18.2.46 + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-portal@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-portal@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA==} peerDependencies: '@types/react': '*' @@ -4105,15 +4128,15 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.46 + '@babel/runtime': 7.23.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} peerDependencies: '@types/react': '*' @@ -4126,15 +4149,15 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.46)(react@18.2.0) - '@types/react': 18.2.46 + '@babel/runtime': 7.23.7 + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==} peerDependencies: '@types/react': '*' @@ -4147,23 +4170,23 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@types/react': 18.2.46 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-select@1.2.2(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-select@1.2.2(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-zI7McXr8fNaSrUY9mZe4x/HC0jTLY9fWNhO1oLWYMQGDXuV4UCivIGTxwioSzO0ZCYX9iSLyWmAh/1TOmX3Cnw==} peerDependencies: '@types/react': '*' @@ -4176,35 +4199,35 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-popper': 1.1.2(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.46 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-popper': 1.1.2(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 aria-hidden: 1.2.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.2.46)(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.47)(react@18.2.0) dev: true - /@radix-ui/react-separator@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-separator@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw==} peerDependencies: '@types/react': '*' @@ -4217,15 +4240,15 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.46 + '@babel/runtime': 7.23.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-slot@1.0.2(@types/react@18.2.46)(react@18.2.0): + /@radix-ui/react-slot@1.0.2(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} peerDependencies: '@types/react': '*' @@ -4234,13 +4257,13 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@types/react': 18.2.46 + '@babel/runtime': 7.23.7 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 react: 18.2.0 dev: true - /@radix-ui/react-toggle-group@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-toggle-group@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Uaj/M/cMyiyT9Bx6fOZO0SAG4Cls0GptBWiBmBxofmDbNVnYYoyRWj/2M/6VCi/7qcXFWnHhRUfdfZFvvkuu8A==} peerDependencies: '@types/react': '*' @@ -4253,21 +4276,21 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-context': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-toggle': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@types/react': 18.2.46 + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-toggle': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-toggle@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-toggle@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Pkqg3+Bc98ftZGsl60CLANXQBBQ4W3mTFS9EJvNxKMZ7magklKV69/id1mlAlOFDDfHvlCms0fx8fA4CMKDJHg==} peerDependencies: '@types/react': '*' @@ -4280,17 +4303,17 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@types/react': 18.2.46 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-toolbar@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-toolbar@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-tBgmM/O7a07xbaEkYJWYTXkIdU/1pW4/KZORR43toC/4XWyBCURK0ei9kMUdp+gTPPKBgYLxXmRSH1EVcIDp8Q==} peerDependencies: '@types/react': '*' @@ -4303,21 +4326,21 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-context': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-separator': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-toggle-group': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.46 + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-separator': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-toggle-group': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.46)(react@18.2.0): + /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} peerDependencies: '@types/react': '*' @@ -4326,12 +4349,12 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.6 - '@types/react': 18.2.46 + '@babel/runtime': 7.23.7 + '@types/react': 18.2.47 react: 18.2.0 dev: true - /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.46)(react@18.2.0): + /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} peerDependencies: '@types/react': '*' @@ -4340,13 +4363,13 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@types/react': 18.2.46 + '@babel/runtime': 7.23.7 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 react: 18.2.0 dev: true - /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.46)(react@18.2.0): + /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} peerDependencies: '@types/react': '*' @@ -4355,13 +4378,13 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@types/react': 18.2.46 + '@babel/runtime': 7.23.7 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 react: 18.2.0 dev: true - /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.46)(react@18.2.0): + /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} peerDependencies: '@types/react': '*' @@ -4370,12 +4393,12 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.6 - '@types/react': 18.2.46 + '@babel/runtime': 7.23.7 + '@types/react': 18.2.47 react: 18.2.0 dev: true - /@radix-ui/react-use-previous@1.0.1(@types/react@18.2.46)(react@18.2.0): + /@radix-ui/react-use-previous@1.0.1(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==} peerDependencies: '@types/react': '*' @@ -4384,12 +4407,12 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.6 - '@types/react': 18.2.46 + '@babel/runtime': 7.23.7 + '@types/react': 18.2.47 react: 18.2.0 dev: true - /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.46)(react@18.2.0): + /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==} peerDependencies: '@types/react': '*' @@ -4398,13 +4421,13 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@radix-ui/rect': 1.0.1 - '@types/react': 18.2.46 + '@types/react': 18.2.47 react: 18.2.0 dev: true - /@radix-ui/react-use-size@1.0.1(@types/react@18.2.46)(react@18.2.0): + /@radix-ui/react-use-size@1.0.1(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} peerDependencies: '@types/react': '*' @@ -4413,13 +4436,13 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.46)(react@18.2.0) - '@types/react': 18.2.46 + '@babel/runtime': 7.23.7 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 react: 18.2.0 dev: true - /@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==} peerDependencies: '@types/react': '*' @@ -4432,9 +4455,9 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.46 + '@babel/runtime': 7.23.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -4443,42 +4466,42 @@ packages: /@radix-ui/rect@1.0.1: resolution: {integrity: sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==} dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 dev: true - /@reactflow/background@11.3.6(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): + /@reactflow/background@11.3.6(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-06FPlSUOOMALEEs+2PqPAbpqmL7WDjrkbG2UsDr2d6mbcDDhHiV4tu9FYoz44SQvXo7ma9VRotlsaR4OiRcYsg==} peerDependencies: react: '>=17' react-dom: '>=17' dependencies: - '@reactflow/core': 11.10.1(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/core': 11.10.1(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) classcat: 5.0.4 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - zustand: 4.4.7(@types/react@18.2.46)(react@18.2.0) + zustand: 4.4.7(@types/react@18.2.47)(react@18.2.0) transitivePeerDependencies: - '@types/react' - immer dev: false - /@reactflow/controls@11.2.6(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): + /@reactflow/controls@11.2.6(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-4QHT92/ACVlZkvV+Hq44bAPV8WbMhkJl+/J0EbXcqQ1+an7cWJsF84eeelJw7R5J76RoaSSpKdsWsL2v7HAVlw==} peerDependencies: react: '>=17' react-dom: '>=17' dependencies: - '@reactflow/core': 11.10.1(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/core': 11.10.1(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) classcat: 5.0.4 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - zustand: 4.4.7(@types/react@18.2.46)(react@18.2.0) + zustand: 4.4.7(@types/react@18.2.47)(react@18.2.0) transitivePeerDependencies: - '@types/react' - immer dev: false - /@reactflow/core@11.10.1(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): + /@reactflow/core@11.10.1(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-GIh3usY1W3eVobx//OO9+Cwm+5evQBBdPGxDaeXwm25UqPMWRI240nXQA5F/5gL5Mwpf0DUC7DR2EmrKNQy+Rw==} peerDependencies: react: '>=17' @@ -4494,19 +4517,19 @@ packages: d3-zoom: 3.0.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - zustand: 4.4.7(@types/react@18.2.46)(react@18.2.0) + zustand: 4.4.7(@types/react@18.2.47)(react@18.2.0) transitivePeerDependencies: - '@types/react' - immer dev: false - /@reactflow/minimap@11.7.6(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): + /@reactflow/minimap@11.7.6(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-kJEtyeQkTZYViLGebVWHVUJROMAGcvejvT+iX4DqKnFb5yK8E8LWlXQpRx2FrL9gDy80mJJaciy7IxnnQKE1bg==} peerDependencies: react: '>=17' react-dom: '>=17' dependencies: - '@reactflow/core': 11.10.1(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/core': 11.10.1(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) '@types/d3-selection': 3.0.10 '@types/d3-zoom': 3.0.8 classcat: 5.0.4 @@ -4514,41 +4537,41 @@ packages: d3-zoom: 3.0.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - zustand: 4.4.7(@types/react@18.2.46)(react@18.2.0) + zustand: 4.4.7(@types/react@18.2.47)(react@18.2.0) transitivePeerDependencies: - '@types/react' - immer dev: false - /@reactflow/node-resizer@2.2.6(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): + /@reactflow/node-resizer@2.2.6(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-1Xb6q97uP7hRBLpog9sRCNfnsHdDgFRGEiU+lQqGgPEAeYwl4nRjWa/sXwH6ajniKxBhGEvrdzOgEFn6CRMcpQ==} peerDependencies: react: '>=17' react-dom: '>=17' dependencies: - '@reactflow/core': 11.10.1(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/core': 11.10.1(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) classcat: 5.0.4 d3-drag: 3.0.0 d3-selection: 3.0.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - zustand: 4.4.7(@types/react@18.2.46)(react@18.2.0) + zustand: 4.4.7(@types/react@18.2.47)(react@18.2.0) transitivePeerDependencies: - '@types/react' - immer dev: false - /@reactflow/node-toolbar@1.3.6(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): + /@reactflow/node-toolbar@1.3.6(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-JXDEuZ0wKjZ8z7qK2bIst0eZPzNyVEsiHL0e93EyuqT4fA9icoyE0fLq2ryNOOp7MXgId1h7LusnH6ta45F0yQ==} peerDependencies: react: '>=17' react-dom: '>=17' dependencies: - '@reactflow/core': 11.10.1(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/core': 11.10.1(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) classcat: 5.0.4 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - zustand: 4.4.7(@types/react@18.2.46)(react@18.2.0) + zustand: 4.4.7(@types/react@18.2.47)(react@18.2.0) transitivePeerDependencies: - '@types/react' - immer @@ -4567,7 +4590,7 @@ packages: dependencies: immer: 10.0.3 react: 18.2.0 - react-redux: 9.0.4(@types/react@18.2.46)(react@18.2.0)(redux@5.0.1) + react-redux: 9.0.4(@types/react@18.2.47)(react@18.2.0)(redux@5.0.1) redux: 5.0.1 redux-thunk: 3.1.0(redux@5.0.1) reselect: 5.0.1(patch_hash=kvbgwzjyy4x4fnh7znyocvb75q) @@ -4604,111 +4627,111 @@ packages: picomatch: 2.3.1 dev: true - /@rollup/rollup-android-arm-eabi@4.9.2: - resolution: {integrity: sha512-RKzxFxBHq9ysZ83fn8Iduv3A283K7zPPYuhL/z9CQuyFrjwpErJx0h4aeb/bnJ+q29GRLgJpY66ceQ/Wcsn3wA==} + /@rollup/rollup-android-arm-eabi@4.9.4: + resolution: {integrity: sha512-ub/SN3yWqIv5CWiAZPHVS1DloyZsJbtXmX4HxUTIpS0BHm9pW5iYBo2mIZi+hE3AeiTzHz33blwSnhdUo+9NpA==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.9.2: - resolution: {integrity: sha512-yZ+MUbnwf3SHNWQKJyWh88ii2HbuHCFQnAYTeeO1Nb8SyEiWASEi5dQUygt3ClHWtA9My9RQAYkjvrsZ0WK8Xg==} + /@rollup/rollup-android-arm64@4.9.4: + resolution: {integrity: sha512-ehcBrOR5XTl0W0t2WxfTyHCR/3Cq2jfb+I4W+Ch8Y9b5G+vbAecVv0Fx/J1QKktOrgUYsIKxWAKgIpvw56IFNA==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.9.2: - resolution: {integrity: sha512-vqJ/pAUh95FLc/G/3+xPqlSBgilPnauVf2EXOQCZzhZJCXDXt/5A8mH/OzU6iWhb3CNk5hPJrh8pqJUPldN5zw==} + /@rollup/rollup-darwin-arm64@4.9.4: + resolution: {integrity: sha512-1fzh1lWExwSTWy8vJPnNbNM02WZDS8AW3McEOb7wW+nPChLKf3WG2aG7fhaUmfX5FKw9zhsF5+MBwArGyNM7NA==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.9.2: - resolution: {integrity: sha512-otPHsN5LlvedOprd3SdfrRNhOahhVBwJpepVKUN58L0RnC29vOAej1vMEaVU6DadnpjivVsNTM5eNt0CcwTahw==} + /@rollup/rollup-darwin-x64@4.9.4: + resolution: {integrity: sha512-Gc6cukkF38RcYQ6uPdiXi70JB0f29CwcQ7+r4QpfNpQFVHXRd0DfWFidoGxjSx1DwOETM97JPz1RXL5ISSB0pA==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.9.2: - resolution: {integrity: sha512-ewG5yJSp+zYKBYQLbd1CUA7b1lSfIdo9zJShNTyc2ZP1rcPrqyZcNlsHgs7v1zhgfdS+kW0p5frc0aVqhZCiYQ==} + /@rollup/rollup-linux-arm-gnueabihf@4.9.4: + resolution: {integrity: sha512-g21RTeFzoTl8GxosHbnQZ0/JkuFIB13C3T7Y0HtKzOXmoHhewLbVTFBQZu+z5m9STH6FZ7L/oPgU4Nm5ErN2fw==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.9.2: - resolution: {integrity: sha512-pL6QtV26W52aCWTG1IuFV3FMPL1m4wbsRG+qijIvgFO/VBsiXJjDPE/uiMdHBAO6YcpV4KvpKtd0v3WFbaxBtg==} + /@rollup/rollup-linux-arm64-gnu@4.9.4: + resolution: {integrity: sha512-TVYVWD/SYwWzGGnbfTkrNpdE4HON46orgMNHCivlXmlsSGQOx/OHHYiQcMIOx38/GWgwr/po2LBn7wypkWw/Mg==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.9.2: - resolution: {integrity: sha512-On+cc5EpOaTwPSNetHXBuqylDW+765G/oqB9xGmWU3npEhCh8xu0xqHGUA+4xwZLqBbIZNcBlKSIYfkBm6ko7g==} + /@rollup/rollup-linux-arm64-musl@4.9.4: + resolution: {integrity: sha512-XcKvuendwizYYhFxpvQ3xVpzje2HHImzg33wL9zvxtj77HvPStbSGI9czrdbfrf8DGMcNNReH9pVZv8qejAQ5A==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.9.2: - resolution: {integrity: sha512-Wnx/IVMSZ31D/cO9HSsU46FjrPWHqtdF8+0eyZ1zIB5a6hXaZXghUKpRrC4D5DcRTZOjml2oBhXoqfGYyXKipw==} + /@rollup/rollup-linux-riscv64-gnu@4.9.4: + resolution: {integrity: sha512-LFHS/8Q+I9YA0yVETyjonMJ3UA+DczeBd/MqNEzsGSTdNvSJa1OJZcSH8GiXLvcizgp9AlHs2walqRcqzjOi3A==} cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.9.2: - resolution: {integrity: sha512-ym5x1cj4mUAMBummxxRkI4pG5Vht1QMsJexwGP8547TZ0sox9fCLDHw9KCH9c1FO5d9GopvkaJsBIOkTKxksdw==} + /@rollup/rollup-linux-x64-gnu@4.9.4: + resolution: {integrity: sha512-dIYgo+j1+yfy81i0YVU5KnQrIJZE8ERomx17ReU4GREjGtDW4X+nvkBak2xAUpyqLs4eleDSj3RrV72fQos7zw==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.9.2: - resolution: {integrity: sha512-m0hYELHGXdYx64D6IDDg/1vOJEaiV8f1G/iO+tejvRCJNSwK4jJ15e38JQy5Q6dGkn1M/9KcyEOwqmlZ2kqaZg==} + /@rollup/rollup-linux-x64-musl@4.9.4: + resolution: {integrity: sha512-RoaYxjdHQ5TPjaPrLsfKqR3pakMr3JGqZ+jZM0zP2IkDtsGa4CqYaWSfQmZVgFUCgLrTnzX+cnHS3nfl+kB6ZQ==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.9.2: - resolution: {integrity: sha512-x1CWburlbN5JjG+juenuNa4KdedBdXLjZMp56nHFSHTOsb/MI2DYiGzLtRGHNMyydPGffGId+VgjOMrcltOksA==} + /@rollup/rollup-win32-arm64-msvc@4.9.4: + resolution: {integrity: sha512-T8Q3XHV+Jjf5e49B4EAaLKV74BbX7/qYBRQ8Wop/+TyyU0k+vSjiLVSHNWdVd1goMjZcbhDmYZUYW5RFqkBNHQ==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.9.2: - resolution: {integrity: sha512-VVzCB5yXR1QlfsH1Xw1zdzQ4Pxuzv+CPr5qpElpKhVxlxD3CRdfubAG9mJROl6/dmj5gVYDDWk8sC+j9BI9/kQ==} + /@rollup/rollup-win32-ia32-msvc@4.9.4: + resolution: {integrity: sha512-z+JQ7JirDUHAsMecVydnBPWLwJjbppU+7LZjffGf+Jvrxq+dVjIE7By163Sc9DKc3ADSU50qPVw0KonBS+a+HQ==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.9.2: - resolution: {integrity: sha512-SYRedJi+mweatroB+6TTnJYLts0L0bosg531xnQWtklOI6dezEagx4Q0qDyvRdK+qgdA3YZpjjGuPFtxBmddBA==} + /@rollup/rollup-win32-x64-msvc@4.9.4: + resolution: {integrity: sha512-LfdGXCV9rdEify1oxlN9eamvDSjv9md9ZVMAbNHA87xqIfFCxImxan9qZ8+Un54iK2nnqPlbnSi4R54ONtbWBw==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /@rushstack/node-core-library@3.62.0(@types/node@20.10.6): + /@rushstack/node-core-library@3.62.0(@types/node@20.10.7): resolution: {integrity: sha512-88aJn2h8UpSvdwuDXBv1/v1heM6GnBf3RjEy6ZPP7UnzHNCqOHA2Ut+ScYUbXcqIdfew9JlTAe3g+cnX9xQ/Aw==} peerDependencies: '@types/node': '*' @@ -4716,7 +4739,7 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 20.10.6 + '@types/node': 20.10.7 colors: 1.2.5 fs-extra: 7.0.1 import-lazy: 4.0.0 @@ -4750,10 +4773,10 @@ packages: resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==} dev: false - /@storybook/addon-actions@7.6.6: - resolution: {integrity: sha512-mLJip9Evb2Chj7ymKbpaybe5NgDy3Du7oSWeURPy/0qXJ2cBqHWnhZ8CTK2DasrstsUhQSJaZVXHhaENT+fn+g==} + /@storybook/addon-actions@7.6.7: + resolution: {integrity: sha512-+6EZvhIeKEqG/RNsU3R5DxOrd60BL5GEvmzE2w60s2eKaNNxtyilDjiO1g4z2s2zDNyr7JL/Ft03pJ0Jgo0lew==} dependencies: - '@storybook/core-events': 7.6.6 + '@storybook/core-events': 7.6.7 '@storybook/global': 5.0.0 '@types/uuid': 9.0.7 dequal: 2.0.3 @@ -4761,18 +4784,18 @@ packages: uuid: 9.0.1 dev: true - /@storybook/addon-backgrounds@7.6.6: - resolution: {integrity: sha512-w5dZ/0cOe55M2G/Lx9f+Ptk4txUPb+Ng+KqEvTaTNqHoh0Xw4QxEn/ciJwmh1u1g3aMZsOgOvwPwug7ykmLgsA==} + /@storybook/addon-backgrounds@7.6.7: + resolution: {integrity: sha512-55sBy1YUqponAVe+qL16qtWxdf63vHEnIoqFyHEwGpk7K9IhFA1BmdSpFr5VnWEwXeJXKj30db78frh2LUdk3Q==} dependencies: '@storybook/global': 5.0.0 memoizerific: 1.11.3 ts-dedent: 2.2.0 dev: true - /@storybook/addon-controls@7.6.6(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-VAXXfPLi1M3RXhBf3uIBZ2hrD9UPDe7yvXHIlCzgj1HIJELODCFyUc+RtvN0mPc/nnlEfzhGfJtenZou5LYwIw==} + /@storybook/addon-controls@7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-DJ3gfvcdCgqi7AQxu83vx0AEUKiuJrNcSATfWV3Jqi8dH6fYO2yqpemHEeWOEy+DAHxIOaqLKwb1QjIBj+vSRQ==} dependencies: - '@storybook/blocks': 7.6.6(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) + '@storybook/blocks': 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) lodash: 4.17.21 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -4784,27 +4807,27 @@ packages: - supports-color dev: true - /@storybook/addon-docs@7.6.6(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-l4gtoNTn1wHE11x44te1cDkqfm+/w+eNonHe56bwgSqETclS5z18wvM9bQZF32G6C9fpSefaJW3cxVvcuJL1fg==} + /@storybook/addon-docs@7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-2dfajNhweofJ3LxjGO83UE5sBMvKtJB0Agj7q8mMtK/9PUCUcbvsFSyZnO/s6X1zAjSn5ZrirbSoTXU4IqxwSA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: '@jest/transform': 29.7.0 '@mdx-js/react': 2.3.0(react@18.2.0) - '@storybook/blocks': 7.6.6(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@storybook/client-logger': 7.6.6 - '@storybook/components': 7.6.6(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@storybook/csf-plugin': 7.6.6 - '@storybook/csf-tools': 7.6.6 + '@storybook/blocks': 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@storybook/client-logger': 7.6.7 + '@storybook/components': 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@storybook/csf-plugin': 7.6.7 + '@storybook/csf-tools': 7.6.7 '@storybook/global': 5.0.0 '@storybook/mdx2-csf': 1.1.0 - '@storybook/node-logger': 7.6.6 - '@storybook/postinstall': 7.6.6 - '@storybook/preview-api': 7.6.6 - '@storybook/react-dom-shim': 7.6.6(react-dom@18.2.0)(react@18.2.0) - '@storybook/theming': 7.6.6(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.6.6 + '@storybook/node-logger': 7.6.7 + '@storybook/postinstall': 7.6.7 + '@storybook/preview-api': 7.6.7 + '@storybook/react-dom-shim': 7.6.7(react-dom@18.2.0)(react@18.2.0) + '@storybook/theming': 7.6.7(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.6.7 fs-extra: 11.2.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -4818,25 +4841,25 @@ packages: - supports-color dev: true - /@storybook/addon-essentials@7.6.6(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-OQ8A6r06mg/HvyIk/j2Gt9DK5Qtqgtwq2Ydm5IgVW6gZsuRnv1FAeUG6okf8oXowAzpYoHdsDmCVwNOAGWGO7w==} + /@storybook/addon-essentials@7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-nNLMrpIvc04z4XCA+kval/44eKAFJlUJeeL2pxwP7F/PSzjWe5BXv1bQHOiw8inRO5II0PzqwWnVCI9jsj7K5A==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@storybook/addon-actions': 7.6.6 - '@storybook/addon-backgrounds': 7.6.6 - '@storybook/addon-controls': 7.6.6(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@storybook/addon-docs': 7.6.6(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@storybook/addon-highlight': 7.6.6 - '@storybook/addon-measure': 7.6.6 - '@storybook/addon-outline': 7.6.6 - '@storybook/addon-toolbars': 7.6.6 - '@storybook/addon-viewport': 7.6.6 - '@storybook/core-common': 7.6.6 - '@storybook/manager-api': 7.6.6(react-dom@18.2.0)(react@18.2.0) - '@storybook/node-logger': 7.6.6 - '@storybook/preview-api': 7.6.6 + '@storybook/addon-actions': 7.6.7 + '@storybook/addon-backgrounds': 7.6.7 + '@storybook/addon-controls': 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@storybook/addon-docs': 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@storybook/addon-highlight': 7.6.7 + '@storybook/addon-measure': 7.6.7 + '@storybook/addon-outline': 7.6.7 + '@storybook/addon-toolbars': 7.6.7 + '@storybook/addon-viewport': 7.6.7 + '@storybook/core-common': 7.6.7 + '@storybook/manager-api': 7.6.7(react-dom@18.2.0)(react@18.2.0) + '@storybook/node-logger': 7.6.7 + '@storybook/preview-api': 7.6.7 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) ts-dedent: 2.2.0 @@ -4847,24 +4870,24 @@ packages: - supports-color dev: true - /@storybook/addon-highlight@7.6.6: - resolution: {integrity: sha512-B85UaCts2uMpa0yHBSnupzy2WCdW4vfB+lfaBug9beyOyZQdel07BumblE0KwSJftYgdCNPUZ5MRlqEDzMLTWQ==} + /@storybook/addon-highlight@7.6.7: + resolution: {integrity: sha512-2F/tJdn45d4zrvf/cmE1vsczl99wK8+I+kkj0G7jLsrJR0w1zTgbgjy6T9j86HBTBvWcnysNFNIRWPAOh5Wdbw==} dependencies: '@storybook/global': 5.0.0 dev: true - /@storybook/addon-interactions@7.6.6: - resolution: {integrity: sha512-EJWx6ciJPgv1c75tB/M4smWDpPDGM/L24v4DZxGpl1eV3oQOSQCKImG5btwoy6QcIi68ozroUHdUti/kzCKS1w==} + /@storybook/addon-interactions@7.6.7: + resolution: {integrity: sha512-iXE2m9i/1D2baYkRgoYe9zwcAjtBOxBfW4o2AS0pzBNPN7elpP9C6mIa0ScpSltawBfIjfe6iQRXAMXOsIIh3Q==} dependencies: '@storybook/global': 5.0.0 - '@storybook/types': 7.6.6 + '@storybook/types': 7.6.7 jest-mock: 27.5.1 polished: 4.2.2 ts-dedent: 2.2.0 dev: true - /@storybook/addon-links@7.6.6(react@18.2.0): - resolution: {integrity: sha512-NEcqOz6zZ1dJnCcVmYdaQTAMAGIb8NFAZGnr9DU0q+t4B1fTaWUgqLtBM5V6YqIrXGSC/oKLpjWUkS5UpswlHA==} + /@storybook/addon-links@7.6.7(react@18.2.0): + resolution: {integrity: sha512-O5LekPslkAIDtXC/TCIyg/3c0htBxDYwb/s+NrZUPTNWJsngxvTAwp6aIk6aVSeSCFUMWvBFcVsuV3hv+ndK6w==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 peerDependenciesMeta: @@ -4877,60 +4900,60 @@ packages: ts-dedent: 2.2.0 dev: true - /@storybook/addon-measure@7.6.6: - resolution: {integrity: sha512-b4hyCudlhsbYN1We8pfZHZJ0i0sfC8+GJvrqZQqdSqGicUmA00mggY1GE+gEoHziQ5/4auxFRS3HfUgaQWUNjg==} + /@storybook/addon-measure@7.6.7: + resolution: {integrity: sha512-t1RnnNO4Xzgnsxu63FlZwsCTF0+9jKxr44NiJAUOxW9ppbCvs/JfSDOOvcDRtPWyjgnyzexNUUctMfxvLrU01A==} dependencies: '@storybook/global': 5.0.0 tiny-invariant: 1.3.1 dev: true - /@storybook/addon-outline@7.6.6: - resolution: {integrity: sha512-BMjpjzNEnN8LC7JK92WCXyWgmJwAaEQjRDinr7eD4cBt4Uas5kbciw1g8PtTnh0GbYUsImKao0nzakSVObAdzg==} + /@storybook/addon-outline@7.6.7: + resolution: {integrity: sha512-gu2y46ijjMkXlxy1f8Cctgjw5b5y8vSIqNAYlrs5/Qy+hJAWyU6lj2PFGOCCUG4L+F45fAjwWAin6qz43+WnRQ==} dependencies: '@storybook/global': 5.0.0 ts-dedent: 2.2.0 dev: true - /@storybook/addon-storysource@7.6.6: - resolution: {integrity: sha512-UwuPrfvnCksAfOoMk9dIUD0NBQgMMog3I83mdU/KtwvRwAMdz6v/99m9zg4xOPJ4MCfcCNy5WMoeJwjUul5Iug==} + /@storybook/addon-storysource@7.6.7: + resolution: {integrity: sha512-YFC6rgbyXzlxifKDhhDyuJhu2I8HDW2Wc9IltFBhKdbu6LwlWCvYX6+OnIbRebwNH7vjbvHa8XopSDHroV4yIw==} dependencies: - '@storybook/source-loader': 7.6.6 + '@storybook/source-loader': 7.6.7 estraverse: 5.3.0 tiny-invariant: 1.3.1 dev: true - /@storybook/addon-toolbars@7.6.6: - resolution: {integrity: sha512-sQm5+FcoSMSGn1ioXHoukO6OhUlcNZil0/fonAY50uvp6Z4DyI0FTU7BKIm/NoMqAExQk3sZRfAC/nZZ9Epb0Q==} + /@storybook/addon-toolbars@7.6.7: + resolution: {integrity: sha512-vT+YMzw8yVwndhJglI0XtELfXWq1M0HEy5ST3XPzbjmsJ54LgTf1b29UMkh0E/05qBQNFCcbT9B/tLxqWezxlg==} dev: true - /@storybook/addon-viewport@7.6.6: - resolution: {integrity: sha512-/ijbzDf1Iq30LvZW2NE8cO4TeHusw0N+jTDUK1+vhxGNMFo9DUIgRkAi6VpFEfS0aQ5d82523WSWzVso7b/Hmg==} + /@storybook/addon-viewport@7.6.7: + resolution: {integrity: sha512-Q/BKjJaKzl4RWxH45K2iIXwkicj4ReVAUIpIyd7dPBb/Bx+hEDYZxR5dDg82AMkZdA71x5ttMnuDSuVpmWAE6g==} dependencies: memoizerific: 1.11.3 dev: true - /@storybook/blocks@7.6.6(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-QLqkiSNrtGnh8RK9ipD63jVAUenkRu+72xR31DViZWRV9V8G2hzky5E/RoZWPEx+DfmBIUJ7Tcef6cCRcxEj9A==} + /@storybook/blocks@7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-+QEvGQ0he/YvFS3lsZORJWxhQIyqcCDWsxbJxJiByePd+Z4my3q8xwtPhHW0TKRL0xUgNE/GnTfMMqJfevTuSw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@storybook/channels': 7.6.6 - '@storybook/client-logger': 7.6.6 - '@storybook/components': 7.6.6(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@storybook/core-events': 7.6.6 + '@storybook/channels': 7.6.7 + '@storybook/client-logger': 7.6.7 + '@storybook/components': 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@storybook/core-events': 7.6.7 '@storybook/csf': 0.1.2 - '@storybook/docs-tools': 7.6.6 + '@storybook/docs-tools': 7.6.7 '@storybook/global': 5.0.0 - '@storybook/manager-api': 7.6.6(react-dom@18.2.0)(react@18.2.0) - '@storybook/preview-api': 7.6.6 - '@storybook/theming': 7.6.6(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.6.6 + '@storybook/manager-api': 7.6.7(react-dom@18.2.0)(react@18.2.0) + '@storybook/preview-api': 7.6.7 + '@storybook/theming': 7.6.7(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.6.7 '@types/lodash': 4.14.202 color-convert: 2.0.1 dequal: 2.0.3 lodash: 4.17.21 - markdown-to-jsx: 7.3.2(react@18.2.0) + markdown-to-jsx: 7.4.0(react@18.2.0) memoizerific: 1.11.3 polished: 4.2.2 react: 18.2.0 @@ -4947,13 +4970,13 @@ packages: - supports-color dev: true - /@storybook/builder-manager@7.6.6: - resolution: {integrity: sha512-96vmtUqh016H2n80xhvBZU2w5flTOzY7S0nW9nfxbY4UY4b39WajgwJ5wpg8l0YmCwQTrxCwY9/VE2Pd6CCqPA==} + /@storybook/builder-manager@7.6.7: + resolution: {integrity: sha512-6HYpj6+g/qbDMvImVz/G/aANbkhppyBa1ozfHxLK7tRD79YvozCWmj2Z9umRekPv9VIeMxnI5EEzJXOsoMX5DQ==} dependencies: '@fal-works/esbuild-plugin-global-externals': 2.1.2 - '@storybook/core-common': 7.6.6 - '@storybook/manager': 7.6.6 - '@storybook/node-logger': 7.6.6 + '@storybook/core-common': 7.6.7 + '@storybook/manager': 7.6.7 + '@storybook/node-logger': 7.6.7 '@types/ejs': 3.1.5 '@types/find-cache-dir': 3.2.1 '@yarnpkg/esbuild-plugin-pnp': 3.0.0-rc.15(esbuild@0.18.20) @@ -4971,8 +4994,8 @@ packages: - supports-color dev: true - /@storybook/builder-vite@7.6.6(typescript@5.3.3)(vite@5.0.10): - resolution: {integrity: sha512-vDBHjsswnVScVgGHeIZ22R/LoRt5T1F62p5czusydBSxKGzma5Va4JHQJp4/IKXwiCZbXcua/Cs7VKtBLO+50A==} + /@storybook/builder-vite@7.6.7(typescript@5.3.3)(vite@5.0.11): + resolution: {integrity: sha512-Sv+0ROFU9k+mkvIPsPHC0lkKDzBeMpvfO9uFRl1RDSsXBfcPPZKNo5YK7U7fOhesH0BILzurGA+U/aaITMSZ9g==} peerDependencies: '@preact/preset-vite': '*' typescript: '>= 4.3.x' @@ -4986,14 +5009,14 @@ packages: vite-plugin-glimmerx: optional: true dependencies: - '@storybook/channels': 7.6.6 - '@storybook/client-logger': 7.6.6 - '@storybook/core-common': 7.6.6 - '@storybook/csf-plugin': 7.6.6 - '@storybook/node-logger': 7.6.6 - '@storybook/preview': 7.6.6 - '@storybook/preview-api': 7.6.6 - '@storybook/types': 7.6.6 + '@storybook/channels': 7.6.7 + '@storybook/client-logger': 7.6.7 + '@storybook/core-common': 7.6.7 + '@storybook/csf-plugin': 7.6.7 + '@storybook/node-logger': 7.6.7 + '@storybook/preview': 7.6.7 + '@storybook/preview-api': 7.6.7 + '@storybook/types': 7.6.7 '@types/find-cache-dir': 3.2.1 browser-assert: 1.2.1 es-module-lexer: 0.9.3 @@ -5003,39 +5026,39 @@ packages: magic-string: 0.30.5 rollup: 3.29.4 typescript: 5.3.3 - vite: 5.0.10(@types/node@20.10.6) + vite: 5.0.11(@types/node@20.10.7) transitivePeerDependencies: - encoding - supports-color dev: true - /@storybook/channels@7.6.6: - resolution: {integrity: sha512-vvo7fBe2WffPonNNOA7Xx7jcHAto8qJYlq+VMysfheXrsRRbhHl3WQOA18Vm8hV9txtqdqk0hwQiXOWvhYVpeQ==} + /@storybook/channels@7.6.7: + resolution: {integrity: sha512-u1hURhfQHHtZyRIDUENRCp+CRRm7IQfcjQaoWI06XCevQPuhVEtFUfXHjG+J74aA/JuuTLFUtqwNm1zGqbXTAQ==} dependencies: - '@storybook/client-logger': 7.6.6 - '@storybook/core-events': 7.6.6 + '@storybook/client-logger': 7.6.7 + '@storybook/core-events': 7.6.7 '@storybook/global': 5.0.0 qs: 6.11.2 telejson: 7.2.0 tiny-invariant: 1.3.1 dev: true - /@storybook/cli@7.6.6: - resolution: {integrity: sha512-FLmWrbmGOqe1VYwqyIWxU2lJcYPssORmSbSVVPw6OqQIXx3NrNBrmZDLncMwbVCDQ8eU54J1zb+MyDmSqMbVFg==} + /@storybook/cli@7.6.7: + resolution: {integrity: sha512-DwDWzkifBH17ry+n+d+u52Sv69dZQ+04ETJdDDzghcyAcKnFzrRNukj4tJ21cm+ZAU/r0fKR9d4Qpbogca9fAg==} hasBin: true dependencies: - '@babel/core': 7.23.6 - '@babel/preset-env': 7.23.6(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/preset-env': 7.23.7(@babel/core@7.23.7) '@babel/types': 7.23.6 '@ndelangen/get-tarball': 3.0.9 - '@storybook/codemod': 7.6.6 - '@storybook/core-common': 7.6.6 - '@storybook/core-events': 7.6.6 - '@storybook/core-server': 7.6.6 - '@storybook/csf-tools': 7.6.6 - '@storybook/node-logger': 7.6.6 - '@storybook/telemetry': 7.6.6 - '@storybook/types': 7.6.6 + '@storybook/codemod': 7.6.7 + '@storybook/core-common': 7.6.7 + '@storybook/core-events': 7.6.7 + '@storybook/core-server': 7.6.7 + '@storybook/csf-tools': 7.6.7 + '@storybook/node-logger': 7.6.7 + '@storybook/telemetry': 7.6.7 + '@storybook/types': 7.6.7 '@types/semver': 7.5.6 '@yarnpkg/fslib': 2.10.3 '@yarnpkg/libzip': 2.3.0 @@ -5052,7 +5075,7 @@ packages: get-port: 5.1.1 giget: 1.2.1 globby: 11.1.0 - jscodeshift: 0.15.1(@babel/preset-env@7.23.6) + jscodeshift: 0.15.1(@babel/preset-env@7.23.7) leven: 3.1.0 ora: 5.4.1 prettier: 2.8.8 @@ -5072,26 +5095,26 @@ packages: - utf-8-validate dev: true - /@storybook/client-logger@7.6.6: - resolution: {integrity: sha512-WEvVyuQR5oNF8jcMmGA13zDjxP/l46kOBBvB6JSc8toUdtLZ/kZWSnU0ioNM8+ECpFqXHjBcF2K6uSJOEb6YEg==} + /@storybook/client-logger@7.6.7: + resolution: {integrity: sha512-A16zpWgsa0gSdXMR9P3bWVdC9u/1B1oG4H7Z1+JhNzgnL3CdyOYO0qFSiAtNBso4nOjIAJVb6/AoBzdRhmSVQg==} dependencies: '@storybook/global': 5.0.0 dev: true - /@storybook/codemod@7.6.6: - resolution: {integrity: sha512-6QwW6T6ZgwwbTkEoZ7CAoX7lUUob7Sy7bRkMHhSjJe2++wEVFOYLvzHcLUJCupK59+WhmsJU9PpUMlXEKi40TQ==} + /@storybook/codemod@7.6.7: + resolution: {integrity: sha512-an2pD5OHqO7CE8Wb7JxjrDnpQgeoxB22MyOs8PPJ9Rvclhpjg+Ku9RogoObYm//zR4g406l7Ec8mTltUkVCEOA==} dependencies: - '@babel/core': 7.23.6 - '@babel/preset-env': 7.23.6(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/preset-env': 7.23.7(@babel/core@7.23.7) '@babel/types': 7.23.6 '@storybook/csf': 0.1.2 - '@storybook/csf-tools': 7.6.6 - '@storybook/node-logger': 7.6.6 - '@storybook/types': 7.6.6 + '@storybook/csf-tools': 7.6.7 + '@storybook/node-logger': 7.6.7 + '@storybook/types': 7.6.7 '@types/cross-spawn': 6.0.6 cross-spawn: 7.0.3 globby: 11.1.0 - jscodeshift: 0.15.1(@babel/preset-env@7.23.6) + jscodeshift: 0.15.1(@babel/preset-env@7.23.7) lodash: 4.17.21 prettier: 2.8.8 recast: 0.23.4 @@ -5099,19 +5122,19 @@ packages: - supports-color dev: true - /@storybook/components@7.6.6(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-FSfcRxdmV4+LJHjMk0eodGVnZdb2qrKKmbtsn0O/434z586zPA287/wJJsm4JS/Xr1WS9oTvU6mYMDChkcxgeQ==} + /@storybook/components@7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-1HN4p+MCI4Tx9VGZayZyqbW7SB7mXQLnS5fUbTE1gXaMYHpzFvcrRNROeV1LZPClJX6qx1jgE5ngZojhxGuxMA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@radix-ui/react-select': 1.2.2(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-toolbar': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@storybook/client-logger': 7.6.6 + '@radix-ui/react-select': 1.2.2(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-toolbar': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@storybook/client-logger': 7.6.7 '@storybook/csf': 0.1.2 '@storybook/global': 5.0.0 - '@storybook/theming': 7.6.6(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.6.6 + '@storybook/theming': 7.6.7(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.6.7 memoizerific: 1.11.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -5122,21 +5145,21 @@ packages: - '@types/react-dom' dev: true - /@storybook/core-client@7.6.6: - resolution: {integrity: sha512-P100aNf+WpvzlfULZp1NPd60/nxsppLmft2DdIyAx1j4QPMZvUJyJB+hdBMzTFiPEhIUncIMoIVf2R3UXC5DfA==} + /@storybook/core-client@7.6.7: + resolution: {integrity: sha512-ZQivyEzYsZok8vRj5Qan7LbiMUnO89rueWzTnZs4IS6JIaQtjoPI1rGVq+h6qOCM6tki478hic8FS+zwGQ6q+w==} dependencies: - '@storybook/client-logger': 7.6.6 - '@storybook/preview-api': 7.6.6 + '@storybook/client-logger': 7.6.7 + '@storybook/preview-api': 7.6.7 dev: true - /@storybook/core-common@7.6.6: - resolution: {integrity: sha512-DpbFSYw8LHuwpeU2ec5uWryxrSqslFJnWTfNA7AvpzCviWXkz4kq+YYrDee9XExF6OozNwILmG6m52SnraysBA==} + /@storybook/core-common@7.6.7: + resolution: {integrity: sha512-F1fJnauVSPQtAlpicbN/O4XW38Ai8kf/IoU0Hgm9gEwurIk6MF5hiVLsaTI/5GUbrepMl9d9J+iIL4lHAT8IyA==} dependencies: - '@storybook/core-events': 7.6.6 - '@storybook/node-logger': 7.6.6 - '@storybook/types': 7.6.6 + '@storybook/core-events': 7.6.7 + '@storybook/node-logger': 7.6.7 + '@storybook/types': 7.6.7 '@types/find-cache-dir': 3.2.1 - '@types/node': 18.19.4 + '@types/node': 18.19.5 '@types/node-fetch': 2.6.10 '@types/pretty-hrtime': 1.0.3 chalk: 4.1.2 @@ -5160,32 +5183,32 @@ packages: - supports-color dev: true - /@storybook/core-events@7.6.6: - resolution: {integrity: sha512-7+q9HiZiLxaQcwpaSLQrLdjHNHBoOoUY9ZcZXI9iNFSopOgb/ItDnzzlpv08NC7CbKae1hVKJM/t5aSTl7tCMw==} + /@storybook/core-events@7.6.7: + resolution: {integrity: sha512-KZ5d03c47pnr5/kY26pJtWq7WpmCPXLbgyjJZDSc+TTY153BdZksvlBXRHtqM1yj2UM6QsSyIuiJaADJNAbP2w==} dependencies: ts-dedent: 2.2.0 dev: true - /@storybook/core-server@7.6.6: - resolution: {integrity: sha512-QFVahaExgGtq9swBXgQAMUiCqpCcyVXOiKTIy1j+1uAhPVqhpCxBkkFoXruih5hbIMZyohE4mLPCAr/ivicoDg==} + /@storybook/core-server@7.6.7: + resolution: {integrity: sha512-elKRv/DNahNNkGcQY/FdOBrLPmZF0T0fwmAmbc4qqeAisjl+to9TO77zdo2ieaEHKyRwE3B3dOB4EXomdF4N/g==} dependencies: '@aw-web-design/x-default-browser': 1.4.126 '@discoveryjs/json-ext': 0.5.7 - '@storybook/builder-manager': 7.6.6 - '@storybook/channels': 7.6.6 - '@storybook/core-common': 7.6.6 - '@storybook/core-events': 7.6.6 + '@storybook/builder-manager': 7.6.7 + '@storybook/channels': 7.6.7 + '@storybook/core-common': 7.6.7 + '@storybook/core-events': 7.6.7 '@storybook/csf': 0.1.2 - '@storybook/csf-tools': 7.6.6 + '@storybook/csf-tools': 7.6.7 '@storybook/docs-mdx': 0.1.0 '@storybook/global': 5.0.0 - '@storybook/manager': 7.6.6 - '@storybook/node-logger': 7.6.6 - '@storybook/preview-api': 7.6.6 - '@storybook/telemetry': 7.6.6 - '@storybook/types': 7.6.6 + '@storybook/manager': 7.6.7 + '@storybook/node-logger': 7.6.7 + '@storybook/preview-api': 7.6.7 + '@storybook/telemetry': 7.6.7 + '@storybook/types': 7.6.7 '@types/detect-port': 1.3.5 - '@types/node': 18.19.4 + '@types/node': 18.19.5 '@types/pretty-hrtime': 1.0.3 '@types/semver': 7.5.6 better-opn: 3.0.2 @@ -5217,24 +5240,24 @@ packages: - utf-8-validate dev: true - /@storybook/csf-plugin@7.6.6: - resolution: {integrity: sha512-SqdffT14+XNpf+7vA29Elur28VArXtFv4cXMlsCbswbRuY+a0A8vYNwVIfCUy9u4WHTcQX1/tUkDAMh80lrVRQ==} + /@storybook/csf-plugin@7.6.7: + resolution: {integrity: sha512-YL7e6H4iVcsDI0UpgpdQX2IiGDrlbgaQMHQgDLWXmZyKxBcy0ONROAX5zoT1ml44EHkL60TMaG4f7SinviJCog==} dependencies: - '@storybook/csf-tools': 7.6.6 + '@storybook/csf-tools': 7.6.7 unplugin: 1.6.0 transitivePeerDependencies: - supports-color dev: true - /@storybook/csf-tools@7.6.6: - resolution: {integrity: sha512-VXOZCzfSVJL832u17pPhFu1x3PPaAN9d8VXNFX+t/2raga7tK3T7Qhe7lWfP7EZcrVvSCEEp0aMRz2EzzDGVtw==} + /@storybook/csf-tools@7.6.7: + resolution: {integrity: sha512-hyRbUGa2Uxvz3U09BjcOfMNf/5IYgRum1L6XszqK2O8tK9DGte1r6hArCIAcqiEmFMC40d0kalPzqu6WMNn7sg==} dependencies: '@babel/generator': 7.23.6 '@babel/parser': 7.23.6 - '@babel/traverse': 7.23.6 + '@babel/traverse': 7.23.7 '@babel/types': 7.23.6 '@storybook/csf': 0.1.2 - '@storybook/types': 7.6.6 + '@storybook/types': 7.6.7 fs-extra: 11.2.0 recast: 0.23.4 ts-dedent: 2.2.0 @@ -5258,12 +5281,12 @@ packages: resolution: {integrity: sha512-JDaBR9lwVY4eSH5W8EGHrhODjygPd6QImRbwjAuJNEnY0Vw4ie3bPkeGfnacB3OBW6u/agqPv2aRlR46JcAQLg==} dev: true - /@storybook/docs-tools@7.6.6: - resolution: {integrity: sha512-nc5ZjN2s8SC2PtsZoFf9Wm6gD8TcSlkYbF/mjtyLCGN+Fi+k5B5iudqoa65H19hwiLlzBdcnpQ8C89AiK33J9Q==} + /@storybook/docs-tools@7.6.7: + resolution: {integrity: sha512-enTO/xVjBqwUraGCYTwdyjMvug3OSAM7TPPUEJ3KPieJNwAzcYkww/qNDMIAR4S39zPMrkAmtS3STvVadlJz7g==} dependencies: - '@storybook/core-common': 7.6.6 - '@storybook/preview-api': 7.6.6 - '@storybook/types': 7.6.6 + '@storybook/core-common': 7.6.7 + '@storybook/preview-api': 7.6.7 + '@storybook/types': 7.6.7 '@types/doctrine': 0.0.3 assert: 2.1.0 doctrine: 3.0.0 @@ -5277,33 +5300,32 @@ packages: resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} dev: true - /@storybook/instrumenter@7.6.6: - resolution: {integrity: sha512-6ayPMM3wBv3zFPLO7FqJRD13w011iw2MC1sbDAPceQ7YIWs+gr0C2uEwAYF30VUi4qT/xy0erVGHe/eSDEJ8mg==} + /@storybook/instrumenter@7.6.7: + resolution: {integrity: sha512-Q4NstXZKCk62MkP7jgpg5CRFmhszg9QdoN8CwffuUGtjQRADhmeRHgP4usB87Sg6Tq9MLSopAEqUZxlKKYeeag==} dependencies: - '@storybook/channels': 7.6.6 - '@storybook/client-logger': 7.6.6 - '@storybook/core-events': 7.6.6 + '@storybook/channels': 7.6.7 + '@storybook/client-logger': 7.6.7 + '@storybook/core-events': 7.6.7 '@storybook/global': 5.0.0 - '@storybook/preview-api': 7.6.6 + '@storybook/preview-api': 7.6.7 '@vitest/utils': 0.34.7 util: 0.12.5 dev: true - /@storybook/manager-api@7.6.6(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-euRAbSZAUzHDt6z1Pq/g45N/RNqta9RaQAym18zt/oLWiYOIrkLmdf7kCuFYsmuA5XQBytiJqwkAD7uF1aLe0g==} + /@storybook/manager-api@7.6.7(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-3Wk/BvuGUlw/X05s57zZO7gJbzfUeE9Xe+CSIvuH7RY5jx9PYnNwqNlTXPXhJ5LPvwMthae7WJVn3SuBpbptoQ==} dependencies: - '@storybook/channels': 7.6.6 - '@storybook/client-logger': 7.6.6 - '@storybook/core-events': 7.6.6 + '@storybook/channels': 7.6.7 + '@storybook/client-logger': 7.6.7 + '@storybook/core-events': 7.6.7 '@storybook/csf': 0.1.2 '@storybook/global': 5.0.0 - '@storybook/router': 7.6.6 - '@storybook/theming': 7.6.6(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.6.6 + '@storybook/router': 7.6.7 + '@storybook/theming': 7.6.7(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.6.7 dequal: 2.0.3 lodash: 4.17.21 memoizerific: 1.11.3 - semver: 7.5.4 store2: 2.14.2 telejson: 7.2.0 ts-dedent: 2.2.0 @@ -5312,31 +5334,31 @@ packages: - react-dom dev: true - /@storybook/manager@7.6.6: - resolution: {integrity: sha512-Ga3LcSu/xxSyg+cLlO9AS8QjW+D667V+c9qQPmsFyU6qfFc6m6mVqcRLSmFVD5e7P/o0FL7STOf9jAKkDcW8xw==} + /@storybook/manager@7.6.7: + resolution: {integrity: sha512-ZCrkB2zEXogzdOcVzD242ZVm4tlHqrayotnI6iOn9uiun0Pgny0m2d7s9Zge6K2dTOO1vZiOHuA/Mr6nnIDjsA==} dev: true /@storybook/mdx2-csf@1.1.0: resolution: {integrity: sha512-TXJJd5RAKakWx4BtpwvSNdgTDkKM6RkXU8GK34S/LhidQ5Pjz3wcnqb0TxEkfhK/ztbP8nKHqXFwLfa2CYkvQw==} dev: true - /@storybook/node-logger@7.6.6: - resolution: {integrity: sha512-b2OF9GRNI01MlBlnDGS8S6/yOpBNl8eH/0ONafuMPzFEZs5PouHGsFflJvQwwcdVTknMjF5uVS2eSmnLZ8spvA==} + /@storybook/node-logger@7.6.7: + resolution: {integrity: sha512-XLih8MxylkpZG9+8tgp8sPGc2tldlWF+DpuAkUv6J3Mc81mPyc3cQKQWZ7Hb+m1LpRGqKV4wyOQj1rC+leVMoQ==} dev: true - /@storybook/postinstall@7.6.6: - resolution: {integrity: sha512-jamn7QNTJPZiu22nu25LqfSTJohugFhCu4b48yqP+pdMdkQ3qVd3NdDYhBlgkH/Btar+kppiJP1gRtoiJF761w==} + /@storybook/postinstall@7.6.7: + resolution: {integrity: sha512-mrpRmcwFd9FcvtHPXA9x6vOrHLVCKScZX/Xx2QPWgAvB3W6uzP8G+8QNb1u834iToxrWeuszUMB9UXZK4Qj5yg==} dev: true - /@storybook/preview-api@7.6.6: - resolution: {integrity: sha512-Bt6xIAR5yZ/JWc90X4BbLOA97iL65glZ1SOBgFFv2mHrdZ1lcdKhAlQr2aeJAf1mLvBtalPjvKzi9EuVY3FZ4w==} + /@storybook/preview-api@7.6.7: + resolution: {integrity: sha512-ja85ItrT6q2TeBQ6n0CNoRi1R6L8yF2kkis9hVeTQHpwLdZyHUTRqqR5WmhtLqqQXcofyasBPOeJV06wuOhgRQ==} dependencies: - '@storybook/channels': 7.6.6 - '@storybook/client-logger': 7.6.6 - '@storybook/core-events': 7.6.6 + '@storybook/channels': 7.6.7 + '@storybook/client-logger': 7.6.7 + '@storybook/core-events': 7.6.7 '@storybook/csf': 0.1.2 '@storybook/global': 5.0.0 - '@storybook/types': 7.6.6 + '@storybook/types': 7.6.7 '@types/qs': 6.9.11 dequal: 2.0.3 lodash: 4.17.21 @@ -5347,12 +5369,12 @@ packages: util-deprecate: 1.0.2 dev: true - /@storybook/preview@7.6.6: - resolution: {integrity: sha512-Rl+Pom2bNwzc0MdlbFALmvxsbCkbIwlpTZlRZZTh5Ah8JViV9htQgP9e8uwo3NZA2BhjbDLkmnZeloWxQnI5Ig==} + /@storybook/preview@7.6.7: + resolution: {integrity: sha512-/ddKIyT+6b8CKGJAma1wood4nwCAoi/E1olCqgpCmviMeUtAiMzgK0xzPwvq5Mxkz/cPeXVi8CQgaQZCa4yvNA==} dev: true - /@storybook/react-dom-shim@7.6.6(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-WWNlXtCVoBWXX/kLNulUeMgzmlAEHi2aBrdIv2jz0DScPf0YxeWAkWmgK7F0zMot9mdwYncr+pk1AILbTBJSyg==} + /@storybook/react-dom-shim@7.6.7(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-b/rmy/YzVrwP+ifyZG4yXVIdeFVdTbmziodHUlbrWiUNsqtTZZur9kqkKRUH/7ofji9MFe81nd0MRlcTNFomqg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -5361,24 +5383,24 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: true - /@storybook/react-vite@7.6.6(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(vite@5.0.10): - resolution: {integrity: sha512-76jH+rX0OhEwGraA2BphSu+19nKaSUnNw1Gp1zQ/UUX2FefZuI+6DI34LEzJNfq7T2kbGFzZgf1xDkL6RSwrXA==} + /@storybook/react-vite@7.6.7(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(vite@5.0.11): + resolution: {integrity: sha512-1cBpxVZ4vLO5rGbhTBNR2SjL+ZePCUAEY+I31tbORYFAoOKmlsNef4fRLnXJ9NYUAyjwZpUmbW0cIxxOFk7nGA==} engines: {node: '>=16'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 vite: ^3.0.0 || ^4.0.0 || ^5.0.0 dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.3.3)(vite@5.0.10) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.3.3)(vite@5.0.11) '@rollup/pluginutils': 5.1.0 - '@storybook/builder-vite': 7.6.6(typescript@5.3.3)(vite@5.0.10) - '@storybook/react': 7.6.6(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) - '@vitejs/plugin-react': 3.1.0(vite@5.0.10) + '@storybook/builder-vite': 7.6.7(typescript@5.3.3)(vite@5.0.11) + '@storybook/react': 7.6.7(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) + '@vitejs/plugin-react': 3.1.0(vite@5.0.11) magic-string: 0.30.5 react: 18.2.0 react-docgen: 7.0.1 react-dom: 18.2.0(react@18.2.0) - vite: 5.0.10(@types/node@20.10.6) + vite: 5.0.11(@types/node@20.10.7) transitivePeerDependencies: - '@preact/preset-vite' - encoding @@ -5388,8 +5410,8 @@ packages: - vite-plugin-glimmerx dev: true - /@storybook/react@7.6.6(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3): - resolution: {integrity: sha512-pE6GJ4hPGJIsX6AREjW6HibshwZE6rFhWRtjeX5MV0eKMmQgoRWRgiRfg9/YB6Z0tRtuptI83Uaszimmif1BKg==} + /@storybook/react@7.6.7(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3): + resolution: {integrity: sha512-uT9IBPDM1SQg6FglWqb7IemOJ1Z8kYB5rehIDEDToi0u5INihSY8rHd003TxG4Wx4REp6J+rfbDJO2aVui/gxA==} engines: {node: '>=16.0.0'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -5399,16 +5421,16 @@ packages: typescript: optional: true dependencies: - '@storybook/client-logger': 7.6.6 - '@storybook/core-client': 7.6.6 - '@storybook/docs-tools': 7.6.6 + '@storybook/client-logger': 7.6.7 + '@storybook/core-client': 7.6.7 + '@storybook/docs-tools': 7.6.7 '@storybook/global': 5.0.0 - '@storybook/preview-api': 7.6.6 - '@storybook/react-dom-shim': 7.6.6(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.6.6 + '@storybook/preview-api': 7.6.7 + '@storybook/react-dom-shim': 7.6.7(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.6.7 '@types/escodegen': 0.0.6 '@types/estree': 0.0.51 - '@types/node': 18.19.4 + '@types/node': 18.19.5 acorn: 7.4.1 acorn-jsx: 5.3.2(acorn@7.4.1) acorn-walk: 7.2.0 @@ -5428,30 +5450,30 @@ packages: - supports-color dev: true - /@storybook/router@7.6.6: - resolution: {integrity: sha512-dkn81MtxrG7JMDbOHEcVZkTDVKsneg72CyqJ8ELZfC81iKQcDMQkV9mdmnMl45aKn6UrscudI4K23OxQmsevkw==} + /@storybook/router@7.6.7: + resolution: {integrity: sha512-kkhNSdC3fXaQxILg8a26RKk4/ZbF/AUVrepUEyO8lwvbJ6LItTyWSE/4I9Ih4qV2Mjx33ncc8vLqM9p8r5qnMA==} dependencies: - '@storybook/client-logger': 7.6.6 + '@storybook/client-logger': 7.6.7 memoizerific: 1.11.3 qs: 6.11.2 dev: true - /@storybook/source-loader@7.6.6: - resolution: {integrity: sha512-u0Vo/im74W2YoQ5vrX0+Wuuhq0SxCvXgcNzlPMf57PdKV7crVdxUZfe85HXmgb/f2ldkS2YRwcJMHfMPQCIrrQ==} + /@storybook/source-loader@7.6.7: + resolution: {integrity: sha512-11uWYZwHyOMtC1vTh9AHDTh1ab1uUTeg1ZuqWJVSNSIfKNzDzeiWeqoWluzv6v3nQ5zNoMLqy8QOxbKeLiBDVw==} dependencies: '@storybook/csf': 0.1.2 - '@storybook/types': 7.6.6 + '@storybook/types': 7.6.7 estraverse: 5.3.0 lodash: 4.17.21 prettier: 2.8.8 dev: true - /@storybook/telemetry@7.6.6: - resolution: {integrity: sha512-2WdDcrMrt1bPVgdMVO0tFmVxT6YIjiPRfKbH/7wwYMOGmV75m4mJ9Ha2gzZc/oXTSK1M4/fiK12IgW+S3ErcMg==} + /@storybook/telemetry@7.6.7: + resolution: {integrity: sha512-NHGzC/LGLXpK4AFbVj8ln5ab86ZiiNFvORQMn3+LNGwUt3ZdsHBzExN+WPZdw7OPtfk4ubUY89FXH2GedhTALw==} dependencies: - '@storybook/client-logger': 7.6.6 - '@storybook/core-common': 7.6.6 - '@storybook/csf-tools': 7.6.6 + '@storybook/client-logger': 7.6.7 + '@storybook/core-common': 7.6.7 + '@storybook/csf-tools': 7.6.7 chalk: 4.1.2 detect-package-manager: 2.0.1 fetch-retry: 5.0.6 @@ -5462,20 +5484,20 @@ packages: - supports-color dev: true - /@storybook/test@7.6.6: - resolution: {integrity: sha512-A1YvdjI33Y64YmDAVUzsgl9v6PUG2hUqhIhvtfc77pd6fFQdNx8sZgGBhCehyvCzh7tx3qopNAiOALIsJEruag==} + /@storybook/test@7.6.7: + resolution: {integrity: sha512-6gyRIvtOSq/ODYjpUO8LgY1YlWoYINhhKtLKwZasbp8hQ0zkd2vRSWlVCwzsw28cZXo2UL92UNSgEVD1sf73Qg==} dependencies: - '@storybook/client-logger': 7.6.6 - '@storybook/core-events': 7.6.6 - '@storybook/instrumenter': 7.6.6 - '@storybook/preview-api': 7.6.6 + '@storybook/client-logger': 7.6.7 + '@storybook/core-events': 7.6.7 + '@storybook/instrumenter': 7.6.7 + '@storybook/preview-api': 7.6.7 '@testing-library/dom': 9.3.3 - '@testing-library/jest-dom': 6.1.6 + '@testing-library/jest-dom': 6.2.0 '@testing-library/user-event': 14.3.0(@testing-library/dom@9.3.3) '@types/chai': 4.3.11 '@vitest/expect': 0.34.7 '@vitest/spy': 0.34.7 - chai: 4.3.10 + chai: 4.4.0 util: 0.12.5 transitivePeerDependencies: - '@jest/globals' @@ -5484,24 +5506,24 @@ packages: - vitest dev: true - /@storybook/theming@7.6.6(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-hNZOOxaF55iAGUEM0dvAIP6LfGMgPKCJQIk/qyotFk+SKkg3PBqzph89XfFl9yCD3KiX5cryqarULgVuNawLJg==} + /@storybook/theming@7.6.7(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-+42rfC4rZtWVAXJ7JBUQKnQ6vWBXJVHZ9HtNUWzQLPR9sJSMmHnnSMV6y5tizGgZqmBnAIkuoYk+Tt6NfwUmSA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) - '@storybook/client-logger': 7.6.6 + '@storybook/client-logger': 7.6.7 '@storybook/global': 5.0.0 memoizerific: 1.11.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@storybook/types@7.6.6: - resolution: {integrity: sha512-77vbQp3GX93OD8UzFkY4a0fAmkZrqLe61XVo6yABrwbVDY0EcAwaCF5gcXRhOHldlH7KYbLfEQkDkkKTBjX7ow==} + /@storybook/types@7.6.7: + resolution: {integrity: sha512-VcGwrI4AkBENxkoAUJ+Z7SyMK73hpoY0TTtw2J7tc05/xdiXhkQTX15Qa12IBWIkoXCyNrtaU+q7KR8Tjzi+uw==} dependencies: - '@storybook/channels': 7.6.6 + '@storybook/channels': 7.6.7 '@types/babel__core': 7.20.5 '@types/express': 4.17.21 file-system-cache: 2.3.0 @@ -5635,7 +5657,7 @@ packages: engines: {node: '>=14'} dependencies: '@babel/code-frame': 7.23.5 - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@types/aria-query': 5.0.4 aria-query: 5.1.3 chalk: 4.1.2 @@ -5644,8 +5666,8 @@ packages: pretty-format: 27.5.1 dev: true - /@testing-library/jest-dom@6.1.6: - resolution: {integrity: sha512-YwuiOdYEcxhfC2u5iNKlvg2Q5MgbutovP6drq7J1HrCbvR+G58BbtoCoq+L/kNlrNFsu2Kt3jaFAviLVxYHJZg==} + /@testing-library/jest-dom@6.2.0: + resolution: {integrity: sha512-+BVQlJ9cmEn5RDMUS8c2+TU6giLvzaHZ8sU/x0Jj7fk+6/46wPdwlgOPcpxS17CjcanBi/3VmGMqVr2rmbUmNw==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} peerDependencies: '@jest/globals': '>= 28' @@ -5663,11 +5685,11 @@ packages: optional: true dependencies: '@adobe/css-tools': 4.3.2 - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 aria-query: 5.3.0 chalk: 3.0.0 css.escape: 1.5.1 - dom-accessibility-api: 0.5.16 + dom-accessibility-api: 0.6.3 lodash: 4.17.21 redent: 3.0.0 dev: true @@ -5696,7 +5718,7 @@ packages: '@babel/types': 7.23.6 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.4 + '@types/babel__traverse': 7.20.5 dev: true /@types/babel__generator@7.6.8: @@ -5712,8 +5734,8 @@ packages: '@babel/types': 7.23.6 dev: true - /@types/babel__traverse@7.20.4: - resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==} + /@types/babel__traverse@7.20.5: + resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} dependencies: '@babel/types': 7.23.6 dev: true @@ -5722,7 +5744,7 @@ packages: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 20.10.6 + '@types/node': 20.10.7 dev: true /@types/chai@4.3.11: @@ -5732,13 +5754,13 @@ packages: /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 20.10.6 + '@types/node': 20.10.7 dev: true /@types/cross-spawn@6.0.6: resolution: {integrity: sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA==} dependencies: - '@types/node': 20.10.6 + '@types/node': 20.10.7 dev: true /@types/d3-array@3.2.1: @@ -5928,6 +5950,10 @@ packages: resolution: {integrity: sha512-Rf3/lB9WkDfIL9eEKaSYKc+1L/rNVYBjThk22JTqQw0YozXarX8YljFAz+HCoC6h4B4KwCMsBPZHaFezwT4BNA==} dev: true + /@types/diff-match-patch@1.0.36: + resolution: {integrity: sha512-xFdR6tkm0MWvBfO8xXCSsinYxHcqkQUlcHeSpMC2ukzOb6lwQAfDmW+Qt0AvlGd8HpsS28qKsB+oPeJn9I39jg==} + dev: false + /@types/doctrine@0.0.3: resolution: {integrity: sha512-w5jZ0ee+HaPOaX25X2/2oGR/7rgAQSYII7X7pp0m9KgBfMP7uKfMfTvcpl5Dj+eDBbpxKGiqE+flqDr6XTd2RA==} dev: true @@ -5966,7 +5992,7 @@ packages: /@types/express-serve-static-core@4.17.41: resolution: {integrity: sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==} dependencies: - '@types/node': 20.10.6 + '@types/node': 20.10.7 '@types/qs': 6.9.11 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -5993,13 +6019,13 @@ packages: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.10.6 + '@types/node': 20.10.7 dev: true /@types/graceful-fs@4.1.9: resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: - '@types/node': 20.10.6 + '@types/node': 20.10.7 dev: true /@types/http-errors@2.0.4: @@ -6072,18 +6098,18 @@ packages: /@types/node-fetch@2.6.10: resolution: {integrity: sha512-PPpPK6F9ALFTn59Ka3BaL+qGuipRfxNE8qVgkp0bVixeiR2c2/L+IVOiBdu9JhhT22sWnQEp6YyHGI2b2+CMcA==} dependencies: - '@types/node': 20.10.6 + '@types/node': 20.10.7 form-data: 4.0.0 dev: true - /@types/node@18.19.4: - resolution: {integrity: sha512-xNzlUhzoHotIsnFoXmJB+yWmBvFZgKCI9TtPIEdYIMM1KWfwuY8zh7wvc1u1OAXlC7dlf6mZVx/s+Y5KfFz19A==} + /@types/node@18.19.5: + resolution: {integrity: sha512-22MG6T02Hos2JWfa1o5jsIByn+bc5iOt1IS4xyg6OG68Bu+wMonVZzdrgCw693++rpLE9RUT/Bx15BeDzO0j+g==} dependencies: undici-types: 5.26.5 dev: true - /@types/node@20.10.6: - resolution: {integrity: sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==} + /@types/node@20.10.7: + resolution: {integrity: sha512-fRbIKb8C/Y2lXxB5eVMj4IU7xpdox0Lh8bUPEdtLysaylsml1hOOx1+STloRs/B9nf7C6kPRmmg/V7aQW7usNg==} dependencies: undici-types: 5.26.5 dev: true @@ -6114,23 +6140,23 @@ packages: /@types/react-dom@18.2.18: resolution: {integrity: sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==} dependencies: - '@types/react': 18.2.46 + '@types/react': 18.2.47 dev: true /@types/react-reconciler@0.28.8: resolution: {integrity: sha512-SN9c4kxXZonFhbX4hJrZy37yw9e7EIxcpHCxQv5JUS18wDE5ovkQKlqQEkufdJCCMfuI9BnjUJvhYeJ9x5Ra7g==} dependencies: - '@types/react': 18.2.46 + '@types/react': 18.2.47 dev: false /@types/react-transition-group@4.4.10: resolution: {integrity: sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==} dependencies: - '@types/react': 18.2.46 + '@types/react': 18.2.47 dev: false - /@types/react@18.2.46: - resolution: {integrity: sha512-nNCvVBcZlvX4NU1nRRNV/mFl1nNRuTuslAJglQsq+8ldXe5Xv0Wd2f7WTE3jOxhLH2BFfiZGC6GCp+kHQbgG+w==} + /@types/react@18.2.47: + resolution: {integrity: sha512-xquNkkOirwyCgoClNk85BjP+aqnIS+ckAJ8i37gAbDs14jfW/J23f2GItAf33oiUPQnqNMALiFeoM9Y5mbjpVQ==} dependencies: '@types/prop-types': 15.7.11 '@types/scheduler': 0.16.8 @@ -6151,7 +6177,7 @@ packages: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 20.10.6 + '@types/node': 20.10.7 dev: true /@types/serve-static@1.15.5: @@ -6159,7 +6185,7 @@ packages: dependencies: '@types/http-errors': 2.0.4 '@types/mime': 3.0.4 - '@types/node': 20.10.6 + '@types/node': 20.10.7 dev: true /@types/unist@2.0.10: @@ -6190,8 +6216,8 @@ packages: '@types/yargs-parser': 21.0.3 dev: true - /@typescript-eslint/eslint-plugin@6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-O5f7Kv5o4dLWQtPX4ywPPa+v9G+1q1x8mz0Kr0pXUtKsevo+gIJHLkGc8RxaZWtP8RrhwhSNIWThnW42K9/0rQ==} + /@typescript-eslint/eslint-plugin@6.18.0(@typescript-eslint/parser@6.18.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-3lqEvQUdCozi6d1mddWqd+kf8KxmGq2Plzx36BlkjuQe3rSTm/O98cLf0A4uDO+a5N1KD2SeEEl6fW97YHY+6w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -6202,11 +6228,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.16.0 - '@typescript-eslint/type-utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.16.0 + '@typescript-eslint/parser': 6.18.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.18.0 + '@typescript-eslint/type-utils': 6.18.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.18.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.18.0 debug: 4.3.4 eslint: 8.56.0 graphemer: 1.4.0 @@ -6219,8 +6245,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.16.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-H2GM3eUo12HpKZU9njig3DF5zJ58ja6ahj1GoHEHOgQvYxzoFJJEvC1MQ7T2l9Ha+69ZSOn7RTxOdpC/y3ikMw==} + /@typescript-eslint/parser@6.18.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-v6uR68SFvqhNQT41frCMCQpsP+5vySy6IdgjlzUWoo7ALCnpaWYcz/Ij2k4L8cEsL0wkvOviCMpjmtRtHNOKzA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -6229,10 +6255,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.16.0 - '@typescript-eslint/types': 6.16.0 - '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.16.0 + '@typescript-eslint/scope-manager': 6.18.0 + '@typescript-eslint/types': 6.18.0 + '@typescript-eslint/typescript-estree': 6.18.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.18.0 debug: 4.3.4 eslint: 8.56.0 typescript: 5.3.3 @@ -6248,16 +6274,16 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/scope-manager@6.16.0: - resolution: {integrity: sha512-0N7Y9DSPdaBQ3sqSCwlrm9zJwkpOuc6HYm7LpzLAPqBL7dmzAUimr4M29dMkOP/tEwvOCC/Cxo//yOfJD3HUiw==} + /@typescript-eslint/scope-manager@6.18.0: + resolution: {integrity: sha512-o/UoDT2NgOJ2VfHpfr+KBY2ErWvCySNUIX/X7O9g8Zzt/tXdpfEU43qbNk8LVuWUT2E0ptzTWXh79i74PP0twA==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.16.0 - '@typescript-eslint/visitor-keys': 6.16.0 + '@typescript-eslint/types': 6.18.0 + '@typescript-eslint/visitor-keys': 6.18.0 dev: true - /@typescript-eslint/type-utils@6.16.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-ThmrEOcARmOnoyQfYkHw/DX2SEYBalVECmoldVuH6qagKROp/jMnfXpAU/pAIWub9c4YTxga+XwgAkoA0pxfmg==} + /@typescript-eslint/type-utils@6.18.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-ZeMtrXnGmTcHciJN1+u2CigWEEXgy1ufoxtWcHORt5kGvpjjIlK9MUhzHm4RM8iVy6dqSaZA/6PVkX6+r+ChjQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -6266,8 +6292,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.18.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.18.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.3.3) @@ -6286,8 +6312,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types@6.16.0: - resolution: {integrity: sha512-hvDFpLEvTJoHutVl87+MG/c5C8I6LOgEx05zExTSJDEVU7hhR3jhV8M5zuggbdFCw98+HhZWPHZeKS97kS3JoQ==} + /@typescript-eslint/types@6.18.0: + resolution: {integrity: sha512-/RFVIccwkwSdW/1zeMx3hADShWbgBxBnV/qSrex6607isYjj05t36P6LyONgqdUrNLl5TYU8NIKdHUYpFvExkA==} engines: {node: ^16.0.0 || >=18.0.0} dev: true @@ -6354,8 +6380,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.16.0(typescript@5.3.3): - resolution: {integrity: sha512-VTWZuixh/vr7nih6CfrdpmFNLEnoVBF1skfjdyGnNwXOH1SLeHItGdZDHhhAIzd3ACazyY2Fg76zuzOVTaknGA==} + /@typescript-eslint/typescript-estree@6.18.0(typescript@5.3.3): + resolution: {integrity: sha512-klNvl+Ql4NsBNGB4W9TZ2Od03lm7aGvTbs0wYaFYsplVPhr+oeXjlPZCDI4U9jgJIDK38W1FKhacCFzCC+nbIg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -6363,8 +6389,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.16.0 - '@typescript-eslint/visitor-keys': 6.16.0 + '@typescript-eslint/types': 6.18.0 + '@typescript-eslint/visitor-keys': 6.18.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -6396,8 +6422,8 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.16.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-T83QPKrBm6n//q9mv7oiSvy/Xq/7Hyw9SzSEhMHJwznEmQayfBM87+oAlkNAMEO7/MjIwKyOHgBJbxB0s7gx2A==} + /@typescript-eslint/utils@6.18.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-wiKKCbUeDPGaYEYQh1S580dGxJ/V9HI7K5sbGAVklyf+o5g3O+adnS4UNJajplF4e7z2q0uVBaTdT/yLb4XAVA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -6405,9 +6431,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.16.0 - '@typescript-eslint/types': 6.16.0 - '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.18.0 + '@typescript-eslint/types': 6.18.0 + '@typescript-eslint/typescript-estree': 6.18.0(typescript@5.3.3) eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: @@ -6431,11 +6457,11 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@6.16.0: - resolution: {integrity: sha512-QSFQLruk7fhs91a/Ep/LqRdbJCZ1Rq03rqBdKT5Ky17Sz8zRLUksqIe9DW0pKtg/Z35/ztbLQ6qpOCN6rOC11A==} + /@typescript-eslint/visitor-keys@6.18.0: + resolution: {integrity: sha512-1wetAlSZpewRDb2h9p/Q8kRjdGuqdTAQbkJIOUMLug2LBLG+QOjiWoSj6/3B/hA9/tVTFFdtiKvAYoYnSRW/RA==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.16.0 + '@typescript-eslint/types': 6.18.0 eslint-visitor-keys: 3.4.3 dev: true @@ -6443,29 +6469,29 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true - /@vitejs/plugin-react-swc@3.5.0(vite@5.0.10): + /@vitejs/plugin-react-swc@3.5.0(vite@5.0.11): resolution: {integrity: sha512-1PrOvAaDpqlCV+Up8RkAh9qaiUjoDUcjtttyhXDKw53XA6Ve16SOp6cCOpRs8Dj8DqUQs6eTW5YkLcLJjrXAig==} peerDependencies: vite: ^4 || ^5 dependencies: '@swc/core': 1.3.101 - vite: 5.0.10(@types/node@20.10.6) + vite: 5.0.11(@types/node@20.10.7) transitivePeerDependencies: - '@swc/helpers' dev: true - /@vitejs/plugin-react@3.1.0(vite@5.0.10): + /@vitejs/plugin-react@3.1.0(vite@5.0.11): resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.1.0-beta.0 dependencies: - '@babel/core': 7.23.6 - '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.7) magic-string: 0.27.0 react-refresh: 0.14.0 - vite: 5.0.10(@types/node@20.10.6) + vite: 5.0.11(@types/node@20.10.7) transitivePeerDependencies: - supports-color dev: true @@ -6475,7 +6501,7 @@ packages: dependencies: '@vitest/spy': 0.34.7 '@vitest/utils': 0.34.7 - chai: 4.3.10 + chai: 4.4.0 dev: true /@vitest/spy@0.34.7: @@ -6637,6 +6663,12 @@ packages: hasBin: true dev: true + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + /address@1.2.2: resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} engines: {node: '>= 10.0.0'} @@ -6894,12 +6926,12 @@ packages: engines: {node: '>= 0.4'} dev: true - /babel-core@7.0.0-bridge.0(@babel/core@7.23.6): + /babel-core@7.0.0-bridge.0(@babel/core@7.23.7): resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 dev: true /babel-plugin-istanbul@6.1.1: @@ -6924,38 +6956,38 @@ packages: resolve: 1.22.8 dev: false - /babel-plugin-polyfill-corejs2@0.4.7(@babel/core@7.23.6): + /babel-plugin-polyfill-corejs2@0.4.7(@babel/core@7.23.7): resolution: {integrity: sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.6 - '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.7) semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3@0.8.7(@babel/core@7.23.6): + /babel-plugin-polyfill-corejs3@0.8.7(@babel/core@7.23.7): resolution: {integrity: sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.7) core-js-compat: 3.35.0 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator@0.5.4(@babel/core@7.23.6): + /babel-plugin-polyfill-regenerator@0.5.4(@babel/core@7.23.7): resolution: {integrity: sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.7) transitivePeerDependencies: - supports-color dev: true @@ -7059,8 +7091,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001572 - electron-to-chromium: 1.4.616 + caniuse-lite: 1.0.30001575 + electron-to-chromium: 1.4.623 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.22.2) dev: true @@ -7113,12 +7145,12 @@ packages: engines: {node: '>=6'} dev: true - /caniuse-lite@1.0.30001572: - resolution: {integrity: sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==} + /caniuse-lite@1.0.30001575: + resolution: {integrity: sha512-VE+TSRJsWdtwTheYnrQikhGWlvJp+4lunXBadY66YIc+itIHm7y9d0NSA150Eh6mNY6d1S/B+fitPr9OzHJc6Q==} dev: true - /chai@4.3.10: - resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} + /chai@4.4.0: + resolution: {integrity: sha512-x9cHNq1uvkCdU+5xTkNh5WtgD4e4yDFCsp9jVc7N7qVeKeftv3gO/ZrviX5d+3ZfxdYnZXZYujjRInu1RogU6A==} engines: {node: '>=4'} dependencies: assertion-error: 1.1.0 @@ -7130,7 +7162,7 @@ packages: type-detect: 4.0.8 dev: true - /chakra-react-select@4.7.6(@chakra-ui/form-control@2.2.0)(@chakra-ui/icon@3.2.0)(@chakra-ui/layout@2.3.1)(@chakra-ui/media-query@3.3.0)(@chakra-ui/menu@2.2.1)(@chakra-ui/spinner@2.1.0)(@chakra-ui/system@2.6.2)(@emotion/react@11.11.3)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): + /chakra-react-select@4.7.6(@chakra-ui/form-control@2.2.0)(@chakra-ui/icon@3.2.0)(@chakra-ui/layout@2.3.1)(@chakra-ui/media-query@3.3.0)(@chakra-ui/menu@2.2.1)(@chakra-ui/spinner@2.1.0)(@chakra-ui/system@2.6.2)(@emotion/react@11.11.3)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-ZL43hyXPnWf1g/HjsZDecbeJ4F2Q6tTPYJozlKWkrQ7lIX7ORP0aZYwmc5/Wly4UNzMimj2Vuosl6MmIXH+G2g==} peerDependencies: '@chakra-ui/form-control': ^2.0.0 @@ -7148,13 +7180,13 @@ packages: '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) '@chakra-ui/layout': 2.3.1(@chakra-ui/system@2.6.2)(react@18.2.0) '@chakra-ui/media-query': 3.3.0(@chakra-ui/system@2.6.2)(react@18.2.0) - '@chakra-ui/menu': 2.2.1(@chakra-ui/system@2.6.2)(framer-motion@10.16.16)(react@18.2.0) + '@chakra-ui/menu': 2.2.1(@chakra-ui/system@2.6.2)(framer-motion@10.17.9)(react@18.2.0) '@chakra-ui/spinner': 2.1.0(@chakra-ui/system@2.6.2)(react@18.2.0) '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) - '@emotion/react': 11.11.3(@types/react@18.2.46)(react@18.2.0) + '@emotion/react': 11.11.3(@types/react@18.2.47)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-select: 5.7.7(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) + react-select: 5.7.7(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) transitivePeerDependencies: - '@types/react' dev: false @@ -7183,6 +7215,11 @@ packages: supports-color: 7.2.0 dev: true + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: false + /check-error@1.0.3: resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} dependencies: @@ -7734,8 +7771,8 @@ packages: has-property-descriptors: 1.0.1 object-keys: 1.1.1 - /defu@6.1.3: - resolution: {integrity: sha512-Vy2wmG3NTkmHNg/kzpuvHhkqeIx3ODWqasgCRbKtbXEN0G+HpEEv9BtJLp7ZG1CZloFaC41Ah3ZFbq7aqCqMeQ==} + /defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} dev: true /del@6.1.1: @@ -7965,6 +8002,10 @@ packages: - supports-color dev: true + /diff-match-patch@1.0.5: + resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==} + dev: false + /diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7999,6 +8040,10 @@ packages: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} dev: true + /dom-accessibility-api@0.6.3: + resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} + dev: true + /dom-helpers@5.2.1: resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} dependencies: @@ -8041,8 +8086,8 @@ packages: jake: 10.8.7 dev: true - /electron-to-chromium@1.4.616: - resolution: {integrity: sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==} + /electron-to-chromium@1.4.623: + resolution: {integrity: sha512-lKoz10iCYlP1WtRYdh5MvocQPWVRoI7ysp6qf18bmeBgR8abE6+I2CsfyNKztRDZvhdWc+krKT6wS7Neg8sw3A==} dev: true /emoji-regex@8.0.0: @@ -8373,7 +8418,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.18.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -8394,7 +8439,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.18.0(eslint@8.56.0)(typescript@5.3.3) debug: 3.2.7 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 @@ -8410,7 +8455,7 @@ packages: requireindex: 1.1.0 dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.16.0)(eslint@8.56.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.18.0)(eslint@8.56.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -8420,7 +8465,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.18.0(eslint@8.56.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -8429,7 +8474,7 @@ packages: doctrine: 2.1.0 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.18.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -8513,7 +8558,7 @@ packages: - typescript dev: true - /eslint-plugin-unused-imports@3.0.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint@8.56.0): + /eslint-plugin-unused-imports@3.0.0(@typescript-eslint/eslint-plugin@6.18.0)(eslint@8.56.0): resolution: {integrity: sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -8523,7 +8568,7 @@ packages: '@typescript-eslint/eslint-plugin': optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.18.0(@typescript-eslint/parser@6.18.0)(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 eslint-rule-composer: 0.3.0 dev: true @@ -8986,8 +9031,8 @@ packages: engines: {node: '>= 0.6'} dev: true - /framer-motion@10.16.16(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-je6j91rd7NmUX7L1XHouwJ4v3R+SO4umso2LUcgOct3rHZ0PajZ80ETYZTajzEXEl9DlKyzjyt4AvGQ+lrebOw==} + /framer-motion@10.17.9(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-z2NpP8r+XuALoPA7ZVZHm/OoTnwkQNJFBu91sC86o/FYvJ4x7ar3eQnixgwYWFK7kEqOtQ6whtNM37tn1KrOOA==} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 @@ -9167,9 +9212,9 @@ packages: dependencies: citty: 0.1.5 consola: 3.2.3 - defu: 6.1.3 + defu: 6.1.4 node-fetch-native: 1.6.1 - nypm: 0.3.3 + nypm: 0.3.4 ohash: 1.1.3 pathe: 1.1.1 tar: 6.2.0 @@ -9418,8 +9463,8 @@ packages: - encoding dev: false - /i18next@23.7.13: - resolution: {integrity: sha512-DbCPlw6VmURSZa43iOnycxq9o15e+WuBWDBZ3aj+gQZcDz4sgnuKwrcwmP1n8gSSCwCN7CRFGTpnwTd93A16Mg==} + /i18next@23.7.16: + resolution: {integrity: sha512-SrqFkMn9W6Wb43ZJ9qrO6U2U4S80RsFMA7VYFSqp7oc7RllQOYDCdRfsse6A7Cq/V8MnpxKvJCYgM8++27n4Fw==} dependencies: '@babel/runtime': 7.23.7 dev: false @@ -9816,7 +9861,7 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/parser': 7.23.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 @@ -9870,7 +9915,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 20.10.6 + '@types/node': 20.10.7 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -9888,7 +9933,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 20.10.6 + '@types/node': 20.10.7 dev: true /jest-regex-util@29.6.3: @@ -9901,7 +9946,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.10.6 + '@types/node': 20.10.7 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -9912,7 +9957,7 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.10.6 + '@types/node': 20.10.7 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -9944,7 +9989,7 @@ packages: argparse: 2.0.1 dev: true - /jscodeshift@0.15.1(@babel/preset-env@7.23.6): + /jscodeshift@0.15.1(@babel/preset-env@7.23.7): resolution: {integrity: sha512-hIJfxUy8Rt4HkJn/zZPU9ChKfKZM1342waJ1QC2e2YsPcWhM+3BJ4dcfQCzArTrk1jJeNLB341H+qOcEHRxJZg==} hasBin: true peerDependencies: @@ -9953,18 +9998,18 @@ packages: '@babel/preset-env': optional: true dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/parser': 7.23.6 - '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.6) - '@babel/preset-env': 7.23.6(@babel/core@7.23.6) - '@babel/preset-flow': 7.23.3(@babel/core@7.23.6) - '@babel/preset-typescript': 7.23.3(@babel/core@7.23.6) - '@babel/register': 7.22.15(@babel/core@7.23.6) - babel-core: 7.0.0-bridge.0(@babel/core@7.23.6) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.7) + '@babel/preset-env': 7.23.7(@babel/core@7.23.7) + '@babel/preset-flow': 7.23.3(@babel/core@7.23.7) + '@babel/preset-typescript': 7.23.3(@babel/core@7.23.7) + '@babel/register': 7.23.7(@babel/core@7.23.7) + babel-core: 7.0.0-bridge.0(@babel/core@7.23.7) chalk: 4.1.2 flow-parser: 0.225.1 graceful-fs: 4.2.11 @@ -10017,6 +10062,16 @@ packages: hasBin: true dev: true + /jsondiffpatch@0.6.0: + resolution: {integrity: sha512-3QItJOXp2AP1uv7waBkao5nCvhEv+QmJAd38Ybq7wNI74Q+BBmnLn4EDKz6yI9xGAIQoUF87qHt+kc1IVxB4zQ==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + dependencies: + '@types/diff-match-patch': 1.0.36 + chalk: 5.3.0 + diff-match-patch: 1.0.5 + dev: false + /jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} optionalDependencies: @@ -10284,8 +10339,8 @@ packages: resolution: {integrity: sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==} dev: true - /markdown-to-jsx@7.3.2(react@18.2.0): - resolution: {integrity: sha512-B+28F5ucp83aQm+OxNrPkS8z0tMKaeHiy0lHJs3LqCyDQFtWuenaIrkaVTgAm1pf1AU85LXltva86hlaT17i8Q==} + /markdown-to-jsx@7.4.0(react@18.2.0): + resolution: {integrity: sha512-zilc+MIkVVXPyTb4iIUTIz9yyqfcWjszGXnwF9K/aiBWcHXFcmdEMTkG01/oQhwSCH7SY1BnG6+ev5BzWmbPrg==} engines: {node: '>= 10'} peerDependencies: react: '>= 0.14.0' @@ -10633,8 +10688,8 @@ packages: path-key: 4.0.0 dev: true - /nypm@0.3.3: - resolution: {integrity: sha512-FHoxtTscAE723e80d2M9cJRb4YVjL82Ra+ZV+YqC6rfNZUWahi+ZhPF+krnR+bdMvibsfHCtgKXnZf5R6kmEPA==} + /nypm@0.3.4: + resolution: {integrity: sha512-1JLkp/zHBrkS3pZ692IqOaIKSYHmQXgqfELk6YTOfVBnwealAmPA1q2kKK7PHJAHSMBozerThEFZXP3G6o7Ukg==} engines: {node: ^14.16.0 || >=16.10.0} hasBin: true dependencies: @@ -11012,7 +11067,7 @@ packages: resolution: {integrity: sha512-Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ==} engines: {node: '>=10'} dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 dev: true /postcss-values-parser@2.0.1: @@ -11045,6 +11100,15 @@ packages: source-map-js: 1.0.2 dev: true + /postcss@8.4.33: + resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + /precinct@8.3.1: resolution: {integrity: sha512-pVppfMWLp2wF68rwHqBIpPBYY8Kd12lDhk8LVQzOwqllifVR15qNFyod43YLyFpurKRZQKnE7E4pofAagDOm2Q==} engines: {node: ^10.13 || ^12 || >=14} @@ -11325,11 +11389,11 @@ packages: resolution: {integrity: sha512-rCz0HBIT0LWbIM+///LfRrJoTKftIzzwsYDf0ns5KwaEjejMHQRtphcns+IXFHDNY9pnz6G8l/JbbI6pD4EAIA==} engines: {node: '>=16.14.0'} dependencies: - '@babel/core': 7.23.6 - '@babel/traverse': 7.23.6 + '@babel/core': 7.23.7 + '@babel/traverse': 7.23.7 '@babel/types': 7.23.6 '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.4 + '@types/babel__traverse': 7.20.5 '@types/doctrine': 0.0.9 '@types/resolve': 1.20.6 doctrine: 3.0.0 @@ -11386,7 +11450,7 @@ packages: resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} dev: false - /react-focus-lock@2.9.6(@types/react@18.2.46)(react@18.2.0): + /react-focus-lock@2.9.6(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-B7gYnCjHNrNYwY2juS71dHbf0+UpXXojt02svxybj8N5bxceAkzPChKEncHuratjUHkIFNCn06k2qj1DRlzTug==} peerDependencies: '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -11396,13 +11460,13 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@types/react': 18.2.46 + '@types/react': 18.2.47 focus-lock: 1.0.0 prop-types: 15.8.1 react: 18.2.0 react-clientside-effect: 1.2.6(react@18.2.0) - use-callback-ref: 1.3.1(@types/react@18.2.46)(react@18.2.0) - use-sidecar: 1.1.2(@types/react@18.2.46)(react@18.2.0) + use-callback-ref: 1.3.1(@types/react@18.2.47)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.2.47)(react@18.2.0) dev: false /react-hook-form@7.49.2(react@18.2.0): @@ -11414,8 +11478,8 @@ packages: react: 18.2.0 dev: false - /react-hotkeys-hook@4.4.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-sClBMBioFEgFGYLTWWRKvhxcCx1DRznd+wkFHwQZspnRBkHTgruKIHptlK/U/2DPX8BhHoRGzpMVWUXMmdZlmw==} + /react-hotkeys-hook@4.4.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-G6psp7OUm9xxY4G2vL48tBwWUVJLvD/PeInaPdPvqRJ8GoXBu6Djqr6WIw5gu1M0SbR1epNUlvpccxu2ZzmtFQ==} peerDependencies: react: '>=16.8.1' react-dom: '>=16.8.1' @@ -11424,7 +11488,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /react-i18next@14.0.0(i18next@23.7.13)(react-dom@18.2.0)(react@18.2.0): + /react-i18next@14.0.0(i18next@23.7.16)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-OCrS8rHNAmnr8ggGRDxjakzihrMW7HCbsplduTm3EuuQ6fyvWGT41ksZpqbduYoqJurBmEsEVZ1pILSUWkHZng==} peerDependencies: i18next: '>= 23.2.3' @@ -11439,7 +11503,7 @@ packages: dependencies: '@babel/runtime': 7.23.7 html-parse-stringify: 3.0.1 - i18next: 23.7.13 + i18next: 23.7.16 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -11494,7 +11558,7 @@ packages: scheduler: 0.23.0 dev: false - /react-redux@9.0.4(@types/react@18.2.46)(react@18.2.0)(redux@5.0.1): + /react-redux@9.0.4(@types/react@18.2.47)(react@18.2.0)(redux@5.0.1): resolution: {integrity: sha512-9J1xh8sWO0vYq2sCxK2My/QO7MzUMRi3rpiILP/+tDr8krBHixC6JMM17fMK88+Oh3e4Ae6/sHIhNBgkUivwFA==} peerDependencies: '@types/react': ^18.2.25 @@ -11509,7 +11573,7 @@ packages: redux: optional: true dependencies: - '@types/react': 18.2.46 + '@types/react': 18.2.47 '@types/use-sync-external-store': 0.0.3 react: 18.2.0 redux: 5.0.1 @@ -11521,7 +11585,7 @@ packages: engines: {node: '>=0.10.0'} dev: true - /react-remove-scroll-bar@2.3.4(@types/react@18.2.46)(react@18.2.0): + /react-remove-scroll-bar@2.3.4(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==} engines: {node: '>=10'} peerDependencies: @@ -11531,12 +11595,12 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.46 + '@types/react': 18.2.47 react: 18.2.0 - react-style-singleton: 2.2.1(@types/react@18.2.46)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.47)(react@18.2.0) tslib: 2.6.2 - /react-remove-scroll@2.5.5(@types/react@18.2.46)(react@18.2.0): + /react-remove-scroll@2.5.5(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} engines: {node: '>=10'} peerDependencies: @@ -11546,16 +11610,16 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.46 + '@types/react': 18.2.47 react: 18.2.0 - react-remove-scroll-bar: 2.3.4(@types/react@18.2.46)(react@18.2.0) - react-style-singleton: 2.2.1(@types/react@18.2.46)(react@18.2.0) + react-remove-scroll-bar: 2.3.4(@types/react@18.2.47)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.47)(react@18.2.0) tslib: 2.6.2 - use-callback-ref: 1.3.1(@types/react@18.2.46)(react@18.2.0) - use-sidecar: 1.1.2(@types/react@18.2.46)(react@18.2.0) + use-callback-ref: 1.3.1(@types/react@18.2.47)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.2.47)(react@18.2.0) dev: true - /react-remove-scroll@2.5.7(@types/react@18.2.46)(react@18.2.0): + /react-remove-scroll@2.5.7(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==} engines: {node: '>=10'} peerDependencies: @@ -11565,13 +11629,13 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.46 + '@types/react': 18.2.47 react: 18.2.0 - react-remove-scroll-bar: 2.3.4(@types/react@18.2.46)(react@18.2.0) - react-style-singleton: 2.2.1(@types/react@18.2.46)(react@18.2.0) + react-remove-scroll-bar: 2.3.4(@types/react@18.2.47)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.47)(react@18.2.0) tslib: 2.6.2 - use-callback-ref: 1.3.1(@types/react@18.2.46)(react@18.2.0) - use-sidecar: 1.1.2(@types/react@18.2.46)(react@18.2.0) + use-callback-ref: 1.3.1(@types/react@18.2.47)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.2.47)(react@18.2.0) dev: false /react-resizable-panels@1.0.7(react-dom@18.2.0)(react@18.2.0): @@ -11584,7 +11648,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /react-select@5.7.7(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): + /react-select@5.7.7(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-HhashZZJDRlfF/AKj0a0Lnfs3sRdw/46VJIRd8IbB9/Ovr74+ZIwkAdSBjSPXsFMG+u72c5xShqwLSKIJllzqw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -11592,7 +11656,7 @@ packages: dependencies: '@babel/runtime': 7.23.6 '@emotion/cache': 11.11.0 - '@emotion/react': 11.11.3(@types/react@18.2.46)(react@18.2.0) + '@emotion/react': 11.11.3(@types/react@18.2.47)(react@18.2.0) '@floating-ui/dom': 1.5.3 '@types/react-transition-group': 4.4.10 memoize-one: 6.0.0 @@ -11600,12 +11664,12 @@ packages: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-transition-group: 4.4.5(react-dom@18.2.0)(react@18.2.0) - use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.46)(react@18.2.0) + use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.47)(react@18.2.0) transitivePeerDependencies: - '@types/react' dev: false - /react-select@5.8.0(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): + /react-select@5.8.0(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-TfjLDo58XrhP6VG5M/Mi56Us0Yt8X7xD6cDybC7yoRMUNm7BGO7qk8J0TLQOua/prb8vUOtsfnXZwfm30HGsAA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -11613,7 +11677,7 @@ packages: dependencies: '@babel/runtime': 7.23.7 '@emotion/cache': 11.11.0 - '@emotion/react': 11.11.3(@types/react@18.2.46)(react@18.2.0) + '@emotion/react': 11.11.3(@types/react@18.2.47)(react@18.2.0) '@floating-ui/dom': 1.5.3 '@types/react-transition-group': 4.4.10 memoize-one: 6.0.0 @@ -11621,12 +11685,12 @@ packages: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-transition-group: 4.4.5(react-dom@18.2.0)(react@18.2.0) - use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.46)(react@18.2.0) + use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.47)(react@18.2.0) transitivePeerDependencies: - '@types/react' dev: false - /react-style-singleton@2.2.1(@types/react@18.2.46)(react@18.2.0): + /react-style-singleton@2.2.1(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} engines: {node: '>=10'} peerDependencies: @@ -11636,13 +11700,13 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.46 + '@types/react': 18.2.47 get-nonce: 1.0.1 invariant: 2.2.4 react: 18.2.0 tslib: 2.6.2 - /react-textarea-autosize@8.5.3(@types/react@18.2.46)(react@18.2.0): + /react-textarea-autosize@8.5.3(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ==} engines: {node: '>=10'} peerDependencies: @@ -11651,7 +11715,7 @@ packages: '@babel/runtime': 7.23.6 react: 18.2.0 use-composed-ref: 1.3.0(react@18.2.0) - use-latest: 1.2.1(@types/react@18.2.46)(react@18.2.0) + use-latest: 1.2.1(@types/react@18.2.47)(react@18.2.0) transitivePeerDependencies: - '@types/react' dev: false @@ -11721,18 +11785,18 @@ packages: dependencies: loose-envify: 1.4.0 - /reactflow@11.10.1(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0): + /reactflow@11.10.1(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Q616fElAc5/N37tMwjuRkkgm/VgmnLLTNNCj61z5mvJxae+/VXZQMfot1K6a5LLz9G3SVKqU97PMb9Ga1PRXew==} peerDependencies: react: '>=17' react-dom: '>=17' dependencies: - '@reactflow/background': 11.3.6(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@reactflow/controls': 11.2.6(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@reactflow/core': 11.10.1(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@reactflow/minimap': 11.7.6(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@reactflow/node-resizer': 2.2.6(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) - '@reactflow/node-toolbar': 1.3.6(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/background': 11.3.6(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/controls': 11.2.6(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/core': 11.10.1(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/minimap': 11.7.6(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/node-resizer': 2.2.6(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/node-toolbar': 1.3.6(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: @@ -11810,8 +11874,8 @@ packages: resolution: {integrity: sha512-GHESQC+Y0PV98ZBoaC6br6cDOsNiM1Cu4UleGMqMWCXX03jIr3BoozYVrRkLVVAl4sC216chakMnZOu6SwNdGA==} dev: false - /redux-remember@5.0.1(redux@5.0.1): - resolution: {integrity: sha512-gWRyYIdfBYHxk1r5XcvjCsHpLFTQ+dIKj0hUcshlJYp51irt6cbkY6WJfvlC233UVQ02MYSx08ugSwaqHFNEhg==} + /redux-remember@5.1.0(redux@5.0.1): + resolution: {integrity: sha512-Z6/S/brpwflOsGpX8Az93eujJ5fytMcaefxDfx0iib5d0DkL804zlw/Fhh/4HzZ5nXsP67j1zPUeDNWO1rhfvA==} peerDependencies: redux: '>=5.0.0' dependencies: @@ -12064,24 +12128,26 @@ packages: fsevents: 2.3.3 dev: true - /rollup@4.9.2: - resolution: {integrity: sha512-66RB8OtFKUTozmVEh3qyNfH+b+z2RXBVloqO2KCC/pjFaGaHtxP9fVfOQKPSGXg2mElmjmxjW/fZ7iKrEpMH5Q==} + /rollup@4.9.4: + resolution: {integrity: sha512-2ztU7pY/lrQyXSCnnoU4ICjT/tCG9cdH3/G25ERqE3Lst6vl2BCM5hL2Nw+sslAvAf+ccKsAq1SkKQALyqhR7g==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + dependencies: + '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.9.2 - '@rollup/rollup-android-arm64': 4.9.2 - '@rollup/rollup-darwin-arm64': 4.9.2 - '@rollup/rollup-darwin-x64': 4.9.2 - '@rollup/rollup-linux-arm-gnueabihf': 4.9.2 - '@rollup/rollup-linux-arm64-gnu': 4.9.2 - '@rollup/rollup-linux-arm64-musl': 4.9.2 - '@rollup/rollup-linux-riscv64-gnu': 4.9.2 - '@rollup/rollup-linux-x64-gnu': 4.9.2 - '@rollup/rollup-linux-x64-musl': 4.9.2 - '@rollup/rollup-win32-arm64-msvc': 4.9.2 - '@rollup/rollup-win32-ia32-msvc': 4.9.2 - '@rollup/rollup-win32-x64-msvc': 4.9.2 + '@rollup/rollup-android-arm-eabi': 4.9.4 + '@rollup/rollup-android-arm64': 4.9.4 + '@rollup/rollup-darwin-arm64': 4.9.4 + '@rollup/rollup-darwin-x64': 4.9.4 + '@rollup/rollup-linux-arm-gnueabihf': 4.9.4 + '@rollup/rollup-linux-arm64-gnu': 4.9.4 + '@rollup/rollup-linux-arm64-musl': 4.9.4 + '@rollup/rollup-linux-riscv64-gnu': 4.9.4 + '@rollup/rollup-linux-x64-gnu': 4.9.4 + '@rollup/rollup-linux-x64-musl': 4.9.4 + '@rollup/rollup-win32-arm64-msvc': 4.9.4 + '@rollup/rollup-win32-ia32-msvc': 4.9.4 + '@rollup/rollup-win32-x64-msvc': 4.9.4 fsevents: 2.3.3 dev: true @@ -12302,8 +12368,8 @@ packages: engines: {node: '>=8'} dev: true - /socket.io-client@4.7.2: - resolution: {integrity: sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w==} + /socket.io-client@4.7.3: + resolution: {integrity: sha512-nU+ywttCyBitXIl9Xe0RSEfek4LneYkJxCeNnKCuhwoH4jGXO1ipIUw/VA/+Vvv2G1MTym11fzFC0SxkrcfXDw==} engines: {node: '>=10.0.0'} dependencies: '@socket.io/component-emitter': 3.1.0 @@ -12437,11 +12503,11 @@ packages: resolution: {integrity: sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==} dev: true - /storybook@7.6.6: - resolution: {integrity: sha512-PmJxpjGdLvDOHaRzqLOvcJ3ALQPaNeW6D5Lv7rPPVbuO24wdDzd/75dPRP7gJKYcGE0NnDZ6cLQq3UlCfbkIBA==} + /storybook@7.6.7: + resolution: {integrity: sha512-1Cd895dqYIT5MOUOCDlD73OTWoJubLq/sWC7AMzkMrLu76yD4Cu6f+wv1HDrRAheRaCaeT3yhYEhsMB6qHIcaA==} hasBin: true dependencies: - '@storybook/cli': 7.6.6 + '@storybook/cli': 7.6.7 transitivePeerDependencies: - bufferutil - encoding @@ -13088,7 +13154,7 @@ packages: /unplugin@1.6.0: resolution: {integrity: sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==} dependencies: - acorn: 8.11.2 + acorn: 8.11.3 chokidar: 3.5.3 webpack-sources: 3.2.3 webpack-virtual-modules: 0.6.1 @@ -13116,7 +13182,7 @@ packages: punycode: 2.3.1 dev: true - /use-callback-ref@1.3.1(@types/react@18.2.46)(react@18.2.0): + /use-callback-ref@1.3.1(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-Lg4Vx1XZQauB42Hw3kK7JM6yjVjgFmFC5/Ab797s79aARomD2nEErc4mCgM8EZrARLmmbWpi5DGCadmK50DcAQ==} engines: {node: '>=10'} peerDependencies: @@ -13126,7 +13192,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.46 + '@types/react': 18.2.47 react: 18.2.0 tslib: 2.6.2 @@ -13157,7 +13223,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /use-isomorphic-layout-effect@1.1.2(@types/react@18.2.46)(react@18.2.0): + /use-isomorphic-layout-effect@1.1.2(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==} peerDependencies: '@types/react': '*' @@ -13166,11 +13232,11 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.46 + '@types/react': 18.2.47 react: 18.2.0 dev: false - /use-latest@1.2.1(@types/react@18.2.46)(react@18.2.0): + /use-latest@1.2.1(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==} peerDependencies: '@types/react': '*' @@ -13179,9 +13245,9 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.46 + '@types/react': 18.2.47 react: 18.2.0 - use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.46)(react@18.2.0) + use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.47)(react@18.2.0) dev: false /use-resize-observer@9.1.0(react-dom@18.2.0)(react@18.2.0): @@ -13195,7 +13261,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: true - /use-sidecar@1.1.2(@types/react@18.2.46)(react@18.2.0): + /use-sidecar@1.1.2(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} engines: {node: '>=10'} peerDependencies: @@ -13205,7 +13271,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.46 + '@types/react': 18.2.47 detect-node-es: 1.1.0 react: 18.2.0 tslib: 2.6.2 @@ -13258,15 +13324,15 @@ packages: engines: {node: '>= 0.8'} dev: true - /vite-plugin-css-injected-by-js@3.3.1(vite@5.0.10): + /vite-plugin-css-injected-by-js@3.3.1(vite@5.0.11): resolution: {integrity: sha512-PjM/X45DR3/V1K1fTRs8HtZHEQ55kIfdrn+dzaqNBFrOYO073SeSNCxp4j7gSYhV9NffVHaEnOL4myoko0ePAg==} peerDependencies: vite: '>2.0.0-0' dependencies: - vite: 5.0.10(@types/node@20.10.6) + vite: 5.0.11(@types/node@20.10.7) dev: true - /vite-plugin-dts@3.7.0(@types/node@20.10.6)(typescript@5.3.3)(vite@5.0.10): + /vite-plugin-dts@3.7.0(@types/node@20.10.7)(typescript@5.3.3)(vite@5.0.11): resolution: {integrity: sha512-np1uPaYzu98AtPReB8zkMnbjwcNHOABsLhqVOf81b3ol9b5M2wPcAVs8oqPnOpr6Us+7yDXVauwkxsk5+ldmRA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -13276,13 +13342,13 @@ packages: vite: optional: true dependencies: - '@microsoft/api-extractor': 7.39.0(@types/node@20.10.6) + '@microsoft/api-extractor': 7.39.0(@types/node@20.10.7) '@rollup/pluginutils': 5.1.0 '@vue/language-core': 1.8.27(typescript@5.3.3) debug: 4.3.4 kolorist: 1.8.0 typescript: 5.3.3 - vite: 5.0.10(@types/node@20.10.6) + vite: 5.0.11(@types/node@20.10.7) vue-tsc: 1.8.27(typescript@5.3.3) transitivePeerDependencies: - '@types/node' @@ -13290,7 +13356,7 @@ packages: - supports-color dev: true - /vite-plugin-eslint@1.8.1(eslint@8.56.0)(vite@5.0.10): + /vite-plugin-eslint@1.8.1(eslint@8.56.0)(vite@5.0.11): resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==} peerDependencies: eslint: '>=7' @@ -13300,10 +13366,10 @@ packages: '@types/eslint': 8.56.0 eslint: 8.56.0 rollup: 2.79.1 - vite: 5.0.10(@types/node@20.10.6) + vite: 5.0.11(@types/node@20.10.7) dev: true - /vite-tsconfig-paths@4.2.3(typescript@5.3.3)(vite@5.0.10): + /vite-tsconfig-paths@4.2.3(typescript@5.3.3)(vite@5.0.11): resolution: {integrity: sha512-xVsA2xe6QSlzBujtWF8q2NYexh7PAUYfzJ4C8Axpe/7d2pcERYxuxGgph9F4f0iQO36g5tyGq6eBUYIssdUrVw==} peerDependencies: vite: '*' @@ -13314,14 +13380,14 @@ packages: debug: 4.3.4 globrex: 0.1.2 tsconfck: 2.1.2(typescript@5.3.3) - vite: 5.0.10(@types/node@20.10.6) + vite: 5.0.11(@types/node@20.10.7) transitivePeerDependencies: - supports-color - typescript dev: true - /vite@5.0.10(@types/node@20.10.6): - resolution: {integrity: sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==} + /vite@5.0.11(@types/node@20.10.7): + resolution: {integrity: sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -13348,10 +13414,10 @@ packages: terser: optional: true dependencies: - '@types/node': 20.10.6 + '@types/node': 20.10.7 esbuild: 0.19.11 - postcss: 8.4.32 - rollup: 4.9.2 + postcss: 8.4.33 + rollup: 4.9.4 optionalDependencies: fsevents: 2.3.3 dev: true @@ -13644,7 +13710,7 @@ packages: resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} dev: false - /zustand@4.4.7(@types/react@18.2.46)(react@18.2.0): + /zustand@4.4.7(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-QFJWJMdlETcI69paJwhSMJz7PPWjVP8Sjhclxmxmxv/RYI7ZOvR5BHX+ktH0we9gTWQMxcne8q1OY8xxz604gw==} engines: {node: '>=12.7.0'} peerDependencies: @@ -13659,7 +13725,7 @@ packages: react: optional: true dependencies: - '@types/react': 18.2.46 + '@types/react': 18.2.47 react: 18.2.0 use-sync-external-store: 1.2.0(react@18.2.0) dev: false diff --git a/invokeai/frontend/web/src/app/hooks/useSocketIO.ts b/invokeai/frontend/web/src/app/hooks/useSocketIO.ts index dffdbf6ca2..dc2a8947fc 100644 --- a/invokeai/frontend/web/src/app/hooks/useSocketIO.ts +++ b/invokeai/frontend/web/src/app/hooks/useSocketIO.ts @@ -43,7 +43,7 @@ export const useSocketIO = () => { }, [baseUrl]); const socketOptions = useMemo(() => { - const options: Parameters[0] = { + const options: Partial = { timeout: 60000, path: '/ws/socket.io', autoConnect: false, // achtung! removing this breaks the dynamic middleware @@ -71,7 +71,7 @@ export const useSocketIO = () => { setEventListeners({ dispatch, socket }); socket.connect(); - if ($isDebugging.get()) { + if ($isDebugging.get() || import.meta.env.MODE === 'development') { window.$socketOptions = $socketOptions; console.log('Socket initialized', socket); } @@ -79,7 +79,7 @@ export const useSocketIO = () => { $isSocketInitialized.set(true); return () => { - if ($isDebugging.get()) { + if ($isDebugging.get() || import.meta.env.MODE === 'development') { window.$socketOptions = undefined; console.log('Socket teardown', socket); } diff --git a/invokeai/frontend/web/src/app/logging/logger.ts b/invokeai/frontend/web/src/app/logging/logger.ts index c0696c1f6a..c68fe64d39 100644 --- a/invokeai/frontend/web/src/app/logging/logger.ts +++ b/invokeai/frontend/web/src/app/logging/logger.ts @@ -1,9 +1,14 @@ import { createLogWriter } from '@roarr/browser-log-writer'; import { atom } from 'nanostores'; -import type { Logger } from 'roarr'; +import type { Logger, MessageSerializer } from 'roarr'; import { ROARR, Roarr } from 'roarr'; import { z } from 'zod'; +const serializeMessage: MessageSerializer = (message) => { + return JSON.stringify(message); +}; + +ROARR.serializeMessage = serializeMessage; ROARR.write = createLogWriter(); export const BASE_CONTEXT = {}; diff --git a/invokeai/frontend/web/src/app/store/enhancers/reduxRemember/driver.ts b/invokeai/frontend/web/src/app/store/enhancers/reduxRemember/driver.ts new file mode 100644 index 0000000000..bc27611cf7 --- /dev/null +++ b/invokeai/frontend/web/src/app/store/enhancers/reduxRemember/driver.ts @@ -0,0 +1,37 @@ +import { StorageError } from 'app/store/enhancers/reduxRemember/errors'; +import type { UseStore } from 'idb-keyval'; +import { + clear, + createStore as createIDBKeyValStore, + get, + set, +} from 'idb-keyval'; +import { action, atom } from 'nanostores'; +import type { Driver } from 'redux-remember'; + +// Create a custom idb-keyval store (just needed to customize the name) +export const $idbKeyValStore = atom( + createIDBKeyValStore('invoke', 'invoke-store') +); + +export const clearIdbKeyValStore = action($idbKeyValStore, 'clear', (store) => { + clear(store.get()); +}); + +// Create redux-remember driver, wrapping idb-keyval +export const idbKeyValDriver: Driver = { + getItem: (key) => { + try { + return get(key, $idbKeyValStore.get()); + } catch (originalError) { + throw new StorageError({ key, originalError }); + } + }, + setItem: (key, value) => { + try { + return set(key, value, $idbKeyValStore.get()); + } catch (originalError) { + throw new StorageError({ key, value, originalError }); + } + }, +}; diff --git a/invokeai/frontend/web/src/app/store/enhancers/reduxRemember/errors.ts b/invokeai/frontend/web/src/app/store/enhancers/reduxRemember/errors.ts new file mode 100644 index 0000000000..02fb32c8c5 --- /dev/null +++ b/invokeai/frontend/web/src/app/store/enhancers/reduxRemember/errors.ts @@ -0,0 +1,41 @@ +import { logger } from 'app/logging/logger'; +import { parseify } from 'common/util/serialize'; +import { PersistError, RehydrateError } from 'redux-remember'; +import { serializeError } from 'serialize-error'; + +export type StorageErrorArgs = { + key: string; + /* eslint-disable-next-line @typescript-eslint/no-explicit-any */ // any is correct + value?: any; + originalError?: unknown; +}; + +export class StorageError extends Error { + key: string; + /* eslint-disable-next-line @typescript-eslint/no-explicit-any */ // any is correct + value?: any; + originalError?: Error; + + constructor({ key, value, originalError }: StorageErrorArgs) { + super(`Error setting ${key}`); + this.name = 'StorageSetError'; + this.key = key; + if (value !== undefined) { + this.value = value; + } + if (originalError instanceof Error) { + this.originalError = originalError; + } + } +} + +export const errorHandler = (err: PersistError | RehydrateError) => { + const log = logger('system'); + if (err instanceof PersistError) { + log.error({ error: serializeError(err) }, 'Problem persisting state'); + } else if (err instanceof RehydrateError) { + log.error({ error: serializeError(err) }, 'Problem rehydrating state'); + } else { + log.error({ error: parseify(err) }, 'Problem in persistence layer'); + } +}; diff --git a/invokeai/frontend/web/src/app/store/enhancers/reduxRemember/serialize.ts b/invokeai/frontend/web/src/app/store/enhancers/reduxRemember/serialize.ts deleted file mode 100644 index 7b5e1cef5d..0000000000 --- a/invokeai/frontend/web/src/app/store/enhancers/reduxRemember/serialize.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { canvasPersistDenylist } from 'features/canvas/store/canvasPersistDenylist'; -import { controlAdaptersPersistDenylist } from 'features/controlAdapters/store/controlAdaptersPersistDenylist'; -import { dynamicPromptsPersistDenylist } from 'features/dynamicPrompts/store/dynamicPromptsPersistDenylist'; -import { galleryPersistDenylist } from 'features/gallery/store/galleryPersistDenylist'; -import { nodesPersistDenylist } from 'features/nodes/store/nodesPersistDenylist'; -import { generationPersistDenylist } from 'features/parameters/store/generationPersistDenylist'; -import { postprocessingPersistDenylist } from 'features/parameters/store/postprocessingPersistDenylist'; -import { systemPersistDenylist } from 'features/system/store/systemPersistDenylist'; -import { uiPersistDenylist } from 'features/ui/store/uiPersistDenylist'; -import { omit } from 'lodash-es'; -import type { SerializeFunction } from 'redux-remember'; - -const serializationDenylist: { - [key: string]: string[]; -} = { - canvas: canvasPersistDenylist, - gallery: galleryPersistDenylist, - generation: generationPersistDenylist, - nodes: nodesPersistDenylist, - postprocessing: postprocessingPersistDenylist, - system: systemPersistDenylist, - ui: uiPersistDenylist, - controlNet: controlAdaptersPersistDenylist, - dynamicPrompts: dynamicPromptsPersistDenylist, -}; - -export const serialize: SerializeFunction = (data, key) => { - const result = omit(data, serializationDenylist[key] ?? []); - return JSON.stringify(result); -}; diff --git a/invokeai/frontend/web/src/app/store/enhancers/reduxRemember/unserialize.ts b/invokeai/frontend/web/src/app/store/enhancers/reduxRemember/unserialize.ts deleted file mode 100644 index 01f993382b..0000000000 --- a/invokeai/frontend/web/src/app/store/enhancers/reduxRemember/unserialize.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { initialCanvasState } from 'features/canvas/store/canvasSlice'; -import { initialControlAdapterState } from 'features/controlAdapters/store/controlAdaptersSlice'; -import { initialDynamicPromptsState } from 'features/dynamicPrompts/store/dynamicPromptsSlice'; -import { initialGalleryState } from 'features/gallery/store/gallerySlice'; -import { initialNodesState } from 'features/nodes/store/nodesSlice'; -import { initialGenerationState } from 'features/parameters/store/generationSlice'; -import { initialPostprocessingState } from 'features/parameters/store/postprocessingSlice'; -import { initialSDXLState } from 'features/sdxl/store/sdxlSlice'; -import { initialConfigState } from 'features/system/store/configSlice'; -import { initialSystemState } from 'features/system/store/systemSlice'; -import { initialUIState } from 'features/ui/store/uiSlice'; -import { defaultsDeep } from 'lodash-es'; -import type { UnserializeFunction } from 'redux-remember'; - -const initialStates: { - [key: string]: object; // TODO: type this properly -} = { - canvas: initialCanvasState, - gallery: initialGalleryState, - generation: initialGenerationState, - nodes: initialNodesState, - postprocessing: initialPostprocessingState, - system: initialSystemState, - config: initialConfigState, - ui: initialUIState, - controlAdapters: initialControlAdapterState, - dynamicPrompts: initialDynamicPromptsState, - sdxl: initialSDXLState, -}; - -export const unserialize: UnserializeFunction = (data, key) => { - const result = defaultsDeep(JSON.parse(data), initialStates[key]); - return result; -}; diff --git a/invokeai/frontend/web/src/app/store/middleware/debugLoggerMiddleware.ts b/invokeai/frontend/web/src/app/store/middleware/debugLoggerMiddleware.ts new file mode 100644 index 0000000000..501a8146ec --- /dev/null +++ b/invokeai/frontend/web/src/app/store/middleware/debugLoggerMiddleware.ts @@ -0,0 +1,16 @@ +import type { Middleware, MiddlewareAPI } from '@reduxjs/toolkit'; +import { diff } from 'jsondiffpatch'; + +/** + * Super simple logger middleware. Useful for debugging when the redux devtools are awkward. + */ +export const debugLoggerMiddleware: Middleware = + (api: MiddlewareAPI) => (next) => (action) => { + const originalState = api.getState(); + console.log('REDUX: dispatching', action); + const result = next(action); + const nextState = api.getState(); + console.log('REDUX: next state', nextState); + console.log('REDUX: diff', diff(originalState, nextState)); + return result; + }; diff --git a/invokeai/frontend/web/src/app/store/middleware/devtools/actionSanitizer.ts b/invokeai/frontend/web/src/app/store/middleware/devtools/actionSanitizer.ts index 108c925ad9..9c7bae725b 100644 --- a/invokeai/frontend/web/src/app/store/middleware/devtools/actionSanitizer.ts +++ b/invokeai/frontend/web/src/app/store/middleware/devtools/actionSanitizer.ts @@ -1,8 +1,10 @@ import type { UnknownAction } from '@reduxjs/toolkit'; import { isAnyGraphBuilt } from 'features/nodes/store/actions'; import { nodeTemplatesBuilt } from 'features/nodes/store/nodeTemplatesSlice'; +import { cloneDeep } from 'lodash-es'; import { receivedOpenAPISchema } from 'services/api/thunks/schema'; import type { Graph } from 'services/api/types'; +import { socketGeneratorProgress } from 'services/events/actions'; export const actionSanitizer = (action: A): A => { if (isAnyGraphBuilt(action)) { @@ -30,5 +32,14 @@ export const actionSanitizer = (action: A): A => { }; } + if (socketGeneratorProgress.match(action)) { + const sanitized = cloneDeep(action); + if (sanitized.payload.data.progress_image) { + sanitized.payload.data.progress_image.dataURL = + ''; + } + return sanitized; + } + return action; }; diff --git a/invokeai/frontend/web/src/app/store/middleware/devtools/actionsDenylist.ts b/invokeai/frontend/web/src/app/store/middleware/devtools/actionsDenylist.ts index a79b38917f..defb98b64c 100644 --- a/invokeai/frontend/web/src/app/store/middleware/devtools/actionsDenylist.ts +++ b/invokeai/frontend/web/src/app/store/middleware/devtools/actionsDenylist.ts @@ -1,16 +1,16 @@ /** * This is a list of actions that should be excluded in the Redux DevTools. */ -export const actionsDenylist = [ +export const actionsDenylist: string[] = [ // very spammy canvas actions - 'canvas/setStageCoordinates', - 'canvas/setStageScale', - 'canvas/setBoundingBoxCoordinates', - 'canvas/setBoundingBoxDimensions', - 'canvas/addPointToCurrentLine', + // 'canvas/setStageCoordinates', + // 'canvas/setStageScale', + // 'canvas/setBoundingBoxCoordinates', + // 'canvas/setBoundingBoxDimensions', + // 'canvas/addPointToCurrentLine', // bazillions during generation - 'socket/socketGeneratorProgress', - 'socket/appSocketGeneratorProgress', + // 'socket/socketGeneratorProgress', + // 'socket/appSocketGeneratorProgress', // this happens after every state change - '@@REMEMBER_PERSISTED', + // '@@REMEMBER_PERSISTED', ]; diff --git a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/promptChanged.ts b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/promptChanged.ts index cb51adce14..7b24220e98 100644 --- a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/promptChanged.ts +++ b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/promptChanged.ts @@ -11,7 +11,7 @@ import { import { getShouldProcessPrompt } from 'features/dynamicPrompts/util/getShouldProcessPrompt'; import { setPositivePrompt } from 'features/parameters/store/generationSlice'; import { utilitiesApi } from 'services/api/endpoints/utilities'; -import { appSocketConnected } from 'services/events/actions'; +import { socketConnected } from 'services/events/actions'; import { startAppListening } from '..'; @@ -20,7 +20,7 @@ const matcher = isAnyOf( combinatorialToggled, maxPromptsChanged, maxPromptsReset, - appSocketConnected + socketConnected ); export const addDynamicPromptsListener = () => { diff --git a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketConnected.ts b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketConnected.ts index 88b9b3b5d9..589d312a9e 100644 --- a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketConnected.ts +++ b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketConnected.ts @@ -3,16 +3,16 @@ import { isInitializedChanged } from 'features/system/store/systemSlice'; import { size } from 'lodash-es'; import { api } from 'services/api'; import { receivedOpenAPISchema } from 'services/api/thunks/schema'; -import { appSocketConnected, socketConnected } from 'services/events/actions'; +import { socketConnected } from 'services/events/actions'; import { startAppListening } from '../..'; +const log = logger('socketio'); + export const addSocketConnectedEventListener = () => { startAppListening({ actionCreator: socketConnected, effect: (action, { dispatch, getState }) => { - const log = logger('socketio'); - log.debug('Connected'); const { nodeTemplates, config, system } = getState(); @@ -29,9 +29,6 @@ export const addSocketConnectedEventListener = () => { } else { dispatch(isInitializedChanged(true)); } - - // pass along the socket event as an application action - dispatch(appSocketConnected(action.payload)); }, }); }; diff --git a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketDisconnected.ts b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketDisconnected.ts index 8157c5bf85..02d3b77f89 100644 --- a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketDisconnected.ts +++ b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketDisconnected.ts @@ -1,20 +1,15 @@ import { logger } from 'app/logging/logger'; -import { - appSocketDisconnected, - socketDisconnected, -} from 'services/events/actions'; +import { socketDisconnected } from 'services/events/actions'; import { startAppListening } from '../..'; +const log = logger('socketio'); + export const addSocketDisconnectedEventListener = () => { startAppListening({ actionCreator: socketDisconnected, - effect: (action, { dispatch }) => { - const log = logger('socketio'); + effect: () => { log.debug('Disconnected'); - - // pass along the socket event as an application action - dispatch(appSocketDisconnected(action.payload)); }, }); }; diff --git a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketGeneratorProgress.ts b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketGeneratorProgress.ts index 77fcf85ad1..0965f41ee1 100644 --- a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketGeneratorProgress.ts +++ b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketGeneratorProgress.ts @@ -1,20 +1,15 @@ import { logger } from 'app/logging/logger'; -import { - appSocketGeneratorProgress, - socketGeneratorProgress, -} from 'services/events/actions'; +import { socketGeneratorProgress } from 'services/events/actions'; import { startAppListening } from '../..'; +const log = logger('socketio'); + export const addGeneratorProgressEventListener = () => { startAppListening({ actionCreator: socketGeneratorProgress, - effect: (action, { dispatch }) => { - const log = logger('socketio'); - + effect: (action) => { log.trace(action.payload, `Generator progress`); - - dispatch(appSocketGeneratorProgress(action.payload)); }, }); }; diff --git a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketGraphExecutionStateComplete.ts b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketGraphExecutionStateComplete.ts index 32946687e0..e4f83561c8 100644 --- a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketGraphExecutionStateComplete.ts +++ b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketGraphExecutionStateComplete.ts @@ -1,19 +1,15 @@ import { logger } from 'app/logging/logger'; -import { - appSocketGraphExecutionStateComplete, - socketGraphExecutionStateComplete, -} from 'services/events/actions'; +import { socketGraphExecutionStateComplete } from 'services/events/actions'; import { startAppListening } from '../..'; +const log = logger('socketio'); + export const addGraphExecutionStateCompleteEventListener = () => { startAppListening({ actionCreator: socketGraphExecutionStateComplete, - effect: (action, { dispatch }) => { - const log = logger('socketio'); + effect: (action) => { log.debug(action.payload, 'Session complete'); - // pass along the socket event as an application action - dispatch(appSocketGraphExecutionStateComplete(action.payload)); }, }); }; diff --git a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketInvocationComplete.ts b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketInvocationComplete.ts index 8eac0f51ae..d59ac3fb11 100644 --- a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketInvocationComplete.ts +++ b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketInvocationComplete.ts @@ -15,21 +15,19 @@ import { import { boardsApi } from 'services/api/endpoints/boards'; import { imagesApi } from 'services/api/endpoints/images'; import { imagesAdapter } from 'services/api/util'; -import { - appSocketInvocationComplete, - socketInvocationComplete, -} from 'services/events/actions'; +import { socketInvocationComplete } from 'services/events/actions'; import { startAppListening } from '../..'; // These nodes output an image, but do not actually *save* an image, so we don't want to handle the gallery logic on them const nodeTypeDenylist = ['load_image', 'image']; +const log = logger('socketio'); + export const addInvocationCompleteEventListener = () => { startAppListening({ actionCreator: socketInvocationComplete, effect: async (action, { dispatch, getState }) => { - const log = logger('socketio'); const { data } = action.payload; log.debug( { data: parseify(data) }, @@ -136,8 +134,6 @@ export const addInvocationCompleteEventListener = () => { } } } - // pass along the socket event as an application action - dispatch(appSocketInvocationComplete(action.payload)); }, }); }; diff --git a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketInvocationError.ts b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketInvocationError.ts index 3f5d4c21c4..a13a9011c5 100644 --- a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketInvocationError.ts +++ b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketInvocationError.ts @@ -1,21 +1,18 @@ import { logger } from 'app/logging/logger'; -import { - appSocketInvocationError, - socketInvocationError, -} from 'services/events/actions'; +import { socketInvocationError } from 'services/events/actions'; import { startAppListening } from '../..'; +const log = logger('socketio'); + export const addInvocationErrorEventListener = () => { startAppListening({ actionCreator: socketInvocationError, - effect: (action, { dispatch }) => { - const log = logger('socketio'); + effect: (action) => { log.error( action.payload, `Invocation error (${action.payload.data.node.type})` ); - dispatch(appSocketInvocationError(action.payload)); }, }); }; diff --git a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketInvocationRetrievalError.ts b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketInvocationRetrievalError.ts index 5700b73d39..394c67dbc9 100644 --- a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketInvocationRetrievalError.ts +++ b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketInvocationRetrievalError.ts @@ -1,21 +1,18 @@ import { logger } from 'app/logging/logger'; -import { - appSocketInvocationRetrievalError, - socketInvocationRetrievalError, -} from 'services/events/actions'; +import { socketInvocationRetrievalError } from 'services/events/actions'; import { startAppListening } from '../..'; +const log = logger('socketio'); + export const addInvocationRetrievalErrorEventListener = () => { startAppListening({ actionCreator: socketInvocationRetrievalError, - effect: (action, { dispatch }) => { - const log = logger('socketio'); + effect: (action) => { log.error( action.payload, `Invocation retrieval error (${action.payload.data.graph_execution_state_id})` ); - dispatch(appSocketInvocationRetrievalError(action.payload)); }, }); }; diff --git a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketInvocationStarted.ts b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketInvocationStarted.ts index 8dd7730143..6b293132a2 100644 --- a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketInvocationStarted.ts +++ b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketInvocationStarted.ts @@ -1,23 +1,18 @@ import { logger } from 'app/logging/logger'; -import { - appSocketInvocationStarted, - socketInvocationStarted, -} from 'services/events/actions'; +import { socketInvocationStarted } from 'services/events/actions'; import { startAppListening } from '../..'; +const log = logger('socketio'); + export const addInvocationStartedEventListener = () => { startAppListening({ actionCreator: socketInvocationStarted, - effect: (action, { dispatch }) => { - const log = logger('socketio'); - + effect: (action) => { log.debug( action.payload, `Invocation started (${action.payload.data.node.type})` ); - - dispatch(appSocketInvocationStarted(action.payload)); }, }); }; diff --git a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketModelLoad.ts b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketModelLoad.ts index cef3b1fe6d..828102bfa9 100644 --- a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketModelLoad.ts +++ b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketModelLoad.ts @@ -1,18 +1,17 @@ import { logger } from 'app/logging/logger'; import { - appSocketModelLoadCompleted, - appSocketModelLoadStarted, socketModelLoadCompleted, socketModelLoadStarted, } from 'services/events/actions'; import { startAppListening } from '../..'; +const log = logger('socketio'); + export const addModelLoadEventListener = () => { startAppListening({ actionCreator: socketModelLoadStarted, - effect: (action, { dispatch }) => { - const log = logger('socketio'); + effect: (action) => { const { base_model, model_name, model_type, submodel } = action.payload.data; @@ -23,16 +22,12 @@ export const addModelLoadEventListener = () => { } log.debug(action.payload, message); - - // pass along the socket event as an application action - dispatch(appSocketModelLoadStarted(action.payload)); }, }); startAppListening({ actionCreator: socketModelLoadCompleted, - effect: (action, { dispatch }) => { - const log = logger('socketio'); + effect: (action) => { const { base_model, model_name, model_type, submodel } = action.payload.data; @@ -43,8 +38,6 @@ export const addModelLoadEventListener = () => { } log.debug(action.payload, message); - // pass along the socket event as an application action - dispatch(appSocketModelLoadCompleted(action.payload)); }, }); }; diff --git a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketQueueItemStatusChanged.ts b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketQueueItemStatusChanged.ts index 370fd35407..a766437f15 100644 --- a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketQueueItemStatusChanged.ts +++ b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketQueueItemStatusChanged.ts @@ -1,18 +1,15 @@ import { logger } from 'app/logging/logger'; import { queueApi, queueItemsAdapter } from 'services/api/endpoints/queue'; -import { - appSocketQueueItemStatusChanged, - socketQueueItemStatusChanged, -} from 'services/events/actions'; +import { socketQueueItemStatusChanged } from 'services/events/actions'; import { startAppListening } from '../..'; +const log = logger('socketio'); + export const addSocketQueueItemStatusChangedEventListener = () => { startAppListening({ actionCreator: socketQueueItemStatusChanged, effect: async (action, { dispatch }) => { - const log = logger('socketio'); - // we've got new status for the queue item, batch and queue const { queue_item, batch_status, queue_status } = action.payload.data; @@ -73,9 +70,6 @@ export const addSocketQueueItemStatusChangedEventListener = () => { 'InvocationCacheStatus', ]) ); - - // Pass the event along - dispatch(appSocketQueueItemStatusChanged(action.payload)); }, }); }; diff --git a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketSessionRetrievalError.ts b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketSessionRetrievalError.ts index e37b972064..e20a8cf6cb 100644 --- a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketSessionRetrievalError.ts +++ b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketSessionRetrievalError.ts @@ -1,21 +1,18 @@ import { logger } from 'app/logging/logger'; -import { - appSocketSessionRetrievalError, - socketSessionRetrievalError, -} from 'services/events/actions'; +import { socketSessionRetrievalError } from 'services/events/actions'; import { startAppListening } from '../..'; +const log = logger('socketio'); + export const addSessionRetrievalErrorEventListener = () => { startAppListening({ actionCreator: socketSessionRetrievalError, - effect: (action, { dispatch }) => { - const log = logger('socketio'); + effect: (action) => { log.error( action.payload, `Session retrieval error (${action.payload.data.graph_execution_state_id})` ); - dispatch(appSocketSessionRetrievalError(action.payload)); }, }); }; diff --git a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketSubscribed.ts b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketSubscribed.ts index 9c5e73981a..df7d5b4e02 100644 --- a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketSubscribed.ts +++ b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketSubscribed.ts @@ -1,18 +1,15 @@ import { logger } from 'app/logging/logger'; -import { - appSocketSubscribedSession, - socketSubscribedSession, -} from 'services/events/actions'; +import { socketSubscribedSession } from 'services/events/actions'; import { startAppListening } from '../..'; +const log = logger('socketio'); + export const addSocketSubscribedEventListener = () => { startAppListening({ actionCreator: socketSubscribedSession, - effect: (action, { dispatch }) => { - const log = logger('socketio'); + effect: (action) => { log.debug(action.payload, 'Subscribed'); - dispatch(appSocketSubscribedSession(action.payload)); }, }); }; diff --git a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketUnsubscribed.ts b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketUnsubscribed.ts index 05984ba67f..4552fba2c5 100644 --- a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketUnsubscribed.ts +++ b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketUnsubscribed.ts @@ -1,18 +1,14 @@ import { logger } from 'app/logging/logger'; -import { - appSocketUnsubscribedSession, - socketUnsubscribedSession, -} from 'services/events/actions'; +import { socketUnsubscribedSession } from 'services/events/actions'; import { startAppListening } from '../..'; +const log = logger('socketio'); export const addSocketUnsubscribedEventListener = () => { startAppListening({ actionCreator: socketUnsubscribedSession, - effect: (action, { dispatch }) => { - const log = logger('socketio'); + effect: (action) => { log.debug(action.payload, 'Unsubscribed'); - dispatch(appSocketUnsubscribedSession(action.payload)); }, }); }; diff --git a/invokeai/frontend/web/src/app/store/store.ts b/invokeai/frontend/web/src/app/store/store.ts index 6b85dbfcc0..567b70786f 100644 --- a/invokeai/frontend/web/src/app/store/store.ts +++ b/invokeai/frontend/web/src/app/store/store.ts @@ -4,40 +4,94 @@ import { combineReducers, configureStore, } from '@reduxjs/toolkit'; -import canvasReducer from 'features/canvas/store/canvasSlice'; +import { logger } from 'app/logging/logger'; +import { idbKeyValDriver } from 'app/store/enhancers/reduxRemember/driver'; +import { errorHandler } from 'app/store/enhancers/reduxRemember/errors'; +import { canvasPersistDenylist } from 'features/canvas/store/canvasPersistDenylist'; +import canvasReducer, { + initialCanvasState, + migrateCanvasState, +} from 'features/canvas/store/canvasSlice'; import changeBoardModalReducer from 'features/changeBoardModal/store/slice'; -import controlAdaptersReducer from 'features/controlAdapters/store/controlAdaptersSlice'; +import { controlAdaptersPersistDenylist } from 'features/controlAdapters/store/controlAdaptersPersistDenylist'; +import controlAdaptersReducer, { + initialControlAdaptersState, + migrateControlAdaptersState, +} from 'features/controlAdapters/store/controlAdaptersSlice'; import deleteImageModalReducer from 'features/deleteImageModal/store/slice'; -import dynamicPromptsReducer from 'features/dynamicPrompts/store/dynamicPromptsSlice'; -import galleryReducer from 'features/gallery/store/gallerySlice'; -import hrfReducer from 'features/hrf/store/hrfSlice'; -import loraReducer from 'features/lora/store/loraSlice'; -import modelmanagerReducer from 'features/modelManager/store/modelManagerSlice'; -import nodesReducer from 'features/nodes/store/nodesSlice'; +import { dynamicPromptsPersistDenylist } from 'features/dynamicPrompts/store/dynamicPromptsPersistDenylist'; +import dynamicPromptsReducer, { + initialDynamicPromptsState, + migrateDynamicPromptsState, +} from 'features/dynamicPrompts/store/dynamicPromptsSlice'; +import { galleryPersistDenylist } from 'features/gallery/store/galleryPersistDenylist'; +import galleryReducer, { + initialGalleryState, + migrateGalleryState, +} from 'features/gallery/store/gallerySlice'; +import hrfReducer, { + initialHRFState, + migrateHRFState, +} from 'features/hrf/store/hrfSlice'; +import loraReducer, { + initialLoraState, + migrateLoRAState, +} from 'features/lora/store/loraSlice'; +import modelmanagerReducer, { + initialModelManagerState, + migrateModelManagerState, +} from 'features/modelManager/store/modelManagerSlice'; +import { nodesPersistDenylist } from 'features/nodes/store/nodesPersistDenylist'; +import nodesReducer, { + initialNodesState, + migrateNodesState, +} from 'features/nodes/store/nodesSlice'; import nodeTemplatesReducer from 'features/nodes/store/nodeTemplatesSlice'; -import workflowReducer from 'features/nodes/store/workflowSlice'; -import generationReducer from 'features/parameters/store/generationSlice'; -import postprocessingReducer from 'features/parameters/store/postprocessingSlice'; +import workflowReducer, { + initialWorkflowState, + migrateWorkflowState, +} from 'features/nodes/store/workflowSlice'; +import { generationPersistDenylist } from 'features/parameters/store/generationPersistDenylist'; +import generationReducer, { + initialGenerationState, + migrateGenerationState, +} from 'features/parameters/store/generationSlice'; +import { postprocessingPersistDenylist } from 'features/parameters/store/postprocessingPersistDenylist'; +import postprocessingReducer, { + initialPostprocessingState, + migratePostprocessingState, +} from 'features/parameters/store/postprocessingSlice'; import queueReducer from 'features/queue/store/queueSlice'; -import sdxlReducer from 'features/sdxl/store/sdxlSlice'; +import sdxlReducer, { + initialSDXLState, + migrateSDXLState, +} from 'features/sdxl/store/sdxlSlice'; import configReducer from 'features/system/store/configSlice'; -import systemReducer from 'features/system/store/systemSlice'; -import uiReducer from 'features/ui/store/uiSlice'; -import { createStore as createIDBKeyValStore, get, set } from 'idb-keyval'; +import { systemPersistDenylist } from 'features/system/store/systemPersistDenylist'; +import systemReducer, { + initialSystemState, + migrateSystemState, +} from 'features/system/store/systemSlice'; +import { uiPersistDenylist } from 'features/ui/store/uiPersistDenylist'; +import uiReducer, { + initialUIState, + migrateUIState, +} from 'features/ui/store/uiSlice'; +import { diff } from 'jsondiffpatch'; +import { defaultsDeep, keys, omit, pick } from 'lodash-es'; import dynamicMiddlewares from 'redux-dynamic-middlewares'; -import type { Driver } from 'redux-remember'; +import type { SerializeFunction, UnserializeFunction } from 'redux-remember'; import { rememberEnhancer, rememberReducer } from 'redux-remember'; +import { serializeError } from 'serialize-error'; import { api } from 'services/api'; import { authToastMiddleware } from 'services/api/authToastMiddleware'; +import type { JsonObject } from 'type-fest'; import { STORAGE_PREFIX } from './constants'; -import { serialize } from './enhancers/reduxRemember/serialize'; -import { unserialize } from './enhancers/reduxRemember/unserialize'; import { actionSanitizer } from './middleware/devtools/actionSanitizer'; import { actionsDenylist } from './middleware/devtools/actionsDenylist'; import { stateSanitizer } from './middleware/devtools/stateSanitizer'; import { listenerMiddleware } from './middleware/listenerMiddleware'; - const allReducers = { canvas: canvasReducer, gallery: galleryReducer, @@ -65,7 +119,7 @@ const rootReducer = combineReducers(allReducers); const rememberedRootReducer = rememberReducer(rootReducer); -const rememberedKeys: (keyof typeof allReducers)[] = [ +const rememberedKeys = [ 'canvas', 'gallery', 'generation', @@ -80,15 +134,106 @@ const rememberedKeys: (keyof typeof allReducers)[] = [ 'lora', 'modelmanager', 'hrf', -]; +] satisfies (keyof typeof allReducers)[]; -// Create a custom idb-keyval store (just needed to customize the name) -export const idbKeyValStore = createIDBKeyValStore('invoke', 'invoke-store'); +type SliceConfig = { + /* eslint-disable-next-line @typescript-eslint/no-explicit-any */ + initialState: any; + /* eslint-disable-next-line @typescript-eslint/no-explicit-any */ + migrate: (state: any) => any; +}; -// Create redux-remember driver, wrapping idb-keyval -const idbKeyValDriver: Driver = { - getItem: (key) => get(key, idbKeyValStore), - setItem: (key, value) => set(key, value, idbKeyValStore), +const sliceConfigs: { + [key in (typeof rememberedKeys)[number]]: SliceConfig; +} = { + canvas: { initialState: initialCanvasState, migrate: migrateCanvasState }, + gallery: { initialState: initialGalleryState, migrate: migrateGalleryState }, + generation: { + initialState: initialGenerationState, + migrate: migrateGenerationState, + }, + nodes: { initialState: initialNodesState, migrate: migrateNodesState }, + postprocessing: { + initialState: initialPostprocessingState, + migrate: migratePostprocessingState, + }, + system: { initialState: initialSystemState, migrate: migrateSystemState }, + workflow: { + initialState: initialWorkflowState, + migrate: migrateWorkflowState, + }, + ui: { initialState: initialUIState, migrate: migrateUIState }, + controlAdapters: { + initialState: initialControlAdaptersState, + migrate: migrateControlAdaptersState, + }, + dynamicPrompts: { + initialState: initialDynamicPromptsState, + migrate: migrateDynamicPromptsState, + }, + sdxl: { initialState: initialSDXLState, migrate: migrateSDXLState }, + lora: { initialState: initialLoraState, migrate: migrateLoRAState }, + modelmanager: { + initialState: initialModelManagerState, + migrate: migrateModelManagerState, + }, + hrf: { initialState: initialHRFState, migrate: migrateHRFState }, +}; + +const unserialize: UnserializeFunction = (data, key) => { + const log = logger('system'); + const config = sliceConfigs[key as keyof typeof sliceConfigs]; + if (!config) { + throw new Error(`No unserialize config for slice "${key}"`); + } + try { + const { initialState, migrate } = config; + const parsed = JSON.parse(data); + // strip out old keys + const stripped = pick(parsed, keys(initialState)); + // run (additive) migrations + const migrated = migrate(stripped); + // merge in initial state as default values, covering any missing keys + const transformed = defaultsDeep(migrated, initialState); + + log.debug( + { + persistedData: parsed, + rehydratedData: transformed, + diff: diff(parsed, transformed) as JsonObject, // this is always serializable + }, + `Rehydrated slice "${key}"` + ); + return transformed; + } catch (err) { + log.warn( + { error: serializeError(err) }, + `Error rehydrating slice "${key}", falling back to default initial state` + ); + return config.initialState; + } +}; + +const serializationDenylist: { + [key in (typeof rememberedKeys)[number]]?: string[]; +} = { + canvas: canvasPersistDenylist, + gallery: galleryPersistDenylist, + generation: generationPersistDenylist, + nodes: nodesPersistDenylist, + postprocessing: postprocessingPersistDenylist, + system: systemPersistDenylist, + ui: uiPersistDenylist, + controlAdapters: controlAdaptersPersistDenylist, + dynamicPrompts: dynamicPromptsPersistDenylist, +}; + +export const serialize: SerializeFunction = (data, key) => { + const result = omit( + data, + serializationDenylist[key as keyof typeof serializationDenylist] ?? [] + ); + return JSON.stringify(result); }; export const createStore = (uniqueStoreKey?: string, persist = true) => @@ -114,6 +259,7 @@ export const createStore = (uniqueStoreKey?: string, persist = true) => prefix: uniqueStoreKey ? `${STORAGE_PREFIX}${uniqueStoreKey}-` : STORAGE_PREFIX, + errorHandler, }) ); } @@ -124,21 +270,9 @@ export const createStore = (uniqueStoreKey?: string, persist = true) => stateSanitizer, trace: true, predicate: (state, action) => { - // TODO: hook up to the log level param in system slice - // manually type state, cannot type the arg - // const typedState = state as ReturnType; - - // TODO: doing this breaks the rtk query devtools, commenting out for now - // if (action.type.startsWith('api/')) { - // // don't log api actions, with manual cache updates they are extremely noisy - // return false; - // } - if (actionsDenylist.includes(action.type)) { - // don't log other noisy actions return false; } - return true; }, }, diff --git a/invokeai/frontend/web/src/common/hooks/useClearStorage.ts b/invokeai/frontend/web/src/common/hooks/useClearStorage.ts index 0ab4936d72..b833882902 100644 --- a/invokeai/frontend/web/src/common/hooks/useClearStorage.ts +++ b/invokeai/frontend/web/src/common/hooks/useClearStorage.ts @@ -1,10 +1,9 @@ -import { idbKeyValStore } from 'app/store/store'; -import { clear } from 'idb-keyval'; +import { clearIdbKeyValStore } from 'app/store/enhancers/reduxRemember/driver'; import { useCallback } from 'react'; export const useClearStorage = () => { const clearStorage = useCallback(() => { - clear(idbKeyValStore); + clearIdbKeyValStore(); localStorage.clear(); }, []); diff --git a/invokeai/frontend/web/src/common/hooks/useGlobalHotkeys.ts b/invokeai/frontend/web/src/common/hooks/useGlobalHotkeys.ts index b17e93df45..4416480f0e 100644 --- a/invokeai/frontend/web/src/common/hooks/useGlobalHotkeys.ts +++ b/invokeai/frontend/web/src/common/hooks/useGlobalHotkeys.ts @@ -57,7 +57,6 @@ export const useGlobalHotkeys = () => { { enabled: () => !isDisabledCancelQueueItem && !isLoadingCancelQueueItem, preventDefault: true, - enableOnFormTags: ['input', 'textarea', 'select'], }, [cancelQueueItem, isDisabledCancelQueueItem, isLoadingCancelQueueItem] ); @@ -74,7 +73,6 @@ export const useGlobalHotkeys = () => { { enabled: () => !isDisabledClearQueue && !isLoadingClearQueue, preventDefault: true, - enableOnFormTags: ['input', 'textarea', 'select'], }, [clearQueue, isDisabledClearQueue, isLoadingClearQueue] ); diff --git a/invokeai/frontend/web/src/features/canvas/store/canvasSlice.ts b/invokeai/frontend/web/src/features/canvas/store/canvasSlice.ts index 2ca1e1eaed..82054675e6 100644 --- a/invokeai/frontend/web/src/features/canvas/store/canvasSlice.ts +++ b/invokeai/frontend/web/src/features/canvas/store/canvasSlice.ts @@ -11,6 +11,7 @@ import { STAGE_PADDING_PERCENTAGE } from 'features/canvas/util/constants'; import floorCoordinates from 'features/canvas/util/floorCoordinates'; import getScaledBoundingBoxDimensions from 'features/canvas/util/getScaledBoundingBoxDimensions'; import roundDimensionsToMultiple from 'features/canvas/util/roundDimensionsToMultiple'; +import { initialAspectRatioState } from 'features/parameters/components/ImageSize/constants'; import type { AspectRatioState } from 'features/parameters/components/ImageSize/types'; import { modelChanged } from 'features/parameters/store/generationSlice'; import type { PayloadActionWithOptimalDimension } from 'features/parameters/store/types'; @@ -23,7 +24,7 @@ import { clamp, cloneDeep } from 'lodash-es'; import type { RgbaColor } from 'react-colorful'; import { queueApi } from 'services/api/endpoints/queue'; import type { ImageDTO } from 'services/api/types'; -import { appSocketQueueItemStatusChanged } from 'services/events/actions'; +import { socketQueueItemStatusChanged } from 'services/events/actions'; import type { BoundingBoxScaleMethod, @@ -53,10 +54,11 @@ export const initialLayerState: CanvasLayerState = { }; export const initialCanvasState: CanvasState = { + _version: 1, boundingBoxCoordinates: { x: 0, y: 0 }, boundingBoxDimensions: { width: 512, height: 512 }, boundingBoxPreviewFill: { r: 0, g: 0, b: 0, a: 0.5 }, - boundingBoxScaleMethod: 'none', + boundingBoxScaleMethod: 'auto', brushColor: { r: 90, g: 90, b: 255, a: 1 }, brushSize: 50, colorPickerColor: { r: 90, g: 90, b: 255, a: 1 }, @@ -695,7 +697,7 @@ export const canvasSlice = createSlice({ ); }); - builder.addCase(appSocketQueueItemStatusChanged, (state, action) => { + builder.addCase(socketQueueItemStatusChanged, (state, action) => { const batch_status = action.payload.data.batch_status; if (!state.batchIds.includes(batch_status.batch_id)) { return; @@ -784,3 +786,12 @@ export const { export default canvasSlice.reducer; export const selectCanvasSlice = (state: RootState) => state.canvas; + +/* eslint-disable-next-line @typescript-eslint/no-explicit-any */ +export const migrateCanvasState = (state: any): any => { + if (!('_version' in state)) { + state._version = 1; + state.aspectRatio = initialAspectRatioState; + } + return state; +}; diff --git a/invokeai/frontend/web/src/features/canvas/store/canvasTypes.ts b/invokeai/frontend/web/src/features/canvas/store/canvasTypes.ts index 7eafad5d46..b9dfa8860e 100644 --- a/invokeai/frontend/web/src/features/canvas/store/canvasTypes.ts +++ b/invokeai/frontend/web/src/features/canvas/store/canvasTypes.ts @@ -117,6 +117,7 @@ export const isCanvasAnyLine = ( ): obj is CanvasMaskLine | CanvasBaseLine => obj.kind === 'line'; export interface CanvasState { + _version: 1; boundingBoxCoordinates: Vector2d; boundingBoxDimensions: Dimensions; boundingBoxPreviewFill: RgbaColor; diff --git a/invokeai/frontend/web/src/features/controlAdapters/store/controlAdaptersSlice.ts b/invokeai/frontend/web/src/features/controlAdapters/store/controlAdaptersSlice.ts index a1a075e250..5e856a01eb 100644 --- a/invokeai/frontend/web/src/features/controlAdapters/store/controlAdaptersSlice.ts +++ b/invokeai/frontend/web/src/features/controlAdapters/store/controlAdaptersSlice.ts @@ -9,7 +9,7 @@ import type { ParameterT2IAdapterModel, } from 'features/parameters/types/parameterSchemas'; import { cloneDeep, merge, uniq } from 'lodash-es'; -import { appSocketInvocationError } from 'services/events/actions'; +import { socketInvocationError } from 'services/events/actions'; import { v4 as uuidv4 } from 'uuid'; import { controlAdapterImageProcessed } from './actions'; @@ -51,10 +51,12 @@ export const { selectTotal: selectControlAdapterTotal, } = caAdapterSelectors; -export const initialControlAdapterState: ControlAdaptersState = +export const initialControlAdaptersState: ControlAdaptersState = caAdapter.getInitialState<{ + _version: 1; pendingControlImages: string[]; }>({ + _version: 1, pendingControlImages: [], }); @@ -96,7 +98,7 @@ export const selectValidT2IAdapters = (controlAdapters: ControlAdaptersState) => export const controlAdaptersSlice = createSlice({ name: 'controlAdapters', - initialState: initialControlAdapterState, + initialState: initialControlAdaptersState, reducers: { controlAdapterAdded: { reducer: ( @@ -267,31 +269,29 @@ export const controlAdaptersSlice = createSlice({ const update: Update = { id, - changes: { model }, + changes: { model, shouldAutoConfig: true }, }; update.changes.processedControlImage = null; - if (cn.shouldAutoConfig) { - let processorType: ControlAdapterProcessorType | undefined = undefined; + let processorType: ControlAdapterProcessorType | undefined = undefined; - for (const modelSubstring in CONTROLADAPTER_MODEL_DEFAULT_PROCESSORS) { - if (model.model_name.includes(modelSubstring)) { - processorType = - CONTROLADAPTER_MODEL_DEFAULT_PROCESSORS[modelSubstring]; - break; - } + for (const modelSubstring in CONTROLADAPTER_MODEL_DEFAULT_PROCESSORS) { + if (model.model_name.includes(modelSubstring)) { + processorType = + CONTROLADAPTER_MODEL_DEFAULT_PROCESSORS[modelSubstring]; + break; } + } - if (processorType) { - update.changes.processorType = processorType; - update.changes.processorNode = CONTROLNET_PROCESSORS[processorType] - .default as RequiredControlAdapterProcessorNode; - } else { - update.changes.processorType = 'none'; - update.changes.processorNode = CONTROLNET_PROCESSORS.none - .default as RequiredControlAdapterProcessorNode; - } + if (processorType) { + update.changes.processorType = processorType; + update.changes.processorNode = CONTROLNET_PROCESSORS[processorType] + .default as RequiredControlAdapterProcessorNode; + } else { + update.changes.processorType = 'none'; + update.changes.processorNode = CONTROLNET_PROCESSORS.none + .default as RequiredControlAdapterProcessorNode; } caAdapter.updateOne(state, update); @@ -435,7 +435,7 @@ export const controlAdaptersSlice = createSlice({ caAdapter.updateOne(state, update); }, controlAdaptersReset: () => { - return cloneDeep(initialControlAdapterState); + return cloneDeep(initialControlAdaptersState); }, pendingControlImagesCleared: (state) => { state.pendingControlImages = []; @@ -454,7 +454,7 @@ export const controlAdaptersSlice = createSlice({ } }); - builder.addCase(appSocketInvocationError, (state) => { + builder.addCase(socketInvocationError, (state) => { state.pendingControlImages = []; }); }, @@ -493,3 +493,11 @@ export const isAnyControlAdapterAdded = isAnyOf( export const selectControlAdaptersSlice = (state: RootState) => state.controlAdapters; + +/* eslint-disable-next-line @typescript-eslint/no-explicit-any */ +export const migrateControlAdaptersState = (state: any): any => { + if (!('_version' in state)) { + state._version = 1; + } + return state; +}; diff --git a/invokeai/frontend/web/src/features/dynamicPrompts/store/dynamicPromptsSlice.ts b/invokeai/frontend/web/src/features/dynamicPrompts/store/dynamicPromptsSlice.ts index c877516662..845f72306e 100644 --- a/invokeai/frontend/web/src/features/dynamicPrompts/store/dynamicPromptsSlice.ts +++ b/invokeai/frontend/web/src/features/dynamicPrompts/store/dynamicPromptsSlice.ts @@ -7,7 +7,9 @@ export const zSeedBehaviour = z.enum(['PER_ITERATION', 'PER_PROMPT']); export type SeedBehaviour = z.infer; export const isSeedBehaviour = (v: unknown): v is SeedBehaviour => zSeedBehaviour.safeParse(v).success; + export interface DynamicPromptsState { + _version: 1; maxPrompts: number; combinatorial: boolean; prompts: string[]; @@ -18,6 +20,7 @@ export interface DynamicPromptsState { } export const initialDynamicPromptsState: DynamicPromptsState = { + _version: 1, maxPrompts: 100, combinatorial: true, prompts: [], @@ -78,3 +81,11 @@ export default dynamicPromptsSlice.reducer; export const selectDynamicPromptsSlice = (state: RootState) => state.dynamicPrompts; + +/* eslint-disable-next-line @typescript-eslint/no-explicit-any */ +export const migrateDynamicPromptsState = (state: any): any => { + if (!('_version' in state)) { + state._version = 1; + } + return state; +}; diff --git a/invokeai/frontend/web/src/features/embedding/EmbeddingSelect.tsx b/invokeai/frontend/web/src/features/embedding/EmbeddingSelect.tsx index 80fcb8f06c..57b36d75eb 100644 --- a/invokeai/frontend/web/src/features/embedding/EmbeddingSelect.tsx +++ b/invokeai/frontend/web/src/features/embedding/EmbeddingSelect.tsx @@ -2,7 +2,6 @@ import type { ChakraProps } from '@chakra-ui/react'; import { useAppSelector } from 'app/store/storeHooks'; import { InvControl } from 'common/components/InvControl/InvControl'; import { InvSelect } from 'common/components/InvSelect/InvSelect'; -import { InvSelectFallback } from 'common/components/InvSelect/InvSelectFallback'; import { useGroupedModelInvSelect } from 'common/components/InvSelect/useGroupedModelInvSelect'; import type { EmbeddingSelectProps } from 'features/embedding/types'; import { t } from 'i18next'; @@ -47,23 +46,16 @@ export const EmbeddingSelect = memo( onChange: _onChange, }); - if (isLoading) { - return ; - } - - if (options.length === 0) { - return ; - } - return ( - + state.gallery; + +/* eslint-disable-next-line @typescript-eslint/no-explicit-any */ +export const migrateGalleryState = (state: any): any => { + if (!('_version' in state)) { + state._version = 1; + } + return state; +}; diff --git a/invokeai/frontend/web/src/features/hrf/store/hrfSlice.ts b/invokeai/frontend/web/src/features/hrf/store/hrfSlice.ts index c3e6af88a3..5190272b97 100644 --- a/invokeai/frontend/web/src/features/hrf/store/hrfSlice.ts +++ b/invokeai/frontend/web/src/features/hrf/store/hrfSlice.ts @@ -7,12 +7,14 @@ import type { } from 'features/parameters/types/parameterSchemas'; export interface HRFState { + _version: 1; hrfEnabled: boolean; hrfStrength: ParameterStrength; hrfMethod: ParameterHRFMethod; } export const initialHRFState: HRFState = { + _version: 1, hrfStrength: 0.45, hrfEnabled: false, hrfMethod: 'ESRGAN', @@ -41,3 +43,11 @@ export const { setHrfEnabled, setHrfStrength, setHrfMethod } = hrfSlice.actions; export default hrfSlice.reducer; export const selectHrfSlice = (state: RootState) => state.hrf; + +/* eslint-disable-next-line @typescript-eslint/no-explicit-any */ +export const migrateHRFState = (state: any): any => { + if (!('_version' in state)) { + state._version = 1; + } + return state; +}; diff --git a/invokeai/frontend/web/src/features/lora/store/loraSlice.ts b/invokeai/frontend/web/src/features/lora/store/loraSlice.ts index a8025224c5..c61a42af02 100644 --- a/invokeai/frontend/web/src/features/lora/store/loraSlice.ts +++ b/invokeai/frontend/web/src/features/lora/store/loraSlice.ts @@ -14,16 +14,18 @@ export const defaultLoRAConfig = { }; export type LoraState = { + _version: 1; loras: Record; }; -export const intialLoraState: LoraState = { +export const initialLoraState: LoraState = { + _version: 1, loras: {}, }; export const loraSlice = createSlice({ name: 'lora', - initialState: intialLoraState, + initialState: initialLoraState, reducers: { loraAdded: (state, action: PayloadAction) => { const { model_name, id, base_model } = action.payload; @@ -77,3 +79,11 @@ export const { export default loraSlice.reducer; export const selectLoraSlice = (state: RootState) => state.lora; + +/* eslint-disable-next-line @typescript-eslint/no-explicit-any */ +export const migrateLoRAState = (state: any): any => { + if (!('_version' in state)) { + state._version = 1; + } + return state; +}; diff --git a/invokeai/frontend/web/src/features/modelManager/store/modelManagerSlice.ts b/invokeai/frontend/web/src/features/modelManager/store/modelManagerSlice.ts index ce5dca40c7..829e9d4d9b 100644 --- a/invokeai/frontend/web/src/features/modelManager/store/modelManagerSlice.ts +++ b/invokeai/frontend/web/src/features/modelManager/store/modelManagerSlice.ts @@ -3,11 +3,13 @@ import { createSlice } from '@reduxjs/toolkit'; import type { RootState } from 'app/store/store'; type ModelManagerState = { + _version: 1; searchFolder: string | null; advancedAddScanModel: string | null; }; -const initialModelManagerState: ModelManagerState = { +export const initialModelManagerState: ModelManagerState = { + _version: 1, searchFolder: null, advancedAddScanModel: null, }; @@ -31,3 +33,11 @@ export const { setSearchFolder, setAdvancedAddScanModel } = export default modelManagerSlice.reducer; export const selectModelManagerSlice = (state: RootState) => state.modelmanager; + +/* eslint-disable-next-line @typescript-eslint/no-explicit-any */ +export const migrateModelManagerState = (state: any): any => { + if (!('_version' in state)) { + state._version = 1; + } + return state; +}; diff --git a/invokeai/frontend/web/src/features/nodes/store/nodesSlice.ts b/invokeai/frontend/web/src/features/nodes/store/nodesSlice.ts index bad01048b8..ecf2895f3a 100644 --- a/invokeai/frontend/web/src/features/nodes/store/nodesSlice.ts +++ b/invokeai/frontend/web/src/features/nodes/store/nodesSlice.ts @@ -74,11 +74,11 @@ import { } from 'reactflow'; import { receivedOpenAPISchema } from 'services/api/thunks/schema'; import { - appSocketGeneratorProgress, - appSocketInvocationComplete, - appSocketInvocationError, - appSocketInvocationStarted, - appSocketQueueItemStatusChanged, + socketGeneratorProgress, + socketInvocationComplete, + socketInvocationError, + socketInvocationStarted, + socketQueueItemStatusChanged, } from 'services/events/actions'; import { v4 as uuidv4 } from 'uuid'; import type { z } from 'zod'; @@ -96,6 +96,7 @@ const initialNodeExecutionState: Omit = { }; export const initialNodesState: NodesState = { + _version: 1, nodes: [], edges: [], isReady: false, @@ -838,14 +839,14 @@ const nodesSlice = createSlice({ }, {}); }); - builder.addCase(appSocketInvocationStarted, (state, action) => { + builder.addCase(socketInvocationStarted, (state, action) => { const { source_node_id } = action.payload.data; const node = state.nodeExecutionStates[source_node_id]; if (node) { node.status = zNodeStatus.enum.IN_PROGRESS; } }); - builder.addCase(appSocketInvocationComplete, (state, action) => { + builder.addCase(socketInvocationComplete, (state, action) => { const { source_node_id, result } = action.payload.data; const nes = state.nodeExecutionStates[source_node_id]; if (nes) { @@ -856,7 +857,7 @@ const nodesSlice = createSlice({ nes.outputs.push(result); } }); - builder.addCase(appSocketInvocationError, (state, action) => { + builder.addCase(socketInvocationError, (state, action) => { const { source_node_id } = action.payload.data; const node = state.nodeExecutionStates[source_node_id]; if (node) { @@ -866,7 +867,7 @@ const nodesSlice = createSlice({ node.progressImage = null; } }); - builder.addCase(appSocketGeneratorProgress, (state, action) => { + builder.addCase(socketGeneratorProgress, (state, action) => { const { source_node_id, step, total_steps, progress_image } = action.payload.data; const node = state.nodeExecutionStates[source_node_id]; @@ -876,7 +877,7 @@ const nodesSlice = createSlice({ node.progressImage = progress_image ?? null; } }); - builder.addCase(appSocketQueueItemStatusChanged, (state, action) => { + builder.addCase(socketQueueItemStatusChanged, (state, action) => { if (['in_progress'].includes(action.payload.data.queue_item.status)) { forEach(state.nodeExecutionStates, (nes) => { nes.status = zNodeStatus.enum.PENDING; @@ -990,3 +991,11 @@ export const isAnyNodeOrEdgeMutation = isAnyOf( export default nodesSlice.reducer; export const selectNodesSlice = (state: RootState) => state.nodes; + +/* eslint-disable-next-line @typescript-eslint/no-explicit-any */ +export const migrateNodesState = (state: any): any => { + if (!('_version' in state)) { + state._version = 1; + } + return state; +}; diff --git a/invokeai/frontend/web/src/features/nodes/store/types.ts b/invokeai/frontend/web/src/features/nodes/store/types.ts index 9ea5343118..807ed87ed7 100644 --- a/invokeai/frontend/web/src/features/nodes/store/types.ts +++ b/invokeai/frontend/web/src/features/nodes/store/types.ts @@ -14,6 +14,7 @@ import type { } from 'reactflow'; export type NodesState = { + _version: 1; nodes: AnyNode[]; edges: InvocationNodeEdge[]; connectionStartParams: OnConnectStartParams | null; @@ -39,6 +40,7 @@ export type NodesState = { }; export type WorkflowsState = Omit & { + _version: 1; isTouched: boolean; }; diff --git a/invokeai/frontend/web/src/features/nodes/store/workflowSlice.ts b/invokeai/frontend/web/src/features/nodes/store/workflowSlice.ts index dd2f3a94b9..1114a170e2 100644 --- a/invokeai/frontend/web/src/features/nodes/store/workflowSlice.ts +++ b/invokeai/frontend/web/src/features/nodes/store/workflowSlice.ts @@ -12,6 +12,7 @@ import type { FieldIdentifier } from 'features/nodes/types/field'; import { cloneDeep, isEqual, uniqBy } from 'lodash-es'; export const initialWorkflowState: WorkflowState = { + _version: 1, name: '', author: '', description: '', @@ -86,7 +87,7 @@ const workflowSlice = createSlice({ extraReducers: (builder) => { builder.addCase(workflowLoaded, (state, action) => { const { nodes: _nodes, edges: _edges, ...workflowExtra } = action.payload; - return { ...cloneDeep(workflowExtra), isTouched: true }; + return { ...initialWorkflowState, ...cloneDeep(workflowExtra) }; }); builder.addCase(nodesDeleted, (state, action) => { @@ -123,3 +124,11 @@ export const { export default workflowSlice.reducer; export const selectWorkflowSlice = (state: RootState) => state.workflow; + +/* eslint-disable-next-line @typescript-eslint/no-explicit-any */ +export const migrateWorkflowState = (state: any): any => { + if (!('_version' in state)) { + state._version = 1; + } + return state; +}; diff --git a/invokeai/frontend/web/src/features/parameters/store/generationSlice.ts b/invokeai/frontend/web/src/features/parameters/store/generationSlice.ts index 0c97e16e21..dd35e4b192 100644 --- a/invokeai/frontend/web/src/features/parameters/store/generationSlice.ts +++ b/invokeai/frontend/web/src/features/parameters/store/generationSlice.ts @@ -29,6 +29,7 @@ import type { ImageDTO } from 'services/api/types'; import type { GenerationState } from './types'; export const initialGenerationState: GenerationState = { + _version: 1, cfgScale: 7.5, cfgRescaleMultiplier: 0, height: 512, @@ -276,3 +277,12 @@ export const { selectOptimalDimension } = generationSlice.selectors; export default generationSlice.reducer; export const selectGenerationSlice = (state: RootState) => state.generation; + +/* eslint-disable-next-line @typescript-eslint/no-explicit-any */ +export const migrateGenerationState = (state: any): GenerationState => { + if (!('_version' in state)) { + state._version = 1; + state.aspectRatio = initialAspectRatioState; + } + return state; +}; diff --git a/invokeai/frontend/web/src/features/parameters/store/postprocessingSlice.ts b/invokeai/frontend/web/src/features/parameters/store/postprocessingSlice.ts index d197158930..a681077e54 100644 --- a/invokeai/frontend/web/src/features/parameters/store/postprocessingSlice.ts +++ b/invokeai/frontend/web/src/features/parameters/store/postprocessingSlice.ts @@ -14,10 +14,12 @@ export const isParamESRGANModelName = (v: unknown): v is ParamESRGANModelName => zParamESRGANModelName.safeParse(v).success; export interface PostprocessingState { + _version: 1; esrganModelName: ParamESRGANModelName; } export const initialPostprocessingState: PostprocessingState = { + _version: 1, esrganModelName: 'RealESRGAN_x4plus.pth', }; @@ -40,3 +42,11 @@ export default postprocessingSlice.reducer; export const selectPostprocessingSlice = (state: RootState) => state.postprocessing; + +/* eslint-disable-next-line @typescript-eslint/no-explicit-any */ +export const migratePostprocessingState = (state: any): any => { + if (!('_version' in state)) { + state._version = 1; + } + return state; +}; diff --git a/invokeai/frontend/web/src/features/parameters/store/types.ts b/invokeai/frontend/web/src/features/parameters/store/types.ts index 118e91bbe1..fa9e7acf4b 100644 --- a/invokeai/frontend/web/src/features/parameters/store/types.ts +++ b/invokeai/frontend/web/src/features/parameters/store/types.ts @@ -19,6 +19,7 @@ import type { } from 'features/parameters/types/parameterSchemas'; export interface GenerationState { + _version: 1; cfgScale: ParameterCFGScale; cfgRescaleMultiplier: ParameterCFGRescaleMultiplier; height: ParameterHeight; diff --git a/invokeai/frontend/web/src/features/sdxl/store/sdxlSlice.ts b/invokeai/frontend/web/src/features/sdxl/store/sdxlSlice.ts index 035407755a..f401a48c94 100644 --- a/invokeai/frontend/web/src/features/sdxl/store/sdxlSlice.ts +++ b/invokeai/frontend/web/src/features/sdxl/store/sdxlSlice.ts @@ -9,6 +9,7 @@ import type { } from 'features/parameters/types/parameterSchemas'; type SDXLState = { + _version: 1; positiveStylePrompt: ParameterPositiveStylePromptSDXL; negativeStylePrompt: ParameterNegativeStylePromptSDXL; shouldConcatSDXLStylePrompt: boolean; @@ -22,6 +23,7 @@ type SDXLState = { }; export const initialSDXLState: SDXLState = { + _version: 1, positiveStylePrompt: '', negativeStylePrompt: '', shouldConcatSDXLStylePrompt: true, @@ -96,3 +98,11 @@ export const { export default sdxlSlice.reducer; export const selectSdxlSlice = (state: RootState) => state.sdxl; + +/* eslint-disable-next-line @typescript-eslint/no-explicit-any */ +export const migrateSDXLState = (state: any): any => { + if (!('_version' in state)) { + state._version = 1; + } + return state; +}; diff --git a/invokeai/frontend/web/src/features/system/store/systemSlice.ts b/invokeai/frontend/web/src/features/system/store/systemSlice.ts index 57ef46373e..1f07863947 100644 --- a/invokeai/frontend/web/src/features/system/store/systemSlice.ts +++ b/invokeai/frontend/web/src/features/system/store/systemSlice.ts @@ -8,23 +8,24 @@ import { t } from 'i18next'; import { startCase } from 'lodash-es'; import type { LogLevelName } from 'roarr'; import { - appSocketConnected, - appSocketDisconnected, - appSocketGeneratorProgress, - appSocketGraphExecutionStateComplete, - appSocketInvocationComplete, - appSocketInvocationError, - appSocketInvocationRetrievalError, - appSocketInvocationStarted, - appSocketModelLoadCompleted, - appSocketModelLoadStarted, - appSocketQueueItemStatusChanged, - appSocketSessionRetrievalError, + socketConnected, + socketDisconnected, + socketGeneratorProgress, + socketGraphExecutionStateComplete, + socketInvocationComplete, + socketInvocationError, + socketInvocationRetrievalError, + socketInvocationStarted, + socketModelLoadCompleted, + socketModelLoadStarted, + socketQueueItemStatusChanged, + socketSessionRetrievalError, } from 'services/events/actions'; import type { Language, SystemState } from './types'; export const initialSystemState: SystemState = { + _version: 1, isInitialized: false, isConnected: false, shouldConfirmOnDelete: true, @@ -92,7 +93,7 @@ export const systemSlice = createSlice({ /** * Socket Connected */ - builder.addCase(appSocketConnected, (state) => { + builder.addCase(socketConnected, (state) => { state.isConnected = true; state.denoiseProgress = null; state.status = 'CONNECTED'; @@ -101,7 +102,7 @@ export const systemSlice = createSlice({ /** * Socket Disconnected */ - builder.addCase(appSocketDisconnected, (state) => { + builder.addCase(socketDisconnected, (state) => { state.isConnected = false; state.denoiseProgress = null; state.status = 'DISCONNECTED'; @@ -110,7 +111,7 @@ export const systemSlice = createSlice({ /** * Invocation Started */ - builder.addCase(appSocketInvocationStarted, (state) => { + builder.addCase(socketInvocationStarted, (state) => { state.denoiseProgress = null; state.status = 'PROCESSING'; }); @@ -118,7 +119,7 @@ export const systemSlice = createSlice({ /** * Generator Progress */ - builder.addCase(appSocketGeneratorProgress, (state, action) => { + builder.addCase(socketGeneratorProgress, (state, action) => { const { step, total_steps, @@ -144,7 +145,7 @@ export const systemSlice = createSlice({ /** * Invocation Complete */ - builder.addCase(appSocketInvocationComplete, (state) => { + builder.addCase(socketInvocationComplete, (state) => { state.denoiseProgress = null; state.status = 'CONNECTED'; }); @@ -152,20 +153,20 @@ export const systemSlice = createSlice({ /** * Graph Execution State Complete */ - builder.addCase(appSocketGraphExecutionStateComplete, (state) => { + builder.addCase(socketGraphExecutionStateComplete, (state) => { state.denoiseProgress = null; state.status = 'CONNECTED'; }); - builder.addCase(appSocketModelLoadStarted, (state) => { + builder.addCase(socketModelLoadStarted, (state) => { state.status = 'LOADING_MODEL'; }); - builder.addCase(appSocketModelLoadCompleted, (state) => { + builder.addCase(socketModelLoadCompleted, (state) => { state.status = 'CONNECTED'; }); - builder.addCase(appSocketQueueItemStatusChanged, (state, action) => { + builder.addCase(socketQueueItemStatusChanged, (state, action) => { if ( ['completed', 'canceled', 'failed'].includes( action.payload.data.queue_item.status @@ -211,9 +212,17 @@ export const { export default systemSlice.reducer; const isAnyServerError = isAnyOf( - appSocketInvocationError, - appSocketSessionRetrievalError, - appSocketInvocationRetrievalError + socketInvocationError, + socketSessionRetrievalError, + socketInvocationRetrievalError ); export const selectSystemSlice = (state: RootState) => state.system; + +/* eslint-disable-next-line @typescript-eslint/no-explicit-any */ +export const migrateSystemState = (state: any): any => { + if (!('_version' in state)) { + state._version = 1; + } + return state; +}; diff --git a/invokeai/frontend/web/src/features/system/store/types.ts b/invokeai/frontend/web/src/features/system/store/types.ts index f60e37f3d8..6ee9b4503c 100644 --- a/invokeai/frontend/web/src/features/system/store/types.ts +++ b/invokeai/frontend/web/src/features/system/store/types.ts @@ -43,6 +43,7 @@ export const isLanguage = (v: unknown): v is Language => zLanguage.safeParse(v).success; export interface SystemState { + _version: 1; isInitialized: boolean; isConnected: boolean; shouldConfirmOnDelete: boolean; diff --git a/invokeai/frontend/web/src/features/ui/store/uiSlice.ts b/invokeai/frontend/web/src/features/ui/store/uiSlice.ts index e80d28e86a..f39dbd4758 100644 --- a/invokeai/frontend/web/src/features/ui/store/uiSlice.ts +++ b/invokeai/frontend/web/src/features/ui/store/uiSlice.ts @@ -7,6 +7,7 @@ import type { InvokeTabName } from './tabMap'; import type { UIState } from './uiTypes'; export const initialUIState: UIState = { + _version: 1, activeTab: 'txt2img', shouldShowImageDetails: false, shouldShowExistingModelsInSearch: false, @@ -63,3 +64,11 @@ export const { export default uiSlice.reducer; export const selectUiSlice = (state: RootState) => state.ui; + +/* eslint-disable-next-line @typescript-eslint/no-explicit-any */ +export const migrateUIState = (state: any): any => { + if (!('_version' in state)) { + state._version = 1; + } + return state; +}; diff --git a/invokeai/frontend/web/src/features/ui/store/uiTypes.ts b/invokeai/frontend/web/src/features/ui/store/uiTypes.ts index e87026d6b0..b0800c456e 100644 --- a/invokeai/frontend/web/src/features/ui/store/uiTypes.ts +++ b/invokeai/frontend/web/src/features/ui/store/uiTypes.ts @@ -1,6 +1,7 @@ import type { InvokeTabName } from './tabMap'; export interface UIState { + _version: 1; activeTab: InvokeTabName; shouldShowImageDetails: boolean; shouldShowExistingModelsInSearch: boolean; diff --git a/invokeai/frontend/web/src/services/events/actions.ts b/invokeai/frontend/web/src/services/events/actions.ts index 056ec197ce..411d7d413d 100644 --- a/invokeai/frontend/web/src/services/events/actions.ts +++ b/invokeai/frontend/web/src/services/events/actions.ts @@ -15,220 +15,54 @@ import type { // Create actions for each socket // Middleware and redux can then respond to them as needed -/** - * Socket.IO Connected - * - * Do not use. Only for use in middleware. - */ export const socketConnected = createAction('socket/socketConnected'); -/** - * App-level Socket.IO Connected - */ -export const appSocketConnected = createAction('socket/appSocketConnected'); - -/** - * Socket.IO Disconnect - * - * Do not use. Only for use in middleware. - */ export const socketDisconnected = createAction('socket/socketDisconnected'); -/** - * App-level Socket.IO Disconnected - */ -export const appSocketDisconnected = createAction( - 'socket/appSocketDisconnected' -); - -/** - * Socket.IO Subscribed Session - * - * Do not use. Only for use in middleware. - */ export const socketSubscribedSession = createAction<{ sessionId: string; }>('socket/socketSubscribedSession'); -/** - * App-level Socket.IO Subscribed Session - */ -export const appSocketSubscribedSession = createAction<{ - sessionId: string; -}>('socket/appSocketSubscribedSession'); - -/** - * Socket.IO Unsubscribed Session - * - * Do not use. Only for use in middleware. - */ export const socketUnsubscribedSession = createAction<{ sessionId: string }>( 'socket/socketUnsubscribedSession' ); -/** - * App-level Socket.IO Unsubscribed Session - */ -export const appSocketUnsubscribedSession = createAction<{ sessionId: string }>( - 'socket/appSocketUnsubscribedSession' -); - -/** - * Socket.IO Invocation Started - * - * Do not use. Only for use in middleware. - */ export const socketInvocationStarted = createAction<{ data: InvocationStartedEvent; }>('socket/socketInvocationStarted'); -/** - * App-level Socket.IO Invocation Started - */ -export const appSocketInvocationStarted = createAction<{ - data: InvocationStartedEvent; -}>('socket/appSocketInvocationStarted'); - -/** - * Socket.IO Invocation Complete - * - * Do not use. Only for use in middleware. - */ export const socketInvocationComplete = createAction<{ data: InvocationCompleteEvent; }>('socket/socketInvocationComplete'); -/** - * App-level Socket.IO Invocation Complete - */ -export const appSocketInvocationComplete = createAction<{ - data: InvocationCompleteEvent; -}>('socket/appSocketInvocationComplete'); - -/** - * Socket.IO Invocation Error - * - * Do not use. Only for use in middleware. - */ export const socketInvocationError = createAction<{ data: InvocationErrorEvent; }>('socket/socketInvocationError'); -/** - * App-level Socket.IO Invocation Error - */ -export const appSocketInvocationError = createAction<{ - data: InvocationErrorEvent; -}>('socket/appSocketInvocationError'); - -/** - * Socket.IO Graph Execution State Complete - * - * Do not use. Only for use in middleware. - */ export const socketGraphExecutionStateComplete = createAction<{ data: GraphExecutionStateCompleteEvent; }>('socket/socketGraphExecutionStateComplete'); -/** - * App-level Socket.IO Graph Execution State Complete - */ -export const appSocketGraphExecutionStateComplete = createAction<{ - data: GraphExecutionStateCompleteEvent; -}>('socket/appSocketGraphExecutionStateComplete'); - -/** - * Socket.IO Generator Progress - * - * Do not use. Only for use in middleware. - */ export const socketGeneratorProgress = createAction<{ data: GeneratorProgressEvent; }>('socket/socketGeneratorProgress'); -/** - * App-level Socket.IO Generator Progress - */ -export const appSocketGeneratorProgress = createAction<{ - data: GeneratorProgressEvent; -}>('socket/appSocketGeneratorProgress'); - -/** - * Socket.IO Model Load Started - * - * Do not use. Only for use in middleware. - */ export const socketModelLoadStarted = createAction<{ data: ModelLoadStartedEvent; }>('socket/socketModelLoadStarted'); -/** - * App-level Model Load Started - */ -export const appSocketModelLoadStarted = createAction<{ - data: ModelLoadStartedEvent; -}>('socket/appSocketModelLoadStarted'); - -/** - * Socket.IO Model Load Started - * - * Do not use. Only for use in middleware. - */ export const socketModelLoadCompleted = createAction<{ data: ModelLoadCompletedEvent; }>('socket/socketModelLoadCompleted'); -/** - * App-level Model Load Completed - */ -export const appSocketModelLoadCompleted = createAction<{ - data: ModelLoadCompletedEvent; -}>('socket/appSocketModelLoadCompleted'); - -/** - * Socket.IO Session Retrieval Error - * - * Do not use. Only for use in middleware. - */ export const socketSessionRetrievalError = createAction<{ data: SessionRetrievalErrorEvent; }>('socket/socketSessionRetrievalError'); -/** - * App-level Session Retrieval Error - */ -export const appSocketSessionRetrievalError = createAction<{ - data: SessionRetrievalErrorEvent; -}>('socket/appSocketSessionRetrievalError'); - -/** - * Socket.IO Invocation Retrieval Error - * - * Do not use. Only for use in middleware. - */ export const socketInvocationRetrievalError = createAction<{ data: InvocationRetrievalErrorEvent; }>('socket/socketInvocationRetrievalError'); -/** - * App-level Invocation Retrieval Error - */ -export const appSocketInvocationRetrievalError = createAction<{ - data: InvocationRetrievalErrorEvent; -}>('socket/appSocketInvocationRetrievalError'); - -/** - * Socket.IO Quueue Item Status Changed - * - * Do not use. Only for use in middleware. - */ export const socketQueueItemStatusChanged = createAction<{ data: QueueItemStatusChangedEvent; }>('socket/socketQueueItemStatusChanged'); - -/** - * App-level Quueue Item Status Changed - */ -export const appSocketQueueItemStatusChanged = createAction<{ - data: QueueItemStatusChangedEvent; -}>('socket/appSocketQueueItemStatusChanged');