From 3db107edc9cb755668f11f29cc22601fddf1b28f Mon Sep 17 00:00:00 2001
From: yyh <92089059+lyzno1@users.noreply.github.com>
Date: Mon, 27 Apr 2026 12:46:43 +0800
Subject: [PATCH 1/9] chore(ci): increase tsslint heap limit (#35591)
---
.github/workflows/style.yml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.github/workflows/style.yml b/.github/workflows/style.yml
index 35b8f86cab..6b00899cf0 100644
--- a/.github/workflows/style.yml
+++ b/.github/workflows/style.yml
@@ -110,6 +110,8 @@ jobs:
- name: Web tsslint
if: steps.changed-files.outputs.any_changed == 'true'
working-directory: ./web
+ env:
+ NODE_OPTIONS: --max-old-space-size=4096
run: vp run lint:tss
- name: Web type check
From 818a71d6379efa2634d5d66960dc353098323729 Mon Sep 17 00:00:00 2001
From: yyh <92089059+lyzno1@users.noreply.github.com>
Date: Mon, 27 Apr 2026 13:03:38 +0800
Subject: [PATCH 2/9] refactor(web): migrate simple overlay tooltips (#35588)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
---
eslint-suppressions.json | 56 ---------
.../src/select/__tests__/index.spec.tsx | 6 +-
.../base/__tests__/header.spec.tsx | 8 --
.../data-source/base/header.tsx | 37 +++---
.../breadcrumbs/__tests__/bucket.spec.tsx | 6 +-
.../file-list/header/breadcrumbs/bucket.tsx | 32 +++--
.../common/__tests__/summary-status.spec.tsx | 3 -
.../completed/common/summary-status.tsx | 28 +++--
.../secret-key/__tests__/input-copy.spec.tsx | 6 +-
.../develop/secret-key/input-copy.tsx | 33 ++++--
.../base/__tests__/key-value-item.spec.tsx | 16 ++-
.../__tests__/icon-with-tooltip.spec.tsx | 49 ++------
.../plugins/base/badges/icon-with-tooltip.tsx | 25 ++--
.../plugins/base/key-value-item.tsx | 24 ++--
.../__tests__/plugin-source-badge.spec.tsx | 74 +++---------
.../components/plugin-source-badge.tsx | 24 ++--
.../plugin-detail-panel/endpoint-card.tsx | 39 +++++--
.../__tests__/task-status-indicator.spec.tsx | 16 +--
.../components/task-status-indicator.tsx | 109 +++++++++---------
.../mcp/detail/__tests__/content.spec.tsx | 11 +-
.../components/tools/mcp/detail/content.tsx | 67 +++++++----
21 files changed, 299 insertions(+), 370 deletions(-)
diff --git a/eslint-suppressions.json b/eslint-suppressions.json
index 1bff82ac17..b3c7a18fea 100644
--- a/eslint-suppressions.json
+++ b/eslint-suppressions.json
@@ -2422,21 +2422,11 @@
"count": 1
}
},
- "web/app/components/datasets/documents/create-from-pipeline/data-source/base/header.tsx": {
- "no-restricted-imports": {
- "count": 1
- }
- },
"web/app/components/datasets/documents/create-from-pipeline/data-source/online-documents/index.tsx": {
"ts/no-explicit-any": {
"count": 1
}
},
- "web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/bucket.tsx": {
- "no-restricted-imports": {
- "count": 1
- }
- },
"web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/item.tsx": {
"no-restricted-imports": {
"count": 1
@@ -2525,11 +2515,6 @@
"count": 1
}
},
- "web/app/components/datasets/documents/detail/completed/common/summary-status.tsx": {
- "no-restricted-imports": {
- "count": 1
- }
- },
"web/app/components/datasets/documents/detail/completed/components/index.ts": {
"no-barrel-files/no-barrel-files": {
"count": 3
@@ -2789,11 +2774,6 @@
"count": 2
}
},
- "web/app/components/develop/secret-key/input-copy.tsx": {
- "no-restricted-imports": {
- "count": 1
- }
- },
"web/app/components/develop/secret-key/secret-key-generate.tsx": {
"no-restricted-imports": {
"count": 1
@@ -3159,16 +3139,6 @@
"count": 1
}
},
- "web/app/components/plugins/base/badges/icon-with-tooltip.tsx": {
- "no-restricted-imports": {
- "count": 1
- }
- },
- "web/app/components/plugins/base/key-value-item.tsx": {
- "no-restricted-imports": {
- "count": 1
- }
- },
"web/app/components/plugins/card/index.tsx": {
"ts/no-non-null-asserted-optional-chain": {
"count": 1
@@ -3328,24 +3298,11 @@
"count": 2
}
},
- "web/app/components/plugins/plugin-detail-panel/detail-header/components/plugin-source-badge.tsx": {
- "no-restricted-imports": {
- "count": 1
- }
- },
"web/app/components/plugins/plugin-detail-panel/detail-header/hooks/index.ts": {
"no-barrel-files/no-barrel-files": {
"count": 3
}
},
- "web/app/components/plugins/plugin-detail-panel/endpoint-card.tsx": {
- "no-restricted-imports": {
- "count": 1
- },
- "ts/no-explicit-any": {
- "count": 2
- }
- },
"web/app/components/plugins/plugin-detail-panel/endpoint-list.tsx": {
"no-restricted-imports": {
"count": 1
@@ -3544,11 +3501,6 @@
"count": 1
}
},
- "web/app/components/plugins/plugin-page/plugin-tasks/components/task-status-indicator.tsx": {
- "no-restricted-imports": {
- "count": 1
- }
- },
"web/app/components/plugins/readme-panel/index.tsx": {
"react/unsupported-syntax": {
"count": 1
@@ -3822,14 +3774,6 @@
"count": 1
}
},
- "web/app/components/tools/mcp/detail/content.tsx": {
- "no-restricted-imports": {
- "count": 1
- },
- "ts/no-explicit-any": {
- "count": 3
- }
- },
"web/app/components/tools/mcp/detail/tool-item.tsx": {
"no-restricted-imports": {
"count": 1
diff --git a/packages/dify-ui/src/select/__tests__/index.spec.tsx b/packages/dify-ui/src/select/__tests__/index.spec.tsx
index eab980a607..9e3e945de0 100644
--- a/packages/dify-ui/src/select/__tests__/index.spec.tsx
+++ b/packages/dify-ui/src/select/__tests__/index.spec.tsx
@@ -231,10 +231,8 @@ describe('Select wrappers', () => {
,
)
- screen.getByRole('group', { name: 'select positioner' }).element().dispatchEvent(new MouseEvent('mouseover', {
- bubbles: true,
- }))
- asHTMLElement(screen.getByRole('dialog', { name: 'select popup' }).element()).click()
+ await screen.getByRole('group', { name: 'select positioner' }).hover()
+ await screen.getByRole('dialog', { name: 'select popup' }).click()
screen.getByRole('listbox', { name: 'select list' }).element().dispatchEvent(new FocusEvent('focusin', {
bubbles: true,
}))
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/base/__tests__/header.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/base/__tests__/header.spec.tsx
index a6abad358e..bc3b025ded 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/base/__tests__/header.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/base/__tests__/header.spec.tsx
@@ -2,18 +2,10 @@ import { render, screen } from '@testing-library/react'
import { describe, expect, it, vi } from 'vitest'
import Header from '../header'
-vi.mock('@langgenius/dify-ui/button', () => ({
- Button: ({ children }: { children: React.ReactNode }) => ,
-}))
-
vi.mock('@/app/components/base/divider', () => ({
default: () => ,
}))
-vi.mock('@/app/components/base/tooltip', () => ({
- default: ({ children }: { children: React.ReactNode }) =>
{children}
,
-}))
-
vi.mock('../credential-selector', () => ({
default: () => ,
}))
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/base/header.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/base/header.tsx
index a285946272..c91012bf4a 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/base/header.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/base/header.tsx
@@ -1,10 +1,9 @@
import type { CredentialSelectorProps } from './credential-selector'
import { Button } from '@langgenius/dify-ui/button'
-import { RiBookOpenLine, RiEqualizer2Line } from '@remixicon/react'
+import { Tooltip, TooltipContent, TooltipTrigger } from '@langgenius/dify-ui/tooltip'
import * as React from 'react'
import { useTranslation } from 'react-i18next'
import Divider from '@/app/components/base/divider'
-import Tooltip from '@/app/components/base/tooltip'
import CredentialSelector from './credential-selector'
type HeaderProps = {
@@ -22,6 +21,7 @@ const Header = ({
...rest
}: HeaderProps) => {
const { t } = useTranslation()
+ const configurationTip = t('configurationTip', { ns: 'datasetPipeline', pluginName })
return (
@@ -30,20 +30,23 @@ const Header = ({
{...rest}
/>
-
-
+
+
+
+
+ )}
+ />
+
+ {configurationTip}
+
-
+
{docTitle}
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/__tests__/bucket.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/__tests__/bucket.spec.tsx
index 83e17e6e04..b0a49eee0d 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/__tests__/bucket.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/__tests__/bucket.spec.tsx
@@ -5,9 +5,6 @@ import Bucket from '../bucket'
vi.mock('@/app/components/base/icons/src/public/knowledge/online-drive', () => ({
BucketsGray: (props: React.SVGProps) => ,
}))
-vi.mock('@/app/components/base/tooltip', () => ({
- default: ({ children }: { children?: React.ReactNode }) => {children}
,
-}))
describe('Bucket', () => {
const defaultProps = {
@@ -32,8 +29,7 @@ describe('Bucket', () => {
it('should call handleBackToBucketList on icon button click', () => {
render()
- const buttons = screen.getAllByRole('button')
- fireEvent.click(buttons[0]!)
+ fireEvent.click(screen.getByRole('button', { name: 'datasetPipeline.onlineDrive.breadcrumbs.allBuckets' }))
expect(defaultProps.handleBackToBucketList).toHaveBeenCalledOnce()
})
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/bucket.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/bucket.tsx
index 003aee6542..384188502b 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/bucket.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/bucket.tsx
@@ -1,9 +1,10 @@
+import { Button } from '@langgenius/dify-ui/button'
import { cn } from '@langgenius/dify-ui/cn'
+import { Tooltip, TooltipContent, TooltipTrigger } from '@langgenius/dify-ui/tooltip'
import * as React from 'react'
import { useCallback } from 'react'
import { useTranslation } from 'react-i18next'
import { BucketsGray } from '@/app/components/base/icons/src/public/knowledge/online-drive'
-import Tooltip from '@/app/components/base/tooltip'
type BucketProps = {
bucketName: string
@@ -27,19 +28,28 @@ const Bucket = ({
if (!disabled)
handleClickBucketName()
}, [disabled, handleClickBucketName])
+ const allBucketsLabel = t('onlineDrive.breadcrumbs.allBuckets', { ns: 'datasetPipeline' })
return (
<>
-
-
+
+
+
+
+ )}
+ />
+
+ {allBucketsLabel}
+
/
)}
@@ -262,7 +289,7 @@ const MCPDetailContent: FC = ({
-
+
{t('mcp.update', { ns: 'tools' })}
From 6c089cab6671b23c4017c8cf51d44f9b188e7529 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=9D=9E=E6=B3=95=E6=93=8D=E4=BD=9C?=
Date: Mon, 27 Apr 2026 13:27:19 +0800
Subject: [PATCH 3/9] fix(web): migrate variable type selector overlay (#35590)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com>
---
eslint-suppressions.json | 8 --
.../__tests__/variable-type-select.spec.tsx | 3 +-
.../components/variable-type-select.tsx | 76 ++++++++++---------
3 files changed, 42 insertions(+), 45 deletions(-)
diff --git a/eslint-suppressions.json b/eslint-suppressions.json
index b3c7a18fea..1e7a2662ed 100644
--- a/eslint-suppressions.json
+++ b/eslint-suppressions.json
@@ -5338,14 +5338,6 @@
"count": 2
}
},
- "web/app/components/workflow/panel/chat-variable-panel/components/variable-type-select.tsx": {
- "no-restricted-imports": {
- "count": 1
- },
- "ts/no-explicit-any": {
- "count": 4
- }
- },
"web/app/components/workflow/panel/chat-variable-panel/type.ts": {
"erasable-syntax-only/enums": {
"count": 1
diff --git a/web/app/components/workflow/panel/chat-variable-panel/components/__tests__/variable-type-select.spec.tsx b/web/app/components/workflow/panel/chat-variable-panel/components/__tests__/variable-type-select.spec.tsx
index 3a7df8a3bf..d0831c319c 100644
--- a/web/app/components/workflow/panel/chat-variable-panel/components/__tests__/variable-type-select.spec.tsx
+++ b/web/app/components/workflow/panel/chat-variable-panel/components/__tests__/variable-type-select.spec.tsx
@@ -36,8 +36,9 @@ describe('VariableTypeSelector', () => {
await user.keyboard('{Escape}')
await waitFor(() => {
- expect(screen.queryByText('number')).not.toBeInTheDocument()
+ expect(screen.getByRole('combobox')).toHaveAttribute('aria-expanded', 'false')
})
+ expect(screen.queryByRole('listbox')).not.toBeInTheDocument()
})
it('keeps the custom popup class in in-cell mode', async () => {
diff --git a/web/app/components/workflow/panel/chat-variable-panel/components/variable-type-select.tsx b/web/app/components/workflow/panel/chat-variable-panel/components/variable-type-select.tsx
index 94a0100de2..e1f776f3d5 100644
--- a/web/app/components/workflow/panel/chat-variable-panel/components/variable-type-select.tsx
+++ b/web/app/components/workflow/panel/chat-variable-panel/components/variable-type-select.tsx
@@ -1,38 +1,47 @@
'use client'
import { cn } from '@langgenius/dify-ui/cn'
-import { RiArrowDownSLine, RiCheckLine } from '@remixicon/react'
+import { Select, SelectContent, SelectItem, SelectItemIndicator, SelectItemText, SelectTrigger } from '@langgenius/dify-ui/select'
import * as React from 'react'
import { useState } from 'react'
-import {
- PortalToFollowElem,
- PortalToFollowElemContent,
- PortalToFollowElemTrigger,
-} from '@/app/components/base/portal-to-follow-elem'
-type Props = {
+type Props = {
inCell?: boolean
- value?: any
- list: any
- onSelect: (value: any) => void
+ value?: T
+ list: readonly T[]
+ onSelect: (value: T) => void
popupClassName?: string
}
-const VariableTypeSelector = ({
+const VariableTypeSelector = ({
inCell = false,
value,
list,
onSelect,
popupClassName,
-}: Props) => {
+}: Props) => {
const [open, setOpen] = useState(false)
+ const handleValueChange = (nextValue: string | null) => {
+ if (!nextValue)
+ return
+
+ const nextItem = list.find(item => item === nextValue)
+ if (!nextItem)
+ return
+
+ onSelect(nextItem)
+ }
+
return (
- setOpen(v => !v)}
- placement="bottom"
+ onOpenChange={setOpen}
+ onValueChange={handleValueChange}
>
- setOpen(v => !v)}>
+
{value}
-
+
-
-
-
- {list.map((item: any) => (
-
{
- onSelect(item)
- setOpen(false)
- }}
- >
-
{item}
- {value === item &&
}
-
- ))}
-
-
-
+
+
+ {list.map(item => (
+
+ {item}
+
+
+ ))}
+
+
)
}
From 4036515abe0f4c5e9eb4805d2f408d760baf82c2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=9D=9E=E6=B3=95=E6=93=8D=E4=BD=9C?=
Date: Mon, 27 Apr 2026 14:07:03 +0800
Subject: [PATCH 4/9] fix: improve variable picker text width allocation
(#35587)
Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com>
---
.../__tests__/var-reference-picker.helpers.spec.ts | 10 ++++++++++
.../variable/var-reference-picker.helpers.ts | 8 ++++++--
.../_base/components/variable/var-reference-picker.tsx | 6 ++++--
3 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/web/app/components/workflow/nodes/_base/components/variable/__tests__/var-reference-picker.helpers.spec.ts b/web/app/components/workflow/nodes/_base/components/variable/__tests__/var-reference-picker.helpers.spec.ts
index 7cef3ddde4..6b9ec7a642 100644
--- a/web/app/components/workflow/nodes/_base/components/variable/__tests__/var-reference-picker.helpers.spec.ts
+++ b/web/app/components/workflow/nodes/_base/components/variable/__tests__/var-reference-picker.helpers.spec.ts
@@ -182,6 +182,16 @@ describe('var-reference-picker.helpers', () => {
maxVarNameWidth: expect.any(Number),
})
+ expect(getWidthAllocations(240, '', 'sys.user_id', 'String')).toEqual({
+ maxNodeNameWidth: 0,
+ maxTypeWidth: 64,
+ maxVarNameWidth: 119,
+ })
+
+ expect(getWidthAllocations(240, 'User Input', 'aa', 'String')).toMatchObject({
+ maxVarNameWidth: 16,
+ })
+
expect(getTooltipContent(true, true, true)).toBe('full-path')
expect(getTooltipContent(true, false, false)).toBe('invalid-variable')
expect(getTooltipContent(false, false, true)).toBeNull()
diff --git a/web/app/components/workflow/nodes/_base/components/variable/var-reference-picker.helpers.ts b/web/app/components/workflow/nodes/_base/components/variable/var-reference-picker.helpers.ts
index 6cdcb916e6..f29e99cc37 100644
--- a/web/app/components/workflow/nodes/_base/components/variable/var-reference-picker.helpers.ts
+++ b/web/app/components/workflow/nodes/_base/components/variable/var-reference-picker.helpers.ts
@@ -168,11 +168,15 @@ export const getWidthAllocations = (
) => {
const availableWidth = triggerWidth - 56
const totalTextLength = (nodeTitle + varName + type).length || 1
- const priorityWidth = 15
+ const priorityWidth = nodeTitle ? 15 : 0
+ const minVarNameWidth = varName ? 16 : 0
return {
maxNodeNameWidth: priorityWidth + Math.floor(nodeTitle.length / totalTextLength * availableWidth),
maxTypeWidth: Math.floor(type.length / totalTextLength * availableWidth),
- maxVarNameWidth: -priorityWidth + Math.floor(varName.length / totalTextLength * availableWidth),
+ maxVarNameWidth: Math.max(
+ minVarNameWidth,
+ -priorityWidth + Math.floor(varName.length / totalTextLength * availableWidth),
+ ),
}
}
diff --git a/web/app/components/workflow/nodes/_base/components/variable/var-reference-picker.tsx b/web/app/components/workflow/nodes/_base/components/variable/var-reference-picker.tsx
index 7e99988ae8..c2645ee870 100644
--- a/web/app/components/workflow/nodes/_base/components/variable/var-reference-picker.tsx
+++ b/web/app/components/workflow/nodes/_base/components/variable/var-reference-picker.tsx
@@ -279,13 +279,15 @@ const VarReferencePicker: FC = ({
[outputVarNode?.type, varName],
)
const showErrorIcon = hasValue && !isValidVar
+ const shouldShowNodeName = isShowNodeName && !isEnv && !isChatVar && !isGlobal && !isRagVar
+ const visibleNodeTitle = shouldShowNodeName ? outputVarNode?.title || '' : ''
// 8(left/right-padding) + 14(icon) + 4 + 14 + 2 = 42 + 17 buff
const {
maxNodeNameWidth,
maxTypeWidth,
maxVarNameWidth,
- } = getWidthAllocations(triggerWidth, outputVarNode?.title || '', varName || '', type || '')
+ } = getWidthAllocations(triggerWidth, visibleNodeTitle, varName || '', type || '')
const hoverPopup = useMemo(() => {
const tooltipType = getTooltipContent(hasValue, isShowAPart, isValidVar)
@@ -380,7 +382,7 @@ const VarReferencePicker: FC = ({
isJustShowValue={isJustShowValue}
isLoading={isLoading}
isShowAPart={isShowAPart}
- isShowNodeName={isShowNodeName && !isEnv && !isChatVar && !isGlobal && !isRagVar}
+ isShowNodeName={shouldShowNodeName}
isSupportConstantValue={isSupportConstantValue}
maxNodeNameWidth={maxNodeNameWidth}
maxTypeWidth={maxTypeWidth}
From 3a28868a6c9e60eabbe48d183b21ba851f92e19f Mon Sep 17 00:00:00 2001
From: yyh <92089059+lyzno1@users.noreply.github.com>
Date: Mon, 27 Apr 2026 14:10:43 +0800
Subject: [PATCH 5/9] ci: upgrade web test runners (#35593)
---
.github/workflows/web-tests.yml | 6 +++---
packages/dify-ui/src/select/__tests__/index.spec.tsx | 4 ----
2 files changed, 3 insertions(+), 7 deletions(-)
diff --git a/.github/workflows/web-tests.yml b/.github/workflows/web-tests.yml
index db6a797c15..4619f3c104 100644
--- a/.github/workflows/web-tests.yml
+++ b/.github/workflows/web-tests.yml
@@ -16,7 +16,7 @@ concurrency:
jobs:
test:
name: Web Tests (${{ matrix.shardIndex }}/${{ matrix.shardTotal }})
- runs-on: depot-ubuntu-24.04
+ runs-on: depot-ubuntu-24.04-4
env:
VITEST_COVERAGE_SCOPE: app-components
strategy:
@@ -54,7 +54,7 @@ jobs:
name: Merge Test Reports
if: ${{ !cancelled() }}
needs: [test]
- runs-on: depot-ubuntu-24.04
+ runs-on: depot-ubuntu-24.04-4
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
defaults:
@@ -92,7 +92,7 @@ jobs:
dify-ui-test:
name: dify-ui Tests
- runs-on: depot-ubuntu-24.04
+ runs-on: depot-ubuntu-24.04-4
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
defaults:
diff --git a/packages/dify-ui/src/select/__tests__/index.spec.tsx b/packages/dify-ui/src/select/__tests__/index.spec.tsx
index 9e3e945de0..f2f3221eda 100644
--- a/packages/dify-ui/src/select/__tests__/index.spec.tsx
+++ b/packages/dify-ui/src/select/__tests__/index.spec.tsx
@@ -194,7 +194,6 @@ describe('Select wrappers', () => {
})
it('should forward passthrough props to positioner popup and list when passthrough props are provided', async () => {
- const onPositionerMouseEnter = vi.fn()
const onPopupClick = vi.fn()
const onListFocus = vi.fn()
@@ -208,7 +207,6 @@ describe('Select wrappers', () => {
'role': 'group',
'aria-label': 'select positioner',
'id': 'select-positioner',
- 'onMouseEnter': onPositionerMouseEnter,
}}
popupProps={{
'role': 'dialog',
@@ -231,7 +229,6 @@ describe('Select wrappers', () => {
,
)
- await screen.getByRole('group', { name: 'select positioner' }).hover()
await screen.getByRole('dialog', { name: 'select popup' }).click()
screen.getByRole('listbox', { name: 'select list' }).element().dispatchEvent(new FocusEvent('focusin', {
bubbles: true,
@@ -240,7 +237,6 @@ describe('Select wrappers', () => {
await expect.element(screen.getByRole('group', { name: 'select positioner' })).toHaveAttribute('id', 'select-positioner')
await expect.element(screen.getByRole('dialog', { name: 'select popup' })).toHaveAttribute('id', 'select-popup')
await expect.element(screen.getByRole('listbox', { name: 'select list' })).toHaveAttribute('id', 'select-list')
- expect(onPositionerMouseEnter).toHaveBeenCalledTimes(1)
expect(onPopupClick).toHaveBeenCalledTimes(1)
expect(onListFocus).toHaveBeenCalled()
})
From 89bf75eba93e14efa70e87f843fac9803f40d30c Mon Sep 17 00:00:00 2001
From: Wu Tianwei <30284043+WTW0313@users.noreply.github.com>
Date: Mon, 27 Apr 2026 14:33:34 +0800
Subject: [PATCH 6/9] fix: enhance file uploader with billing support and
update translations (#35583)
Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com>
---
.../__tests__/upload-dropzone.spec.tsx | 56 ++++++++++++++++++-
.../components/upload-dropzone.tsx | 26 ++++++---
.../__tests__/upload-dropzone.spec.tsx | 56 ++++++++++++++++++-
.../local-file/components/upload-dropzone.tsx | 26 ++++++---
web/i18n/ar-TN/dataset-creation.json | 3 +-
web/i18n/de-DE/dataset-creation.json | 3 +-
web/i18n/en-US/dataset-creation.json | 3 +-
web/i18n/es-ES/dataset-creation.json | 3 +-
web/i18n/fa-IR/dataset-creation.json | 3 +-
web/i18n/fr-FR/dataset-creation.json | 3 +-
web/i18n/hi-IN/dataset-creation.json | 3 +-
web/i18n/id-ID/dataset-creation.json | 3 +-
web/i18n/it-IT/dataset-creation.json | 3 +-
web/i18n/ja-JP/dataset-creation.json | 3 +-
web/i18n/ko-KR/dataset-creation.json | 3 +-
web/i18n/nl-NL/dataset-creation.json | 3 +-
web/i18n/pl-PL/dataset-creation.json | 3 +-
web/i18n/pt-BR/dataset-creation.json | 3 +-
web/i18n/ro-RO/dataset-creation.json | 3 +-
web/i18n/ru-RU/dataset-creation.json | 3 +-
web/i18n/sl-SI/dataset-creation.json | 3 +-
web/i18n/th-TH/dataset-creation.json | 3 +-
web/i18n/tr-TR/dataset-creation.json | 3 +-
web/i18n/uk-UA/dataset-creation.json | 3 +-
web/i18n/vi-VN/dataset-creation.json | 3 +-
web/i18n/zh-Hans/dataset-creation.json | 3 +-
web/i18n/zh-Hant/dataset-creation.json | 3 +-
27 files changed, 190 insertions(+), 43 deletions(-)
diff --git a/web/app/components/datasets/create/file-uploader/components/__tests__/upload-dropzone.spec.tsx b/web/app/components/datasets/create/file-uploader/components/__tests__/upload-dropzone.spec.tsx
index ee769c110e..ac5014e4b2 100644
--- a/web/app/components/datasets/create/file-uploader/components/__tests__/upload-dropzone.spec.tsx
+++ b/web/app/components/datasets/create/file-uploader/components/__tests__/upload-dropzone.spec.tsx
@@ -1,9 +1,17 @@
import type { RefObject } from 'react'
import type { UploadDropzoneProps } from '../upload-dropzone'
+import type { ProviderContextState } from '@/context/provider-context'
import { fireEvent, render, screen } from '@testing-library/react'
import { beforeEach, describe, expect, it, vi } from 'vitest'
import UploadDropzone from '../upload-dropzone'
+let mockEnableBilling = false
+
+vi.mock('@/context/provider-context', () => ({
+ useProviderContextSelector: (selector: (state: Pick) => T): T =>
+ selector({ enableBilling: mockEnableBilling }),
+}))
+
// Helper to create mock ref objects for testing
const createMockRef = (value: T | null = null): RefObject => ({ current: value })
@@ -27,6 +35,7 @@ describe('UploadDropzone', () => {
beforeEach(() => {
vi.clearAllMocks()
+ mockEnableBilling = false
})
describe('rendering', () => {
@@ -46,7 +55,7 @@ describe('UploadDropzone', () => {
it('should render upload icon', () => {
render()
- const icon = document.querySelector('svg')
+ const icon = document.querySelector('.i-ri-upload-cloud-2-line')
expect(icon).toBeInTheDocument()
})
@@ -67,6 +76,51 @@ describe('UploadDropzone', () => {
})
})
+ describe('tip rendering by billing state', () => {
+ it('should render tip without total count limit when billing is disabled', () => {
+ mockEnableBilling = false
+
+ render()
+
+ const tipWithoutTotal = screen.getByText(/datasetCreation\.stepOne\.uploader\.tip(?!WithTotalLimit)/)
+ expect(tipWithoutTotal).toBeInTheDocument()
+ expect(screen.queryByText(/datasetCreation\.stepOne\.uploader\.tipWithTotalLimit/)).not.toBeInTheDocument()
+ })
+
+ it('should render tip with total count limit when billing is enabled', () => {
+ mockEnableBilling = true
+
+ render()
+
+ expect(screen.getByText(/datasetCreation\.stepOne\.uploader\.tipWithTotalLimit/)).toBeInTheDocument()
+ expect(screen.queryByText(/datasetCreation\.stepOne\.uploader\.tip(?!WithTotalLimit)/)).not.toBeInTheDocument()
+ })
+
+ it('should pass file size, batch count and supported types to tip when billing is disabled', () => {
+ mockEnableBilling = false
+
+ render()
+
+ const tipText = screen.getByText(/datasetCreation\.stepOne\.uploader\.tip/).textContent ?? ''
+ expect(tipText).toContain('"size":15')
+ expect(tipText).toContain('"batchCount":5')
+ expect(tipText).toContain('"supportTypes":"PDF, DOCX, TXT"')
+ expect(tipText).not.toContain('"totalCount"')
+ })
+
+ it('should additionally pass total count to tip when billing is enabled', () => {
+ mockEnableBilling = true
+
+ render()
+
+ const tipText = screen.getByText(/datasetCreation\.stepOne\.uploader\.tipWithTotalLimit/).textContent ?? ''
+ expect(tipText).toContain('"size":15')
+ expect(tipText).toContain('"batchCount":5')
+ expect(tipText).toContain('"supportTypes":"PDF, DOCX, TXT"')
+ expect(tipText).toContain('"totalCount":10')
+ })
+ })
+
describe('file input configuration', () => {
it('should allow multiple files when supportBatchUpload is true', () => {
render()
diff --git a/web/app/components/datasets/create/file-uploader/components/upload-dropzone.tsx b/web/app/components/datasets/create/file-uploader/components/upload-dropzone.tsx
index 2a2a40d5b8..be05fd55ba 100644
--- a/web/app/components/datasets/create/file-uploader/components/upload-dropzone.tsx
+++ b/web/app/components/datasets/create/file-uploader/components/upload-dropzone.tsx
@@ -2,8 +2,8 @@
import type { RefObject } from 'react'
import type { FileUploadConfig } from '../hooks/use-file-upload'
import { cn } from '@langgenius/dify-ui/cn'
-import { RiUploadCloud2Line } from '@remixicon/react'
import { useTranslation } from 'react-i18next'
+import { useProviderContextSelector } from '@/context/provider-context'
export type UploadDropzoneProps = {
dropRef: RefObject
@@ -31,6 +31,7 @@ const UploadDropzone = ({
onFileChange,
}: UploadDropzoneProps) => {
const { t } = useTranslation()
+ const enableBilling = useProviderContextSelector(state => state.enableBilling)
return (
<>
@@ -51,7 +52,7 @@ const UploadDropzone = ({
)}
>
-
+
{supportBatchUpload
? t('stepOne.uploader.button', { ns: 'datasetCreation' })
@@ -67,13 +68,20 @@ const UploadDropzone = ({
- {t('stepOne.uploader.tip', {
- ns: 'datasetCreation',
- size: fileUploadConfig.file_size_limit,
- supportTypes: supportTypesShowNames,
- batchCount: fileUploadConfig.batch_count_limit,
- totalCount: fileUploadConfig.file_upload_limit,
- })}
+ {enableBilling
+ ? t('stepOne.uploader.tipWithTotalLimit', {
+ ns: 'datasetCreation',
+ size: fileUploadConfig.file_size_limit,
+ supportTypes: supportTypesShowNames,
+ batchCount: fileUploadConfig.batch_count_limit,
+ totalCount: fileUploadConfig.file_upload_limit,
+ })
+ : t('stepOne.uploader.tip', {
+ ns: 'datasetCreation',
+ size: fileUploadConfig.file_size_limit,
+ supportTypes: supportTypesShowNames,
+ batchCount: fileUploadConfig.batch_count_limit,
+ })}
{dragging && }
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/components/__tests__/upload-dropzone.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/components/__tests__/upload-dropzone.spec.tsx
index 74b4a3b194..3ade486474 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/components/__tests__/upload-dropzone.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/components/__tests__/upload-dropzone.spec.tsx
@@ -1,9 +1,17 @@
import type { RefObject } from 'react'
import type { UploadDropzoneProps } from '../upload-dropzone'
+import type { ProviderContextState } from '@/context/provider-context'
import { fireEvent, render, screen } from '@testing-library/react'
import { beforeEach, describe, expect, it, vi } from 'vitest'
import UploadDropzone from '../upload-dropzone'
+let mockEnableBilling = false
+
+vi.mock('@/context/provider-context', () => ({
+ useProviderContextSelector: (selector: (state: Pick) => T): T =>
+ selector({ enableBilling: mockEnableBilling }),
+}))
+
// Helper to create mock ref objects for testing
const createMockRef = (value: T | null = null): RefObject => ({ current: value })
@@ -28,6 +36,7 @@ describe('UploadDropzone', () => {
beforeEach(() => {
vi.clearAllMocks()
+ mockEnableBilling = false
})
describe('rendering', () => {
@@ -50,7 +59,7 @@ describe('UploadDropzone', () => {
it('should render upload icon', () => {
render()
- const icon = document.querySelector('svg')
+ const icon = document.querySelector('.i-ri-upload-cloud-2-line')
expect(icon).toBeInTheDocument()
})
@@ -73,6 +82,51 @@ describe('UploadDropzone', () => {
})
})
+ describe('tip rendering by billing state', () => {
+ it('should render tip without total count limit when billing is disabled', () => {
+ mockEnableBilling = false
+
+ render()
+
+ const tipWithoutTotal = screen.getByText(/datasetCreation\.stepOne\.uploader\.tip(?!WithTotalLimit)/)
+ expect(tipWithoutTotal).toBeInTheDocument()
+ expect(screen.queryByText(/datasetCreation\.stepOne\.uploader\.tipWithTotalLimit/)).not.toBeInTheDocument()
+ })
+
+ it('should render tip with total count limit when billing is enabled', () => {
+ mockEnableBilling = true
+
+ render()
+
+ expect(screen.getByText(/datasetCreation\.stepOne\.uploader\.tipWithTotalLimit/)).toBeInTheDocument()
+ expect(screen.queryByText(/datasetCreation\.stepOne\.uploader\.tip(?!WithTotalLimit)/)).not.toBeInTheDocument()
+ })
+
+ it('should pass file size, batch count and supported types to tip when billing is disabled', () => {
+ mockEnableBilling = false
+
+ render()
+
+ const tipText = screen.getByText(/datasetCreation\.stepOne\.uploader\.tip/).textContent ?? ''
+ expect(tipText).toContain('"size":15')
+ expect(tipText).toContain('"batchCount":5')
+ expect(tipText).toContain('"supportTypes":"PDF, DOCX, TXT"')
+ expect(tipText).not.toContain('"totalCount"')
+ })
+
+ it('should additionally pass total count to tip when billing is enabled', () => {
+ mockEnableBilling = true
+
+ render()
+
+ const tipText = screen.getByText(/datasetCreation\.stepOne\.uploader\.tipWithTotalLimit/).textContent ?? ''
+ expect(tipText).toContain('"size":15')
+ expect(tipText).toContain('"batchCount":5')
+ expect(tipText).toContain('"supportTypes":"PDF, DOCX, TXT"')
+ expect(tipText).toContain('"totalCount":10')
+ })
+ })
+
describe('file input configuration', () => {
it('should allow multiple files when supportBatchUpload is true', () => {
render()
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/components/upload-dropzone.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/components/upload-dropzone.tsx
index 32aee588df..eab0dd4ce0 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/components/upload-dropzone.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/components/upload-dropzone.tsx
@@ -1,7 +1,7 @@
import type { ChangeEvent, RefObject } from 'react'
import { cn } from '@langgenius/dify-ui/cn'
-import { RiUploadCloud2Line } from '@remixicon/react'
import { useTranslation } from 'react-i18next'
+import { useProviderContextSelector } from '@/context/provider-context'
type FileUploadConfig = {
file_size_limit: number
@@ -37,6 +37,7 @@ const UploadDropzone = ({
allowedExtensions,
}: UploadDropzoneProps) => {
const { t } = useTranslation()
+ const enableBilling = useProviderContextSelector(state => state.enableBilling)
return (
<>
@@ -57,7 +58,7 @@ const UploadDropzone = ({
)}
>
-
+
{supportBatchUpload ? t('stepOne.uploader.button', { ns: 'datasetCreation' }) : t('stepOne.uploader.buttonSingleFile', { ns: 'datasetCreation' })}
{allowedExtensions.length > 0 && (
@@ -66,13 +67,20 @@ const UploadDropzone = ({
- {t('stepOne.uploader.tip', {
- ns: 'datasetCreation',
- size: fileUploadConfig.file_size_limit,
- supportTypes: supportTypesShowNames,
- batchCount: fileUploadConfig.batch_count_limit,
- totalCount: fileUploadConfig.file_upload_limit,
- })}
+ {enableBilling
+ ? t('stepOne.uploader.tipWithTotalLimit', {
+ ns: 'datasetCreation',
+ size: fileUploadConfig.file_size_limit,
+ supportTypes: supportTypesShowNames,
+ batchCount: fileUploadConfig.batch_count_limit,
+ totalCount: fileUploadConfig.file_upload_limit,
+ })
+ : t('stepOne.uploader.tip', {
+ ns: 'datasetCreation',
+ size: fileUploadConfig.file_size_limit,
+ supportTypes: supportTypesShowNames,
+ batchCount: fileUploadConfig.batch_count_limit,
+ })}
{dragging && }
diff --git a/web/i18n/ar-TN/dataset-creation.json b/web/i18n/ar-TN/dataset-creation.json
index 42e9525954..33d80cac8e 100644
--- a/web/i18n/ar-TN/dataset-creation.json
+++ b/web/i18n/ar-TN/dataset-creation.json
@@ -35,7 +35,8 @@
"stepOne.uploader.cancel": "إلغاء",
"stepOne.uploader.change": "تغيير",
"stepOne.uploader.failed": "فشل التحميل",
- "stepOne.uploader.tip": "يدعم {{supportTypes}}. بحد أقصى {{batchCount}} في الدفعة الواحدة و {{size}} ميجابايت لكل منها. الحد الأقصى الإجمالي {{totalCount}} ملفات.",
+ "stepOne.uploader.tip": "يدعم {{supportTypes}}. بحد أقصى {{batchCount}} في الدفعة الواحدة و {{size}} ميجابايت لكل منها.",
+ "stepOne.uploader.tipWithTotalLimit": "يدعم {{supportTypes}}. بحد أقصى {{batchCount}} في الدفعة الواحدة و {{size}} ميجابايت لكل منها. الحد الأقصى الإجمالي {{totalCount}} ملفات.",
"stepOne.uploader.title": "تحميل ملف",
"stepOne.uploader.validation.count": "ملفات متعددة غير مدعومة",
"stepOne.uploader.validation.filesNumber": "لقد وصلت إلى حد تحميل الدفعة البالغ {{filesNumber}}.",
diff --git a/web/i18n/de-DE/dataset-creation.json b/web/i18n/de-DE/dataset-creation.json
index 4d61c0e26b..523e881a0e 100644
--- a/web/i18n/de-DE/dataset-creation.json
+++ b/web/i18n/de-DE/dataset-creation.json
@@ -35,7 +35,8 @@
"stepOne.uploader.cancel": "Abbrechen",
"stepOne.uploader.change": "Ändern",
"stepOne.uploader.failed": "Hochladen fehlgeschlagen",
- "stepOne.uploader.tip": "Unterstützt {{supportTypes}}. Maximal {{batchCount}} Dateien pro Batch und {{size}} MB pro Datei. Insgesamt maximal {{totalCount}} Dateien.",
+ "stepOne.uploader.tip": "Unterstützt {{supportTypes}}. Maximal {{batchCount}} Dateien pro Batch und {{size}} MB pro Datei.",
+ "stepOne.uploader.tipWithTotalLimit": "Unterstützt {{supportTypes}}. Maximal {{batchCount}} Dateien pro Batch und {{size}} MB pro Datei. Insgesamt maximal {{totalCount}} Dateien.",
"stepOne.uploader.title": "Textdatei hochladen",
"stepOne.uploader.validation.count": "Mehrere Dateien nicht unterstützt",
"stepOne.uploader.validation.filesNumber": "Sie haben das Limit für die Stapelverarbeitung von {{filesNumber}} erreicht.",
diff --git a/web/i18n/en-US/dataset-creation.json b/web/i18n/en-US/dataset-creation.json
index e544aaa097..1628a8641e 100644
--- a/web/i18n/en-US/dataset-creation.json
+++ b/web/i18n/en-US/dataset-creation.json
@@ -35,7 +35,8 @@
"stepOne.uploader.cancel": "Cancel",
"stepOne.uploader.change": "Change",
"stepOne.uploader.failed": "Upload failed",
- "stepOne.uploader.tip": "Supports {{supportTypes}}. Max {{batchCount}} in a batch and {{size}} MB each. Max total {{totalCount}} files.",
+ "stepOne.uploader.tip": "Supports {{supportTypes}}. Max {{batchCount}} in a batch and {{size}} MB each.",
+ "stepOne.uploader.tipWithTotalLimit": "Supports {{supportTypes}}. Max {{batchCount}} in a batch and {{size}} MB each. Max total {{totalCount}} files.",
"stepOne.uploader.title": "Upload file",
"stepOne.uploader.validation.count": "Multiple files not supported",
"stepOne.uploader.validation.filesNumber": "You have reached the batch upload limit of {{filesNumber}}.",
diff --git a/web/i18n/es-ES/dataset-creation.json b/web/i18n/es-ES/dataset-creation.json
index 9712a8ba26..571c94dd6d 100644
--- a/web/i18n/es-ES/dataset-creation.json
+++ b/web/i18n/es-ES/dataset-creation.json
@@ -35,7 +35,8 @@
"stepOne.uploader.cancel": "Cancelar",
"stepOne.uploader.change": "Cambiar",
"stepOne.uploader.failed": "Error al cargar",
- "stepOne.uploader.tip": "Soporta {{supportTypes}}. Máximo {{batchCount}} archivos por lote y {{size}} MB cada uno. Total máximo de {{totalCount}} archivos.",
+ "stepOne.uploader.tip": "Soporta {{supportTypes}}. Máximo {{batchCount}} archivos por lote y {{size}} MB cada uno.",
+ "stepOne.uploader.tipWithTotalLimit": "Soporta {{supportTypes}}. Máximo {{batchCount}} archivos por lote y {{size}} MB cada uno. Total máximo de {{totalCount}} archivos.",
"stepOne.uploader.title": "Cargar archivo",
"stepOne.uploader.validation.count": "No se admiten varios archivos",
"stepOne.uploader.validation.filesNumber": "Has alcanzado el límite de carga por lotes de {{filesNumber}}.",
diff --git a/web/i18n/fa-IR/dataset-creation.json b/web/i18n/fa-IR/dataset-creation.json
index d8717e54c7..98b4ca9c08 100644
--- a/web/i18n/fa-IR/dataset-creation.json
+++ b/web/i18n/fa-IR/dataset-creation.json
@@ -35,7 +35,8 @@
"stepOne.uploader.cancel": "لغو",
"stepOne.uploader.change": "تغییر",
"stepOne.uploader.failed": "بارگذاری ناموفق بود",
- "stepOne.uploader.tip": "پشتیبانی از {{supportTypes}}. حداکثر {{batchCount}} فایل در هر دسته و {{size}} مگابایت برای هر فایل. حداکثر کل {{totalCount}} فایل.",
+ "stepOne.uploader.tip": "پشتیبانی از {{supportTypes}}. حداکثر {{batchCount}} فایل در هر دسته و {{size}} مگابایت برای هر فایل.",
+ "stepOne.uploader.tipWithTotalLimit": "پشتیبانی از {{supportTypes}}. حداکثر {{batchCount}} فایل در هر دسته و {{size}} مگابایت برای هر فایل. حداکثر کل {{totalCount}} فایل.",
"stepOne.uploader.title": "بارگذاری فایل",
"stepOne.uploader.validation.count": "چندین فایل پشتیبانی نمیشود",
"stepOne.uploader.validation.filesNumber": "شما به حد مجاز بارگذاری دستهای {{filesNumber}} رسیدهاید.",
diff --git a/web/i18n/fr-FR/dataset-creation.json b/web/i18n/fr-FR/dataset-creation.json
index 2e415066e9..4d8742945f 100644
--- a/web/i18n/fr-FR/dataset-creation.json
+++ b/web/i18n/fr-FR/dataset-creation.json
@@ -35,7 +35,8 @@
"stepOne.uploader.cancel": "Annuler",
"stepOne.uploader.change": "Changer",
"stepOne.uploader.failed": "Le téléchargement a échoué",
- "stepOne.uploader.tip": "Prend en charge {{supportTypes}}. Maximum {{batchCount}} fichiers par lot et {{size}} MB chacun. Maximum total de {{totalCount}} fichiers.",
+ "stepOne.uploader.tip": "Prend en charge {{supportTypes}}. Maximum {{batchCount}} fichiers par lot et {{size}} MB chacun.",
+ "stepOne.uploader.tipWithTotalLimit": "Prend en charge {{supportTypes}}. Maximum {{batchCount}} fichiers par lot et {{size}} MB chacun. Maximum total de {{totalCount}} fichiers.",
"stepOne.uploader.title": "Télécharger le fichier texte",
"stepOne.uploader.validation.count": "Plusieurs fichiers non pris en charge",
"stepOne.uploader.validation.filesNumber": "Vous avez atteint la limite de téléchargement par lot de {{filesNumber}}.",
diff --git a/web/i18n/hi-IN/dataset-creation.json b/web/i18n/hi-IN/dataset-creation.json
index 7b3cc55537..70e8bf20e5 100644
--- a/web/i18n/hi-IN/dataset-creation.json
+++ b/web/i18n/hi-IN/dataset-creation.json
@@ -35,7 +35,8 @@
"stepOne.uploader.cancel": "रद्द करें",
"stepOne.uploader.change": "बदलें",
"stepOne.uploader.failed": "अपलोड विफल रहा",
- "stepOne.uploader.tip": "{{supportTypes}} समर्थित है। एक बैच में अधिकतम {{batchCount}} फ़ाइलें और प्रत्येक {{size}} MB। कुल अधिकतम {{totalCount}} फ़ाइलें।",
+ "stepOne.uploader.tip": "{{supportTypes}} समर्थित है। एक बैच में अधिकतम {{batchCount}} फ़ाइलें और प्रत्येक {{size}} MB।",
+ "stepOne.uploader.tipWithTotalLimit": "{{supportTypes}} समर्थित है। एक बैच में अधिकतम {{batchCount}} फ़ाइलें और प्रत्येक {{size}} MB। कुल अधिकतम {{totalCount}} फ़ाइलें।",
"stepOne.uploader.title": "फ़ाइल अपलोड करें",
"stepOne.uploader.validation.count": "एकाधिक फ़ाइलें समर्थित नहीं हैं",
"stepOne.uploader.validation.filesNumber": "आपने {{filesNumber}} की बैच अपलोड सीमा तक पहुँच गए हैं।",
diff --git a/web/i18n/id-ID/dataset-creation.json b/web/i18n/id-ID/dataset-creation.json
index 42c6f08a34..a6f06c8c52 100644
--- a/web/i18n/id-ID/dataset-creation.json
+++ b/web/i18n/id-ID/dataset-creation.json
@@ -35,7 +35,8 @@
"stepOne.uploader.cancel": "Membatalkan",
"stepOne.uploader.change": "Ubah",
"stepOne.uploader.failed": "Upload gagal",
- "stepOne.uploader.tip": "Mendukung {{supportTypes}}. Maksimal {{batchCount}} dalam satu batch dan {{size}} MB masing-masing. Total maksimal {{totalCount}} file.",
+ "stepOne.uploader.tip": "Mendukung {{supportTypes}}. Maksimal {{batchCount}} dalam satu batch dan {{size}} MB masing-masing.",
+ "stepOne.uploader.tipWithTotalLimit": "Mendukung {{supportTypes}}. Maksimal {{batchCount}} dalam satu batch dan {{size}} MB masing-masing. Total maksimal {{totalCount}} file.",
"stepOne.uploader.title": "Unggah file",
"stepOne.uploader.validation.count": "Beberapa file tidak didukung",
"stepOne.uploader.validation.filesNumber": "Anda telah mencapai batas unggah batch sebanyak {{filesNumber}}.",
diff --git a/web/i18n/it-IT/dataset-creation.json b/web/i18n/it-IT/dataset-creation.json
index 59226f0a50..b53a9847a6 100644
--- a/web/i18n/it-IT/dataset-creation.json
+++ b/web/i18n/it-IT/dataset-creation.json
@@ -35,7 +35,8 @@
"stepOne.uploader.cancel": "Annulla",
"stepOne.uploader.change": "Cambia",
"stepOne.uploader.failed": "Caricamento fallito",
- "stepOne.uploader.tip": "Supporta {{supportTypes}}. Massimo {{batchCount}} file per batch e {{size}} MB ciascuno. Totale massimo {{totalCount}} file.",
+ "stepOne.uploader.tip": "Supporta {{supportTypes}}. Massimo {{batchCount}} file per batch e {{size}} MB ciascuno.",
+ "stepOne.uploader.tipWithTotalLimit": "Supporta {{supportTypes}}. Massimo {{batchCount}} file per batch e {{size}} MB ciascuno. Totale massimo {{totalCount}} file.",
"stepOne.uploader.title": "Carica file",
"stepOne.uploader.validation.count": "Più file non supportati",
"stepOne.uploader.validation.filesNumber": "Hai raggiunto il limite di caricamento batch di {{filesNumber}}.",
diff --git a/web/i18n/ja-JP/dataset-creation.json b/web/i18n/ja-JP/dataset-creation.json
index 3115b69070..14ab74357d 100644
--- a/web/i18n/ja-JP/dataset-creation.json
+++ b/web/i18n/ja-JP/dataset-creation.json
@@ -35,7 +35,8 @@
"stepOne.uploader.cancel": "キャンセル",
"stepOne.uploader.change": "変更",
"stepOne.uploader.failed": "アップロードに失敗しました",
- "stepOne.uploader.tip": "{{supportTypes}}をサポートしています。1バッチあたり最大{{batchCount}}ファイル、各ファイル{{size}}MB まで。合計最大{{totalCount}}ファイル。",
+ "stepOne.uploader.tip": "{{supportTypes}}をサポートしています。1バッチあたり最大{{batchCount}}ファイル、各ファイル{{size}}MB まで。",
+ "stepOne.uploader.tipWithTotalLimit": "{{supportTypes}}をサポートしています。1バッチあたり最大{{batchCount}}ファイル、各ファイル{{size}}MB まで。合計最大{{totalCount}}ファイル。",
"stepOne.uploader.title": "テキストファイルをアップロード",
"stepOne.uploader.validation.count": "複数のファイルはサポートされていません",
"stepOne.uploader.validation.filesNumber": "バッチアップロードの制限({{filesNumber}}個)に達しました。",
diff --git a/web/i18n/ko-KR/dataset-creation.json b/web/i18n/ko-KR/dataset-creation.json
index be3e198a7b..5a392a93f1 100644
--- a/web/i18n/ko-KR/dataset-creation.json
+++ b/web/i18n/ko-KR/dataset-creation.json
@@ -35,7 +35,8 @@
"stepOne.uploader.cancel": "취소",
"stepOne.uploader.change": "변경",
"stepOne.uploader.failed": "업로드에 실패했습니다",
- "stepOne.uploader.tip": "{{supportTypes}}을(를) 지원합니다. 배치당 최대 {{batchCount}}개 파일, 각 파일당 {{size}}MB까지. 총 최대 {{totalCount}}개 파일.",
+ "stepOne.uploader.tip": "{{supportTypes}}을(를) 지원합니다. 배치당 최대 {{batchCount}}개 파일, 각 파일당 {{size}}MB까지.",
+ "stepOne.uploader.tipWithTotalLimit": "{{supportTypes}}을(를) 지원합니다. 배치당 최대 {{batchCount}}개 파일, 각 파일당 {{size}}MB까지. 총 최대 {{totalCount}}개 파일.",
"stepOne.uploader.title": "텍스트 파일 업로드",
"stepOne.uploader.validation.count": "여러 파일은 지원되지 않습니다",
"stepOne.uploader.validation.filesNumber": "일괄 업로드 제한 ({{filesNumber}}개) 에 도달했습니다.",
diff --git a/web/i18n/nl-NL/dataset-creation.json b/web/i18n/nl-NL/dataset-creation.json
index e544aaa097..1628a8641e 100644
--- a/web/i18n/nl-NL/dataset-creation.json
+++ b/web/i18n/nl-NL/dataset-creation.json
@@ -35,7 +35,8 @@
"stepOne.uploader.cancel": "Cancel",
"stepOne.uploader.change": "Change",
"stepOne.uploader.failed": "Upload failed",
- "stepOne.uploader.tip": "Supports {{supportTypes}}. Max {{batchCount}} in a batch and {{size}} MB each. Max total {{totalCount}} files.",
+ "stepOne.uploader.tip": "Supports {{supportTypes}}. Max {{batchCount}} in a batch and {{size}} MB each.",
+ "stepOne.uploader.tipWithTotalLimit": "Supports {{supportTypes}}. Max {{batchCount}} in a batch and {{size}} MB each. Max total {{totalCount}} files.",
"stepOne.uploader.title": "Upload file",
"stepOne.uploader.validation.count": "Multiple files not supported",
"stepOne.uploader.validation.filesNumber": "You have reached the batch upload limit of {{filesNumber}}.",
diff --git a/web/i18n/pl-PL/dataset-creation.json b/web/i18n/pl-PL/dataset-creation.json
index eab4afed17..72aa227c26 100644
--- a/web/i18n/pl-PL/dataset-creation.json
+++ b/web/i18n/pl-PL/dataset-creation.json
@@ -35,7 +35,8 @@
"stepOne.uploader.cancel": "Anuluj",
"stepOne.uploader.change": "Zmień",
"stepOne.uploader.failed": "Przesyłanie nie powiodło się",
- "stepOne.uploader.tip": "Obsługuje {{supportTypes}}. Maksymalnie {{batchCount}} plików w partii, każdy do {{size}} MB. Łącznie maksymalnie {{totalCount}} plików.",
+ "stepOne.uploader.tip": "Obsługuje {{supportTypes}}. Maksymalnie {{batchCount}} plików w partii, każdy do {{size}} MB.",
+ "stepOne.uploader.tipWithTotalLimit": "Obsługuje {{supportTypes}}. Maksymalnie {{batchCount}} plików w partii, każdy do {{size}} MB. Łącznie maksymalnie {{totalCount}} plików.",
"stepOne.uploader.title": "Prześlij plik tekstowy",
"stepOne.uploader.validation.count": "Nieobsługiwane przesyłanie wielu plików",
"stepOne.uploader.validation.filesNumber": "Osiągnąłeś limit przesłania partii {{filesNumber}}.",
diff --git a/web/i18n/pt-BR/dataset-creation.json b/web/i18n/pt-BR/dataset-creation.json
index 90469db226..9438ddef95 100644
--- a/web/i18n/pt-BR/dataset-creation.json
+++ b/web/i18n/pt-BR/dataset-creation.json
@@ -35,7 +35,8 @@
"stepOne.uploader.cancel": "Cancelar",
"stepOne.uploader.change": "Alterar",
"stepOne.uploader.failed": "Falha no envio",
- "stepOne.uploader.tip": "Suporta {{supportTypes}}. Máximo de {{batchCount}} arquivos por lote e {{size}} MB cada. Total máximo de {{totalCount}} arquivos.",
+ "stepOne.uploader.tip": "Suporta {{supportTypes}}. Máximo de {{batchCount}} arquivos por lote e {{size}} MB cada.",
+ "stepOne.uploader.tipWithTotalLimit": "Suporta {{supportTypes}}. Máximo de {{batchCount}} arquivos por lote e {{size}} MB cada. Total máximo de {{totalCount}} arquivos.",
"stepOne.uploader.title": "Enviar arquivo de texto",
"stepOne.uploader.validation.count": "Vários arquivos não suportados",
"stepOne.uploader.validation.filesNumber": "Limite de upload em massa {{filesNumber}}.",
diff --git a/web/i18n/ro-RO/dataset-creation.json b/web/i18n/ro-RO/dataset-creation.json
index 62ccedceea..fcc22a93a1 100644
--- a/web/i18n/ro-RO/dataset-creation.json
+++ b/web/i18n/ro-RO/dataset-creation.json
@@ -35,7 +35,8 @@
"stepOne.uploader.cancel": "Anulează",
"stepOne.uploader.change": "Schimbă",
"stepOne.uploader.failed": "Încărcarea a eșuat",
- "stepOne.uploader.tip": "Acceptă {{supportTypes}}. Maxim {{batchCount}} fișiere pe lot și {{size}} MB fiecare. Total maxim {{totalCount}} fișiere.",
+ "stepOne.uploader.tip": "Acceptă {{supportTypes}}. Maxim {{batchCount}} fișiere pe lot și {{size}} MB fiecare.",
+ "stepOne.uploader.tipWithTotalLimit": "Acceptă {{supportTypes}}. Maxim {{batchCount}} fișiere pe lot și {{size}} MB fiecare. Total maxim {{totalCount}} fișiere.",
"stepOne.uploader.title": "Încărcați fișier text",
"stepOne.uploader.validation.count": "Nu se acceptă mai multe fișiere",
"stepOne.uploader.validation.filesNumber": "Ați atins limita de încărcare în lot de {{filesNumber}} fișiere.",
diff --git a/web/i18n/ru-RU/dataset-creation.json b/web/i18n/ru-RU/dataset-creation.json
index d5e72438e6..0ff68b948c 100644
--- a/web/i18n/ru-RU/dataset-creation.json
+++ b/web/i18n/ru-RU/dataset-creation.json
@@ -35,7 +35,8 @@
"stepOne.uploader.cancel": "Отмена",
"stepOne.uploader.change": "Изменить",
"stepOne.uploader.failed": "Ошибка загрузки",
- "stepOne.uploader.tip": "Поддерживаются {{supportTypes}}. Максимум {{batchCount}} файлов за раз, каждый до {{size}} МБ. Всего максимум {{totalCount}} файлов.",
+ "stepOne.uploader.tip": "Поддерживаются {{supportTypes}}. Максимум {{batchCount}} файлов за раз, каждый до {{size}} МБ.",
+ "stepOne.uploader.tipWithTotalLimit": "Поддерживаются {{supportTypes}}. Максимум {{batchCount}} файлов за раз, каждый до {{size}} МБ. Всего максимум {{totalCount}} файлов.",
"stepOne.uploader.title": "Загрузить файл",
"stepOne.uploader.validation.count": "Несколько файлов не поддерживаются",
"stepOne.uploader.validation.filesNumber": "Вы достигли лимита пакетной загрузки {{filesNumber}} файлов.",
diff --git a/web/i18n/sl-SI/dataset-creation.json b/web/i18n/sl-SI/dataset-creation.json
index d2ab2cd6bb..37f283ee32 100644
--- a/web/i18n/sl-SI/dataset-creation.json
+++ b/web/i18n/sl-SI/dataset-creation.json
@@ -35,7 +35,8 @@
"stepOne.uploader.cancel": "Prekliči",
"stepOne.uploader.change": "Zamenjaj",
"stepOne.uploader.failed": "Nalaganje ni uspelo",
- "stepOne.uploader.tip": "Podpira {{supportTypes}}. Največje število datotek v seriji: {{batchCount}}, vsaka do {{size}} MB. Skupaj največ {{totalCount}} datotek.",
+ "stepOne.uploader.tip": "Podpira {{supportTypes}}. Največje število datotek v seriji: {{batchCount}}, vsaka do {{size}} MB.",
+ "stepOne.uploader.tipWithTotalLimit": "Podpira {{supportTypes}}. Največje število datotek v seriji: {{batchCount}}, vsaka do {{size}} MB. Skupaj največ {{totalCount}} datotek.",
"stepOne.uploader.title": "Naloži datoteko",
"stepOne.uploader.validation.count": "Podprta je le ena datoteka",
"stepOne.uploader.validation.filesNumber": "Dosegli ste omejitev za pošiljanje {{filesNumber}} datotek.",
diff --git a/web/i18n/th-TH/dataset-creation.json b/web/i18n/th-TH/dataset-creation.json
index 4f8d5dc1a1..eab4eadd78 100644
--- a/web/i18n/th-TH/dataset-creation.json
+++ b/web/i18n/th-TH/dataset-creation.json
@@ -35,7 +35,8 @@
"stepOne.uploader.cancel": "ยกเลิก",
"stepOne.uploader.change": "เปลี่ยน",
"stepOne.uploader.failed": "อัปโหลดล้มเหลว",
- "stepOne.uploader.tip": "รองรับ {{supportTypes}} สูงสุด {{batchCount}} ไฟล์ต่อชุดและ {{size}} MB แต่ละไฟล์ รวมสูงสุด {{totalCount}} ไฟล์",
+ "stepOne.uploader.tip": "รองรับ {{supportTypes}} สูงสุด {{batchCount}} ไฟล์ต่อชุดและ {{size}} MB แต่ละไฟล์",
+ "stepOne.uploader.tipWithTotalLimit": "รองรับ {{supportTypes}} สูงสุด {{batchCount}} ไฟล์ต่อชุดและ {{size}} MB แต่ละไฟล์ รวมสูงสุด {{totalCount}} ไฟล์",
"stepOne.uploader.title": "อัปโหลดไฟล์",
"stepOne.uploader.validation.count": "ไม่รองรับหลายไฟล์",
"stepOne.uploader.validation.filesNumber": "คุณถึงขีดจํากัดการอัปโหลดเป็นชุดของ {{filesNumber}} แล้ว",
diff --git a/web/i18n/tr-TR/dataset-creation.json b/web/i18n/tr-TR/dataset-creation.json
index 81f09945c2..b90a1673ee 100644
--- a/web/i18n/tr-TR/dataset-creation.json
+++ b/web/i18n/tr-TR/dataset-creation.json
@@ -35,7 +35,8 @@
"stepOne.uploader.cancel": "İptal",
"stepOne.uploader.change": "Değiştir",
"stepOne.uploader.failed": "Yükleme başarısız",
- "stepOne.uploader.tip": "{{supportTypes}} destekler. Parti başına en fazla {{batchCount}} dosya ve her biri {{size}} MB. Toplam en fazla {{totalCount}} dosya.",
+ "stepOne.uploader.tip": "{{supportTypes}} destekler. Parti başına en fazla {{batchCount}} dosya ve her biri {{size}} MB.",
+ "stepOne.uploader.tipWithTotalLimit": "{{supportTypes}} destekler. Parti başına en fazla {{batchCount}} dosya ve her biri {{size}} MB. Toplam en fazla {{totalCount}} dosya.",
"stepOne.uploader.title": "Dosya yükle",
"stepOne.uploader.validation.count": "Birden fazla dosya desteklenmiyor",
"stepOne.uploader.validation.filesNumber": "Toplu yükleme sınırına ulaştınız, {{filesNumber}} dosya.",
diff --git a/web/i18n/uk-UA/dataset-creation.json b/web/i18n/uk-UA/dataset-creation.json
index 781151fcd7..cb3a77c301 100644
--- a/web/i18n/uk-UA/dataset-creation.json
+++ b/web/i18n/uk-UA/dataset-creation.json
@@ -35,7 +35,8 @@
"stepOne.uploader.cancel": "Скасувати",
"stepOne.uploader.change": "Змінити",
"stepOne.uploader.failed": "Завантаження не вдалося",
- "stepOne.uploader.tip": "Підтримуються {{supportTypes}}. Максимум {{batchCount}} файлів за раз, кожен до {{size}} МБ. Загалом максимум {{totalCount}} файлів.",
+ "stepOne.uploader.tip": "Підтримуються {{supportTypes}}. Максимум {{batchCount}} файлів за раз, кожен до {{size}} МБ.",
+ "stepOne.uploader.tipWithTotalLimit": "Підтримуються {{supportTypes}}. Максимум {{batchCount}} файлів за раз, кожен до {{size}} МБ. Загалом максимум {{totalCount}} файлів.",
"stepOne.uploader.title": "Завантажити текстовий файл",
"stepOne.uploader.validation.count": "Не підтримується завантаження кількох файлів",
"stepOne.uploader.validation.filesNumber": "Ліміт масового завантаження {{filesNumber}}.",
diff --git a/web/i18n/vi-VN/dataset-creation.json b/web/i18n/vi-VN/dataset-creation.json
index a36a782ca4..c2c64cac51 100644
--- a/web/i18n/vi-VN/dataset-creation.json
+++ b/web/i18n/vi-VN/dataset-creation.json
@@ -35,7 +35,8 @@
"stepOne.uploader.cancel": "Hủy",
"stepOne.uploader.change": "Thay đổi",
"stepOne.uploader.failed": "Tải lên thất bại",
- "stepOne.uploader.tip": "Hỗ trợ {{supportTypes}}. Tối đa {{batchCount}} tệp trong một lô và {{size}} MB mỗi tệp. Tổng tối đa {{totalCount}} tệp.",
+ "stepOne.uploader.tip": "Hỗ trợ {{supportTypes}}. Tối đa {{batchCount}} tệp trong một lô và {{size}} MB mỗi tệp.",
+ "stepOne.uploader.tipWithTotalLimit": "Hỗ trợ {{supportTypes}}. Tối đa {{batchCount}} tệp trong một lô và {{size}} MB mỗi tệp. Tổng tối đa {{totalCount}} tệp.",
"stepOne.uploader.title": "Tải lên tệp văn bản",
"stepOne.uploader.validation.count": "Không hỗ trợ tải lên nhiều tệp",
"stepOne.uploader.validation.filesNumber": "Bạn đã đạt đến giới hạn tải lên lô của {{filesNumber}} tệp.",
diff --git a/web/i18n/zh-Hans/dataset-creation.json b/web/i18n/zh-Hans/dataset-creation.json
index 102f64e5e7..bcf794b163 100644
--- a/web/i18n/zh-Hans/dataset-creation.json
+++ b/web/i18n/zh-Hans/dataset-creation.json
@@ -35,7 +35,8 @@
"stepOne.uploader.cancel": "取消",
"stepOne.uploader.change": "更改文件",
"stepOne.uploader.failed": "上传失败",
- "stepOne.uploader.tip": "已支持 {{supportTypes}},每批最多 {{batchCount}} 个文件,每个文件不超过 {{size}} MB ,总数不超过 {{totalCount}} 个文件。",
+ "stepOne.uploader.tip": "已支持 {{supportTypes}},每批最多 {{batchCount}} 个文件,每个文件不超过 {{size}} MB。",
+ "stepOne.uploader.tipWithTotalLimit": "已支持 {{supportTypes}},每批最多 {{batchCount}} 个文件,每个文件不超过 {{size}} MB,总数不超过 {{totalCount}} 个文件。",
"stepOne.uploader.title": "上传文本文件",
"stepOne.uploader.validation.count": "暂不支持多个文件",
"stepOne.uploader.validation.filesNumber": "批量上传限制 {{filesNumber}}。",
diff --git a/web/i18n/zh-Hant/dataset-creation.json b/web/i18n/zh-Hant/dataset-creation.json
index b72a92ac50..3deef58239 100644
--- a/web/i18n/zh-Hant/dataset-creation.json
+++ b/web/i18n/zh-Hant/dataset-creation.json
@@ -35,7 +35,8 @@
"stepOne.uploader.cancel": "取消",
"stepOne.uploader.change": "更改檔案",
"stepOne.uploader.failed": "上傳失敗",
- "stepOne.uploader.tip": "支援 {{supportTypes}}。每批最多 {{batchCount}} 個檔案,每個檔案不超過 {{size}} MB,總數不超過 {{totalCount}} 個檔案。",
+ "stepOne.uploader.tip": "支援 {{supportTypes}}。每批最多 {{batchCount}} 個檔案,每個檔案不超過 {{size}} MB。",
+ "stepOne.uploader.tipWithTotalLimit": "支援 {{supportTypes}}。每批最多 {{batchCount}} 個檔案,每個檔案不超過 {{size}} MB,總數不超過 {{totalCount}} 個檔案。",
"stepOne.uploader.title": "上傳文字檔案",
"stepOne.uploader.validation.count": "暫不支援多個檔案",
"stepOne.uploader.validation.filesNumber": "批次上傳限制 {{filesNumber}}。",
From 6b5d6dacb2f61ad7c7f7c79c00e6864992d3c01c Mon Sep 17 00:00:00 2001
From: Joel
Date: Mon, 27 Apr 2026 15:16:10 +0800
Subject: [PATCH 7/9] fix: school name can not input (#35597)
---
.../__tests__/search-input.spec.tsx | 101 ++++--------------
web/app/education-apply/search-input.tsx | 3 +-
2 files changed, 24 insertions(+), 80 deletions(-)
diff --git a/web/app/education-apply/__tests__/search-input.spec.tsx b/web/app/education-apply/__tests__/search-input.spec.tsx
index bb3cd8cc84..ae9b678add 100644
--- a/web/app/education-apply/__tests__/search-input.spec.tsx
+++ b/web/app/education-apply/__tests__/search-input.spec.tsx
@@ -1,4 +1,3 @@
-import type { ReactNode } from 'react'
import { fireEvent, render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import { useState } from 'react'
@@ -23,73 +22,6 @@ vi.mock('react-i18next', () => ({
}),
}))
-vi.mock('@/app/components/base/input', () => ({
- default: ({
- value,
- onChange,
- placeholder,
- className,
- }: {
- value?: string
- onChange: (event: { target: { value: string } }) => void
- placeholder?: string
- className?: string
- }) => (
- onChange({ target: { value: e.target.value } })}
- />
- ),
-}))
-
-vi.mock('@langgenius/dify-ui/popover', async () => {
- const React = await import('react')
- const PopoverContext = React.createContext({
- open: false,
- setOpen: (_open: boolean) => {},
- })
-
- const Popover = ({
- children,
- open: controlledOpen,
- onOpenChange,
- }: {
- children: ReactNode
- open?: boolean
- onOpenChange?: (open: boolean) => void
- }) => {
- const [uncontrolledOpen, setUncontrolledOpen] = React.useState(false)
- const isControlled = controlledOpen !== undefined
- const open = isControlled ? !!controlledOpen : uncontrolledOpen
- const setOpen = (nextOpen: boolean) => {
- if (!isControlled)
- setUncontrolledOpen(nextOpen)
- onOpenChange?.(nextOpen)
- }
-
- return (
-
- {children}
-
- )
- }
-
- const PopoverTrigger = ({ render }: { render: ReactNode }) => <>{render}>
-
- const PopoverContent = ({ children }: { children: ReactNode }) => {
- const { open } = React.useContext(PopoverContext)
- return open ? {children}
: null
- }
-
- return {
- Popover,
- PopoverTrigger,
- PopoverContent,
- }
-})
-
const ControlledSearchInput = () => {
const [value, setValue] = useState('')
return
@@ -102,27 +34,38 @@ describe('education-apply/search-input', () => {
educationMocks.hasNext = false
})
- it('opens the popover, queries schools, and closes after selection', async () => {
+ it('keeps the search field editable when used as the popover trigger', async () => {
+ const user = userEvent.setup()
+ educationMocks.schools = []
+
+ render()
+
+ const input = screen.getByPlaceholderText('form.schoolName.placeholder') as HTMLInputElement
+ expect(input.type).toBe('text')
+
+ await user.type(input, 'Alpha')
+
+ expect(input).toHaveValue('Alpha')
+ expect(educationMocks.setSchools).toHaveBeenCalledWith([])
+ expect(educationMocks.querySchoolsWithDebounced).toHaveBeenLastCalledWith({
+ keywords: 'Alpha',
+ page: 0,
+ })
+ })
+
+ it('closes the popover after selecting a school', async () => {
const user = userEvent.setup()
render()
- const input = screen.getByPlaceholderText('form.schoolName.placeholder')
- await user.type(input, 'A')
+ await user.type(screen.getByPlaceholderText('form.schoolName.placeholder'), 'A')
- expect(educationMocks.setSchools).toHaveBeenCalledWith([])
- expect(educationMocks.querySchoolsWithDebounced).toHaveBeenLastCalledWith({
- keywords: 'A',
- page: 0,
- })
-
- expect(screen.getByTestId('education-search-popover')).toBeInTheDocument()
expect(screen.getByText('Alpha University')).toBeInTheDocument()
await user.click(screen.getByText('Beta College'))
expect(screen.getByDisplayValue('Beta College')).toBeInTheDocument()
- expect(screen.queryByTestId('education-search-popover')).not.toBeInTheDocument()
+ expect(screen.queryByText('Alpha University')).not.toBeInTheDocument()
})
it('loads the next page when the dropdown is scrolled to the bottom', async () => {
diff --git a/web/app/education-apply/search-input.tsx b/web/app/education-apply/search-input.tsx
index 4f930eb3eb..5125eba439 100644
--- a/web/app/education-apply/search-input.tsx
+++ b/web/app/education-apply/search-input.tsx
@@ -77,6 +77,7 @@ const SearchInput = ({
return (
)}
/>
- {!!schools.length && !!value && (
+ {open && !!schools.length && !!value && (
Date: Mon, 27 Apr 2026 15:29:42 +0800
Subject: [PATCH 8/9] chore: update dependency catalog (#35594)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
---
eslint-suppressions.json | 7 +-
package.json | 2 +-
.../src/toast/__tests__/index.spec.tsx | 15 -
pnpm-lock.yaml | 850 +++++++++---------
pnpm-workspace.yaml | 38 +-
.../app/configuration/debug/types.ts | 2 +-
web/app/components/base/chat/chat/type.ts | 2 +-
web/app/components/base/features/store.ts | 4 +-
web/app/components/base/features/types.ts | 6 +-
.../base/form/form-scenarios/base/types.ts | 2 +-
.../form/form-scenarios/input-field/types.ts | 4 +-
.../form/form-scenarios/node-panel/types.ts | 4 +-
web/app/components/base/form/types.ts | 4 +-
.../markdown-with-directive-schema.ts | 4 +-
.../components/base/text-generation/types.ts | 1 -
web/app/components/base/textarea/index.tsx | 1 -
.../detail/completed/segment-list-context.ts | 4 +-
.../hooks/use-document-list-query-state.ts | 2 +-
.../components/goto-anything/actions/types.ts | 6 +-
.../model-provider-page/declarations.ts | 4 +-
.../reasoning-config-form.helpers.ts | 4 +-
web/app/components/plugins/types.ts | 22 +-
web/app/components/tools/types.ts | 4 +-
.../hooks/use-workflow-run-utils.ts | 2 +-
.../workflow/block-selector/types.ts | 10 +-
.../collaboration/types/collaboration.ts | 4 +-
.../workflow/collaboration/types/websocket.ts | 2 +-
.../components/workflow/hooks-store/store.ts | 2 +-
.../workflow/nodes/knowledge-base/types.ts | 2 +-
.../components/workflow/nodes/loop/types.ts | 4 +-
.../workflow/nodes/trigger-schedule/types.ts | 2 +-
.../components/generic-table.tsx | 4 +-
web/app/components/workflow/types.ts | 2 +-
.../workflow/workflow-history-store.tsx | 4 +-
web/context/event-emitter.ts | 2 +-
web/contract/console/workflow-comment.ts | 2 +-
web/models/app.ts | 2 +-
web/models/common.ts | 2 +-
web/models/datasets.ts | 52 +-
web/models/debug.ts | 2 +-
web/models/explore.ts | 2 +-
web/models/log.ts | 25 +-
web/scripts/gen-doc-paths.ts | 6 +-
web/service/base.ts | 56 +-
web/types/app.ts | 7 +-
web/types/doc-paths.ts | 10 +-
web/types/pipeline.tsx | 2 +-
web/types/workflow.ts | 2 +-
48 files changed, 586 insertions(+), 616 deletions(-)
diff --git a/eslint-suppressions.json b/eslint-suppressions.json
index 1e7a2662ed..3f3bd5f1f7 100644
--- a/eslint-suppressions.json
+++ b/eslint-suppressions.json
@@ -2059,7 +2059,7 @@
},
"web/app/components/base/text-generation/types.ts": {
"no-barrel-files/no-barrel-files": {
- "count": 3
+ "count": 1
}
},
"web/app/components/base/textarea/index.stories.tsx": {
@@ -2070,11 +2070,6 @@
"count": 1
}
},
- "web/app/components/base/textarea/index.tsx": {
- "react-refresh/only-export-components": {
- "count": 1
- }
- },
"web/app/components/base/video-gallery/VideoPlayer.tsx": {
"react/set-state-in-effect": {
"count": 1
diff --git a/package.json b/package.json
index 5a67b66a9c..42d6961f5f 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
"name": "dify",
"type": "module",
"private": true,
- "packageManager": "pnpm@10.33.0",
+ "packageManager": "pnpm@10.33.2",
"engines": {
"node": "^22.22.1"
},
diff --git a/packages/dify-ui/src/toast/__tests__/index.spec.tsx b/packages/dify-ui/src/toast/__tests__/index.spec.tsx
index 51fccf70d8..1e302618c5 100644
--- a/packages/dify-ui/src/toast/__tests__/index.spec.tsx
+++ b/packages/dify-ui/src/toast/__tests__/index.spec.tsx
@@ -125,21 +125,6 @@ describe('@langgenius/dify-ui/toast', () => {
expect(onClose).toHaveBeenCalledTimes(1)
})
- it('should respect the host timeout configuration', async () => {
- const screen = await render()
-
- toast('Configured timeout')
- await expect.element(screen.getByText('Configured timeout')).toBeInTheDocument()
-
- await vi.advanceTimersByTimeAsync(2999)
- expect(document.body).toHaveTextContent('Configured timeout')
-
- await vi.advanceTimersByTimeAsync(1)
- await vi.waitFor(() => {
- expect(document.body).not.toHaveTextContent('Configured timeout')
- })
- })
-
it('should respect custom timeout values including zero', async () => {
const screen = await render()
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 9408bfb4b3..c802698100 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -7,11 +7,11 @@ settings:
catalogs:
default:
'@amplitude/analytics-browser':
- specifier: 2.41.0
- version: 2.41.0
+ specifier: 2.41.1
+ version: 2.41.1
'@amplitude/plugin-session-replay-browser':
- specifier: 1.27.10
- version: 1.27.10
+ specifier: 1.28.0
+ version: 1.28.0
'@antfu/eslint-config':
specifier: 8.2.0
version: 8.2.0
@@ -22,8 +22,8 @@ catalogs:
specifier: 5.1.2
version: 5.1.2
'@cucumber/cucumber':
- specifier: 12.8.1
- version: 12.8.1
+ specifier: 12.8.2
+ version: 12.8.2
'@egoist/tailwindcss-icons':
specifier: 1.9.2
version: 1.9.2
@@ -40,8 +40,8 @@ catalogs:
specifier: 0.27.19
version: 0.27.19
'@formatjs/intl-localematcher':
- specifier: 0.8.3
- version: 0.8.3
+ specifier: 0.8.4
+ version: 0.8.4
'@headlessui/react':
specifier: 2.2.10
version: 2.2.10
@@ -94,17 +94,17 @@ catalogs:
specifier: 16.2.4
version: 16.2.4
'@orpc/client':
- specifier: 1.13.14
- version: 1.13.14
+ specifier: 1.14.0
+ version: 1.14.0
'@orpc/contract':
- specifier: 1.13.14
- version: 1.13.14
+ specifier: 1.14.0
+ version: 1.14.0
'@orpc/openapi-client':
- specifier: 1.13.14
- version: 1.13.14
+ specifier: 1.14.0
+ version: 1.14.0
'@orpc/tanstack-query':
- specifier: 1.13.14
- version: 1.13.14
+ specifier: 1.14.0
+ version: 1.14.0
'@playwright/test':
specifier: 1.59.1
version: 1.59.1
@@ -115,8 +115,8 @@ catalogs:
specifier: 4.2.0
version: 4.2.0
'@sentry/react':
- specifier: 10.49.0
- version: 10.49.0
+ specifier: 10.50.0
+ version: 10.50.0
'@storybook/addon-docs':
specifier: 10.3.5
version: 10.3.5
@@ -157,8 +157,8 @@ catalogs:
specifier: 4.2.4
version: 4.2.4
'@tanstack/eslint-plugin-query':
- specifier: 5.99.2
- version: 5.99.2
+ specifier: 5.100.5
+ version: 5.100.5
'@tanstack/react-devtools':
specifier: 0.10.2
version: 0.10.2
@@ -169,11 +169,11 @@ catalogs:
specifier: 0.2.22
version: 0.2.22
'@tanstack/react-query':
- specifier: 5.99.2
- version: 5.99.2
+ specifier: 5.100.5
+ version: 5.100.5
'@tanstack/react-query-devtools':
- specifier: 5.99.2
- version: 5.99.2
+ specifier: 5.100.5
+ version: 5.100.5
'@tanstack/react-virtual':
specifier: 3.13.24
version: 3.13.24
@@ -229,20 +229,20 @@ catalogs:
specifier: 8.59.0
version: 8.59.0
'@typescript/native-preview':
- specifier: 7.0.0-dev.20260422.1
- version: 7.0.0-dev.20260422.1
+ specifier: 7.0.0-dev.20260426.1
+ version: 7.0.0-dev.20260426.1
'@vitejs/plugin-react':
specifier: 6.0.1
version: 6.0.1
'@vitejs/plugin-rsc':
- specifier: 0.5.24
- version: 0.5.24
+ specifier: 0.5.25
+ version: 0.5.25
'@vitest/coverage-v8':
specifier: 4.1.5
version: 4.1.5
abcjs:
- specifier: 6.6.2
- version: 6.6.2
+ specifier: 6.6.3
+ version: 6.6.3
agentation:
specifier: 3.0.2
version: 3.0.2
@@ -337,8 +337,8 @@ catalogs:
specifier: 2.3.6
version: 2.3.6
hono:
- specifier: 4.12.14
- version: 4.12.14
+ specifier: 4.12.15
+ version: 4.12.15
html-entities:
specifier: 2.6.0
version: 2.6.0
@@ -376,8 +376,8 @@ catalogs:
specifier: 0.16.45
version: 0.16.45
knip:
- specifier: 6.6.1
- version: 6.6.1
+ specifier: 6.7.0
+ version: 6.7.0
ky:
specifier: 2.0.2
version: 2.0.2
@@ -388,8 +388,8 @@ catalogs:
specifier: 0.43.0
version: 0.43.0
loro-crdt:
- specifier: 1.11.1
- version: 1.11.1
+ specifier: 1.12.0
+ version: 1.12.0
mermaid:
specifier: 11.14.0
version: 11.14.0
@@ -418,8 +418,8 @@ catalogs:
specifier: 1.59.1
version: 1.59.1
postcss:
- specifier: 8.5.10
- version: 8.5.10
+ specifier: 8.5.12
+ version: 8.5.12
qrcode.react:
specifier: 4.2.0
version: 4.2.0
@@ -609,7 +609,7 @@ importers:
devDependencies:
'@cucumber/cucumber':
specifier: 'catalog:'
- version: 12.8.1
+ version: 12.8.2
'@dify/tsconfig':
specifier: workspace:*
version: link:../packages/tsconfig
@@ -621,7 +621,7 @@ importers:
version: 25.6.0
'@typescript/native-preview':
specifier: 'catalog:'
- version: 7.0.0-dev.20260422.1
+ version: 7.0.0-dev.20260426.1
tsx:
specifier: 'catalog:'
version: 4.21.0
@@ -682,7 +682,7 @@ importers:
version: 19.2.3(@types/react@19.2.14)
'@typescript/native-preview':
specifier: 'catalog:'
- version: 7.0.0-dev.20260422.1
+ version: 7.0.0-dev.20260426.1
'@vitejs/plugin-react':
specifier: 'catalog:'
version: 6.0.1(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))
@@ -733,7 +733,7 @@ importers:
dependencies:
'@typescript/native-preview':
specifier: 'catalog:'
- version: 7.0.0-dev.20260422.1
+ version: 7.0.0-dev.20260426.1
typescript:
specifier: 'catalog:'
version: 6.0.3
@@ -772,7 +772,7 @@ importers:
version: 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)
'@typescript/native-preview':
specifier: 'catalog:'
- version: 7.0.0-dev.20260422.1
+ version: 7.0.0-dev.20260426.1
'@vitest/coverage-v8':
specifier: 'catalog:'
version: 4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(esbuild@0.27.2)(happy-dom@20.9.0)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3)
@@ -796,10 +796,10 @@ importers:
dependencies:
'@amplitude/analytics-browser':
specifier: 'catalog:'
- version: 2.41.0
+ version: 2.41.1
'@amplitude/plugin-session-replay-browser':
specifier: 'catalog:'
- version: 1.27.10(@amplitude/rrweb@2.0.0-alpha.37)
+ version: 1.28.0(@amplitude/rrweb@2.0.0-alpha.37)
'@base-ui/react':
specifier: 'catalog:'
version: 1.4.1(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
@@ -811,7 +811,7 @@ importers:
version: 0.27.19(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
'@formatjs/intl-localematcher':
specifier: 'catalog:'
- version: 0.8.3
+ version: 0.8.4
'@headlessui/react':
specifier: 'catalog:'
version: 2.2.10(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
@@ -844,22 +844,22 @@ importers:
version: 4.7.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
'@orpc/client':
specifier: 'catalog:'
- version: 1.13.14
+ version: 1.14.0
'@orpc/contract':
specifier: 'catalog:'
- version: 1.13.14
+ version: 1.14.0
'@orpc/openapi-client':
specifier: 'catalog:'
- version: 1.13.14
+ version: 1.14.0
'@orpc/tanstack-query':
specifier: 'catalog:'
- version: 1.13.14(@orpc/client@1.13.14)(@tanstack/query-core@5.99.2)
+ version: 1.14.0(@orpc/client@1.14.0)(@tanstack/query-core@5.100.5)
'@remixicon/react':
specifier: 'catalog:'
version: 4.9.0(react@19.2.5)
'@sentry/react':
specifier: 'catalog:'
- version: 10.49.0(react@19.2.5)
+ version: 10.50.0(react@19.2.5)
'@streamdown/math':
specifier: 'catalog:'
version: 1.0.2(react@19.2.5)
@@ -877,13 +877,13 @@ importers:
version: 1.29.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
'@tanstack/react-query':
specifier: 'catalog:'
- version: 5.99.2(react@19.2.5)
+ version: 5.100.5(react@19.2.5)
'@tanstack/react-virtual':
specifier: 'catalog:'
version: 3.13.24(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
abcjs:
specifier: 'catalog:'
- version: 6.6.2
+ version: 6.6.3
ahooks:
specifier: 'catalog:'
version: 3.9.7(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
@@ -982,7 +982,7 @@ importers:
version: 0.43.0
loro-crdt:
specifier: 'catalog:'
- version: 1.11.1
+ version: 1.12.0
mermaid:
specifier: 'catalog:'
version: 11.14.0
@@ -1121,7 +1121,7 @@ importers:
version: 3.0.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)
'@hono/node-server':
specifier: 'catalog:'
- version: 1.19.14(hono@4.12.14)
+ version: 1.19.14(hono@4.12.15)
'@iconify-json/heroicons':
specifier: 'catalog:'
version: 1.2.3
@@ -1175,7 +1175,7 @@ importers:
version: 4.2.4(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))
'@tanstack/eslint-plugin-query':
specifier: 'catalog:'
- version: 5.99.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)
+ version: 5.100.5(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)
'@tanstack/react-devtools':
specifier: 'catalog:'
version: 0.10.2(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(csstype@3.2.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
@@ -1184,7 +1184,7 @@ importers:
version: 0.2.22(@types/react@19.2.14)(csstype@3.2.3)(react@19.2.5)(solid-js@1.9.11)
'@tanstack/react-query-devtools':
specifier: 'catalog:'
- version: 5.99.2(@tanstack/react-query@5.99.2(react@19.2.5))(react@19.2.5)
+ version: 5.100.5(@tanstack/react-query@5.100.5(react@19.2.5))(react@19.2.5)
'@testing-library/dom':
specifier: 'catalog:'
version: 10.4.1
@@ -1235,13 +1235,13 @@ importers:
version: 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)
'@typescript/native-preview':
specifier: 'catalog:'
- version: 7.0.0-dev.20260422.1
+ version: 7.0.0-dev.20260426.1
'@vitejs/plugin-react':
specifier: 'catalog:'
version: 6.0.1(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))
'@vitejs/plugin-rsc':
specifier: 'catalog:'
- version: 0.5.24(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(react-dom@19.2.5(react@19.2.5))(react-server-dom-webpack@19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)
+ version: 0.5.25(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(react-dom@19.2.5(react@19.2.5))(react-server-dom-webpack@19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)
'@vitest/coverage-v8':
specifier: 'catalog:'
version: 4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(esbuild@0.27.2)(happy-dom@20.9.0)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3)
@@ -1283,13 +1283,13 @@ importers:
version: 20.9.0
hono:
specifier: 'catalog:'
- version: 4.12.14
+ version: 4.12.15
knip:
specifier: 'catalog:'
- version: 6.6.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)
+ version: 6.7.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)
postcss:
specifier: 'catalog:'
- version: 8.5.10
+ version: 8.5.12
react-server-dom-webpack:
specifier: 'catalog:'
version: 19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
@@ -1310,7 +1310,7 @@ importers:
version: 3.19.3
vinext:
specifier: 'catalog:'
- version: 0.0.41(@mdx-js/rollup@3.1.1)(@vitejs/plugin-react@6.0.1(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3)))(@vitejs/plugin-rsc@0.5.24(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(react-dom@19.2.5(react@19.2.5))(react-server-dom-webpack@19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5))(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(next@16.2.4(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react-server-dom-webpack@19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)(typescript@6.0.3)
+ version: 0.0.41(@mdx-js/rollup@3.1.1)(@vitejs/plugin-react@6.0.1(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3)))(@vitejs/plugin-rsc@0.5.25(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(react-dom@19.2.5(react@19.2.5))(react-server-dom-webpack@19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5))(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(next@16.2.4(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react-server-dom-webpack@19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)(typescript@6.0.3)
vite:
specifier: npm:@voidzero-dev/vite-plus-core@0.1.19
version: '@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3)'
@@ -1336,17 +1336,17 @@ packages:
resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
engines: {node: '>=10'}
- '@amplitude/analytics-browser@2.41.0':
- resolution: {integrity: sha512-zCfsm4mvytJRCvXxc04vfI0gmDkVUsfFXwoPl6l3g6uo9xC6Z22heDWot4NLUpeqKbQGBWJLYSzaD08HigXZNA==}
+ '@amplitude/analytics-browser@2.41.1':
+ resolution: {integrity: sha512-qSUFBtln+VY6XIki/Ym3adUlnBvb3TrfFHhXFp5TVi9rz/8p/vKWmQ9Htsf4I0H70xZCe+sNHv53NOyTt1VzUA==}
- '@amplitude/analytics-client-common@2.4.45':
- resolution: {integrity: sha512-2lQRpLEiZp3hqFXSpGgzsOVeXCaDwW8hCKJZeXWB6GGcLsGn0ssEC7RNxLpUMNWCctCF7Dfr9a4MSVe54jtiPw==}
+ '@amplitude/analytics-client-common@2.4.46':
+ resolution: {integrity: sha512-cvNzR7GY+PqvdT7b1jjs+LhLjkLr/raS8C6Jo4nTD/hDzWI+b73u12atttbgWKGJMCmki+xs+X0oyMt207+qtQ==}
'@amplitude/analytics-connector@1.6.4':
resolution: {integrity: sha512-SpIv0IQMNIq6SH3UqFGiaZyGSc7PBZwRdq7lvP0pBxW8i4Ny+8zwI0pV+VMfMHQwWY3wdIbWw5WQphNjpdq1/Q==}
- '@amplitude/analytics-core@2.47.0':
- resolution: {integrity: sha512-LLffKoq7nhEtFtXz/QGcimlcS3vYugEW14JdAeZE03k2empShrAhCzigHL3Xiz+ywW9KC3inUalnbxybVhU0YA==}
+ '@amplitude/analytics-core@2.47.1':
+ resolution: {integrity: sha512-ZdtAx5syGZBQpbZVLnc/zp7sMlq7+b1dxo/5gCG/4thNW0vOHfN4nYGlV2+k/VEEw4/hW893t5EPUCbxUJM+OQ==}
'@amplitude/analytics-types@2.11.1':
resolution: {integrity: sha512-wFEgb0t99ly2uJKm5oZ28Lti0Kh5RecR5XBkwfUpDzn84IoCIZ8GJTsMw/nThu8FZFc7xFDA4UAt76zhZKrs9A==}
@@ -1354,29 +1354,29 @@ packages:
'@amplitude/experiment-core@0.7.2':
resolution: {integrity: sha512-Wc2NWvgQ+bLJLeF0A9wBSPIaw0XuqqgkPKsoNFQrmS7r5Djd56um75In05tqmVntPJZRvGKU46pAp8o5tdf4mA==}
- '@amplitude/plugin-autocapture-browser@1.26.0':
- resolution: {integrity: sha512-LCLsMr8usQJK6R6VjCjmiJ3ZRICh0QJ6xbDEwAm5XhuLFGRNsB2b9eRHlvalsPrTXR+b4Hjr71/dh3XNYZ9rqw==}
+ '@amplitude/plugin-autocapture-browser@1.26.1':
+ resolution: {integrity: sha512-5Lge/azo8/+JC2YAnX/2YoNYfhKp00MtyAjiZFmFkG5pQUguXnSqTJw0UaUu/gzIZo5VaDAIGFZIk0b++ayTyA==}
- '@amplitude/plugin-custom-enrichment-browser@0.1.6':
- resolution: {integrity: sha512-oAVR5biFh7kMm4XOji7r684TA/VOwK8N1OLMdACQdwBl8MPiBLJDIPWtkVW5iSXyIjwYkOlrjygtnkei1q2S8g==}
+ '@amplitude/plugin-custom-enrichment-browser@0.1.7':
+ resolution: {integrity: sha512-r4hoD38mbtXH91glpxI0EIslwWMrVuupWar2mp/OrbKEHfxdXrOsXfIc17fxYnQHqWpGuBghNMwh0oppRzJtAw==}
- '@amplitude/plugin-event-property-attribution-browser@0.1.1':
- resolution: {integrity: sha512-2YHF/O+WVX0VxTAh3Jh77Ib+LeUl1xbyF1qW2YzGurY8uBUeAd62+7qFaXQSBWk1qMiTguxjKXrbbtxssfWWWg==}
+ '@amplitude/plugin-event-property-attribution-browser@0.1.2':
+ resolution: {integrity: sha512-Zd0EioWcm+UhrkJMls2mn+9AXpA/H9TeuULZOFbggRhfZ3rLtJMF3LqGLRs8UyA7vHXiqKsE7DXLur2Ya8sBzA==}
- '@amplitude/plugin-network-capture-browser@1.9.15':
- resolution: {integrity: sha512-PkFWjKyOkkzw/9yKKJ2sa19F2Uo9NiSAR0l0NmELcO8h4TVJdfc4HlvM68AnWJ15nkFHh+UoG7SHwb7vp7ZC3Q==}
+ '@amplitude/plugin-network-capture-browser@1.9.16':
+ resolution: {integrity: sha512-VzY6OzWM3p6hYWZcOh/Ex+j/OgCfMfKO94wK71vgRL8+U3RTBr8bAw36i2twjL1jvAkSXv/PxTmzied1SEdKqQ==}
- '@amplitude/plugin-page-url-enrichment-browser@0.7.7':
- resolution: {integrity: sha512-P67Xmi5/oDFZOO2DfsAvvDS280WdzVsl6JTPvgJc4+WJ1YypbYFA7S87LUIiwtuvgnHXFsgOjNUI36bOEVTW4w==}
+ '@amplitude/plugin-page-url-enrichment-browser@0.7.8':
+ resolution: {integrity: sha512-/6FevlSaB7a5+R7Pph6I/Hc412JbNOy4z7g4JvzImeTtmmN8xMpg7Shu17Aum2mi2sK7sofHE1UMAXEoULpJEA==}
- '@amplitude/plugin-page-view-tracking-browser@2.10.1':
- resolution: {integrity: sha512-XEk0Z7ZfN6gV0h1R2hOZkby/SUTIbGU8SgWR8gt4O+DEx+pxfTQEuCM2ya1YaCV2h1SBrTK4bnIHgPax/4/HoA==}
+ '@amplitude/plugin-page-view-tracking-browser@2.10.2':
+ resolution: {integrity: sha512-1H/3YAXi5bVLZ0YNRbnHEne2J9c7kXvwmppSOZgQ21LIdxBo9A4WJhWPAJIZKqn9W2BbgrpxI/BjwOUMf5gYQw==}
- '@amplitude/plugin-session-replay-browser@1.27.10':
- resolution: {integrity: sha512-AWvAtiQ9/T52DCXS3hcjtHQs4GvZxM7rxgs24DgxqFY2uwCTTnI78le4U7nPWhSrj02YK+3b8y7QN3mm23lHyQ==}
+ '@amplitude/plugin-session-replay-browser@1.28.0':
+ resolution: {integrity: sha512-alWW4czF7gINNaJAwCO+HXGkAgam7HjixNt/j5fCk/LGfWyHru8Yg1G5TKjOugrWEeZEqaDAVYGz+KcqbX3RVQ==}
- '@amplitude/plugin-web-vitals-browser@1.1.30':
- resolution: {integrity: sha512-nLZk2dTHG8pLd/fFH0zdIhWnu4u+oPc/DKBYXwZ4zk6YKOkl0V+sbDUNGNnZWlOWRykq+0rkOX/WnUyClvMtaQ==}
+ '@amplitude/plugin-web-vitals-browser@1.1.31':
+ resolution: {integrity: sha512-zIGLyfb9I1rgdJQtRVir5d97spEe1er1vrPDzfHbrcwCgrLR8CGEzx1LQQcHCB6vg5tjrHsi7LdvZCLYRj+lCA==}
'@amplitude/rrdom@2.0.0-alpha.37':
resolution: {integrity: sha512-u4dSnBtlbJ8oU5P/Ywl2RLqvjqWbkl4ScMUbvQA7in4pWcx+0NRN+VVjLZXQcd8Fn7E/rcxjeUh7e7HfwvdasQ==}
@@ -1410,8 +1410,8 @@ packages:
'@amplitude/rrweb@2.0.0-alpha.37':
resolution: {integrity: sha512-jJkSpPYiVgOZB422pb2jOJJn3pvb5E5f9vKK8CEmUlk2mVAl6kPQzW98mb05M65OJFj5nn9tSe9h5r5+Cl93ag==}
- '@amplitude/session-replay-browser@1.37.0':
- resolution: {integrity: sha512-65KC35dK2yxHoBTDTZeJC8qPchj4lFqTuNjBbH1jaV3hzYoRrGA/xWXLZgxlFvc/7yvcGBbTUW2TeGMAeW6FUg==}
+ '@amplitude/session-replay-browser@1.38.0':
+ resolution: {integrity: sha512-SwOdPb/pB7A1ysQico62cwAQ02Y6E8FMN0BNg8KtMC8wXpUxaGKaL952mpNqrvPZs+kwTDYS6dKHA7pg2TfX4w==}
'@amplitude/targeting@0.2.0':
resolution: {integrity: sha512-/50ywTrC4hfcfJVBbh5DFbqMPPfaIOivZeb5Gb+OGM03QrA+lsUqdvtnKLNuWtceD4H6QQ2KFzPJ5aAJLyzVDA==}
@@ -1649,8 +1649,8 @@ packages:
'@cucumber/cucumber-expressions@19.0.0':
resolution: {integrity: sha512-4FKoOQh2Uf6F6/Ln+1OxuK8LkTg6PyAqekhf2Ix8zqV2M54sH+m7XNJNLhOFOAW/t9nxzRbw2CcvXbCLjcvHZg==}
- '@cucumber/cucumber@12.8.1':
- resolution: {integrity: sha512-hCXxiStjbZsRVZlV+CMywkqBtJ6RZTQeXSBZGPHm1YoIOI6YB8pCo0KlnJMmxfKfoeUKagtQMNPnpJBXwhkUjQ==}
+ '@cucumber/cucumber@12.8.2':
+ resolution: {integrity: sha512-IvprstODr0JYTtVG7CQbphN6AGRpzzAQ1EjG7TSumuS15uvVt0inWm8/9uzX8oJwEv5ReU7JruDFim4938omog==}
engines: {node: 20 || 22 || >=24}
hasBin: true
@@ -1669,8 +1669,8 @@ packages:
'@cucumber/gherkin@38.0.0':
resolution: {integrity: sha512-duEXK+KDfQUzu3vsSzXjkxQ2tirF5PRsc1Xrts6THKHJO6mjw4RjM8RV+vliuDasmhhrmdLcOcM7d9nurNTJKw==}
- '@cucumber/html-formatter@23.0.0':
- resolution: {integrity: sha512-WwcRzdM8Ixy4e53j+Frm3fKM5rNuIyWUfy4HajEN+Xk/YcjA6yW0ACGTFDReB++VDZz/iUtwYdTlPRY36NbqJg==}
+ '@cucumber/html-formatter@23.1.0':
+ resolution: {integrity: sha512-DcCSFoGs6jbwzXPgX1CwgJKEE+ZMcIEzq/0Memg0o24maNn9NJizBFHmoFWG4iv/OxHza+mvc+56cTHetfHndw==}
peerDependencies:
'@cucumber/messages': '>=18'
@@ -1684,8 +1684,8 @@ packages:
peerDependencies:
'@cucumber/messages': '>=17.1.1'
- '@cucumber/messages@32.2.0':
- resolution: {integrity: sha512-oYp1dgL2TByYWL51Z+rNm+/mFtJhiPU9WS03goes9EALb8d9GFcXRbG1JluFLFaChF1YDqIzLac0kkC3tv1DjQ==}
+ '@cucumber/messages@32.3.1':
+ resolution: {integrity: sha512-yNQq1KoXRYaEKrWMFmpUQX7TdeQuU9jeGgJAZ3dArTsC/T4NpJ6DnqaJIIgwPnz/wtQIQTNX7/h0rOuF5xY4qQ==}
'@cucumber/pretty-formatter@1.0.1':
resolution: {integrity: sha512-A1lU4VVP0aUWdOTmpdzvXOyEYuPtBDI0xYwYJnmoMDplzxMdhcHk86lyyvYDoMoPzzq6OkOE3isuosvUU4X7IQ==}
@@ -2083,8 +2083,8 @@ packages:
'@formatjs/fast-memoize@3.1.2':
resolution: {integrity: sha512-vPnriihkfK0lzoQGaXq+qXH23VsYyansRTkTgo2aTG0k1NjLFyZimFVdfj4C9JkSE5dm7CEngcQ5TTc1yAyBfQ==}
- '@formatjs/intl-localematcher@0.8.3':
- resolution: {integrity: sha512-pHUjWb9NuhnMs8+PxQdzBtZRFJHlGhrURGAbm6Ltwl82BFajeuiIR3jblSa7ia3r62rXe/0YtVpUG3xWr5bFCA==}
+ '@formatjs/intl-localematcher@0.8.4':
+ resolution: {integrity: sha512-J51dAnynnqJdVUEXidHoIWn+qYve+yNQEgmFk9Dyfr3p0okzm+5QhQ+9QmsMz08+BeWTVpc1HadIiLfZmRYbAQ==}
'@headlessui/react@2.2.10':
resolution: {integrity: sha512-5pVLNK9wlpxTUTy9GpgbX/SdcRh+HBnPktjM2wbiLTH4p+2EPHBO1aoSryUCuKUIItdDWO9ITlhUL8UnUN/oIA==}
@@ -2429,12 +2429,6 @@ packages:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
- '@napi-rs/wasm-runtime@1.1.2':
- resolution: {integrity: sha512-sNXv5oLJ7ob93xkZ1XnxisYhGYXfaG9f65/ZgYuAu3qt7b3NadcOEhLvx28hv31PgX8SZJRYrAIPQilQmFpLVw==}
- peerDependencies:
- '@emnapi/core': ^1.7.1
- '@emnapi/runtime': ^1.7.1
-
'@napi-rs/wasm-runtime@1.1.4':
resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==}
peerDependencies:
@@ -2540,165 +2534,165 @@ packages:
resolution: {integrity: sha512-y3SvzjuY1ygnzWA4Krwx/WaJAsTMP11DN+e21A8Fa8PW1oDtVB5NSRW7LWurAiS2oKRkuCgcjTYMkBuBkcPCRg==}
engines: {node: '>=12.4.0'}
- '@orpc/client@1.13.14':
- resolution: {integrity: sha512-JQf3lO//UGHmmkd8+9fuWuh1gga1lhWuKnsT19cui7F6WizBy0NdFSVQerOsSy2c1kxOthlD7GnicGgSY2rhQA==}
+ '@orpc/client@1.14.0':
+ resolution: {integrity: sha512-TYVcj1s5bN9adggeqIXFdIdoBBUAMUxQwMNv6YagjiaZkGtqWUYd1Y1vU0Rn/9xHWF2+0hBZNUKUmP5qrQhIAw==}
- '@orpc/contract@1.13.14':
- resolution: {integrity: sha512-MfsjaQQDVcs4wHmdl5N/7vkwMnQ41nlojWXyRfRXNJHQczqBzM6sYaTJuUPXlw4YbIu64KHZ5nbbtwNCO5YXsg==}
+ '@orpc/contract@1.14.0':
+ resolution: {integrity: sha512-FUxBNqWr6mOjI+w1JPzO/iHmR3M+GA53ivaxp+eOnQu7g3ZGKB0RS5gJ/oz3cGF1gvuIcCw9FVYKK/5tkB8I1Q==}
- '@orpc/openapi-client@1.13.14':
- resolution: {integrity: sha512-mHuj/UL5qLqB1JqrRdlAoUYMidbsry8Cr9QOlOZk1mp7+OZhasFv75UNzxyjNNaSjyd3l2k4UkgpcHK4VSD7tQ==}
+ '@orpc/openapi-client@1.14.0':
+ resolution: {integrity: sha512-joeVdSX2YYFQM+bY4SdNHmnoiw7aYfc7NDEWDncnjpho6bj3DhnDNsINgFnFX7A9by7mVYaLw45yqjDhNSMprg==}
- '@orpc/shared@1.13.14':
- resolution: {integrity: sha512-/ri8ttSX+ppoo01d3LdqQ4Xh6VZS5PYRYmHxTvO8tuyiqBJhN18d8P1VtEW4T9hetoK7JZKeU7EAeqVUnCF9WA==}
+ '@orpc/shared@1.14.0':
+ resolution: {integrity: sha512-WNzofimsE3sKbkyAAwVKMwG4P7sL0fzDLUhXqEXuJ9Yjll+phy/jSRK9TupNMtsPyz9ViKHKCQcwmsdgIgn9Sg==}
peerDependencies:
'@opentelemetry/api': '>=1.9.0'
peerDependenciesMeta:
'@opentelemetry/api':
optional: true
- '@orpc/standard-server-fetch@1.13.14':
- resolution: {integrity: sha512-k2zkCi98qd3NkvWhUX/Yece/qjB+o07g/gHC509YB5HbOGtBV/da3eseYjFyzBx5LDxMz28BOALI8/q/YDhKZw==}
+ '@orpc/standard-server-fetch@1.14.0':
+ resolution: {integrity: sha512-qg315ZVbQ+02WnLzep7YvCsXb8BdefZ7Zjt+/emu6+Ypgw4fS0O78jtMHy3r39YvdvC9U2hWt8hff1yKiVlvQA==}
- '@orpc/standard-server-peer@1.13.14':
- resolution: {integrity: sha512-jinseQ8bn7XQOHjsCXhR1HiF3wAwn1xEQPpnE/av0PoOi4h0ATvhZjDLaRHvRavs8YwrIqwSuAuYT/hDxON58A==}
+ '@orpc/standard-server-peer@1.14.0':
+ resolution: {integrity: sha512-Phk8D04uxNJMLvl7JfJlWvfzDXwzfGweh4jmQI69zSV+flihp57dkZuk8gpTE7rfDClFiKCDauVsB/pQxwM09Q==}
- '@orpc/standard-server@1.13.14':
- resolution: {integrity: sha512-o8PaDERiwREFQpIZO0mQ1PhguchyNzrf1w7m3eK1JB4rPjHu1VJUgqCpy/sV3Id5ji4bX/gKHEC3NZjDX6mEWQ==}
+ '@orpc/standard-server@1.14.0':
+ resolution: {integrity: sha512-zN3Q+ajsoLoxLYmONc1RkDyhIg1wENolrTly8HfodcR3gYrfFRcGhUzShqa/KdG47mK49Nps8rdeeMj6NT8EYw==}
- '@orpc/tanstack-query@1.13.14':
- resolution: {integrity: sha512-5rq1Z1anVTVBseYeNBi5RJSgWPxpD0MqK7MYej3xnt56jjc6mFmWpUGNz9xy0BXPh3KmA/xDTNuB23kKgJ5JmQ==}
+ '@orpc/tanstack-query@1.14.0':
+ resolution: {integrity: sha512-Bjx29HULT5PNSaGFkt+rExTqQonZfaqrAMUOLWBBNlI8TtPMvnKtDxlzmvO5J4Aq8k5p0t+cZX1E6HTeH3mqKQ==}
peerDependencies:
- '@orpc/client': 1.13.14
+ '@orpc/client': 1.14.0
'@tanstack/query-core': '>=5.80.2'
'@ota-meshi/ast-token-store@0.3.0':
resolution: {integrity: sha512-XRO0zi2NIUKq2lUk3T1ecFSld1fMWRKE6naRFGkgkdeosx7IslyUKNv5Dcb5PJTja9tHJoFu0v/7yEpAkrkrTg==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
- '@oxc-parser/binding-android-arm-eabi@0.126.0':
- resolution: {integrity: sha512-svyoHt25J4741QJ5aa4R+h0iiBeSRt63Lr3aAZcxy2c/NeSE1IfDeMnSij6rIg7EjxkdlXzz613wUjeCeilBNA==}
+ '@oxc-parser/binding-android-arm-eabi@0.127.0':
+ resolution: {integrity: sha512-0LC7ye4hvqbIKxAzThzvswgHLFu2AURKzYLeSVvLdu2TBOYWQDmHnTqPLeA597BcUCxiLqLsS4CJ5uoI5WYWCQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [android]
- '@oxc-parser/binding-android-arm64@0.126.0':
- resolution: {integrity: sha512-hPEBRKgplp1mG9GkINFsr4JVMDNrGJLOqfDaadTWpAoTnzYR5Rmv8RMvB3hJZpiNvbk1aacopdHUP1pggMQ/cw==}
+ '@oxc-parser/binding-android-arm64@0.127.0':
+ resolution: {integrity: sha512-b5jtVTH6AU5CJXHNdj7Jj9IEiR9yVjjnwHzPJhGyHGPdcsZSzBCkS9GBbV33niRMvKthDwQRFRJfI4a+k4PvYg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [android]
- '@oxc-parser/binding-darwin-arm64@0.126.0':
- resolution: {integrity: sha512-ccRpu9sdYmznePJQG5halhs0FW5tw5a8zRSoZXOzM1OjoeZ4jiRRruFiPclsD59edoVAK1l83dvfjWz1nQi6lg==}
+ '@oxc-parser/binding-darwin-arm64@0.127.0':
+ resolution: {integrity: sha512-obCE8B7ISKkJidjlhv9xRGJPOSDG2Yu6PRga9Ruaz35uintHxbp1Ki/Yc71wx4rj3Edrm0a1kzG1TAwit0wFpg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [darwin]
- '@oxc-parser/binding-darwin-x64@0.126.0':
- resolution: {integrity: sha512-CHB4zVjNSKqx8Fw9pHowzQQnjjuq04i4Ng0Avj+DixlwhwAoMYqlFbocYIlbg+q3zOLGlm7vEHm83jqEMitnyg==}
+ '@oxc-parser/binding-darwin-x64@0.127.0':
+ resolution: {integrity: sha512-JL6Xb5IwPQT8rUzlpsX7E+AgfcdNklXNPFp8pjCQQ5MQOQo5rtEB2ui+3Hgg9Sn7Y9Egj6YOLLiHhLpdAe12Aw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [darwin]
- '@oxc-parser/binding-freebsd-x64@0.126.0':
- resolution: {integrity: sha512-RQ3nEJdcDKBfBjmLJ3Vl1d0KQERPV1P8eUrnBm7+VTYyoaJSPLVFuPg1mlD1hk3n0/879VLFMfusFkBal4ssWQ==}
+ '@oxc-parser/binding-freebsd-x64@0.127.0':
+ resolution: {integrity: sha512-SDQ/3MQFw58fqQz3Z1PhSKFF3JoCF4gmlNjziDm8X02tTahCw0qJbd7FGPDKw1i4VTBZene9JPyC3mHtSvi+wA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [freebsd]
- '@oxc-parser/binding-linux-arm-gnueabihf@0.126.0':
- resolution: {integrity: sha512-onipc2wCDA7Bauzb4KK1mab0GsEDf4ujiIfWECdnmY/2LlzAoX3xdQRLAUyEDB1kn3yilHBrkmXDdHluyHXxiw==}
+ '@oxc-parser/binding-linux-arm-gnueabihf@0.127.0':
+ resolution: {integrity: sha512-Av+D1MIqzV0YMGPT9we2SIZaMKD7Cxs4CvXSx/yxaWHewZjYEjScpOf5igc8IILASViw4WTnjlwUdI1KzVtDHQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [linux]
- '@oxc-parser/binding-linux-arm-musleabihf@0.126.0':
- resolution: {integrity: sha512-5BuJJPohrV5NJ8lmcYOMbfRCUGoYH5J9HZHeuqOLwkHXWAuPMN3X1h8bC/2mWjmosdbfTtmyIdX3spS/TkqKNg==}
+ '@oxc-parser/binding-linux-arm-musleabihf@0.127.0':
+ resolution: {integrity: sha512-Cs2fdJ8cPpFdeebj6p4dag8A4+56hPvZ0AhQQzlaLswGz1tz7bXt1nETLeorrM9+AMcWFFkqxcXwDGfTVidY8g==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [linux]
- '@oxc-parser/binding-linux-arm64-gnu@0.126.0':
- resolution: {integrity: sha512-r2KApRgm2pOJaduRm6GOT8x0whcr67AyejNkSdzPt34GJ+Y3axcXN2mwlTs+8lfO/SSmpO5ZJGYiHYnxEE0jkw==}
+ '@oxc-parser/binding-linux-arm64-gnu@0.127.0':
+ resolution: {integrity: sha512-qdOfTcT6SY8gsJrrV92uyEUyjqMGPpIB5JZUG6QN5dukYd+7/j0kX6MwK1DgQj39jtUYixxPiaRUiEN1+0CXgQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@oxc-parser/binding-linux-arm64-musl@0.126.0':
- resolution: {integrity: sha512-FQ+MMh7MT0Dr/u8+RWmWKlfoeWPQyHDbhhxJShJlYtROXXPHsRs9EvmQOZZ3sx4Nn7JU8NX+oyw2YzQ7anBJcA==}
+ '@oxc-parser/binding-linux-arm64-musl@0.127.0':
+ resolution: {integrity: sha512-EoTCZneNFU/P2qrpEM+RHmQwt+CvDkyGESG6qhr7KaegXLZwePfbrkCDfAk8/rhxbDUVGsZILX+2tqPzFtoFWA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@oxc-parser/binding-linux-ppc64-gnu@0.126.0':
- resolution: {integrity: sha512-Wv/T8C98hRQhGTlx2XFyLn5raRMp9U1lOQD+YnXNgAr7wHbJJpZ8mDBU7Rw+M3WytGcGTFcr6kqgfyQeHVtLbQ==}
+ '@oxc-parser/binding-linux-ppc64-gnu@0.127.0':
+ resolution: {integrity: sha512-zALjmZYgxFLHjXeudcDF0xFGNydTAtkAeXAr2EuC17ywCyFxcmQra4w0BMde0Yi/re4Bi4iwEoEXtYN7l6eBLQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ppc64]
os: [linux]
libc: [glibc]
- '@oxc-parser/binding-linux-riscv64-gnu@0.126.0':
- resolution: {integrity: sha512-DHx1rT1zauW0ZbLHOiQh5AC9Xs3UkWx2XmfZHs+7nnWYr3sagrufoUQC+/XPwwjMIlCFXiFGM0sFh3TyOCZwqA==}
+ '@oxc-parser/binding-linux-riscv64-gnu@0.127.0':
+ resolution: {integrity: sha512-fPP8M6zQLS7Jz7o9d5ArUSuAuSK3e+WCYVrCpdzeCOejidtZExJ9tjhDrAd3HEPqARBCPmdpqxESPFqy44vkBQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [riscv64]
os: [linux]
libc: [glibc]
- '@oxc-parser/binding-linux-riscv64-musl@0.126.0':
- resolution: {integrity: sha512-umDc2mTShH0U2zcEYf8mIJ163seLJNn54ZUZYeI5jD4qlg9izPwoLrC2aNPKlMJTu6u/ysmQWiEvIiaAG+INkw==}
+ '@oxc-parser/binding-linux-riscv64-musl@0.127.0':
+ resolution: {integrity: sha512-7IcC4Ao02oGpfnjt+X/oF4U2mllo2qoSkw5xxiXNKL9MCTsTiAC6616beOuehdxGcnz1bRoPC1RQ2f1GQDdN+g==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [riscv64]
os: [linux]
libc: [musl]
- '@oxc-parser/binding-linux-s390x-gnu@0.126.0':
- resolution: {integrity: sha512-PXXeWayclRtO1pxQEeCpiqIglQdhK2mAI2VX5xnsWdImzSB5GpoQ8TNw7vTCKk2k+GZuxl+q1knncidjCyUP9w==}
+ '@oxc-parser/binding-linux-s390x-gnu@0.127.0':
+ resolution: {integrity: sha512-pbXIhiNFHoqWeqDNLiJ9JkpHz1IM9k4DXa66x+1GTWMG7iLxtkXgE53iiuKSXwmk3zIYmaPVfBvgcAhS583K4Q==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [s390x]
os: [linux]
libc: [glibc]
- '@oxc-parser/binding-linux-x64-gnu@0.126.0':
- resolution: {integrity: sha512-wzocjxm34TbB3bFlqG65JiLtvf6ZDg2ZxRkLLbgXwDQUNU+0MPjQN8zy/0jBKNA5fnPLk3XeVdZ7Uin+7+CVkg==}
+ '@oxc-parser/binding-linux-x64-gnu@0.127.0':
+ resolution: {integrity: sha512-MYCguB9RvBvlSd6gbuNI7QwiLoCCAlGnlRJFPrzLI6U1/9wkC/WK6LtBAUln55H1Ctqw45PWmqrobKoMhsYQzQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@oxc-parser/binding-linux-x64-musl@0.126.0':
- resolution: {integrity: sha512-e83uftP60jmkPs2+CW6T6A1GYzN2H6IumDAiTntv9WyHR73PI3ImHNBkYqnA3ukeKI3xjcCbhSh9QeJWmufxGQ==}
+ '@oxc-parser/binding-linux-x64-musl@0.127.0':
+ resolution: {integrity: sha512-5eY0B/bxf1xIUxb4NOTvOI3KWtBQfPWYyKAzgcrCt0mDibSZygVpO1Pz8bkeiSZ5Jj9+M09dkggG3H8I5d0Uyg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
libc: [musl]
- '@oxc-parser/binding-openharmony-arm64@0.126.0':
- resolution: {integrity: sha512-4WiOILHnPrTDY2/L4mE6PZCYwLN1d3ghma6BuTJ452CCgzRMt3uFplCtR+o3r9zdUWJYb370UizpI9CUcWXr1A==}
+ '@oxc-parser/binding-openharmony-arm64@0.127.0':
+ resolution: {integrity: sha512-Gld0ajrFTUXNtdw20fVBuTQx66FA75nIVg+//pPfR3sXkuABB4mTBhl3r9JNzrJpgW//qiwxf0nWXUWGJSL3UQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [openharmony]
- '@oxc-parser/binding-wasm32-wasi@0.126.0':
- resolution: {integrity: sha512-Y17hhnrQTrxgAxAyAq401vnN9URsAL4s5AjqpG1NDsXSlhe1yBNnns+rC2P6xcMoitgX5nKH2ryYt9oiFRlzLw==}
- engines: {node: '>=14.0.0'}
+ '@oxc-parser/binding-wasm32-wasi@0.127.0':
+ resolution: {integrity: sha512-T6KVD7rhLzFlwGRXMnxUFfkCZD8FHnb968wVXW1mXzgRFc5RNXOBY2mPPDZ77x5Ln76ltLMgtPg0cOkU1NSrEQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [wasm32]
- '@oxc-parser/binding-win32-arm64-msvc@0.126.0':
- resolution: {integrity: sha512-Znug1u1iRvT4VC3jANz6nhGBHsFwEFMxuimYpJFwMtsB6H5FcEoZRMmH26tHkSTD03JvDmG+gB65W3ajLjPcSw==}
+ '@oxc-parser/binding-win32-arm64-msvc@0.127.0':
+ resolution: {integrity: sha512-Ujvw4X+LD1CCGULcsQcvb4YNVoBGqt+JHgNNzGGaCImELiZLk477ifUH53gIbE7EKd933NdTi25JWEr9K2HwXw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [win32]
- '@oxc-parser/binding-win32-ia32-msvc@0.126.0':
- resolution: {integrity: sha512-qrw7mx5hFFTxVSXToOA40hpnjgNB/DJprZchtB4rDKNLKqkD3F26HbzaQeH1nxAKej0efSZfJd5Sw3qdtOLGhw==}
+ '@oxc-parser/binding-win32-ia32-msvc@0.127.0':
+ resolution: {integrity: sha512-0cwxKO7KHQQQfo4Uf4B2SQrhgm+cJaP9OvFFhx52Tkg4bezsacu83GB2/In5bC415Ueeym+kXdnge/57rbSfTw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ia32]
os: [win32]
- '@oxc-parser/binding-win32-x64-msvc@0.126.0':
- resolution: {integrity: sha512-ibB1s+mPUFXvS7MFJO2jpw/aCNs/P6ifnWlRyTYB+WYBpniOiCcHQQskZneJtwcjQMDRol3RGG3ihoYnzXSY4w==}
+ '@oxc-parser/binding-win32-x64-msvc@0.127.0':
+ resolution: {integrity: sha512-rOrnSQSCbhI2kowr9XxE7m9a8oQXnBHjnS6j95LxxAnEZ0+Fz20WlRXG4ondQb+ejjt2KOsa65sE6++L6kUd+w==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [win32]
@@ -2710,6 +2704,9 @@ packages:
'@oxc-project/types@0.126.0':
resolution: {integrity: sha512-oGfVtjAgwQVVpfBrbtk4e1XDyWHRFta6BS3GWVzrF8xYBT2VGQAk39yJS/wFSMrZqoiCU4oghT3Ch0HaHGIHcQ==}
+ '@oxc-project/types@0.127.0':
+ resolution: {integrity: sha512-aIYXQBo4lCbO4z0R3FHeucQHpF46l2LbMdxRvqvuRuW2OxdnSkcng5B8+K12spgLDj93rtN3+J2Vac/TIO+ciQ==}
+
'@oxc-resolver/binding-android-arm-eabi@11.19.1':
resolution: {integrity: sha512-aUs47y+xyXHUKlbhqHUjBABjvycq6YSD7bpxSW7vplUmdzAlJ93yXY6ZR0c1o1x5A/QKbENCvs3+NlY8IpIVzg==}
cpu: [arm]
@@ -3386,8 +3383,8 @@ packages:
resolution: {integrity: sha512-UuBOt7BOsKVOkFXRe4Ypd/lADuNIfqJXv8GvHqtXaTYXPPKkj2nS2zPllVsrtRjcomDhIJVBnZwfmlI222WH8g==}
engines: {node: '>=14.0.0'}
- '@rolldown/pluginutils@1.0.0-rc.15':
- resolution: {integrity: sha512-UromN0peaE53IaBRe9W7CjrZgXl90fqGpK+mIZbA3qSTeYqg3pqpROBdIPvOG3F5ereDHNwoHBI2e50n1BDr1g==}
+ '@rolldown/pluginutils@1.0.0-rc.17':
+ resolution: {integrity: sha512-n8iosDOt6Ig1UhJ2AYqoIhHWh/isz0xpicHTzpKBeotdVsTEcxsSA/i3EVM7gQAj0rU27OLAxCjzlj15IWY7bg==}
'@rolldown/pluginutils@1.0.0-rc.7':
resolution: {integrity: sha512-qujRfC8sFVInYSPPMLQByRh7zhwkGFS4+tyMQ83srV1qrxL4g8E2tyxVVyxd0+8QeBM1mIk9KbWxkegRr76XzA==}
@@ -3410,32 +3407,32 @@ packages:
rollup:
optional: true
- '@sentry-internal/browser-utils@10.49.0':
- resolution: {integrity: sha512-n0QRx0Ysx6mPfIydTkz7VP0FmwM+/EqMZiRqdsU3aTYsngE9GmEDV0OL1bAy6a8N/C1xf9vntkuAtj6N/8Z51w==}
+ '@sentry-internal/browser-utils@10.50.0':
+ resolution: {integrity: sha512-42bxyRTxnCmYlWnvz4CxikuQNanw8UNma2WJrtxJ0f1MAJV2GhQGSHDLnA+lvFlmiz6qct3pfen/NXGyOTegTA==}
engines: {node: '>=18'}
- '@sentry-internal/feedback@10.49.0':
- resolution: {integrity: sha512-JNsUBGv0faCFE7MeZUH99Y9lU9qq3LBALbLxpE1x7ngNrQnVYRlcFgdqaD/btNBKr8awjYL8gmcSkHBWskGqLQ==}
+ '@sentry-internal/feedback@10.50.0':
+ resolution: {integrity: sha512-0k9XZF0wn86f77mIO2U3gNNyDZooy139CnEanRzHinrN106vVzvBZ6TUEQoHtoO1fqQxr+nWWVrqV/PXUqk47w==}
engines: {node: '>=18'}
- '@sentry-internal/replay-canvas@10.49.0':
- resolution: {integrity: sha512-7D/NrgH1Qwx5trDYaaTSSJmCb1yVQQLqFG4G/S9x2ltzl9876lSGJL8UeW8ReNQgF3CDAcwbmm/9aXaVSBUNZA==}
+ '@sentry-internal/replay-canvas@10.50.0':
+ resolution: {integrity: sha512-jx6RKBmcJSWdI92qDGS/sBv1w+7Cww879Z/moX7bw7ipHa/Ts3iDcB3rgZwvhmi17U+mvYsbJeL2DXkPo3TjPw==}
engines: {node: '>=18'}
- '@sentry-internal/replay@10.49.0':
- resolution: {integrity: sha512-IEy4lwHVMiRE3JAcn+kFKjsTgalDOCSTf20SoFd+nkt6rN/k1RDyr4xpdfF//Kj3UdeTmbuibYjK5H/FLhhnGg==}
+ '@sentry-internal/replay@10.50.0':
+ resolution: {integrity: sha512-51FYNfnvVLAWw1rrEWPFfwHuMRb9mkVCFGA4J9/un7SpeGBsQDziGB0Di4fsCxI7+EdSBpfLHPF0csKtCCw0oQ==}
engines: {node: '>=18'}
- '@sentry/browser@10.49.0':
- resolution: {integrity: sha512-bGCHc+wK2Dx67YoSbmtlt04alqWfQ+dasD/GVipVOq50gvw/BBIDHTEWRJEjACl+LrvszeY54V+24p8z4IgysA==}
+ '@sentry/browser@10.50.0':
+ resolution: {integrity: sha512-1f6rAvET6myiTaSeYqvaaBwvq1LfxqWjAPIoAW/NVC9bPMkeEcuvgDajHrnZMrBeWoJ81NMyoLkyX+iOc7MoFA==}
engines: {node: '>=18'}
- '@sentry/core@10.49.0':
- resolution: {integrity: sha512-UaFeum3LUM1mB0d67jvKnqId1yWQjyqmaDV6kWngG03x+jqXb08tJdGpSoxjXZe13jFBbiBL/wKDDYIK7rCK4g==}
+ '@sentry/core@10.50.0':
+ resolution: {integrity: sha512-J4A+vzUO3adl0TkFCjaN1+4miamrjHiEIYuLHiuu1lmAjq5WIVw32ObvAh4yMwNtxyaEMosTrrh5M6f12XSJFg==}
engines: {node: '>=18'}
- '@sentry/react@10.49.0':
- resolution: {integrity: sha512-WdfJve0orTiumr25Ozgs2p2KaJR9xV82Z5V9IYBi0TadsurSWK6xI6SAFjw84tQht9Fp8q4UCn3QYCnApF4BfA==}
+ '@sentry/react@10.50.0':
+ resolution: {integrity: sha512-MZHYjEZAtFIa4zPrWS4oXlo+gMppRvfETqUqF920Sj2jN2U7WjboU03lDmjfDqEcH7QiwjQyl13jHd2nwAyrrw==}
engines: {node: '>=18'}
peerDependencies:
react: ^16.14.0 || 17.x || 18.x || 19.x
@@ -3815,8 +3812,8 @@ packages:
engines: {node: '>=18'}
hasBin: true
- '@tanstack/eslint-plugin-query@5.99.2':
- resolution: {integrity: sha512-xiazL4CWOHJRDDgs5ZkfW98qlEAisakFDKh1Djc3BIk84tsvt3ow52AC2EiWSMY1q13IB4UI4jSo7yXlC3NL6g==}
+ '@tanstack/eslint-plugin-query@5.100.5':
+ resolution: {integrity: sha512-WKt+xyxvMQkUL4sqMQ8l3gzCplNi9HedVQN32WmBJYKITJ9a5r3H5cpICp8y96V8ZL5rZH0EZRgpO6sy8fAgrQ==}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: ^5.4.0 || ^6.0.0
@@ -3836,11 +3833,11 @@ packages:
resolution: {integrity: sha512-y/xtNPNt/YeyoVxE/JCx+T7yjEzpezmbb+toK8DDD1P4m7Kzs5YR956+7OKexG3f8aXgC3rLZl7b1V+yNUSy5w==}
engines: {node: '>=18'}
- '@tanstack/query-core@5.99.2':
- resolution: {integrity: sha512-1HunU0bXVsR1ZJMZbcOPE6VtaBJxsW809RE9xPe4Gz7MlB0GWwQvuTPhMoEmQ/hIzFKJ/DWAuttIe7BOaWx0tA==}
+ '@tanstack/query-core@5.100.5':
+ resolution: {integrity: sha512-t20KrhKkf0HXzqQkPbJ5erhFesup68BAbwFgYmTrS7bxMF7O5MdmL8jUkik4thsG7Hg00fblz30h6yF1d5TxGg==}
- '@tanstack/query-devtools@5.99.2':
- resolution: {integrity: sha512-TEF1d+RYO9l8oeCwgzmOHIgKwAzXQmw2s/ny2bW8qeg2OMkkLjALfVEivgCMR3OL/jVdMmeTPX56WrV+uvYJFg==}
+ '@tanstack/query-devtools@5.100.5':
+ resolution: {integrity: sha512-SuCkVCqqliRYJvm+LEL2U/TcFv92zTnHj6OGrJFHp1v/RsiwamI+ZDgQzbeUrLsJb8/Nj/52aIw0NyDMcVHl4A==}
'@tanstack/react-devtools@0.10.2':
resolution: {integrity: sha512-1BmZyxOrI5SqmRJ5MgkYZNNdnlLsJxQRI2YgorrAvcF2MxK6x5RcuStvD8+YlXoMw3JtNukPxoITirKAnKYDQA==}
@@ -3865,14 +3862,14 @@ packages:
'@tanstack/react-start':
optional: true
- '@tanstack/react-query-devtools@5.99.2':
- resolution: {integrity: sha512-8txkK9A9XBNTB8RoxVgfp6W3qwBr25tNP10L4yu3KuyhAdEvccECfIRzesSwMVk/wpVVioAr+hbMtUkMMF+WVw==}
+ '@tanstack/react-query-devtools@5.100.5':
+ resolution: {integrity: sha512-bItQERx7dJoiI0WEoS4tIrvNnmk4kUYsaQLdIpm4o9Kttmsi5B6xlY6JBDkavstR3hH/R2+VT5dr3L5LBFPW4g==}
peerDependencies:
- '@tanstack/react-query': ^5.99.2
+ '@tanstack/react-query': ^5.100.5
react: ^18 || ^19
- '@tanstack/react-query@5.99.2':
- resolution: {integrity: sha512-vM91UEe45QUS9ED6OklsVL15i8qKcRqNwpWzPTVWvRPRSEgDudDgHpvyTjcdlwHcrKNa80T+xXYcchT2noPnZA==}
+ '@tanstack/react-query@5.100.5':
+ resolution: {integrity: sha512-aNwj1mi2v2bQ9IxkyR1grLOUkv3BYWoykHy9KDyLNbjC3tsahbOHJibK+Wjtr1wRhG59/AvJhiJG5OlthaCgJA==}
peerDependencies:
react: ^18 || ^19
@@ -4287,43 +4284,51 @@ packages:
resolution: {integrity: sha512-/uejZt4dSere1bx12WLlPfv8GktzcaDtuJ7s42/HEZ5zGj9oxRaD4bj7qwSunXkf+pbAhFt2zjpHYUiT5lHf0Q==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260422.1':
- resolution: {integrity: sha512-W/lGgoEfbdI/QWYqcNP0fSa4DHQKKEMLzDPsE6fA64zmfCNsTO9M7ttK0acKiLsGB16pr0lubuMDRNN5kXyQ8w==}
+ '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260426.1':
+ resolution: {integrity: sha512-HzGvERpIFO7p6pMljPN1fIOHqAv2oMeVIqYLSt27TKILkTRpe7fANW3R2OAM+/A+pLtYNNXGDbKl/wR+DHz9KA==}
+ engines: {node: '>=16.20.0'}
cpu: [arm64]
os: [darwin]
- '@typescript/native-preview-darwin-x64@7.0.0-dev.20260422.1':
- resolution: {integrity: sha512-6tZ2yAcKLBIghwKyC74vDqb/7rB99fTpERv9f64iA1tMh6l+WHIuQb6z3mIFVOYBIl2pN9CYasURLroKYtUz1w==}
+ '@typescript/native-preview-darwin-x64@7.0.0-dev.20260426.1':
+ resolution: {integrity: sha512-aE17wCPNQ09K4jV7TQYYRYF/Q/6nFS9jLpbyTYHtS+i+0yV1Rrs4VsqboisS1R/iSWsq3m1Yhh3uS4x3/9KUkg==}
+ engines: {node: '>=16.20.0'}
cpu: [x64]
os: [darwin]
- '@typescript/native-preview-linux-arm64@7.0.0-dev.20260422.1':
- resolution: {integrity: sha512-7HL4E7kP0ociYB8R4+QuIbzfT3pjdesNY+ax/q6fP3IMd3/QNAL/qsm/NaokjXke+I7uYxKqQ8Qo/t5MSv/r+A==}
+ '@typescript/native-preview-linux-arm64@7.0.0-dev.20260426.1':
+ resolution: {integrity: sha512-6OfhODChD1N6FX+ITzA1lny3WX6uew/Nw9kN7uWhymXlM3/vE0qtaAfsMpgdHdCbTPgcdpGaNFhbcMieju9Vdg==}
+ engines: {node: '>=16.20.0'}
cpu: [arm64]
os: [linux]
- '@typescript/native-preview-linux-arm@7.0.0-dev.20260422.1':
- resolution: {integrity: sha512-EWP1Jq2I8MMSkoF9D6ztXgRmnUy2KcaZfL9FYcdm3Am6ZYuI6/SCR3HVIVYbaixAJXe/qUh5MN3LzJbl/4hefQ==}
+ '@typescript/native-preview-linux-arm@7.0.0-dev.20260426.1':
+ resolution: {integrity: sha512-/XJRC8B6JeOOb2/iek/BrzW4r5Nut+fkucG7ntEOQn63IRTsfP+AfJdJodG1VIwXOleNlFgG4RtYTUsvcbDJhg==}
+ engines: {node: '>=16.20.0'}
cpu: [arm]
os: [linux]
- '@typescript/native-preview-linux-x64@7.0.0-dev.20260422.1':
- resolution: {integrity: sha512-fDqkLf2Hv7X1Cy1B5OMcljPt/+8GpnTxFM9rDCFrYAPgOolIQJ9qwkb+xGfvAtxkkE5sZIvGPcqjP9PWQHt2qw==}
+ '@typescript/native-preview-linux-x64@7.0.0-dev.20260426.1':
+ resolution: {integrity: sha512-KPDpjmLo/4xY8ugfMGFm7Ona/1igPzZveLt/C0rb6/jNPYuShumRfKYnItGDRXBlmecJY/04lrqkWqQjhtSSPg==}
+ engines: {node: '>=16.20.0'}
cpu: [x64]
os: [linux]
- '@typescript/native-preview-win32-arm64@7.0.0-dev.20260422.1':
- resolution: {integrity: sha512-l1tDnyNQSqxFkKz683dD8EORQtcQqZyWkTDnRtHmaPg2mTRxhxSekL/HcsHx/1/DoGTfl310O+CmXzd2mTq3pQ==}
+ '@typescript/native-preview-win32-arm64@7.0.0-dev.20260426.1':
+ resolution: {integrity: sha512-I7ThiopxuNKX/iAcwgMwsm6L32GOwmwLOyPwQmXjh5c3VD2acq3FYyZRDJVk0aUUy1w6bTbODlo5ZHoPnlZtvw==}
+ engines: {node: '>=16.20.0'}
cpu: [arm64]
os: [win32]
- '@typescript/native-preview-win32-x64@7.0.0-dev.20260422.1':
- resolution: {integrity: sha512-VQbDQlp1bjV5nnHagQLXQAhid3S48l1OToIBjvqlw18s0V0YSgoyNL6E/rE7FBdkGrTLf/rtKjo42IZnt3tvqA==}
+ '@typescript/native-preview-win32-x64@7.0.0-dev.20260426.1':
+ resolution: {integrity: sha512-4624MJq72vN4H1msiWVBqAIyerJRi5Ni/U6eeE1A1Opqg4c4QoalYQQ+5h5RIuaZ6rY+9kvUn+SjsvbZwyLbjQ==}
+ engines: {node: '>=16.20.0'}
cpu: [x64]
os: [win32]
- '@typescript/native-preview@7.0.0-dev.20260422.1':
- resolution: {integrity: sha512-8CR8zHFlLpSL5OXY4Wbz2DmiDOoat1JBMkydZUHwQIS4cpoTN7SHjk2BN8i51XHUy0jMF5airL0TlY3GOfZmKg==}
+ '@typescript/native-preview@7.0.0-dev.20260426.1':
+ resolution: {integrity: sha512-zE7B6TIG4XDYr4Your5E2Bxm1vD2YiPyD8OFG4nD5Odt/uN6gO0Y+T4TIbtGUBmOftMRqEV2Jw1ZC4ka0my1yw==}
+ engines: {node: '>=16.20.0'}
hasBin: true
'@ungap/structured-clone@1.3.0':
@@ -4380,8 +4385,8 @@ packages:
babel-plugin-react-compiler:
optional: true
- '@vitejs/plugin-rsc@0.5.24':
- resolution: {integrity: sha512-FQ7o1Zf1GUB8L5qlIuV2mvIv/KahG2qUYW2gMpxyIN3zF7voDsfvA/t8w/TLjYC0T6p3JwMnK3N+YzMGf/m75A==}
+ '@vitejs/plugin-rsc@0.5.25':
+ resolution: {integrity: sha512-u+0l91DPzvCQjZX0YcdVTfv0171f1GzTL1EkRlu2dx9DY6kXu+xi+oCuPYaVI0KGj4q6gJiJCYSWNuCjuT+Otw==}
peerDependencies:
react: '*'
react-dom: '*'
@@ -4600,8 +4605,8 @@ packages:
'@xstate/fsm@1.6.5':
resolution: {integrity: sha512-b5o1I6aLNeYlU/3CPlj/Z91ybk1gUsKT+5NAJI+2W4UjvS5KLG28K9v5UvNoFVjHV8PajVZ00RH3vnjyQO7ZAw==}
- abcjs@6.6.2:
- resolution: {integrity: sha512-YLbp5lYUq0uOywWZx9EuTdm0TcflKZi7hOzz366A/LFl3qoAXSYIjznJQmr/VeHg8NcLxZYoN8dLi7PqCpxKEA==}
+ abcjs@6.6.3:
+ resolution: {integrity: sha512-BerGJCY8+pvJV1+VxZn1Y/VNcuSAk8BysCbBICY0W8fgE5g4W6sA/zB5pKxcgqzY5/gObh8ugl++4ZoaTqUCkw==}
acorn-jsx@5.3.2:
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
@@ -5996,8 +6001,8 @@ packages:
resolution: {integrity: sha512-Ox1pJVrDCyGHMG9CFg1tmrRUMRPRsAWYc/PinY0XzJU4K7y7vjNoLKIQ7BR5UJMCxNN8EM1MNDmHWA/B3aZUuw==}
engines: {node: '>=6'}
- hono@4.12.14:
- resolution: {integrity: sha512-am5zfg3yu6sqn5yjKBNqhnTX7Cv+m00ox+7jbaKkrLMRJ4rAdldd1xPd/JzbBWspqaQv6RSTrgFN95EsfhC+7w==}
+ hono@4.12.15:
+ resolution: {integrity: sha512-qM0jDhFEaCBb4TxoW7f53Qrpv9RBiayUHo0S52JudprkhvpjIrGoU1mnnr29Fvd1U335ZFPZQY1wlkqgfGXyLg==}
engines: {node: '>=16.9.0'}
hosted-git-info@9.0.2:
@@ -6285,8 +6290,8 @@ packages:
khroma@2.1.0:
resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==}
- knip@6.6.1:
- resolution: {integrity: sha512-SOmqh25vuAfdynGoDr/kMCxIuD5+PkMIfMSGQeMqfrxwuPTANvJKcVttLgGZjjkATALqukSe/hhDVqcwNkf92g==}
+ knip@6.7.0:
+ resolution: {integrity: sha512-ckL51NDH1YJxnv1kNB0iUdDngB4f/e9Igz8uIqYfmNDoyOFmmk1V0WFv3LQ7/hzC63b2Z9X41gGUE9eOWrZpaA==}
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
@@ -6438,8 +6443,8 @@ packages:
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
hasBin: true
- loro-crdt@1.11.1:
- resolution: {integrity: sha512-R+Ksyy2FPYoOfJAkVY6BqGk11AtlgWZ1B91V/G7TaQxitxuvUvMd1URhO33LYfFUIT2CSn0Nikl+bbRZ2RGuZg==}
+ loro-crdt@1.12.0:
+ resolution: {integrity: sha512-+QAqhBEQ3VZqQKRYjVZElZKLMgtQoewaT1l+oZUh74WsCNqvNI5hazy5gM35NQvcOkrebskWc15a33LS6WAR7g==}
loupe@3.2.1:
resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==}
@@ -6886,8 +6891,8 @@ packages:
resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
engines: {node: '>= 0.8.0'}
- oxc-parser@0.126.0:
- resolution: {integrity: sha512-FktCvLby/mOHyuijZt22+nOt10dS24gGUZE3XwIbUg7Kf4+rer3/5T7RgwzazlNuVsCjPloZ3p8E+4ONT3A8Kw==}
+ oxc-parser@0.127.0:
+ resolution: {integrity: sha512-bkgD4qHlN7WxLdX8bLXdaU54TtQtAIg/ZBAfm0aje/mo3MRDo3P0hZSgr4U7O3xfX+fQmR5AP04JS/TGcZLcFA==}
engines: {node: ^20.19.0 || >=22.12.0}
oxc-resolver@11.19.1:
@@ -7085,8 +7090,8 @@ packages:
resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
engines: {node: ^10 || ^12 || >=14}
- postcss@8.5.10:
- resolution: {integrity: sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==}
+ postcss@8.5.12:
+ resolution: {integrity: sha512-W62t/Se6rA0Az3DfCL0AqJwXuKwBeYg6nOaIgzP+xZ7N5BFCI7DYi1qs6ygUYT6rvfi6t9k65UMLJC+PHZpDAA==}
engines: {node: ^10 || ^12 || >=14}
postcss@8.5.9:
@@ -7634,8 +7639,8 @@ packages:
string-ts@2.3.1:
resolution: {integrity: sha512-xSJq+BS52SaFFAVxuStmx6n5aYZU571uYUnUrPXkPFCfdHyZMMlbP2v2Wx5sNBnAVzq/2+0+mcBLBa3Xa5ubYw==}
- string-width@8.2.0:
- resolution: {integrity: sha512-6hJPQ8N0V0P3SNmP6h2J99RLuzrWz2gvT7VnK5tKvrNqJoyS9W4/Fb8mo31UiPvy00z7DQXkP2hnKBVav76thw==}
+ string-width@8.2.1:
+ resolution: {integrity: sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA==}
engines: {node: '>=20'}
string.prototype.codepointat@0.2.1:
@@ -7934,8 +7939,8 @@ packages:
engines: {node: '>=0.8.0'}
hasBin: true
- unbash@2.2.0:
- resolution: {integrity: sha512-X2wH19RAPZE3+ldGicOkoj/SIA83OIxcJ6Cuaw23hf8Xc6fQpvZXY0SftE2JgS0QhYLUG4uwodSI3R53keyh7w==}
+ unbash@3.0.0:
+ resolution: {integrity: sha512-FeFPZ/WFT0mbRCuydiZzpPFlrYN8ZUpphQKoq4EeElVIYjYyGzPMxQR/simUwCOJIyVhpFk4RbtyO7RuMpMnHA==}
engines: {node: '>=14'}
undici-types@7.19.2:
@@ -8394,28 +8399,28 @@ snapshots:
'@alloc/quick-lru@5.2.0': {}
- '@amplitude/analytics-browser@2.41.0':
+ '@amplitude/analytics-browser@2.41.1':
dependencies:
- '@amplitude/analytics-core': 2.47.0
- '@amplitude/plugin-autocapture-browser': 1.26.0
- '@amplitude/plugin-custom-enrichment-browser': 0.1.6
- '@amplitude/plugin-event-property-attribution-browser': 0.1.1
- '@amplitude/plugin-network-capture-browser': 1.9.15
- '@amplitude/plugin-page-url-enrichment-browser': 0.7.7
- '@amplitude/plugin-page-view-tracking-browser': 2.10.1
- '@amplitude/plugin-web-vitals-browser': 1.1.30
+ '@amplitude/analytics-core': 2.47.1
+ '@amplitude/plugin-autocapture-browser': 1.26.1
+ '@amplitude/plugin-custom-enrichment-browser': 0.1.7
+ '@amplitude/plugin-event-property-attribution-browser': 0.1.2
+ '@amplitude/plugin-network-capture-browser': 1.9.16
+ '@amplitude/plugin-page-url-enrichment-browser': 0.7.8
+ '@amplitude/plugin-page-view-tracking-browser': 2.10.2
+ '@amplitude/plugin-web-vitals-browser': 1.1.31
tslib: 2.8.1
- '@amplitude/analytics-client-common@2.4.45':
+ '@amplitude/analytics-client-common@2.4.46':
dependencies:
'@amplitude/analytics-connector': 1.6.4
- '@amplitude/analytics-core': 2.47.0
+ '@amplitude/analytics-core': 2.47.1
'@amplitude/analytics-types': 2.11.1
tslib: 2.8.1
'@amplitude/analytics-connector@1.6.4': {}
- '@amplitude/analytics-core@2.47.0':
+ '@amplitude/analytics-core@2.47.1':
dependencies:
'@amplitude/analytics-connector': 1.6.4
'@types/zen-observable': 0.8.3
@@ -8429,53 +8434,53 @@ snapshots:
dependencies:
js-base64: 3.7.8
- '@amplitude/plugin-autocapture-browser@1.26.0':
+ '@amplitude/plugin-autocapture-browser@1.26.1':
dependencies:
- '@amplitude/analytics-core': 2.47.0
+ '@amplitude/analytics-core': 2.47.1
tslib: 2.8.1
- '@amplitude/plugin-custom-enrichment-browser@0.1.6':
+ '@amplitude/plugin-custom-enrichment-browser@0.1.7':
dependencies:
- '@amplitude/analytics-core': 2.47.0
+ '@amplitude/analytics-core': 2.47.1
tslib: 2.8.1
- '@amplitude/plugin-event-property-attribution-browser@0.1.1':
+ '@amplitude/plugin-event-property-attribution-browser@0.1.2':
dependencies:
- '@amplitude/analytics-core': 2.47.0
+ '@amplitude/analytics-core': 2.47.1
tslib: 2.8.1
- '@amplitude/plugin-network-capture-browser@1.9.15':
+ '@amplitude/plugin-network-capture-browser@1.9.16':
dependencies:
- '@amplitude/analytics-core': 2.47.0
+ '@amplitude/analytics-core': 2.47.1
tslib: 2.8.1
- '@amplitude/plugin-page-url-enrichment-browser@0.7.7':
+ '@amplitude/plugin-page-url-enrichment-browser@0.7.8':
dependencies:
- '@amplitude/analytics-core': 2.47.0
+ '@amplitude/analytics-core': 2.47.1
tslib: 2.8.1
- '@amplitude/plugin-page-view-tracking-browser@2.10.1':
+ '@amplitude/plugin-page-view-tracking-browser@2.10.2':
dependencies:
- '@amplitude/analytics-core': 2.47.0
+ '@amplitude/analytics-core': 2.47.1
tslib: 2.8.1
- '@amplitude/plugin-session-replay-browser@1.27.10(@amplitude/rrweb@2.0.0-alpha.37)':
+ '@amplitude/plugin-session-replay-browser@1.28.0(@amplitude/rrweb@2.0.0-alpha.37)':
dependencies:
- '@amplitude/analytics-client-common': 2.4.45
- '@amplitude/analytics-core': 2.47.0
+ '@amplitude/analytics-client-common': 2.4.46
+ '@amplitude/analytics-core': 2.47.1
'@amplitude/analytics-types': 2.11.1
'@amplitude/rrweb-plugin-console-record': 2.0.0-alpha.36(@amplitude/rrweb@2.0.0-alpha.37)
'@amplitude/rrweb-record': 2.0.0-alpha.36
- '@amplitude/session-replay-browser': 1.37.0(@amplitude/rrweb@2.0.0-alpha.37)
+ '@amplitude/session-replay-browser': 1.38.0(@amplitude/rrweb@2.0.0-alpha.37)
idb-keyval: 6.2.2
tslib: 2.8.1
transitivePeerDependencies:
- '@amplitude/rrweb'
- rollup
- '@amplitude/plugin-web-vitals-browser@1.1.30':
+ '@amplitude/plugin-web-vitals-browser@1.1.31':
dependencies:
- '@amplitude/analytics-core': 2.47.0
+ '@amplitude/analytics-core': 2.47.1
tslib: 2.8.1
web-vitals: 5.1.0
@@ -8499,7 +8504,7 @@ snapshots:
'@amplitude/rrweb-snapshot@2.0.0-alpha.37':
dependencies:
- postcss: 8.5.10
+ postcss: 8.5.12
'@amplitude/rrweb-types@2.0.0-alpha.36': {}
@@ -8520,10 +8525,10 @@ snapshots:
base64-arraybuffer: 1.0.2
mitt: 3.0.1
- '@amplitude/session-replay-browser@1.37.0(@amplitude/rrweb@2.0.0-alpha.37)':
+ '@amplitude/session-replay-browser@1.38.0(@amplitude/rrweb@2.0.0-alpha.37)':
dependencies:
- '@amplitude/analytics-client-common': 2.4.45
- '@amplitude/analytics-core': 2.47.0
+ '@amplitude/analytics-client-common': 2.4.46
+ '@amplitude/analytics-core': 2.47.1
'@amplitude/analytics-types': 2.11.1
'@amplitude/experiment-core': 0.7.2
'@amplitude/rrweb-packer': 2.0.0-alpha.36
@@ -8541,8 +8546,8 @@ snapshots:
'@amplitude/targeting@0.2.0':
dependencies:
- '@amplitude/analytics-client-common': 2.4.45
- '@amplitude/analytics-core': 2.47.0
+ '@amplitude/analytics-client-common': 2.4.46
+ '@amplitude/analytics-core': 2.47.1
'@amplitude/analytics-types': 2.11.1
'@amplitude/experiment-core': 0.7.2
idb: 8.0.0
@@ -8867,18 +8872,18 @@ snapshots:
dependencies:
regexp-match-indices: 1.0.2
- '@cucumber/cucumber@12.8.1':
+ '@cucumber/cucumber@12.8.2':
dependencies:
'@cucumber/ci-environment': 13.0.0
'@cucumber/cucumber-expressions': 19.0.0
'@cucumber/gherkin': 38.0.0
- '@cucumber/gherkin-streams': 6.0.0(@cucumber/gherkin@38.0.0)(@cucumber/message-streams@4.1.1(@cucumber/messages@32.2.0))(@cucumber/messages@32.2.0)
+ '@cucumber/gherkin-streams': 6.0.0(@cucumber/gherkin@38.0.0)(@cucumber/message-streams@4.1.1(@cucumber/messages@32.3.1))(@cucumber/messages@32.3.1)
'@cucumber/gherkin-utils': 11.0.0
- '@cucumber/html-formatter': 23.0.0(@cucumber/messages@32.2.0)
- '@cucumber/junit-xml-formatter': 0.13.3(@cucumber/messages@32.2.0)
- '@cucumber/message-streams': 4.1.1(@cucumber/messages@32.2.0)
- '@cucumber/messages': 32.2.0
- '@cucumber/pretty-formatter': 1.0.1(@cucumber/cucumber@12.8.1)(@cucumber/messages@32.2.0)
+ '@cucumber/html-formatter': 23.1.0(@cucumber/messages@32.3.1)
+ '@cucumber/junit-xml-formatter': 0.13.3(@cucumber/messages@32.3.1)
+ '@cucumber/message-streams': 4.1.1(@cucumber/messages@32.3.1)
+ '@cucumber/messages': 32.3.1
+ '@cucumber/pretty-formatter': 1.0.1(@cucumber/cucumber@12.8.2)(@cucumber/messages@32.3.1)
'@cucumber/tag-expressions': 9.1.0
assertion-error-formatter: 3.0.0
capital-case: 1.0.4
@@ -8909,60 +8914,60 @@ snapshots:
yaml: 2.8.3
yup: 1.7.1
- '@cucumber/gherkin-streams@6.0.0(@cucumber/gherkin@38.0.0)(@cucumber/message-streams@4.1.1(@cucumber/messages@32.2.0))(@cucumber/messages@32.2.0)':
+ '@cucumber/gherkin-streams@6.0.0(@cucumber/gherkin@38.0.0)(@cucumber/message-streams@4.1.1(@cucumber/messages@32.3.1))(@cucumber/messages@32.3.1)':
dependencies:
'@cucumber/gherkin': 38.0.0
- '@cucumber/message-streams': 4.1.1(@cucumber/messages@32.2.0)
- '@cucumber/messages': 32.2.0
+ '@cucumber/message-streams': 4.1.1(@cucumber/messages@32.3.1)
+ '@cucumber/messages': 32.3.1
commander: 14.0.0
source-map-support: 0.5.21
'@cucumber/gherkin-utils@11.0.0':
dependencies:
'@cucumber/gherkin': 38.0.0
- '@cucumber/messages': 32.2.0
+ '@cucumber/messages': 32.3.1
'@teppeis/multimaps': 3.0.0
commander: 14.0.2
source-map-support: 0.5.21
'@cucumber/gherkin@38.0.0':
dependencies:
- '@cucumber/messages': 32.2.0
+ '@cucumber/messages': 32.3.1
- '@cucumber/html-formatter@23.0.0(@cucumber/messages@32.2.0)':
+ '@cucumber/html-formatter@23.1.0(@cucumber/messages@32.3.1)':
dependencies:
- '@cucumber/messages': 32.2.0
+ '@cucumber/messages': 32.3.1
- '@cucumber/junit-xml-formatter@0.13.3(@cucumber/messages@32.2.0)':
+ '@cucumber/junit-xml-formatter@0.13.3(@cucumber/messages@32.3.1)':
dependencies:
- '@cucumber/messages': 32.2.0
- '@cucumber/query': 15.0.1(@cucumber/messages@32.2.0)
+ '@cucumber/messages': 32.3.1
+ '@cucumber/query': 15.0.1(@cucumber/messages@32.3.1)
'@teppeis/multimaps': 3.0.0
luxon: 3.7.2
xmlbuilder: 15.1.1
- '@cucumber/message-streams@4.1.1(@cucumber/messages@32.2.0)':
+ '@cucumber/message-streams@4.1.1(@cucumber/messages@32.3.1)':
dependencies:
- '@cucumber/messages': 32.2.0
+ '@cucumber/messages': 32.3.1
mime: 3.0.0
- '@cucumber/messages@32.2.0':
+ '@cucumber/messages@32.3.1':
dependencies:
class-transformer: 0.5.1
reflect-metadata: 0.2.2
- '@cucumber/pretty-formatter@1.0.1(@cucumber/cucumber@12.8.1)(@cucumber/messages@32.2.0)':
+ '@cucumber/pretty-formatter@1.0.1(@cucumber/cucumber@12.8.2)(@cucumber/messages@32.3.1)':
dependencies:
- '@cucumber/cucumber': 12.8.1
- '@cucumber/messages': 32.2.0
+ '@cucumber/cucumber': 12.8.2
+ '@cucumber/messages': 32.3.1
ansi-styles: 5.2.0
cli-table3: 0.6.5
figures: 3.2.0
ts-dedent: 2.2.0
- '@cucumber/query@15.0.1(@cucumber/messages@32.2.0)':
+ '@cucumber/query@15.0.1(@cucumber/messages@32.3.1)':
dependencies:
- '@cucumber/messages': 32.2.0
+ '@cucumber/messages': 32.3.1
'@teppeis/multimaps': 3.0.0
lodash.sortby: 4.7.0
@@ -9349,7 +9354,7 @@ snapshots:
'@formatjs/fast-memoize@3.1.2': {}
- '@formatjs/intl-localematcher@0.8.3':
+ '@formatjs/intl-localematcher@0.8.4':
dependencies:
'@formatjs/fast-memoize': 3.1.2
@@ -9367,9 +9372,9 @@ snapshots:
dependencies:
react: 19.2.5
- '@hono/node-server@1.19.14(hono@4.12.14)':
+ '@hono/node-server@1.19.14(hono@4.12.15)':
dependencies:
- hono: 4.12.14
+ hono: 4.12.15
'@humanfs/core@0.19.1': {}
@@ -9774,13 +9779,6 @@ snapshots:
react: 19.2.5
react-dom: 19.2.5(react@19.2.5)
- '@napi-rs/wasm-runtime@1.1.2(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)':
- dependencies:
- '@emnapi/core': 1.9.2
- '@emnapi/runtime': 1.9.2
- '@tybys/wasm-util': 0.10.1
- optional: true
-
'@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)':
dependencies:
'@emnapi/core': 1.9.2
@@ -9847,136 +9845,138 @@ snapshots:
'@nolyfill/side-channel@1.0.44': {}
- '@orpc/client@1.13.14':
+ '@orpc/client@1.14.0':
dependencies:
- '@orpc/shared': 1.13.14
- '@orpc/standard-server': 1.13.14
- '@orpc/standard-server-fetch': 1.13.14
- '@orpc/standard-server-peer': 1.13.14
+ '@orpc/shared': 1.14.0
+ '@orpc/standard-server': 1.14.0
+ '@orpc/standard-server-fetch': 1.14.0
+ '@orpc/standard-server-peer': 1.14.0
transitivePeerDependencies:
- '@opentelemetry/api'
- '@orpc/contract@1.13.14':
+ '@orpc/contract@1.14.0':
dependencies:
- '@orpc/client': 1.13.14
- '@orpc/shared': 1.13.14
+ '@orpc/client': 1.14.0
+ '@orpc/shared': 1.14.0
'@standard-schema/spec': 1.1.0
openapi-types: 12.1.3
transitivePeerDependencies:
- '@opentelemetry/api'
- '@orpc/openapi-client@1.13.14':
+ '@orpc/openapi-client@1.14.0':
dependencies:
- '@orpc/client': 1.13.14
- '@orpc/contract': 1.13.14
- '@orpc/shared': 1.13.14
- '@orpc/standard-server': 1.13.14
+ '@orpc/client': 1.14.0
+ '@orpc/contract': 1.14.0
+ '@orpc/shared': 1.14.0
+ '@orpc/standard-server': 1.14.0
transitivePeerDependencies:
- '@opentelemetry/api'
- '@orpc/shared@1.13.14':
+ '@orpc/shared@1.14.0':
dependencies:
radash: 12.1.1
type-fest: 5.5.0
- '@orpc/standard-server-fetch@1.13.14':
+ '@orpc/standard-server-fetch@1.14.0':
dependencies:
- '@orpc/shared': 1.13.14
- '@orpc/standard-server': 1.13.14
+ '@orpc/shared': 1.14.0
+ '@orpc/standard-server': 1.14.0
transitivePeerDependencies:
- '@opentelemetry/api'
- '@orpc/standard-server-peer@1.13.14':
+ '@orpc/standard-server-peer@1.14.0':
dependencies:
- '@orpc/shared': 1.13.14
- '@orpc/standard-server': 1.13.14
+ '@orpc/shared': 1.14.0
+ '@orpc/standard-server': 1.14.0
transitivePeerDependencies:
- '@opentelemetry/api'
- '@orpc/standard-server@1.13.14':
+ '@orpc/standard-server@1.14.0':
dependencies:
- '@orpc/shared': 1.13.14
+ '@orpc/shared': 1.14.0
transitivePeerDependencies:
- '@opentelemetry/api'
- '@orpc/tanstack-query@1.13.14(@orpc/client@1.13.14)(@tanstack/query-core@5.99.2)':
+ '@orpc/tanstack-query@1.14.0(@orpc/client@1.14.0)(@tanstack/query-core@5.100.5)':
dependencies:
- '@orpc/client': 1.13.14
- '@orpc/shared': 1.13.14
- '@tanstack/query-core': 5.99.2
+ '@orpc/client': 1.14.0
+ '@orpc/shared': 1.14.0
+ '@tanstack/query-core': 5.100.5
transitivePeerDependencies:
- '@opentelemetry/api'
'@ota-meshi/ast-token-store@0.3.0': {}
- '@oxc-parser/binding-android-arm-eabi@0.126.0':
+ '@oxc-parser/binding-android-arm-eabi@0.127.0':
optional: true
- '@oxc-parser/binding-android-arm64@0.126.0':
+ '@oxc-parser/binding-android-arm64@0.127.0':
optional: true
- '@oxc-parser/binding-darwin-arm64@0.126.0':
+ '@oxc-parser/binding-darwin-arm64@0.127.0':
optional: true
- '@oxc-parser/binding-darwin-x64@0.126.0':
+ '@oxc-parser/binding-darwin-x64@0.127.0':
optional: true
- '@oxc-parser/binding-freebsd-x64@0.126.0':
+ '@oxc-parser/binding-freebsd-x64@0.127.0':
optional: true
- '@oxc-parser/binding-linux-arm-gnueabihf@0.126.0':
+ '@oxc-parser/binding-linux-arm-gnueabihf@0.127.0':
optional: true
- '@oxc-parser/binding-linux-arm-musleabihf@0.126.0':
+ '@oxc-parser/binding-linux-arm-musleabihf@0.127.0':
optional: true
- '@oxc-parser/binding-linux-arm64-gnu@0.126.0':
+ '@oxc-parser/binding-linux-arm64-gnu@0.127.0':
optional: true
- '@oxc-parser/binding-linux-arm64-musl@0.126.0':
+ '@oxc-parser/binding-linux-arm64-musl@0.127.0':
optional: true
- '@oxc-parser/binding-linux-ppc64-gnu@0.126.0':
+ '@oxc-parser/binding-linux-ppc64-gnu@0.127.0':
optional: true
- '@oxc-parser/binding-linux-riscv64-gnu@0.126.0':
+ '@oxc-parser/binding-linux-riscv64-gnu@0.127.0':
optional: true
- '@oxc-parser/binding-linux-riscv64-musl@0.126.0':
+ '@oxc-parser/binding-linux-riscv64-musl@0.127.0':
optional: true
- '@oxc-parser/binding-linux-s390x-gnu@0.126.0':
+ '@oxc-parser/binding-linux-s390x-gnu@0.127.0':
optional: true
- '@oxc-parser/binding-linux-x64-gnu@0.126.0':
+ '@oxc-parser/binding-linux-x64-gnu@0.127.0':
optional: true
- '@oxc-parser/binding-linux-x64-musl@0.126.0':
+ '@oxc-parser/binding-linux-x64-musl@0.127.0':
optional: true
- '@oxc-parser/binding-openharmony-arm64@0.126.0':
+ '@oxc-parser/binding-openharmony-arm64@0.127.0':
optional: true
- '@oxc-parser/binding-wasm32-wasi@0.126.0':
+ '@oxc-parser/binding-wasm32-wasi@0.127.0':
dependencies:
'@emnapi/core': 1.9.2
'@emnapi/runtime': 1.9.2
'@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)
optional: true
- '@oxc-parser/binding-win32-arm64-msvc@0.126.0':
+ '@oxc-parser/binding-win32-arm64-msvc@0.127.0':
optional: true
- '@oxc-parser/binding-win32-ia32-msvc@0.126.0':
+ '@oxc-parser/binding-win32-ia32-msvc@0.127.0':
optional: true
- '@oxc-parser/binding-win32-x64-msvc@0.126.0':
+ '@oxc-parser/binding-win32-x64-msvc@0.127.0':
optional: true
'@oxc-project/runtime@0.126.0': {}
'@oxc-project/types@0.126.0': {}
+ '@oxc-project/types@0.127.0': {}
+
'@oxc-resolver/binding-android-arm-eabi@11.19.1':
optional: true
@@ -10027,7 +10027,7 @@ snapshots:
'@oxc-resolver/binding-wasm32-wasi@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)':
dependencies:
- '@napi-rs/wasm-runtime': 1.1.2(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)
+ '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)
transitivePeerDependencies:
- '@emnapi/core'
- '@emnapi/runtime'
@@ -10478,7 +10478,7 @@ snapshots:
'@rgrove/parse-xml@4.2.0': {}
- '@rolldown/pluginutils@1.0.0-rc.15': {}
+ '@rolldown/pluginutils@1.0.0-rc.17': {}
'@rolldown/pluginutils@1.0.0-rc.7': {}
@@ -10493,38 +10493,38 @@ snapshots:
estree-walker: 2.0.2
picomatch: 4.0.4
- '@sentry-internal/browser-utils@10.49.0':
+ '@sentry-internal/browser-utils@10.50.0':
dependencies:
- '@sentry/core': 10.49.0
+ '@sentry/core': 10.50.0
- '@sentry-internal/feedback@10.49.0':
+ '@sentry-internal/feedback@10.50.0':
dependencies:
- '@sentry/core': 10.49.0
+ '@sentry/core': 10.50.0
- '@sentry-internal/replay-canvas@10.49.0':
+ '@sentry-internal/replay-canvas@10.50.0':
dependencies:
- '@sentry-internal/replay': 10.49.0
- '@sentry/core': 10.49.0
+ '@sentry-internal/replay': 10.50.0
+ '@sentry/core': 10.50.0
- '@sentry-internal/replay@10.49.0':
+ '@sentry-internal/replay@10.50.0':
dependencies:
- '@sentry-internal/browser-utils': 10.49.0
- '@sentry/core': 10.49.0
+ '@sentry-internal/browser-utils': 10.50.0
+ '@sentry/core': 10.50.0
- '@sentry/browser@10.49.0':
+ '@sentry/browser@10.50.0':
dependencies:
- '@sentry-internal/browser-utils': 10.49.0
- '@sentry-internal/feedback': 10.49.0
- '@sentry-internal/replay': 10.49.0
- '@sentry-internal/replay-canvas': 10.49.0
- '@sentry/core': 10.49.0
+ '@sentry-internal/browser-utils': 10.50.0
+ '@sentry-internal/feedback': 10.50.0
+ '@sentry-internal/replay': 10.50.0
+ '@sentry-internal/replay-canvas': 10.50.0
+ '@sentry/core': 10.50.0
- '@sentry/core@10.49.0': {}
+ '@sentry/core@10.50.0': {}
- '@sentry/react@10.49.0(react@19.2.5)':
+ '@sentry/react@10.50.0(react@19.2.5)':
dependencies:
- '@sentry/browser': 10.49.0
- '@sentry/core': 10.49.0
+ '@sentry/browser': 10.50.0
+ '@sentry/core': 10.50.0
react: 19.2.5
'@shikijs/core@4.0.2':
@@ -10846,7 +10846,7 @@ snapshots:
'@alloc/quick-lru': 5.2.0
'@tailwindcss/node': 4.2.4
'@tailwindcss/oxide': 4.2.4
- postcss: 8.5.10
+ postcss: 8.5.12
tailwindcss: 4.2.4
'@tailwindcss/typography@0.5.19(tailwindcss@4.2.4)':
@@ -10905,9 +10905,9 @@ snapshots:
- csstype
- utf-8-validate
- '@tanstack/eslint-plugin-query@5.99.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)':
+ '@tanstack/eslint-plugin-query@5.100.5(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)':
dependencies:
- '@typescript-eslint/utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)
+ '@typescript-eslint/utils': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)
eslint: 10.2.1(jiti@2.6.1)
optionalDependencies:
typescript: 6.0.3
@@ -10938,9 +10938,9 @@ snapshots:
'@tanstack/pacer-lite@0.1.1': {}
- '@tanstack/query-core@5.99.2': {}
+ '@tanstack/query-core@5.100.5': {}
- '@tanstack/query-devtools@5.99.2': {}
+ '@tanstack/query-devtools@5.100.5': {}
'@tanstack/react-devtools@0.10.2(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(csstype@3.2.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
dependencies:
@@ -10974,15 +10974,15 @@ snapshots:
transitivePeerDependencies:
- react-dom
- '@tanstack/react-query-devtools@5.99.2(@tanstack/react-query@5.99.2(react@19.2.5))(react@19.2.5)':
+ '@tanstack/react-query-devtools@5.100.5(@tanstack/react-query@5.100.5(react@19.2.5))(react@19.2.5)':
dependencies:
- '@tanstack/query-devtools': 5.99.2
- '@tanstack/react-query': 5.99.2(react@19.2.5)
+ '@tanstack/query-devtools': 5.100.5
+ '@tanstack/react-query': 5.100.5(react@19.2.5)
react: 19.2.5
- '@tanstack/react-query@5.99.2(react@19.2.5)':
+ '@tanstack/react-query@5.100.5(react@19.2.5)':
dependencies:
- '@tanstack/query-core': 5.99.2
+ '@tanstack/query-core': 5.100.5
react: 19.2.5
'@tanstack/react-store@0.9.3(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
@@ -11509,36 +11509,36 @@ snapshots:
'@typescript-eslint/types': 8.59.0
eslint-visitor-keys: 5.0.1
- '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260422.1':
+ '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260426.1':
optional: true
- '@typescript/native-preview-darwin-x64@7.0.0-dev.20260422.1':
+ '@typescript/native-preview-darwin-x64@7.0.0-dev.20260426.1':
optional: true
- '@typescript/native-preview-linux-arm64@7.0.0-dev.20260422.1':
+ '@typescript/native-preview-linux-arm64@7.0.0-dev.20260426.1':
optional: true
- '@typescript/native-preview-linux-arm@7.0.0-dev.20260422.1':
+ '@typescript/native-preview-linux-arm@7.0.0-dev.20260426.1':
optional: true
- '@typescript/native-preview-linux-x64@7.0.0-dev.20260422.1':
+ '@typescript/native-preview-linux-x64@7.0.0-dev.20260426.1':
optional: true
- '@typescript/native-preview-win32-arm64@7.0.0-dev.20260422.1':
+ '@typescript/native-preview-win32-arm64@7.0.0-dev.20260426.1':
optional: true
- '@typescript/native-preview-win32-x64@7.0.0-dev.20260422.1':
+ '@typescript/native-preview-win32-x64@7.0.0-dev.20260426.1':
optional: true
- '@typescript/native-preview@7.0.0-dev.20260422.1':
+ '@typescript/native-preview@7.0.0-dev.20260426.1':
optionalDependencies:
- '@typescript/native-preview-darwin-arm64': 7.0.0-dev.20260422.1
- '@typescript/native-preview-darwin-x64': 7.0.0-dev.20260422.1
- '@typescript/native-preview-linux-arm': 7.0.0-dev.20260422.1
- '@typescript/native-preview-linux-arm64': 7.0.0-dev.20260422.1
- '@typescript/native-preview-linux-x64': 7.0.0-dev.20260422.1
- '@typescript/native-preview-win32-arm64': 7.0.0-dev.20260422.1
- '@typescript/native-preview-win32-x64': 7.0.0-dev.20260422.1
+ '@typescript/native-preview-darwin-arm64': 7.0.0-dev.20260426.1
+ '@typescript/native-preview-darwin-x64': 7.0.0-dev.20260426.1
+ '@typescript/native-preview-linux-arm': 7.0.0-dev.20260426.1
+ '@typescript/native-preview-linux-arm64': 7.0.0-dev.20260426.1
+ '@typescript/native-preview-linux-x64': 7.0.0-dev.20260426.1
+ '@typescript/native-preview-win32-arm64': 7.0.0-dev.20260426.1
+ '@typescript/native-preview-win32-x64': 7.0.0-dev.20260426.1
'@ungap/structured-clone@1.3.0': {}
@@ -11595,9 +11595,9 @@ snapshots:
'@rolldown/pluginutils': 1.0.0-rc.7
vite: '@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3)'
- '@vitejs/plugin-rsc@0.5.24(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(react-dom@19.2.5(react@19.2.5))(react-server-dom-webpack@19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)':
+ '@vitejs/plugin-rsc@0.5.25(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(react-dom@19.2.5(react@19.2.5))(react-server-dom-webpack@19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)':
dependencies:
- '@rolldown/pluginutils': 1.0.0-rc.15
+ '@rolldown/pluginutils': 1.0.0-rc.17
es-module-lexer: 2.0.0
estree-walker: 3.0.3
magic-string: 0.30.21
@@ -11656,7 +11656,7 @@ snapshots:
'@vitest/eslint-plugin@1.6.15(@types/node@25.6.0)(@typescript-eslint/eslint-plugin@8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(esbuild@0.27.2)(happy-dom@20.9.0)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(esbuild@0.27.2)(eslint@10.2.1(jiti@2.6.1))(happy-dom@20.9.0)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3)':
dependencies:
'@typescript-eslint/scope-manager': 8.59.0
- '@typescript-eslint/utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)
+ '@typescript-eslint/utils': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)
eslint: 10.2.1(jiti@2.6.1)
vitest: '@voidzero-dev/vite-plus-test@0.1.19(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(esbuild@0.27.2)(happy-dom@20.9.0)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(esbuild@0.27.2)(happy-dom@20.9.0)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3)'
optionalDependencies:
@@ -11837,7 +11837,7 @@ snapshots:
'@xstate/fsm@1.6.5': {}
- abcjs@6.6.2: {}
+ abcjs@6.6.3: {}
acorn-jsx@5.3.2(acorn@8.16.0):
dependencies:
@@ -12111,7 +12111,7 @@ snapshots:
cli-table3@0.6.5:
dependencies:
- string-width: 8.2.0
+ string-width: 8.2.1
optionalDependencies:
'@colors/colors': 1.5.0
@@ -12796,7 +12796,7 @@ snapshots:
micromark-factory-space: 2.0.1
micromark-util-character: 2.1.1
micromark-util-symbol: 2.0.1
- string-width: 8.2.0
+ string-width: 8.2.1
transitivePeerDependencies:
- supports-color
@@ -12806,7 +12806,7 @@ snapshots:
enhanced-resolve: 5.20.1
eslint: 10.2.1(jiti@2.6.1)
eslint-plugin-es-x: 7.8.0(eslint@10.2.1(jiti@2.6.1))
- get-tsconfig: 4.13.7
+ get-tsconfig: 4.14.0
globals: 15.15.0
globrex: 0.1.2
ignore: 5.3.2
@@ -12827,7 +12827,7 @@ snapshots:
eslint-plugin-perfectionist@5.8.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3):
dependencies:
- '@typescript-eslint/utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)
+ '@typescript-eslint/utils': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)
eslint: 10.2.1(jiti@2.6.1)
natural-orderby: 5.0.0
transitivePeerDependencies:
@@ -13343,7 +13343,7 @@ snapshots:
glob@13.0.6:
dependencies:
- minimatch: 10.2.4
+ minimatch: 10.2.5
minipass: 7.1.3
path-scurry: 2.0.2
@@ -13534,7 +13534,7 @@ snapshots:
hex-rgb@4.3.0: {}
- hono@4.12.14: {}
+ hono@4.12.15: {}
hosted-git-info@9.0.2:
dependencies:
@@ -13753,20 +13753,20 @@ snapshots:
khroma@2.1.0: {}
- knip@6.6.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2):
+ knip@6.7.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2):
dependencies:
fdir: 6.5.0(picomatch@4.0.4)
formatly: 0.3.0
get-tsconfig: 4.14.0
jiti: 2.6.1
minimist: 1.2.8
- oxc-parser: 0.126.0
+ oxc-parser: 0.127.0
oxc-resolver: 11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)
picomatch: 4.0.4
smol-toml: 1.6.1
strip-json-comments: 5.0.3
tinyglobby: 0.2.16
- unbash: 2.2.0
+ unbash: 3.0.0
yaml: 2.8.3
zod: 4.3.6
transitivePeerDependencies:
@@ -13894,7 +13894,7 @@ snapshots:
dependencies:
js-tokens: 4.0.0
- loro-crdt@1.11.1: {}
+ loro-crdt@1.12.0: {}
loupe@3.2.1: {}
@@ -14652,30 +14652,30 @@ snapshots:
type-check: 0.4.0
word-wrap: 1.2.5
- oxc-parser@0.126.0:
+ oxc-parser@0.127.0:
dependencies:
- '@oxc-project/types': 0.126.0
+ '@oxc-project/types': 0.127.0
optionalDependencies:
- '@oxc-parser/binding-android-arm-eabi': 0.126.0
- '@oxc-parser/binding-android-arm64': 0.126.0
- '@oxc-parser/binding-darwin-arm64': 0.126.0
- '@oxc-parser/binding-darwin-x64': 0.126.0
- '@oxc-parser/binding-freebsd-x64': 0.126.0
- '@oxc-parser/binding-linux-arm-gnueabihf': 0.126.0
- '@oxc-parser/binding-linux-arm-musleabihf': 0.126.0
- '@oxc-parser/binding-linux-arm64-gnu': 0.126.0
- '@oxc-parser/binding-linux-arm64-musl': 0.126.0
- '@oxc-parser/binding-linux-ppc64-gnu': 0.126.0
- '@oxc-parser/binding-linux-riscv64-gnu': 0.126.0
- '@oxc-parser/binding-linux-riscv64-musl': 0.126.0
- '@oxc-parser/binding-linux-s390x-gnu': 0.126.0
- '@oxc-parser/binding-linux-x64-gnu': 0.126.0
- '@oxc-parser/binding-linux-x64-musl': 0.126.0
- '@oxc-parser/binding-openharmony-arm64': 0.126.0
- '@oxc-parser/binding-wasm32-wasi': 0.126.0
- '@oxc-parser/binding-win32-arm64-msvc': 0.126.0
- '@oxc-parser/binding-win32-ia32-msvc': 0.126.0
- '@oxc-parser/binding-win32-x64-msvc': 0.126.0
+ '@oxc-parser/binding-android-arm-eabi': 0.127.0
+ '@oxc-parser/binding-android-arm64': 0.127.0
+ '@oxc-parser/binding-darwin-arm64': 0.127.0
+ '@oxc-parser/binding-darwin-x64': 0.127.0
+ '@oxc-parser/binding-freebsd-x64': 0.127.0
+ '@oxc-parser/binding-linux-arm-gnueabihf': 0.127.0
+ '@oxc-parser/binding-linux-arm-musleabihf': 0.127.0
+ '@oxc-parser/binding-linux-arm64-gnu': 0.127.0
+ '@oxc-parser/binding-linux-arm64-musl': 0.127.0
+ '@oxc-parser/binding-linux-ppc64-gnu': 0.127.0
+ '@oxc-parser/binding-linux-riscv64-gnu': 0.127.0
+ '@oxc-parser/binding-linux-riscv64-musl': 0.127.0
+ '@oxc-parser/binding-linux-s390x-gnu': 0.127.0
+ '@oxc-parser/binding-linux-x64-gnu': 0.127.0
+ '@oxc-parser/binding-linux-x64-musl': 0.127.0
+ '@oxc-parser/binding-openharmony-arm64': 0.127.0
+ '@oxc-parser/binding-wasm32-wasi': 0.127.0
+ '@oxc-parser/binding-win32-arm64-msvc': 0.127.0
+ '@oxc-parser/binding-win32-ia32-msvc': 0.127.0
+ '@oxc-parser/binding-win32-x64-msvc': 0.127.0
oxc-resolver@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2):
optionalDependencies:
@@ -14934,7 +14934,7 @@ snapshots:
picocolors: 1.1.1
source-map-js: 1.2.1
- postcss@8.5.10:
+ postcss@8.5.12:
dependencies:
nanoid: 3.3.11
picocolors: 1.1.1
@@ -15643,7 +15643,7 @@ snapshots:
string-ts@2.3.1: {}
- string-width@8.2.0:
+ string-width@8.2.1:
dependencies:
get-east-asian-width: 1.5.0
strip-ansi: 7.2.0
@@ -15900,7 +15900,7 @@ snapshots:
uglify-js@3.19.3: {}
- unbash@2.2.0: {}
+ unbash@3.0.0: {}
undici-types@7.19.2: {}
@@ -16067,7 +16067,7 @@ snapshots:
'@types/unist': 3.0.3
vfile-message: 4.0.3
- vinext@0.0.41(@mdx-js/rollup@3.1.1)(@vitejs/plugin-react@6.0.1(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3)))(@vitejs/plugin-rsc@0.5.24(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(react-dom@19.2.5(react@19.2.5))(react-server-dom-webpack@19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5))(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(next@16.2.4(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react-server-dom-webpack@19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)(typescript@6.0.3):
+ vinext@0.0.41(@mdx-js/rollup@3.1.1)(@vitejs/plugin-react@6.0.1(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3)))(@vitejs/plugin-rsc@0.5.25(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(react-dom@19.2.5(react@19.2.5))(react-server-dom-webpack@19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5))(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(next@16.2.4(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react-server-dom-webpack@19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)(typescript@6.0.3):
dependencies:
'@unpic/react': 1.0.2(next@16.2.4(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
'@vercel/og': 0.8.6
@@ -16080,7 +16080,7 @@ snapshots:
vite-tsconfig-paths: 6.1.1(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)
optionalDependencies:
'@mdx-js/rollup': 3.1.1
- '@vitejs/plugin-rsc': 0.5.24(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(react-dom@19.2.5(react@19.2.5))(react-server-dom-webpack@19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)
+ '@vitejs/plugin-rsc': 0.5.25(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(react-dom@19.2.5(react@19.2.5))(react-server-dom-webpack@19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)
react-server-dom-webpack: 19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
transitivePeerDependencies:
- next
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 0d78fed290..3b994ee27a 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -47,18 +47,18 @@ overrides:
yaml@>=2.0.0 <2.8.3: 2.8.3
yauzl@<3.2.1: 3.2.1
catalog:
- '@amplitude/analytics-browser': 2.41.0
- '@amplitude/plugin-session-replay-browser': 1.27.10
+ '@amplitude/analytics-browser': 2.41.1
+ '@amplitude/plugin-session-replay-browser': 1.28.0
'@antfu/eslint-config': 8.2.0
'@base-ui/react': 1.4.1
'@chromatic-com/storybook': 5.1.2
- '@cucumber/cucumber': 12.8.1
+ '@cucumber/cucumber': 12.8.2
'@egoist/tailwindcss-icons': 1.9.2
'@emoji-mart/data': 1.2.1
'@eslint-react/eslint-plugin': 3.0.0
'@eslint/js': 10.0.1
'@floating-ui/react': 0.27.19
- '@formatjs/intl-localematcher': 0.8.3
+ '@formatjs/intl-localematcher': 0.8.4
'@headlessui/react': 2.2.10
'@heroicons/react': 2.2.0
'@hono/node-server': 1.19.14
@@ -77,14 +77,14 @@ catalog:
'@monaco-editor/react': 4.7.0
'@next/eslint-plugin-next': 16.2.4
'@next/mdx': 16.2.4
- '@orpc/client': 1.13.14
- '@orpc/contract': 1.13.14
- '@orpc/openapi-client': 1.13.14
- '@orpc/tanstack-query': 1.13.14
+ '@orpc/client': 1.14.0
+ '@orpc/contract': 1.14.0
+ '@orpc/openapi-client': 1.14.0
+ '@orpc/tanstack-query': 1.14.0
'@playwright/test': 1.59.1
'@remixicon/react': 4.9.0
'@rgrove/parse-xml': 4.2.0
- '@sentry/react': 10.49.0
+ '@sentry/react': 10.50.0
'@storybook/addon-docs': 10.3.5
'@storybook/addon-links': 10.3.5
'@storybook/addon-onboarding': 10.3.5
@@ -98,12 +98,12 @@ catalog:
'@tailwindcss/postcss': 4.2.4
'@tailwindcss/typography': 0.5.19
'@tailwindcss/vite': 4.2.4
- '@tanstack/eslint-plugin-query': 5.99.2
+ '@tanstack/eslint-plugin-query': 5.100.5
'@tanstack/react-devtools': 0.10.2
'@tanstack/react-form': 1.29.1
'@tanstack/react-form-devtools': 0.2.22
- '@tanstack/react-query': 5.99.2
- '@tanstack/react-query-devtools': 5.99.2
+ '@tanstack/react-query': 5.100.5
+ '@tanstack/react-query-devtools': 5.100.5
'@tanstack/react-virtual': 3.13.24
'@testing-library/dom': 10.4.1
'@testing-library/jest-dom': 6.9.1
@@ -122,11 +122,11 @@ catalog:
'@types/sortablejs': 1.15.9
'@typescript-eslint/eslint-plugin': 8.59.0
'@typescript-eslint/parser': 8.59.0
- '@typescript/native-preview': 7.0.0-dev.20260422.1
+ '@typescript/native-preview': 7.0.0-dev.20260426.1
'@vitejs/plugin-react': 6.0.1
- '@vitejs/plugin-rsc': 0.5.24
+ '@vitejs/plugin-rsc': 0.5.25
'@vitest/coverage-v8': 4.1.5
- abcjs: 6.6.2
+ abcjs: 6.6.3
agentation: 3.0.2
ahooks: 3.9.7
class-variance-authority: 0.7.1
@@ -158,7 +158,7 @@ catalog:
fast-deep-equal: 3.1.3
happy-dom: 20.9.0
hast-util-to-jsx-runtime: 2.3.6
- hono: 4.12.14
+ hono: 4.12.15
html-entities: 2.6.0
html-to-image: 1.11.13
i18next: 26.0.6
@@ -171,11 +171,11 @@ catalog:
js-yaml: 4.1.1
jsonschema: 1.5.0
katex: 0.16.45
- knip: 6.6.1
+ knip: 6.7.0
ky: 2.0.2
lamejs: 1.2.1
lexical: 0.43.0
- loro-crdt: 1.11.1
+ loro-crdt: 1.12.0
mermaid: 11.14.0
mime: 4.1.0
mitt: 3.0.1
@@ -185,7 +185,7 @@ catalog:
nuqs: 2.8.9
pinyin-pro: 3.28.1
playwright: 1.59.1
- postcss: 8.5.10
+ postcss: 8.5.12
qrcode.react: 4.2.0
qs: 6.15.1
react: 19.2.5
diff --git a/web/app/components/app/configuration/debug/types.ts b/web/app/components/app/configuration/debug/types.ts
index ada665a7d2..d4c54eba49 100644
--- a/web/app/components/app/configuration/debug/types.ts
+++ b/web/app/components/app/configuration/debug/types.ts
@@ -5,7 +5,7 @@ export type ModelAndParameter = {
parameters: Record
}
-export type MultipleAndConfigs = {
+type MultipleAndConfigs = {
multiple: boolean
configs: ModelAndParameter[]
}
diff --git a/web/app/components/base/chat/chat/type.ts b/web/app/components/base/chat/chat/type.ts
index 6ddb4f958e..87aaf1b4b6 100644
--- a/web/app/components/base/chat/chat/type.ts
+++ b/web/app/components/base/chat/chat/type.ts
@@ -8,7 +8,7 @@ import type {
HumanInputFormData,
} from '@/types/workflow'
-export type MessageMore = {
+type MessageMore = {
time: string
tokens: number
latency: number | string
diff --git a/web/app/components/base/features/store.ts b/web/app/components/base/features/store.ts
index 7a4fe47663..e1f6ee413a 100644
--- a/web/app/components/base/features/store.ts
+++ b/web/app/components/base/features/store.ts
@@ -2,7 +2,7 @@ import type { Features } from './types'
import { createStore } from 'zustand'
import { Resolution, TransferMethod } from '@/types/app'
-export type FeaturesModal = {
+type FeaturesModal = {
showFeaturesModal: boolean
setShowFeaturesModal: (showFeaturesModal: boolean) => void
}
@@ -11,7 +11,7 @@ export type FeaturesState = {
features: Features
}
-export type FeaturesAction = {
+type FeaturesAction = {
setFeatures: (features: Features) => void
}
diff --git a/web/app/components/base/features/types.ts b/web/app/components/base/features/types.ts
index 4401a8276f..0940e8343f 100644
--- a/web/app/components/base/features/types.ts
+++ b/web/app/components/base/features/types.ts
@@ -6,11 +6,11 @@ import type {
TtsAutoPlay,
} from '@/types/app'
-export type EnabledOrDisabled = {
+type EnabledOrDisabled = {
enabled?: boolean
}
-export type MoreLikeThis = EnabledOrDisabled
+type MoreLikeThis = EnabledOrDisabled
export type OpeningStatement = EnabledOrDisabled & {
opening_statement?: string
@@ -75,7 +75,7 @@ export type FileUpload = {
}
} & EnabledOrDisabled
-export type AnnotationReplyConfig = {
+type AnnotationReplyConfig = {
enabled: boolean
id?: string
score_threshold?: number
diff --git a/web/app/components/base/form/form-scenarios/base/types.ts b/web/app/components/base/form/form-scenarios/base/types.ts
index 8eeebe2e30..5c778054b5 100644
--- a/web/app/components/base/form/form-scenarios/base/types.ts
+++ b/web/app/components/base/form/form-scenarios/base/types.ts
@@ -33,7 +33,7 @@ export type SelectConfiguration = {
}
}
-export type FileConfiguration = {
+type FileConfiguration = {
allowedFileTypes: string[]
allowedFileExtensions: string[]
allowedFileUploadMethods: TransferMethod[]
diff --git a/web/app/components/base/form/form-scenarios/input-field/types.ts b/web/app/components/base/form/form-scenarios/input-field/types.ts
index 5ffbacb721..e8832db4ba 100644
--- a/web/app/components/base/form/form-scenarios/input-field/types.ts
+++ b/web/app/components/base/form/form-scenarios/input-field/types.ts
@@ -13,11 +13,11 @@ export enum InputFieldType {
fileTypes = 'fileTypes',
}
-export type InputTypeSelectConfiguration = {
+type InputTypeSelectConfiguration = {
supportFile: boolean
}
-export type NumberSliderConfiguration = {
+type NumberSliderConfiguration = {
description: string
max?: number
min?: number
diff --git a/web/app/components/base/form/form-scenarios/node-panel/types.ts b/web/app/components/base/form/form-scenarios/node-panel/types.ts
index 327ee9b159..0e1e0e82ab 100644
--- a/web/app/components/base/form/form-scenarios/node-panel/types.ts
+++ b/web/app/components/base/form/form-scenarios/node-panel/types.ts
@@ -14,11 +14,11 @@ export enum InputFieldType {
variableOrConstant = 'variableOrConstant',
}
-export type InputTypeSelectConfiguration = {
+type InputTypeSelectConfiguration = {
supportFile: boolean
}
-export type NumberSliderConfiguration = {
+type NumberSliderConfiguration = {
description: string
max?: number
min?: number
diff --git a/web/app/components/base/form/types.ts b/web/app/components/base/form/types.ts
index 4b83b9e4c9..f0fd929250 100644
--- a/web/app/components/base/form/types.ts
+++ b/web/app/components/base/form/types.ts
@@ -14,7 +14,7 @@ export type TypeWithI18N = {
[key: string]: T
}
-export type FormShowOnObject = {
+type FormShowOnObject = {
variable: string
value: string
}
@@ -43,7 +43,7 @@ export type FormOption = {
icon?: string
}
-export type AnyValidators = FieldValidators
+type AnyValidators = FieldValidators
export enum FormItemValidateStatusEnum {
Success = 'success',
diff --git a/web/app/components/base/markdown-with-directive/components/markdown-with-directive-schema.ts b/web/app/components/base/markdown-with-directive/components/markdown-with-directive-schema.ts
index 4e721b214e..6dbde998d4 100644
--- a/web/app/components/base/markdown-with-directive/components/markdown-with-directive-schema.ts
+++ b/web/app/components/base/markdown-with-directive/components/markdown-with-directive-schema.ts
@@ -3,11 +3,11 @@ import * as z from 'zod'
const commonSchema = {
className: z.string().min(1).optional(),
}
-export const withIconCardListPropsSchema = z.object(commonSchema).strict()
+const withIconCardListPropsSchema = z.object(commonSchema).strict()
const HTTP_URL_REGEX = /^https?:\/\//i
-export const withIconCardItemPropsSchema = z.object({
+const withIconCardItemPropsSchema = z.object({
...commonSchema,
icon: z.string().trim().url().refine(
value => HTTP_URL_REGEX.test(value),
diff --git a/web/app/components/base/text-generation/types.ts b/web/app/components/base/text-generation/types.ts
index 62a401c3cb..86be8a0a25 100644
--- a/web/app/components/base/text-generation/types.ts
+++ b/web/app/components/base/text-generation/types.ts
@@ -4,7 +4,6 @@ import type {
VisionFile,
} from '@/types/app'
-export type { VisionFile } from '@/types/app'
export { TransferMethod } from '@/types/app'
export type TextGenerationConfig = Omit & {
diff --git a/web/app/components/base/textarea/index.tsx b/web/app/components/base/textarea/index.tsx
index f5a8dd87f2..7ee66368f6 100644
--- a/web/app/components/base/textarea/index.tsx
+++ b/web/app/components/base/textarea/index.tsx
@@ -58,4 +58,3 @@ const Textarea = React.forwardRef(
Textarea.displayName = 'Textarea'
export default Textarea
-export { textareaVariants }
diff --git a/web/app/components/datasets/documents/detail/completed/segment-list-context.ts b/web/app/components/datasets/documents/detail/completed/segment-list-context.ts
index 3ce9f8b987..b81a305614 100644
--- a/web/app/components/datasets/documents/detail/completed/segment-list-context.ts
+++ b/web/app/components/datasets/documents/detail/completed/segment-list-context.ts
@@ -2,13 +2,13 @@ import type { ChildChunkDetail, SegmentDetailModel } from '@/models/datasets'
import { noop } from 'es-toolkit/function'
import { createContext, useContextSelector } from 'use-context-selector'
-export type CurrSegmentType = {
+type CurrSegmentType = {
segInfo?: SegmentDetailModel
showModal: boolean
isEditMode?: boolean
}
-export type CurrChildChunkType = {
+type CurrChildChunkType = {
childChunkInfo?: ChildChunkDetail
showModal: boolean
}
diff --git a/web/app/components/datasets/documents/hooks/use-document-list-query-state.ts b/web/app/components/datasets/documents/hooks/use-document-list-query-state.ts
index 60717d532c..d06ffe767c 100644
--- a/web/app/components/datasets/documents/hooks/use-document-list-query-state.ts
+++ b/web/app/components/datasets/documents/hooks/use-document-list-query-state.ts
@@ -49,7 +49,7 @@ const parseAsDocSort = createParser({
const parseAsKeyword = parseAsString.withDefault('')
-export const documentListParsers = {
+const documentListParsers = {
page: parseAsPage,
limit: parseAsLimit,
keyword: parseAsKeyword,
diff --git a/web/app/components/goto-anything/actions/types.ts b/web/app/components/goto-anything/actions/types.ts
index 7d1ddfd4e1..da3ca8eb62 100644
--- a/web/app/components/goto-anything/actions/types.ts
+++ b/web/app/components/goto-anything/actions/types.ts
@@ -5,9 +5,9 @@ import type { CommonNodeType } from '../../workflow/types'
import type { DataSet } from '@/models/datasets'
import type { App } from '@/types/app'
-export type SearchResultType = 'app' | 'knowledge' | 'plugin' | 'workflow-node' | 'command' | 'recent'
+type SearchResultType = 'app' | 'knowledge' | 'plugin' | 'workflow-node' | 'command' | 'recent'
-export type BaseSearchResult = {
+type BaseSearchResult = {
id: string
title: string
description?: string
@@ -29,7 +29,7 @@ export type KnowledgeSearchResult = {
type: 'knowledge'
} & BaseSearchResult
-export type WorkflowNodeSearchResult = {
+type WorkflowNodeSearchResult = {
type: 'workflow-node'
metadata?: {
nodeId: string
diff --git a/web/app/components/header/account-setting/model-provider-page/declarations.ts b/web/app/components/header/account-setting/model-provider-page/declarations.ts
index cc700fe5c6..fc18f019a0 100644
--- a/web/app/components/header/account-setting/model-provider-page/declarations.ts
+++ b/web/app/components/header/account-setting/model-provider-page/declarations.ts
@@ -92,7 +92,7 @@ export enum CustomConfigurationStatusEnum {
noConfigure = 'no-configure',
}
-export type FormShowOnObject = {
+type FormShowOnObject = {
variable: string
value: string
}
@@ -155,7 +155,7 @@ export enum QuotaUnitEnum {
times = 'times',
}
-export type QuotaConfiguration = {
+type QuotaConfiguration = {
quota_type: CurrentSystemQuotaTypeEnum
quota_unit: QuotaUnitEnum
quota_limit: number
diff --git a/web/app/components/plugins/plugin-detail-panel/tool-selector/components/reasoning-config-form.helpers.ts b/web/app/components/plugins/plugin-detail-panel/tool-selector/components/reasoning-config-form.helpers.ts
index 6316441f1c..a07d3de500 100644
--- a/web/app/components/plugins/plugin-detail-panel/tool-selector/components/reasoning-config-form.helpers.ts
+++ b/web/app/components/plugins/plugin-detail-panel/tool-selector/components/reasoning-config-form.helpers.ts
@@ -7,13 +7,13 @@ import { FormTypeEnum } from '@/app/components/header/account-setting/model-prov
import { VarType as VarKindType } from '@/app/components/workflow/nodes/tool/types'
import { VarType } from '@/app/components/workflow/types'
-export type ReasoningConfigInputValue = {
+type ReasoningConfigInputValue = {
type?: VarKindType
value?: unknown
[key: string]: unknown
} | null
-export type ReasoningConfigInput = {
+type ReasoningConfigInput = {
value: ReasoningConfigInputValue
auto?: 0 | 1
}
diff --git a/web/app/components/plugins/types.ts b/web/app/components/plugins/types.ts
index bcffad06e0..0f03e17a05 100644
--- a/web/app/components/plugins/types.ts
+++ b/web/app/components/plugins/types.ts
@@ -22,7 +22,7 @@ export enum PluginSource {
debugging = 'remote',
}
-export type PluginToolDeclaration = {
+type PluginToolDeclaration = {
identity: {
author: string
name: string
@@ -34,12 +34,12 @@ export type PluginToolDeclaration = {
credentials_schema: ToolCredential[] // TODO
}
-export type PluginEndpointDeclaration = {
+type PluginEndpointDeclaration = {
settings: ToolCredential[]
endpoints: EndpointItem[]
}
-export type EndpointItem = {
+type EndpointItem = {
path: string
method: string
hidden?: boolean
@@ -60,7 +60,7 @@ export type EndpointListItem = {
hook_id: string
}
-export type PluginDeclarationMeta = {
+type PluginDeclarationMeta = {
version: string
minimum_dify_version?: string
}
@@ -96,14 +96,14 @@ export type PluginTriggerSubscriptionConstructor = {
parameters: ParametersSchema[]
}
-export type PluginTriggerDefinition = {
+type PluginTriggerDefinition = {
events: TriggerEvent[]
identity: Identity
subscription_constructor: PluginTriggerSubscriptionConstructor
subscription_schema: ParametersSchema[]
}
-export type CredentialsSchema = {
+type CredentialsSchema = {
name: string
label: Record
description: Record
@@ -117,7 +117,7 @@ export type CredentialsSchema = {
placeholder: Record
}
-export type OauthSchema = {
+type OauthSchema = {
client_schema: CredentialsSchema[]
credentials_schema: CredentialsSchema[]
}
@@ -352,7 +352,7 @@ export enum InstallStep {
installFailed = 'failed',
}
-export type GitHubAsset = {
+type GitHubAsset = {
id: number
name: string
browser_download_url: string
@@ -496,7 +496,7 @@ export type PackageDependency = {
export type Dependency = GitHubItemAndMarketPlaceDependency | PackageDependency
-export type Version = {
+type Version = {
plugin_org: string
plugin_name: string
version: string
@@ -554,7 +554,7 @@ export type StrategyDetail = {
features: AgentFeature[]
}
-export type Identity = {
+type Identity = {
author: string
name: string
label: Record
@@ -564,7 +564,7 @@ export type Identity = {
tags: string[]
}
-export type StrategyDeclaration = {
+type StrategyDeclaration = {
identity: Identity
plugin_id: string
strategies: StrategyDetail[]
diff --git a/web/app/components/tools/types.ts b/web/app/components/tools/types.ts
index c7fb9eec2a..1e799c7307 100644
--- a/web/app/components/tools/types.ts
+++ b/web/app/components/tools/types.ts
@@ -100,7 +100,7 @@ export type ToolParameter = {
max?: number
}
-export type TriggerParameter = {
+type TriggerParameter = {
name: string
label: LocalizedText
human_description: LocalizedText
@@ -165,7 +165,7 @@ export type CustomCollectionBackend = {
labels: string[]
}
-export type ParamItem = {
+type ParamItem = {
name: string
label: LocalizedText
human_description: LocalizedText
diff --git a/web/app/components/workflow-app/hooks/use-workflow-run-utils.ts b/web/app/components/workflow-app/hooks/use-workflow-run-utils.ts
index fd5669f80a..764687fcbb 100644
--- a/web/app/components/workflow-app/hooks/use-workflow-run-utils.ts
+++ b/web/app/components/workflow-app/hooks/use-workflow-run-utils.ts
@@ -10,7 +10,7 @@ import { handleStream, post } from '@/service/base'
import { ContentType } from '@/service/fetch'
import { AppModeEnum } from '@/types/app'
-export type HandleRunMode = TriggerType
+type HandleRunMode = TriggerType
export type HandleRunOptions = {
mode?: HandleRunMode
scheduleNodeId?: string
diff --git a/web/app/components/workflow/block-selector/types.ts b/web/app/components/workflow/block-selector/types.ts
index dc6551c45c..500ca60fdf 100644
--- a/web/app/components/workflow/block-selector/types.ts
+++ b/web/app/components/workflow/block-selector/types.ts
@@ -124,7 +124,7 @@ export type DataSourceItem = {
is_authorized: boolean
}
-export type TriggerCredentialField = {
+type TriggerCredentialField = {
type: 'secret-input' | 'text-input' | 'select' | 'boolean'
| 'app-selector' | 'model-selector' | 'tools-selector'
name: string
@@ -226,14 +226,14 @@ export type TriggerLogEntity = {
created_at: string
}
-export type LogRequest = {
+type LogRequest = {
method: string
url: string
headers: LogRequestHeaders
data: string
}
-export type LogRequestHeaders = {
+type LogRequestHeaders = {
'Host': string
'User-Agent': string
'Content-Length': string
@@ -251,13 +251,13 @@ export type LogRequestHeaders = {
[key: string]: string
}
-export type LogResponse = {
+type LogResponse = {
status_code: number
headers: LogResponseHeaders
data: string
}
-export type LogResponseHeaders = {
+type LogResponseHeaders = {
'Content-Type': string
'Content-Length': string
[key: string]: string
diff --git a/web/app/components/workflow/collaboration/types/collaboration.ts b/web/app/components/workflow/collaboration/types/collaboration.ts
index ae355a7b51..3a5b71e2d1 100644
--- a/web/app/components/workflow/collaboration/types/collaboration.ts
+++ b/web/app/components/workflow/collaboration/types/collaboration.ts
@@ -22,7 +22,7 @@ export type NodePanelPresenceUser = {
avatar?: string | null
}
-export type NodePanelPresenceInfo = NodePanelPresenceUser & {
+type NodePanelPresenceInfo = NodePanelPresenceUser & {
clientId: string
timestamp: number
}
@@ -39,7 +39,7 @@ export type CollaborationState = {
error?: string
}
-export type CollaborationEventType
+type CollaborationEventType
= | 'mouse_move'
| 'vars_and_features_update'
| 'sync_request'
diff --git a/web/app/components/workflow/collaboration/types/websocket.ts b/web/app/components/workflow/collaboration/types/websocket.ts
index dd89df323f..053c655939 100644
--- a/web/app/components/workflow/collaboration/types/websocket.ts
+++ b/web/app/components/workflow/collaboration/types/websocket.ts
@@ -4,7 +4,7 @@ export type WebSocketConfig = {
withCredentials?: boolean
}
-export type ConnectionInfo = {
+type ConnectionInfo = {
connected: boolean
connecting: boolean
socketId?: string
diff --git a/web/app/components/workflow/hooks-store/store.ts b/web/app/components/workflow/hooks-store/store.ts
index a9d5003fb3..376bec635c 100644
--- a/web/app/components/workflow/hooks-store/store.ts
+++ b/web/app/components/workflow/hooks-store/store.ts
@@ -27,7 +27,7 @@ export type SyncDraftCallback = {
onError?: () => void
onSettled?: () => void
}
-export type CommonHooksFnMap = {
+type CommonHooksFnMap = {
doSyncWorkflowDraft: (
notRefreshWhenSyncError?: boolean,
callback?: SyncDraftCallback,
diff --git a/web/app/components/workflow/nodes/knowledge-base/types.ts b/web/app/components/workflow/nodes/knowledge-base/types.ts
index dbcc926ee3..afe7370ba6 100644
--- a/web/app/components/workflow/nodes/knowledge-base/types.ts
+++ b/web/app/components/workflow/nodes/knowledge-base/types.ts
@@ -32,7 +32,7 @@ export type WeightedScore = {
}
}
-export type RetrievalSetting = {
+type RetrievalSetting = {
search_method?: RETRIEVE_METHOD
reranking_enable?: boolean
reranking_model?: RerankingModel
diff --git a/web/app/components/workflow/nodes/loop/types.ts b/web/app/components/workflow/nodes/loop/types.ts
index 3e91506c47..066f0fcbe3 100644
--- a/web/app/components/workflow/nodes/loop/types.ts
+++ b/web/app/components/workflow/nodes/loop/types.ts
@@ -83,8 +83,8 @@ export type LoopNodeType = CommonNodeType & {
loop_variables?: LoopVariable[]
}
-export type HandleUpdateLoopVariable = (id: string, updateData: Partial) => void
-export type HandleRemoveLoopVariable = (id: string) => void
+type HandleUpdateLoopVariable = (id: string, updateData: Partial) => void
+type HandleRemoveLoopVariable = (id: string) => void
export type LoopVariablesComponentShape = {
nodeId: string
diff --git a/web/app/components/workflow/nodes/trigger-schedule/types.ts b/web/app/components/workflow/nodes/trigger-schedule/types.ts
index 3d82709199..9bcecdda82 100644
--- a/web/app/components/workflow/nodes/trigger-schedule/types.ts
+++ b/web/app/components/workflow/nodes/trigger-schedule/types.ts
@@ -4,7 +4,7 @@ export type ScheduleMode = 'visual' | 'cron'
export type ScheduleFrequency = 'hourly' | 'daily' | 'weekly' | 'monthly'
-export type VisualConfig = {
+type VisualConfig = {
time?: string
weekdays?: string[]
on_minute?: number
diff --git a/web/app/components/workflow/nodes/trigger-webhook/components/generic-table.tsx b/web/app/components/workflow/nodes/trigger-webhook/components/generic-table.tsx
index 438cf154ba..a14a642c40 100644
--- a/web/app/components/workflow/nodes/trigger-webhook/components/generic-table.tsx
+++ b/web/app/components/workflow/nodes/trigger-webhook/components/generic-table.tsx
@@ -16,9 +16,9 @@ const isPresent = (v: unknown): boolean => {
return !(v === '' || v === null || v === undefined || v === false)
}
// Column configuration types for table components
-export type ColumnType = 'input' | 'select' | 'switch' | 'custom'
+type ColumnType = 'input' | 'select' | 'switch' | 'custom'
-export type SelectOption = {
+type SelectOption = {
name: string
value: string
}
diff --git a/web/app/components/workflow/types.ts b/web/app/components/workflow/types.ts
index efd21e099c..fa1b26074e 100644
--- a/web/app/components/workflow/types.ts
+++ b/web/app/components/workflow/types.ts
@@ -498,7 +498,7 @@ export type ChildNodeTypeCount = {
[key: string]: number
}
-export const TRIGGER_NODE_TYPES = [
+const TRIGGER_NODE_TYPES = [
BlockEnum.TriggerSchedule,
BlockEnum.TriggerWebhook,
BlockEnum.TriggerPlugin,
diff --git a/web/app/components/workflow/workflow-history-store.tsx b/web/app/components/workflow/workflow-history-store.tsx
index efab0dd067..97c9f2ac33 100644
--- a/web/app/components/workflow/workflow-history-store.tsx
+++ b/web/app/components/workflow/workflow-history-store.tsx
@@ -98,14 +98,14 @@ function createStore({
return store
}
-export type WorkflowHistoryStore = {
+type WorkflowHistoryStore = {
nodes: Node[]
edges: Edge[]
workflowHistoryEvent: WorkflowHistoryEventT | undefined
workflowHistoryEventMeta?: WorkflowHistoryEventMeta
}
-export type WorkflowHistoryActions = {
+type WorkflowHistoryActions = {
setNodes?: (nodes: Node[]) => void
setEdges?: (edges: Edge[]) => void
}
diff --git a/web/context/event-emitter.ts b/web/context/event-emitter.ts
index 781bac1f61..30944cc0ff 100644
--- a/web/context/event-emitter.ts
+++ b/web/context/event-emitter.ts
@@ -7,7 +7,7 @@ import { createContext, useContext } from 'use-context-selector'
* Typed event object emitted via the shared EventEmitter.
* Covers workflow updates, prompt-editor commands, DSL export checks, etc.
*/
-export type EventEmitterMessage = {
+type EventEmitterMessage = {
type: string
payload?: unknown
instanceId?: string
diff --git a/web/contract/console/workflow-comment.ts b/web/contract/console/workflow-comment.ts
index 06defa31af..a4c55a46e0 100644
--- a/web/contract/console/workflow-comment.ts
+++ b/web/contract/console/workflow-comment.ts
@@ -27,7 +27,7 @@ export type WorkflowCommentList = {
participants: UserProfile[]
}
-export type WorkflowCommentDetailMention = {
+type WorkflowCommentDetailMention = {
mentioned_user_id: string
mentioned_user_account?: UserProfile | null
reply_id: string | null
diff --git a/web/models/app.ts b/web/models/app.ts
index af8238fc55..d14dc1cd6c 100644
--- a/web/models/app.ts
+++ b/web/models/app.ts
@@ -75,7 +75,7 @@ export type AppTokenCostsResponse = {
export type UpdateAppModelConfigResponse = { result: string }
-export type ApiKeyItemResponse = {
+type ApiKeyItemResponse = {
id: string
token: string
last_used_at: string
diff --git a/web/models/common.ts b/web/models/common.ts
index 0e44b10e62..505db0e348 100644
--- a/web/models/common.ts
+++ b/web/models/common.ts
@@ -56,7 +56,7 @@ export type Member = Pick & {
dataset_id: string
}
-export type DataSource = {
+type DataSource = {
type: DataSourceType
info_list: {
data_source_type: DataSourceType
@@ -513,7 +510,7 @@ export type FullDocumentDetail = SimpleDocumentDetail & {
[key: string]: any
}
-export type DocMetadata = {
+type DocMetadata = {
title: string
language: string
author: string
@@ -534,16 +531,13 @@ export const CUSTOMIZABLE_DOC_TYPES = [
'im_chat_log',
] as const
-export const FIXED_DOC_TYPES = ['synced_from_github', 'synced_from_notion', 'wikipedia_entry'] as const
-
-export type CustomizableDocType = typeof CUSTOMIZABLE_DOC_TYPES[number]
-export type FixedDocType = typeof FIXED_DOC_TYPES[number]
+type CustomizableDocType = typeof CUSTOMIZABLE_DOC_TYPES[number]
+type FixedDocType = 'synced_from_github' | 'synced_from_notion' | 'wikipedia_entry'
export type DocType = CustomizableDocType | FixedDocType
export type DocumentDetailResponse = FullDocumentDetail
-export const SEGMENT_STATUS_LIST = ['waiting', 'completed', 'error', 'indexing']
-export type SegmentStatus = typeof SEGMENT_STATUS_LIST[number]
+type SegmentStatus = 'waiting' | 'completed' | 'error' | 'indexing'
export type Attachment = {
id: string
@@ -634,7 +628,7 @@ export type ExternalKnowledgeBaseHitTesting = {
}
}
-export type Segment = {
+type Segment = {
id: string
document: Document
content: string
@@ -648,7 +642,7 @@ export type Segment = {
answer: string
}
-export type Document = {
+type Document = {
id: string
data_source_type: string
name: string
@@ -663,7 +657,7 @@ export type HitTestingRecordsResponse = {
page: number
}
-export type TsnePosition = {
+type TsnePosition = {
x: number
y: number
}
@@ -750,7 +744,7 @@ export const DEFAULT_WEIGHTED_SCORE = {
},
}
-export type ChildChunkType = 'automatic' | 'customized'
+type ChildChunkType = 'automatic' | 'customized'
export type ChildChunkDetail = {
id: string
diff --git a/web/models/debug.ts b/web/models/debug.ts
index 0714372d94..a0dc9831ee 100644
--- a/web/models/debug.ts
+++ b/web/models/debug.ts
@@ -114,7 +114,7 @@ export type ModerationConfig = MoreLikeThisConfig & {
} & Partial>
}
-export type RetrieverResourceConfig = MoreLikeThisConfig
+type RetrieverResourceConfig = MoreLikeThisConfig
export type AgentConfig = {
enabled: boolean
strategy: AgentStrategy
diff --git a/web/models/explore.ts b/web/models/explore.ts
index bca92abee5..c05dd1eca1 100644
--- a/web/models/explore.ts
+++ b/web/models/explore.ts
@@ -1,6 +1,6 @@
import type { AppIconType, AppModeEnum } from '@/types/app'
-export type AppBasicInfo = {
+type AppBasicInfo = {
id: string
mode: AppModeEnum
icon_type: AppIconType | null
diff --git a/web/models/log.ts b/web/models/log.ts
index f9cb13ab8e..e3828d4b78 100644
--- a/web/models/log.ts
+++ b/web/models/log.ts
@@ -6,7 +6,7 @@ import type {
} from '@/app/components/workflow/types'
import type { VisionFile } from '@/types/app'
-export type CompletionParamsType = {
+type CompletionParamsType = {
max_tokens: number
temperature: number
top_p: number
@@ -15,13 +15,13 @@ export type CompletionParamsType = {
frequency_penalty: number
}
-export type LogModelConfig = {
+type LogModelConfig = {
name: string
provider: string
completion_params: CompletionParamsType
}
-export type ModelConfigDetail = {
+type ModelConfigDetail = {
introduction: string
prompt_template: string
prompt_variables: Array<{
@@ -53,7 +53,7 @@ export type Annotation = {
created_at?: number
}
-export type MessageContent = {
+type MessageContent = {
id: string
conversation_id: string
query: string
@@ -186,8 +186,7 @@ export type ChatMessagesResponse = {
limit: number
}
-export const MessageRatings = ['like', 'dislike', null] as const
-export type MessageRating = typeof MessageRatings[number]
+export type MessageRating = 'like' | 'dislike' | null
export type LogMessageFeedbacksRequest = {
message_id: string
@@ -229,7 +228,7 @@ export type TriggerMetadata = {
icon_dark?: string | null
}
-export type WorkflowLogDetails = {
+type WorkflowLogDetails = {
trigger_metadata?: TriggerMetadata
}
@@ -246,12 +245,12 @@ export type WorkflowRunDetail = {
total_steps: number
finished_at: number
}
-export type AccountInfo = {
+type AccountInfo = {
id: string
name: string
email: string
}
-export type EndUserInfo = {
+type EndUserInfo = {
id: string
type: 'browser' | 'service_api'
is_anonymous: boolean
@@ -303,7 +302,7 @@ export type WorkflowRunDetailResponse = {
exceptions_count?: number
}
-export type AgentLogMeta = {
+type AgentLogMeta = {
status: string
executor: string
start_time: string
@@ -338,7 +337,7 @@ export type AgentIteration = {
}
}
-export type AgentLogFile = {
+type AgentLogFile = {
id: string
type: string
url: string
@@ -357,7 +356,7 @@ export type AgentLogDetailResponse = {
files: AgentLogFile[]
}
-export type PauseType = {
+type PauseType = {
type: 'human_input'
form_id: string
backstage_input_url: string
@@ -365,7 +364,7 @@ export type PauseType = {
type: 'breakpoint'
}
-export type PauseDetail = {
+type PauseDetail = {
node_id: string
node_title: string
pause_type: PauseType
diff --git a/web/scripts/gen-doc-paths.ts b/web/scripts/gen-doc-paths.ts
index fd9cdea02a..c972a33a08 100644
--- a/web/scripts/gen-doc-paths.ts
+++ b/web/scripts/gen-doc-paths.ts
@@ -275,7 +275,7 @@ function generateTypeDefinitions(
typeNames.push(typeName)
lines.push(`// ${sectionToTypeName(section)} paths`)
- lines.push(`export type ${typeName} =`)
+ lines.push(`type ${typeName} =`)
for (const p of paths) {
lines.push(` | '/${p}'`)
@@ -297,7 +297,7 @@ function generateTypeDefinitions(
if (apiReferencePaths.length > 0) {
const sortedPaths = [...apiReferencePaths].sort()
lines.push('// API Reference paths (English, use apiReferencePathTranslations for other languages)')
- lines.push('export type ApiReferencePath =')
+ lines.push('type ApiReferencePath =')
for (const p of sortedPaths) {
lines.push(` | '${p}'`)
}
@@ -307,7 +307,7 @@ function generateTypeDefinitions(
// Generate base combined type
lines.push('// Base path without language prefix')
- lines.push('export type DocPathWithoutLangBase =')
+ lines.push('type DocPathWithoutLangBase =')
for (const typeName of typeNames) {
lines.push(` | ${typeName}`)
}
diff --git a/web/service/base.ts b/web/service/base.ts
index d1ef06c314..ac7ab895a8 100644
--- a/web/service/base.ts
+++ b/web/service/base.ts
@@ -47,39 +47,39 @@ export type IOnDataMoreInfo = {
}
export type IOnData = (message: string, isFirstMessage: boolean, moreInfo: IOnDataMoreInfo) => void
-export type IOnThought = (though: ThoughtItem) => void
-export type IOnFile = (file: VisionFile) => void
-export type IOnMessageEnd = (messageEnd: MessageEnd) => void
+type IOnThought = (though: ThoughtItem) => void
+type IOnFile = (file: VisionFile) => void
+type IOnMessageEnd = (messageEnd: MessageEnd) => void
export type IOnMessageReplace = (messageReplace: MessageReplace) => void
export type IOnCompleted = (hasError?: boolean, errorMessage?: string) => void
export type IOnError = (msg: string, code?: string) => void
-export type IOnWorkflowStarted = (workflowStarted: WorkflowStartedResponse) => void
-export type IOnWorkflowFinished = (workflowFinished: WorkflowFinishedResponse) => void
-export type IOnNodeStarted = (nodeStarted: NodeStartedResponse) => void
-export type IOnNodeFinished = (nodeFinished: NodeFinishedResponse) => void
-export type IOnIterationStarted = (workflowStarted: IterationStartedResponse) => void
-export type IOnIterationNext = (workflowStarted: IterationNextResponse) => void
-export type IOnNodeRetry = (nodeFinished: NodeFinishedResponse) => void
-export type IOnIterationFinished = (workflowFinished: IterationFinishedResponse) => void
-export type IOnParallelBranchStarted = (parallelBranchStarted: ParallelBranchStartedResponse) => void
-export type IOnParallelBranchFinished = (parallelBranchFinished: ParallelBranchFinishedResponse) => void
-export type IOnTextChunk = (textChunk: TextChunkResponse) => void
-export type IOnTTSChunk = (messageId: string, audioStr: string, audioType?: string) => void
-export type IOnTTSEnd = (messageId: string, audioStr: string, audioType?: string) => void
-export type IOnTextReplace = (textReplace: TextReplaceResponse) => void
-export type IOnLoopStarted = (workflowStarted: LoopStartedResponse) => void
-export type IOnLoopNext = (workflowStarted: LoopNextResponse) => void
-export type IOnLoopFinished = (workflowFinished: LoopFinishedResponse) => void
-export type IOnAgentLog = (agentLog: AgentLogResponse) => void
+type IOnWorkflowStarted = (workflowStarted: WorkflowStartedResponse) => void
+type IOnWorkflowFinished = (workflowFinished: WorkflowFinishedResponse) => void
+type IOnNodeStarted = (nodeStarted: NodeStartedResponse) => void
+type IOnNodeFinished = (nodeFinished: NodeFinishedResponse) => void
+type IOnIterationStarted = (workflowStarted: IterationStartedResponse) => void
+type IOnIterationNext = (workflowStarted: IterationNextResponse) => void
+type IOnNodeRetry = (nodeFinished: NodeFinishedResponse) => void
+type IOnIterationFinished = (workflowFinished: IterationFinishedResponse) => void
+type IOnParallelBranchStarted = (parallelBranchStarted: ParallelBranchStartedResponse) => void
+type IOnParallelBranchFinished = (parallelBranchFinished: ParallelBranchFinishedResponse) => void
+type IOnTextChunk = (textChunk: TextChunkResponse) => void
+type IOnTTSChunk = (messageId: string, audioStr: string, audioType?: string) => void
+type IOnTTSEnd = (messageId: string, audioStr: string, audioType?: string) => void
+type IOnTextReplace = (textReplace: TextReplaceResponse) => void
+type IOnLoopStarted = (workflowStarted: LoopStartedResponse) => void
+type IOnLoopNext = (workflowStarted: LoopNextResponse) => void
+type IOnLoopFinished = (workflowFinished: LoopFinishedResponse) => void
+type IOnAgentLog = (agentLog: AgentLogResponse) => void
-export type IOHumanInputRequired = (humanInputRequired: HumanInputRequiredResponse) => void
-export type IOnHumanInputFormFilled = (humanInputFormFilled: HumanInputFormFilledResponse) => void
-export type IOnHumanInputFormTimeout = (humanInputFormTimeout: HumanInputFormTimeoutResponse) => void
-export type IOWorkflowPaused = (workflowPaused: WorkflowPausedResponse) => void
-export type IOnDataSourceNodeProcessing = (dataSourceNodeProcessing: DataSourceNodeProcessingResponse) => void
-export type IOnDataSourceNodeCompleted = (dataSourceNodeCompleted: DataSourceNodeCompletedResponse) => void
-export type IOnDataSourceNodeError = (dataSourceNodeError: DataSourceNodeErrorResponse) => void
+type IOHumanInputRequired = (humanInputRequired: HumanInputRequiredResponse) => void
+type IOnHumanInputFormFilled = (humanInputFormFilled: HumanInputFormFilledResponse) => void
+type IOnHumanInputFormTimeout = (humanInputFormTimeout: HumanInputFormTimeoutResponse) => void
+type IOWorkflowPaused = (workflowPaused: WorkflowPausedResponse) => void
+type IOnDataSourceNodeProcessing = (dataSourceNodeProcessing: DataSourceNodeProcessingResponse) => void
+type IOnDataSourceNodeCompleted = (dataSourceNodeCompleted: DataSourceNodeCompletedResponse) => void
+type IOnDataSourceNodeError = (dataSourceNodeError: DataSourceNodeErrorResponse) => void
export type IOtherOptions = {
isPublicAPI?: boolean
diff --git a/web/types/app.ts b/web/types/app.ts
index bd10da42d3..ecd4630363 100644
--- a/web/types/app.ts
+++ b/web/types/app.ts
@@ -50,8 +50,7 @@ export const AppModes = [AppModeEnum.COMPLETION, AppModeEnum.WORKFLOW, AppModeEn
/**
* Variable type
*/
-export const VariableTypes = ['string', 'number', 'select'] as const
-export type VariableType = typeof VariableTypes[number]
+type VariableType = 'string' | 'number' | 'select'
/**
* Prompt variable parameter
@@ -69,7 +68,7 @@ export type PromptVariable = {
max_length?: number
}
-export type TextTypeFormItem = {
+type TextTypeFormItem = {
default: string
label: string
variable: string
@@ -78,7 +77,7 @@ export type TextTypeFormItem = {
hide: boolean
}
-export type SelectTypeFormItem = {
+type SelectTypeFormItem = {
default: string
label: string
variable: string
diff --git a/web/types/doc-paths.ts b/web/types/doc-paths.ts
index 3f030a2733..f97883d4d4 100644
--- a/web/types/doc-paths.ts
+++ b/web/types/doc-paths.ts
@@ -8,7 +8,7 @@
export type DocLanguage = 'en' | 'zh' | 'ja'
// UseDify paths
-export type UseDifyPath =
+type UseDifyPath =
| '/use-dify/build/additional-features'
| '/use-dify/build/goto-anything'
| '/use-dify/build/mcp'
@@ -121,7 +121,7 @@ type ExtractNodesPath = T extends `/use-dify/nodes/${infer Path}` ? Path : ne
export type UseDifyNodesPath = ExtractNodesPath
// SelfHost paths
-export type SelfHostPath =
+type SelfHostPath =
| '/self-host/advanced-deployments/local-source-code'
| '/self-host/advanced-deployments/start-the-frontend-docker-container'
| '/self-host/configuration/environments'
@@ -136,7 +136,7 @@ export type SelfHostPath =
| '/self-host/troubleshooting/weaviate-v4-migration'
// DevelopPlugin paths
-export type DevelopPluginPath =
+type DevelopPluginPath =
| '/develop-plugin/dev-guides-and-walkthroughs/agent-strategy-plugin'
| '/develop-plugin/dev-guides-and-walkthroughs/cheatsheet'
| '/develop-plugin/dev-guides-and-walkthroughs/creating-new-model-provider'
@@ -178,7 +178,7 @@ export type DevelopPluginPath =
| '/develop-plugin/publishing/standards/third-party-signature-verification'
// API Reference paths (English, use apiReferencePathTranslations for other languages)
-export type ApiReferencePath =
+type ApiReferencePath =
| '/api-reference/annotations/configure-annotation-reply'
| '/api-reference/annotations/create-annotation'
| '/api-reference/annotations/delete-annotation'
@@ -261,7 +261,7 @@ export type ApiReferencePath =
| '/api-reference/workflows/stop-workflow-task'
// Base path without language prefix
-export type DocPathWithoutLangBase =
+type DocPathWithoutLangBase =
| UseDifyPath
| SelfHostPath
| DevelopPluginPath
diff --git a/web/types/pipeline.tsx b/web/types/pipeline.tsx
index f101853c6c..9377868db7 100644
--- a/web/types/pipeline.tsx
+++ b/web/types/pipeline.tsx
@@ -6,7 +6,7 @@ export type DataSourceNodeProcessingResponse = {
completed: number
}
-export type OnlineDriveFile = {
+type OnlineDriveFile = {
id: string
name: string
size: number
diff --git a/web/types/workflow.ts b/web/types/workflow.ts
index 9e7dfd7e7a..95d8e47fdb 100644
--- a/web/types/workflow.ts
+++ b/web/types/workflow.ts
@@ -453,7 +453,7 @@ export const VarInInspectType = {
} as const
export type VarInInspectType = typeof VarInInspectType[keyof typeof VarInInspectType]
-export type FullContent = {
+type FullContent = {
size_bytes: number
download_url: string
}
From 65a08ed7aba9894cbfdb233ca4a007e60d654648 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Mon, 27 Apr 2026 07:51:03 +0000
Subject: [PATCH 9/9] chore(i18n): sync translations with en-US (#35595)
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com>
---
web/i18n/nl-NL/dataset-creation.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/web/i18n/nl-NL/dataset-creation.json b/web/i18n/nl-NL/dataset-creation.json
index 1628a8641e..56d99de240 100644
--- a/web/i18n/nl-NL/dataset-creation.json
+++ b/web/i18n/nl-NL/dataset-creation.json
@@ -35,8 +35,8 @@
"stepOne.uploader.cancel": "Cancel",
"stepOne.uploader.change": "Change",
"stepOne.uploader.failed": "Upload failed",
- "stepOne.uploader.tip": "Supports {{supportTypes}}. Max {{batchCount}} in a batch and {{size}} MB each.",
- "stepOne.uploader.tipWithTotalLimit": "Supports {{supportTypes}}. Max {{batchCount}} in a batch and {{size}} MB each. Max total {{totalCount}} files.",
+ "stepOne.uploader.tip": "Ondersteunt {{supportTypes}}. Maximaal {{batchCount}} per batch en {{size}} MB per bestand.",
+ "stepOne.uploader.tipWithTotalLimit": "Ondersteunt {{supportTypes}}. Maximaal {{batchCount}} per batch en {{size}} MB per bestand. Maximaal {{totalCount}} bestanden in totaal.",
"stepOne.uploader.title": "Upload file",
"stepOne.uploader.validation.count": "Multiple files not supported",
"stepOne.uploader.validation.filesNumber": "You have reached the batch upload limit of {{filesNumber}}.",