+
-
+
+
{
+ e.stopPropagation()
+ }}
+ >
+ Show resolved
+ {
+ setShowOnlyUnresolved(!checked)
+ }}
+ />
+
)}
+
{
diff --git a/web/app/components/workflow/store/workflow/comment-slice.ts b/web/app/components/workflow/store/workflow/comment-slice.ts
index c0e9a7a0c0..01bc0dad29 100644
--- a/web/app/components/workflow/store/workflow/comment-slice.ts
+++ b/web/app/components/workflow/store/workflow/comment-slice.ts
@@ -10,6 +10,10 @@ export type CommentSliceShape = {
setActiveCommentDetail: (comment: WorkflowCommentDetail | null) => void
activeCommentDetailLoading: boolean
setActiveCommentDetailLoading: (loading: boolean) => void
+ replySubmitting: boolean
+ setReplySubmitting: (loading: boolean) => void
+ replyUpdating: boolean
+ setReplyUpdating: (loading: boolean) => void
commentDetailCache: Record
setCommentDetailCache: (cache: Record) => void
mentionableUsersCache: Record
@@ -27,6 +31,10 @@ export const createCommentSlice: StateCreator = set => ({
setActiveCommentDetail: activeCommentDetail => set({ activeCommentDetail }),
activeCommentDetailLoading: false,
setActiveCommentDetailLoading: activeCommentDetailLoading => set({ activeCommentDetailLoading }),
+ replySubmitting: false,
+ setReplySubmitting: replySubmitting => set({ replySubmitting }),
+ replyUpdating: false,
+ setReplyUpdating: replyUpdating => set({ replyUpdating }),
commentDetailCache: {},
setCommentDetailCache: commentDetailCache => set({ commentDetailCache }),
mentionableUsersCache: {},
diff --git a/web/i18n/de-DE/common.ts b/web/i18n/de-DE/common.ts
index 9431fbbf6a..d64b295121 100644
--- a/web/i18n/de-DE/common.ts
+++ b/web/i18n/de-DE/common.ts
@@ -61,6 +61,10 @@ const translation = {
selectAll: 'Alles auswählen',
deSelectAll: 'Alle abwählen',
config: 'Konfiguration',
+ yes: 'Ja',
+ deleteConfirmTitle: 'Löschen?',
+ no: 'Nein',
+ confirmAction: 'Bitte bestätigen Sie Ihre Aktion.',
},
placeholder: {
input: 'Bitte eingeben',
diff --git a/web/i18n/en-US/common.ts b/web/i18n/en-US/common.ts
index e30e079132..599e1d5a43 100644
--- a/web/i18n/en-US/common.ts
+++ b/web/i18n/en-US/common.ts
@@ -18,6 +18,10 @@ const translation = {
cancel: 'Cancel',
clear: 'Clear',
save: 'Save',
+ yes: 'Yes',
+ no: 'No',
+ deleteConfirmTitle: 'Delete?',
+ confirmAction: 'Please confirm your action.',
saveAndEnable: 'Save & Enable',
edit: 'Edit',
add: 'Add',
diff --git a/web/i18n/en-US/workflow.ts b/web/i18n/en-US/workflow.ts
index c84bbefc58..7371939013 100644
--- a/web/i18n/en-US/workflow.ts
+++ b/web/i18n/en-US/workflow.ts
@@ -215,8 +215,8 @@ const translation = {
deleteReplyDesc: 'This reply will be removed permanently.',
},
aria: {
- deleteComment: 'Delete comment',
- resolveComment: 'Resolve comment',
+ deleteComment: 'Delete thread',
+ resolveComment: 'Resolve',
previousComment: 'Previous comment',
nextComment: 'Next comment',
closeComment: 'Close comment',
diff --git a/web/i18n/es-ES/common.ts b/web/i18n/es-ES/common.ts
index 74af4a03b6..55c2c5e474 100644
--- a/web/i18n/es-ES/common.ts
+++ b/web/i18n/es-ES/common.ts
@@ -61,6 +61,10 @@ const translation = {
deSelectAll: 'Deseleccionar todo',
selectAll: 'Seleccionar todo',
config: 'Config',
+ confirmAction: 'Por favor, confirme su acción.',
+ deleteConfirmTitle: '¿Eliminar?',
+ yes: 'Sí',
+ no: 'No',
},
errorMsg: {
fieldRequired: '{{field}} es requerido',
diff --git a/web/i18n/fa-IR/common.ts b/web/i18n/fa-IR/common.ts
index dc6620ce2e..4d7482b143 100644
--- a/web/i18n/fa-IR/common.ts
+++ b/web/i18n/fa-IR/common.ts
@@ -61,6 +61,10 @@ const translation = {
selectAll: 'انتخاب همه',
deSelectAll: 'همه را انتخاب نکنید',
config: 'تنظیمات',
+ no: 'نه',
+ deleteConfirmTitle: 'حذف شود؟',
+ yes: 'بله',
+ confirmAction: 'لطفاً اقدام خود را تأیید کنید.',
},
errorMsg: {
fieldRequired: '{{field}} الزامی است',
diff --git a/web/i18n/fr-FR/common.ts b/web/i18n/fr-FR/common.ts
index f1e8ad007c..d2f1b6287a 100644
--- a/web/i18n/fr-FR/common.ts
+++ b/web/i18n/fr-FR/common.ts
@@ -61,6 +61,10 @@ const translation = {
deSelectAll: 'Désélectionner tout',
selectAll: 'Sélectionner tout',
config: 'Config',
+ no: 'Non',
+ confirmAction: 'Veuillez confirmer votre action.',
+ deleteConfirmTitle: 'Supprimer ?',
+ yes: 'Oui',
},
placeholder: {
input: 'Veuillez entrer',
diff --git a/web/i18n/hi-IN/common.ts b/web/i18n/hi-IN/common.ts
index d882b00929..acab7e9172 100644
--- a/web/i18n/hi-IN/common.ts
+++ b/web/i18n/hi-IN/common.ts
@@ -61,6 +61,10 @@ const translation = {
selectAll: 'सभी चुनें',
deSelectAll: 'सभी चयन हटाएँ',
config: 'कॉन्फ़िगरेशन',
+ no: 'नहीं',
+ yes: 'हाँ',
+ deleteConfirmTitle: 'हटाएं?',
+ confirmAction: 'कृपया अपनी क्रिया की पुष्टि करें।',
},
errorMsg: {
fieldRequired: '{{field}} आवश्यक है',
diff --git a/web/i18n/id-ID/common.ts b/web/i18n/id-ID/common.ts
index b224f153f6..e57b9b3641 100644
--- a/web/i18n/id-ID/common.ts
+++ b/web/i18n/id-ID/common.ts
@@ -67,6 +67,10 @@ const translation = {
sure: 'Saya yakin',
imageCopied: 'Gambar yang disalin',
config: 'Konfigurasi',
+ deleteConfirmTitle: 'Hapus?',
+ confirmAction: 'Silakan konfirmasi tindakan Anda.',
+ yes: 'Ya',
+ no: 'Tidak',
},
errorMsg: {
urlError: 'URL harus dimulai dengan http:// atau https://',
diff --git a/web/i18n/it-IT/common.ts b/web/i18n/it-IT/common.ts
index 4ba4f34240..14f705301a 100644
--- a/web/i18n/it-IT/common.ts
+++ b/web/i18n/it-IT/common.ts
@@ -61,6 +61,10 @@ const translation = {
selectAll: 'Seleziona tutto',
deSelectAll: 'Deseleziona tutto',
config: 'Config',
+ no: 'No',
+ yes: 'Sì',
+ confirmAction: 'Per favore conferma la tua azione.',
+ deleteConfirmTitle: 'Eliminare?',
},
errorMsg: {
fieldRequired: '{{field}} è obbligatorio',
diff --git a/web/i18n/ja-JP/common.ts b/web/i18n/ja-JP/common.ts
index 6cdfa3d33d..05f83e86d8 100644
--- a/web/i18n/ja-JP/common.ts
+++ b/web/i18n/ja-JP/common.ts
@@ -67,6 +67,10 @@ const translation = {
selectAll: 'すべて選択',
deSelectAll: 'すべて選択解除',
config: 'コンフィグ',
+ yes: 'はい',
+ no: 'いいえ',
+ deleteConfirmTitle: '削除しますか?',
+ confirmAction: '操作を確認してください。',
},
errorMsg: {
fieldRequired: '{{field}}は必要です',
diff --git a/web/i18n/ja-JP/workflow.ts b/web/i18n/ja-JP/workflow.ts
index cefe0b742f..f3fca315d0 100644
--- a/web/i18n/ja-JP/workflow.ts
+++ b/web/i18n/ja-JP/workflow.ts
@@ -214,8 +214,8 @@ const translation = {
deleteReplyDesc: 'この返信は完全に削除されます。',
},
aria: {
- deleteComment: 'コメントを削除',
- resolveComment: 'コメントを解決',
+ deleteComment: 'スレッドを削除',
+ resolveComment: '解決',
previousComment: '前のコメント',
nextComment: '次のコメント',
closeComment: 'コメントを閉じる',
diff --git a/web/i18n/ko-KR/common.ts b/web/i18n/ko-KR/common.ts
index 9d2948c594..617c0851c8 100644
--- a/web/i18n/ko-KR/common.ts
+++ b/web/i18n/ko-KR/common.ts
@@ -61,6 +61,10 @@ const translation = {
selectAll: '모두 선택',
deSelectAll: '모두 선택 해제',
config: '구성',
+ no: '아니요',
+ yes: '네',
+ deleteConfirmTitle: '삭제하시겠습니까?',
+ confirmAction: '귀하의 행동을 확인해 주세요.',
},
placeholder: {
input: '입력해주세요',
diff --git a/web/i18n/pl-PL/common.ts b/web/i18n/pl-PL/common.ts
index 3f820e14e0..5fa05d3ce4 100644
--- a/web/i18n/pl-PL/common.ts
+++ b/web/i18n/pl-PL/common.ts
@@ -61,6 +61,10 @@ const translation = {
deSelectAll: 'Odznacz wszystkie',
selectAll: 'Zaznacz wszystkie',
config: 'Konfiguracja',
+ yes: 'Tak',
+ no: 'Nie',
+ deleteConfirmTitle: 'Usunąć?',
+ confirmAction: 'Proszę potwierdzić swoją akcję.',
},
placeholder: {
input: 'Proszę wprowadzić',
diff --git a/web/i18n/pt-BR/common.ts b/web/i18n/pt-BR/common.ts
index 3f5f353fb6..918bc24bf8 100644
--- a/web/i18n/pt-BR/common.ts
+++ b/web/i18n/pt-BR/common.ts
@@ -61,6 +61,10 @@ const translation = {
deSelectAll: 'Desmarcar tudo',
selectAll: 'Selecionar tudo',
config: 'Configuração',
+ no: 'Não',
+ yes: 'Sim',
+ deleteConfirmTitle: 'Excluir?',
+ confirmAction: 'Por favor, confirme sua ação.',
},
placeholder: {
input: 'Por favor, insira',
diff --git a/web/i18n/ro-RO/common.ts b/web/i18n/ro-RO/common.ts
index 2e36e487fb..1a2f7f98c3 100644
--- a/web/i18n/ro-RO/common.ts
+++ b/web/i18n/ro-RO/common.ts
@@ -61,6 +61,10 @@ const translation = {
deSelectAll: 'Deselectați tot',
selectAll: 'Selectați tot',
config: 'Configurație',
+ yes: 'Da',
+ deleteConfirmTitle: 'Ștergere?',
+ no: 'Nu',
+ confirmAction: 'Vă rugăm să confirmați acțiunea dumneavoastră.',
},
placeholder: {
input: 'Vă rugăm să introduceți',
diff --git a/web/i18n/ru-RU/common.ts b/web/i18n/ru-RU/common.ts
index 8f1fb3a51b..de5ff494a6 100644
--- a/web/i18n/ru-RU/common.ts
+++ b/web/i18n/ru-RU/common.ts
@@ -61,6 +61,10 @@ const translation = {
selectAll: 'Выбрать все',
deSelectAll: 'Снять выделение со всех',
config: 'Конфигурация',
+ yes: 'Да',
+ no: 'Нет',
+ deleteConfirmTitle: 'Удалить?',
+ confirmAction: 'Пожалуйста, подтвердите ваше действие.',
},
errorMsg: {
fieldRequired: '{{field}} обязательно',
diff --git a/web/i18n/sl-SI/common.ts b/web/i18n/sl-SI/common.ts
index 2efd6f8de6..169d0997f6 100644
--- a/web/i18n/sl-SI/common.ts
+++ b/web/i18n/sl-SI/common.ts
@@ -61,6 +61,10 @@ const translation = {
selectAll: 'Izberi vse',
deSelectAll: 'Odberi vse',
config: 'Konfiguracija',
+ no: 'Ne',
+ confirmAction: 'Prosimo, potrdite svoje dejanje.',
+ deleteConfirmTitle: 'Izbrisati?',
+ yes: 'Da',
},
errorMsg: {
fieldRequired: '{{field}} je obvezno',
diff --git a/web/i18n/th-TH/common.ts b/web/i18n/th-TH/common.ts
index a673629d3e..4149843371 100644
--- a/web/i18n/th-TH/common.ts
+++ b/web/i18n/th-TH/common.ts
@@ -61,6 +61,10 @@ const translation = {
selectAll: 'เลือกทั้งหมด',
deSelectAll: 'ยกเลิกการเลือกทั้งหมด',
config: 'การตั้งค่า',
+ no: 'ไม่',
+ deleteConfirmTitle: 'ลบหรือไม่?',
+ confirmAction: 'กรุณายืนยันการกระทำของคุณ',
+ yes: 'ใช่',
},
errorMsg: {
fieldRequired: '{{field}} เป็นสิ่งจําเป็น',
diff --git a/web/i18n/tr-TR/common.ts b/web/i18n/tr-TR/common.ts
index b198bd5d63..14b4689419 100644
--- a/web/i18n/tr-TR/common.ts
+++ b/web/i18n/tr-TR/common.ts
@@ -61,6 +61,10 @@ const translation = {
selectAll: 'Hepsini Seç',
deSelectAll: 'Hepsini Seçme',
config: 'Konfigürasyon',
+ no: 'Hayır',
+ yes: 'Evet',
+ deleteConfirmTitle: 'Silinsin mi?',
+ confirmAction: 'Lütfen işleminizi onaylayın.',
},
errorMsg: {
fieldRequired: '{{field}} gereklidir',
diff --git a/web/i18n/uk-UA/common.ts b/web/i18n/uk-UA/common.ts
index 69af3cc2db..ef9bccd7ff 100644
--- a/web/i18n/uk-UA/common.ts
+++ b/web/i18n/uk-UA/common.ts
@@ -61,6 +61,10 @@ const translation = {
deSelectAll: 'Вимкнути все',
selectAll: 'Вибрати все',
config: 'Конфігурація',
+ yes: 'Так',
+ no: 'Ні',
+ deleteConfirmTitle: 'Видалити?',
+ confirmAction: 'Будь ласка, підтвердіть свої дії.',
},
placeholder: {
input: 'Будь ласка, введіть текст',
diff --git a/web/i18n/vi-VN/common.ts b/web/i18n/vi-VN/common.ts
index 216a2e2ed2..e9e1f17f56 100644
--- a/web/i18n/vi-VN/common.ts
+++ b/web/i18n/vi-VN/common.ts
@@ -61,6 +61,10 @@ const translation = {
deSelectAll: 'Bỏ chọn tất cả',
selectAll: 'Chọn Tất Cả',
config: 'Cấu hình',
+ no: 'Không',
+ yes: 'Vâng',
+ deleteConfirmTitle: 'Xóa?',
+ confirmAction: 'Vui lòng xác nhận hành động của bạn.',
},
placeholder: {
input: 'Vui lòng nhập',
diff --git a/web/i18n/zh-Hans/common.ts b/web/i18n/zh-Hans/common.ts
index 6b4ca5a34b..2f27f6a258 100644
--- a/web/i18n/zh-Hans/common.ts
+++ b/web/i18n/zh-Hans/common.ts
@@ -18,6 +18,10 @@ const translation = {
cancel: '取消',
clear: '清空',
save: '保存',
+ yes: '是',
+ no: '否',
+ deleteConfirmTitle: '删除?',
+ confirmAction: '请确认您的操作。',
saveAndEnable: '保存并启用',
edit: '编辑',
add: '添加',
diff --git a/web/i18n/zh-Hans/workflow.ts b/web/i18n/zh-Hans/workflow.ts
index f23bc97910..ae7cc427e5 100644
--- a/web/i18n/zh-Hans/workflow.ts
+++ b/web/i18n/zh-Hans/workflow.ts
@@ -215,8 +215,8 @@ const translation = {
deleteReplyDesc: '此回复将被永久删除。',
},
aria: {
- deleteComment: '删除评论',
- resolveComment: '解决评论',
+ deleteComment: '删除讨论',
+ resolveComment: '解决',
previousComment: '上一条评论',
nextComment: '下一条评论',
closeComment: '关闭评论',
diff --git a/web/i18n/zh-Hant/common.ts b/web/i18n/zh-Hant/common.ts
index a5747ba300..273ecb010f 100644
--- a/web/i18n/zh-Hant/common.ts
+++ b/web/i18n/zh-Hant/common.ts
@@ -61,6 +61,10 @@ const translation = {
deSelectAll: '全不選',
selectAll: '全選',
config: '配置',
+ yes: '是',
+ confirmAction: '請確認您的操作。',
+ deleteConfirmTitle: '刪除?',
+ no: '不',
},
placeholder: {
input: '請輸入',
diff --git a/web/jest.config.ts b/web/jest.config.ts
index ebeb2f7d7e..6c2d88448c 100644
--- a/web/jest.config.ts
+++ b/web/jest.config.ts
@@ -160,7 +160,11 @@ const config: Config = {
testEnvironment: '@happy-dom/jest-environment',
// Options that will be passed to the testEnvironment
- // testEnvironmentOptions: {},
+ testEnvironmentOptions: {
+ // Match happy-dom's default to ensure Node.js environment resolution
+ // This prevents ESM packages like uuid from using browser exports
+ customExportConditions: ['node', 'node-addons'],
+ },
// Adds a location field to test results
// testLocationInResults: false,
@@ -189,10 +193,10 @@ const config: Config = {
// transform: undefined,
// An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation
- // transformIgnorePatterns: [
- // "/node_modules/",
- // "\\.pnp\\.[^\\/]+$"
- // ],
+ // For pnpm: allow transforming uuid ESM package
+ transformIgnorePatterns: [
+ 'node_modules/(?!(.pnpm|uuid))',
+ ],
// An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them
// unmockedModulePathPatterns: undefined,
diff --git a/web/package.json b/web/package.json
index a8c7f17a61..ec6f024451 100644
--- a/web/package.json
+++ b/web/package.json
@@ -2,7 +2,7 @@
"name": "dify-web",
"version": "1.9.1",
"private": true,
- "packageManager": "pnpm@10.17.1",
+ "packageManager": "pnpm@10.18.2",
"engines": {
"node": ">=v22.11.0"
},
@@ -43,7 +43,6 @@
"knip": "knip"
},
"dependencies": {
- "@dagrejs/dagre": "^1.1.4",
"@emoji-mart/data": "^1.2.1",
"@floating-ui/react": "^0.26.25",
"@formatjs/intl-localematcher": "^0.5.6",
@@ -146,7 +145,7 @@
"@babel/core": "^7.28.3",
"@chromatic-com/storybook": "^3.1.0",
"@eslint-react/eslint-plugin": "^1.15.0",
- "@happy-dom/jest-environment": "^17.4.4",
+ "@happy-dom/jest-environment": "^20.0.0",
"@mdx-js/loader": "^3.1.0",
"@mdx-js/react": "^3.1.0",
"@next/bundle-analyzer": "15.5.4",
@@ -164,7 +163,6 @@
"@testing-library/dom": "^10.4.0",
"@testing-library/jest-dom": "^6.8.0",
"@testing-library/react": "^16.0.1",
- "@types/dagre": "^0.7.52",
"@types/jest": "^29.5.13",
"@types/js-cookie": "^3.0.6",
"@types/lodash-es": "^4.17.12",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index e7da753de9..8db5e248df 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -49,9 +49,6 @@ importers:
.:
dependencies:
- '@dagrejs/dagre':
- specifier: ^1.1.4
- version: 1.1.5
'@emoji-mart/data':
specifier: ^1.2.1
version: 1.2.1
@@ -354,8 +351,8 @@ importers:
specifier: ^1.15.0
version: 1.52.3(eslint@9.36.0(jiti@2.6.1))(ts-api-utils@2.1.0(typescript@5.8.3))(typescript@5.8.3)
'@happy-dom/jest-environment':
- specifier: ^17.4.4
- version: 17.6.3
+ specifier: ^20.0.0
+ version: 20.0.0(@jest/environment@29.7.0)(@jest/fake-timers@29.7.0)(@jest/types@29.6.3)(jest-mock@29.7.0)(jest-util@29.7.0)
'@mdx-js/loader':
specifier: ^3.1.0
version: 3.1.0(acorn@8.15.0)(webpack@5.100.2(esbuild@0.25.0)(uglify-js@3.19.3))
@@ -407,9 +404,6 @@ importers:
'@testing-library/react':
specifier: ^16.0.1
version: 16.3.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.7(@types/react@19.1.11))(@types/react@19.1.11)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@types/dagre':
- specifier: ^0.7.52
- version: 0.7.53
'@types/jest':
specifier: ^29.5.13
version: 29.5.14
@@ -1331,13 +1325,6 @@ packages:
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
engines: {node: '>=12'}
- '@dagrejs/dagre@1.1.5':
- resolution: {integrity: sha512-Ghgrh08s12DCL5SeiR6AoyE80mQELTWhJBRmXfFoqDiFkR458vPEdgTbbjA0T+9ETNxUblnD0QW55tfdvi5pjQ==}
-
- '@dagrejs/graphlib@2.2.4':
- resolution: {integrity: sha512-mepCf/e9+SKYy1d02/UkvSy6+6MoyXhVxP8lLDfA7BPE1X1d4dR0sZznmbM8/XVJ1GPM+Svnx7Xj6ZweByWUkw==}
- engines: {node: '>17.0.0'}
-
'@discoveryjs/json-ext@0.5.7':
resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==}
engines: {node: '>=10.0.0'}
@@ -1662,9 +1649,15 @@ packages:
'@formatjs/intl-localematcher@0.5.10':
resolution: {integrity: sha512-af3qATX+m4Rnd9+wHcjJ4w2ijq+rAVP3CCinJQvFv1kgSu1W6jypUmvleJxcewdxmutM8dmIRZFxO/IQBZmP2Q==}
- '@happy-dom/jest-environment@17.6.3':
- resolution: {integrity: sha512-HXuHKvpHLo9/GQ/yKMmKFyS1AYL2t9pL67+GfpYZfOAb29qD80EMozi50zRZk82KmNRBcA2A0/ErjpOwUxJrNg==}
+ '@happy-dom/jest-environment@20.0.0':
+ resolution: {integrity: sha512-dUyMDNJzPDFopSDyzKdbeYs8z9B4jLj9kXnru8TjYdGeLsQKf+6r0lq/9T2XVcu04QFxXMykt64A+KjsaJTaNA==}
engines: {node: '>=20.0.0'}
+ peerDependencies:
+ '@jest/environment': '>=25.0.0'
+ '@jest/fake-timers': '>=25.0.0'
+ '@jest/types': '>=25.0.0'
+ jest-mock: '>=25.0.0'
+ jest-util: '>=25.0.0'
'@headlessui/react@2.2.1':
resolution: {integrity: sha512-daiUqVLae8CKVjEVT19P/izW0aGK0GNhMSAeMlrDebKmoVZHcRRwbxzgtnEadUVDXyBsWo9/UH4KHeniO+0tMg==}
@@ -3375,9 +3368,6 @@ packages:
'@types/d3@7.4.3':
resolution: {integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==}
- '@types/dagre@0.7.53':
- resolution: {integrity: sha512-f4gkWqzPZvYmKhOsDnhq/R8mO4UMcKdxZo+i5SCkOU1wvGeHJeUXGIHeE9pnwGyPMDof1Vx5ZQo4nxpeg2TTVQ==}
-
'@types/debug@4.1.12':
resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
@@ -3469,6 +3459,9 @@ packages:
'@types/node@18.15.0':
resolution: {integrity: sha512-z6nr0TTEOBGkzLGmbypWOGnpSpSIBorEhC4L+4HeQ2iezKCi4f77kyslRwvHeNitymGQ+oFyIWGP96l/DPSV9w==}
+ '@types/node@20.19.20':
+ resolution: {integrity: sha512-2Q7WS25j4pS1cS8yw3d6buNCVJukOTeQ39bAnwR6sOJbaxvyCGebzTMypDFN82CxBLnl+lSWVdCCWbRY6y9yZQ==}
+
'@types/papaparse@5.3.16':
resolution: {integrity: sha512-T3VuKMC2H0lgsjI9buTB3uuKj3EMD2eap1MOuEQuBQ44EnDx/IkGhU6EwiTf9zG3za4SKlmwKAImdDKdNnCsXg==}
@@ -3528,6 +3521,9 @@ packages:
'@types/uuid@9.0.8':
resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==}
+ '@types/whatwg-mimetype@3.0.2':
+ resolution: {integrity: sha512-c2AKvDT8ToxLIOUlN51gTiHXflsfIFisS4pO7pDPoKouJCESkhZnEy623gwP9laCy5lnLDAw1vAzu2vM2YLOrA==}
+
'@types/yargs-parser@21.0.3':
resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
@@ -5572,8 +5568,8 @@ packages:
hachure-fill@0.5.2:
resolution: {integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==}
- happy-dom@17.6.3:
- resolution: {integrity: sha512-UVIHeVhxmxedbWPCfgS55Jg2rDfwf2BCKeylcPSqazLz5w3Kri7Q4xdBJubsr/+VUzFLh0VjIvh13RaDA2/Xug==}
+ happy-dom@20.0.0:
+ resolution: {integrity: sha512-GkWnwIFxVGCf2raNrxImLo397RdGhLapj5cT3R2PT7FwL62Ze1DROhzmYW7+J3p9105DYMVenEejEbnq5wA37w==}
engines: {node: '>=20.0.0'}
has-flag@4.0.0:
@@ -8270,6 +8266,9 @@ packages:
engines: {node: '>=0.8.0'}
hasBin: true
+ undici-types@6.21.0:
+ resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
+
unicode-canonical-property-names-ecmascript@2.0.1:
resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==}
engines: {node: '>=4'}
@@ -8496,10 +8495,6 @@ packages:
webidl-conversions@4.0.2:
resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==}
- webidl-conversions@7.0.0:
- resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
- engines: {node: '>=12'}
-
webpack-bundle-analyzer@4.10.1:
resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==}
engines: {node: '>= 10.13.0'}
@@ -9807,12 +9802,6 @@ snapshots:
'@jridgewell/trace-mapping': 0.3.9
optional: true
- '@dagrejs/dagre@1.1.5':
- dependencies:
- '@dagrejs/graphlib': 2.2.4
-
- '@dagrejs/graphlib@2.2.4': {}
-
'@discoveryjs/json-ext@0.5.7': {}
'@emnapi/core@1.5.0':
@@ -10154,12 +10143,12 @@ snapshots:
dependencies:
tslib: 2.8.1
- '@happy-dom/jest-environment@17.6.3':
+ '@happy-dom/jest-environment@20.0.0(@jest/environment@29.7.0)(@jest/fake-timers@29.7.0)(@jest/types@29.6.3)(jest-mock@29.7.0)(jest-util@29.7.0)':
dependencies:
'@jest/environment': 29.7.0
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
- happy-dom: 17.6.3
+ happy-dom: 20.0.0
jest-mock: 29.7.0
jest-util: 29.7.0
@@ -12145,8 +12134,6 @@ snapshots:
'@types/d3-transition': 3.0.9
'@types/d3-zoom': 3.0.8
- '@types/dagre@0.7.53': {}
-
'@types/debug@4.1.12':
dependencies:
'@types/ms': 2.1.0
@@ -12241,6 +12228,10 @@ snapshots:
'@types/node@18.15.0': {}
+ '@types/node@20.19.20':
+ dependencies:
+ undici-types: 6.21.0
+
'@types/papaparse@5.3.16':
dependencies:
'@types/node': 18.15.0
@@ -12295,6 +12286,8 @@ snapshots:
'@types/uuid@9.0.8': {}
+ '@types/whatwg-mimetype@3.0.2': {}
+
'@types/yargs-parser@21.0.3': {}
'@types/yargs@17.0.33':
@@ -14713,9 +14706,10 @@ snapshots:
hachure-fill@0.5.2: {}
- happy-dom@17.6.3:
+ happy-dom@20.0.0:
dependencies:
- webidl-conversions: 7.0.0
+ '@types/node': 20.19.20
+ '@types/whatwg-mimetype': 3.0.2
whatwg-mimetype: 3.0.0
has-flag@4.0.0: {}
@@ -18137,6 +18131,8 @@ snapshots:
uglify-js@3.19.3: {}
+ undici-types@6.21.0: {}
+
unicode-canonical-property-names-ecmascript@2.0.1: {}
unicode-match-property-ecmascript@2.0.0:
@@ -18363,8 +18359,6 @@ snapshots:
webidl-conversions@4.0.2: {}
- webidl-conversions@7.0.0: {}
-
webpack-bundle-analyzer@4.10.1:
dependencies:
'@discoveryjs/json-ext': 0.5.7