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 000000000000..4b365f339ba2 Binary files /dev/null and b/docSite/assets/imgs/external_file0.png differ diff --git a/docSite/assets/imgs/external_file1.png b/docSite/assets/imgs/external_file1.png new file mode 100644 index 000000000000..bbbb86ad97cc Binary files /dev/null and b/docSite/assets/imgs/external_file1.png differ diff --git a/docSite/assets/imgs/external_file2.png b/docSite/assets/imgs/external_file2.png new file mode 100644 index 000000000000..f7697b42c6b7 Binary files /dev/null and b/docSite/assets/imgs/external_file2.png differ 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')}