From 67c52992d7d225783cd95f8dd71b2f73f3d73095 Mon Sep 17 00:00:00 2001 From: Archer <545436317@qq.com> Date: Fri, 17 May 2024 16:44:15 +0800 Subject: [PATCH] External dataset (#1519) * perf: local file create collection * rename middleware * perf: remove code * feat: next14 * feat: external file dataset * collection tags field * external file dataset doc * fix: ts --- .npmrc | 1 - .vscode/nextapi.code-snippets | 2 +- docSite/assets/imgs/external_file0.png | Bin 0 -> 166852 bytes docSite/assets/imgs/external_file1.png | Bin 0 -> 125145 bytes docSite/assets/imgs/external_file2.png | Bin 0 -> 76425 bytes docSite/content/docs/course/externalFile.md | 26 + .../docs/development/openapi/dataset.md | 84 +- .../content/docs/development/upgrading/481.md | 13 +- packages/global/core/dataset/api.d.ts | 16 +- .../core/dataset/collection/constants.ts | 2 +- .../global/core/dataset/collection/utils.ts | 14 + packages/global/core/dataset/constants.ts | 9 +- packages/global/core/dataset/read.ts | 2 - packages/global/core/dataset/type.d.ts | 8 +- packages/global/core/dataset/utils.ts | 10 +- packages/global/package.json | 2 +- .../service/common/file/gridfs/controller.ts | 4 +- packages/service/common/file/read/utils.ts | 40 +- packages/service/common/middle/entry.ts | 38 + packages/service/common/string/cheerio.ts | 2 +- packages/service/common/string/utils.ts | 8 + .../core/dataset/collection/controller.ts | 5 + .../service/core/dataset/collection/schema.ts | 10 +- packages/service/core/dataset/read.ts | 27 +- .../service/core/dataset/search/controller.ts | 9 +- .../core/dataset/training/controller.ts | 2 +- .../service/core/dataset/training/schema.ts | 2 +- .../core/workflow/dispatch/tools/runLaf.ts | 2 +- packages/service/package.json | 2 +- .../service/support/permission/teamLimit.ts | 4 +- packages/service/worker/file/read.ts | 4 +- .../web/components/common/Icon/constants.ts | 1 + .../icons/core/dataset/externalDataset.svg | 5 + .../common/Input/NumberInput/index.tsx | 3 +- .../common/Textarea/JsonEditor/index.tsx | 1 + packages/web/package.json | 8 +- pnpm-lock.yaml | 1782 +++++++++-------- projects/app/i18n/en/dataset.json | 2 + projects/app/i18n/en/file.json | 1 + projects/app/i18n/zh/dataset.json | 2 + projects/app/i18n/zh/file.json | 1 + projects/app/next.config.js | 2 - projects/app/package.json | 12 +- .../app/src/components/ChatBox/QuoteModal.tsx | 2 +- .../app/src/components/Markdown/index.tsx | 5 +- .../src/components/core/dataset/QuoteItem.tsx | 1 + .../components/core/dataset/RawSourceBox.tsx | 37 +- .../Flow/nodes/NodeIfElse/ListItem.tsx | 4 +- .../Flow/nodes/NodeVariableUpdate.tsx | 2 +- projects/app/src/pages/api/admin/initv481.ts | 2 +- .../pages/api/common/file/previewContent.ts | 2 +- projects/app/src/pages/api/core/ai/token.ts | 2 +- projects/app/src/pages/api/core/app/create.ts | 2 +- projects/app/src/pages/api/core/app/del.ts | 2 +- .../app/src/pages/api/core/app/detail.tsx | 2 +- .../app/src/pages/api/core/app/getChatLogs.ts | 2 +- projects/app/src/pages/api/core/app/list.ts | 2 +- projects/app/src/pages/api/core/app/update.ts | 2 +- .../src/pages/api/core/app/version/list.ts | 2 +- .../src/pages/api/core/app/version/publish.ts | 2 +- .../src/pages/api/core/app/version/revert.ts | 2 +- projects/app/src/pages/api/core/chat/init.ts | 2 +- .../src/pages/api/core/dataset/allDataset.ts | 2 +- .../dataset/collection/create/csvTable.ts | 4 - .../core/dataset/collection/create/file.ts | 153 -- .../core/dataset/collection/create/fileId.ts | 149 ++ .../dataset/collection/create/localFile.ts | 186 ++ .../api/core/dataset/collection/detail.ts | 4 +- .../pages/api/core/dataset/collection/read.ts | 66 + .../src/pages/api/core/dataset/data/delete.ts | 2 +- .../src/pages/api/core/dataset/data/detail.ts | 2 +- .../pages/api/core/dataset/data/insertData.ts | 2 +- .../src/pages/api/core/dataset/data/list.ts | 2 +- .../pages/api/core/dataset/data/pushData.ts | 3 +- .../src/pages/api/core/dataset/data/update.ts | 2 +- .../src/pages/api/core/dataset/exportAll.ts | 2 +- .../api/core/dataset/file/getPreviewChunks.ts | 2 +- .../api/core/dataset/file/getPreviewUrl.ts | 36 - .../app/src/pages/api/core/dataset/list.ts | 2 +- .../src/pages/api/core/dataset/searchTest.ts | 2 +- .../training/getDatasetTrainingQueue.ts | 2 +- .../core/dataset/training/rebuildEmbedding.ts | 2 +- .../app/src/pages/api/core/workflow/debug.ts | 2 +- .../user/team/limit/exportDatasetLimit.ts | 2 +- .../src/pages/api/v1/audio/transcriptions.ts | 2 +- .../app/src/pages/api/v1/chat/completions.ts | 2 +- .../components/CollectionCard/Header.tsx | 2 +- .../dataset/detail/components/DataCard.tsx | 45 +- .../Import/commonProgress/Upload.tsx | 9 +- .../Import/components/PreviewChunks.tsx | 6 +- .../Import/components/PreviewRawText.tsx | 5 +- .../Import/diffSource/ExternalFile.tsx | 38 +- .../pages/dataset/detail/components/Info.tsx | 11 +- .../detail/components/InputDataModal.tsx | 1 + .../dataset/list/component/CreateModal.tsx | 12 +- projects/app/src/service/middle/entry.ts | 37 - projects/app/src/service/middleware/entry.ts | 6 + projects/app/src/web/core/dataset/api.ts | 18 +- .../app/src/web/core/dataset/constants.ts | 8 +- .../dataset/hooks/readCollectionSource.ts | 34 + projects/app/src/web/core/dataset/type.d.ts | 4 +- projects/app/src/web/core/dataset/utils.ts | 11 - 102 files changed, 1841 insertions(+), 1284 deletions(-) create mode 100644 docSite/assets/imgs/external_file0.png create mode 100644 docSite/assets/imgs/external_file1.png create mode 100644 docSite/assets/imgs/external_file2.png create mode 100644 docSite/content/docs/course/externalFile.md create mode 100644 packages/global/core/dataset/collection/utils.ts create mode 100644 packages/service/common/middle/entry.ts create mode 100644 packages/service/common/string/utils.ts create mode 100644 packages/web/components/common/Icon/icons/core/dataset/externalDataset.svg delete mode 100644 projects/app/src/pages/api/core/dataset/collection/create/file.ts create mode 100644 projects/app/src/pages/api/core/dataset/collection/create/fileId.ts create mode 100644 projects/app/src/pages/api/core/dataset/collection/create/localFile.ts create mode 100644 projects/app/src/pages/api/core/dataset/collection/read.ts delete mode 100644 projects/app/src/pages/api/core/dataset/file/getPreviewUrl.ts delete mode 100644 projects/app/src/service/middle/entry.ts create mode 100644 projects/app/src/service/middleware/entry.ts create mode 100644 projects/app/src/web/core/dataset/hooks/readCollectionSource.ts delete mode 100644 projects/app/src/web/core/dataset/utils.ts diff --git a/.npmrc b/.npmrc index 0c4bb1d5f501..b82e07751d5b 100644 --- a/.npmrc +++ b/.npmrc @@ -1,2 +1 @@ public-hoist-pattern[]=*tiktoken* -public-hoist-pattern[]=*react* diff --git a/.vscode/nextapi.code-snippets b/.vscode/nextapi.code-snippets index c9c084ed0877..088ed3b3f8e3 100644 --- a/.vscode/nextapi.code-snippets +++ b/.vscode/nextapi.code-snippets @@ -11,7 +11,7 @@ "prefix": "nextapi", "body": [ "import type { ApiRequestProps, ApiResponseType } from '@fastgpt/service/type/next';", - "import { NextAPI } from '@/service/middle/entry';", + "import { NextAPI } from '@/service/middleware/entry';", "", "export type ${TM_FILENAME_BASE}Query = {};", "", diff --git a/docSite/assets/imgs/external_file0.png b/docSite/assets/imgs/external_file0.png new file mode 100644 index 0000000000000000000000000000000000000000..4b365f339ba2b4a163bb18c31ae8bded3490c0c5 GIT binary patch literal 166852 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 literal 0 HcmV?d00001 diff --git a/docSite/assets/imgs/external_file1.png b/docSite/assets/imgs/external_file1.png new file mode 100644 index 0000000000000000000000000000000000000000..bbbb86ad97cc91759383c23387a61e8fdced16b2 GIT binary patch literal 125145 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%0A{;lg){G?Mk1invnUQeEboEI% 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�pQIk1qE+lw#+~{E~(6FvzP0&#aK3_ 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 W^if?HS$BzfE*P5qm2>9m-~S&ZLzlDw literal 0 HcmV?d00001 diff --git a/docSite/assets/imgs/external_file2.png b/docSite/assets/imgs/external_file2.png new file mode 100644 index 0000000000000000000000000000000000000000..f7697b42c6b700f12f598416360a93338b810db6 GIT binary patch literal 76425 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 literal 0 HcmV?d00001 diff --git a/docSite/content/docs/course/externalFile.md b/docSite/content/docs/course/externalFile.md new file mode 100644 index 000000000000..b1c056526616 --- /dev/null +++ b/docSite/content/docs/course/externalFile.md @@ -0,0 +1,26 @@ +--- +title: '外部文件知识库' +description: 'FastGPT 外部文件知识库功能介绍和使用方式' +icon: 'language' +draft: false +toc: true +weight: 107 +--- + +外部文件库是 FastGPT 商业版特有功能。它允许接入你现在的文件系统,无需将文件再导入一份到 FastGPT 中。 + +并且,阅读权限可以通过你的文件系统进行控制。 + +| | | | +| --------------------- | --------------------- | --------------------- | +| ![](/imgs/external_file0.png) | ![](/imgs/external_file1.png) | ![](/imgs/external_file2.png) | + + +## 导入参数说明 + +- 外部预览地址:用于跳转你的文件阅读地址,会携带“文件阅读ID”进行访问。 +- 文件访问URL:文件可访问的地址。 +- 文件阅读ID:通常情况下,文件访问URL是临时的。如果希望永久可以访问,你需要使用该文件阅读ID,并配合上“外部预览地址”,跳转至新的阅读地址进行原文件访问。 +- 文件名:默认会自动解析文件访问URL上的文件名。如果你手动填写,将会以手动填写的值为准。 + +[点击查看API导入文档](/docs/development/openapi/dataset/#创建一个外部文件库集合商业版) \ No newline at end of file diff --git a/docSite/content/docs/development/openapi/dataset.md b/docSite/content/docs/development/openapi/dataset.md index 17844816d263..7d0570ee7527 100644 --- a/docSite/content/docs/development/openapi/dataset.md +++ b/docSite/content/docs/development/openapi/dataset.md @@ -295,6 +295,24 @@ curl --location --request DELETE 'http://localhost:3000/api/core/dataset/delete? ## 集合 +### 通用创建参数说明 + +**入参** + +| 参数 | 说明 | 必填 | +| --- | --- | --- | +| datasetId | 知识库ID | ✅ | +| parentId: | 父级ID,不填则默认为根目录 | | +| trainingType | 训练模式。chunk: 按文本长度进行分割;qa: QA拆分;auto: 增强训练 | ✅ | +| chunkSize | 预估块大小 | | +| chunkSplitter | 自定义最高优先分割符号 | | +| qaPrompt | qa拆分提示词 | | + +**出参** + +- collectionId - 新建的集合ID +- insertLen:插入的块数量 + ### 创建一个空的集合 {{< tabs tabTotal="3" >}} @@ -500,7 +518,7 @@ data 为集合的 ID。 {{< /tab >}} {{< /tabs >}} -### 创建一个文件集合(商业版) +### 创建一个文件集合 传入一个文件,创建一个集合,会读取文件内容进行分割。目前支持:pdf, docx, md, txt, html, csv。 @@ -509,7 +527,7 @@ data 为集合的 ID。 {{< markdownify >}} ```bash -curl --location --request POST 'http://localhost:3000/api/proApi/core/dataset/collection/create/file' \ +curl --location --request POST 'http://localhost:3000/api/core/dataset/collection/create/localFile' \ --header 'Authorization: Bearer {{authorization}}' \ --form 'file=@"C:\\Users\\user\\Desktop\\fastgpt测试文件\\index.html"' \ --form 'data="{\"datasetId\":\"6593e137231a2be9c5603ba7\",\"parentId\":null,\"trainingType\":\"chunk\",\"chunkSize\":512,\"chunkSplitter\":\"\",\"qaPrompt\":\"\",\"metadata\":{}}"' @@ -565,6 +583,68 @@ data 为集合的 ID。 {{< /tab >}} {{< /tabs >}} +### 创建一个外部文件库集合(商业版) + +{{< tabs tabTotal="3" >}} +{{< tab tabName="请求示例" >}} +{{< markdownify >}} + +```bash +curl --location --request POST 'http://localhost:3000/api/proApi/core/dataset/collection/create/externalFileUrl' \ +--header 'Authorization: Bearer {{authorization}}' \ +--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "externalFileUrl":"https://image.xxxxx.com/fastgpt-dev/%E6%91%82.pdf", + "externalFileId":"1111", + "filename":"自定义文件名", + "datasetId":"6642d105a5e9d2b00255b27b", + "parentId": null, + + "trainingType": "chunk", + "chunkSize":512, + "chunkSplitter":"", + "qaPrompt":"" +}' +``` + +{{< /markdownify >}} +{{< /tab >}} + +{{< tab tabName="参数说明" >}} +{{< markdownify >}} + +| 参数 | 说明 | 必填 | +| --- | --- | --- | +| externalFileUrl | 文件访问链接(可以是临时链接) | ✅ | +| externalFileId | 外部文件ID | | +| filename | 自定义文件名 | | + + +{{< /markdownify >}} +{{< /tab >}} + +{{< tab tabName="响应示例" >}} +{{< markdownify >}} + +data 为集合的 ID。 + +```json +{ + "code": 200, + "statusText": "", + "message": "", + "data": { + "collectionId": "6646fcedfabd823cdc6de746", + "insertLen": 3 + } +} +``` + +{{< /markdownify >}} +{{< /tab >}} +{{< /tabs >}} + ### 获取集合列表 {{< tabs tabTotal="3" >}} diff --git a/docSite/content/docs/development/upgrading/481.md b/docSite/content/docs/development/upgrading/481.md index bd069c3a8055..4978f05bc6d0 100644 --- a/docSite/content/docs/development/upgrading/481.md +++ b/docSite/content/docs/development/upgrading/481.md @@ -35,8 +35,11 @@ curl --location --request POST 'https://{{host}}/api/admin/clearInvalidData' \ ## V4.8.1 更新说明 1. 新增 - 知识库重新选择向量模型重建 -2. 新增 - 工作流节点版本变更提示,并可以同步最新版本。 -3. 优化 - 插件输入的 debug 模式,支持全量参数输入渲染。 -4. 修复 - 插件输入默认值被清空问题。 -5. 修复 - 工作流删除节点的动态输入和输出时候,没有正确的删除连接线,导致可能出现逻辑异常。 -6. 修复 - 定时器清理脏数据任务 \ No newline at end of file +2. 新增 - 对话框支持问题模糊检索提示,可自定义预设问题词库。 +3. 新增 - 工作流节点版本变更提示,并可以同步最新版本配置,避免存在隐藏脏数据。 +4. 新增 - 开放文件导入知识库接口到开源版, [点击插件文档](/docs/development/openapi/dataset/#创建一个文件集合) +5. 新增 - 外部文件源知识库, [点击查看文档](/docs/course/externalfile/) +6. 优化 - 插件输入的 debug 模式,支持全量参数输入渲染。 +7. 修复 - 插件输入默认值被清空问题。 +8. 修复 - 工作流删除节点的动态输入和输出时候,没有正确的删除连接线,导致可能出现逻辑异常。 +9. 修复 - 定时器清理脏数据任务 \ No newline at end of file diff --git a/packages/global/core/dataset/api.d.ts b/packages/global/core/dataset/api.d.ts index af0eb5e76167..7e67dc5646a9 100644 --- a/packages/global/core/dataset/api.d.ts +++ b/packages/global/core/dataset/api.d.ts @@ -26,18 +26,27 @@ export type DatasetCollectionChunkMetadataType = { qaPrompt?: string; metadata?: Record; }; + +// create collection params export type CreateDatasetCollectionParams = DatasetCollectionChunkMetadataType & { datasetId: string; name: string; - type: `${DatasetCollectionTypeEnum}`; + type: DatasetCollectionTypeEnum; + + tags?: string[]; + fileId?: string; rawLink?: string; + externalFileId?: string; + + externalFileUrl?: string; rawTextLength?: number; hashRawText?: string; }; export type ApiCreateDatasetCollectionParams = DatasetCollectionChunkMetadataType & { datasetId: string; + tags?: string[]; }; export type TextCreateDatasetCollectionParams = ApiCreateDatasetCollectionParams & { name: string; @@ -58,6 +67,11 @@ export type CsvTableCreateDatasetCollectionParams = { parentId?: string; fileId: string; }; +export type ExternalFileCreateDatasetCollectionParams = ApiCreateDatasetCollectionParams & { + externalFileId?: string; + externalFileUrl: string; + filename?: string; +}; /* ================= data ===================== */ export type PgSearchRawType = { diff --git a/packages/global/core/dataset/collection/constants.ts b/packages/global/core/dataset/collection/constants.ts index 0b0cda0b1376..b26e3ea7345b 100644 --- a/packages/global/core/dataset/collection/constants.ts +++ b/packages/global/core/dataset/collection/constants.ts @@ -1,4 +1,4 @@ -/* sourceId = prefix-id; id=fileId;link url;externalId */ +/* sourceId = prefix-id; id=fileId;link url;externalFileId */ export enum CollectionSourcePrefixEnum { local = 'local', link = 'link', diff --git a/packages/global/core/dataset/collection/utils.ts b/packages/global/core/dataset/collection/utils.ts new file mode 100644 index 000000000000..e3521f810aa8 --- /dev/null +++ b/packages/global/core/dataset/collection/utils.ts @@ -0,0 +1,14 @@ +import { CollectionWithDatasetType, DatasetCollectionSchemaType } from '../type'; + +export const getCollectionSourceData = ( + collection?: CollectionWithDatasetType | DatasetCollectionSchemaType +) => { + return { + sourceId: + collection?.fileId || + collection?.rawLink || + collection?.externalFileId || + collection?.externalFileUrl, + sourceName: collection?.name || '' + }; +}; diff --git a/packages/global/core/dataset/constants.ts b/packages/global/core/dataset/constants.ts index 76fe57e4561b..478875b0aae6 100644 --- a/packages/global/core/dataset/constants.ts +++ b/packages/global/core/dataset/constants.ts @@ -22,7 +22,7 @@ export const DatasetTypeMap = { collectionLabel: 'common.Website' }, [DatasetTypeEnum.externalFile]: { - icon: 'core/dataset/commonDataset', + icon: 'core/dataset/externalDataset', label: 'External File', collectionLabel: 'common.File' } @@ -44,9 +44,11 @@ export const DatasetStatusMap = { /* ------------ collection -------------- */ export enum DatasetCollectionTypeEnum { folder = 'folder', + virtual = 'virtual', + file = 'file', link = 'link', // one link - virtual = 'virtual' + externalFile = 'externalFile' } export const DatasetCollectionTypeMap = { [DatasetCollectionTypeEnum.folder]: { @@ -55,6 +57,9 @@ export const DatasetCollectionTypeMap = { [DatasetCollectionTypeEnum.file]: { name: 'core.dataset.file' }, + [DatasetCollectionTypeEnum.externalFile]: { + name: 'core.dataset.externalFile' + }, [DatasetCollectionTypeEnum.link]: { name: 'core.dataset.link' }, diff --git a/packages/global/core/dataset/read.ts b/packages/global/core/dataset/read.ts index 36ce6c7980da..0a4b3e3954f8 100644 --- a/packages/global/core/dataset/read.ts +++ b/packages/global/core/dataset/read.ts @@ -1,7 +1,5 @@ import { DatasetSourceReadTypeEnum, ImportDataSourceEnum } from './constants'; -export const rawTextBackupPrefix = 'index,content'; - export const importType2ReadType = (type: ImportDataSourceEnum) => { if (type === ImportDataSourceEnum.csvTable || type === ImportDataSourceEnum.fileLocal) { return DatasetSourceReadTypeEnum.fileLocal; diff --git a/packages/global/core/dataset/type.d.ts b/packages/global/core/dataset/type.d.ts index 65cd20a9290a..4f3e4fa591d8 100644 --- a/packages/global/core/dataset/type.d.ts +++ b/packages/global/core/dataset/type.d.ts @@ -41,7 +41,7 @@ export type DatasetCollectionSchemaType = { datasetId: string; parentId?: string; name: string; - type: `${DatasetCollectionTypeEnum}`; + type: DatasetCollectionTypeEnum; createTime: Date; updateTime: Date; @@ -50,13 +50,15 @@ export type DatasetCollectionSchemaType = { chunkSplitter?: string; qaPrompt?: string; - sourceId?: string; // relate CollectionSourcePrefixEnum + tags?: string[]; + fileId?: string; // local file id rawLink?: string; // link url + externalFileId?: string; //external file id rawTextLength?: number; hashRawText?: string; - externalSourceUrl?: string; // external import url + externalFileUrl?: string; // external import url metadata?: { webPageSelector?: string; relatedImgId?: string; // The id of the associated image collections diff --git a/packages/global/core/dataset/utils.ts b/packages/global/core/dataset/utils.ts index 972793813b42..e06cf956eb09 100644 --- a/packages/global/core/dataset/utils.ts +++ b/packages/global/core/dataset/utils.ts @@ -3,7 +3,7 @@ import { getFileIcon } from '../../common/file/icon'; import { strIsLink } from '../../common/string/tools'; export function getCollectionIcon( - type: `${DatasetCollectionTypeEnum}` = DatasetCollectionTypeEnum.file, + type: DatasetCollectionTypeEnum = DatasetCollectionTypeEnum.file, name = '' ) { if (type === DatasetCollectionTypeEnum.folder) { @@ -24,13 +24,13 @@ export function getSourceNameIcon({ sourceName: string; sourceId?: string; }) { - if (strIsLink(sourceId)) { - return 'common/linkBlue'; - } - const fileIcon = getFileIcon(sourceName, ''); + const fileIcon = getFileIcon(decodeURIComponent(sourceName), ''); if (fileIcon) { return fileIcon; } + if (strIsLink(sourceId)) { + return 'common/linkBlue'; + } return 'file/fill/manual'; } diff --git a/packages/global/package.json b/packages/global/package.json index a21cc6eaae59..8a015802cd06 100644 --- a/packages/global/package.json +++ b/packages/global/package.json @@ -10,7 +10,7 @@ "js-yaml": "^4.1.0", "jschardet": "3.1.1", "nanoid": "^4.0.1", - "next": "13.5.2", + "next": "14.2.3", "openai": "4.28.0", "openapi-types": "^12.1.3", "timezones-list": "^3.0.2" diff --git a/packages/service/common/file/gridfs/controller.ts b/packages/service/common/file/gridfs/controller.ts index 862e5e727cc9..88242d2bb609 100644 --- a/packages/service/common/file/gridfs/controller.ts +++ b/packages/service/common/file/gridfs/controller.ts @@ -7,7 +7,7 @@ import { MongoFileSchema } from './schema'; import { detectFileEncoding } from '@fastgpt/global/common/file/tools'; import { CommonErrEnum } from '@fastgpt/global/common/error/code/common'; import { MongoRawTextBuffer } from '../../buffer/rawText/schema'; -import { readFileRawContent } from '../read/utils'; +import { readRawContentByFileBuffer } from '../read/utils'; import { PassThrough } from 'stream'; export function getGFSCollection(bucket: `${BucketNameEnum}`) { @@ -196,7 +196,7 @@ export const readFileContentFromMongo = async ({ }); })(); - const { rawText } = await readFileRawContent({ + const { rawText } = await readRawContentByFileBuffer({ extension, isQAImport, teamId, diff --git a/packages/service/common/file/read/utils.ts b/packages/service/common/file/read/utils.ts index 9c6bf7fd2239..788c3c11c5d3 100644 --- a/packages/service/common/file/read/utils.ts +++ b/packages/service/common/file/read/utils.ts @@ -1,11 +1,12 @@ -import { markdownProcess, simpleMarkdownText } from '@fastgpt/global/common/string/markdown'; +import { markdownProcess } from '@fastgpt/global/common/string/markdown'; import { uploadMongoImg } from '../image/controller'; import { MongoImageTypeEnum } from '@fastgpt/global/common/file/image/constants'; import { addHours } from 'date-fns'; import { WorkerNameEnum, runWorker } from '../../../worker/utils'; +import fs from 'fs'; +import { detectFileEncoding } from '@fastgpt/global/common/file/tools'; import { ReadFileResponse } from '../../../worker/file/type'; -import { rawTextBackupPrefix } from '@fastgpt/global/core/dataset/read'; export const initMarkdownText = ({ teamId, @@ -28,7 +29,34 @@ export const initMarkdownText = ({ }) }); -export const readFileRawContent = async ({ +export type readRawTextByLocalFileParams = { + teamId: string; + path: string; + metadata?: Record; +}; +export const readRawTextByLocalFile = async (params: readRawTextByLocalFileParams) => { + const { path } = params; + + const extension = path?.split('.')?.pop()?.toLowerCase() || ''; + + const buffer = fs.readFileSync(path); + const encoding = detectFileEncoding(buffer); + + const { rawText } = await readRawContentByFileBuffer({ + extension, + isQAImport: false, + teamId: params.teamId, + encoding, + buffer, + metadata: params.metadata + }); + + return { + rawText + }; +}; + +export const readRawContentByFileBuffer = async ({ extension, isQAImport, teamId, @@ -69,9 +97,3 @@ export const readFileRawContent = async ({ return { rawText }; }; - -export const htmlToMarkdown = async (html?: string | null) => { - const md = await runWorker(WorkerNameEnum.htmlStr2Md, { html: html || '' }); - - return simpleMarkdownText(md); -}; diff --git a/packages/service/common/middle/entry.ts b/packages/service/common/middle/entry.ts new file mode 100644 index 000000000000..7f81b478a8d4 --- /dev/null +++ b/packages/service/common/middle/entry.ts @@ -0,0 +1,38 @@ +import { jsonRes } from '../response'; +import type { NextApiResponse } from 'next'; +import { withNextCors } from './cors'; +import { ApiRequestProps } from '../../type/next'; + +export type NextApiHandler = ( + req: ApiRequestProps, + res: NextApiResponse +) => unknown | Promise; + +export const NextEntry = ({ beforeCallback = [] }: { beforeCallback?: Promise[] }) => { + return (...args: NextApiHandler[]): NextApiHandler => { + return async function api(req: ApiRequestProps, res: NextApiResponse) { + try { + await Promise.all([withNextCors(req, res), ...beforeCallback]); + + let response = null; + for (const handler of args) { + response = await handler(req, res); + } + + const contentType = res.getHeader('Content-Type'); + if ((!contentType || contentType === 'application/json') && !res.writableFinished) { + return jsonRes(res, { + code: 200, + data: response + }); + } + } catch (error) { + return jsonRes(res, { + code: 500, + error, + url: req.url + }); + } + }; + }; +}; diff --git a/packages/service/common/string/cheerio.ts b/packages/service/common/string/cheerio.ts index 05ee9c63a9e8..495486e20f59 100644 --- a/packages/service/common/string/cheerio.ts +++ b/packages/service/common/string/cheerio.ts @@ -1,7 +1,7 @@ import { UrlFetchParams, UrlFetchResponse } from '@fastgpt/global/common/file/api'; import * as cheerio from 'cheerio'; import axios from 'axios'; -import { htmlToMarkdown } from '../file/read/utils'; +import { htmlToMarkdown } from './utils'; export const cheerioToHtml = ({ fetchUrl, diff --git a/packages/service/common/string/utils.ts b/packages/service/common/string/utils.ts new file mode 100644 index 000000000000..cd83e2e5659a --- /dev/null +++ b/packages/service/common/string/utils.ts @@ -0,0 +1,8 @@ +import { simpleMarkdownText } from '@fastgpt/global/common/string/markdown'; +import { WorkerNameEnum, runWorker } from '../../worker/utils'; + +export const htmlToMarkdown = async (html?: string | null) => { + const md = await runWorker(WorkerNameEnum.htmlStr2Md, { html: html || '' }); + + return simpleMarkdownText(md); +}; diff --git a/packages/service/core/dataset/collection/controller.ts b/packages/service/core/dataset/collection/controller.ts index b70d4a852bfb..6b69ed379e4c 100644 --- a/packages/service/core/dataset/collection/controller.ts +++ b/packages/service/core/dataset/collection/controller.ts @@ -32,6 +32,9 @@ export async function createOneCollection({ fileId, rawLink, + externalFileId, + externalFileUrl, + hashRawText, rawTextLength, metadata = {}, @@ -61,6 +64,8 @@ export async function createOneCollection({ fileId, rawLink, + externalFileId, + externalFileUrl, rawTextLength, hashRawText, diff --git a/packages/service/core/dataset/collection/schema.ts b/packages/service/core/dataset/collection/schema.ts index dea33a72b243..8e941696284e 100644 --- a/packages/service/core/dataset/collection/schema.ts +++ b/packages/service/core/dataset/collection/schema.ts @@ -66,7 +66,11 @@ const DatasetCollectionSchema = new Schema({ type: String }, - sourceId: String, + tags: { + type: [String], + default: [] + }, + // local file collection fileId: { type: Schema.Types.ObjectId, @@ -74,13 +78,13 @@ const DatasetCollectionSchema = new Schema({ }, // web link collection rawLink: String, - // external collection + externalFileId: String, // metadata rawTextLength: Number, hashRawText: String, - externalSourceUrl: String, // external import url + externalFileUrl: String, // external import url metadata: { type: Object, default: {} diff --git a/packages/service/core/dataset/read.ts b/packages/service/core/dataset/read.ts index 5b9902b33981..2ab98a165ff3 100644 --- a/packages/service/core/dataset/read.ts +++ b/packages/service/core/dataset/read.ts @@ -2,13 +2,20 @@ import { BucketNameEnum } from '@fastgpt/global/common/file/constants'; import { DatasetSourceReadTypeEnum } from '@fastgpt/global/core/dataset/constants'; import { readFileContentFromMongo } from '../../common/file/gridfs/controller'; import { urlsFetch } from '../../common/string/cheerio'; -import { rawTextBackupPrefix } from '@fastgpt/global/core/dataset/read'; import { parseCsvTable2Chunks } from './training/utils'; import { TextSplitProps, splitText2Chunks } from '@fastgpt/global/common/string/textSplitter'; import axios from 'axios'; -import { readFileRawContent } from '../../common/file/read/utils'; +import { readRawContentByFileBuffer } from '../../common/file/read/utils'; -export const readFileRawTextByUrl = async ({ teamId, url }: { teamId: string; url: string }) => { +export const readFileRawTextByUrl = async ({ + teamId, + url, + relatedId +}: { + teamId: string; + url: string; + relatedId?: string; +}) => { const response = await axios({ method: 'get', url: url, @@ -18,11 +25,14 @@ export const readFileRawTextByUrl = async ({ teamId, url }: { teamId: string; ur const buffer = Buffer.from(response.data, 'binary'); - const { rawText } = await readFileRawContent({ + const { rawText } = await readRawContentByFileBuffer({ extension, teamId, buffer, - encoding: 'utf-8' + encoding: 'utf-8', + metadata: { + relatedId + } }); return rawText; @@ -38,13 +48,15 @@ export const readDatasetSourceRawText = async ({ type, sourceId, isQAImport, - selector + selector, + relatedId }: { teamId: string; type: DatasetSourceReadTypeEnum; sourceId: string; isQAImport?: boolean; selector?: string; + relatedId?: string; }): Promise => { if (type === DatasetSourceReadTypeEnum.fileLocal) { const { rawText } = await readFileContentFromMongo({ @@ -64,7 +76,8 @@ export const readDatasetSourceRawText = async ({ } else if (type === DatasetSourceReadTypeEnum.externalFile) { const rawText = await readFileRawTextByUrl({ teamId, - url: sourceId + url: sourceId, + relatedId }); return rawText; } diff --git a/packages/service/core/dataset/search/controller.ts b/packages/service/core/dataset/search/controller.ts index f5f83c3acb73..60ade42f48ef 100644 --- a/packages/service/core/dataset/search/controller.ts +++ b/packages/service/core/dataset/search/controller.ts @@ -18,6 +18,7 @@ import { countPromptTokens } from '../../../common/string/tiktoken/index'; import { datasetSearchResultConcat } from '@fastgpt/global/core/dataset/search/utils'; import { hashStr } from '@fastgpt/global/common/string/tools'; import { jiebaSplit } from '../../../common/string/jieba'; +import { getCollectionSourceData } from '@fastgpt/global/core/dataset/collection/utils'; type SearchDatasetDataProps = { teamId: string; @@ -98,7 +99,7 @@ export async function searchDatasetData(props: SearchDatasetDataProps) { }, 'datasetId collectionId q a chunkIndex indexes' ) - .populate('collectionId', 'name fileId rawLink') + .populate('collectionId', 'name fileId rawLink externalFileId externalFileUrl') .lean()) as DatasetDataWithCollectionType[]; // add score to data(It's already sorted. The first one is the one with the most points) @@ -130,8 +131,7 @@ export async function searchDatasetData(props: SearchDatasetDataProps) { chunkIndex: data.chunkIndex, datasetId: String(data.datasetId), collectionId: String(data.collectionId?._id), - sourceName: data.collectionId?.name || '', - sourceId: data.collectionId?.fileId || data.collectionId?.rawLink, + ...getCollectionSourceData(data.collectionId), score: [{ type: SearchScoreTypeEnum.embedding, value: data.score, index }] }; @@ -205,8 +205,7 @@ export async function searchDatasetData(props: SearchDatasetDataProps) { id: String(item._id), datasetId: String(item.datasetId), collectionId: String(item.collectionId), - sourceName: collection?.name || '', - sourceId: collection?.fileId || collection?.rawLink, + ...getCollectionSourceData(collection), q: item.q, a: item.a, chunkIndex: item.chunkIndex, diff --git a/packages/service/core/dataset/training/controller.ts b/packages/service/core/dataset/training/controller.ts index 47ebdd11bb4d..19ef5e4ad382 100644 --- a/packages/service/core/dataset/training/controller.ts +++ b/packages/service/core/dataset/training/controller.ts @@ -174,7 +174,7 @@ export async function pushDataListToTrainingQueue({ } catch (error: any) { addLog.error(`Insert error`, error); // 如果有错误,将失败的文档添加到失败列表中 - error.writeErrors.forEach((writeError: any) => { + error.writeErrors?.forEach((writeError: any) => { failedDocuments.push(data[writeError.index]); }); console.log('failed', failedDocuments); diff --git a/packages/service/core/dataset/training/schema.ts b/packages/service/core/dataset/training/schema.ts index db1602eae8c4..1bc80da7072c 100644 --- a/packages/service/core/dataset/training/schema.ts +++ b/packages/service/core/dataset/training/schema.ts @@ -35,7 +35,7 @@ const TrainingDataSchema = new Schema({ }, billId: { // concat bill - type: Schema.Types.ObjectId + type: String }, mode: { type: String, diff --git a/packages/service/core/workflow/dispatch/tools/runLaf.ts b/packages/service/core/workflow/dispatch/tools/runLaf.ts index dadd82fe2705..6ba2625d578c 100644 --- a/packages/service/core/workflow/dispatch/tools/runLaf.ts +++ b/packages/service/core/workflow/dispatch/tools/runLaf.ts @@ -53,7 +53,7 @@ export const dispatchLafRequest = async (props: LafRequestProps): Promise= datasetMaxSize) { - return Promise.reject(TeamErrEnum.datasetSizeNotEnough); + return Promise.reject( + `您的知识库容量为: ${datasetMaxSize}组,已使用: ${usedSize}组,导入当前文件需要: ${insertLen}组,请增加知识库容量后导入。` + ); } if (usedPoints >= totalPoints) { diff --git a/packages/service/worker/file/read.ts b/packages/service/worker/file/read.ts index 52a7719c1d51..1c44852a893f 100644 --- a/packages/service/worker/file/read.ts +++ b/packages/service/worker/file/read.ts @@ -9,7 +9,7 @@ import { readXlsxRawText } from './extension/xlsx'; import { readCsvRawText } from './extension/csv'; parentPort?.on('message', async (props: ReadRawTextProps) => { - const readFileRawContent = async (params: ReadRawTextByBuffer) => { + const readRawContentByFileBuffer = async (params: ReadRawTextByBuffer) => { switch (params.extension) { case 'txt': case 'md': @@ -41,7 +41,7 @@ parentPort?.on('message', async (props: ReadRawTextProps) => { try { parentPort?.postMessage({ type: 'success', - data: await readFileRawContent(newProps) + data: await readRawContentByFileBuffer(newProps) }); } catch (error) { console.log(error); diff --git a/packages/web/components/common/Icon/constants.ts b/packages/web/components/common/Icon/constants.ts index eec77bb575a6..2b597a5241ef 100644 --- a/packages/web/components/common/Icon/constants.ts +++ b/packages/web/components/common/Icon/constants.ts @@ -101,6 +101,7 @@ export const iconPaths = { 'core/dataset/commonDataset': () => import('./icons/core/dataset/commonDataset.svg'), 'core/dataset/datasetFill': () => import('./icons/core/dataset/datasetFill.svg'), 'core/dataset/datasetLight': () => import('./icons/core/dataset/datasetLight.svg'), + 'core/dataset/externalDataset': () => import('./icons/core/dataset/externalDataset.svg'), 'core/dataset/fileCollection': () => import('./icons/core/dataset/fileCollection.svg'), 'core/dataset/fullTextRecall': () => import('./icons/core/dataset/fullTextRecall.svg'), 'core/dataset/manualCollection': () => import('./icons/core/dataset/manualCollection.svg'), diff --git a/packages/web/components/common/Icon/icons/core/dataset/externalDataset.svg b/packages/web/components/common/Icon/icons/core/dataset/externalDataset.svg new file mode 100644 index 000000000000..53673d984424 --- /dev/null +++ b/packages/web/components/common/Icon/icons/core/dataset/externalDataset.svg @@ -0,0 +1,5 @@ + + + \ No newline at end of file diff --git a/packages/web/components/common/Input/NumberInput/index.tsx b/packages/web/components/common/Input/NumberInput/index.tsx index 8f8909fce5c4..a1069db4042e 100644 --- a/packages/web/components/common/Input/NumberInput/index.tsx +++ b/packages/web/components/common/Input/NumberInput/index.tsx @@ -10,6 +10,7 @@ import React from 'react'; type Props = Omit & { onChange: (e: number | '') => any; + placeholder?: string; }; const MyNumberInput = (props: Props) => { @@ -24,7 +25,7 @@ const MyNumberInput = (props: Props) => { } }} > - + diff --git a/packages/web/components/common/Textarea/JsonEditor/index.tsx b/packages/web/components/common/Textarea/JsonEditor/index.tsx index 3598d8a64f2c..dcf81f333acc 100644 --- a/packages/web/components/common/Textarea/JsonEditor/index.tsx +++ b/packages/web/components/common/Textarea/JsonEditor/index.tsx @@ -22,6 +22,7 @@ type Props = Omit & { onChange?: (e: string) => void; variables?: EditorVariablePickerType[]; defaultHeight?: number; + placeholder?: string; }; const options = { diff --git a/packages/web/package.json b/packages/web/package.json index 03b56bbcb174..59021b6fc23b 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -27,18 +27,18 @@ "next-i18next": "15.2.0", "papaparse": "^5.4.1", "pdfjs-dist": "4.0.269", - "react": "18.2.0", + "react": "18.3.1", "use-context-selector": "^1.4.4", "react-day-picker": "^8.7.1", - "react-dom": "18.2.0", + "react-dom": "18.3.1", "react-i18next": "13.5.0", "react-beautiful-dnd": "^13.1.1" }, "devDependencies": { "@types/lodash": "^4.14.191", "@types/papaparse": "^5.3.7", - "@types/react": "18.2.0", - "@types/react-dom": "18.2.0", + "@types/react": "18.3.0", + "@types/react-dom": "18.3.0", "@types/react-beautiful-dnd": "^13.1.8" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b0e2efd940dd..1be8c2c05d50 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,13 +22,13 @@ importers: version: 13.2.1 next-i18next: specifier: 15.2.0 - version: 15.2.0(i18next@23.10.0)(next@13.5.2)(react-i18next@13.5.0)(react@18.2.0) + version: 15.2.0(i18next@23.10.0)(next@14.2.3)(react-i18next@13.5.0)(react@18.3.1) prettier: specifier: 3.2.4 version: 3.2.4 react-i18next: specifier: 13.5.0 - version: 13.5.0(i18next@23.10.0)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.0(i18next@23.10.0)(react-dom@18.3.1)(react@18.3.1) zhlint: specifier: ^0.7.1 version: 0.7.1 @@ -60,8 +60,8 @@ importers: specifier: ^4.0.1 version: 4.0.1 next: - specifier: 13.5.2 - version: 13.5.2(@babel/core@7.24.4)(react-dom@18.2.0)(react@18.2.0)(sass@1.58.3) + specifier: 14.2.3 + version: 14.2.3(@babel/core@7.24.4)(react-dom@18.3.1)(react@18.3.1)(sass@1.58.3) openai: specifier: 4.28.0 version: 4.28.0(encoding@0.1.13) @@ -151,11 +151,11 @@ importers: specifier: 1.4.5-lts.1 version: 1.4.5-lts.1 next: - specifier: 13.5.2 - version: 13.5.2(@babel/core@7.24.4)(react-dom@18.2.0)(react@18.2.0)(sass@1.58.3) + specifier: 14.2.3 + version: 14.2.3(@babel/core@7.24.4)(react-dom@18.3.1)(react@18.3.1)(sass@1.58.3) nextjs-cors: specifier: ^2.1.2 - version: 2.1.2(next@13.5.2) + version: 2.1.2(next@14.2.3) node-cron: specifier: ^3.0.3 version: 3.0.3 @@ -216,25 +216,25 @@ importers: version: 2.2.1 '@chakra-ui/icons': specifier: 2.1.1 - version: 2.1.1(@chakra-ui/system@2.6.1)(react@18.2.0) + version: 2.1.1(@chakra-ui/system@2.6.1)(react@18.3.1) '@chakra-ui/next-js': specifier: 2.1.5 - version: 2.1.5(@chakra-ui/react@2.8.1)(@emotion/react@11.11.1)(next@13.5.2)(react@18.2.0) + version: 2.1.5(@chakra-ui/react@2.8.1)(@emotion/react@11.11.1)(next@14.2.3)(react@18.3.1) '@chakra-ui/react': specifier: 2.8.1 - version: 2.8.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.0)(framer-motion@9.0.6)(react-dom@18.2.0)(react@18.2.0) + version: 2.8.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.3.0)(framer-motion@9.0.6)(react-dom@18.3.1)(react@18.3.1) '@chakra-ui/styled-system': specifier: 2.9.1 version: 2.9.1 '@chakra-ui/system': specifier: 2.6.1 - version: 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) + version: 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) '@emotion/react': specifier: 11.11.1 - version: 11.11.1(@types/react@18.2.0)(react@18.2.0) + version: 11.11.1(@types/react@18.3.0)(react@18.3.1) '@emotion/styled': specifier: 11.11.0 - version: 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.0)(react@18.2.0) + version: 11.11.0(@emotion/react@11.11.1)(@types/react@18.3.0)(react@18.3.1) '@fastgpt/global': specifier: workspace:* version: link:../global @@ -243,7 +243,7 @@ importers: version: 4.3.0 '@lexical/react': specifier: 0.12.6 - version: 0.12.6(lexical@0.12.6)(react-dom@18.2.0)(react@18.2.0)(yjs@13.6.14) + version: 0.12.6(lexical@0.12.6)(react-dom@18.3.1)(react@18.3.1)(yjs@13.6.15) '@lexical/selection': specifier: ^0.14.5 version: 0.14.5 @@ -255,13 +255,13 @@ importers: version: 0.12.6(lexical@0.12.6) '@monaco-editor/react': specifier: ^4.6.0 - version: 4.6.0(monaco-editor@0.47.0)(react-dom@18.2.0)(react@18.2.0) + version: 4.6.0(monaco-editor@0.48.0)(react-dom@18.3.1)(react@18.3.1) '@tanstack/react-query': specifier: ^4.24.10 - version: 4.24.10(react-dom@18.2.0)(react@18.2.0) + version: 4.24.10(react-dom@18.3.1)(react@18.3.1) ahooks: specifier: ^3.7.11 - version: 3.7.11(react@18.2.0) + version: 3.7.11(react@18.3.1) date-fns: specifier: 2.30.0 version: 2.30.0 @@ -279,7 +279,7 @@ importers: version: 4.17.21 next-i18next: specifier: 15.2.0 - version: 15.2.0(i18next@23.10.0)(next@13.5.2)(react-i18next@13.5.0)(react@18.2.0) + version: 15.2.0(i18next@23.10.0)(next@14.2.3)(react-i18next@13.5.0)(react@18.3.1) papaparse: specifier: ^5.4.1 version: 5.4.1 @@ -287,23 +287,23 @@ importers: specifier: 4.0.269 version: 4.0.269(encoding@0.1.13) react: - specifier: 18.2.0 - version: 18.2.0 + specifier: 18.3.1 + version: 18.3.1 react-beautiful-dnd: specifier: ^13.1.1 - version: 13.1.1(react-dom@18.2.0)(react@18.2.0) + version: 13.1.1(react-dom@18.3.1)(react@18.3.1) react-day-picker: specifier: ^8.7.1 - version: 8.7.1(date-fns@2.30.0)(react@18.2.0) + version: 8.7.1(date-fns@2.30.0)(react@18.3.1) react-dom: - specifier: 18.2.0 - version: 18.2.0(react@18.2.0) + specifier: 18.3.1 + version: 18.3.1(react@18.3.1) react-i18next: specifier: 13.5.0 - version: 13.5.0(i18next@23.10.0)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.0(i18next@23.10.0)(react-dom@18.3.1)(react@18.3.1) use-context-selector: specifier: ^1.4.4 - version: 1.4.4(react-dom@18.2.0)(react@18.2.0)(scheduler@0.23.0) + version: 1.4.4(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.2) devDependencies: '@types/lodash': specifier: ^4.14.191 @@ -312,14 +312,14 @@ importers: specifier: ^5.3.7 version: 5.3.7 '@types/react': - specifier: 18.2.0 - version: 18.2.0 + specifier: 18.3.0 + version: 18.3.0 '@types/react-beautiful-dnd': specifier: ^13.1.8 version: 13.1.8 '@types/react-dom': - specifier: 18.2.0 - version: 18.2.0 + specifier: 18.3.0 + version: 18.3.0 projects/app: dependencies: @@ -331,25 +331,25 @@ importers: version: 2.2.1 '@chakra-ui/icons': specifier: 2.1.1 - version: 2.1.1(@chakra-ui/system@2.6.1)(react@18.2.0) + version: 2.1.1(@chakra-ui/system@2.6.1)(react@18.3.1) '@chakra-ui/next-js': specifier: 2.1.5 - version: 2.1.5(@chakra-ui/react@2.8.1)(@emotion/react@11.11.1)(next@13.5.2)(react@18.2.0) + version: 2.1.5(@chakra-ui/react@2.8.1)(@emotion/react@11.11.1)(next@14.2.3)(react@18.3.1) '@chakra-ui/react': specifier: 2.8.1 - version: 2.8.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.0)(framer-motion@9.0.6)(react-dom@18.2.0)(react@18.2.0) + version: 2.8.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.3.0)(framer-motion@9.0.6)(react-dom@18.3.1)(react@18.3.1) '@chakra-ui/styled-system': specifier: 2.9.1 version: 2.9.1 '@chakra-ui/system': specifier: 2.6.1 - version: 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) + version: 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) '@emotion/react': specifier: 11.11.1 - version: 11.11.1(@types/react@18.2.0)(react@18.2.0) + version: 11.11.1(@types/react@18.3.0)(react@18.3.1) '@emotion/styled': specifier: 11.11.0 - version: 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.0)(react@18.2.0) + version: 11.11.0(@emotion/react@11.11.1)(@types/react@18.3.0)(react@18.3.1) '@fastgpt/global': specifier: workspace:* version: link:../../packages/global @@ -370,13 +370,13 @@ importers: version: 1.10.0 '@tanstack/react-query': specifier: ^4.24.10 - version: 4.24.10(react-dom@18.2.0)(react@18.2.0) + version: 4.24.10(react-dom@18.3.1)(react@18.3.1) '@types/nprogress': specifier: ^0.2.0 version: 0.2.0 ahooks: specifier: ^3.7.11 - version: 3.7.11(react@18.2.0) + version: 3.7.11(react@18.3.1) axios: specifier: ^1.5.1 version: 1.5.1 @@ -397,7 +397,7 @@ importers: version: 2.1.1 framer-motion: specifier: ^9.0.6 - version: 9.0.6(react-dom@18.2.0)(react@18.2.0) + version: 9.0.6(react-dom@18.3.1)(react@18.3.1) hyperdown: specifier: ^2.4.29 version: 2.4.29 @@ -423,11 +423,11 @@ importers: specifier: ^4.0.1 version: 4.0.1 next: - specifier: 13.5.2 - version: 13.5.2(@babel/core@7.24.4)(react-dom@18.2.0)(react@18.2.0)(sass@1.58.3) + specifier: 14.2.3 + version: 14.2.3(@babel/core@7.24.4)(react-dom@18.3.1)(react@18.3.1)(sass@1.58.3) next-i18next: specifier: 15.2.0 - version: 15.2.0(i18next@23.10.0)(next@13.5.2)(react-i18next@13.5.0)(react@18.2.0) + version: 15.2.0(i18next@23.10.0)(next@14.2.3)(react-i18next@13.5.0)(react@18.3.1) nextjs-node-loader: specifier: ^1.1.5 version: 1.1.5(webpack@5.91.0) @@ -435,29 +435,29 @@ importers: specifier: ^0.2.0 version: 0.2.0 react: - specifier: 18.2.0 - version: 18.2.0 + specifier: 18.3.1 + version: 18.3.1 react-day-picker: specifier: ^8.7.1 - version: 8.7.1(date-fns@2.30.0)(react@18.2.0) + version: 8.7.1(date-fns@2.30.0)(react@18.3.1) react-dom: - specifier: 18.2.0 - version: 18.2.0(react@18.2.0) + specifier: 18.3.1 + version: 18.3.1(react@18.3.1) react-hook-form: specifier: 7.43.1 - version: 7.43.1(react@18.2.0) + version: 7.43.1(react@18.3.1) react-i18next: specifier: 13.5.0 - version: 13.5.0(i18next@23.10.0)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.0(i18next@23.10.0)(react-dom@18.3.1)(react@18.3.1) react-markdown: specifier: ^8.0.7 - version: 8.0.7(@types/react@18.2.0)(react@18.2.0) + version: 8.0.7(@types/react@18.3.0)(react@18.3.1) react-syntax-highlighter: specifier: ^15.5.0 - version: 15.5.0(react@18.2.0) + version: 15.5.0(react@18.3.1) reactflow: specifier: ^11.7.4 - version: 11.7.4(immer@9.0.19)(react-dom@18.2.0)(react@18.2.0) + version: 11.7.4(immer@9.0.19)(react-dom@18.3.1)(react@18.3.1) rehype-katex: specifier: ^6.0.2 version: 6.0.2 @@ -478,10 +478,10 @@ importers: version: 1.58.3 use-context-selector: specifier: ^1.4.4 - version: 1.4.4(react-dom@18.2.0)(react@18.2.0)(scheduler@0.23.0) + version: 1.4.4(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.2) zustand: specifier: ^4.3.5 - version: 4.3.5(immer@9.0.19)(react@18.2.0) + version: 4.3.5(immer@9.0.19)(react@18.3.1) devDependencies: '@svgr/webpack': specifier: ^6.5.1 @@ -505,11 +505,11 @@ importers: specifier: ^20.8.5 version: 20.8.5 '@types/react': - specifier: 18.2.0 - version: 18.2.0 + specifier: 18.3.0 + version: 18.3.0 '@types/react-dom': - specifier: 18.2.0 - version: 18.2.0 + specifier: 18.3.0 + version: 18.3.0 '@types/react-syntax-highlighter': specifier: ^15.5.6 version: 15.5.6 @@ -520,8 +520,8 @@ importers: specifier: 8.34.0 version: 8.34.0 eslint-config-next: - specifier: 13.1.6 - version: 13.1.6(eslint@8.34.0)(typescript@4.9.5) + specifier: 14.2.3 + version: 14.2.3(eslint@8.34.0)(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -583,7 +583,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.24.2 - picocolors: 1.0.0 + picocolors: 1.0.1 /@babel/compat-data@7.24.1: resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==} @@ -848,7 +848,7 @@ packages: '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.0.0 + picocolors: 1.0.1 /@babel/parser@7.24.4: resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} @@ -1840,6 +1840,12 @@ packages: dependencies: regenerator-runtime: 0.14.1 + /@babel/runtime@7.24.5: + resolution: {integrity: sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.1 + /@babel/template@7.24.0: resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} engines: {node: '>=6.9.0'} @@ -1883,68 +1889,68 @@ packages: resolution: {integrity: sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A==} dev: false - /@chakra-ui/accordion@2.3.1(@chakra-ui/system@2.6.1)(framer-motion@9.0.6)(react@18.2.0): + /@chakra-ui/accordion@2.3.1(@chakra-ui/system@2.6.1)(framer-motion@9.0.6)(react@18.3.1): resolution: {integrity: sha512-FSXRm8iClFyU+gVaXisOSEw0/4Q+qZbFRiuhIAkVU6Boj0FxAMrlo9a8AV5TuF77rgaHytCdHk0Ng+cyUijrag==} peerDependencies: '@chakra-ui/system': '>=2.0.0' framer-motion: '>=4.0.0' react: '>=18' dependencies: - '@chakra-ui/descendant': 3.1.0(react@18.2.0) - '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/react-context': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-controllable-state': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) + '@chakra-ui/descendant': 3.1.0(react@18.3.1) + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-controllable-state': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - '@chakra-ui/transition': 2.1.0(framer-motion@9.0.6)(react@18.2.0) - framer-motion: 9.0.6(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + '@chakra-ui/transition': 2.1.0(framer-motion@9.0.6)(react@18.3.1) + framer-motion: 9.0.6(react-dom@18.3.1)(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/alert@2.2.1(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/alert@2.2.1(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-GduIqqWCkvID8hxRlKw29Jp3w93r/E9S30J2F8By3ODon9Bhk1o/KVolcPiSiQvRwKNBJCd/rBTpPpLkB+s7pw==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/spinner': 2.1.0(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/spinner': 2.1.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false /@chakra-ui/anatomy@2.2.1: resolution: {integrity: sha512-bbmyWTGwQo+aHYDMtLIj7k7hcWvwE7GFVDViLFArrrPhfUTDdQTNqhiDp1N7eh2HLyjNhc2MKXV8s2KTQqkmTg==} dev: false - /@chakra-ui/avatar@2.3.0(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/avatar@2.3.0(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-8gKSyLfygnaotbJbDMHDiJoF38OHXUYVme4gGxZ1fLnQEdPVEaIWfH+NndIjOM0z8S+YEFnT9KyGMUtvPrBk3g==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@chakra-ui/image': 2.1.0(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/react-children-utils': 2.0.6(react@18.2.0) - '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/image': 2.1.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/react-children-utils': 2.0.6(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/breadcrumb@2.2.0(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/breadcrumb@2.2.0(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-4cWCG24flYBxjruRi4RJREWTGF74L/KzI2CognAW/d/zWR0CjiScuJhf37Am3LFbCySP6WSoyBOtTIoTA4yLEA==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@chakra-ui/react-children-utils': 2.0.6(react@18.2.0) - '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/react-children-utils': 2.0.6(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false /@chakra-ui/breakpoint-utils@2.0.8: @@ -1953,50 +1959,50 @@ packages: '@chakra-ui/shared-utils': 2.0.5 dev: false - /@chakra-ui/button@2.1.0(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/button@2.1.0(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-95CplwlRKmmUXkdEp/21VkEWgnwcx2TOBG6NfYlsuLBDHSLlo5FKIiE2oSi4zXc4TLcopGcWPNcm/NDaSC5pvA==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@chakra-ui/react-context': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/spinner': 2.1.0(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/spinner': 2.1.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/card@2.2.0(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/card@2.2.0(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-xUB/k5MURj4CtPAhdSoXZidUbm8j3hci9vnc+eZJVDqhDOShNlD6QeniQNRPRys4lWAQLCbFcrwL29C8naDi6g==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/checkbox@2.3.1(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/checkbox@2.3.1(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-e6qL9ntVI/Ui6g0+iljUV2chX86YMsXafldpTHBNYDEoNLjGo1lqLFzq3y6zs3iuB3DHI0X7eAG3REmMVs0A0w==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@chakra-ui/form-control': 2.1.1(@chakra-ui/system@2.6.1)(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-callback-ref': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-controllable-state': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-update-effect': 2.1.0(react@18.2.0) + '@chakra-ui/form-control': 2.1.1(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-types': 2.0.7(react@18.3.1) + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-controllable-state': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-update-effect': 2.1.0(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - '@chakra-ui/visually-hidden': 2.2.0(@chakra-ui/system@2.6.1)(react@18.2.0) + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + '@chakra-ui/visually-hidden': 2.2.0(@chakra-ui/system@2.6.1)(react@18.3.1) '@zag-js/focus-visible': 0.16.0 - react: 18.2.0 + react: 18.3.1 dev: false /@chakra-ui/cli@2.4.1: @@ -2012,261 +2018,261 @@ packages: prettier: 2.8.8 dev: true - /@chakra-ui/clickable@2.1.0(react@18.2.0): + /@chakra-ui/clickable@2.1.0(react@18.3.1): resolution: {integrity: sha512-flRA/ClPUGPYabu+/GLREZVZr9j2uyyazCAUHAdrTUEdDYCr31SVGhgh7dgKdtq23bOvAQJpIJjw/0Bs0WvbXw==} peerDependencies: react: '>=18' dependencies: - '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - react: 18.2.0 + react: 18.3.1 dev: false - /@chakra-ui/close-button@2.1.1(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/close-button@2.1.1(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-gnpENKOanKexswSVpVz7ojZEALl2x5qjLYNqSQGbxz+aP9sOXPfUS56ebyBrre7T7exuWGiFeRwnM0oVeGPaiw==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/color-mode@2.2.0(react@18.2.0): + /@chakra-ui/color-mode@2.2.0(react@18.3.1): resolution: {integrity: sha512-niTEA8PALtMWRI9wJ4LL0CSBDo8NBfLNp4GD6/0hstcm3IlbBHTVKxN6HwSaoNYfphDQLxCjT4yG+0BJA5tFpg==} peerDependencies: react: '>=18' dependencies: - '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.2.0) - react: 18.2.0 + '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/control-box@2.1.0(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/control-box@2.1.0(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-gVrRDyXFdMd8E7rulL0SKeoljkLQiPITFnsyMO8EFHNZ+AHt5wK4LIguYVEq88APqAGZGfHFWXr79RYrNiE3Mg==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/counter@2.1.0(react@18.2.0): + /@chakra-ui/counter@2.1.0(react@18.3.1): resolution: {integrity: sha512-s6hZAEcWT5zzjNz2JIWUBzRubo9la/oof1W7EKZVVfPYHERnl5e16FmBC79Yfq8p09LQ+aqFKm/etYoJMMgghw==} peerDependencies: react: '>=18' dependencies: '@chakra-ui/number-utils': 2.0.7 - '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - react: 18.2.0 + react: 18.3.1 dev: false - /@chakra-ui/css-reset@2.3.0(@emotion/react@11.11.1)(react@18.2.0): + /@chakra-ui/css-reset@2.3.0(@emotion/react@11.11.1)(react@18.3.1): resolution: {integrity: sha512-cQwwBy5O0jzvl0K7PLTLgp8ijqLPKyuEMiDXwYzl95seD3AoeuoCLyzZcJtVqaUZ573PiBdAbY/IlZcwDOItWg==} peerDependencies: '@emotion/react': '>=10.0.35' react: '>=18' dependencies: - '@emotion/react': 11.11.1(@types/react@18.2.0)(react@18.2.0) - react: 18.2.0 + '@emotion/react': 11.11.1(@types/react@18.3.0)(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/descendant@3.1.0(react@18.2.0): + /@chakra-ui/descendant@3.1.0(react@18.3.1): resolution: {integrity: sha512-VxCIAir08g5w27klLyi7PVo8BxhW4tgU/lxQyujkmi4zx7hT9ZdrcQLAted/dAa+aSIZ14S1oV0Q9lGjsAdxUQ==} peerDependencies: react: '>=18' dependencies: - '@chakra-ui/react-context': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) - react: 18.2.0 + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) + react: 18.3.1 dev: false /@chakra-ui/dom-utils@2.1.0: resolution: {integrity: sha512-ZmF2qRa1QZ0CMLU8M1zCfmw29DmPNtfjR9iTo74U5FPr3i1aoAh7fbJ4qAlZ197Xw9eAW28tvzQuoVWeL5C7fQ==} dev: false - /@chakra-ui/editable@3.1.0(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/editable@3.1.0(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-j2JLrUL9wgg4YA6jLlbU88370eCRyor7DZQD9lzpY95tSOXpTljeg3uF9eOmDnCs6fxp3zDWIfkgMm/ExhcGTg==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@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-callback-ref': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-controllable-state': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-focus-on-pointer-down': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-update-effect': 2.1.0(react@18.2.0) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-types': 2.0.7(react@18.3.1) + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-controllable-state': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-focus-on-pointer-down': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-update-effect': 2.1.0(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false /@chakra-ui/event-utils@2.0.8: resolution: {integrity: sha512-IGM/yGUHS+8TOQrZGpAKOJl/xGBrmRYJrmbHfUE7zrG3PpQyXvbLDP1M+RggkCFVgHlJi2wpYIf0QtQlU0XZfw==} dev: false - /@chakra-ui/focus-lock@2.1.0(@types/react@18.2.0)(react@18.2.0): + /@chakra-ui/focus-lock@2.1.0(@types/react@18.3.0)(react@18.3.1): 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.11.2(@types/react@18.2.0)(react@18.2.0) + react: 18.3.1 + react-focus-lock: 2.11.2(@types/react@18.3.0)(react@18.3.1) transitivePeerDependencies: - '@types/react' dev: false - /@chakra-ui/form-control@2.1.1(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/form-control@2.1.1(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-LJPDzA1ITc3lhd/iDiINqGeca5bJD09PZAjePGEmmZyLPZZi8nPh/iii0RMxvKyJArsTBwXymCh+dEqK9aDzGQ==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.1)(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/icon': 3.2.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-types': 2.0.7(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/hooks@2.2.1(react@18.2.0): + /@chakra-ui/hooks@2.2.1(react@18.3.1): resolution: {integrity: sha512-RQbTnzl6b1tBjbDPf9zGRo9rf/pQMholsOudTxjy4i9GfTfz6kgp5ValGjQm2z7ng6Z31N1cnjZ1AlSzQ//ZfQ==} peerDependencies: react: '>=18' dependencies: - '@chakra-ui/react-utils': 2.0.12(react@18.2.0) + '@chakra-ui/react-utils': 2.0.12(react@18.3.1) '@chakra-ui/utils': 2.0.15 compute-scroll-into-view: 3.0.3 copy-to-clipboard: 3.3.3 - react: 18.2.0 + react: 18.3.1 dev: false - /@chakra-ui/icon@3.2.0(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/icon@3.2.0(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-xxjGLvlX2Ys4H0iHrI16t74rG9EBcpFvJ3Y3B7KMQTrnW34Kf7Da/UC8J67Gtx85mTHW020ml85SVPKORWNNKQ==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/icons@2.1.1(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/icons@2.1.1(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-3p30hdo4LlRZTT5CwoAJq3G9fHI0wDc0pBaMHj4SUn0yomO+RcDRlzhdXqdr5cVnzax44sqXJVnf3oQG0eI+4g==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/image@2.1.0(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/image@2.1.0(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-bskumBYKLiLMySIWDGcz0+D9Th0jPvmX6xnRMs4o92tT3Od/bW26lahmV2a2Op2ItXeCmRMY+XxJH5Gy1i46VA==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/input@2.1.1(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/input@2.1.1(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-RQYzQ/qcak3eCuCfvSqc1kEFx0sCcnIeiSi7i0r70CeBnAUK/CP1/4Uz849FpKz81K4z2SikC9MkHPQd8ZpOwg==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@chakra-ui/form-control': 2.1.1(@chakra-ui/system@2.6.1)(react@18.2.0) + '@chakra-ui/form-control': 2.1.1(@chakra-ui/system@2.6.1)(react@18.3.1) '@chakra-ui/object-utils': 2.1.0 - '@chakra-ui/react-children-utils': 2.0.6(react@18.2.0) - '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/react-children-utils': 2.0.6(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/layout@2.3.1(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/layout@2.3.1(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-nXuZ6WRbq0WdgnRgLw+QuxWAHuhDtVX8ElWqcTK+cSMFg/52eVP47czYBE5F35YhnoW2XBwfNoNgZ7+e8Z01Rg==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: '@chakra-ui/breakpoint-utils': 2.0.8 - '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.1)(react@18.2.0) + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.1)(react@18.3.1) '@chakra-ui/object-utils': 2.1.0 - '@chakra-ui/react-children-utils': 2.0.6(react@18.2.0) - '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/react-children-utils': 2.0.6(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false /@chakra-ui/lazy-utils@2.0.5: resolution: {integrity: sha512-UULqw7FBvcckQk2n3iPO56TMJvDsNv0FKZI6PlUNJVaGsPbsYxK/8IQ60vZgaTVPtVcjY6BE+y6zg8u9HOqpyg==} dev: false - /@chakra-ui/live-region@2.1.0(react@18.2.0): + /@chakra-ui/live-region@2.1.0(react@18.3.1): resolution: {integrity: sha512-ZOxFXwtaLIsXjqnszYYrVuswBhnIHHP+XIgK1vC6DePKtyK590Wg+0J0slDwThUAd4MSSIUa/nNX84x1GMphWw==} peerDependencies: react: '>=18' dependencies: - react: 18.2.0 + react: 18.3.1 dev: false - /@chakra-ui/media-query@3.3.0(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/media-query@3.3.0(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-IsTGgFLoICVoPRp9ykOgqmdMotJG0CnPsKvGQeSFOB/dZfIujdVb14TYxDU4+MURXry1MhJ7LzZhv+Ml7cr8/g==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: '@chakra-ui/breakpoint-utils': 2.0.8 - '@chakra-ui/react-env': 3.1.0(react@18.2.0) + '@chakra-ui/react-env': 3.1.0(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/menu@2.2.1(@chakra-ui/system@2.6.1)(framer-motion@9.0.6)(react@18.2.0): + /@chakra-ui/menu@2.2.1(@chakra-ui/system@2.6.1)(framer-motion@9.0.6)(react@18.3.1): resolution: {integrity: sha512-lJS7XEObzJxsOwWQh7yfG4H8FzFPRP5hVPN/CL+JzytEINCSBvsCDHrYPQGp7jzpCi8vnTqQQGQe0f8dwnXd2g==} peerDependencies: '@chakra-ui/system': '>=2.0.0' framer-motion: '>=4.0.0' react: '>=18' dependencies: - '@chakra-ui/clickable': 2.1.0(react@18.2.0) - '@chakra-ui/descendant': 3.1.0(react@18.2.0) + '@chakra-ui/clickable': 2.1.0(react@18.3.1) + '@chakra-ui/descendant': 3.1.0(react@18.3.1) '@chakra-ui/lazy-utils': 2.0.5 - '@chakra-ui/popper': 3.1.0(react@18.2.0) - '@chakra-ui/react-children-utils': 2.0.6(react@18.2.0) - '@chakra-ui/react-context': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-animation-state': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-controllable-state': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-disclosure': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-focus-effect': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-outside-click': 2.2.0(react@18.2.0) - '@chakra-ui/react-use-update-effect': 2.1.0(react@18.2.0) + '@chakra-ui/popper': 3.1.0(react@18.3.1) + '@chakra-ui/react-children-utils': 2.0.6(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-animation-state': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-controllable-state': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-disclosure': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-focus-effect': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-outside-click': 2.2.0(react@18.3.1) + '@chakra-ui/react-use-update-effect': 2.1.0(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - '@chakra-ui/transition': 2.1.0(framer-motion@9.0.6)(react@18.2.0) - framer-motion: 9.0.6(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + '@chakra-ui/transition': 2.1.0(framer-motion@9.0.6)(react@18.3.1) + framer-motion: 9.0.6(react-dom@18.3.1)(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/modal@2.3.1(@chakra-ui/system@2.6.1)(@types/react@18.2.0)(framer-motion@9.0.6)(react-dom@18.2.0)(react@18.2.0): + /@chakra-ui/modal@2.3.1(@chakra-ui/system@2.6.1)(@types/react@18.3.0)(framer-motion@9.0.6)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-TQv1ZaiJMZN+rR9DK0snx/OPwmtaGH1HbZtlYt4W4s6CzyK541fxLRTjIXfEzIGpvNW+b6VFuFjbcR78p4DEoQ==} peerDependencies: '@chakra-ui/system': '>=2.0.0' @@ -2274,25 +2280,25 @@ packages: react: '>=18' react-dom: '>=18' dependencies: - '@chakra-ui/close-button': 2.1.1(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/focus-lock': 2.1.0(@types/react@18.2.0)(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/close-button': 2.1.1(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/focus-lock': 2.1.0(@types/react@18.3.0)(react@18.3.1) + '@chakra-ui/portal': 2.1.0(react-dom@18.3.1)(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-types': 2.0.7(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - '@chakra-ui/transition': 2.1.0(framer-motion@9.0.6)(react@18.2.0) + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + '@chakra-ui/transition': 2.1.0(framer-motion@9.0.6)(react@18.3.1) aria-hidden: 1.2.4 - framer-motion: 9.0.6(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.9(@types/react@18.2.0)(react@18.2.0) + framer-motion: 9.0.6(react-dom@18.3.1)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.5.9(@types/react@18.3.0)(react@18.3.1) transitivePeerDependencies: - '@types/react' dev: false - /@chakra-ui/next-js@2.1.5(@chakra-ui/react@2.8.1)(@emotion/react@11.11.1)(next@13.5.2)(react@18.2.0): + /@chakra-ui/next-js@2.1.5(@chakra-ui/react@2.8.1)(@emotion/react@11.11.1)(next@14.2.3)(react@18.3.1): resolution: {integrity: sha512-bBd8zeXlAuVwDsjGN0/5ZZJknSbFeiZgJiGdbJo91v2lxKkOwo26b4ggc1ck1t+JR+daU6SrGBjlbQqSuWzyaA==} peerDependencies: '@chakra-ui/react': '>=2.4.0' @@ -2300,33 +2306,33 @@ packages: next: '>=13' react: '>=18' dependencies: - '@chakra-ui/react': 2.8.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.0)(framer-motion@9.0.6)(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/react': 2.8.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.3.0)(framer-motion@9.0.6)(react-dom@18.3.1)(react@18.3.1) '@emotion/cache': 11.11.0 - '@emotion/react': 11.11.1(@types/react@18.2.0)(react@18.2.0) - next: 13.5.2(@babel/core@7.24.4)(react-dom@18.2.0)(react@18.2.0)(sass@1.58.3) - react: 18.2.0 + '@emotion/react': 11.11.1(@types/react@18.3.0)(react@18.3.1) + next: 14.2.3(@babel/core@7.24.4)(react-dom@18.3.1)(react@18.3.1)(sass@1.58.3) + react: 18.3.1 dev: false - /@chakra-ui/number-input@2.1.1(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/number-input@2.1.1(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-B4xwUPyr0NmjGN/dBhOmCD2xjX6OY1pr9GmGH3GQRozMsLAClD3TibwiZetwlyCp02qQqiFwEcZmUxaX88794Q==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@chakra-ui/counter': 2.1.0(react@18.2.0) - '@chakra-ui/form-control': 2.1.1(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.1)(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-callback-ref': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-event-listener': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-interval': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-update-effect': 2.1.0(react@18.2.0) + '@chakra-ui/counter': 2.1.0(react@18.3.1) + '@chakra-ui/form-control': 2.1.1(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-types': 2.0.7(react@18.3.1) + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-event-listener': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-interval': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-update-effect': 2.1.0(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false /@chakra-ui/number-utils@2.0.7: @@ -2337,80 +2343,80 @@ packages: resolution: {integrity: sha512-tgIZOgLHaoti5PYGPTwK3t/cqtcycW0owaiOXoZOcpwwX/vlVb+H1jFsQyWiiwQVPt9RkoSLtxzXamx+aHH+bQ==} dev: false - /@chakra-ui/pin-input@2.1.0(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/pin-input@2.1.0(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-x4vBqLStDxJFMt+jdAHHS8jbh294O53CPQJoL4g228P513rHylV/uPscYUHrVJXRxsHfRztQO9k45jjTYaPRMw==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@chakra-ui/descendant': 3.1.0(react@18.2.0) - '@chakra-ui/react-children-utils': 2.0.6(react@18.2.0) - '@chakra-ui/react-context': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-controllable-state': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) + '@chakra-ui/descendant': 3.1.0(react@18.3.1) + '@chakra-ui/react-children-utils': 2.0.6(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-controllable-state': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/popover@2.2.1(@chakra-ui/system@2.6.1)(framer-motion@9.0.6)(react@18.2.0): + /@chakra-ui/popover@2.2.1(@chakra-ui/system@2.6.1)(framer-motion@9.0.6)(react@18.3.1): resolution: {integrity: sha512-K+2ai2dD0ljvJnlrzesCDT9mNzLifE3noGKZ3QwLqd/K34Ym1W/0aL1ERSynrcG78NKoXS54SdEzkhCZ4Gn/Zg==} peerDependencies: '@chakra-ui/system': '>=2.0.0' framer-motion: '>=4.0.0' react: '>=18' dependencies: - '@chakra-ui/close-button': 2.1.1(@chakra-ui/system@2.6.1)(react@18.2.0) + '@chakra-ui/close-button': 2.1.1(@chakra-ui/system@2.6.1)(react@18.3.1) '@chakra-ui/lazy-utils': 2.0.5 - '@chakra-ui/popper': 3.1.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-animation-state': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-disclosure': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-focus-effect': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-focus-on-pointer-down': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) + '@chakra-ui/popper': 3.1.0(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-types': 2.0.7(react@18.3.1) + '@chakra-ui/react-use-animation-state': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-disclosure': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-focus-effect': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-focus-on-pointer-down': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - framer-motion: 9.0.6(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + framer-motion: 9.0.6(react-dom@18.3.1)(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/popper@3.1.0(react@18.2.0): + /@chakra-ui/popper@3.1.0(react@18.3.1): resolution: {integrity: sha512-ciDdpdYbeFG7og6/6J8lkTFxsSvwTdMLFkpVylAF6VNC22jssiWfquj2eyD4rJnzkRFPvIWJq8hvbfhsm+AjSg==} peerDependencies: react: '>=18' dependencies: - '@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/react-types': 2.0.7(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) '@popperjs/core': 2.11.8 - react: 18.2.0 + react: 18.3.1 dev: false - /@chakra-ui/portal@2.1.0(react-dom@18.2.0)(react@18.2.0): + /@chakra-ui/portal@2.1.0(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-9q9KWf6SArEcIq1gGofNcFPSWEyl+MfJjEUg/un1SMlQjaROOh3zYr+6JAwvcORiX7tyHosnmWC3d3wI2aPSQg==} peerDependencies: react: '>=18' react-dom: '>=18' dependencies: - '@chakra-ui/react-context': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) dev: false - /@chakra-ui/progress@2.2.0(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/progress@2.2.0(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-qUXuKbuhN60EzDD9mHR7B67D7p/ZqNS2Aze4Pbl1qGGZfulPW0PY8Rof32qDtttDQBkzQIzFGE8d9QpAemToIQ==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@chakra-ui/react-context': 2.1.0(react@18.2.0) - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/provider@2.4.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react-dom@18.2.0)(react@18.2.0): + /@chakra-ui/provider@2.4.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-u4g02V9tJ9vVYfkLz5jBn/bKlAyjLdg4Sh3f7uckmYVAZpOL/uUlrStyADrynu3tZhI+BE8XdmXC4zs/SYD7ow==} peerDependencies: '@emotion/react': ^11.0.0 @@ -2418,229 +2424,229 @@ packages: react: '>=18' react-dom: '>=18' dependencies: - '@chakra-ui/css-reset': 2.3.0(@emotion/react@11.11.1)(react@18.2.0) - '@chakra-ui/portal': 2.1.0(react-dom@18.2.0)(react@18.2.0) - '@chakra-ui/react-env': 3.1.0(react@18.2.0) - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) + '@chakra-ui/css-reset': 2.3.0(@emotion/react@11.11.1)(react@18.3.1) + '@chakra-ui/portal': 2.1.0(react-dom@18.3.1)(react@18.3.1) + '@chakra-ui/react-env': 3.1.0(react@18.3.1) + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) '@chakra-ui/utils': 2.0.15 - '@emotion/react': 11.11.1(@types/react@18.2.0)(react@18.2.0) - '@emotion/styled': 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@emotion/react': 11.11.1(@types/react@18.3.0)(react@18.3.1) + '@emotion/styled': 11.11.0(@emotion/react@11.11.1)(@types/react@18.3.0)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) dev: false - /@chakra-ui/radio@2.1.1(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/radio@2.1.1(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-5JXDVvMWsF/Cprh6BKfcTLbLtRcgD6Wl2zwbNU30nmKIE8+WUfqD7JQETV08oWEzhi3Ea4e5EHvyll2sGx8H3w==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@chakra-ui/form-control': 2.1.1(@chakra-ui/system@2.6.1)(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/form-control': 2.1.1(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-types': 2.0.7(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) '@zag-js/focus-visible': 0.16.0 - react: 18.2.0 + react: 18.3.1 dev: false - /@chakra-ui/react-children-utils@2.0.6(react@18.2.0): + /@chakra-ui/react-children-utils@2.0.6(react@18.3.1): resolution: {integrity: sha512-QVR2RC7QsOsbWwEnq9YduhpqSFnZGvjjGREV8ygKi8ADhXh93C8azLECCUVgRJF2Wc+So1fgxmjLcbZfY2VmBA==} peerDependencies: react: '>=18' dependencies: - react: 18.2.0 + react: 18.3.1 dev: false - /@chakra-ui/react-context@2.1.0(react@18.2.0): + /@chakra-ui/react-context@2.1.0(react@18.3.1): resolution: {integrity: sha512-iahyStvzQ4AOwKwdPReLGfDesGG+vWJfEsn0X/NoGph/SkN+HXtv2sCfYFFR9k7bb+Kvc6YfpLlSuLvKMHi2+w==} peerDependencies: react: '>=18' dependencies: - react: 18.2.0 + react: 18.3.1 dev: false - /@chakra-ui/react-env@3.1.0(react@18.2.0): + /@chakra-ui/react-env@3.1.0(react@18.3.1): resolution: {integrity: sha512-Vr96GV2LNBth3+IKzr/rq1IcnkXv+MLmwjQH6C8BRtn3sNskgDFD5vLkVXcEhagzZMCh8FR3V/bzZPojBOyNhw==} peerDependencies: react: '>=18' dependencies: - '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.2.0) - react: 18.2.0 + '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/react-types@2.0.7(react@18.2.0): + /@chakra-ui/react-types@2.0.7(react@18.3.1): resolution: {integrity: sha512-12zv2qIZ8EHwiytggtGvo4iLT0APris7T0qaAWqzpUGS0cdUtR8W+V1BJ5Ocq+7tA6dzQ/7+w5hmXih61TuhWQ==} peerDependencies: react: '>=18' dependencies: - react: 18.2.0 + react: 18.3.1 dev: false - /@chakra-ui/react-use-animation-state@2.1.0(react@18.2.0): + /@chakra-ui/react-use-animation-state@2.1.0(react@18.3.1): resolution: {integrity: sha512-CFZkQU3gmDBwhqy0vC1ryf90BVHxVN8cTLpSyCpdmExUEtSEInSCGMydj2fvn7QXsz/za8JNdO2xxgJwxpLMtg==} peerDependencies: react: '>=18' dependencies: '@chakra-ui/dom-utils': 2.1.0 - '@chakra-ui/react-use-event-listener': 2.1.0(react@18.2.0) - react: 18.2.0 + '@chakra-ui/react-use-event-listener': 2.1.0(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/react-use-callback-ref@2.1.0(react@18.2.0): + /@chakra-ui/react-use-callback-ref@2.1.0(react@18.3.1): resolution: {integrity: sha512-efnJrBtGDa4YaxDzDE90EnKD3Vkh5a1t3w7PhnRQmsphLy3g2UieasoKTlT2Hn118TwDjIv5ZjHJW6HbzXA9wQ==} peerDependencies: react: '>=18' dependencies: - react: 18.2.0 + react: 18.3.1 dev: false - /@chakra-ui/react-use-controllable-state@2.1.0(react@18.2.0): + /@chakra-ui/react-use-controllable-state@2.1.0(react@18.3.1): resolution: {integrity: sha512-QR/8fKNokxZUs4PfxjXuwl0fj/d71WPrmLJvEpCTkHjnzu7LnYvzoe2wB867IdooQJL0G1zBxl0Dq+6W1P3jpg==} peerDependencies: react: '>=18' dependencies: - '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.2.0) - react: 18.2.0 + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/react-use-disclosure@2.1.0(react@18.2.0): + /@chakra-ui/react-use-disclosure@2.1.0(react@18.3.1): resolution: {integrity: sha512-Ax4pmxA9LBGMyEZJhhUZobg9C0t3qFE4jVF1tGBsrLDcdBeLR9fwOogIPY9Hf0/wqSlAryAimICbr5hkpa5GSw==} peerDependencies: react: '>=18' dependencies: - '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.2.0) - react: 18.2.0 + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/react-use-event-listener@2.1.0(react@18.2.0): + /@chakra-ui/react-use-event-listener@2.1.0(react@18.3.1): resolution: {integrity: sha512-U5greryDLS8ISP69DKDsYcsXRtAdnTQT+jjIlRYZ49K/XhUR/AqVZCK5BkR1spTDmO9H8SPhgeNKI70ODuDU/Q==} peerDependencies: react: '>=18' dependencies: - '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.2.0) - react: 18.2.0 + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/react-use-focus-effect@2.1.0(react@18.2.0): + /@chakra-ui/react-use-focus-effect@2.1.0(react@18.3.1): resolution: {integrity: sha512-xzVboNy7J64xveLcxTIJ3jv+lUJKDwRM7Szwn9tNzUIPD94O3qwjV7DDCUzN2490nSYDF4OBMt/wuDBtaR3kUQ==} peerDependencies: react: '>=18' dependencies: '@chakra-ui/dom-utils': 2.1.0 - '@chakra-ui/react-use-event-listener': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-update-effect': 2.1.0(react@18.2.0) - react: 18.2.0 + '@chakra-ui/react-use-event-listener': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-update-effect': 2.1.0(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/react-use-focus-on-pointer-down@2.1.0(react@18.2.0): + /@chakra-ui/react-use-focus-on-pointer-down@2.1.0(react@18.3.1): resolution: {integrity: sha512-2jzrUZ+aiCG/cfanrolsnSMDykCAbv9EK/4iUyZno6BYb3vziucmvgKuoXbMPAzWNtwUwtuMhkby8rc61Ue+Lg==} peerDependencies: react: '>=18' dependencies: - '@chakra-ui/react-use-event-listener': 2.1.0(react@18.2.0) - react: 18.2.0 + '@chakra-ui/react-use-event-listener': 2.1.0(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/react-use-interval@2.1.0(react@18.2.0): + /@chakra-ui/react-use-interval@2.1.0(react@18.3.1): resolution: {integrity: sha512-8iWj+I/+A0J08pgEXP1J1flcvhLBHkk0ln7ZvGIyXiEyM6XagOTJpwNhiu+Bmk59t3HoV/VyvyJTa+44sEApuw==} peerDependencies: react: '>=18' dependencies: - '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.2.0) - react: 18.2.0 + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/react-use-latest-ref@2.1.0(react@18.2.0): + /@chakra-ui/react-use-latest-ref@2.1.0(react@18.3.1): resolution: {integrity: sha512-m0kxuIYqoYB0va9Z2aW4xP/5b7BzlDeWwyXCH6QpT2PpW3/281L3hLCm1G0eOUcdVlayqrQqOeD6Mglq+5/xoQ==} peerDependencies: react: '>=18' dependencies: - react: 18.2.0 + react: 18.3.1 dev: false - /@chakra-ui/react-use-merge-refs@2.1.0(react@18.2.0): + /@chakra-ui/react-use-merge-refs@2.1.0(react@18.3.1): resolution: {integrity: sha512-lERa6AWF1cjEtWSGjxWTaSMvneccnAVH4V4ozh8SYiN9fSPZLlSG3kNxfNzdFvMEhM7dnP60vynF7WjGdTgQbQ==} peerDependencies: react: '>=18' dependencies: - react: 18.2.0 + react: 18.3.1 dev: false - /@chakra-ui/react-use-outside-click@2.2.0(react@18.2.0): + /@chakra-ui/react-use-outside-click@2.2.0(react@18.3.1): resolution: {integrity: sha512-PNX+s/JEaMneijbgAM4iFL+f3m1ga9+6QK0E5Yh4s8KZJQ/bLwZzdhMz8J/+mL+XEXQ5J0N8ivZN28B82N1kNw==} peerDependencies: react: '>=18' dependencies: - '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.2.0) - react: 18.2.0 + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/react-use-pan-event@2.1.0(react@18.2.0): + /@chakra-ui/react-use-pan-event@2.1.0(react@18.3.1): resolution: {integrity: sha512-xmL2qOHiXqfcj0q7ZK5s9UjTh4Gz0/gL9jcWPA6GVf+A0Od5imEDa/Vz+533yQKWiNSm1QGrIj0eJAokc7O4fg==} peerDependencies: react: '>=18' dependencies: '@chakra-ui/event-utils': 2.0.8 - '@chakra-ui/react-use-latest-ref': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-latest-ref': 2.1.0(react@18.3.1) framesync: 6.1.2 - react: 18.2.0 + react: 18.3.1 dev: false - /@chakra-ui/react-use-previous@2.1.0(react@18.2.0): + /@chakra-ui/react-use-previous@2.1.0(react@18.3.1): resolution: {integrity: sha512-pjxGwue1hX8AFcmjZ2XfrQtIJgqbTF3Qs1Dy3d1krC77dEsiCUbQ9GzOBfDc8pfd60DrB5N2tg5JyHbypqh0Sg==} peerDependencies: react: '>=18' dependencies: - react: 18.2.0 + react: 18.3.1 dev: false - /@chakra-ui/react-use-safe-layout-effect@2.1.0(react@18.2.0): + /@chakra-ui/react-use-safe-layout-effect@2.1.0(react@18.3.1): resolution: {integrity: sha512-Knbrrx/bcPwVS1TorFdzrK/zWA8yuU/eaXDkNj24IrKoRlQrSBFarcgAEzlCHtzuhufP3OULPkELTzz91b0tCw==} peerDependencies: react: '>=18' dependencies: - react: 18.2.0 + react: 18.3.1 dev: false - /@chakra-ui/react-use-size@2.1.0(react@18.2.0): + /@chakra-ui/react-use-size@2.1.0(react@18.3.1): resolution: {integrity: sha512-tbLqrQhbnqOjzTaMlYytp7wY8BW1JpL78iG7Ru1DlV4EWGiAmXFGvtnEt9HftU0NJ0aJyjgymkxfVGI55/1Z4A==} peerDependencies: react: '>=18' dependencies: '@zag-js/element-size': 0.10.5 - react: 18.2.0 + react: 18.3.1 dev: false - /@chakra-ui/react-use-timeout@2.1.0(react@18.2.0): + /@chakra-ui/react-use-timeout@2.1.0(react@18.3.1): resolution: {integrity: sha512-cFN0sobKMM9hXUhyCofx3/Mjlzah6ADaEl/AXl5Y+GawB5rgedgAcu2ErAgarEkwvsKdP6c68CKjQ9dmTQlJxQ==} peerDependencies: react: '>=18' dependencies: - '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.2.0) - react: 18.2.0 + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/react-use-update-effect@2.1.0(react@18.2.0): + /@chakra-ui/react-use-update-effect@2.1.0(react@18.3.1): resolution: {integrity: sha512-ND4Q23tETaR2Qd3zwCKYOOS1dfssojPLJMLvUtUbW5M9uW1ejYWgGUobeAiOVfSplownG8QYMmHTP86p/v0lbA==} peerDependencies: react: '>=18' dependencies: - react: 18.2.0 + react: 18.3.1 dev: false - /@chakra-ui/react-utils@2.0.12(react@18.2.0): + /@chakra-ui/react-utils@2.0.12(react@18.3.1): resolution: {integrity: sha512-GbSfVb283+YA3kA8w8xWmzbjNWk14uhNpntnipHCftBibl0lxtQ9YqMFQLwuFOO0U2gYVocszqqDWX+XNKq9hw==} peerDependencies: react: '>=18' dependencies: '@chakra-ui/utils': 2.0.15 - react: 18.2.0 + react: 18.3.1 dev: false - /@chakra-ui/react@2.8.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.0)(framer-motion@9.0.6)(react-dom@18.2.0)(react@18.2.0): + /@chakra-ui/react@2.8.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.3.0)(framer-motion@9.0.6)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-UL9Rtj4DovP3+oVbI06gsdfyJJb+wmS2RYnGNXjW9tsjCyXxjlBw9TAUj0jyOfWe0+zd/4juL8+J+QCwmdhptg==} peerDependencies: '@emotion/react': ^11.0.0 @@ -2649,162 +2655,162 @@ packages: react: '>=18' react-dom: '>=18' dependencies: - '@chakra-ui/accordion': 2.3.1(@chakra-ui/system@2.6.1)(framer-motion@9.0.6)(react@18.2.0) - '@chakra-ui/alert': 2.2.1(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/avatar': 2.3.0(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/breadcrumb': 2.2.0(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/button': 2.1.0(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/card': 2.2.0(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/checkbox': 2.3.1(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/close-button': 2.1.1(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/control-box': 2.1.0(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/counter': 2.1.0(react@18.2.0) - '@chakra-ui/css-reset': 2.3.0(@emotion/react@11.11.1)(react@18.2.0) - '@chakra-ui/editable': 3.1.0(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/focus-lock': 2.1.0(@types/react@18.2.0)(react@18.2.0) - '@chakra-ui/form-control': 2.1.1(@chakra-ui/system@2.6.1)(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.1)(react@18.2.0) - '@chakra-ui/image': 2.1.0(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/input': 2.1.1(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/layout': 2.3.1(@chakra-ui/system@2.6.1)(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.1)(react@18.2.0) - '@chakra-ui/menu': 2.2.1(@chakra-ui/system@2.6.1)(framer-motion@9.0.6)(react@18.2.0) - '@chakra-ui/modal': 2.3.1(@chakra-ui/system@2.6.1)(@types/react@18.2.0)(framer-motion@9.0.6)(react-dom@18.2.0)(react@18.2.0) - '@chakra-ui/number-input': 2.1.1(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/pin-input': 2.1.0(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/popover': 2.2.1(@chakra-ui/system@2.6.1)(framer-motion@9.0.6)(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.1)(react@18.2.0) - '@chakra-ui/provider': 2.4.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react-dom@18.2.0)(react@18.2.0) - '@chakra-ui/radio': 2.1.1(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/react-env': 3.1.0(react@18.2.0) - '@chakra-ui/select': 2.1.1(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/skeleton': 2.1.0(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/skip-nav': 2.1.0(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/slider': 2.1.0(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/spinner': 2.1.0(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/stat': 2.1.1(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/stepper': 2.3.1(@chakra-ui/system@2.6.1)(react@18.2.0) + '@chakra-ui/accordion': 2.3.1(@chakra-ui/system@2.6.1)(framer-motion@9.0.6)(react@18.3.1) + '@chakra-ui/alert': 2.2.1(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/avatar': 2.3.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/breadcrumb': 2.2.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/button': 2.1.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/card': 2.2.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/checkbox': 2.3.1(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/close-button': 2.1.1(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/control-box': 2.1.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/counter': 2.1.0(react@18.3.1) + '@chakra-ui/css-reset': 2.3.0(@emotion/react@11.11.1)(react@18.3.1) + '@chakra-ui/editable': 3.1.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/focus-lock': 2.1.0(@types/react@18.3.0)(react@18.3.1) + '@chakra-ui/form-control': 2.1.1(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/hooks': 2.2.1(react@18.3.1) + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/image': 2.1.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/input': 2.1.1(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/layout': 2.3.1(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/live-region': 2.1.0(react@18.3.1) + '@chakra-ui/media-query': 3.3.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/menu': 2.2.1(@chakra-ui/system@2.6.1)(framer-motion@9.0.6)(react@18.3.1) + '@chakra-ui/modal': 2.3.1(@chakra-ui/system@2.6.1)(@types/react@18.3.0)(framer-motion@9.0.6)(react-dom@18.3.1)(react@18.3.1) + '@chakra-ui/number-input': 2.1.1(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/pin-input': 2.1.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/popover': 2.2.1(@chakra-ui/system@2.6.1)(framer-motion@9.0.6)(react@18.3.1) + '@chakra-ui/popper': 3.1.0(react@18.3.1) + '@chakra-ui/portal': 2.1.0(react-dom@18.3.1)(react@18.3.1) + '@chakra-ui/progress': 2.2.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/provider': 2.4.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react-dom@18.3.1)(react@18.3.1) + '@chakra-ui/radio': 2.1.1(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/react-env': 3.1.0(react@18.3.1) + '@chakra-ui/select': 2.1.1(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/skeleton': 2.1.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/skip-nav': 2.1.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/slider': 2.1.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/spinner': 2.1.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/stat': 2.1.1(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/stepper': 2.3.1(@chakra-ui/system@2.6.1)(react@18.3.1) '@chakra-ui/styled-system': 2.9.1 - '@chakra-ui/switch': 2.1.1(@chakra-ui/system@2.6.1)(framer-motion@9.0.6)(react@18.2.0) - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - '@chakra-ui/table': 2.1.0(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/tabs': 3.0.0(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/tag': 3.1.1(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/textarea': 2.1.1(@chakra-ui/system@2.6.1)(react@18.2.0) + '@chakra-ui/switch': 2.1.1(@chakra-ui/system@2.6.1)(framer-motion@9.0.6)(react@18.3.1) + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + '@chakra-ui/table': 2.1.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/tabs': 3.0.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/tag': 3.1.1(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/textarea': 2.1.1(@chakra-ui/system@2.6.1)(react@18.3.1) '@chakra-ui/theme': 3.3.0(@chakra-ui/styled-system@2.9.1) '@chakra-ui/theme-utils': 2.0.20 - '@chakra-ui/toast': 7.0.1(@chakra-ui/system@2.6.1)(framer-motion@9.0.6)(react-dom@18.2.0)(react@18.2.0) - '@chakra-ui/tooltip': 2.3.0(@chakra-ui/system@2.6.1)(framer-motion@9.0.6)(react-dom@18.2.0)(react@18.2.0) - '@chakra-ui/transition': 2.1.0(framer-motion@9.0.6)(react@18.2.0) + '@chakra-ui/toast': 7.0.1(@chakra-ui/system@2.6.1)(framer-motion@9.0.6)(react-dom@18.3.1)(react@18.3.1) + '@chakra-ui/tooltip': 2.3.0(@chakra-ui/system@2.6.1)(framer-motion@9.0.6)(react-dom@18.3.1)(react@18.3.1) + '@chakra-ui/transition': 2.1.0(framer-motion@9.0.6)(react@18.3.1) '@chakra-ui/utils': 2.0.15 - '@chakra-ui/visually-hidden': 2.2.0(@chakra-ui/system@2.6.1)(react@18.2.0) - '@emotion/react': 11.11.1(@types/react@18.2.0)(react@18.2.0) - '@emotion/styled': 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.0)(react@18.2.0) - framer-motion: 9.0.6(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@chakra-ui/visually-hidden': 2.2.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@emotion/react': 11.11.1(@types/react@18.3.0)(react@18.3.1) + '@emotion/styled': 11.11.0(@emotion/react@11.11.1)(@types/react@18.3.0)(react@18.3.1) + framer-motion: 9.0.6(react-dom@18.3.1)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: - '@types/react' dev: false - /@chakra-ui/select@2.1.1(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/select@2.1.1(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-CERDATncv5w05Zo5/LrFtf1yKp1deyMUyDGv6eZvQG/etyukH4TstsuIHt/0GfNXrCF3CJLZ8lINzpv5wayVjQ==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@chakra-ui/form-control': 2.1.1(@chakra-ui/system@2.6.1)(react@18.2.0) + '@chakra-ui/form-control': 2.1.1(@chakra-ui/system@2.6.1)(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false /@chakra-ui/shared-utils@2.0.5: resolution: {integrity: sha512-4/Wur0FqDov7Y0nCXl7HbHzCg4aq86h+SXdoUeuCMD3dSj7dpsVnStLYhng1vxvlbUnLpdF4oz5Myt3i/a7N3Q==} dev: false - /@chakra-ui/skeleton@2.1.0(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/skeleton@2.1.0(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-JNRuMPpdZGd6zFVKjVQ0iusu3tXAdI29n4ZENYwAJEMf/fN0l12sVeirOxkJ7oEL0yOx2AgEYFSKdbcAgfUsAQ==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@chakra-ui/media-query': 3.3.0(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/react-use-previous': 2.1.0(react@18.2.0) + '@chakra-ui/media-query': 3.3.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/react-use-previous': 2.1.0(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/skip-nav@2.1.0(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/skip-nav@2.1.0(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-Hk+FG+vadBSH0/7hwp9LJnLjkO0RPGnx7gBJWI4/SpoJf3e4tZlWYtwGj0toYY4aGKl93jVghuwGbDBEMoHDug==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/slider@2.1.0(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/slider@2.1.0(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-lUOBcLMCnFZiA/s2NONXhELJh6sY5WtbRykPtclGfynqqOo47lwWJx+VP7xaeuhDOPcWSSecWc9Y1BfPOCz9cQ==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: '@chakra-ui/number-utils': 2.0.7 - '@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-callback-ref': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-controllable-state': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-latest-ref': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-pan-event': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-size': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-update-effect': 2.1.0(react@18.2.0) - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 - dev: false - - /@chakra-ui/spinner@2.1.0(@chakra-ui/system@2.6.1)(react@18.2.0): + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-types': 2.0.7(react@18.3.1) + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-controllable-state': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-latest-ref': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-pan-event': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-size': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-update-effect': 2.1.0(react@18.3.1) + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/spinner@2.1.0(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-hczbnoXt+MMv/d3gE+hjQhmkzLiKuoTo42YhUG7Bs9OSv2lg1fZHW1fGNRFP3wTi6OIbD044U1P9HK+AOgFH3g==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/stat@2.1.1(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/stat@2.1.1(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-LDn0d/LXQNbAn2KaR3F1zivsZCewY4Jsy1qShmfBMKwn6rI8yVlbvu6SiA3OpHS0FhxbsZxQI6HefEoIgtqY6Q==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/stepper@2.3.1(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/stepper@2.3.1(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-ky77lZbW60zYkSXhYz7kbItUpAQfEdycT0Q4bkHLxfqbuiGMf8OmgZOQkOB9uM4v0zPwy2HXhe0vq4Dd0xa55Q==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false /@chakra-ui/styled-system@2.9.1: @@ -2815,92 +2821,92 @@ packages: lodash.mergewith: 4.6.2 dev: false - /@chakra-ui/switch@2.1.1(@chakra-ui/system@2.6.1)(framer-motion@9.0.6)(react@18.2.0): + /@chakra-ui/switch@2.1.1(@chakra-ui/system@2.6.1)(framer-motion@9.0.6)(react@18.3.1): resolution: {integrity: sha512-cOHIhW5AlLZSFENxFEBYTBniqiduOowa1WdzslP1Fd0usBFaD5iAgOY1Fvr7xKhE8nmzzeMCkPB3XBvUSWnawQ==} peerDependencies: '@chakra-ui/system': '>=2.0.0' framer-motion: '>=4.0.0' react: '>=18' dependencies: - '@chakra-ui/checkbox': 2.3.1(@chakra-ui/system@2.6.1)(react@18.2.0) + '@chakra-ui/checkbox': 2.3.1(@chakra-ui/system@2.6.1)(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - framer-motion: 9.0.6(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + framer-motion: 9.0.6(react-dom@18.3.1)(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/system@2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0): + /@chakra-ui/system@2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1): resolution: {integrity: sha512-P5Q/XRWy3f1pXJ7IxDkV+Z6AT7GJeR2JlBnQl109xewVQcBLWWMIp702fFMFw8KZ2ALB/aYKtWm5EmQMddC/tg==} peerDependencies: '@emotion/react': ^11.0.0 '@emotion/styled': ^11.0.0 react: '>=18' dependencies: - '@chakra-ui/color-mode': 2.2.0(react@18.2.0) + '@chakra-ui/color-mode': 2.2.0(react@18.3.1) '@chakra-ui/object-utils': 2.1.0 - '@chakra-ui/react-utils': 2.0.12(react@18.2.0) + '@chakra-ui/react-utils': 2.0.12(react@18.3.1) '@chakra-ui/styled-system': 2.9.1 '@chakra-ui/theme-utils': 2.0.20 '@chakra-ui/utils': 2.0.15 - '@emotion/react': 11.11.1(@types/react@18.2.0)(react@18.2.0) - '@emotion/styled': 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.0)(react@18.2.0) - react: 18.2.0 + '@emotion/react': 11.11.1(@types/react@18.3.0)(react@18.3.1) + '@emotion/styled': 11.11.0(@emotion/react@11.11.1)(@types/react@18.3.0)(react@18.3.1) + react: 18.3.1 react-fast-compare: 3.2.2 dev: false - /@chakra-ui/table@2.1.0(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/table@2.1.0(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-o5OrjoHCh5uCLdiUb0Oc0vq9rIAeHSIRScc2ExTC9Qg/uVZl2ygLrjToCaKfaaKl1oQexIeAcZDKvPG8tVkHyQ==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/tabs@3.0.0(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/tabs@3.0.0(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-6Mlclp8L9lqXmsGWF5q5gmemZXOiOYuh0SGT/7PgJVNPz3LXREXlXg2an4MBUD8W5oTkduCX+3KTMCwRrVrDYw==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@chakra-ui/clickable': 2.1.0(react@18.2.0) - '@chakra-ui/descendant': 3.1.0(react@18.2.0) + '@chakra-ui/clickable': 2.1.0(react@18.3.1) + '@chakra-ui/descendant': 3.1.0(react@18.3.1) '@chakra-ui/lazy-utils': 2.0.5 - '@chakra-ui/react-children-utils': 2.0.6(react@18.2.0) - '@chakra-ui/react-context': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-controllable-state': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.2.0) + '@chakra-ui/react-children-utils': 2.0.6(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-controllable-state': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/tag@3.1.1(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/tag@3.1.1(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-Bdel79Dv86Hnge2PKOU+t8H28nm/7Y3cKd4Kfk9k3lOpUh4+nkSGe58dhRzht59lEqa4N9waCgQiBdkydjvBXQ==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/react-context': 2.1.0(react@18.2.0) - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false - /@chakra-ui/textarea@2.1.1(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/textarea@2.1.1(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-28bpwgmXg3BzSpg8i1Ao9h7pHaE1j2mBBFJpWaqPgMhS0IHm0BQsqqyWU6PsxxJDvrC4HN6MTzrIL4C1RA1I0A==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@chakra-ui/form-control': 2.1.1(@chakra-ui/system@2.6.1)(react@18.2.0) + '@chakra-ui/form-control': 2.1.1(@chakra-ui/system@2.6.1)(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false /@chakra-ui/theme-tools@2.1.1(@chakra-ui/styled-system@2.9.1): @@ -2934,7 +2940,7 @@ packages: '@chakra-ui/theme-tools': 2.1.1(@chakra-ui/styled-system@2.9.1) dev: false - /@chakra-ui/toast@7.0.1(@chakra-ui/system@2.6.1)(framer-motion@9.0.6)(react-dom@18.2.0)(react@18.2.0): + /@chakra-ui/toast@7.0.1(@chakra-ui/system@2.6.1)(framer-motion@9.0.6)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-V5JUhw6RZxbGRTijvd5k4iEMLCfbzTLNWbZLZhRZk10YvFfAP5OYfRCm68zpE/t3orN/f+4ZLL3P+Wb4E7oSmw==} peerDependencies: '@chakra-ui/system': 2.6.1 @@ -2942,22 +2948,22 @@ packages: react: '>=18' react-dom: '>=18' dependencies: - '@chakra-ui/alert': 2.2.1(@chakra-ui/system@2.6.1)(react@18.2.0) - '@chakra-ui/close-button': 2.1.1(@chakra-ui/system@2.6.1)(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-use-timeout': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-update-effect': 2.1.0(react@18.2.0) + '@chakra-ui/alert': 2.2.1(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/close-button': 2.1.1(@chakra-ui/system@2.6.1)(react@18.3.1) + '@chakra-ui/portal': 2.1.0(react-dom@18.3.1)(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-timeout': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-update-effect': 2.1.0(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 '@chakra-ui/styled-system': 2.9.1 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) '@chakra-ui/theme': 3.3.0(@chakra-ui/styled-system@2.9.1) - framer-motion: 9.0.6(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + framer-motion: 9.0.6(react-dom@18.3.1)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) dev: false - /@chakra-ui/tooltip@2.3.0(@chakra-ui/system@2.6.1)(framer-motion@9.0.6)(react-dom@18.2.0)(react@18.2.0): + /@chakra-ui/tooltip@2.3.0(@chakra-ui/system@2.6.1)(framer-motion@9.0.6)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-2s23f93YIij1qEDwIK//KtEu4LLYOslhR1cUhDBk/WUzyFR3Ez0Ee+HlqlGEGfGe9x77E6/UXPnSAKKdF/cpsg==} peerDependencies: '@chakra-ui/system': '>=2.0.0' @@ -2966,28 +2972,28 @@ packages: react-dom: '>=18' dependencies: '@chakra-ui/dom-utils': 2.1.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/react-types': 2.0.7(react@18.2.0) - '@chakra-ui/react-use-disclosure': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-event-listener': 2.1.0(react@18.2.0) - '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) + '@chakra-ui/popper': 3.1.0(react@18.3.1) + '@chakra-ui/portal': 2.1.0(react-dom@18.3.1)(react@18.3.1) + '@chakra-ui/react-types': 2.0.7(react@18.3.1) + '@chakra-ui/react-use-disclosure': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-event-listener': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) '@chakra-ui/shared-utils': 2.0.5 - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - framer-motion: 9.0.6(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + framer-motion: 9.0.6(react-dom@18.3.1)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) dev: false - /@chakra-ui/transition@2.1.0(framer-motion@9.0.6)(react@18.2.0): + /@chakra-ui/transition@2.1.0(framer-motion@9.0.6)(react@18.3.1): 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: 9.0.6(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 + framer-motion: 9.0.6(react-dom@18.3.1)(react@18.3.1) + react: 18.3.1 dev: false /@chakra-ui/utils@2.0.15: @@ -2999,14 +3005,14 @@ packages: lodash.mergewith: 4.6.2 dev: false - /@chakra-ui/visually-hidden@2.2.0(@chakra-ui/system@2.6.1)(react@18.2.0): + /@chakra-ui/visually-hidden@2.2.0(@chakra-ui/system@2.6.1)(react@18.3.1): resolution: {integrity: sha512-KmKDg01SrQ7VbTD3+cPWf/UfpF5MSwm3v7MWi0n5t8HnnadT13MF0MJCDSXbBWnzLv1ZKJ6zlyAOeARWX+DpjQ==} peerDependencies: '@chakra-ui/system': '>=2.0.0' react: '>=18' dependencies: - '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - react: 18.2.0 + '@chakra-ui/system': 2.6.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.3.1) + react: 18.3.1 dev: false /@emnapi/core@1.1.1: @@ -3079,7 +3085,7 @@ packages: resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} dev: false - /@emotion/react@11.11.1(@types/react@18.2.0)(react@18.2.0): + /@emotion/react@11.11.1(@types/react@18.3.0)(react@18.3.1): resolution: {integrity: sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==} peerDependencies: '@types/react': '*' @@ -3092,12 +3098,12 @@ packages: '@emotion/babel-plugin': 11.11.0 '@emotion/cache': 11.11.0 '@emotion/serialize': 1.1.4 - '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) + '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.1) '@emotion/utils': 1.2.1 '@emotion/weak-memoize': 0.3.1 - '@types/react': 18.2.0 + '@types/react': 18.3.0 hoist-non-react-statics: 3.3.2 - react: 18.2.0 + react: 18.3.1 dev: false /@emotion/serialize@1.1.4: @@ -3114,7 +3120,7 @@ packages: resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==} dev: false - /@emotion/styled@11.11.0(@emotion/react@11.11.1)(@types/react@18.2.0)(react@18.2.0): + /@emotion/styled@11.11.0(@emotion/react@11.11.1)(@types/react@18.3.0)(react@18.3.1): resolution: {integrity: sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==} peerDependencies: '@emotion/react': ^11.0.0-rc.0 @@ -3127,24 +3133,24 @@ packages: '@babel/runtime': 7.24.1 '@emotion/babel-plugin': 11.11.0 '@emotion/is-prop-valid': 1.2.2 - '@emotion/react': 11.11.1(@types/react@18.2.0)(react@18.2.0) + '@emotion/react': 11.11.1(@types/react@18.3.0)(react@18.3.1) '@emotion/serialize': 1.1.4 - '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) + '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.1) '@emotion/utils': 1.2.1 - '@types/react': 18.2.0 - react: 18.2.0 + '@types/react': 18.3.0 + react: 18.3.1 dev: false /@emotion/unitless@0.8.1: resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} dev: false - /@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.2.0): + /@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.3.1): resolution: {integrity: sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==} peerDependencies: react: '>=16.8.0' dependencies: - react: 18.2.0 + react: 18.3.1 dev: false /@emotion/utils@1.2.1: @@ -3419,6 +3425,18 @@ packages: resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} dev: true + /@isaacs/cliui@8.0.2: + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + dependencies: + string-width: 5.1.2 + string-width-cjs: /string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: /strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 + dev: true + /@jridgewell/gen-mapping@0.3.5: resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} @@ -3587,7 +3605,7 @@ packages: lexical: 0.12.6 dev: false - /@lexical/react@0.12.6(lexical@0.12.6)(react-dom@18.2.0)(react@18.2.0)(yjs@13.6.14): + /@lexical/react@0.12.6(lexical@0.12.6)(react-dom@18.3.1)(react@18.3.1)(yjs@13.6.15): resolution: {integrity: sha512-Pto4wsVwrnY94tzcCXP2kWukQejSRPDfwOPd+EFh8dUzj+L7fa9Pze2wVgCRZpEohwfbcgAdEsvmSbhz+yGkog==} peerDependencies: lexical: 0.12.6 @@ -3610,11 +3628,11 @@ packages: '@lexical/table': 0.12.6(lexical@0.12.6) '@lexical/text': 0.12.6(lexical@0.12.6) '@lexical/utils': 0.12.6(lexical@0.12.6) - '@lexical/yjs': 0.12.6(lexical@0.12.6)(yjs@13.6.14) + '@lexical/yjs': 0.12.6(lexical@0.12.6)(yjs@13.6.15) lexical: 0.12.6 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-error-boundary: 3.1.4(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-error-boundary: 3.1.4(react@18.3.1) transitivePeerDependencies: - yjs dev: false @@ -3675,7 +3693,7 @@ packages: lexical: 0.12.6 dev: false - /@lexical/yjs@0.12.6(lexical@0.12.6)(yjs@13.6.14): + /@lexical/yjs@0.12.6(lexical@0.12.6)(yjs@13.6.15): resolution: {integrity: sha512-I/Yf/Qm8/ydU983kWpFBlDFNFQXLYur5uaAimTSBcJuqHmy3cv1xM7Xrq4BtM+0orKgWJt8vR8cLVIU9sAmzfw==} peerDependencies: lexical: 0.12.6 @@ -3683,7 +3701,7 @@ packages: dependencies: '@lexical/offset': 0.12.6(lexical@0.12.6) lexical: 0.12.6 - yjs: 13.6.14 + yjs: 13.6.15 dev: false /@mapbox/node-pre-gyp@1.0.11(encoding@0.1.13): @@ -3698,7 +3716,7 @@ packages: nopt: 5.0.0 npmlog: 5.0.1 rimraf: 3.0.2 - semver: 7.6.0 + semver: 7.6.2 tar: 6.2.1 transitivePeerDependencies: - encoding @@ -3706,26 +3724,26 @@ packages: dev: false optional: true - /@monaco-editor/loader@1.4.0(monaco-editor@0.47.0): + /@monaco-editor/loader@1.4.0(monaco-editor@0.48.0): resolution: {integrity: sha512-00ioBig0x642hytVspPl7DbQyaSWRaolYie/UFNjoTdvoKPzo6xrXLhTk9ixgIKcLH5b5vDOjVNiGyY+uDCUlg==} peerDependencies: monaco-editor: '>= 0.21.0 < 1' dependencies: - monaco-editor: 0.47.0 + monaco-editor: 0.48.0 state-local: 1.0.7 dev: false - /@monaco-editor/react@4.6.0(monaco-editor@0.47.0)(react-dom@18.2.0)(react@18.2.0): + /@monaco-editor/react@4.6.0(monaco-editor@0.48.0)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-RFkU9/i7cN2bsq/iTkurMWOEErmYcY6JiQI3Jn+WeR/FGISH8JbHERjpS9oRuSOPvDMJI0Z8nJeKkbOs9sBYQw==} peerDependencies: monaco-editor: '>= 0.25.0 < 1' react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@monaco-editor/loader': 1.4.0(monaco-editor@0.47.0) - monaco-editor: 0.47.0 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@monaco-editor/loader': 1.4.0(monaco-editor@0.48.0) + monaco-editor: 0.48.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) dev: false /@motionone/animation@10.17.0: @@ -3781,37 +3799,37 @@ packages: dependencies: '@emnapi/core': 1.1.1 '@emnapi/runtime': 1.1.1 - '@tybys/wasm-util': 0.8.1 + '@tybys/wasm-util': 0.8.3 dev: false optional: true - /@next/env@13.5.2: - resolution: {integrity: sha512-dUseBIQVax+XtdJPzhwww4GetTjlkRSsXeQnisIJWBaHsnxYcN2RGzsPHi58D6qnkATjnhuAtQTJmR1hKYQQPg==} + /@next/env@14.2.3: + resolution: {integrity: sha512-W7fd7IbkfmeeY2gXrzJYDx8D2lWKbVoTIj1o1ScPHNzvp30s1AuoEFSdr39bC5sjxJaxTtq3OTCZboNp0lNWHA==} - /@next/eslint-plugin-next@13.1.6: - resolution: {integrity: sha512-o7cauUYsXjzSJkay8wKjpKJf2uLzlggCsGUkPu3lP09Pv97jYlekTC20KJrjQKmSv5DXV0R/uks2ZXhqjNkqAw==} + /@next/eslint-plugin-next@14.2.3: + resolution: {integrity: sha512-L3oDricIIjgj1AVnRdRor21gI7mShlSwU/1ZGHmqM3LzHhXXhdkrfeNY5zif25Bi5Dd7fiJHsbhoZCHfXYvlAw==} dependencies: - glob: 7.1.7 + glob: 10.3.10 dev: true - /@next/swc-darwin-arm64@13.5.2: - resolution: {integrity: sha512-7eAyunAWq6yFwdSQliWMmGhObPpHTesiKxMw4DWVxhm5yLotBj8FCR4PXGkpRP2tf8QhaWuVba+/fyAYggqfQg==} + /@next/swc-darwin-arm64@14.2.3: + resolution: {integrity: sha512-3pEYo/RaGqPP0YzwnlmPN2puaF2WMLM3apt5jLW2fFdXD9+pqcoTzRk+iZsf8ta7+quAe4Q6Ms0nR0SFGFdS1A==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] requiresBuild: true optional: true - /@next/swc-darwin-x64@13.5.2: - resolution: {integrity: sha512-WxXYWE7zF1ch8rrNh5xbIWzhMVas6Vbw+9BCSyZvu7gZC5EEiyZNJsafsC89qlaSA7BnmsDXVWQmc+s1feSYbQ==} + /@next/swc-darwin-x64@14.2.3: + resolution: {integrity: sha512-6adp7waE6P1TYFSXpY366xwsOnEXM+y1kgRpjSRVI2CBDOcbRjsJ67Z6EgKIqWIue52d2q/Mx8g9MszARj8IEA==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] requiresBuild: true optional: true - /@next/swc-linux-arm64-gnu@13.5.2: - resolution: {integrity: sha512-URSwhRYrbj/4MSBjLlefPTK3/tvg95TTm6mRaiZWBB6Za3hpHKi8vSdnCMw5D2aP6k0sQQIEG6Pzcfwm+C5vrg==} + /@next/swc-linux-arm64-gnu@14.2.3: + resolution: {integrity: sha512-cuzCE/1G0ZSnTAHJPUT1rPgQx1w5tzSX7POXSLaS7w2nIUJUD+e25QoXD/hMfxbsT9rslEXugWypJMILBj/QsA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -3819,8 +3837,8 @@ packages: requiresBuild: true optional: true - /@next/swc-linux-arm64-musl@13.5.2: - resolution: {integrity: sha512-HefiwAdIygFyNmyVsQeiJp+j8vPKpIRYDlmTlF9/tLdcd3qEL/UEBswa1M7cvO8nHcr27ZTKXz5m7dkd56/Esg==} + /@next/swc-linux-arm64-musl@14.2.3: + resolution: {integrity: sha512-0D4/oMM2Y9Ta3nGuCcQN8jjJjmDPYpHX9OJzqk42NZGJocU2MqhBq5tWkJrUQOQY9N+In9xOdymzapM09GeiZw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -3828,8 +3846,8 @@ packages: requiresBuild: true optional: true - /@next/swc-linux-x64-gnu@13.5.2: - resolution: {integrity: sha512-htGVVroW0tdHgMYwKWkxWvVoG2RlAdDXRO1RQxYDvOBQsaV0nZsgKkw0EJJJ3urTYnwKskn/MXm305cOgRxD2w==} + /@next/swc-linux-x64-gnu@14.2.3: + resolution: {integrity: sha512-ENPiNnBNDInBLyUU5ii8PMQh+4XLr4pG51tOp6aJ9xqFQ2iRI6IH0Ds2yJkAzNV1CfyagcyzPfROMViS2wOZ9w==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -3837,8 +3855,8 @@ packages: requiresBuild: true optional: true - /@next/swc-linux-x64-musl@13.5.2: - resolution: {integrity: sha512-UBD333GxbHVGi7VDJPPDD1bKnx30gn2clifNJbla7vo5nmBV+x5adyARg05RiT9amIpda6yzAEEUu+s774ldkw==} + /@next/swc-linux-x64-musl@14.2.3: + resolution: {integrity: sha512-BTAbq0LnCbF5MtoM7I/9UeUu/8ZBY0i8SFjUMCbPDOLv+un67e2JgyN4pmgfXBwy/I+RHu8q+k+MCkDN6P9ViQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -3846,24 +3864,24 @@ packages: requiresBuild: true optional: true - /@next/swc-win32-arm64-msvc@13.5.2: - resolution: {integrity: sha512-Em9ApaSFIQnWXRT3K6iFnr9uBXymixLc65Xw4eNt7glgH0eiXpg+QhjmgI2BFyc7k4ZIjglfukt9saNpEyolWA==} + /@next/swc-win32-arm64-msvc@14.2.3: + resolution: {integrity: sha512-AEHIw/dhAMLNFJFJIJIyOFDzrzI5bAjI9J26gbO5xhAKHYTZ9Or04BesFPXiAYXDNdrwTP2dQceYA4dL1geu8A==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] requiresBuild: true optional: true - /@next/swc-win32-ia32-msvc@13.5.2: - resolution: {integrity: sha512-TBACBvvNYU+87X0yklSuAseqdpua8m/P79P0SG1fWUvWDDA14jASIg7kr86AuY5qix47nZLEJ5WWS0L20jAUNw==} + /@next/swc-win32-ia32-msvc@14.2.3: + resolution: {integrity: sha512-vga40n1q6aYb0CLrM+eEmisfKCR45ixQYXuBXxOOmmoV8sYST9k7E3US32FsY+CkkF7NtzdcebiFT4CHuMSyZw==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] requiresBuild: true optional: true - /@next/swc-win32-x64-msvc@13.5.2: - resolution: {integrity: sha512-LfTHt+hTL8w7F9hnB3H4nRasCzLD/fP+h4/GUVBTxrkMJOnh/7OZ0XbYDKO/uuWwryJS9kZjhxcruBiYwc5UDw==} + /@next/swc-win32-x64-msvc@14.2.3: + resolution: {integrity: sha512-Q1/zm43RWynxrO7lW4ehciQVj+5ePBhOK+/K2P7pLFX3JaJ/IZVC69SHidrmZSOkqz7ECIOhhy7XhAFG4JYyHA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -4042,41 +4060,48 @@ packages: fastq: 1.17.1 dev: true + /@pkgjs/parseargs@0.11.0: + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + requiresBuild: true + dev: true + optional: true + /@popperjs/core@2.11.8: resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} dev: false - /@reactflow/background@11.2.4(immer@9.0.19)(react-dom@18.2.0)(react@18.2.0): + /@reactflow/background@11.2.4(immer@9.0.19)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-SYQbCRCU0GuxT/40Tm7ZK+l5wByGnNJSLtZhbL9C/Hl7JhsJXV3UGXr0vrlhVZUBEtkWA7XhZM/5S9XEA5XSFA==} peerDependencies: react: '>=17' react-dom: '>=17' dependencies: - '@reactflow/core': 11.7.4(immer@9.0.19)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/core': 11.7.4(immer@9.0.19)(react-dom@18.3.1)(react@18.3.1) classcat: 5.0.4 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - zustand: 4.3.5(immer@9.0.19)(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + zustand: 4.3.5(immer@9.0.19)(react@18.3.1) transitivePeerDependencies: - immer dev: false - /@reactflow/controls@11.1.15(immer@9.0.19)(react-dom@18.2.0)(react@18.2.0): + /@reactflow/controls@11.1.15(immer@9.0.19)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-//33XfBYu8vQ6brfmlZwKrDoh+8hh93xO2d88XiqfIbrPEEb32SYjsb9mS9VuHKNlSIW+eB27fBA1Gt00mEj5w==} peerDependencies: react: '>=17' react-dom: '>=17' dependencies: - '@reactflow/core': 11.7.4(immer@9.0.19)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/core': 11.7.4(immer@9.0.19)(react-dom@18.3.1)(react@18.3.1) classcat: 5.0.4 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - zustand: 4.3.5(immer@9.0.19)(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + zustand: 4.3.5(immer@9.0.19)(react@18.3.1) transitivePeerDependencies: - immer dev: false - /@reactflow/core@11.7.4(immer@9.0.19)(react-dom@18.2.0)(react@18.2.0): + /@reactflow/core@11.7.4(immer@9.0.19)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-nt0T8ERp8TE7YCDQViaoEY9lb0StDPrWHVx3zBjhStFYET3wc88t8QRasZdf99xRTmyNtI3U3M40M5EBLNUpMw==} peerDependencies: react: '>=17' @@ -4090,66 +4115,66 @@ packages: d3-drag: 3.0.0 d3-selection: 3.0.0 d3-zoom: 3.0.0 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - zustand: 4.3.5(immer@9.0.19)(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + zustand: 4.3.5(immer@9.0.19)(react@18.3.1) transitivePeerDependencies: - immer dev: false - /@reactflow/minimap@11.5.4(immer@9.0.19)(react-dom@18.2.0)(react@18.2.0): + /@reactflow/minimap@11.5.4(immer@9.0.19)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-1tDBj2zX2gxu2oHU6qvH5RGNrOWRfRxu8369KhDotuuBN5yJrGXJzWIKikwhzjsNsQJYOB+B0cS44yWAfwSwzw==} peerDependencies: react: '>=17' react-dom: '>=17' dependencies: - '@reactflow/core': 11.7.4(immer@9.0.19)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/core': 11.7.4(immer@9.0.19)(react-dom@18.3.1)(react@18.3.1) '@types/d3-selection': 3.0.10 '@types/d3-zoom': 3.0.8 classcat: 5.0.4 d3-selection: 3.0.0 d3-zoom: 3.0.0 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - zustand: 4.3.5(immer@9.0.19)(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + zustand: 4.3.5(immer@9.0.19)(react@18.3.1) transitivePeerDependencies: - immer dev: false - /@reactflow/node-resizer@2.1.1(immer@9.0.19)(react-dom@18.2.0)(react@18.2.0): + /@reactflow/node-resizer@2.1.1(immer@9.0.19)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-5Q+IBmZfpp/bYsw3+KRVJB1nUbj6W3XAp5ycx4uNWH+K98vbssymyQsW0vvKkIhxEPg6tkiMzO4UWRWvwBwt1g==} peerDependencies: react: '>=17' react-dom: '>=17' dependencies: - '@reactflow/core': 11.7.4(immer@9.0.19)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/core': 11.7.4(immer@9.0.19)(react-dom@18.3.1)(react@18.3.1) 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.3.5(immer@9.0.19)(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + zustand: 4.3.5(immer@9.0.19)(react@18.3.1) transitivePeerDependencies: - immer dev: false - /@reactflow/node-toolbar@1.2.3(immer@9.0.19)(react-dom@18.2.0)(react@18.2.0): + /@reactflow/node-toolbar@1.2.3(immer@9.0.19)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-uFQy9xpog92s0G1wsPLniwV9nyH4i/MmL7QoMsWdnKaOi7XMhd8SJcCzUdHC3imR21HltsuQITff/XQ51ApMbg==} peerDependencies: react: '>=17' react-dom: '>=17' dependencies: - '@reactflow/core': 11.7.4(immer@9.0.19)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/core': 11.7.4(immer@9.0.19)(react-dom@18.3.1)(react@18.3.1) classcat: 5.0.4 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - zustand: 4.3.5(immer@9.0.19)(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + zustand: 4.3.5(immer@9.0.19)(react@18.3.1) transitivePeerDependencies: - immer dev: false - /@rushstack/eslint-patch@1.10.1: - resolution: {integrity: sha512-S3Kq8e7LqxkA9s7HKLqXGTGck1uwis5vAXan3FnU5yw1Ec5hsSGnq4s/UCaSqABPOnOTg7zASLyst7+ohgWexg==} + /@rushstack/eslint-patch@1.10.2: + resolution: {integrity: sha512-hw437iINopmQuxWPSUEvqE56NCPsiU8N4AYtfHmJFckclktzK9YQJieD3XkDCDH4OjL+C7zgPUh73R/nrcHrqw==} dev: true /@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.24.4): @@ -4305,16 +4330,20 @@ packages: - supports-color dev: true - /@swc/helpers@0.5.2: - resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} + /@swc/counter@0.1.3: + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + /@swc/helpers@0.5.5: + resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} dependencies: + '@swc/counter': 0.1.3 tslib: 2.6.2 /@tanstack/query-core@4.24.10: resolution: {integrity: sha512-2QywqXEAGBIUoTdgn1lAB4/C8QEqwXHj2jrCLeYTk2xVGtLiPEUD8jcMoeB2noclbiW2mMt4+Fq7fZStuz3wAQ==} dev: false - /@tanstack/react-query@4.24.10(react-dom@18.2.0)(react@18.2.0): + /@tanstack/react-query@4.24.10(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-FY1DixytOcNNCydPQXLxuKEV7VSST32CAuJ55BjhDNqASnMLZn+6c30yQBMrODjmWMNwzfjMZnq0Vw7C62Fwow==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -4327,9 +4356,9 @@ packages: optional: true dependencies: '@tanstack/query-core': 4.24.10 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - use-sync-external-store: 1.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + use-sync-external-store: 1.2.0(react@18.3.1) dev: false /@tokenizer/token@0.3.0: @@ -4341,8 +4370,8 @@ packages: engines: {node: '>=10.13.0'} dev: true - /@tybys/wasm-util@0.8.1: - resolution: {integrity: sha512-GSsTwyBl4pIzsxAY5wroZdyQKyhXk0d8PCRZtrSZ2WEB1cBdrp2EgGBwHOGCZtIIPun/DL3+AykCv+J6fyRH4Q==} + /@tybys/wasm-util@0.8.3: + resolution: {integrity: sha512-Z96T/L6dUFFxgFJ+pQtkPpne9q7i6kIPYCFnQBHSgSPV9idTsKfIhCss0h5iM9irweZCatkrdeP8yi5uM1eX6Q==} requiresBuild: true dependencies: tslib: 2.6.2 @@ -4622,7 +4651,7 @@ packages: /@types/hoist-non-react-statics@3.3.5: resolution: {integrity: sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==} dependencies: - '@types/react': 18.2.0 + '@types/react': 18.3.0 hoist-non-react-statics: 3.3.2 /@types/http-errors@2.0.4: @@ -4752,20 +4781,20 @@ packages: /@types/react-beautiful-dnd@13.1.8: resolution: {integrity: sha512-E3TyFsro9pQuK4r8S/OL6G99eq7p8v29sX0PM7oT8Z+PJfZvSQTx4zTQbUJ+QZXioAF0e7TGBEcA1XhYhCweyQ==} dependencies: - '@types/react': 18.2.0 + '@types/react': 18.3.0 dev: true - /@types/react-dom@18.2.0: - resolution: {integrity: sha512-8yQrvS6sMpSwIovhPOwfyNf2Wz6v/B62LFSVYQ85+Rq3tLsBIG7rP5geMxaijTUxSkrO6RzN/IRuIAADYQsleA==} + /@types/react-dom@18.3.0: + resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} dependencies: - '@types/react': 18.2.0 + '@types/react': 18.3.0 dev: true /@types/react-redux@7.1.33: resolution: {integrity: sha512-NF8m5AjWCkert+fosDsN3hAlHzpjSiXlVy9EgQEmLoBhaNXbmyeGs/aj5dQzKuF+/q+S7JQagorGDW8pJ28Hmg==} dependencies: '@types/hoist-non-react-statics': 3.3.5 - '@types/react': 18.2.0 + '@types/react': 18.3.0 hoist-non-react-statics: 3.3.2 redux: 4.2.1 dev: false @@ -4773,14 +4802,13 @@ packages: /@types/react-syntax-highlighter@15.5.6: resolution: {integrity: sha512-i7wFuLbIAFlabTeD2I1cLjEOrG/xdMa/rpx2zwzAoGHuXJDhSqp9BSfDlMHSh9JSuNfxHk9eEmMX6D55GiyjGg==} dependencies: - '@types/react': 18.2.0 + '@types/react': 18.3.0 dev: true - /@types/react@18.2.0: - resolution: {integrity: sha512-0FLj93y5USLHdnhIhABk83rm8XEGA7kH3cr+YUlvxoUGp1xNt/DINUMvqPxLyOQMzLmZe8i4RTHbvb8MC7NmrA==} + /@types/react@18.3.0: + resolution: {integrity: sha512-DiUcKjzE6soLyln8NNZmyhcQjVv+WsUIFSqetMN0p8927OztKT4VTfFTqsbAi5oAGIcgOmOajlfBqyptDDjZRw==} dependencies: '@types/prop-types': 15.7.12 - '@types/scheduler': 0.23.0 csstype: 3.1.3 /@types/request-ip@0.0.37: @@ -4789,9 +4817,6 @@ packages: '@types/node': 20.8.5 dev: true - /@types/scheduler@0.23.0: - resolution: {integrity: sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==} - /@types/send@0.17.4: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: @@ -4831,19 +4856,20 @@ packages: '@types/webidl-conversions': 7.0.3 dev: false - /@typescript-eslint/parser@5.62.0(eslint@8.34.0)(typescript@4.9.5): - resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/parser@7.2.0(eslint@8.34.0)(typescript@4.9.5): + resolution: {integrity: sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) + '@typescript-eslint/scope-manager': 7.2.0 + '@typescript-eslint/types': 7.2.0 + '@typescript-eslint/typescript-estree': 7.2.0(typescript@4.9.5) + '@typescript-eslint/visitor-keys': 7.2.0 debug: 4.3.4 eslint: 8.34.0 typescript: 4.9.5 @@ -4851,45 +4877,46 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@5.62.0: - resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/scope-manager@7.2.0: + resolution: {integrity: sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==} + engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 + '@typescript-eslint/types': 7.2.0 + '@typescript-eslint/visitor-keys': 7.2.0 dev: true - /@typescript-eslint/types@5.62.0: - resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/types@7.2.0: + resolution: {integrity: sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==} + engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@5.62.0(typescript@4.9.5): - resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/typescript-estree@7.2.0(typescript@4.9.5): + resolution: {integrity: sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 + '@typescript-eslint/types': 7.2.0 + '@typescript-eslint/visitor-keys': 7.2.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.6.0 - tsutils: 3.21.0(typescript@4.9.5) + minimatch: 9.0.3 + semver: 7.6.2 + ts-api-utils: 1.3.0(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/visitor-keys@5.62.0: - resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/visitor-keys@7.2.0: + resolution: {integrity: sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==} + engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/types': 7.2.0 eslint-visitor-keys: 3.4.3 dev: true @@ -5094,7 +5121,7 @@ packages: indent-string: 4.0.0 dev: true - /ahooks@3.7.11(react@18.2.0): + /ahooks@3.7.11(react@18.3.1): resolution: {integrity: sha512-BfSq7HJ9wk/7a2vX7WbLdwzHyQHmbNe21ipX1PfIzssXIzQfAl79WVJ9GjZaqNl4PFPsJusj/Xjg2OF+gIgGaQ==} engines: {node: '>=8.0.0'} peerDependencies: @@ -5105,7 +5132,7 @@ packages: intersection-observer: 0.12.2 js-cookie: 2.2.1 lodash: 4.17.21 - react: 18.2.0 + react: 18.3.1 react-fast-compare: 3.2.2 resize-observer-polyfill: 1.5.1 screenfull: 5.2.0 @@ -5523,6 +5550,12 @@ packages: balanced-match: 1.0.2 concat-map: 0.0.1 + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: true + /braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} @@ -5601,7 +5634,7 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001603 + caniuse-lite: 1.0.30001620 electron-to-chromium: 1.4.723 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.23.0) @@ -5691,8 +5724,8 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite@1.0.30001603: - resolution: {integrity: sha512-iL2iSS0eDILMb9n5yKQoTBim9jMZ0Yrk8g0N9K7UzYyWnfIKzXBZD5ngpM37ZcL/cv0Mli8XtVMRYMQAfFpi5Q==} + /caniuse-lite@1.0.30001620: + resolution: {integrity: sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==} /canvas@2.11.2(encoding@0.1.13): resolution: {integrity: sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==} @@ -6914,8 +6947,8 @@ packages: once: 1.4.0 dev: false - /enhanced-resolve@5.16.0: - resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} + /enhanced-resolve@5.16.1: + resolution: {integrity: sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw==} engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.11 @@ -6953,7 +6986,7 @@ packages: function.prototype.name: 1.1.6 get-intrinsic: 1.2.4 get-symbol-description: 1.0.2 - globalthis: 1.0.3 + globalthis: 1.0.4 gopd: 1.0.1 has-property-descriptors: 1.0.2 has-proto: 1.0.3 @@ -6996,8 +7029,8 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - /es-iterator-helpers@1.0.18: - resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==} + /es-iterator-helpers@1.0.19: + resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -7007,7 +7040,7 @@ packages: es-set-tostringtag: 2.0.3 function-bind: 1.1.2 get-intrinsic: 1.2.4 - globalthis: 1.0.3 + globalthis: 1.0.4 has-property-descriptors: 1.0.2 has-proto: 1.0.3 has-symbols: 1.0.3 @@ -7016,8 +7049,8 @@ packages: safe-array-concat: 1.1.2 dev: true - /es-module-lexer@1.5.0: - resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==} + /es-module-lexer@1.5.2: + resolution: {integrity: sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==} dev: false /es-object-atoms@1.0.0: @@ -7312,8 +7345,8 @@ packages: engines: {node: '>=12'} dev: false - /eslint-config-next@13.1.6(eslint@8.34.0)(typescript@4.9.5): - resolution: {integrity: sha512-0cg7h5wztg/SoLAlxljZ0ZPUQ7i6QKqRiP4M2+MgTZtxWwNKb2JSwNc18nJ6/kXBI6xYvPraTbQSIhAuVw6czw==} + /eslint-config-next@14.2.3(eslint@8.34.0)(typescript@4.9.5): + resolution: {integrity: sha512-ZkNztm3Q7hjqvB1rRlOX8P9E/cXRL9ajRcs8jufEtwMfTVYRqnmtnaSu57QqHyBlovMuiB8LEzfLBkh5RYV6Fg==} peerDependencies: eslint: ^7.23.0 || ^8.0.0 typescript: '>=3.3.1' @@ -7321,16 +7354,16 @@ packages: typescript: optional: true dependencies: - '@next/eslint-plugin-next': 13.1.6 - '@rushstack/eslint-patch': 1.10.1 - '@typescript-eslint/parser': 5.62.0(eslint@8.34.0)(typescript@4.9.5) + '@next/eslint-plugin-next': 14.2.3 + '@rushstack/eslint-patch': 1.10.2 + '@typescript-eslint/parser': 7.2.0(eslint@8.34.0)(typescript@4.9.5) eslint: 8.34.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.34.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.34.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.34.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.34.0) eslint-plugin-jsx-a11y: 6.8.0(eslint@8.34.0) eslint-plugin-react: 7.34.1(eslint@8.34.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.34.0) + eslint-plugin-react-hooks: 4.6.2(eslint@8.34.0) typescript: 4.9.5 transitivePeerDependencies: - eslint-import-resolver-webpack @@ -7347,7 +7380,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.34.0): + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.34.0): resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -7355,12 +7388,12 @@ packages: eslint-plugin-import: '*' dependencies: debug: 4.3.4 - enhanced-resolve: 5.16.0 + enhanced-resolve: 5.16.1 eslint: 8.34.0 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.34.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.34.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.34.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.34.0) fast-glob: 3.3.2 - get-tsconfig: 4.7.3 + get-tsconfig: 4.7.5 is-core-module: 2.13.1 is-glob: 4.0.3 transitivePeerDependencies: @@ -7370,7 +7403,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.34.0): + /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.34.0): resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} engines: {node: '>=4'} peerDependencies: @@ -7391,16 +7424,16 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.34.0)(typescript@4.9.5) + '@typescript-eslint/parser': 7.2.0(eslint@8.34.0)(typescript@4.9.5) debug: 3.2.7 eslint: 8.34.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.34.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.34.0) transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.34.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.34.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -7410,7 +7443,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.34.0)(typescript@4.9.5) + '@typescript-eslint/parser': 7.2.0(eslint@8.34.0)(typescript@4.9.5) array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 array.prototype.flat: 1.3.2 @@ -7419,7 +7452,7 @@ packages: doctrine: 2.1.0 eslint: 8.34.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.34.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.34.0) hasown: 2.0.2 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -7441,7 +7474,7 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.5 aria-query: 5.3.0 array-includes: 3.1.8 array.prototype.flatmap: 1.3.2 @@ -7450,7 +7483,7 @@ packages: axobject-query: 3.2.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - es-iterator-helpers: 1.0.18 + es-iterator-helpers: 1.0.19 eslint: 8.34.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -7460,8 +7493,8 @@ packages: object.fromentries: 2.0.8 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.34.0): - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + /eslint-plugin-react-hooks@4.6.2(eslint@8.34.0): + resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 @@ -7481,7 +7514,7 @@ packages: array.prototype.toreversed: 1.1.2 array.prototype.tosorted: 1.1.3 doctrine: 2.1.0 - es-iterator-helpers: 1.0.18 + es-iterator-helpers: 1.0.19 eslint: 8.34.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 @@ -7838,6 +7871,14 @@ packages: is-callable: 1.2.7 dev: true + /foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + dev: true + /form-data-encoder@1.7.2: resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} dev: false @@ -7877,7 +7918,7 @@ packages: engines: {node: '>= 0.6'} dev: false - /framer-motion@9.0.6(react-dom@18.2.0)(react@18.2.0): + /framer-motion@9.0.6(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-NBETSa14yI/osK6DxKmiiDj1N6Os6YFiXKN6fzxYsNKKeO0vjoQz3m40g0kJYiAWrMdXQjhjyCMJqfOLR+nnRw==} peerDependencies: react: ^18.0.0 @@ -7885,8 +7926,8 @@ packages: dependencies: '@motionone/dom': 10.17.0 hey-listen: 1.0.8 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) tslib: 2.6.2 optionalDependencies: '@emotion/is-prop-valid': 0.8.8 @@ -8005,8 +8046,8 @@ packages: get-intrinsic: 1.2.4 dev: true - /get-tsconfig@4.7.3: - resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} + /get-tsconfig@4.7.5: + resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} dependencies: resolve-pkg-maps: 1.0.0 dev: true @@ -8026,16 +8067,18 @@ packages: /glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + dev: false - /glob@7.1.7: - resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + /glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 + foreground-child: 3.1.1 + jackspeak: 2.3.6 + minimatch: 9.0.4 + minipass: 7.1.1 + path-scurry: 1.11.1 dev: true /glob@7.2.3: @@ -8059,11 +8102,12 @@ packages: type-fest: 0.20.2 dev: true - /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + /globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.1 + gopd: 1.0.1 dev: true /globby@11.1.0: @@ -8701,6 +8745,15 @@ packages: set-function-name: 2.0.2 dev: true + /jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + dev: true + /jest-worker@27.5.1: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} @@ -8907,8 +8960,8 @@ packages: resolution: {integrity: sha512-ouV7Gyr9+3WT3WTrCgRAD3iZnlJWfs2/kBl2x3J2Q3X9uCWJn/zn21fQ8G1EUHlu0dvXPBmdk9hXb/FjTClt6Q==} dev: false - /lib0@0.2.93: - resolution: {integrity: sha512-M5IKsiFJYulS+8Eal8f+zAqf5ckm1vffW0fFDxfgxJ+uiVopvDdd3PxJmz0GsVi3YNO7QCFSq0nAsiDmNhLj9Q==} + /lib0@0.2.94: + resolution: {integrity: sha512-hZ3p54jL4Wpu7IOg26uC7dnEWiMyNlUrb9KoG7+xYs45WkQwpVvKFndVq2+pqLYKe1u8Fp3+zAfZHVvTK34PvQ==} engines: {node: '>=16'} hasBin: true dependencies: @@ -9093,6 +9146,11 @@ packages: highlight.js: 10.7.3 dev: false + /lru-cache@10.2.2: + resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} + engines: {node: 14 || >=16.14} + dev: true + /lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: @@ -9103,6 +9161,7 @@ packages: engines: {node: '>=10'} dependencies: yallist: 4.0.0 + dev: false /luxon@3.4.4: resolution: {integrity: sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==} @@ -9701,6 +9760,20 @@ packages: dependencies: brace-expansion: 1.1.11 + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimatch@9.0.4: + resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -9720,6 +9793,11 @@ packages: dev: false optional: true + /minipass@7.1.1: + resolution: {integrity: sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==} + engines: {node: '>=16 || 14 >=14.17'} + dev: true + /minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} @@ -9745,8 +9823,8 @@ packages: dev: false optional: true - /monaco-editor@0.47.0: - resolution: {integrity: sha512-VabVvHvQ9QmMwXu4du008ZDuyLnHs9j7ThVFsiJoXSOQk18+LF89N4ADzPbFenm0W4V2bGHnFBztIRQTgBfxzw==} + /monaco-editor@0.48.0: + resolution: {integrity: sha512-goSDElNqFfw7iDHMg8WDATkfcyeLTNpBHQpO8incK6p5qZt5G/1j41X0xdGzpIkGojGXM+QiRQyLjnfDVvrpwA==} dev: false /mongodb-connection-string-url@2.6.0: @@ -9868,7 +9946,7 @@ packages: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} dev: false - /next-i18next@15.2.0(i18next@23.10.0)(next@13.5.2)(react-i18next@13.5.0)(react@18.2.0): + /next-i18next@15.2.0(i18next@23.10.0)(next@14.2.3)(react-i18next@13.5.0)(react@18.3.1): resolution: {integrity: sha512-Rl5yZ4oGffsB0AjRykZ5PzNQ2M6am54MaMayldGmH/UKZisrIxk2SKEPJvaHhKlWe1qgdNi2FkodwK8sEjfEmg==} engines: {node: '>=14'} peerDependencies: @@ -9883,57 +9961,59 @@ packages: hoist-non-react-statics: 3.3.2 i18next: 23.10.0 i18next-fs-backend: 2.3.1 - next: 13.5.2(@babel/core@7.24.4)(react-dom@18.2.0)(react@18.2.0)(sass@1.58.3) - react: 18.2.0 - react-i18next: 13.5.0(i18next@23.10.0)(react-dom@18.2.0)(react@18.2.0) + next: 14.2.3(@babel/core@7.24.4)(react-dom@18.3.1)(react@18.3.1)(sass@1.58.3) + react: 18.3.1 + react-i18next: 13.5.0(i18next@23.10.0)(react-dom@18.3.1)(react@18.3.1) - /next@13.5.2(@babel/core@7.24.4)(react-dom@18.2.0)(react@18.2.0)(sass@1.58.3): - resolution: {integrity: sha512-vog4UhUaMYAzeqfiAAmgB/QWLW7p01/sg+2vn6bqc/CxHFYizMzLv6gjxKzl31EVFkfl/F+GbxlKizlkTE9RdA==} - engines: {node: '>=16.14.0'} + /next@14.2.3(@babel/core@7.24.4)(react-dom@18.3.1)(react@18.3.1)(sass@1.58.3): + resolution: {integrity: sha512-dowFkFTR8v79NPJO4QsBUtxv0g9BrS/phluVpMAt2ku7H+cbcBJlopXjkWlwxrk/xGqMemr7JkGPGemPrLLX7A==} + engines: {node: '>=18.17.0'} hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.41.2 react: ^18.2.0 react-dom: ^18.2.0 sass: ^1.3.0 peerDependenciesMeta: '@opentelemetry/api': optional: true + '@playwright/test': + optional: true sass: optional: true dependencies: - '@next/env': 13.5.2 - '@swc/helpers': 0.5.2 + '@next/env': 14.2.3 + '@swc/helpers': 0.5.5 busboy: 1.6.0 - caniuse-lite: 1.0.30001603 - postcss: 8.4.14 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + caniuse-lite: 1.0.30001620 + graceful-fs: 4.2.11 + postcss: 8.4.31 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) sass: 1.58.3 - styled-jsx: 5.1.1(@babel/core@7.24.4)(react@18.2.0) - watchpack: 2.4.0 - zod: 3.21.4 + styled-jsx: 5.1.1(@babel/core@7.24.4)(react@18.3.1) optionalDependencies: - '@next/swc-darwin-arm64': 13.5.2 - '@next/swc-darwin-x64': 13.5.2 - '@next/swc-linux-arm64-gnu': 13.5.2 - '@next/swc-linux-arm64-musl': 13.5.2 - '@next/swc-linux-x64-gnu': 13.5.2 - '@next/swc-linux-x64-musl': 13.5.2 - '@next/swc-win32-arm64-msvc': 13.5.2 - '@next/swc-win32-ia32-msvc': 13.5.2 - '@next/swc-win32-x64-msvc': 13.5.2 + '@next/swc-darwin-arm64': 14.2.3 + '@next/swc-darwin-x64': 14.2.3 + '@next/swc-linux-arm64-gnu': 14.2.3 + '@next/swc-linux-arm64-musl': 14.2.3 + '@next/swc-linux-x64-gnu': 14.2.3 + '@next/swc-linux-x64-musl': 14.2.3 + '@next/swc-win32-arm64-msvc': 14.2.3 + '@next/swc-win32-ia32-msvc': 14.2.3 + '@next/swc-win32-x64-msvc': 14.2.3 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - /nextjs-cors@2.1.2(next@13.5.2): + /nextjs-cors@2.1.2(next@14.2.3): resolution: {integrity: sha512-2yOVivaaf2ILe4f/qY32hnj3oC77VCOsUQJQfhVMGsXE/YMEWUY2zy78sH9FKUCM7eG42/l3pDofIzMD781XGA==} peerDependencies: next: ^8.1.1-canary.54 || ^9.0.0 || ^10.0.0-0 || ^11.0.0 || ^12.0.0 || ^13.0.0 dependencies: cors: 2.8.5 - next: 13.5.2(@babel/core@7.24.4)(react-dom@18.2.0)(react@18.2.0)(sass@1.58.3) + next: 14.2.3(@babel/core@7.24.4)(react-dom@18.3.1)(react@18.3.1)(sass@1.58.3) dev: false /nextjs-node-loader@1.1.5(webpack@5.91.0): @@ -10332,6 +10412,14 @@ packages: /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + /path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + dependencies: + lru-cache: 10.2.2 + minipass: 7.1.1 + dev: true + /path-to-regexp@0.1.7: resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} dev: false @@ -10340,19 +10428,9 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - /path2d-polyfill@2.1.1: - resolution: {integrity: sha512-4Rka5lN+rY/p0CdD8+E+BFv51lFaFvJOrlOhyQ+zjzyQrzyh3ozmxd1vVGGDdIbUFSBtIZLSnspxTgPT0iJhvA==} - engines: {node: '>=18'} - deprecated: this package has been deprecated - requiresBuild: true - dependencies: - path2d: 0.1.1 - dev: false - optional: true - - /path2d@0.1.1: - resolution: {integrity: sha512-/+S03c8AGsDYKKBtRDqieTJv2GlkMb0bWjnqOgtF6MkjdUQ9a8ARAtxWf9NgKLGm2+WQr6+/tqJdU8HNGsIDoA==} - engines: {node: '>=6'} + /path2d-polyfill@2.0.1: + resolution: {integrity: sha512-ad/3bsalbbWhmBo0D6FZ4RNMwsLsPpL6gnvhuSaU5Vm7b06Kr5ubSltQQ0T7YKsiJQO+g22zJ4dJKNTXIyOXtA==} + engines: {node: '>=8'} requiresBuild: true dev: false optional: true @@ -10377,7 +10455,7 @@ packages: engines: {node: '>=18'} optionalDependencies: canvas: 2.11.2(encoding@0.1.13) - path2d-polyfill: 2.1.1 + path2d-polyfill: 2.0.1 transitivePeerDependencies: - encoding - supports-color @@ -10445,8 +10523,8 @@ packages: split2: 4.2.0 dev: false - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + /picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -10492,12 +10570,12 @@ packages: engines: {node: '>= 0.4'} dev: true - /postcss@8.4.14: - resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} + /postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 - picocolors: 1.0.0 + picocolors: 1.0.1 source-map-js: 1.2.0 /postcss@8.4.38: @@ -10505,7 +10583,7 @@ packages: engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 - picocolors: 1.0.0 + picocolors: 1.0.1 source-map-js: 1.2.0 dev: true @@ -10663,7 +10741,7 @@ packages: unpipe: 1.0.0 dev: false - /react-beautiful-dnd@13.1.1(react-dom@18.2.0)(react@18.2.0): + /react-beautiful-dnd@13.1.1(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-0Lvs4tq2VcrEjEgDXHjT98r+63drkKEgqyxdA7qD3mvKwga6a5SscbdLPO2IExotU1jW8L0Ksdl0Cj2AF67nPQ==} peerDependencies: react: ^16.8.5 || ^17.0.0 || ^18.0.0 @@ -10673,58 +10751,58 @@ packages: css-box-model: 1.2.1 memoize-one: 5.2.1 raf-schd: 4.0.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-redux: 7.2.9(react-dom@18.2.0)(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-redux: 7.2.9(react-dom@18.3.1)(react@18.3.1) redux: 4.2.1 - use-memo-one: 1.1.3(react@18.2.0) + use-memo-one: 1.1.3(react@18.3.1) transitivePeerDependencies: - react-native dev: false - /react-clientside-effect@1.2.6(react@18.2.0): + /react-clientside-effect@1.2.6(react@18.3.1): resolution: {integrity: sha512-XGGGRQAKY+q25Lz9a/4EPqom7WRjz3z9R2k4jhVKA/puQFH/5Nt27vFZYql4m4NVNdUvX8PS3O7r/Zzm7cjUlg==} peerDependencies: react: ^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': 7.24.1 - react: 18.2.0 + '@babel/runtime': 7.24.5 + react: 18.3.1 dev: false - /react-day-picker@8.7.1(date-fns@2.30.0)(react@18.2.0): + /react-day-picker@8.7.1(date-fns@2.30.0)(react@18.3.1): resolution: {integrity: sha512-Gv426AW8b151CZfh3aP5RUGztLwHB/EyJgWZ5iMgtzbFBkjHfG6Y66CIQFMWGLnYjsQ9DYSJRmJ5S0Pg5HWKjA==} peerDependencies: date-fns: ^2.28.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: date-fns: 2.30.0 - react: 18.2.0 + react: 18.3.1 dev: false - /react-dom@18.2.0(react@18.2.0): - resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + /react-dom@18.3.1(react@18.3.1): + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} peerDependencies: - react: ^18.2.0 + react: ^18.3.1 dependencies: loose-envify: 1.4.0 - react: 18.2.0 - scheduler: 0.23.0 + react: 18.3.1 + scheduler: 0.23.2 - /react-error-boundary@3.1.4(react@18.2.0): + /react-error-boundary@3.1.4(react@18.3.1): resolution: {integrity: sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==} engines: {node: '>=10', npm: '>=6'} peerDependencies: react: '>=16.13.1' dependencies: - '@babel/runtime': 7.24.1 - react: 18.2.0 + '@babel/runtime': 7.24.5 + react: 18.3.1 dev: false /react-fast-compare@3.2.2: resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} dev: false - /react-focus-lock@2.11.2(@types/react@18.2.0)(react@18.2.0): + /react-focus-lock@2.11.2(@types/react@18.3.0)(react@18.3.1): resolution: {integrity: sha512-DDTbEiov0+RthESPVSTIdAWPPKic+op3sCcP+icbMRobvQNt7LuAlJ3KoarqQv5sCgKArru3kXmlmFTa27/CdQ==} peerDependencies: '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -10733,26 +10811,26 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.1 - '@types/react': 18.2.0 + '@babel/runtime': 7.24.5 + '@types/react': 18.3.0 focus-lock: 1.3.4 prop-types: 15.8.1 - react: 18.2.0 - react-clientside-effect: 1.2.6(react@18.2.0) - use-callback-ref: 1.3.2(@types/react@18.2.0)(react@18.2.0) - use-sidecar: 1.1.2(@types/react@18.2.0)(react@18.2.0) + react: 18.3.1 + react-clientside-effect: 1.2.6(react@18.3.1) + use-callback-ref: 1.3.2(@types/react@18.3.0)(react@18.3.1) + use-sidecar: 1.1.2(@types/react@18.3.0)(react@18.3.1) dev: false - /react-hook-form@7.43.1(react@18.2.0): + /react-hook-form@7.43.1(react@18.3.1): resolution: {integrity: sha512-+s3+s8LLytRMriwwuSqeLStVjRXFGxgjjx2jED7Z+wz1J/88vpxieRQGvJVvzrzVxshZ0BRuocFERb779m2kNg==} engines: {node: '>=12.22.0'} peerDependencies: react: ^16.8.0 || ^17 || ^18 dependencies: - react: 18.2.0 + react: 18.3.1 dev: false - /react-i18next@13.5.0(i18next@23.10.0)(react-dom@18.2.0)(react@18.2.0): + /react-i18next@13.5.0(i18next@23.10.0)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-CFJ5NDGJ2MUyBohEHxljOq/39NQ972rh1ajnadG9BjTk+UXbHLq4z5DKEbEQBDoIhUmmbuS/fIMJKo6VOax1HA==} peerDependencies: i18next: '>= 23.2.3' @@ -10768,8 +10846,8 @@ packages: '@babel/runtime': 7.24.1 html-parse-stringify: 3.0.1 i18next: 23.10.0 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) /react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} @@ -10782,7 +10860,7 @@ packages: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: false - /react-markdown@8.0.7(@types/react@18.2.0)(react@18.2.0): + /react-markdown@8.0.7(@types/react@18.3.0)(react@18.3.1): resolution: {integrity: sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ==} peerDependencies: '@types/react': '>=16' @@ -10790,13 +10868,13 @@ packages: dependencies: '@types/hast': 2.3.10 '@types/prop-types': 15.7.12 - '@types/react': 18.2.0 + '@types/react': 18.3.0 '@types/unist': 2.0.10 comma-separated-tokens: 2.0.3 hast-util-whitespace: 2.0.1 prop-types: 15.8.1 property-information: 6.4.1 - react: 18.2.0 + react: 18.3.1 react-is: 18.2.0 remark-parse: 10.0.2 remark-rehype: 10.1.0 @@ -10809,7 +10887,7 @@ packages: - supports-color dev: false - /react-redux@7.2.9(react-dom@18.2.0)(react@18.2.0): + /react-redux@7.2.9(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ==} peerDependencies: react: ^16.8.3 || ^17 || ^18 @@ -10826,12 +10904,12 @@ packages: hoist-non-react-statics: 3.3.2 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) react-is: 17.0.2 dev: false - /react-remove-scroll-bar@2.3.6(@types/react@18.2.0)(react@18.2.0): + /react-remove-scroll-bar@2.3.6(@types/react@18.3.0)(react@18.3.1): resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==} engines: {node: '>=10'} peerDependencies: @@ -10841,13 +10919,13 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.0 - react: 18.2.0 - react-style-singleton: 2.2.1(@types/react@18.2.0)(react@18.2.0) + '@types/react': 18.3.0 + react: 18.3.1 + react-style-singleton: 2.2.1(@types/react@18.3.0)(react@18.3.1) tslib: 2.6.2 dev: false - /react-remove-scroll@2.5.9(@types/react@18.2.0)(react@18.2.0): + /react-remove-scroll@2.5.9(@types/react@18.3.0)(react@18.3.1): resolution: {integrity: sha512-bvHCLBrFfM2OgcrpPY2YW84sPdS2o2HKWJUf1xGyGLnSoEnOTOBpahIarjRuYtN0ryahCeP242yf+5TrBX/pZA==} engines: {node: '>=10'} peerDependencies: @@ -10857,16 +10935,16 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.0 - react: 18.2.0 - react-remove-scroll-bar: 2.3.6(@types/react@18.2.0)(react@18.2.0) - react-style-singleton: 2.2.1(@types/react@18.2.0)(react@18.2.0) + '@types/react': 18.3.0 + react: 18.3.1 + react-remove-scroll-bar: 2.3.6(@types/react@18.3.0)(react@18.3.1) + react-style-singleton: 2.2.1(@types/react@18.3.0)(react@18.3.1) tslib: 2.6.2 - use-callback-ref: 1.3.2(@types/react@18.2.0)(react@18.2.0) - use-sidecar: 1.1.2(@types/react@18.2.0)(react@18.2.0) + use-callback-ref: 1.3.2(@types/react@18.3.0)(react@18.3.1) + use-sidecar: 1.1.2(@types/react@18.3.0)(react@18.3.1) dev: false - /react-style-singleton@2.2.1(@types/react@18.2.0)(react@18.2.0): + /react-style-singleton@2.2.1(@types/react@18.3.0)(react@18.3.1): resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} engines: {node: '>=10'} peerDependencies: @@ -10876,14 +10954,14 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.0 + '@types/react': 18.3.0 get-nonce: 1.0.1 invariant: 2.2.4 - react: 18.2.0 + react: 18.3.1 tslib: 2.6.2 dev: false - /react-syntax-highlighter@15.5.0(react@18.2.0): + /react-syntax-highlighter@15.5.0(react@18.3.1): resolution: {integrity: sha512-+zq2myprEnQmH5yw6Gqc8lD55QHnpKaU8TOcFeC/Lg/MQSs8UknEA0JC4nTZGFAXC2J2Hyj/ijJ7NlabyPi2gg==} peerDependencies: react: '>= 0.14.0' @@ -10892,30 +10970,30 @@ packages: highlight.js: 10.7.3 lowlight: 1.20.0 prismjs: 1.29.0 - react: 18.2.0 + react: 18.3.1 refractor: 3.6.0 dev: false - /react@18.2.0: - resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + /react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} dependencies: loose-envify: 1.4.0 - /reactflow@11.7.4(immer@9.0.19)(react-dom@18.2.0)(react@18.2.0): + /reactflow@11.7.4(immer@9.0.19)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-QI6+oc1Ft6oFeLSdHlp+SmgymbI5Tm49wj5JyE84O4A54yN/ImfYaBhLit9Cmfzxn9Tz6tDqmGMGbk4bdtB8/w==} peerDependencies: react: '>=17' react-dom: '>=17' dependencies: - '@reactflow/background': 11.2.4(immer@9.0.19)(react-dom@18.2.0)(react@18.2.0) - '@reactflow/controls': 11.1.15(immer@9.0.19)(react-dom@18.2.0)(react@18.2.0) - '@reactflow/core': 11.7.4(immer@9.0.19)(react-dom@18.2.0)(react@18.2.0) - '@reactflow/minimap': 11.5.4(immer@9.0.19)(react-dom@18.2.0)(react@18.2.0) - '@reactflow/node-resizer': 2.1.1(immer@9.0.19)(react-dom@18.2.0)(react@18.2.0) - '@reactflow/node-toolbar': 1.2.3(immer@9.0.19)(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@reactflow/background': 11.2.4(immer@9.0.19)(react-dom@18.3.1)(react@18.3.1) + '@reactflow/controls': 11.1.15(immer@9.0.19)(react-dom@18.3.1)(react@18.3.1) + '@reactflow/core': 11.7.4(immer@9.0.19)(react-dom@18.3.1)(react@18.3.1) + '@reactflow/minimap': 11.5.4(immer@9.0.19)(react-dom@18.3.1)(react@18.3.1) + '@reactflow/node-resizer': 2.1.1(immer@9.0.19)(react-dom@18.3.1)(react@18.3.1) + '@reactflow/node-toolbar': 1.2.3(immer@9.0.19)(react-dom@18.3.1)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: - immer dev: false @@ -10967,7 +11045,7 @@ packages: es-abstract: 1.23.3 es-errors: 1.3.0 get-intrinsic: 1.2.4 - globalthis: 1.0.3 + globalthis: 1.0.4 which-builtin-type: 1.1.3 dev: true @@ -10996,7 +11074,7 @@ packages: /regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.5 dev: true /regexp.prototype.flags@1.5.2: @@ -11284,8 +11362,8 @@ packages: immutable: 4.3.5 source-map-js: 1.2.0 - /scheduler@0.23.0: - resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + /scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} dependencies: loose-envify: 1.4.0 @@ -11320,6 +11398,12 @@ packages: hasBin: true dependencies: lru-cache: 6.0.0 + dev: false + + /semver@7.6.2: + resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + engines: {node: '>=10'} + hasBin: true /send@0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} @@ -11430,6 +11514,11 @@ packages: /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: true + /simple-concat@1.0.1: resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} requiresBuild: true @@ -11702,7 +11791,7 @@ packages: inline-style-parser: 0.1.1 dev: false - /styled-jsx@5.1.1(@babel/core@7.24.4)(react@18.2.0): + /styled-jsx@5.1.1(@babel/core@7.24.4)(react@18.3.1): resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} engines: {node: '>= 12.0.0'} peerDependencies: @@ -11717,7 +11806,7 @@ packages: dependencies: '@babel/core': 7.24.4 client-only: 0.0.1 - react: 18.2.0 + react: 18.3.1 /stylis@4.2.0: resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} @@ -11765,7 +11854,7 @@ packages: css-select: 4.3.0 css-tree: 1.1.3 csso: 4.2.0 - picocolors: 1.0.0 + picocolors: 1.0.1 stable: 0.1.8 dev: true @@ -11820,12 +11909,12 @@ packages: jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 - terser: 5.30.4 + terser: 5.31.0 webpack: 5.91.0 dev: false - /terser@5.30.4: - resolution: {integrity: sha512-xRdd0v64a8mFK9bnsKVdoNP9GQIKUAaJPTaqEQDL4w/J8WaW4sWXXoMZ+6SimPkfT5bElreXf8m9HnmPc3E1BQ==} + /terser@5.31.0: + resolution: {integrity: sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==} engines: {node: '>=10'} hasBin: true dependencies: @@ -11934,6 +12023,15 @@ packages: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} dev: false + /ts-api-utils@1.3.0(typescript@4.9.5): + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 4.9.5 + dev: true + /ts-dedent@2.2.0: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} @@ -11948,10 +12046,6 @@ packages: strip-bom: 3.0.0 dev: true - /tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - dev: true - /tslib@2.3.0: resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==} dev: false @@ -11963,16 +12057,6 @@ packages: /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - /tsutils@3.21.0(typescript@4.9.5): - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - dependencies: - tslib: 1.14.1 - typescript: 4.9.5 - dev: true - /tty-browserify@0.0.1: resolution: {integrity: sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==} dev: true @@ -12244,7 +12328,7 @@ packages: dependencies: browserslist: 4.23.0 escalade: 3.1.2 - picocolors: 1.0.0 + picocolors: 1.0.1 /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -12258,7 +12342,7 @@ packages: qs: 6.12.0 dev: true - /use-callback-ref@1.3.2(@types/react@18.2.0)(react@18.2.0): + /use-callback-ref@1.3.2(@types/react@18.3.0)(react@18.3.1): resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} engines: {node: '>=10'} peerDependencies: @@ -12268,12 +12352,12 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.0 - react: 18.2.0 + '@types/react': 18.3.0 + react: 18.3.1 tslib: 2.6.2 dev: false - /use-context-selector@1.4.4(react-dom@18.2.0)(react@18.2.0)(scheduler@0.23.0): + /use-context-selector@1.4.4(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.2): resolution: {integrity: sha512-pS790zwGxxe59GoBha3QYOwk8AFGp4DN6DOtH+eoqVmgBBRXVx4IlPDhJmmMiNQAgUaLlP+58aqRC3A4rdaSjg==} peerDependencies: react: '>=16.8.0' @@ -12286,20 +12370,20 @@ packages: react-native: optional: true dependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - scheduler: 0.23.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + scheduler: 0.23.2 dev: false - /use-memo-one@1.1.3(react@18.2.0): + /use-memo-one@1.1.3(react@18.3.1): resolution: {integrity: sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - react: 18.2.0 + react: 18.3.1 dev: false - /use-sidecar@1.1.2(@types/react@18.2.0)(react@18.2.0): + /use-sidecar@1.1.2(@types/react@18.3.0)(react@18.3.1): resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} engines: {node: '>=10'} peerDependencies: @@ -12309,18 +12393,18 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.0 + '@types/react': 18.3.0 detect-node-es: 1.1.0 - react: 18.2.0 + react: 18.3.1 tslib: 2.6.2 dev: false - /use-sync-external-store@1.2.0(react@18.2.0): + /use-sync-external-store@1.2.0(react@18.3.1): resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - react: 18.2.0 + react: 18.3.1 dev: false /util-deprecate@1.0.2: @@ -12495,13 +12579,6 @@ packages: resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} engines: {node: '>=0.10.0'} - /watchpack@2.4.0: - resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} - engines: {node: '>=10.13.0'} - dependencies: - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - /watchpack@2.4.1: resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} engines: {node: '>=10.13.0'} @@ -12561,8 +12638,8 @@ packages: acorn-import-assertions: 1.9.0(acorn@8.11.3) browserslist: 4.23.0 chrome-trace-event: 1.0.3 - enhanced-resolve: 5.16.0 - es-module-lexer: 1.5.0 + enhanced-resolve: 5.16.1 + es-module-lexer: 1.5.2 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -12680,6 +12757,15 @@ packages: strip-ansi: 6.0.1 dev: true + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + dev: true + /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -12697,6 +12783,7 @@ packages: /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: false /yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} @@ -12715,11 +12802,11 @@ packages: fd-slicer: 1.1.0 dev: false - /yjs@13.6.14: - resolution: {integrity: sha512-D+7KcUr0j+vBCUSKXXEWfA+bG4UQBviAwP3gYBhkstkgwy5+8diOPMx0iqLIOxNo/HxaREUimZRxqHGAHCL2BQ==} + /yjs@13.6.15: + resolution: {integrity: sha512-moFv4uNYhp8BFxIk3AkpoAnnjts7gwdpiG8RtyFiKbMtxKCS0zVZ5wPaaGpwC3V2N/K8TK8MwtSI3+WO9CHWjQ==} engines: {node: '>=16.0.0', npm: '>=8.0.0'} dependencies: - lib0: 0.2.93 + lib0: 0.2.94 dev: false /yocto-queue@0.1.0: @@ -12754,9 +12841,6 @@ packages: - terser dev: true - /zod@3.21.4: - resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} - /zrender@5.4.1: resolution: {integrity: sha512-M4Z05BHWtajY2241EmMPHglDQAJ1UyHQcYsxDNzD9XLSkPDqMq4bB28v9Pb4mvHnVQ0GxyTklZ/69xCFP6RXBA==} dependencies: @@ -12769,7 +12853,7 @@ packages: tslib: 2.3.0 dev: false - /zustand@4.3.5(immer@9.0.19)(react@18.2.0): + /zustand@4.3.5(immer@9.0.19)(react@18.3.1): resolution: {integrity: sha512-2iPUzfwx+g3f0PagOMz2vDO9mZzEp2puFpNe7vrAymVPOEIEUjCPkC4/zy84eAscxIWmTU4j9g6upXYkJdzEFQ==} engines: {node: '>=12.7.0'} peerDependencies: @@ -12782,8 +12866,8 @@ packages: optional: true dependencies: immer: 9.0.19 - react: 18.2.0 - use-sync-external-store: 1.2.0(react@18.2.0) + react: 18.3.1 + use-sync-external-store: 1.2.0(react@18.3.1) dev: false /zwitch@2.0.4: diff --git a/projects/app/i18n/en/dataset.json b/projects/app/i18n/en/dataset.json index cce429907467..f1d74c263069 100644 --- a/projects/app/i18n/en/dataset.json +++ b/projects/app/i18n/en/dataset.json @@ -1,4 +1,5 @@ { + "Collection tags": "Tags", "Common Dataset": "Common dataset", "Common Dataset Desc": "Can be built by importing files, web links, or manual entry", "Confirm to rebuild embedding tip": "Are you sure to switch the knowledge base index?\nSwitching index is a very heavy operation that requires re-indexing all the data in your knowledge base, which may take a long time. Please ensure that the remaining points in your account are sufficient.\n\nIn addition, you need to be careful to modify the applications that select this knowledge base to avoid mixing them with other index model knowledge bases.", @@ -6,6 +7,7 @@ "External file Dataset Desc": "You can import files from an external file library to build a knowledge base. Files are not stored twice", "External id": "File id", "External read url": "External read url", + "External read url tip": "You can configure the reading address of your file library. This allows users to read and authenticate. You can currently use the {{fileId}} variable to refer to the external file ID.", "External url": "File read url", "Folder Dataset": "Folder", "Rebuild embedding start tip": "The task of switching index models has begun", diff --git a/projects/app/i18n/en/file.json b/projects/app/i18n/en/file.json index 66f1fb2db78c..68b3d59ba822 100644 --- a/projects/app/i18n/en/file.json +++ b/projects/app/i18n/en/file.json @@ -1,4 +1,5 @@ { + "Click to view raw source": "View source", "Click to view file": "Click to view the original file", "Release the mouse to upload the file": "Release the mouse to upload the file", "upload error description": "Only supports uploading multiple files or one folder at a time", diff --git a/projects/app/i18n/zh/dataset.json b/projects/app/i18n/zh/dataset.json index cf350ba27346..1310648fce3a 100644 --- a/projects/app/i18n/zh/dataset.json +++ b/projects/app/i18n/zh/dataset.json @@ -1,4 +1,5 @@ { + "Collection tags": "集合标签", "Common Dataset": "通用知识库", "Common Dataset Desc": "可通过导入文件、网页链接或手动录入形式构建知识库", "Confirm to rebuild embedding tip": "确认为知识库切换索引?\n切换索引是一个非常重量的操作,需要对您知识库内所有数据进行重新索引,时间可能较长,请确保账号内剩余积分充足。\n\n此外,你还需要注意修改选择该知识库的应用,避免它们与其他索引模型知识库混用。", @@ -6,6 +7,7 @@ "External file Dataset Desc": "可以从外部文件库导入文件构建知识库,文件不会进行二次存储", "External id": "文件阅读ID", "External read url": "外部预览地址", + "External read url tip": "可以配置你文件库的阅读地址。便于对用户进行阅读鉴权操作。目前可以使用 {{fileId}} 变量来指代外部文件ID。", "External url": "文件访问URL", "Folder Dataset": "文件夹", "Rebuild embedding start tip": "切换索引模型任务已开始", diff --git a/projects/app/i18n/zh/file.json b/projects/app/i18n/zh/file.json index eb9aabcfd496..44b17e890bfa 100644 --- a/projects/app/i18n/zh/file.json +++ b/projects/app/i18n/zh/file.json @@ -1,4 +1,5 @@ { + "Click to view raw source": "点击查看来源", "Click to view file": "点击查看原始文件", "Release the mouse to upload the file": "松开鼠标上传文件", "upload error description": "单次只支持上传多个文件或者一个文件夹", diff --git a/projects/app/next.config.js b/projects/app/next.config.js index 1e2be4f7a869..9124b72c1ebe 100644 --- a/projects/app/next.config.js +++ b/projects/app/next.config.js @@ -88,8 +88,6 @@ const nextConfig = { }, transpilePackages: ['@fastgpt/*', 'ahooks', '@chakra-ui/*', 'react'], experimental: { - // 外部包独立打包 - serverComponentsExternalPackages: ['mongoose', 'pg'], // 指定导出包优化,按需引入包模块 optimizePackageImports: ['mongoose', 'pg'], outputFileTracingRoot: path.join(__dirname, '../../') diff --git a/projects/app/package.json b/projects/app/package.json index 6975d9fa1e42..ce001a7771c0 100644 --- a/projects/app/package.json +++ b/projects/app/package.json @@ -42,13 +42,13 @@ "lodash": "^4.17.21", "mermaid": "^10.2.3", "nanoid": "^4.0.1", - "next": "13.5.2", + "next": "14.2.3", "next-i18next": "15.2.0", "nextjs-node-loader": "^1.1.5", "nprogress": "^0.2.0", - "react": "18.2.0", + "react": "18.3.1", "react-day-picker": "^8.7.1", - "react-dom": "18.2.0", + "react-dom": "18.3.1", "react-hook-form": "7.43.1", "react-i18next": "13.5.0", "react-markdown": "^8.0.7", @@ -71,12 +71,12 @@ "@types/jsonwebtoken": "^9.0.3", "@types/lodash": "^4.14.191", "@types/node": "^20.8.5", - "@types/react": "18.2.0", - "@types/react-dom": "18.2.0", + "@types/react": "18.3.0", + "@types/react-dom": "18.3.0", "@types/react-syntax-highlighter": "^15.5.6", "@types/request-ip": "^0.0.37", "eslint": "8.34.0", - "eslint-config-next": "13.1.6", + "eslint-config-next": "14.2.3", "nextjs-node-loader": "^1.1.5", "typescript": "4.9.5" } diff --git a/projects/app/src/components/ChatBox/QuoteModal.tsx b/projects/app/src/components/ChatBox/QuoteModal.tsx index 4ad5ded0d39e..ed65203278fc 100644 --- a/projects/app/src/components/ChatBox/QuoteModal.tsx +++ b/projects/app/src/components/ChatBox/QuoteModal.tsx @@ -46,7 +46,7 @@ const QuoteModal = ({ title={ {metadata ? ( - + ) : ( <>{t('core.chat.Quote Amount', { amount: rawSearch.length })} )} diff --git a/projects/app/src/components/Markdown/index.tsx b/projects/app/src/components/Markdown/index.tsx index 71516fbc5d24..7f809755bd0b 100644 --- a/projects/app/src/components/Markdown/index.tsx +++ b/projects/app/src/components/Markdown/index.tsx @@ -14,7 +14,6 @@ import MyTooltip from '../MyTooltip'; import { useTranslation } from 'next-i18next'; import { EventNameEnum, eventBus } from '@/web/common/utils/eventbus'; import MyIcon from '@fastgpt/web/components/common/Icon'; -import { getFileAndOpen } from '@/web/core/dataset/utils'; import { MARKDOWN_QUOTE_SIGN } from '@fastgpt/global/core/chat/constants'; const CodeLight = dynamic(() => import('./CodeLight'), { ssr: false }); @@ -132,7 +131,7 @@ const A = React.memo(function A({ children, ...props }: any) { ); } - // quote link + // quote link(未使用) if (children?.length === 1 && typeof children?.[0] === 'string') { const text = String(children); if (text === MARKDOWN_QUOTE_SIGN && props.href) { @@ -147,7 +146,7 @@ const A = React.memo(function A({ children, ...props }: any) { _hover={{ color: 'primary.700' }} - onClick={() => getFileAndOpen(props.href)} + // onClick={() => getCollectionSourceAndOpen(props.href)} /> ); diff --git a/projects/app/src/components/core/dataset/QuoteItem.tsx b/projects/app/src/components/core/dataset/QuoteItem.tsx index 52bd7568061b..4ae863a19817 100644 --- a/projects/app/src/components/core/dataset/QuoteItem.tsx +++ b/projects/app/src/components/core/dataset/QuoteItem.tsx @@ -218,6 +218,7 @@ const QuoteItem = ({ { +const RawSourceBox = ({ + sourceId, + collectionId, + sourceName = '', + canView = true, + ...props +}: Props) => { const { t } = useTranslation(); const { fileT } = useI18n(); - const { toast } = useToast(); - const { setLoading } = useSystemStore(); - const canPreview = useMemo(() => !!sourceId && canView, [canView, sourceId]); + const canPreview = !!sourceId && canView; const icon = useMemo(() => getSourceNameIcon({ sourceId, sourceName }), [sourceId, sourceName]); + const read = getCollectionSourceAndOpen(collectionId); return ( - + { - setLoading(true); - try { - await getFileAndOpen(sourceId as string); - } catch (error) { - toast({ - title: getErrText(error, t('error.fileNotFound')), - status: 'error' - }); - } - setLoading(false); - } + onClick: read } : {})} {...props} diff --git a/projects/app/src/components/core/workflow/Flow/nodes/NodeIfElse/ListItem.tsx b/projects/app/src/components/core/workflow/Flow/nodes/NodeIfElse/ListItem.tsx index 33c8e457476d..550df5d80ce5 100644 --- a/projects/app/src/components/core/workflow/Flow/nodes/NodeIfElse/ListItem.tsx +++ b/projects/app/src/components/core/workflow/Flow/nodes/NodeIfElse/ListItem.tsx @@ -4,11 +4,11 @@ import { DraggableStateSnapshot } from '@fastgpt/web/components/common/DndDrag/index'; import Container from '../../components/Container'; -import { DragHandleIcon, MinusIcon, SmallAddIcon } from '@chakra-ui/icons'; +import { MinusIcon, SmallAddIcon } from '@chakra-ui/icons'; import { IfElseListItemType } from '@fastgpt/global/core/workflow/template/system/ifElse/type'; import MyIcon from '@fastgpt/web/components/common/Icon'; import { ReferenceValueProps } from '@fastgpt/global/core/workflow/type/io'; -import { useTranslation } from 'react-i18next'; +import { useTranslation } from 'next-i18next'; import { ReferSelector, useReference } from '../render/RenderInput/templates/Reference'; import { WorkflowIOValueTypeEnum } from '@fastgpt/global/core/workflow/constants'; import { diff --git a/projects/app/src/components/core/workflow/Flow/nodes/NodeVariableUpdate.tsx b/projects/app/src/components/core/workflow/Flow/nodes/NodeVariableUpdate.tsx index faca0125c30a..ee1534686d24 100644 --- a/projects/app/src/components/core/workflow/Flow/nodes/NodeVariableUpdate.tsx +++ b/projects/app/src/components/core/workflow/Flow/nodes/NodeVariableUpdate.tsx @@ -2,7 +2,7 @@ import React, { useCallback, useMemo } from 'react'; import NodeCard from './render/NodeCard'; import { NodeProps } from 'reactflow'; import { FlowNodeItemType } from '@fastgpt/global/core/workflow/type'; -import { useTranslation } from 'react-i18next'; +import { useTranslation } from 'next-i18next'; import { Box, Button, diff --git a/projects/app/src/pages/api/admin/initv481.ts b/projects/app/src/pages/api/admin/initv481.ts index bfa3894c6bf8..a76661555e20 100644 --- a/projects/app/src/pages/api/admin/initv481.ts +++ b/projects/app/src/pages/api/admin/initv481.ts @@ -3,7 +3,7 @@ import { jsonRes } from '@fastgpt/service/common/response'; import { connectToDatabase } from '@/service/mongo'; import { authCert } from '@fastgpt/service/support/permission/auth/common'; import { PgClient } from '@fastgpt/service/common/vectorStore/pg'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; import { PgDatasetTableName } from '@fastgpt/global/common/vectorStore/constants'; import { connectionMongo } from '@fastgpt/service/common/mongo'; import { addLog } from '@fastgpt/service/common/system/log'; diff --git a/projects/app/src/pages/api/common/file/previewContent.ts b/projects/app/src/pages/api/common/file/previewContent.ts index 42267447d506..ba17ebb7e4a7 100644 --- a/projects/app/src/pages/api/common/file/previewContent.ts +++ b/projects/app/src/pages/api/common/file/previewContent.ts @@ -4,7 +4,7 @@ import type { NextApiResponse } from 'next'; import { jsonRes } from '@fastgpt/service/common/response'; import { authFile } from '@fastgpt/service/support/permission/auth/file'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; import { DatasetSourceReadTypeEnum } from '@fastgpt/global/core/dataset/constants'; import { readDatasetSourceRawText } from '@fastgpt/service/core/dataset/read'; import { ApiRequestProps } from '@fastgpt/service/type/next'; diff --git a/projects/app/src/pages/api/core/ai/token.ts b/projects/app/src/pages/api/core/ai/token.ts index b7c2d4df1105..acace1f6ed2c 100644 --- a/projects/app/src/pages/api/core/ai/token.ts +++ b/projects/app/src/pages/api/core/ai/token.ts @@ -1,5 +1,5 @@ import type { ApiRequestProps, ApiResponseType } from '@fastgpt/service/type/next'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; import { authCert } from '@fastgpt/service/support/permission/auth/common'; import { ChatCompletionMessageParam } from '@fastgpt/global/core/ai/type'; import { countGptMessagesTokens } from '@fastgpt/service/common/string/tiktoken'; diff --git a/projects/app/src/pages/api/core/app/create.ts b/projects/app/src/pages/api/core/app/create.ts index bc68101e73e1..b8056ef7feb8 100644 --- a/projects/app/src/pages/api/core/app/create.ts +++ b/projects/app/src/pages/api/core/app/create.ts @@ -7,7 +7,7 @@ import { authUserNotVisitor } from '@fastgpt/service/support/permission/auth/use import { checkTeamAppLimit } from '@fastgpt/service/support/permission/teamLimit'; import { mongoSessionRun } from '@fastgpt/service/common/mongo/sessionRun'; import { MongoAppVersion } from '@fastgpt/service/core/app/versionSchema'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; async function handler(req: NextApiRequest, res: NextApiResponse) { const { diff --git a/projects/app/src/pages/api/core/app/del.ts b/projects/app/src/pages/api/core/app/del.ts index ff6cdbe67791..842d6603510a 100644 --- a/projects/app/src/pages/api/core/app/del.ts +++ b/projects/app/src/pages/api/core/app/del.ts @@ -6,7 +6,7 @@ import { authApp } from '@fastgpt/service/support/permission/auth/app'; import { MongoChatItem } from '@fastgpt/service/core/chat/chatItemSchema'; import { mongoSessionRun } from '@fastgpt/service/common/mongo/sessionRun'; import { MongoAppVersion } from '@fastgpt/service/core/app/versionSchema'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; async function handler(req: NextApiRequest, res: NextApiResponse) { const { appId } = req.query as { appId: string }; diff --git a/projects/app/src/pages/api/core/app/detail.tsx b/projects/app/src/pages/api/core/app/detail.tsx index 63dcd644b3e5..8f684be5afde 100644 --- a/projects/app/src/pages/api/core/app/detail.tsx +++ b/projects/app/src/pages/api/core/app/detail.tsx @@ -2,7 +2,7 @@ import type { NextApiRequest, NextApiResponse } from 'next'; import { jsonRes } from '@fastgpt/service/common/response'; import { connectToDatabase } from '@/service/mongo'; import { authApp } from '@fastgpt/service/support/permission/auth/app'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; /* 获取我的模型 */ async function handler(req: NextApiRequest, res: NextApiResponse) { diff --git a/projects/app/src/pages/api/core/app/getChatLogs.ts b/projects/app/src/pages/api/core/app/getChatLogs.ts index 1dcbe2d1e646..c35db948c444 100644 --- a/projects/app/src/pages/api/core/app/getChatLogs.ts +++ b/projects/app/src/pages/api/core/app/getChatLogs.ts @@ -7,7 +7,7 @@ import { addDays } from 'date-fns'; import type { GetAppChatLogsParams } from '@/global/core/api/appReq.d'; import { authApp } from '@fastgpt/service/support/permission/auth/app'; import { ChatItemCollectionName } from '@fastgpt/service/core/chat/chatItemSchema'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; async function handler( req: NextApiRequest, diff --git a/projects/app/src/pages/api/core/app/list.ts b/projects/app/src/pages/api/core/app/list.ts index 4ca9f1711994..b905fbb63d93 100644 --- a/projects/app/src/pages/api/core/app/list.ts +++ b/projects/app/src/pages/api/core/app/list.ts @@ -3,7 +3,7 @@ import { MongoApp } from '@fastgpt/service/core/app/schema'; import { mongoRPermission } from '@fastgpt/global/support/permission/utils'; import { AppListItemType } from '@fastgpt/global/core/app/type'; import { authUserRole } from '@fastgpt/service/support/permission/auth/user'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; async function handler(req: NextApiRequest, res: NextApiResponse): Promise { // 凭证校验 diff --git a/projects/app/src/pages/api/core/app/update.ts b/projects/app/src/pages/api/core/app/update.ts index 002f3b03805b..24077adc4dda 100644 --- a/projects/app/src/pages/api/core/app/update.ts +++ b/projects/app/src/pages/api/core/app/update.ts @@ -3,7 +3,7 @@ import { MongoApp } from '@fastgpt/service/core/app/schema'; import type { AppUpdateParams } from '@/global/core/app/api'; import { authApp } from '@fastgpt/service/support/permission/auth/app'; import { beforeUpdateAppFormat } from '@fastgpt/service/core/app/controller'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; /* 获取我的模型 */ async function handler(req: NextApiRequest, res: NextApiResponse) { diff --git a/projects/app/src/pages/api/core/app/version/list.ts b/projects/app/src/pages/api/core/app/version/list.ts index e213b6e940a3..b4d82dedc5d3 100644 --- a/projects/app/src/pages/api/core/app/version/list.ts +++ b/projects/app/src/pages/api/core/app/version/list.ts @@ -1,5 +1,5 @@ import type { NextApiRequest, NextApiResponse } from 'next'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; import { MongoAppVersion } from '@fastgpt/service/core/app/versionSchema'; import { PaginationProps, PaginationResponse } from '@fastgpt/web/common/fetch/type'; import { AppVersionSchemaType } from '@fastgpt/global/core/app/version'; diff --git a/projects/app/src/pages/api/core/app/version/publish.ts b/projects/app/src/pages/api/core/app/version/publish.ts index e921b8e80ae4..af3234ba6152 100644 --- a/projects/app/src/pages/api/core/app/version/publish.ts +++ b/projects/app/src/pages/api/core/app/version/publish.ts @@ -1,5 +1,5 @@ import type { NextApiRequest, NextApiResponse } from 'next'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; import { authApp } from '@fastgpt/service/support/permission/auth/app'; import { MongoAppVersion } from '@fastgpt/service/core/app/versionSchema'; import { mongoSessionRun } from '@fastgpt/service/common/mongo/sessionRun'; diff --git a/projects/app/src/pages/api/core/app/version/revert.ts b/projects/app/src/pages/api/core/app/version/revert.ts index 0b5d1efcbd7e..f6069937d5da 100644 --- a/projects/app/src/pages/api/core/app/version/revert.ts +++ b/projects/app/src/pages/api/core/app/version/revert.ts @@ -1,5 +1,5 @@ import type { NextApiRequest, NextApiResponse } from 'next'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; import { authApp } from '@fastgpt/service/support/permission/auth/app'; import { MongoAppVersion } from '@fastgpt/service/core/app/versionSchema'; import { mongoSessionRun } from '@fastgpt/service/common/mongo/sessionRun'; diff --git a/projects/app/src/pages/api/core/chat/init.ts b/projects/app/src/pages/api/core/chat/init.ts index 08e3ff796c08..1345fa678351 100644 --- a/projects/app/src/pages/api/core/chat/init.ts +++ b/projects/app/src/pages/api/core/chat/init.ts @@ -9,7 +9,7 @@ import { getChatItems } from '@fastgpt/service/core/chat/controller'; import { ChatErrEnum } from '@fastgpt/global/common/error/code/chat'; import { DispatchNodeResponseKeyEnum } from '@fastgpt/global/core/workflow/runtime/constants'; import { getAppLatestVersion } from '@fastgpt/service/core/app/controller'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; async function handler( req: NextApiRequest, diff --git a/projects/app/src/pages/api/core/dataset/allDataset.ts b/projects/app/src/pages/api/core/dataset/allDataset.ts index 2440dda8303c..c2192a15e428 100644 --- a/projects/app/src/pages/api/core/dataset/allDataset.ts +++ b/projects/app/src/pages/api/core/dataset/allDataset.ts @@ -5,7 +5,7 @@ import type { DatasetSimpleItemType } from '@fastgpt/global/core/dataset/type.d' import { mongoRPermission } from '@fastgpt/global/support/permission/utils'; import { authUserRole } from '@fastgpt/service/support/permission/auth/user'; import { DatasetTypeEnum } from '@fastgpt/global/core/dataset/constants'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; /* get all dataset by teamId or tmbId */ async function handler( diff --git a/projects/app/src/pages/api/core/dataset/collection/create/csvTable.ts b/projects/app/src/pages/api/core/dataset/collection/create/csvTable.ts index 3f12b1492a0a..a3768e9e0f90 100644 --- a/projects/app/src/pages/api/core/dataset/collection/create/csvTable.ts +++ b/projects/app/src/pages/api/core/dataset/collection/create/csvTable.ts @@ -17,8 +17,6 @@ import { pushDataListToTrainingQueue } from '@fastgpt/service/core/dataset/train import { createTrainingUsage } from '@fastgpt/service/support/wallet/usage/controller'; import { UsageSourceEnum } from '@fastgpt/global/support/wallet/usage/constants'; import { getLLMModel, getVectorModel } from '@fastgpt/service/core/ai/model'; -import { parseCsvTable2Chunks } from '@fastgpt/service/core/dataset/training/utils'; -import { startTrainingQueue } from '@/service/core/dataset/training/utils'; import { rawText2Chunks } from '@fastgpt/service/core/dataset/read'; export default async function handler(req: NextApiRequest, res: NextApiResponse) { @@ -106,8 +104,6 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse< return collectionId; }); - startTrainingQueue(true); - jsonRes(res); } catch (error) { jsonRes(res, { diff --git a/projects/app/src/pages/api/core/dataset/collection/create/file.ts b/projects/app/src/pages/api/core/dataset/collection/create/file.ts deleted file mode 100644 index 268510560a6c..000000000000 --- a/projects/app/src/pages/api/core/dataset/collection/create/file.ts +++ /dev/null @@ -1,153 +0,0 @@ -import type { NextApiRequest, NextApiResponse } from 'next'; -import { jsonRes } from '@fastgpt/service/common/response'; -import { connectToDatabase } from '@/service/mongo'; -import { readFileContentFromMongo } from '@fastgpt/service/common/file/gridfs/controller'; -import { authDataset } from '@fastgpt/service/support/permission/auth/dataset'; -import { FileIdCreateDatasetCollectionParams } from '@fastgpt/global/core/dataset/api'; -import { createOneCollection } from '@fastgpt/service/core/dataset/collection/controller'; -import { - DatasetCollectionTypeEnum, - TrainingModeEnum -} from '@fastgpt/global/core/dataset/constants'; -import { BucketNameEnum } from '@fastgpt/global/common/file/constants'; -import { mongoSessionRun } from '@fastgpt/service/common/mongo/sessionRun'; -import { MongoImage } from '@fastgpt/service/common/file/image/schema'; -import { splitText2Chunks } from '@fastgpt/global/common/string/textSplitter'; -import { checkDatasetLimit } from '@fastgpt/service/support/permission/teamLimit'; -import { predictDataLimitLength } from '@fastgpt/global/core/dataset/utils'; -import { pushDataListToTrainingQueue } from '@fastgpt/service/core/dataset/training/controller'; -import { createTrainingUsage } from '@fastgpt/service/support/wallet/usage/controller'; -import { UsageSourceEnum } from '@fastgpt/global/support/wallet/usage/constants'; -import { getLLMModel, getVectorModel } from '@fastgpt/service/core/ai/model'; -import { hashStr } from '@fastgpt/global/common/string/tools'; -import { startTrainingQueue } from '@/service/core/dataset/training/utils'; -import { MongoRawTextBuffer } from '@fastgpt/service/common/buffer/rawText/schema'; -import { rawText2Chunks } from '@fastgpt/service/core/dataset/read'; - -export default async function handler(req: NextApiRequest, res: NextApiResponse) { - const { - fileId, - trainingType = TrainingModeEnum.chunk, - chunkSize = 512, - chunkSplitter, - qaPrompt, - ...body - } = req.body as FileIdCreateDatasetCollectionParams; - - try { - await connectToDatabase(); - - const { teamId, tmbId, dataset } = await authDataset({ - req, - authToken: true, - authApiKey: true, - per: 'w', - datasetId: body.datasetId - }); - - // 1. read file - const { rawText, filename } = await readFileContentFromMongo({ - teamId, - bucketName: BucketNameEnum.dataset, - fileId - }); - // 2. split chunks - const chunks = rawText2Chunks({ - rawText, - chunkLen: chunkSize, - overlapRatio: trainingType === TrainingModeEnum.chunk ? 0.2 : 0, - customReg: chunkSplitter ? [chunkSplitter] : [] - }); - - // 3. auth limit - await checkDatasetLimit({ - teamId, - insertLen: predictDataLimitLength(trainingType, chunks) - }); - - await mongoSessionRun(async (session) => { - // 4. create collection - const { _id: collectionId } = await createOneCollection({ - ...body, - teamId, - tmbId, - type: DatasetCollectionTypeEnum.file, - name: filename, - fileId, - metadata: { - relatedImgId: fileId - }, - - // special metadata - trainingType, - chunkSize, - chunkSplitter, - qaPrompt, - - hashRawText: hashStr(rawText), - rawTextLength: rawText.length, - session - }); - - // 5. create training bill - const { billId } = await createTrainingUsage({ - teamId, - tmbId, - appName: filename, - billSource: UsageSourceEnum.training, - vectorModel: getVectorModel(dataset.vectorModel)?.name, - agentModel: getLLMModel(dataset.agentModel)?.name, - session - }); - - // 6. insert to training queue - await pushDataListToTrainingQueue({ - teamId, - tmbId, - datasetId: dataset._id, - collectionId, - agentModel: dataset.agentModel, - vectorModel: dataset.vectorModel, - trainingMode: trainingType, - prompt: qaPrompt, - billId, - data: chunks.map((item, index) => ({ - ...item, - chunkIndex: index - })), - session - }); - - // 7. remove related image ttl - await MongoImage.updateMany( - { - teamId, - 'metadata.relatedId': fileId - }, - { - // Remove expiredTime to avoid ttl expiration - $unset: { - expiredTime: 1 - } - }, - { - session - } - ); - - return collectionId; - }); - - // remove buffer - await MongoRawTextBuffer.deleteOne({ sourceId: fileId }); - - startTrainingQueue(true); - - jsonRes(res); - } catch (error) { - jsonRes(res, { - code: 500, - error - }); - } -} diff --git a/projects/app/src/pages/api/core/dataset/collection/create/fileId.ts b/projects/app/src/pages/api/core/dataset/collection/create/fileId.ts new file mode 100644 index 000000000000..b9c3320104f4 --- /dev/null +++ b/projects/app/src/pages/api/core/dataset/collection/create/fileId.ts @@ -0,0 +1,149 @@ +import type { NextApiResponse } from 'next'; +import { jsonRes } from '@fastgpt/service/common/response'; +import { connectToDatabase } from '@/service/mongo'; +import { readFileContentFromMongo } from '@fastgpt/service/common/file/gridfs/controller'; +import { authDataset } from '@fastgpt/service/support/permission/auth/dataset'; +import { FileIdCreateDatasetCollectionParams } from '@fastgpt/global/core/dataset/api'; +import { createOneCollection } from '@fastgpt/service/core/dataset/collection/controller'; +import { + DatasetCollectionTypeEnum, + TrainingModeEnum +} from '@fastgpt/global/core/dataset/constants'; +import { BucketNameEnum } from '@fastgpt/global/common/file/constants'; +import { mongoSessionRun } from '@fastgpt/service/common/mongo/sessionRun'; +import { MongoImage } from '@fastgpt/service/common/file/image/schema'; +import { checkDatasetLimit } from '@fastgpt/service/support/permission/teamLimit'; +import { predictDataLimitLength } from '@fastgpt/global/core/dataset/utils'; +import { pushDataListToTrainingQueue } from '@fastgpt/service/core/dataset/training/controller'; +import { createTrainingUsage } from '@fastgpt/service/support/wallet/usage/controller'; +import { UsageSourceEnum } from '@fastgpt/global/support/wallet/usage/constants'; +import { getLLMModel, getVectorModel } from '@fastgpt/service/core/ai/model'; +import { hashStr } from '@fastgpt/global/common/string/tools'; +import { MongoRawTextBuffer } from '@fastgpt/service/common/buffer/rawText/schema'; +import { rawText2Chunks } from '@fastgpt/service/core/dataset/read'; +import { NextAPI } from '@/service/middleware/entry'; +import { ApiRequestProps } from '@fastgpt/service/type/next'; + +async function handler( + req: ApiRequestProps, + res: NextApiResponse +) { + const { + fileId, + trainingType = TrainingModeEnum.chunk, + chunkSize = 512, + chunkSplitter, + qaPrompt, + ...body + } = req.body; + + await connectToDatabase(); + + const { teamId, tmbId, dataset } = await authDataset({ + req, + authToken: true, + authApiKey: true, + per: 'w', + datasetId: body.datasetId + }); + + // 1. read file + const { rawText, filename } = await readFileContentFromMongo({ + teamId, + bucketName: BucketNameEnum.dataset, + fileId + }); + // 2. split chunks + const chunks = rawText2Chunks({ + rawText, + chunkLen: chunkSize, + overlapRatio: trainingType === TrainingModeEnum.chunk ? 0.2 : 0, + customReg: chunkSplitter ? [chunkSplitter] : [] + }); + + // 3. auth limit + await checkDatasetLimit({ + teamId, + insertLen: predictDataLimitLength(trainingType, chunks) + }); + + await mongoSessionRun(async (session) => { + // 4. create collection + const { _id: collectionId } = await createOneCollection({ + ...body, + teamId, + tmbId, + type: DatasetCollectionTypeEnum.file, + name: filename, + fileId, + metadata: { + relatedImgId: fileId + }, + + // special metadata + trainingType, + chunkSize, + chunkSplitter, + qaPrompt, + + hashRawText: hashStr(rawText), + rawTextLength: rawText.length, + session + }); + + // 5. create training bill + const { billId } = await createTrainingUsage({ + teamId, + tmbId, + appName: filename, + billSource: UsageSourceEnum.training, + vectorModel: getVectorModel(dataset.vectorModel)?.name, + agentModel: getLLMModel(dataset.agentModel)?.name, + session + }); + + // 6. insert to training queue + await pushDataListToTrainingQueue({ + teamId, + tmbId, + datasetId: dataset._id, + collectionId, + agentModel: dataset.agentModel, + vectorModel: dataset.vectorModel, + trainingMode: trainingType, + prompt: qaPrompt, + billId, + data: chunks.map((item, index) => ({ + ...item, + chunkIndex: index + })), + session + }); + + // 7. remove related image ttl + await MongoImage.updateMany( + { + teamId, + 'metadata.relatedId': fileId + }, + { + // Remove expiredTime to avoid ttl expiration + $unset: { + expiredTime: 1 + } + }, + { + session + } + ); + + return collectionId; + }); + + // remove buffer + await MongoRawTextBuffer.deleteOne({ sourceId: fileId }); + + jsonRes(res); +} + +export default NextAPI(handler); diff --git a/projects/app/src/pages/api/core/dataset/collection/create/localFile.ts b/projects/app/src/pages/api/core/dataset/collection/create/localFile.ts new file mode 100644 index 000000000000..933e28fd7c78 --- /dev/null +++ b/projects/app/src/pages/api/core/dataset/collection/create/localFile.ts @@ -0,0 +1,186 @@ +import type { NextApiRequest, NextApiResponse } from 'next'; +import { jsonRes } from '@fastgpt/service/common/response'; +import { uploadFile } from '@fastgpt/service/common/file/gridfs/controller'; +import { getUploadModel } from '@fastgpt/service/common/file/multer'; +import { authDataset } from '@fastgpt/service/support/permission/auth/dataset'; +import { FileCreateDatasetCollectionParams } from '@fastgpt/global/core/dataset/api'; +import { removeFilesByPaths } from '@fastgpt/service/common/file/utils'; +import { createOneCollection } from '@fastgpt/service/core/dataset/collection/controller'; +import { + DatasetCollectionTypeEnum, + TrainingModeEnum +} from '@fastgpt/global/core/dataset/constants'; +import { getNanoid, hashStr } from '@fastgpt/global/common/string/tools'; +import { splitText2Chunks } from '@fastgpt/global/common/string/textSplitter'; +import { checkDatasetLimit } from '@fastgpt/service/support/permission/teamLimit'; +import { predictDataLimitLength } from '@fastgpt/global/core/dataset/utils'; +import { pushDataListToTrainingQueue } from '@fastgpt/service/core/dataset/training/controller'; +import { createTrainingUsage } from '@fastgpt/service/support/wallet/usage/controller'; +import { UsageSourceEnum } from '@fastgpt/global/support/wallet/usage/constants'; +import { getDatasetModel, getVectorModel } from '@fastgpt/service/core/ai/model'; +import { BucketNameEnum } from '@fastgpt/global/common/file/constants'; +import { mongoSessionRun } from '@fastgpt/service/common/mongo/sessionRun'; +import { MongoImage } from '@fastgpt/service/common/file/image/schema'; +import { readRawTextByLocalFile } from '@fastgpt/service/common/file/read/utils'; +import { NextAPI } from '@/service/middleware/entry'; + +async function handler(req: NextApiRequest, res: NextApiResponse) { + /** + * Creates the multer uploader + */ + const upload = getUploadModel({ + maxSize: (global.feConfigs?.uploadFileMaxSize || 500) * 1024 * 1024 + }); + let filePaths: string[] = []; + + try { + const { file, data, bucketName } = await upload.doUpload( + req, + res, + BucketNameEnum.dataset + ); + filePaths = [file.path]; + + if (!file || !bucketName) { + throw new Error('file is empty'); + } + + const { teamId, tmbId, dataset } = await authDataset({ + req, + authApiKey: true, + per: 'w', + datasetId: data.datasetId + }); + + const { + trainingType = TrainingModeEnum.chunk, + chunkSize = 512, + chunkSplitter, + qaPrompt + } = data; + const { fileMetadata, collectionMetadata, ...collectionData } = data; + const collectionName = file.originalname; + + const relatedImgId = getNanoid(); + + // 1. read file + const { rawText } = await readRawTextByLocalFile({ + teamId, + path: file.path, + metadata: { + ...fileMetadata, + relatedId: relatedImgId + } + }); + + // 2. upload file + const fileId = await uploadFile({ + teamId, + tmbId, + bucketName, + path: file.path, + filename: file.originalname, + contentType: file.mimetype, + metadata: fileMetadata + }); + + // 3. delete tmp file + removeFilesByPaths(filePaths); + + // 4. split raw text to chunks + const { chunks } = splitText2Chunks({ + text: rawText, + chunkLen: chunkSize, + overlapRatio: trainingType === TrainingModeEnum.chunk ? 0.2 : 0, + customReg: chunkSplitter ? [chunkSplitter] : [] + }); + + // 5. check dataset limit + await checkDatasetLimit({ + teamId, + insertLen: predictDataLimitLength(trainingType, chunks) + }); + + // 6. create collection and training bill + const { collectionId, insertResults } = await mongoSessionRun(async (session) => { + const { _id: collectionId } = await createOneCollection({ + ...collectionData, + name: collectionName, + teamId, + tmbId, + type: DatasetCollectionTypeEnum.file, + fileId, + rawTextLength: rawText.length, + hashRawText: hashStr(rawText), + metadata: { + ...collectionMetadata, + relatedImgId + }, + session + }); + const { billId } = await createTrainingUsage({ + teamId, + tmbId, + appName: collectionName, + billSource: UsageSourceEnum.training, + vectorModel: getVectorModel(dataset.vectorModel)?.name, + agentModel: getDatasetModel(dataset.agentModel)?.name + }); + + // 7. push chunks to training queue + const insertResults = await pushDataListToTrainingQueue({ + teamId, + tmbId, + datasetId: dataset._id, + collectionId, + agentModel: dataset.agentModel, + vectorModel: dataset.vectorModel, + trainingMode: trainingType, + prompt: qaPrompt, + billId, + data: chunks.map((text, index) => ({ + q: text, + chunkIndex: index + })) + }); + + // 8. remove image expired time + await MongoImage.updateMany( + { + teamId, + 'metadata.relatedId': relatedImgId + }, + { + // Remove expiredTime to avoid ttl expiration + $unset: { + expiredTime: 1 + } + }, + { + session + } + ); + + return { + collectionId, + insertResults + }; + }); + + jsonRes(res, { + data: { collectionId, results: insertResults } + }); + } catch (error) { + removeFilesByPaths(filePaths); + + return Promise.reject(error); + } +} + +export const config = { + api: { + bodyParser: false + } +}; + +export default NextAPI(handler); diff --git a/projects/app/src/pages/api/core/dataset/collection/detail.ts b/projects/app/src/pages/api/core/dataset/collection/detail.ts index 8c3aa084aa2c..c9115dbfe6b2 100644 --- a/projects/app/src/pages/api/core/dataset/collection/detail.ts +++ b/projects/app/src/pages/api/core/dataset/collection/detail.ts @@ -8,6 +8,7 @@ import { authDatasetCollection } from '@fastgpt/service/support/permission/auth/ import { DatasetCollectionItemType } from '@fastgpt/global/core/dataset/type'; import { BucketNameEnum } from '@fastgpt/global/common/file/constants'; import { getFileById } from '@fastgpt/service/common/file/gridfs/controller'; +import { getCollectionSourceData } from '@fastgpt/global/core/dataset/collection/utils'; export default async function handler(req: NextApiRequest, res: NextApiResponse) { try { @@ -36,8 +37,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse< data: { ...collection, canWrite, - sourceName: collection?.name, - sourceId: collection?.fileId || collection?.rawLink, + ...getCollectionSourceData(collection), file } }); diff --git a/projects/app/src/pages/api/core/dataset/collection/read.ts b/projects/app/src/pages/api/core/dataset/collection/read.ts new file mode 100644 index 000000000000..79e2c4b4beb6 --- /dev/null +++ b/projects/app/src/pages/api/core/dataset/collection/read.ts @@ -0,0 +1,66 @@ +import type { ApiRequestProps, ApiResponseType } from '@fastgpt/service/type/next'; +import { NextAPI } from '@/service/middleware/entry'; +import { authDatasetCollection } from '@fastgpt/service/support/permission/auth/dataset'; +import { DatasetCollectionTypeEnum } from '@fastgpt/global/core/dataset/constants'; +import { createFileToken } from '@fastgpt/service/support/permission/controller'; +import { BucketNameEnum, ReadFileBaseUrl } from '@fastgpt/global/common/file/constants'; + +export type readCollectionSourceQuery = { + collectionId: string; +}; + +export type readCollectionSourceBody = {}; + +export type readCollectionSourceResponse = { + type: 'url'; + value: string; +}; + +async function handler( + req: ApiRequestProps, + res: ApiResponseType +): Promise { + const { collection, teamId, tmbId } = await authDatasetCollection({ + req, + authToken: true, + authApiKey: true, + collectionId: req.query.collectionId, + per: 'r' + }); + + const sourceUrl = await (async () => { + if (collection.type === DatasetCollectionTypeEnum.file && collection.fileId) { + const token = await createFileToken({ + bucketName: BucketNameEnum.dataset, + teamId, + tmbId, + fileId: collection.fileId + }); + + return `${ReadFileBaseUrl}?token=${token}`; + } + if (collection.type === DatasetCollectionTypeEnum.link && collection.rawLink) { + return collection.rawLink; + } + if (collection.type === DatasetCollectionTypeEnum.externalFile) { + if (collection.externalFileId && collection.datasetId.externalReadUrl) { + return collection.datasetId.externalReadUrl.replace( + '{{fileId}}', + collection.externalFileId + ); + } + if (collection.externalFileUrl) { + return collection.externalFileUrl; + } + } + + return ''; + })(); + + return { + type: 'url', + value: sourceUrl + }; +} + +export default NextAPI(handler); diff --git a/projects/app/src/pages/api/core/dataset/data/delete.ts b/projects/app/src/pages/api/core/dataset/data/delete.ts index 452dbb2e2610..b73cc1cf070b 100644 --- a/projects/app/src/pages/api/core/dataset/data/delete.ts +++ b/projects/app/src/pages/api/core/dataset/data/delete.ts @@ -2,7 +2,7 @@ import type { NextApiRequest, NextApiResponse } from 'next'; import { jsonRes } from '@fastgpt/service/common/response'; import { authDatasetData } from '@/service/support/permission/auth/dataset'; import { deleteDatasetData } from '@/service/core/dataset/data/controller'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; async function handler(req: NextApiRequest, res: NextApiResponse) { const { id: dataId } = req.query as { diff --git a/projects/app/src/pages/api/core/dataset/data/detail.ts b/projects/app/src/pages/api/core/dataset/data/detail.ts index c3b88ffd4c9e..41152874e5d2 100644 --- a/projects/app/src/pages/api/core/dataset/data/detail.ts +++ b/projects/app/src/pages/api/core/dataset/data/detail.ts @@ -2,7 +2,7 @@ import type { NextApiRequest, NextApiResponse } from 'next'; import { jsonRes } from '@fastgpt/service/common/response'; import { connectToDatabase } from '@/service/mongo'; import { authDatasetData } from '@/service/support/permission/auth/dataset'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; export type Response = { id: string; diff --git a/projects/app/src/pages/api/core/dataset/data/insertData.ts b/projects/app/src/pages/api/core/dataset/data/insertData.ts index 07ac8141d7d5..7423bc0aceb3 100644 --- a/projects/app/src/pages/api/core/dataset/data/insertData.ts +++ b/projects/app/src/pages/api/core/dataset/data/insertData.ts @@ -15,7 +15,7 @@ import { pushGenerateVectorUsage } from '@/service/support/wallet/usage/push'; import { InsertOneDatasetDataProps } from '@/global/core/dataset/api'; import { simpleText } from '@fastgpt/global/common/string/tools'; import { checkDatasetLimit } from '@fastgpt/service/support/permission/teamLimit'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; async function handler(req: NextApiRequest, res: NextApiResponse) { const { collectionId, q, a, indexes } = req.body as InsertOneDatasetDataProps; diff --git a/projects/app/src/pages/api/core/dataset/data/list.ts b/projects/app/src/pages/api/core/dataset/data/list.ts index 776218616d33..c1ff94d91256 100644 --- a/projects/app/src/pages/api/core/dataset/data/list.ts +++ b/projects/app/src/pages/api/core/dataset/data/list.ts @@ -7,7 +7,7 @@ import { authDatasetCollection } from '@fastgpt/service/support/permission/auth/ import { MongoDatasetData } from '@fastgpt/service/core/dataset/data/schema'; import { PagingData } from '@/types'; import { replaceRegChars } from '@fastgpt/global/common/string/tools'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; async function handler(req: NextApiRequest, res: NextApiResponse) { let { diff --git a/projects/app/src/pages/api/core/dataset/data/pushData.ts b/projects/app/src/pages/api/core/dataset/data/pushData.ts index 5eb9ca084968..58ca4b994849 100644 --- a/projects/app/src/pages/api/core/dataset/data/pushData.ts +++ b/projects/app/src/pages/api/core/dataset/data/pushData.ts @@ -1,7 +1,6 @@ /* push data to training queue */ import type { NextApiRequest, NextApiResponse } from 'next'; import { jsonRes } from '@fastgpt/service/common/response'; -import { connectToDatabase } from '@/service/mongo'; import type { PushDatasetDataProps, PushDatasetDataResponse @@ -10,7 +9,7 @@ import { authDatasetCollection } from '@fastgpt/service/support/permission/auth/ import { checkDatasetLimit } from '@fastgpt/service/support/permission/teamLimit'; import { predictDataLimitLength } from '@fastgpt/global/core/dataset/utils'; import { pushDataListToTrainingQueue } from '@fastgpt/service/core/dataset/training/controller'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; async function handler(req: NextApiRequest, res: NextApiResponse) { const body = req.body as PushDatasetDataProps; diff --git a/projects/app/src/pages/api/core/dataset/data/update.ts b/projects/app/src/pages/api/core/dataset/data/update.ts index 2237988eae44..c70999263ace 100644 --- a/projects/app/src/pages/api/core/dataset/data/update.ts +++ b/projects/app/src/pages/api/core/dataset/data/update.ts @@ -6,7 +6,7 @@ import { authDatasetData } from '@/service/support/permission/auth/dataset'; import { pushGenerateVectorUsage } from '@/service/support/wallet/usage/push'; import { UpdateDatasetDataProps } from '@/global/core/dataset/api'; import { checkDatasetLimit } from '@fastgpt/service/support/permission/teamLimit'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; async function handler(req: NextApiRequest, res: NextApiResponse) { const { id, q = '', a, indexes = [] } = req.body as UpdateDatasetDataProps; diff --git a/projects/app/src/pages/api/core/dataset/exportAll.ts b/projects/app/src/pages/api/core/dataset/exportAll.ts index 1e887794fc8d..2ac2777b8373 100644 --- a/projects/app/src/pages/api/core/dataset/exportAll.ts +++ b/projects/app/src/pages/api/core/dataset/exportAll.ts @@ -8,7 +8,7 @@ import { checkExportDatasetLimit, updateExportDatasetLimit } from '@fastgpt/service/support/user/utils'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; async function handler(req: NextApiRequest, res: NextApiResponse) { let { datasetId } = req.query as { diff --git a/projects/app/src/pages/api/core/dataset/file/getPreviewChunks.ts b/projects/app/src/pages/api/core/dataset/file/getPreviewChunks.ts index 1f6cf5181ffd..fe42080b8372 100644 --- a/projects/app/src/pages/api/core/dataset/file/getPreviewChunks.ts +++ b/projects/app/src/pages/api/core/dataset/file/getPreviewChunks.ts @@ -3,7 +3,7 @@ import { authFile } from '@fastgpt/service/support/permission/auth/file'; import { DatasetSourceReadTypeEnum } from '@fastgpt/global/core/dataset/constants'; import { rawText2Chunks, readDatasetSourceRawText } from '@fastgpt/service/core/dataset/read'; import { authCert } from '@fastgpt/service/support/permission/auth/common'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; import { ApiRequestProps } from '@fastgpt/service/type/next'; export type PostPreviewFilesChunksProps = { diff --git a/projects/app/src/pages/api/core/dataset/file/getPreviewUrl.ts b/projects/app/src/pages/api/core/dataset/file/getPreviewUrl.ts deleted file mode 100644 index db65d8df5776..000000000000 --- a/projects/app/src/pages/api/core/dataset/file/getPreviewUrl.ts +++ /dev/null @@ -1,36 +0,0 @@ -import type { NextApiRequest, NextApiResponse } from 'next'; -import { jsonRes } from '@fastgpt/service/common/response'; -import { connectToDatabase } from '@/service/mongo'; -import { authDatasetFile } from '@fastgpt/service/support/permission/auth/dataset'; -import { createFileToken } from '@fastgpt/service/support/permission/controller'; -import { BucketNameEnum, ReadFileBaseUrl } from '@fastgpt/global/common/file/constants'; - -export default async function handler(req: NextApiRequest, res: NextApiResponse) { - try { - await connectToDatabase(); - - const { fileId } = req.query as { fileId: string }; - - if (!fileId) { - throw new Error('fileId is empty'); - } - - const { teamId, tmbId } = await authDatasetFile({ req, authToken: true, fileId, per: 'r' }); - - const token = await createFileToken({ - bucketName: BucketNameEnum.dataset, - teamId, - tmbId, - fileId - }); - - jsonRes(res, { - data: `${ReadFileBaseUrl}?token=${token}` - }); - } catch (error) { - jsonRes(res, { - code: 500, - error - }); - } -} diff --git a/projects/app/src/pages/api/core/dataset/list.ts b/projects/app/src/pages/api/core/dataset/list.ts index f31f7899cbe2..8e7ce7609f2d 100644 --- a/projects/app/src/pages/api/core/dataset/list.ts +++ b/projects/app/src/pages/api/core/dataset/list.ts @@ -6,7 +6,7 @@ import { MongoDataset } from '@fastgpt/service/core/dataset/schema'; import { mongoRPermission } from '@fastgpt/global/support/permission/utils'; import { authUserRole } from '@fastgpt/service/support/permission/auth/user'; import { getVectorModel } from '@fastgpt/service/core/ai/model'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; async function handler(req: NextApiRequest, res: NextApiResponse) { const { parentId, type } = req.query as { parentId?: string; type?: DatasetTypeEnum }; diff --git a/projects/app/src/pages/api/core/dataset/searchTest.ts b/projects/app/src/pages/api/core/dataset/searchTest.ts index fa07e8138f74..bf7bf42e2406 100644 --- a/projects/app/src/pages/api/core/dataset/searchTest.ts +++ b/projects/app/src/pages/api/core/dataset/searchTest.ts @@ -12,7 +12,7 @@ import { checkTeamAIPoints, checkTeamReRankPermission } from '@fastgpt/service/support/permission/teamLimit'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; async function handler(req: NextApiRequest, res: NextApiResponse) { const { diff --git a/projects/app/src/pages/api/core/dataset/training/getDatasetTrainingQueue.ts b/projects/app/src/pages/api/core/dataset/training/getDatasetTrainingQueue.ts index b52f5a59a833..c7e4b8586e87 100644 --- a/projects/app/src/pages/api/core/dataset/training/getDatasetTrainingQueue.ts +++ b/projects/app/src/pages/api/core/dataset/training/getDatasetTrainingQueue.ts @@ -1,5 +1,5 @@ import type { ApiRequestProps, ApiResponseType } from '@fastgpt/service/type/next'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; import { authDataset } from '@fastgpt/service/support/permission/auth/dataset'; import { MongoDatasetData } from '@fastgpt/service/core/dataset/data/schema'; import { MongoDatasetTraining } from '@fastgpt/service/core/dataset/training/schema'; diff --git a/projects/app/src/pages/api/core/dataset/training/rebuildEmbedding.ts b/projects/app/src/pages/api/core/dataset/training/rebuildEmbedding.ts index 5d29104824a7..f33cea69c922 100644 --- a/projects/app/src/pages/api/core/dataset/training/rebuildEmbedding.ts +++ b/projects/app/src/pages/api/core/dataset/training/rebuildEmbedding.ts @@ -1,4 +1,4 @@ -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; import { authDataset } from '@fastgpt/service/support/permission/auth/dataset'; import { mongoSessionRun } from '@fastgpt/service/common/mongo/sessionRun'; import { MongoDataset } from '@fastgpt/service/core/dataset/schema'; diff --git a/projects/app/src/pages/api/core/workflow/debug.ts b/projects/app/src/pages/api/core/workflow/debug.ts index 63c5096e7659..ae0c3cda4b20 100644 --- a/projects/app/src/pages/api/core/workflow/debug.ts +++ b/projects/app/src/pages/api/core/workflow/debug.ts @@ -7,7 +7,7 @@ import { authCert } from '@fastgpt/service/support/permission/auth/common'; import { getUserChatInfoAndAuthTeamPoints } from '@/service/support/permission/auth/team'; import { PostWorkflowDebugProps, PostWorkflowDebugResponse } from '@/global/core/workflow/api'; import { authPluginCrud } from '@fastgpt/service/support/permission/auth/plugin'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; async function handler( req: NextApiRequest, diff --git a/projects/app/src/pages/api/support/user/team/limit/exportDatasetLimit.ts b/projects/app/src/pages/api/support/user/team/limit/exportDatasetLimit.ts index 486db7f3f7e5..086a3fb07000 100644 --- a/projects/app/src/pages/api/support/user/team/limit/exportDatasetLimit.ts +++ b/projects/app/src/pages/api/support/user/team/limit/exportDatasetLimit.ts @@ -1,7 +1,7 @@ import type { NextApiRequest, NextApiResponse } from 'next'; import { authDataset } from '@fastgpt/service/support/permission/auth/dataset'; import { checkExportDatasetLimit } from '@fastgpt/service/support/user/utils'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; async function handler(req: NextApiRequest, res: NextApiResponse) { const { datasetId } = req.query as { diff --git a/projects/app/src/pages/api/v1/audio/transcriptions.ts b/projects/app/src/pages/api/v1/audio/transcriptions.ts index fe1a2192161c..6275a03a5c60 100644 --- a/projects/app/src/pages/api/v1/audio/transcriptions.ts +++ b/projects/app/src/pages/api/v1/audio/transcriptions.ts @@ -9,7 +9,7 @@ import { authChatCert } from '@/service/support/permission/auth/chat'; import { MongoApp } from '@fastgpt/service/core/app/schema'; import { getGuideModule, splitGuideModule } from '@fastgpt/global/core/workflow/utils'; import { OutLinkChatAuthProps } from '@fastgpt/global/support/permission/chat'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; const upload = getUploadModel({ maxSize: 2 diff --git a/projects/app/src/pages/api/v1/chat/completions.ts b/projects/app/src/pages/api/v1/chat/completions.ts index 179b9143bc73..96e3b8ca41ed 100644 --- a/projects/app/src/pages/api/v1/chat/completions.ts +++ b/projects/app/src/pages/api/v1/chat/completions.ts @@ -44,7 +44,7 @@ import { DispatchNodeResponseKeyEnum } from '@fastgpt/global/core/workflow/runti import { dispatchWorkFlowV1 } from '@fastgpt/service/core/workflow/dispatchV1'; import { setEntryEntries } from '@fastgpt/service/core/workflow/dispatchV1/utils'; -import { NextAPI } from '@/service/middle/entry'; +import { NextAPI } from '@/service/middleware/entry'; import { getAppLatestVersion } from '@fastgpt/service/core/app/controller'; type FastGptWebChatProps = { diff --git a/projects/app/src/pages/dataset/detail/components/CollectionCard/Header.tsx b/projects/app/src/pages/dataset/detail/components/CollectionCard/Header.tsx index 425c8540915e..e085e8055123 100644 --- a/projects/app/src/pages/dataset/detail/components/CollectionCard/Header.tsx +++ b/projects/app/src/pages/dataset/detail/components/CollectionCard/Header.tsx @@ -84,7 +84,7 @@ const Header = ({}: {}) => { ...props }: { name: string; - type: `${DatasetCollectionTypeEnum}`; + type: DatasetCollectionTypeEnum; callback?: (id: string) => void; trainingType?: TrainingModeEnum; rawLink?: string; diff --git a/projects/app/src/pages/dataset/detail/components/DataCard.tsx b/projects/app/src/pages/dataset/detail/components/DataCard.tsx index e7a13e48e3bc..fae61fd3d334 100644 --- a/projects/app/src/pages/dataset/detail/components/DataCard.tsx +++ b/projects/app/src/pages/dataset/detail/components/DataCard.tsx @@ -38,16 +38,14 @@ import { TabEnum } from '..'; import { useUserStore } from '@/web/support/user/useUserStore'; import { TeamMemberRoleEnum } from '@fastgpt/global/support/user/team/constant'; import { useSystemStore } from '@/web/common/system/useSystemStore'; -import { - DatasetCollectionTypeMap, - TrainingModeEnum, - TrainingTypeMap -} from '@fastgpt/global/core/dataset/constants'; +import { DatasetCollectionTypeMap, TrainingTypeMap } from '@fastgpt/global/core/dataset/constants'; import { formatTime2YMDHM } from '@fastgpt/global/common/string/time'; import { formatFileSize } from '@fastgpt/global/common/file/tools'; -import { getFileAndOpen } from '@/web/core/dataset/utils'; +import { getCollectionSourceAndOpen } from '@/web/core/dataset/hooks/readCollectionSource'; import MyTooltip from '@/components/MyTooltip'; import { usePagination } from '@fastgpt/web/hooks/usePagination'; +import { getCollectionSourceData } from '@fastgpt/global/core/dataset/collection/utils'; +import { useI18n } from '@/web/context/I18n'; const DataCard = () => { const BoxRef = useRef(null); @@ -62,6 +60,7 @@ const DataCard = () => { }; const { Loading, setIsLoading } = useLoading({ defaultLoading: true }); const { t } = useTranslation(); + const { datasetT } = useI18n(); const [searchText, setSearchText] = useState(''); const { toast } = useToast(); const { openConfirm, ConfirmModal } = useConfirm({ @@ -69,6 +68,7 @@ const DataCard = () => { type: 'delete' }); const { isOpen, onOpen, onClose } = useDisclosure(); + const readSource = getCollectionSourceAndOpen(collectionId); const { data: datasetDataList, @@ -169,7 +169,17 @@ const DataCard = () => { value: webSelector } ] - : []) + : []), + { + ...(collection.tags + ? [ + { + label: datasetT('Collection tags'), + value: collection.tags?.join(', ') || '-' + } + ] + : []) + } ]; }, [collection, t]); @@ -196,13 +206,15 @@ const DataCard = () => { /> - + {collection?._id && ( + + )} {t('core.dataset.collection.id')}:{' '} @@ -412,10 +424,7 @@ const DataCard = () => { ))} {collection?.sourceId && ( - )} diff --git a/projects/app/src/pages/dataset/detail/components/Import/commonProgress/Upload.tsx b/projects/app/src/pages/dataset/detail/components/Import/commonProgress/Upload.tsx index f5b441ff9a30..054e79e197dd 100644 --- a/projects/app/src/pages/dataset/detail/components/Import/commonProgress/Upload.tsx +++ b/projects/app/src/pages/dataset/detail/components/Import/commonProgress/Upload.tsx @@ -15,12 +15,12 @@ import { ImportDataSourceEnum } from '@fastgpt/global/core/dataset/constants'; import { useTranslation } from 'next-i18next'; import MyIcon from '@fastgpt/web/components/common/Icon'; import { useRequest } from '@fastgpt/web/hooks/useRequest'; -import { useDatasetStore } from '@/web/core/dataset/store/dataset'; import { useToast } from '@fastgpt/web/hooks/useToast'; import { useRouter } from 'next/router'; import { TabEnum } from '../../../index'; import { postCreateDatasetCsvTableCollection, + postCreateDatasetExternalFileCollection, postCreateDatasetFileCollection, postCreateDatasetLinkCollection, postCreateDatasetTextCollection @@ -95,6 +95,13 @@ const Upload = () => { ...commonParams, fileId: item.dbFileId }); + } else if (importSource === ImportDataSourceEnum.externalFile && item.externalFileUrl) { + await postCreateDatasetExternalFileCollection({ + ...commonParams, + externalFileUrl: item.externalFileUrl, + externalFileId: item.externalFileId, + filename: item.sourceName + }); } setSources((state) => diff --git a/projects/app/src/pages/dataset/detail/components/Import/components/PreviewChunks.tsx b/projects/app/src/pages/dataset/detail/components/Import/components/PreviewChunks.tsx index 74dfb438ff40..bacbb323bcd3 100644 --- a/projects/app/src/pages/dataset/detail/components/Import/components/PreviewChunks.tsx +++ b/projects/app/src/pages/dataset/detail/components/Import/components/PreviewChunks.tsx @@ -44,7 +44,8 @@ const PreviewChunks = ({ if (importSource === ImportDataSourceEnum.csvTable) { return getPreviewChunks({ type: importType2ReadType(importSource), - sourceId: previewSource.dbFileId || previewSource.link || previewSource.sourceUrl || '', + sourceId: + previewSource.dbFileId || previewSource.link || previewSource.externalFileUrl || '', chunkSize, overlapRatio: chunkOverlapRatio, customSplitChar: processParamsForm.getValues('customSplitChar'), @@ -55,7 +56,8 @@ const PreviewChunks = ({ return getPreviewChunks({ type: importType2ReadType(importSource), - sourceId: previewSource.dbFileId || previewSource.link || previewSource.sourceUrl || '', + sourceId: + previewSource.dbFileId || previewSource.link || previewSource.externalFileUrl || '', chunkSize, overlapRatio: chunkOverlapRatio, customSplitChar: processParamsForm.getValues('customSplitChar'), diff --git a/projects/app/src/pages/dataset/detail/components/Import/components/PreviewRawText.tsx b/projects/app/src/pages/dataset/detail/components/Import/components/PreviewRawText.tsx index 66fe4d597a38..b43855e111b0 100644 --- a/projects/app/src/pages/dataset/detail/components/Import/components/PreviewRawText.tsx +++ b/projects/app/src/pages/dataset/detail/components/Import/components/PreviewRawText.tsx @@ -22,7 +22,7 @@ const PreviewRawText = ({ const { importSource, processParamsForm } = useContextSelector(DatasetImportContext, (v) => v); const { data, isLoading } = useQuery( - ['previewSource', previewSource.dbFileId, previewSource.link, previewSource.sourceUrl], + ['previewSource', previewSource.dbFileId, previewSource.link, previewSource.externalFileUrl], () => { if (importSource === ImportDataSourceEnum.fileCustom && previewSource.rawText) { return { @@ -39,7 +39,8 @@ const PreviewRawText = ({ return getPreviewFileContent({ type: importType2ReadType(importSource), - sourceId: previewSource.dbFileId || previewSource.link || previewSource.sourceUrl || '', + sourceId: + previewSource.dbFileId || previewSource.link || previewSource.externalFileUrl || '', isQAImport: false, selector: processParamsForm.getValues('webSelector') }); diff --git a/projects/app/src/pages/dataset/detail/components/Import/diffSource/ExternalFile.tsx b/projects/app/src/pages/dataset/detail/components/Import/diffSource/ExternalFile.tsx index a67c4997435a..53170a7d9616 100644 --- a/projects/app/src/pages/dataset/detail/components/Import/diffSource/ExternalFile.tsx +++ b/projects/app/src/pages/dataset/detail/components/Import/diffSource/ExternalFile.tsx @@ -50,16 +50,16 @@ const CustomLinkInput = () => { const { register, reset, handleSubmit, control } = useForm<{ list: { sourceName: string; - sourceUrl: string; - externalId: string; + externalFileUrl: string; + externalFileId: string; }[]; }>({ defaultValues: { list: [ { sourceName: '', - sourceUrl: '', - externalId: '' + externalFileUrl: '', + externalFileId: '' } ] } @@ -80,8 +80,8 @@ const CustomLinkInput = () => { reset({ list: sources.map((item) => ({ sourceName: item.sourceName, - sourceUrl: item.sourceUrl || '', - externalId: item.externalId || '' + externalFileUrl: item.externalFileUrl || '', + externalFileId: item.externalFileId || '' })) }); } @@ -104,7 +104,7 @@ const CustomLinkInput = () => { { const sourceName = val.split('/').pop() || ''; update(index, { ...list[index], - sourceUrl: val, + externalFileUrl: val, sourceName: decodeURIComponent(sourceName) }); } if (val && index === list.length - 1) { append({ sourceName: '', - sourceUrl: '', - externalId: '' + externalFileUrl: '', + externalFileId: '' }); } } @@ -128,7 +128,7 @@ const CustomLinkInput = () => { /> - + @@ -154,26 +154,26 @@ const CustomLinkInput = () => { onClick={() => { append({ sourceName: '', - sourceUrl: '', - externalId: '' + externalFileUrl: '', + externalFileId: '' }); }} > {commonT('Add new')}