From a5d6082418e50a6ada910c833f91e661e429f8cb Mon Sep 17 00:00:00 2001 From: -LAN- Date: Thu, 5 Dec 2024 15:11:55 +0800 Subject: [PATCH 01/11] chore: bump version to 0.13.1 (#11382) Signed-off-by: -LAN- --- api/configs/packaging/__init__.py | 2 +- docker-legacy/docker-compose.yaml | 6 +++--- docker/docker-compose.yaml | 6 +++--- web/package.json | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/api/configs/packaging/__init__.py b/api/configs/packaging/__init__.py index 08f8728148..a2703ccb94 100644 --- a/api/configs/packaging/__init__.py +++ b/api/configs/packaging/__init__.py @@ -9,7 +9,7 @@ class PackagingInfo(BaseSettings): CURRENT_VERSION: str = Field( description="Dify version", - default="0.13.0", + default="0.13.1", ) COMMIT_SHA: str = Field( diff --git a/docker-legacy/docker-compose.yaml b/docker-legacy/docker-compose.yaml index ea9f5fc493..e7a2daf9cd 100644 --- a/docker-legacy/docker-compose.yaml +++ b/docker-legacy/docker-compose.yaml @@ -2,7 +2,7 @@ version: '3' services: # API service api: - image: langgenius/dify-api:0.13.0 + image: langgenius/dify-api:0.13.1 restart: always environment: # Startup mode, 'api' starts the API server. @@ -227,7 +227,7 @@ services: # worker service # The Celery worker for processing the queue. worker: - image: langgenius/dify-api:0.13.0 + image: langgenius/dify-api:0.13.1 restart: always environment: CONSOLE_WEB_URL: '' @@ -397,7 +397,7 @@ services: # Frontend web application. web: - image: langgenius/dify-web:0.13.0 + image: langgenius/dify-web:0.13.1 restart: always environment: # The base URL of console application api server, refers to the Console base URL of WEB service if console domain is diff --git a/docker/docker-compose.yaml b/docker/docker-compose.yaml index d0ec9e5977..063813ad44 100644 --- a/docker/docker-compose.yaml +++ b/docker/docker-compose.yaml @@ -292,7 +292,7 @@ x-shared-env: &shared-api-worker-env services: # API service api: - image: langgenius/dify-api:0.13.0 + image: langgenius/dify-api:0.13.1 restart: always environment: # Use the shared environment variables. @@ -312,7 +312,7 @@ services: # worker service # The Celery worker for processing the queue. worker: - image: langgenius/dify-api:0.13.0 + image: langgenius/dify-api:0.13.1 restart: always environment: # Use the shared environment variables. @@ -331,7 +331,7 @@ services: # Frontend web application. web: - image: langgenius/dify-web:0.13.0 + image: langgenius/dify-web:0.13.1 restart: always environment: CONSOLE_API_URL: ${CONSOLE_API_URL:-} diff --git a/web/package.json b/web/package.json index a872feb2b0..f3a6b1275e 100644 --- a/web/package.json +++ b/web/package.json @@ -1,6 +1,6 @@ { "name": "dify-web", - "version": "0.13.0", + "version": "0.13.1", "private": true, "engines": { "node": ">=18.17.0" From 0b25c0b6774ab115c76c400b728ca6a0d81908e9 Mon Sep 17 00:00:00 2001 From: KVOJJJin Date: Thu, 5 Dec 2024 16:58:39 +0800 Subject: [PATCH 02/11] Fix: support file download in workflow result (#11338) --- .../app/text-generate/item/index.tsx | 2 +- .../app/text-generate/item/result-tab.tsx | 27 ++- .../base/file-uploader/file-list-in-log.tsx | 54 ++++-- .../file-uploader-in-attachment/file-item.tsx | 171 ++++++++++-------- .../file-uploader-in-chat-input/file-item.tsx | 4 +- .../components/base/file-uploader/utils.ts | 21 ++- .../share/text-generation/result/index.tsx | 4 +- .../workflow/hooks/use-workflow-run.ts | 4 +- .../nodes/_base/components/editor/base.tsx | 5 +- .../components/editor/code-editor/index.tsx | 2 +- .../workflow/panel/workflow-preview.tsx | 2 +- .../components/workflow/run/output-panel.tsx | 44 ++++- .../components/workflow/run/result-text.tsx | 38 ++-- web/i18n/en-US/app-log.ts | 2 + web/i18n/zh-Hans/app-log.ts | 2 + 15 files changed, 247 insertions(+), 135 deletions(-) diff --git a/web/app/components/app/text-generate/item/index.tsx b/web/app/components/app/text-generate/item/index.tsx index e10350acc4..0c4f62282e 100644 --- a/web/app/components/app/text-generate/item/index.tsx +++ b/web/app/components/app/text-generate/item/index.tsx @@ -334,7 +334,7 @@ const GenerationItem: FC = ({ ) } - {(currentTab === 'RESULT' || !isWorkflow) && ( + {((currentTab === 'RESULT' && workflowProcessData?.resultText) || !isWorkflow) && ( { - if (data?.resultText) + if (data?.resultText || !!data?.files?.length) switchTab('RESULT') else switchTab('DETAIL') - }, [data?.resultText]) + }, [data?.files?.length, data?.resultText]) return (
- {data?.resultText && ( + {(data?.resultText || !!data?.files?.length) && (
{currentTab === 'RESULT' && ( <> - + {data?.resultText && } {!!data?.files?.length && ( - +
+ {data?.files.map((item: any) => ( +
+
{item.varName}
+ +
+ ))} +
)} )} diff --git a/web/app/components/base/file-uploader/file-list-in-log.tsx b/web/app/components/base/file-uploader/file-list-in-log.tsx index 9c28fc0eaa..e76d84bace 100644 --- a/web/app/components/base/file-uploader/file-list-in-log.tsx +++ b/web/app/components/base/file-uploader/file-list-in-log.tsx @@ -1,4 +1,5 @@ -import React, { useState } from 'react' +import React, { useMemo, useState } from 'react' +import { useTranslation } from 'react-i18next' import { RiArrowRightSLine } from '@remixicon/react' import FileImageRender from './file-image-render' import FileTypeIcon from './file-type-icon' @@ -12,23 +13,36 @@ import { SupportUploadFileTypes } from '@/app/components/workflow/types' import cn from '@/utils/classnames' type Props = { - fileList: FileEntity[] + fileList: { + varName: string + list: FileEntity[] + }[] + isExpanded?: boolean + noBorder?: boolean + noPadding?: boolean } -const FileListInLog = ({ fileList }: Props) => { - const [expanded, setExpanded] = useState(false) +const FileListInLog = ({ fileList, isExpanded = false, noBorder = false, noPadding = false }: Props) => { + const { t } = useTranslation() + const [expanded, setExpanded] = useState(isExpanded) + const fullList = useMemo(() => { + return fileList.reduce((acc: FileEntity[], { list }) => { + return [...acc, ...list] + }, []) + }, [fileList]) if (!fileList.length) return null + return ( -
+
{expanded && ( -
+
setExpanded(!expanded)}>{t('appLog.runDetail.fileListLabel')}
)} {!expanded && ( -
- {fileList.map((file) => { +
+ {fullList.map((file) => { const { id, name, type, supportFileType, base64Url, url } = file const isImageFile = supportFileType === SupportUploadFileTypes.image return ( @@ -63,19 +77,25 @@ const FileListInLog = ({ fileList }: Props) => {
)}
setExpanded(!expanded)}> - {!expanded &&
DETAIL
} + {!expanded &&
{t('appLog.runDetail.fileListDetail')}
}
{expanded && ( -
- {fileList.map(file => ( - +
+ {fileList.map(item => ( +
+
{item.varName}
+ {item.list.map(file => ( + + ))} +
))}
)} diff --git a/web/app/components/base/file-uploader/file-uploader-in-attachment/file-item.tsx b/web/app/components/base/file-uploader/file-uploader-in-attachment/file-item.tsx index 2a042bab40..722ef64a68 100644 --- a/web/app/components/base/file-uploader/file-uploader-in-attachment/file-item.tsx +++ b/web/app/components/base/file-uploader/file-uploader-in-attachment/file-item.tsx @@ -1,12 +1,15 @@ import { memo, + useState, } from 'react' import { RiDeleteBinLine, RiDownloadLine, + RiEyeLine, } from '@remixicon/react' import FileTypeIcon from '../file-type-icon' import { + downloadFile, fileIsUploaded, getFileAppearanceType, getFileExtension, @@ -19,6 +22,7 @@ import { formatFileSize } from '@/utils/format' import cn from '@/utils/classnames' import { ReplayLine } from '@/app/components/base/icons/src/vender/other' import { SupportUploadFileTypes } from '@/app/components/workflow/types' +import ImagePreview from '@/app/components/base/image-uploader/image-preview' type FileInAttachmentItemProps = { file: FileEntity @@ -26,6 +30,7 @@ type FileInAttachmentItemProps = { showDownloadAction?: boolean onRemove?: (fileId: string) => void onReUpload?: (fileId: string) => void + canPreview?: boolean } const FileInAttachmentItem = ({ file, @@ -33,96 +38,116 @@ const FileInAttachmentItem = ({ showDownloadAction = true, onRemove, onReUpload, + canPreview, }: FileInAttachmentItemProps) => { const { id, name, type, progress, supportFileType, base64Url, url, isRemote } = file const ext = getFileExtension(name, type, isRemote) const isImageFile = supportFileType === SupportUploadFileTypes.image - + const [imagePreviewUrl, setImagePreviewUrl] = useState('') return ( -
-
- { - isImageFile && ( - - ) - } - { - !isImageFile && ( - - ) - } -
-
-
-
{name}
+ <> +
+
+ { + isImageFile && ( + + ) + } + { + !isImageFile && ( + + ) + }
-
+
+
+
{name}
+
+
+ { + ext && ( + {ext.toLowerCase()} + ) + } + { + ext && ( + + ) + } + { + !!file.size && ( + {formatFileSize(file.size)} + ) + } +
+
+
{ - ext && ( - {ext.toLowerCase()} + progress >= 0 && !fileIsUploaded(file) && ( + ) } { - ext && ( - + progress === -1 && ( + onReUpload?.(id)} + > + + ) } { - !!file.size && ( - {formatFileSize(file.size)} + showDeleteAction && ( + onRemove?.(id)}> + + + ) + } + { + canPreview && isImageFile && ( + setImagePreviewUrl(url || '')}> + + + ) + } + { + showDownloadAction && ( + { + e.stopPropagation() + downloadFile(url || base64Url || '', name) + }}> + + ) }
-
- { - progress >= 0 && !fileIsUploaded(file) && ( - - ) - } - { - progress === -1 && ( - onReUpload?.(id)} - > - - - ) - } - { - showDeleteAction && ( - onRemove?.(id)}> - - - ) - } - { - showDownloadAction && ( - - - - ) - } -
-
+ { + imagePreviewUrl && canPreview && ( + setImagePreviewUrl('')} + /> + ) + } + ) } diff --git a/web/app/components/base/file-uploader/file-uploader-in-chat-input/file-item.tsx b/web/app/components/base/file-uploader/file-uploader-in-chat-input/file-item.tsx index dcf4082780..b6ecc276db 100644 --- a/web/app/components/base/file-uploader/file-uploader-in-chat-input/file-item.tsx +++ b/web/app/components/base/file-uploader/file-uploader-in-chat-input/file-item.tsx @@ -31,7 +31,7 @@ const FileItem = ({ onRemove, onReUpload, }: FileItemProps) => { - const { id, name, type, progress, url, isRemote } = file + const { id, name, type, progress, url, base64Url, isRemote } = file const ext = getFileExtension(name, type, isRemote) const uploadError = progress === -1 @@ -86,7 +86,7 @@ const FileItem = ({ className='hidden group-hover/file-item:flex absolute -right-1 -top-1' onClick={(e) => { e.stopPropagation() - downloadFile(url || '', name) + downloadFile(url || base64Url || '', name) }} > diff --git a/web/app/components/base/file-uploader/utils.ts b/web/app/components/base/file-uploader/utils.ts index aa8625f221..8c752fde8a 100644 --- a/web/app/components/base/file-uploader/utils.ts +++ b/web/app/components/base/file-uploader/utils.ts @@ -1,5 +1,4 @@ import mime from 'mime' -import { flatten } from 'lodash-es' import { FileAppearanceTypeEnum } from './types' import type { FileEntity } from './types' import { upload } from '@/service/base' @@ -158,12 +157,22 @@ export const isAllowedFileExtension = (fileName: string, fileMimetype: string, a } export const getFilesInLogs = (rawData: any) => { - const originalFiles = flatten(Object.keys(rawData || {}).map((key) => { - if (typeof rawData[key] === 'object' || Array.isArray(rawData[key])) - return rawData[key] + const result = Object.keys(rawData || {}).map((key) => { + if (typeof rawData[key] === 'object' && rawData[key].dify_model_identity === '__dify__file__') { + return { + varName: key, + list: getProcessedFilesFromResponse([rawData[key]]), + } + } + if (Array.isArray(rawData[key]) && rawData[key].some(item => item.dify_model_identity === '__dify__file__')) { + return { + varName: key, + list: getProcessedFilesFromResponse(rawData[key]), + } + } return undefined - }).filter(Boolean)).filter(item => item?.model_identity === '__dify__file__') - return getProcessedFilesFromResponse(originalFiles) + }).filter(Boolean) + return result } export const fileIsUploaded = (file: FileEntity) => { diff --git a/web/app/components/share/text-generation/result/index.tsx b/web/app/components/share/text-generation/result/index.tsx index 6b881f1fd2..cd4ed5d287 100644 --- a/web/app/components/share/text-generation/result/index.tsx +++ b/web/app/components/share/text-generation/result/index.tsx @@ -21,7 +21,7 @@ import { sleep } from '@/utils' import type { SiteInfo } from '@/models/share' import { TEXT_GENERATION_TIMEOUT_MS } from '@/config' import { - getProcessedFilesFromResponse, + getFilesInLogs, } from '@/app/components/base/file-uploader/utils' export type IResultProps = { @@ -288,7 +288,7 @@ const Result: FC = ({ } setWorkflowProcessData(produce(getWorkflowProcessData()!, (draft) => { draft.status = WorkflowRunningStatus.Succeeded - draft.files = getProcessedFilesFromResponse(data.files || []) + draft.files = getFilesInLogs(data.outputs || []) as any[] })) if (!data.outputs) { setCompletionRes('') diff --git a/web/app/components/workflow/hooks/use-workflow-run.ts b/web/app/components/workflow/hooks/use-workflow-run.ts index 24b20b5274..5fbca27791 100644 --- a/web/app/components/workflow/hooks/use-workflow-run.ts +++ b/web/app/components/workflow/hooks/use-workflow-run.ts @@ -26,7 +26,7 @@ import { import { useFeaturesStore } from '@/app/components/base/features/hooks' import { AudioPlayerManager } from '@/app/components/base/audio-btn/audio.player.manager' import { - getProcessedFilesFromResponse, + getFilesInLogs, } from '@/app/components/base/file-uploader/utils' export const useWorkflowRun = () => { @@ -213,7 +213,7 @@ export const useWorkflowRun = () => { draft.result = { ...draft.result, ...data, - files: getProcessedFilesFromResponse(data.files || []), + files: getFilesInLogs(data.outputs), } as any if (isStringOutput) { draft.resultTabActive = true diff --git a/web/app/components/workflow/nodes/_base/components/editor/base.tsx b/web/app/components/workflow/nodes/_base/components/editor/base.tsx index 44930427ae..18ec5ea4a3 100644 --- a/web/app/components/workflow/nodes/_base/components/editor/base.tsx +++ b/web/app/components/workflow/nodes/_base/components/editor/base.tsx @@ -27,7 +27,10 @@ type Props = { isInNode?: boolean onGenerated?: (prompt: string) => void codeLanguages?: CodeLanguage - fileList?: FileEntity[] + fileList?: { + varName: string + list: FileEntity[] + }[] showFileList?: boolean showCodeGenerator?: boolean } diff --git a/web/app/components/workflow/nodes/_base/components/editor/code-editor/index.tsx b/web/app/components/workflow/nodes/_base/components/editor/code-editor/index.tsx index 2d75679b08..ed32dfb492 100644 --- a/web/app/components/workflow/nodes/_base/components/editor/code-editor/index.tsx +++ b/web/app/components/workflow/nodes/_base/components/editor/code-editor/index.tsx @@ -208,7 +208,7 @@ const CodeEditor: FC = ({ isInNode={isInNode} onGenerated={onGenerated} codeLanguages={language} - fileList={fileList} + fileList={fileList as any} showFileList={showFileList} showCodeGenerator={showCodeGenerator} > diff --git a/web/app/components/workflow/panel/workflow-preview.tsx b/web/app/components/workflow/panel/workflow-preview.tsx index d560c0b2cb..1171051efc 100644 --- a/web/app/components/workflow/panel/workflow-preview.tsx +++ b/web/app/components/workflow/panel/workflow-preview.tsx @@ -48,7 +48,7 @@ const WorkflowPreview = () => { }, [showDebugAndPreviewPanel, showInputsPanel]) useEffect(() => { - if ((workflowRunningData?.result.status === WorkflowRunningStatus.Succeeded || workflowRunningData?.result.status === WorkflowRunningStatus.Failed) && !workflowRunningData.resultText) + if ((workflowRunningData?.result.status === WorkflowRunningStatus.Succeeded || workflowRunningData?.result.status === WorkflowRunningStatus.Failed) && !workflowRunningData.resultText && !workflowRunningData.result.files?.length) switchTab('DETAIL') }, [workflowRunningData]) diff --git a/web/app/components/workflow/run/output-panel.tsx b/web/app/components/workflow/run/output-panel.tsx index 6b8d4cde1a..9904079eda 100644 --- a/web/app/components/workflow/run/output-panel.tsx +++ b/web/app/components/workflow/run/output-panel.tsx @@ -1,10 +1,13 @@ 'use client' import type { FC } from 'react' +import { useMemo } from 'react' import CodeEditor from '@/app/components/workflow/nodes/_base/components/editor/code-editor' import { CodeLanguage } from '@/app/components/workflow/nodes/code/types' import { Markdown } from '@/app/components/base/markdown' import LoadingAnim from '@/app/components/base/chat/chat/loading-anim' +import { FileList } from '@/app/components/base/file-uploader' import StatusContainer from '@/app/components/workflow/run/status-container' +import { getProcessedFilesFromResponse } from '@/app/components/base/file-uploader/utils' type OutputPanelProps = { isRunning?: boolean @@ -19,6 +22,30 @@ const OutputPanel: FC = ({ error, height, }) => { + const isTextOutput = useMemo(() => { + return outputs && Object.keys(outputs).length === 1 && typeof outputs[Object.keys(outputs)[0]] === 'string' + }, [outputs]) + + const fileList = useMemo(() => { + const fileList: any[] = [] + if (!outputs) + return fileList + if (Object.keys(outputs).length > 1) + return fileList + for (const key in outputs) { + if (Array.isArray(outputs[key])) { + outputs[key].map((output: any) => { + if (output.dify_model_identity === '__dify__file__') + fileList.push(output) + return null + }) + } + else if (outputs[key].dify_model_identity === '__dify__file__') { + fileList.push(outputs[key]) + } + } + return getProcessedFilesFromResponse(fileList) + }, [outputs]) return (
{isRunning && ( @@ -36,20 +63,31 @@ const OutputPanel: FC = ({
)} - {outputs && Object.keys(outputs).length === 1 && ( + {isTextOutput && (
)} + {fileList.length > 0 && ( +
+ +
+ )} {outputs && Object.keys(outputs).length > 1 && height! > 0 && ( -
+
} language={CodeLanguage.json} value={outputs} isJSONStringifyBeauty - height={height} + height={height ? (height - 16) / 2 : undefined} />
)} diff --git a/web/app/components/workflow/run/result-text.tsx b/web/app/components/workflow/run/result-text.tsx index 1369d49c61..27b1f2cd8c 100644 --- a/web/app/components/workflow/run/result-text.tsx +++ b/web/app/components/workflow/run/result-text.tsx @@ -6,14 +6,13 @@ import { Markdown } from '@/app/components/base/markdown' import LoadingAnim from '@/app/components/base/chat/chat/loading-anim' import StatusContainer from '@/app/components/workflow/run/status-container' import { FileList } from '@/app/components/base/file-uploader' -import type { FileEntity } from '@/app/components/base/file-uploader/types' type ResultTextProps = { isRunning?: boolean outputs?: any error?: string onClick?: () => void - allFiles?: FileEntity[] + allFiles?: any[] } const ResultText: FC = ({ @@ -25,20 +24,20 @@ const ResultText: FC = ({ }) => { const { t } = useTranslation() return ( -
+
{isRunning && !outputs && (
)} {!isRunning && error && ( -
+
{error}
)} - {!isRunning && !outputs && !error && ( + {!isRunning && !outputs && !error && !allFiles?.length && (
{t('runLog.resultEmpty.title')}
@@ -49,18 +48,25 @@ const ResultText: FC = ({
)} - {outputs && ( -
- - {!!allFiles?.length && ( - + {(outputs || !!allFiles?.length) && ( + <> + {outputs && ( +
+ +
)} -
+ {!!allFiles?.length && allFiles.map(item => ( +
+
{item.varName}
+ +
+ ))} + )}
) diff --git a/web/i18n/en-US/app-log.ts b/web/i18n/en-US/app-log.ts index a53da966be..587c305e8d 100644 --- a/web/i18n/en-US/app-log.ts +++ b/web/i18n/en-US/app-log.ts @@ -79,6 +79,8 @@ const translation = { runDetail: { title: 'Conversation Log', workflowTitle: 'Log Detail', + fileListLabel: 'File Details', + fileListDetail: 'Detail', }, promptLog: 'Prompt Log', agentLog: 'Agent Log', diff --git a/web/i18n/zh-Hans/app-log.ts b/web/i18n/zh-Hans/app-log.ts index 0d2118a684..52b93d378c 100644 --- a/web/i18n/zh-Hans/app-log.ts +++ b/web/i18n/zh-Hans/app-log.ts @@ -79,6 +79,8 @@ const translation = { runDetail: { title: '对话日志', workflowTitle: '日志详情', + fileListLabel: '文件详情', + fileListDetail: '详情', }, promptLog: 'Prompt 日志', agentLog: 'Agent 日志', From bb62391a4ca6644018a5b372a733e84148c646fc Mon Sep 17 00:00:00 2001 From: eux Date: Thu, 5 Dec 2024 17:47:11 +0800 Subject: [PATCH 03/11] fix: broken link to knowledge base guide (#11387) --- .../datasets/(datasetDetailLayout)/[datasetId]/layout.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/app/(commonLayout)/datasets/(datasetDetailLayout)/[datasetId]/layout.tsx b/web/app/(commonLayout)/datasets/(datasetDetailLayout)/[datasetId]/layout.tsx index a58027bcd1..b416659a6a 100644 --- a/web/app/(commonLayout)/datasets/(datasetDetailLayout)/[datasetId]/layout.tsx +++ b/web/app/(commonLayout)/datasets/(datasetDetailLayout)/[datasetId]/layout.tsx @@ -166,7 +166,7 @@ const ExtraInfo = ({ isMobile, relatedApps }: IExtraInfoProps) => { className='inline-flex items-center text-xs text-primary-600 mt-2 cursor-pointer' href={ locale === LanguagesSupported[1] - ? 'https://docs.dify.ai/v/zh-hans/guides/knowledge-base/integrate_knowledge_within_application' + ? 'https://docs.dify.ai/v/zh-hans/guides/knowledge-base/integrate-knowledge-within-application' : 'https://docs.dify.ai/guides/knowledge-base/integrate-knowledge-within-application' } target='_blank' rel='noopener noreferrer' From d60ca1661c85997550a643cd692e58b9ea49b986 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 5 Dec 2024 17:55:44 +0800 Subject: [PATCH 04/11] chore: translate i18n files (#11389) Co-authored-by: JzoNgKVO <27049666+JzoNgKVO@users.noreply.github.com> --- web/i18n/de-DE/app-log.ts | 2 ++ web/i18n/es-ES/app-log.ts | 2 ++ web/i18n/fa-IR/app-log.ts | 2 ++ web/i18n/fr-FR/app-log.ts | 2 ++ web/i18n/hi-IN/app-log.ts | 2 ++ web/i18n/it-IT/app-log.ts | 2 ++ web/i18n/ja-JP/app-log.ts | 2 ++ web/i18n/ko-KR/app-log.ts | 2 ++ web/i18n/pl-PL/app-log.ts | 2 ++ web/i18n/pt-BR/app-log.ts | 2 ++ web/i18n/ro-RO/app-log.ts | 2 ++ web/i18n/ru-RU/app-log.ts | 2 ++ web/i18n/sl-SI/app-log.ts | 2 ++ web/i18n/th-TH/app-log.ts | 2 ++ web/i18n/tr-TR/app-log.ts | 2 ++ web/i18n/uk-UA/app-log.ts | 2 ++ web/i18n/vi-VN/app-log.ts | 2 ++ web/i18n/zh-Hant/app-log.ts | 2 ++ 18 files changed, 36 insertions(+) diff --git a/web/i18n/de-DE/app-log.ts b/web/i18n/de-DE/app-log.ts index 0a0e740578..9ddab6ad60 100644 --- a/web/i18n/de-DE/app-log.ts +++ b/web/i18n/de-DE/app-log.ts @@ -79,6 +79,8 @@ const translation = { runDetail: { title: 'Konversationsprotokoll', workflowTitle: 'Protokolldetail', + fileListLabel: 'Details zur Datei', + fileListDetail: 'Detail', }, promptLog: 'Prompt-Protokoll', agentLog: 'Agentenprotokoll', diff --git a/web/i18n/es-ES/app-log.ts b/web/i18n/es-ES/app-log.ts index 59da13baee..84b6d1c6a5 100644 --- a/web/i18n/es-ES/app-log.ts +++ b/web/i18n/es-ES/app-log.ts @@ -79,6 +79,8 @@ const translation = { runDetail: { title: 'Registro de Conversación', workflowTitle: 'Detalle del Registro', + fileListLabel: 'Detalles del archivo', + fileListDetail: 'Detalle', }, promptLog: 'Registro de Indicación', agentLog: 'Registro de Agente', diff --git a/web/i18n/fa-IR/app-log.ts b/web/i18n/fa-IR/app-log.ts index 85ad79cabf..8c70c6a1c0 100644 --- a/web/i18n/fa-IR/app-log.ts +++ b/web/i18n/fa-IR/app-log.ts @@ -79,6 +79,8 @@ const translation = { runDetail: { title: 'لاگ مکالمه', workflowTitle: 'جزئیات لاگ', + fileListLabel: 'جزئیات فایل', + fileListDetail: 'جزئیات', }, promptLog: 'لاگ درخواست', agentLog: 'لاگ عامل', diff --git a/web/i18n/fr-FR/app-log.ts b/web/i18n/fr-FR/app-log.ts index ffff7a1b28..ca375a288f 100644 --- a/web/i18n/fr-FR/app-log.ts +++ b/web/i18n/fr-FR/app-log.ts @@ -79,6 +79,8 @@ const translation = { runDetail: { title: 'Journal de conversation', workflowTitle: 'Détail du journal', + fileListDetail: 'Détail', + fileListLabel: 'Détails du fichier', }, promptLog: 'Journal de consigne', agentLog: 'Journal des agents', diff --git a/web/i18n/hi-IN/app-log.ts b/web/i18n/hi-IN/app-log.ts index 668ae12d65..4bb441e009 100644 --- a/web/i18n/hi-IN/app-log.ts +++ b/web/i18n/hi-IN/app-log.ts @@ -81,6 +81,8 @@ const translation = { runDetail: { title: 'बातचीत लॉग', workflowTitle: 'लॉग विवरण', + fileListDetail: 'विस्तार', + fileListLabel: 'फ़ाइल विवरण', }, promptLog: 'प्रॉम्प्ट लॉग', agentLog: 'एजेंट लॉग', diff --git a/web/i18n/it-IT/app-log.ts b/web/i18n/it-IT/app-log.ts index bc96ea0180..29971c313d 100644 --- a/web/i18n/it-IT/app-log.ts +++ b/web/i18n/it-IT/app-log.ts @@ -83,6 +83,8 @@ const translation = { runDetail: { title: 'Registro Conversazione', workflowTitle: 'Dettagli Registro', + fileListDetail: 'Dettaglio', + fileListLabel: 'Dettagli del file', }, promptLog: 'Registro Prompt', agentLog: 'Registro Agente', diff --git a/web/i18n/ja-JP/app-log.ts b/web/i18n/ja-JP/app-log.ts index a11d0e81af..1d77a17b06 100644 --- a/web/i18n/ja-JP/app-log.ts +++ b/web/i18n/ja-JP/app-log.ts @@ -79,6 +79,8 @@ const translation = { runDetail: { title: '会話ログ', workflowTitle: 'ログの詳細', + fileListLabel: 'ファイルの詳細', + fileListDetail: 'ディテール', }, promptLog: 'プロンプトログ', agentLog: 'エージェントログ', diff --git a/web/i18n/ko-KR/app-log.ts b/web/i18n/ko-KR/app-log.ts index acc2b53531..c17bfca8c7 100644 --- a/web/i18n/ko-KR/app-log.ts +++ b/web/i18n/ko-KR/app-log.ts @@ -80,6 +80,8 @@ const translation = { runDetail: { title: '대화 로그', workflowTitle: '로그 세부 정보', + fileListDetail: '세부', + fileListLabel: '파일 세부 정보', }, promptLog: '프롬프트 로그', agentLog: '에이전트 로그', diff --git a/web/i18n/pl-PL/app-log.ts b/web/i18n/pl-PL/app-log.ts index 378bea0fb1..202207331f 100644 --- a/web/i18n/pl-PL/app-log.ts +++ b/web/i18n/pl-PL/app-log.ts @@ -83,6 +83,8 @@ const translation = { runDetail: { title: 'Dziennik rozmowy', workflowTitle: 'Szczegół dziennika', + fileListDetail: 'Detal', + fileListLabel: 'Szczegóły pliku', }, promptLog: 'Dziennik monitów', agentLog: 'Dziennik agenta', diff --git a/web/i18n/pt-BR/app-log.ts b/web/i18n/pt-BR/app-log.ts index 03f5bc981f..1fee398d99 100644 --- a/web/i18n/pt-BR/app-log.ts +++ b/web/i18n/pt-BR/app-log.ts @@ -79,6 +79,8 @@ const translation = { runDetail: { title: 'Registro de Conversa', workflowTitle: 'Detalhes do Registro', + fileListLabel: 'Detalhes do arquivo', + fileListDetail: 'Detalhe', }, promptLog: 'Registro de Prompt', agentLog: 'Registro do agente', diff --git a/web/i18n/ro-RO/app-log.ts b/web/i18n/ro-RO/app-log.ts index bd72400df5..8c75a31621 100644 --- a/web/i18n/ro-RO/app-log.ts +++ b/web/i18n/ro-RO/app-log.ts @@ -79,6 +79,8 @@ const translation = { runDetail: { title: 'Jurnal de conversație', workflowTitle: 'Detalii jurnal', + fileListDetail: 'Amănunt', + fileListLabel: 'Detalii fișier', }, promptLog: 'Jurnal prompt', agentLog: 'Jurnal agent', diff --git a/web/i18n/ru-RU/app-log.ts b/web/i18n/ru-RU/app-log.ts index c6c54ef178..7009a337c5 100644 --- a/web/i18n/ru-RU/app-log.ts +++ b/web/i18n/ru-RU/app-log.ts @@ -79,6 +79,8 @@ const translation = { runDetail: { title: 'Журнал разговоров', workflowTitle: 'Подробная информация о журнале', + fileListLabel: 'Сведения о файле', + fileListDetail: 'Подробность', }, promptLog: 'Журнал подсказок', agentLog: 'Журнал агента', diff --git a/web/i18n/sl-SI/app-log.ts b/web/i18n/sl-SI/app-log.ts index 03efc594ca..1745eb442d 100644 --- a/web/i18n/sl-SI/app-log.ts +++ b/web/i18n/sl-SI/app-log.ts @@ -79,6 +79,8 @@ const translation = { runDetail: { title: 'Dnevnik pogovora', workflowTitle: 'Podrobnosti dnevnika', + fileListDetail: 'Podrobnosti', + fileListLabel: 'Podrobnosti o datoteki', }, promptLog: 'Dnevnik PROMPT-ov', agentLog: 'Dnevnik pomočnika', diff --git a/web/i18n/th-TH/app-log.ts b/web/i18n/th-TH/app-log.ts index 4cc6d8a8f6..0f4405c81d 100644 --- a/web/i18n/th-TH/app-log.ts +++ b/web/i18n/th-TH/app-log.ts @@ -79,6 +79,8 @@ const translation = { runDetail: { title: 'บันทึกการสนทนา', workflowTitle: 'รายละเอียดบันทึก', + fileListDetail: 'รายละเอียด', + fileListLabel: 'รายละเอียดไฟล์', }, promptLog: 'บันทึกพร้อมท์', agentLog: 'บันทึกตัวแทน', diff --git a/web/i18n/tr-TR/app-log.ts b/web/i18n/tr-TR/app-log.ts index 37df50a5a5..cf1822cf8d 100644 --- a/web/i18n/tr-TR/app-log.ts +++ b/web/i18n/tr-TR/app-log.ts @@ -79,6 +79,8 @@ const translation = { runDetail: { title: 'Konuşma Günlüğü', workflowTitle: 'Günlük Detayı', + fileListDetail: 'Ayrıntı', + fileListLabel: 'Dosya Detayları', }, promptLog: 'Prompt Günlüğü', agentLog: 'Agent Günlüğü', diff --git a/web/i18n/uk-UA/app-log.ts b/web/i18n/uk-UA/app-log.ts index b67b9ea8f0..5b15055824 100644 --- a/web/i18n/uk-UA/app-log.ts +++ b/web/i18n/uk-UA/app-log.ts @@ -79,6 +79,8 @@ const translation = { runDetail: { title: 'Журнал Розмови', workflowTitle: 'Деталі Журналу', + fileListDetail: 'Деталь', + fileListLabel: 'Подробиці файлу', }, promptLog: 'Журнал Запитань', agentLog: 'Журнал агента', diff --git a/web/i18n/vi-VN/app-log.ts b/web/i18n/vi-VN/app-log.ts index 30a3988c12..75df51d1a1 100644 --- a/web/i18n/vi-VN/app-log.ts +++ b/web/i18n/vi-VN/app-log.ts @@ -79,6 +79,8 @@ const translation = { runDetail: { title: 'Nhật ký cuộc trò chuyện', workflowTitle: 'Chi tiết nhật ký', + fileListDetail: 'Chi tiết', + fileListLabel: 'Chi tiết tệp', }, promptLog: 'Nhật ký lời nhắc', AgentLog: 'Nhật ký tác nhân', diff --git a/web/i18n/zh-Hant/app-log.ts b/web/i18n/zh-Hant/app-log.ts index 9804844736..8027836aa7 100644 --- a/web/i18n/zh-Hant/app-log.ts +++ b/web/i18n/zh-Hant/app-log.ts @@ -79,6 +79,8 @@ const translation = { runDetail: { title: '對話日誌', workflowTitle: '日誌詳情', + fileListDetail: '細節', + fileListLabel: '檔詳細資訊', }, promptLog: 'Prompt 日誌', agentLog: 'Agent 日誌', From 7c979e6490706dafed90884516d02a64720f021b Mon Sep 17 00:00:00 2001 From: "Charlie.Wei" Date: Thu, 5 Dec 2024 20:43:42 +0800 Subject: [PATCH 05/11] Update mermaid (#11356) Co-authored-by: luowei Co-authored-by: crazywoola <427733928@qq.com> Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com> --- web/app/components/base/mermaid/index.tsx | 94 +++-- web/i18n/en-US/app.ts | 4 + web/i18n/zh-Hans/app.ts | 4 + web/package.json | 4 +- web/yarn.lock | 484 +++++++++++++++++----- 5 files changed, 455 insertions(+), 135 deletions(-) diff --git a/web/app/components/base/mermaid/index.tsx b/web/app/components/base/mermaid/index.tsx index dc01338a8c..88c5386fb7 100644 --- a/web/app/components/base/mermaid/index.tsx +++ b/web/app/components/base/mermaid/index.tsx @@ -1,24 +1,18 @@ -import React, { useEffect, useRef, useState } from 'react' +import React, { useCallback, useEffect, useRef, useState } from 'react' import mermaid from 'mermaid' import { usePrevious } from 'ahooks' import CryptoJS from 'crypto-js' +import { useTranslation } from 'react-i18next' import { ExclamationTriangleIcon } from '@heroicons/react/24/outline' import LoadingAnim from '@/app/components/base/chat/chat/loading-anim' +import cn from '@/utils/classnames' +import ImagePreview from '@/app/components/base/image-uploader/image-preview' let mermaidAPI: any mermaidAPI = null -if (typeof window !== 'undefined') { - mermaid.initialize({ - startOnLoad: true, - theme: 'default', - flowchart: { - htmlLabels: true, - useMaxWidth: true, - }, - }) +if (typeof window !== 'undefined') mermaidAPI = mermaid.mermaidAPI -} const style = { minWidth: '480px', @@ -40,14 +34,21 @@ const svgToBase64 = (svgGraph: string) => { const Flowchart = React.forwardRef((props: { PrimitiveCode: string }, ref) => { + const { t } = useTranslation() const [svgCode, setSvgCode] = useState(null) + const [look, setLook] = useState<'classic' | 'handDrawn'>('classic') + const chartId = useRef(`flowchart_${CryptoJS.MD5(props.PrimitiveCode).toString()}`) const prevPrimitiveCode = usePrevious(props.PrimitiveCode) const [isLoading, setIsLoading] = useState(true) const timeRef = useRef() const [errMsg, setErrMsg] = useState('') + const [imagePreviewUrl, setImagePreviewUrl] = useState('') + + const renderFlowchart = useCallback(async (PrimitiveCode: string) => { + setSvgCode(null) + setIsLoading(true) - const renderFlowchart = async (PrimitiveCode: string) => { try { if (typeof window !== 'undefined' && mermaidAPI) { const svgGraph = await mermaidAPI.render(chartId.current, PrimitiveCode) @@ -64,10 +65,28 @@ const Flowchart = React.forwardRef((props: { setErrMsg((error as Error).message) } } - } + }, [props.PrimitiveCode]) + + useEffect(() => { + if (typeof window !== 'undefined') { + mermaid.initialize({ + startOnLoad: true, + theme: 'neutral', + look, + flowchart: { + htmlLabels: true, + useMaxWidth: true, + }, + }) + + localStorage.removeItem(chartId.current) + renderFlowchart(props.PrimitiveCode) + } + }, [look]) useEffect(() => { const cachedSvg: any = localStorage.getItem(chartId.current) + if (cachedSvg) { setSvgCode(cachedSvg) setIsLoading(false) @@ -85,24 +104,51 @@ const Flowchart = React.forwardRef((props: { // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-expect-error
+
+
+ +
+
{ svgCode - &&
- {svgCode && Mermaid chart} -
+ &&
setImagePreviewUrl(svgCode)}> + {svgCode && mermaid_chart} +
} {isLoading - &&
- -
+ &&
+ +
} { errMsg - &&
- -   - {errMsg} -
+ &&
+ +   + {errMsg} +
+ } + { + imagePreviewUrl && ( setImagePreviewUrl('')} />) }
) diff --git a/web/i18n/en-US/app.ts b/web/i18n/en-US/app.ts index 704f37bf52..822356449b 100644 --- a/web/i18n/en-US/app.ts +++ b/web/i18n/en-US/app.ts @@ -8,6 +8,10 @@ const translation = { completion: 'Completion', }, duplicate: 'Duplicate', + mermaid: { + handDrawn: 'Hand Drawn', + classic: 'Classic', + }, duplicateTitle: 'Duplicate App', export: 'Export DSL', exportFailed: 'Export DSL failed.', diff --git a/web/i18n/zh-Hans/app.ts b/web/i18n/zh-Hans/app.ts index e4838c1eba..3668fbed55 100644 --- a/web/i18n/zh-Hans/app.ts +++ b/web/i18n/zh-Hans/app.ts @@ -8,6 +8,10 @@ const translation = { completion: '文本生成', }, duplicate: '复制', + mermaid: { + handDrawn: '手绘', + classic: '经典', + }, duplicateTitle: '复制应用', export: '导出 DSL', exportFailed: '导出 DSL 失败', diff --git a/web/package.json b/web/package.json index f3a6b1275e..ec86fc13d9 100644 --- a/web/package.json +++ b/web/package.json @@ -64,7 +64,7 @@ "lamejs": "^1.2.1", "lexical": "^0.16.0", "lodash-es": "^4.17.21", - "mermaid": "10.9.3", + "mermaid": "11.4.1", "mime": "^4.0.4", "negotiator": "^0.6.3", "next": "^14.2.10", @@ -144,7 +144,7 @@ "@types/uuid": "^9.0.8", "autoprefixer": "^10.4.14", "bing-translate-api": "^4.0.2", - "code-inspector-plugin": "^0.13.0", + "code-inspector-plugin": "^0.18.1", "cross-env": "^7.0.3", "eslint": "^8.36.0", "eslint-config-next": "^14.0.4", diff --git a/web/yarn.lock b/web/yarn.lock index 76c6e7f9d0..7a8808235b 100644 --- a/web/yarn.lock +++ b/web/yarn.lock @@ -80,6 +80,19 @@ jsonc-eslint-parser "^2.1.0" yaml-eslint-parser "^1.1.0" +"@antfu/install-pkg@^0.4.0": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@antfu/install-pkg/-/install-pkg-0.4.1.tgz#d1d7f3be96ecdb41581629cafe8626d1748c0cf1" + integrity sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw== + dependencies: + package-manager-detector "^0.2.0" + tinyexec "^0.3.0" + +"@antfu/utils@^0.7.10": + version "0.7.10" + resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-0.7.10.tgz#ae829f170158e297a9b6a28f161a8e487d00814d" + integrity sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww== + "@babel/code-frame@^7.0.0": version "7.21.4" resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz" @@ -1324,10 +1337,42 @@ resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@braintree/sanitize-url@^6.0.1": - version "6.0.4" - resolved "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-6.0.4.tgz" - integrity sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A== +"@braintree/sanitize-url@^7.0.1": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-7.1.0.tgz#048e48aab4f1460e3121e22aa62459d16653dc85" + integrity sha512-o+UlMLt49RvtCASlOMW0AkHnabN9wR9rwCCherxO0yG4Npy34GkvrAqdXQvrhNs+jh+gkK8gB8Lf05qL/O7KWg== + +"@chevrotain/cst-dts-gen@11.0.3": + version "11.0.3" + resolved "https://registry.yarnpkg.com/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz#5e0863cc57dc45e204ccfee6303225d15d9d4783" + integrity sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ== + dependencies: + "@chevrotain/gast" "11.0.3" + "@chevrotain/types" "11.0.3" + lodash-es "4.17.21" + +"@chevrotain/gast@11.0.3": + version "11.0.3" + resolved "https://registry.yarnpkg.com/@chevrotain/gast/-/gast-11.0.3.tgz#e84d8880323fe8cbe792ef69ce3ffd43a936e818" + integrity sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q== + dependencies: + "@chevrotain/types" "11.0.3" + lodash-es "4.17.21" + +"@chevrotain/regexp-to-ast@11.0.3": + version "11.0.3" + resolved "https://registry.yarnpkg.com/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz#11429a81c74a8e6a829271ce02fc66166d56dcdb" + integrity sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA== + +"@chevrotain/types@11.0.3": + version "11.0.3" + resolved "https://registry.yarnpkg.com/@chevrotain/types/-/types-11.0.3.tgz#f8a03914f7b937f594f56eb89312b3b8f1c91848" + integrity sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ== + +"@chevrotain/utils@11.0.3": + version "11.0.3" + resolved "https://registry.yarnpkg.com/@chevrotain/utils/-/utils-11.0.3.tgz#e39999307b102cff3645ec4f5b3665f5297a2224" + integrity sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ== "@chromatic-com/storybook@^1.9.0": version "1.9.0" @@ -1621,6 +1666,24 @@ resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@iconify/types@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@iconify/types/-/types-2.0.0.tgz#ab0e9ea681d6c8a1214f30cd741fe3a20cc57f57" + integrity sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg== + +"@iconify/utils@^2.1.32": + version "2.1.33" + resolved "https://registry.yarnpkg.com/@iconify/utils/-/utils-2.1.33.tgz#cbf7242a52fd0ec58c42d37d28e4406b5327e8c0" + integrity sha512-jP9h6v/g0BIZx0p7XGJJVtkVnydtbgTgt9mVNcGDYwaa7UhdHdI9dvoq+gKj9sijMSJKxUPEG2JyjsgXjxL7Kw== + dependencies: + "@antfu/install-pkg" "^0.4.0" + "@antfu/utils" "^0.7.10" + "@iconify/types" "^2.0.0" + debug "^4.3.6" + kolorist "^1.8.0" + local-pkg "^0.5.0" + mlly "^1.7.1" + "@img/sharp-darwin-arm64@0.33.2": version "0.33.2" resolved "https://registry.yarnpkg.com/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.2.tgz#0a52a82c2169112794dac2c71bfba9e90f7c5bd1" @@ -2372,6 +2435,13 @@ dependencies: "@types/mdx" "^2.0.0" +"@mermaid-js/parser@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@mermaid-js/parser/-/parser-0.3.0.tgz#7a28714599f692f93df130b299fa1aadc9f9c8ab" + integrity sha512-HsvL6zgE5sUPGgkIDlmAWR1HTNHz2Iy11BAWPTa4Jjabkpguy4Ze2gzfLrg6pdRuBvFwgUYyxiaNqZwrEEXepA== + dependencies: + langium "3.0.0" + "@monaco-editor/loader@^1.4.0": version "1.4.0" resolved "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.4.0.tgz" @@ -3419,12 +3489,12 @@ resolved "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz" integrity sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ== -"@types/d3-scale-chromatic@*", "@types/d3-scale-chromatic@^3.0.0": +"@types/d3-scale-chromatic@*": version "3.0.0" resolved "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz" integrity sha512-dsoJGEIShosKVRBZB0Vo3C8nqSDqVGujJU6tPznsBJxNJNwMF8utmS83nvCBKQYPpjCzaaHcrf66iTRpZosLPw== -"@types/d3-scale@*", "@types/d3-scale@^4.0.3": +"@types/d3-scale@*": version "4.0.4" resolved "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.4.tgz" integrity sha512-eq1ZeTj0yr72L8MQk6N6heP603ubnywSDRfNpi5enouR112HzGLS6RIvExCzZTraFF4HdzNpJMwA/zGiMoHUUw== @@ -3473,9 +3543,9 @@ "@types/d3-interpolate" "*" "@types/d3-selection" "*" -"@types/d3@^7.4.0": +"@types/d3@^7.4.0", "@types/d3@^7.4.3": version "7.4.3" - resolved "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz" + resolved "https://registry.yarnpkg.com/@types/d3/-/d3-7.4.3.tgz#d4550a85d08f4978faf0a4c36b848c61eaac07e2" integrity sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww== dependencies: "@types/d3-array" "*" @@ -3895,6 +3965,11 @@ resolved "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304" integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== +"@types/trusted-types@^2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.7.tgz#baccb07a970b91707df3a3e8ba6896c57ead2d11" + integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== + "@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2": version "2.0.6" resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz" @@ -4334,6 +4409,11 @@ acorn@^8.12.1, acorn@^8.7.1, acorn@^8.8.2: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.13.0.tgz#2a30d670818ad16ddd6a35d3842dacec9e5d7ca3" integrity sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w== +acorn@^8.14.0: + version "8.14.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" + integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== + adjust-sourcemap-loader@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz#fc4a0fd080f7d10471f30a7320f25560ade28c99" @@ -5240,6 +5320,25 @@ check-error@^2.1.1: resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.1.tgz#87eb876ae71ee388fa0471fe423f494be1d96ccc" integrity sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw== +chevrotain-allstar@~0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz#b7412755f5d83cc139ab65810cdb00d8db40e6ca" + integrity sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw== + dependencies: + lodash-es "^4.17.21" + +chevrotain@~11.0.3: + version "11.0.3" + resolved "https://registry.yarnpkg.com/chevrotain/-/chevrotain-11.0.3.tgz#88ffc1fb4b5739c715807eaeedbbf200e202fc1b" + integrity sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw== + dependencies: + "@chevrotain/cst-dts-gen" "11.0.3" + "@chevrotain/gast" "11.0.3" + "@chevrotain/regexp-to-ast" "11.0.3" + "@chevrotain/types" "11.0.3" + "@chevrotain/utils" "11.0.3" + lodash-es "4.17.21" + "chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.3: version "3.5.3" resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" @@ -5388,24 +5487,28 @@ co@^4.6.0: resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== -code-inspector-core@0.13.0: - version "0.13.0" - resolved "https://registry.npmjs.org/code-inspector-core/-/code-inspector-core-0.13.0.tgz" - integrity sha512-oYPNLdJjn3SY50YtF3IuxZOKLBNwzXSRPOqiXVnZFceMz9Ar6ugP3+zj7HszouxrsLFb2dVtlv//5wr4+cq62A== +code-inspector-core@0.18.2: + version "0.18.2" + resolved "https://registry.yarnpkg.com/code-inspector-core/-/code-inspector-core-0.18.2.tgz#5d4845789411d8ce2203a8b92b32d023fe6b0e0b" + integrity sha512-2fnBXAF5apwrhvih6mseoklbcveMRulAByZiO2BNdfK77LjaBnbLZAxZqUVdgZhXmewkMBrVrPRQVRoldhdpIQ== dependencies: "@vue/compiler-dom" "^3.2.47" chalk "^4.1.1" + dotenv "^16.1.4" + launch-ide "1.0.0" portfinder "^1.0.28" -code-inspector-plugin@^0.13.0: - version "0.13.0" - resolved "https://registry.npmjs.org/code-inspector-plugin/-/code-inspector-plugin-0.13.0.tgz" - integrity sha512-v4mq5hhHkyMmutembTzREVsFeZ/+KsCwfx20+0gTqm1Il/M1T4d2BCv9mZ4ivie3GvvDMt/pVz1iBBVP3SuzJA== +code-inspector-plugin@^0.18.1: + version "0.18.2" + resolved "https://registry.yarnpkg.com/code-inspector-plugin/-/code-inspector-plugin-0.18.2.tgz#b604edef92b7eb6654a1a1660b3dfc5831fd7a14" + integrity sha512-LKOhA4YsoUZ6Dq4OQKP7G+kPcfeYGLoIQz7EDG4yoL5mqSu+uWR+0QvzoDc4HGXQ0jpkzEwlatbH6fBlbPiwKQ== dependencies: chalk "4.1.1" - code-inspector-core "0.13.0" - vite-code-inspector-plugin "0.13.0" - webpack-code-inspector-plugin "0.13.0" + code-inspector-core "0.18.2" + dotenv "^16.3.1" + esbuild-code-inspector-plugin "0.18.2" + vite-code-inspector-plugin "0.18.2" + webpack-code-inspector-plugin "0.18.2" collect-v8-coverage@^1.0.0: version "1.0.2" @@ -5514,6 +5617,11 @@ concat-map@0.0.1: resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== +confbox@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.1.8.tgz#820d73d3b3c82d9bd910652c5d4d599ef8ff8b06" + integrity sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w== + console-browserify@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" @@ -5587,6 +5695,13 @@ cose-base@^1.0.0: dependencies: layout-base "^1.0.0" +cose-base@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cose-base/-/cose-base-2.2.0.tgz#1c395c35b6e10bb83f9769ca8b817d614add5c01" + integrity sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g== + dependencies: + layout-base "^2.0.0" + cosmiconfig@^7.0.1: version "7.1.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" @@ -5764,10 +5879,17 @@ cytoscape-cose-bilkent@^4.1.0: dependencies: cose-base "^1.0.0" -cytoscape@^3.28.1: - version "3.30.2" - resolved "https://registry.yarnpkg.com/cytoscape/-/cytoscape-3.30.2.tgz#94149707fb6547a55e3b44f03ffe232706212161" - integrity sha512-oICxQsjW8uSaRmn4UK/jkczKOqTrVqt5/1WL0POiJUT2EKNc9STM4hYFHv917yu55aTBMFNRzymlJhVAiWPCxw== +cytoscape-fcose@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz#e4d6f6490df4fab58ae9cea9e5c3ab8d7472f471" + integrity sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ== + dependencies: + cose-base "^2.2.0" + +cytoscape@^3.29.2: + version "3.30.4" + resolved "https://registry.yarnpkg.com/cytoscape/-/cytoscape-3.30.4.tgz#3404da0a159c00a1a3df2c85b2b43fdc66a0e28e" + integrity sha512-OxtlZwQl1WbwMmLiyPSEBuzeTIQnwZhJYYWFzZ2PhEHVFwpeaqNIkUzSiso00D98qk60l8Gwon2RP304d3BJ1A== "d3-array@1 - 2": version "2.12.1" @@ -6004,10 +6126,10 @@ d3-zoom@3, d3-zoom@^3.0.0: d3-selection "2 - 3" d3-transition "2 - 3" -d3@^7.4.0, d3@^7.8.2: - version "7.8.5" - resolved "https://registry.npmjs.org/d3/-/d3-7.8.5.tgz" - integrity sha512-JgoahDG51ncUfJu6wX/1vWQEqOflgXyl4MaHqlcSruTez7yhaRKR9i8VjjcQGeS2en/jnFivXuaIMnseMMt0XA== +d3@^7.9.0: + version "7.9.0" + resolved "https://registry.yarnpkg.com/d3/-/d3-7.9.0.tgz#579e7acb3d749caf8860bd1741ae8d371070cd5d" + integrity sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA== dependencies: d3-array "3" d3-axis "3" @@ -6040,12 +6162,12 @@ d3@^7.4.0, d3@^7.8.2: d3-transition "3" d3-zoom "3" -dagre-d3-es@7.0.10: - version "7.0.10" - resolved "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.10.tgz" - integrity sha512-qTCQmEhcynucuaZgY5/+ti3X/rnszKZhEQH/ZdWdtP1tA/y3VoHJzcVrO9pjjJCNpigfscAtoUB5ONcd2wNn0A== +dagre-d3-es@7.0.11: + version "7.0.11" + resolved "https://registry.yarnpkg.com/dagre-d3-es/-/dagre-d3-es-7.0.11.tgz#2237e726c0577bfe67d1a7cfd2265b9ab2c15c40" + integrity sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw== dependencies: - d3 "^7.8.2" + d3 "^7.9.0" lodash-es "^4.17.21" damerau-levenshtein@^1.0.8: @@ -6062,6 +6184,11 @@ data-urls@^3.0.2: whatwg-mimetype "^3.0.0" whatwg-url "^11.0.0" +dayjs@^1.11.10: + version "1.11.13" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.13.tgz#92430b0139055c3ebb60150aa13e860a4b5a366c" + integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== + dayjs@^1.11.7, dayjs@^1.9.1: version "1.11.8" resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.8.tgz" @@ -6095,6 +6222,13 @@ debug@^4.0.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: dependencies: ms "2.1.2" +debug@^4.3.6: + version "4.3.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" + integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== + dependencies: + ms "^2.1.3" + decimal.js@^10.4.2: version "10.4.3" resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" @@ -6401,10 +6535,12 @@ domhandler@^5.0.2, domhandler@^5.0.3: dependencies: domelementtype "^2.3.0" -"dompurify@^3.0.5 <3.1.7": - version "3.1.6" - resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.1.6.tgz#43c714a94c6a7b8801850f82e756685300a027e2" - integrity sha512-cTOAhc36AalkjtBpfG6O8JimdTMWNXjiePT2xQH/ppBGi/4uIpmj8eKyIkMJErXWARyINV/sB38yf8JCLF5pbQ== +dompurify@^3.2.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.2.2.tgz#6c0518745e81686c74a684f5af1e5613e7cc0246" + integrity sha512-YMM+erhdZ2nkZ4fTNRTSI94mb7VG7uVF5vj5Zde7tImgnhZE3R6YW/IACGIHb2ux+QkEXMhe591N+5jWOmL4Zw== + optionalDependencies: + "@types/trusted-types" "^2.0.7" domutils@^2.5.2, domutils@^2.8.0: version "2.8.0" @@ -6432,6 +6568,11 @@ dot-case@^3.0.4: no-case "^3.0.4" tslib "^2.0.3" +dotenv@^16.1.4, dotenv@^16.3.1: + version "16.4.7" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.7.tgz#0e20c5b82950140aa99be360a8a5f52335f53c26" + integrity sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ== + echarts-for-react@^3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/echarts-for-react/-/echarts-for-react-3.0.2.tgz" @@ -6468,11 +6609,6 @@ electron-to-chromium@^1.5.28: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.40.tgz#5f6aec13751123c5c3185999ebe3e7bcaf828c2b" integrity sha512-LYm78o6if4zTasnYclgQzxEcgMoIcybWOhkATWepN95uwVVWV0/IW10v+2sIeHE+bIYWipLneTftVyQm45UY7g== -elkjs@^0.9.0: - version "0.9.3" - resolved "https://registry.yarnpkg.com/elkjs/-/elkjs-0.9.3.tgz#16711f8ceb09f1b12b99e971b138a8384a529161" - integrity sha512-f/ZeWvW/BCXbhGEf1Ujp29EASo/lk1FDnETgNKwJrsVvGZhUWCZyg3xLJjAsxfOmt8KjswHmI5EwCQcPMpOYhQ== - elliptic@^6.5.3, elliptic@^6.5.5: version "6.6.0" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.0.tgz#5919ec723286c1edf28685aa89261d4761afa210" @@ -6704,6 +6840,13 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +esbuild-code-inspector-plugin@0.18.2: + version "0.18.2" + resolved "https://registry.yarnpkg.com/esbuild-code-inspector-plugin/-/esbuild-code-inspector-plugin-0.18.2.tgz#3ecb938d3c05356ca2878c71edae9e4a24590b8f" + integrity sha512-q9Qh1xfUhHEtnmYt8eXCAzdbFLaBMgC6wrwmGH7JI2nztYlcpVD4HeAnheQ9ZTaoRGu+2L+qkpM5XQMd6xhUcQ== + dependencies: + code-inspector-core "0.18.2" + esbuild-register@^3.5.0: version "3.6.0" resolved "https://registry.yarnpkg.com/esbuild-register/-/esbuild-register-3.6.0.tgz#cf270cfa677baebbc0010ac024b823cbf723a36d" @@ -7810,6 +7953,11 @@ grapheme-splitter@^1.0.4: resolved "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz" integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== +hachure-fill@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/hachure-fill/-/hachure-fill-0.5.2.tgz#d19bc4cc8750a5962b47fb1300557a85fcf934cc" + integrity sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg== + has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" @@ -9397,10 +9545,10 @@ keyv@^4.0.0: dependencies: json-buffer "3.0.1" -khroma@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/khroma/-/khroma-2.0.0.tgz" - integrity sha512-2J8rDNlQWbtiNYThZRvmMv5yt44ZakX+Tz5ZIp/mN1pt4snn+m030Va5Z4v8xA0cQFDXBwO/8i42xL4QPsVk3g== +khroma@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/khroma/-/khroma-2.1.0.tgz#45f2ce94ce231a437cf5b63c2e886e6eb42bbbb1" + integrity sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw== kleur@^3.0.3: version "3.0.3" @@ -9412,6 +9560,11 @@ kleur@^4.0.3: resolved "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz" integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== +kolorist@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/kolorist/-/kolorist-1.8.0.tgz#edddbbbc7894bc13302cdf740af6374d4a04743c" + integrity sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ== + lamejs@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/lamejs/-/lamejs-1.2.1.tgz" @@ -9419,6 +9572,17 @@ lamejs@^1.2.1: dependencies: use-strict "1.0.1" +langium@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/langium/-/langium-3.0.0.tgz#4938294eb57c59066ef955070ac4d0c917b26026" + integrity sha512-+Ez9EoiByeoTu/2BXmEaZ06iPNXM6thWJp02KfBO/raSMyCJ4jw7AkWWa+zBCTm0+Tw1Fj9FOxdqSskyN5nAwg== + dependencies: + chevrotain "~11.0.3" + chevrotain-allstar "~0.3.0" + vscode-languageserver "~9.0.1" + vscode-languageserver-textdocument "~1.0.11" + vscode-uri "~3.0.8" + language-subtag-registry@~0.3.2: version "0.3.22" resolved "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz" @@ -9431,11 +9595,24 @@ language-tags@=1.0.5: dependencies: language-subtag-registry "~0.3.2" +launch-ide@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/launch-ide/-/launch-ide-1.0.0.tgz#be405fdef86cff69eeb53fb9ad59054a7480fd56" + integrity sha512-VnVnFZK97DySVgidvlHlbPYOgf0hWjYowdqPu5P9iw1vyA+JUPu7ldJdL3cQm0ILC+4Wf1jtOv/x2f/67ePIfQ== + dependencies: + chalk "^4.1.1" + dotenv "^16.1.4" + layout-base@^1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz" integrity sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg== +layout-base@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/layout-base/-/layout-base-2.0.1.tgz#d0337913586c90f9c2c075292069f5c2da5dd285" + integrity sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg== + leven@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -9521,6 +9698,14 @@ local-pkg@^0.4.3: resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz" integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== +local-pkg@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.5.1.tgz#69658638d2a95287534d4c2fff757980100dbb6d" + integrity sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ== + dependencies: + mlly "^1.7.3" + pkg-types "^1.2.1" + locate-path@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" @@ -9542,7 +9727,7 @@ locate-path@^7.1.0: dependencies: p-locate "^6.0.0" -lodash-es@^4.17.21: +lodash-es@4.17.21, lodash-es@^4.17.21: version "4.17.21" resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz" integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== @@ -9705,6 +9890,11 @@ markdown-to-jsx@^7.4.5: resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-7.5.0.tgz#42ece0c71e842560a7d8bd9f81e7a34515c72150" integrity sha512-RrBNcMHiFPcz/iqIj0n3wclzHXjwS7mzjBNWecKKVhNTIxQepIix6Il/wZCn2Cg5Y1ow2Qi84+eJrryFRWBEWw== +marked@^13.0.2: + version "13.0.3" + resolved "https://registry.yarnpkg.com/marked/-/marked-13.0.3.tgz#5c5b4a5d0198060c7c9bc6ef9420a7fed30f822d" + integrity sha512-rqRix3/TWzE9rIoFGIn8JmsVfhiuC8VIQ8IdX5TfzmeBucdY05/0UlzKaw0eVtpcN/OdVFpBk7CjKGo9iHJ/zA== + md5.js@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" @@ -9744,7 +9934,7 @@ mdast-util-from-markdown@^0.8.5: parse-entities "^2.0.0" unist-util-stringify-position "^2.0.0" -mdast-util-from-markdown@^1.0.0, mdast-util-from-markdown@^1.1.0, mdast-util-from-markdown@^1.3.0: +mdast-util-from-markdown@^1.0.0, mdast-util-from-markdown@^1.1.0: version "1.3.1" resolved "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz" integrity sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww== @@ -9990,31 +10180,31 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -mermaid@10.9.3: - version "10.9.3" - resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-10.9.3.tgz#90bc6f15c33dbe5d9507fed31592cc0d88fee9f7" - integrity sha512-V80X1isSEvAewIL3xhmz/rVmc27CVljcsbWxkxlWJWY/1kQa4XOABqpDl2qQLGKzpKm6WbTfUEKImBlUfFYArw== +mermaid@11.4.1: + version "11.4.1" + resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-11.4.1.tgz#577fad5c31a01a06d9f793e298d411f1379eecc8" + integrity sha512-Mb01JT/x6CKDWaxigwfZYuYmDZ6xtrNwNlidKZwkSrDaY9n90tdrJTV5Umk+wP1fZscGptmKFXHsXMDEVZ+Q6A== dependencies: - "@braintree/sanitize-url" "^6.0.1" - "@types/d3-scale" "^4.0.3" - "@types/d3-scale-chromatic" "^3.0.0" - cytoscape "^3.28.1" + "@braintree/sanitize-url" "^7.0.1" + "@iconify/utils" "^2.1.32" + "@mermaid-js/parser" "^0.3.0" + "@types/d3" "^7.4.3" + cytoscape "^3.29.2" cytoscape-cose-bilkent "^4.1.0" - d3 "^7.4.0" + cytoscape-fcose "^2.2.0" + d3 "^7.9.0" d3-sankey "^0.12.3" - dagre-d3-es "7.0.10" - dayjs "^1.11.7" - dompurify "^3.0.5 <3.1.7" - elkjs "^0.9.0" + dagre-d3-es "7.0.11" + dayjs "^1.11.10" + dompurify "^3.2.1" katex "^0.16.9" - khroma "^2.0.0" + khroma "^2.1.0" lodash-es "^4.17.21" - mdast-util-from-markdown "^1.3.0" - non-layered-tidy-tree-layout "^2.0.2" - stylis "^4.1.3" + marked "^13.0.2" + roughjs "^4.6.6" + stylis "^4.3.1" ts-dedent "^2.2.0" - uuid "^9.0.0" - web-worker "^1.2.0" + uuid "^9.0.1" methods@~1.1.2: version "1.1.2" @@ -10545,6 +10735,16 @@ mkdirp@^0.5.6: dependencies: minimist "^1.2.6" +mlly@^1.7.1, mlly@^1.7.2, mlly@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.7.3.tgz#d86c0fcd8ad8e16395eb764a5f4b831590cee48c" + integrity sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A== + dependencies: + acorn "^8.14.0" + pathe "^1.1.2" + pkg-types "^1.2.1" + ufo "^1.5.4" + mri@^1.1.0: version "1.2.0" resolved "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz" @@ -10560,7 +10760,7 @@ ms@2.1.2, ms@^2.1.1: resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3: +ms@2.1.3, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -10686,11 +10886,6 @@ node-releases@^2.0.18: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.18.tgz#f010e8d35e2fe8d6b2944f03f70213ecedc4ca3f" integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== -non-layered-tidy-tree-layout@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz" - integrity sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw== - normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" @@ -10958,6 +11153,11 @@ p-try@^2.0.0: resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +package-manager-detector@^0.2.0: + version "0.2.6" + resolved "https://registry.yarnpkg.com/package-manager-detector/-/package-manager-detector-0.2.6.tgz#7dc8e30ad94861d36114b4499a72d57b30549943" + integrity sha512-9vPH3qooBlYRJdmdYP00nvjZOulm40r5dhtal8st18ctf+6S1k7pi5yIHLvI4w5D70x0Y+xdVD9qITH0QO/A8A== + pako@~1.0.5: version "1.0.11" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" @@ -11056,6 +11256,11 @@ path-browserify@^1.0.1: resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== +path-data-parser@0.1.0, path-data-parser@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/path-data-parser/-/path-data-parser-0.1.0.tgz#8f5ba5cc70fc7becb3dcefaea08e2659aba60b8c" + integrity sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w== + path-exists@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" @@ -11104,6 +11309,11 @@ path-type@^4.0.0: resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +pathe@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" + integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== + pathval@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pathval/-/pathval-2.0.0.tgz#7e2550b422601d4f6b8e26f1301bc8f15a741a25" @@ -11183,6 +11393,15 @@ pkg-dir@^7.0.0: dependencies: find-up "^6.3.0" +pkg-types@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.2.1.tgz#6ac4e455a5bb4b9a6185c1c79abd544c901db2e5" + integrity sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw== + dependencies: + confbox "^0.1.8" + mlly "^1.7.2" + pathe "^1.1.2" + pluralize@^8.0.0: version "8.0.0" resolved "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz" @@ -11195,6 +11414,19 @@ pnp-webpack-plugin@^1.7.0: dependencies: ts-pnp "^1.1.6" +points-on-curve@0.2.0, points-on-curve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/points-on-curve/-/points-on-curve-0.2.0.tgz#7dbb98c43791859434284761330fa893cb81b4d1" + integrity sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A== + +points-on-path@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/points-on-path/-/points-on-path-0.2.1.tgz#553202b5424c53bed37135b318858eacff85dd52" + integrity sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g== + dependencies: + path-data-parser "0.1.0" + points-on-curve "0.2.0" + polished@^4.2.2: version "4.3.1" resolved "https://registry.yarnpkg.com/polished/-/polished-4.3.1.tgz#5a00ae32715609f83d89f6f31d0f0261c6170548" @@ -12259,6 +12491,16 @@ robust-predicates@^3.0.0: resolved "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz" integrity sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg== +roughjs@^4.6.6: + version "4.6.6" + resolved "https://registry.yarnpkg.com/roughjs/-/roughjs-4.6.6.tgz#1059f49a5e0c80dee541a005b20cc322b222158b" + integrity sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ== + dependencies: + hachure-fill "^0.5.2" + path-data-parser "^0.1.0" + points-on-curve "^0.2.0" + points-on-path "^0.2.1" + run-applescript@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz" @@ -12895,14 +13137,7 @@ stringify-entities@^4.0.0: character-entities-html4 "^2.0.0" character-entities-legacy "^3.0.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -12981,10 +13216,10 @@ styled-jsx@^5.1.6: dependencies: client-only "0.0.1" -stylis@^4.1.3: - version "4.3.0" - resolved "https://registry.npmjs.org/stylis/-/stylis-4.3.0.tgz" - integrity sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ== +stylis@^4.3.1: + version "4.3.4" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.4.tgz#ca5c6c4a35c4784e4e93a2a24dc4e9fa075250a4" + integrity sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now== sucrase@^3.32.0: version "3.32.0" @@ -13171,6 +13406,11 @@ tiny-invariant@^1.3.1, tiny-invariant@^1.3.3: resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.3.tgz#46680b7a873a0d5d10005995eb90a70d74d60127" integrity sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg== +tinyexec@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.1.tgz#0ab0daf93b43e2c211212396bdb836b468c97c98" + integrity sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ== + tinyrainbow@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/tinyrainbow/-/tinyrainbow-1.2.0.tgz#5c57d2fc0fb3d1afd78465c33ca885d04f02abb5" @@ -13433,6 +13673,11 @@ typescript@4.9.5: resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== +ufo@^1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.5.4.tgz#16d6949674ca0c9e0fbbae1fa20a71d7b1ded754" + integrity sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ== + uglify-js@^3.17.4: version "3.17.4" resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz" @@ -13801,12 +14046,12 @@ vfile@^6.0.0: unist-util-stringify-position "^4.0.0" vfile-message "^4.0.0" -vite-code-inspector-plugin@0.13.0: - version "0.13.0" - resolved "https://registry.npmjs.org/vite-code-inspector-plugin/-/vite-code-inspector-plugin-0.13.0.tgz" - integrity sha512-hvIn9G+IFzQHVVynWh2wGTBHo51CBJRqQBzYryeuuaL0BK0w8my2/tlpSAae5ofQxOBXBMhyXC2gWgYUJnNWrA== +vite-code-inspector-plugin@0.18.2: + version "0.18.2" + resolved "https://registry.yarnpkg.com/vite-code-inspector-plugin/-/vite-code-inspector-plugin-0.18.2.tgz#33be5f7408ea81163d833c8f06c2ff1e18669ee4" + integrity sha512-MfHvere+71vL0BOposwgbHKZ8o973mYnMhGmU4uzOMt+gsmIjqHxcUkak9K2RMkRB1mG7/Gehvyy28SkUuhg3A== dependencies: - code-inspector-core "0.13.0" + code-inspector-core "0.18.2" vm-browserify@^1.1.2: version "1.1.2" @@ -13818,6 +14063,41 @@ void-elements@3.1.0: resolved "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz" integrity sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w== +vscode-jsonrpc@8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz#f43dfa35fb51e763d17cd94dcca0c9458f35abf9" + integrity sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA== + +vscode-languageserver-protocol@3.17.5: + version "3.17.5" + resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz#864a8b8f390835572f4e13bd9f8313d0e3ac4bea" + integrity sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg== + dependencies: + vscode-jsonrpc "8.2.0" + vscode-languageserver-types "3.17.5" + +vscode-languageserver-textdocument@~1.0.11: + version "1.0.12" + resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz#457ee04271ab38998a093c68c2342f53f6e4a631" + integrity sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA== + +vscode-languageserver-types@3.17.5: + version "3.17.5" + resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz#3273676f0cf2eab40b3f44d085acbb7f08a39d8a" + integrity sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg== + +vscode-languageserver@~9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz#500aef82097eb94df90d008678b0b6b5f474015b" + integrity sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g== + dependencies: + vscode-languageserver-protocol "3.17.5" + +vscode-uri@~3.0.8: + version "3.0.8" + resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.8.tgz#1770938d3e72588659a172d0fd4642780083ff9f" + integrity sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw== + vue-eslint-parser@^9.3.0: version "9.3.0" resolved "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.3.0.tgz" @@ -13858,22 +14138,17 @@ web-namespaces@^2.0.0: resolved "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz" integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ== -web-worker@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/web-worker/-/web-worker-1.2.0.tgz" - integrity sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA== - webidl-conversions@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== -webpack-code-inspector-plugin@0.13.0: - version "0.13.0" - resolved "https://registry.npmjs.org/webpack-code-inspector-plugin/-/webpack-code-inspector-plugin-0.13.0.tgz" - integrity sha512-T3ZZ84NX0cVmwff5zyYhB9OuroZYsyaQpSgFicgiuYAWCsQePYApM/R3bHdvcECkBXO50hAVtr9SjWRTu1+Ntg== +webpack-code-inspector-plugin@0.18.2: + version "0.18.2" + resolved "https://registry.yarnpkg.com/webpack-code-inspector-plugin/-/webpack-code-inspector-plugin-0.18.2.tgz#c2355d384c12212de5662fa8bc5898f449886b0a" + integrity sha512-sSUgrISb8KqKGiX+AvKA5FAdiOh41nEX/EU+c/d1ChYQmwLDdWXxsMyAs494R3r+ihVUchhLalb9V6TvDKTOCA== dependencies: - code-inspector-core "0.13.0" + code-inspector-core "0.18.2" webpack-dev-middleware@^6.1.2: version "6.1.3" @@ -14027,7 +14302,7 @@ word-wrap@^1.2.3: resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz" integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -14045,15 +14320,6 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz" From 9d975750bce27e35984e22efbc6e84941b9c6d17 Mon Sep 17 00:00:00 2001 From: huayaoyue6 Date: Fri, 6 Dec 2024 08:59:23 +0800 Subject: [PATCH 06/11] fix: update DocumentIsPausedError (#11405) --- api/tasks/external_document_indexing_task.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/tasks/external_document_indexing_task.py b/api/tasks/external_document_indexing_task.py index 6fc719ae8d..69f3072e2d 100644 --- a/api/tasks/external_document_indexing_task.py +++ b/api/tasks/external_document_indexing_task.py @@ -5,7 +5,7 @@ import time import click from celery import shared_task -from core.indexing_runner import DocumentIsPausedException +from core.indexing_runner import DocumentIsPausedError from extensions.ext_database import db from extensions.ext_storage import storage from models.dataset import Dataset, ExternalKnowledgeApis @@ -86,7 +86,7 @@ def external_document_indexing_task( fg="green", ) ) - except DocumentIsPausedException as ex: + except DocumentIsPausedError as ex: logging.info(click.style(str(ex), fg="yellow")) except Exception: From 9a0dc4bfdc936b86402dc318eba435d40e6c31e4 Mon Sep 17 00:00:00 2001 From: kurokobo Date: Fri, 6 Dec 2024 10:00:48 +0900 Subject: [PATCH 07/11] fix: add elkjs (#11404) --- web/package.json | 1 + web/yarn.lock | 25 +++++++++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/web/package.json b/web/package.json index ec86fc13d9..65e5d4d1ff 100644 --- a/web/package.json +++ b/web/package.json @@ -52,6 +52,7 @@ "dayjs": "^1.11.7", "echarts": "^5.4.1", "echarts-for-react": "^3.0.2", + "elkjs": "^0.9.3", "emoji-mart": "^5.5.2", "fast-deep-equal": "^3.1.3", "i18next": "^22.4.13", diff --git a/web/yarn.lock b/web/yarn.lock index 7a8808235b..61d4dcc1d7 100644 --- a/web/yarn.lock +++ b/web/yarn.lock @@ -6609,6 +6609,11 @@ electron-to-chromium@^1.5.28: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.40.tgz#5f6aec13751123c5c3185999ebe3e7bcaf828c2b" integrity sha512-LYm78o6if4zTasnYclgQzxEcgMoIcybWOhkATWepN95uwVVWV0/IW10v+2sIeHE+bIYWipLneTftVyQm45UY7g== +elkjs@^0.9.3: + version "0.9.3" + resolved "https://registry.yarnpkg.com/elkjs/-/elkjs-0.9.3.tgz#16711f8ceb09f1b12b99e971b138a8384a529161" + integrity sha512-f/ZeWvW/BCXbhGEf1Ujp29EASo/lk1FDnETgNKwJrsVvGZhUWCZyg3xLJjAsxfOmt8KjswHmI5EwCQcPMpOYhQ== + elliptic@^6.5.3, elliptic@^6.5.5: version "6.6.0" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.0.tgz#5919ec723286c1edf28685aa89261d4761afa210" @@ -13137,7 +13142,14 @@ stringify-entities@^4.0.0: character-entities-html4 "^2.0.0" character-entities-legacy "^3.0.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -14302,7 +14314,7 @@ word-wrap@^1.2.3: resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz" integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -14320,6 +14332,15 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz" From 255ff446ba3120b17a6a22d5cf410cab1eed6940 Mon Sep 17 00:00:00 2001 From: crazywoola <100913391+crazywoola@users.noreply.github.com> Date: Fri, 6 Dec 2024 09:14:15 +0800 Subject: [PATCH 08/11] use md table systax in pr template (#11412) --- .github/pull_request_template.md | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 138fb886d6..b4a6eb9adb 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -8,16 +8,9 @@ Please include a summary of the change and which issue is fixed. Please also inc # Screenshots - - - - - - - - - -
Before: After:
......
+| Before | After | +|--------|-------| +| ... | ... | # Checklist From f54225568c234be4368aa4e4e9438658ad122170 Mon Sep 17 00:00:00 2001 From: Matsuda Date: Fri, 6 Dec 2024 10:15:32 +0900 Subject: [PATCH 09/11] fix(model_runtime): add vision to Amazon Nova Lite and Pro (#11398) --- .../model_providers/bedrock/llm/amazon.nova-lite-v1.yaml | 1 + .../model_providers/bedrock/llm/amazon.nova-pro-v1.yaml | 1 + .../model_providers/bedrock/llm/us.amazon.nova-lite-v1.yaml | 1 + .../model_providers/bedrock/llm/us.amazon.nova-pro-v1.yaml | 1 + 4 files changed, 4 insertions(+) diff --git a/api/core/model_runtime/model_providers/bedrock/llm/amazon.nova-lite-v1.yaml b/api/core/model_runtime/model_providers/bedrock/llm/amazon.nova-lite-v1.yaml index 5aaf50473e..41a7f96d80 100644 --- a/api/core/model_runtime/model_providers/bedrock/llm/amazon.nova-lite-v1.yaml +++ b/api/core/model_runtime/model_providers/bedrock/llm/amazon.nova-lite-v1.yaml @@ -6,6 +6,7 @@ features: - agent-thought - tool-call - stream-tool-call + - vision model_properties: mode: chat context_size: 300000 diff --git a/api/core/model_runtime/model_providers/bedrock/llm/amazon.nova-pro-v1.yaml b/api/core/model_runtime/model_providers/bedrock/llm/amazon.nova-pro-v1.yaml index 75e53e74a9..53cf560610 100644 --- a/api/core/model_runtime/model_providers/bedrock/llm/amazon.nova-pro-v1.yaml +++ b/api/core/model_runtime/model_providers/bedrock/llm/amazon.nova-pro-v1.yaml @@ -6,6 +6,7 @@ features: - agent-thought - tool-call - stream-tool-call + - vision model_properties: mode: chat context_size: 300000 diff --git a/api/core/model_runtime/model_providers/bedrock/llm/us.amazon.nova-lite-v1.yaml b/api/core/model_runtime/model_providers/bedrock/llm/us.amazon.nova-lite-v1.yaml index 594f304617..522353489d 100644 --- a/api/core/model_runtime/model_providers/bedrock/llm/us.amazon.nova-lite-v1.yaml +++ b/api/core/model_runtime/model_providers/bedrock/llm/us.amazon.nova-lite-v1.yaml @@ -6,6 +6,7 @@ features: - agent-thought - tool-call - stream-tool-call + - vision model_properties: mode: chat context_size: 300000 diff --git a/api/core/model_runtime/model_providers/bedrock/llm/us.amazon.nova-pro-v1.yaml b/api/core/model_runtime/model_providers/bedrock/llm/us.amazon.nova-pro-v1.yaml index dfb3e5f210..20e9d233e1 100644 --- a/api/core/model_runtime/model_providers/bedrock/llm/us.amazon.nova-pro-v1.yaml +++ b/api/core/model_runtime/model_providers/bedrock/llm/us.amazon.nova-pro-v1.yaml @@ -6,6 +6,7 @@ features: - agent-thought - tool-call - stream-tool-call + - vision model_properties: mode: chat context_size: 300000 From 5093337de19af0fad2c6c50a17b219b8da02301d Mon Sep 17 00:00:00 2001 From: shirochan Date: Fri, 6 Dec 2024 10:58:55 +0900 Subject: [PATCH 10/11] FEAT: cohere rerank 3.5 model added (#11289) --- .../model_providers/cohere/rerank/_position.yaml | 1 + .../model_providers/cohere/rerank/rerank-v3.5.yaml | 4 ++++ 2 files changed, 5 insertions(+) create mode 100644 api/core/model_runtime/model_providers/cohere/rerank/rerank-v3.5.yaml diff --git a/api/core/model_runtime/model_providers/cohere/rerank/_position.yaml b/api/core/model_runtime/model_providers/cohere/rerank/_position.yaml index 4dd58fc170..2f6f80ab74 100644 --- a/api/core/model_runtime/model_providers/cohere/rerank/_position.yaml +++ b/api/core/model_runtime/model_providers/cohere/rerank/_position.yaml @@ -2,3 +2,4 @@ - rerank-english-v3.0 - rerank-multilingual-v2.0 - rerank-multilingual-v3.0 +- rerank-v3.5 diff --git a/api/core/model_runtime/model_providers/cohere/rerank/rerank-v3.5.yaml b/api/core/model_runtime/model_providers/cohere/rerank/rerank-v3.5.yaml new file mode 100644 index 0000000000..5de71fb989 --- /dev/null +++ b/api/core/model_runtime/model_providers/cohere/rerank/rerank-v3.5.yaml @@ -0,0 +1,4 @@ +model: rerank-v3.5 +model_type: rerank +model_properties: + context_size: 5120 From a8d32f99644859949e434070a5c80d5269b3814c Mon Sep 17 00:00:00 2001 From: Jyong <76649700+JohnJyong@users.noreply.github.com> Date: Fri, 6 Dec 2024 14:45:15 +0800 Subject: [PATCH 11/11] fix external retrieval without segment id (#11423) --- api/core/app/apps/base_app_generate_response_converter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/core/app/apps/base_app_generate_response_converter.py b/api/core/app/apps/base_app_generate_response_converter.py index 210609b504..be4027132b 100644 --- a/api/core/app/apps/base_app_generate_response_converter.py +++ b/api/core/app/apps/base_app_generate_response_converter.py @@ -82,7 +82,7 @@ class AppGenerateResponseConverter(ABC): for resource in metadata["retriever_resources"]: updated_resources.append( { - "segment_id": resource["segment_id"], + "segment_id": resource.get("segment_id", ""), "position": resource["position"], "document_name": resource["document_name"], "score": resource["score"],